EXCEL、VBAプログラミング入門22~次ボタン処理の流れ~第1回目

以下は当記事に関連する動画です。本動画に関連する動画はすべてニコニコチャンネルにて閲覧可能です。
https://ch.nicovideo.jp/ai-light

本講座のシリーズは以下にて閲覧可能です。
https://www.nicovideo.jp/series/231329

本文に関連する動画は以下にて閲覧可能です。

EXCEL、VBAプログラミングの第22回目で「次ボタン処理の流れ」の第1回目です。

今回は、以下のテーマを扱っています。
ブレイクポイントの設定
動的配列
ReDim Preserve

以下の順で解説を行っています。
1)はじめに
2)ブレイクポイントの設定
3)初回の「記録」ボタン処理
4)2回目の「記録」ボタン処理
5)3回目の「記録」ボタン処理

1)はじめに
前回までの説明で「記録」ボタン処理について解説を行いました。「記録」ボタン処理では仕様上で記録される値の数を限定しないようにしていましたので、動的配列を使って値を保持しています。そのためまずは、動的配列について解説を行いました。

今回は、下図の計算機システムで「次」ボタン処理について解説を行います。

図1.計算機システム

「次」ボタン処理は「記録」ボタン処理で記録した値を順に表示する機能です。そのため、「次」ボタン処理だけでは処理が完結しません。まずは「記録」ボタン処理の内容をステップ実行で稼働させながら処理を確認していきます。

その後に「次」ボタン処理について説明を行います。

2)ブレイクポイントの設定
ステップ実行を行うためにVisual Basicエディターで下図の通りブレイクポイントを設定します。

図2.記録処理内でブレイクポイントを設定

ブレイクポイントを設定するには「図2.記録処理内でブレイクポイントを設定」の矢印の通りブレイクポイントを設定したい行の灰色の部分をクリックすると茶色の丸が表示されます。この部分のことをインジケーターバーといいます。

上記のブレイクポイントだけでは「記録」ボタンをクリックした際には処理がブレイクポイントでストップし、その後、ステップ実行が可能ですが「記録」ボタン処理が終了した後はステップ実行を行いません。

そこで下図の通り「次」ボタン処理が実行された場合にもステップ実行を行うために、「次」ボタン処理の先頭でブレイクポイントを設定します。

図3.「次」ボタン処理でブレイクポイントを設定

このようにすることによって「記録」ボタン処理を実行した時にもステップ実行を行い「次」ボタン処理を実行した際にもステップ実行を行うようにします。

3)初回の「記録」ボタン処理
次のように操作を行います。
「4」ボタンを押した後に、以下のようにボタンを押していきます。
「+」「6」「計算」とボタンを押すと「4+6」の計算が行われて「B3」セルには計算結果である「10」が表示されます。

この状態で「記録」ボタンを押します。
処理が以下の処理でストップしました。
ReDim Preserve 記録配列(記録配列数)

「記録配列数」にマウスカーソルを当てると
記録配列数=0
と表記されており「記録配列数」変数の値が「0」であることが分かります。

図4.処理が一旦ストップする

また記録配列の変数定義を確認するには下図の通り「記録配列」にマウスのカーソルを合わせた状態で右クリックしてメニューを表示し「定義」を選択すると「記録配列」変数が定義された場所にカーソルが移動します。

図5.「記録配列」変数の定義情報を確認

下図の通り、マウスのカーソルが
Public 記録配列() As String
に移動します。

図6.「記録配列」の定義情報

上述の説明から「記録配列」変数は動的配列として定義されていることが分かります。

ReDim Preserve
は、指定された配列に対して要素数を変更できます。

現在の処理では「記録配列数」は「0」ですから、
ReDim Preserve 記録配列(記録配列数)

ReDim Preserve 記録配列(0)
と解釈されて、要素数が「0」の配列が定義されます。

「図4.処理が一旦ストップする」内の次クリック処理を順に確認します。次の行の
記録配列(記録配列数) = Range(“b3”).Value
でセル「b3」の値を「記録配列(0)」に代入します。セル「b3」には「10」が表示されていることから「記録配列(0)」の値は「10」となります。

次の行で
記録配列数 = 記録配列数 + 1
によって「記録配列数」変数に「1」を足した値を再度「記録配列数」変数に代入することによって「記録配列数」変数の値は「1」となります。

4)2回目の「記録」ボタン処理
次にExcelのシート上で
「14」→「+」→「6」→「計算」
という順でボタンを押すと「14+6」の計算が行われて「B3」セルには計算結果である「20」が表示されます。

その後「記録」ボタンを押します。

ReDim Preserve 記録配列(記録配列数)
では、先ほどの処理で「記録配列数」変数には「1」が入っていますので、記録配列(1)が定義されます。

記録配列(記録配列数) = Range(“b3”).Value
にてセル「b3」には「20」が表示されていますので、記録配列(1)に「20」が代入されます。

記録配列数 = 記録配列数 + 1
にて「記録配列数」変数に「1」を足した値を再度、「記録配列数」変数に代入しますので、結果、「記録配列数」変数は「2」となります。

5)3回目の「記録」ボタン処理
同様にExcelのシート上で
「10」→「+」→「20」→「計算」
という順でボタンを押すと「10+20」の計算が行われて「B3」セルには計算結果である「30」が表示されます。

その後、「記録」ボタンを押します。
ReDim Preserve 記録配列(記録配列数)
にて記録配列(2)が定義されます。

記録配列(記録配列数) = Range(“b3”).Value
にて記録配列(2)に「30」が代入されます。

記録配列数 = 記録配列数 + 1
にて「記録配列数」変数が「1」だけカウントアップされて「記録配列数」変数の値は「2」となります。

以上の操作によって、各配列要素数の値は以下のようになります。
記録配列(0)=「10」
記録配列(1)=「20」
記録配列(2)=「30」

 


ニコニコチャンネル(月額固定で見放題)
http://ch.nicovideo.jp/ai-light
本記事に関連する動画講座を閲覧できます。一部の動画は無料でも閲覧できます。

YouTubeチャンネル(無料動画配信中)
https://www.youtube.com/user/ailightcom
ITと経営に関する動画を配信しております。
よろしければ、チャンネル登録をお願い致します。

無料から学べる講座
https://www.ai-light.com/itkeiei/
本記事に関連する動画講座をセット販売しております。
その他、ITと経営に関する動画もセット販売しております。

格安ホームページ制作所
https://www.ai-light.com/hp2
インターネットマーケティングに関する記事が無料で閲覧可能です。

株式会社アイライト公式HP
https://www.ai-light.com/
(Access・Excelでシステム開発会社を探されている法人様はこちら)

ITでお困りのことがございましたら、まずはご相談(コンサルティング)
https://www.ai-light.com/itconsulting.html


弊社は、主に中小企業様向けの業務システム開発ホームページ制作パソコンサポートコンサルティングなど、ITに関する様々なサービスを格安で提供しております。
特に小規模な業務システム開発の分野では、主にAccess(アクセス)を利用した柔軟で効率的な開発を得意としており、関西でダントツの実績があります。

業務システム開発に関しては、以下のような内容で対応しております。
・顧客管理などの単機能なシステムは20万円~50万円が多い。
・受注から入金まで業務全体システムで100万円~350万円ぐらいが多い。
・Access(アクセス)-SQLserverで大規模システム開発は350万円~1500万円が多い。

詳細は、Access(アクセス)、Excel(エクセル)、WEBサイト製作による小規模システム開発のページをご参考ください。

大阪商工会議所からの推薦を受けて、中小企業庁運営の中小企業支援事業に専門家として登録されました。
通称ミラサポ。3回まで無料でのコンサルティングが可能です。ご興味がある方はご連絡ください。
https://www.mirasapo.jp/


(近畿大学にて非常勤講師も務めたバリバリの技術屋が経営する会社)

Access(アクセス)Excel(エクセル)SQL server バーコード Webシステムを使った業務システムのシステム開発の無料相談を受付中

株式会社 アイライト 担当:内藤 響(Naito Ko)
〒550-0005 大阪市西区西本町1丁目5番9号 日清ビル 5F
(四つ橋線 本町駅 24番出口すぐ)
まずは、メール・電話でご相談ください。
TEL : (06) 6599-8890 E-mail : info@ai-light.com
お電話が混んでいる場合が多いので、つながりにくい場合は
TEL : (06) 6535-5117までお願いします。