Excel VBA 実用的なプログラム3(コレクション編)

  1. 実用的なプログラムに挑戦3(コレクション編)
  2. セルでの利用
  3. ワークシートでの利用

実用的なプログラムに挑戦3(コレクション編)

コレクションとはオブジェクトの集まりです。今回はRangeとWorkSheetのコレクションについての使用方法を記述しておきます。

「For Each 〜 Next」というステートメントがあります。これは、「コレクションの中にある全てのオブジェクトに対して実行する」という便利なステートメントです。

書式

前に学んだ「For 処理A Next」ステートメントは、「処理A」を指定された回数だけ繰り返す命令です。一方、この「For Each 処理A Next」ステートメントは、コレクション内に複数あるオブジェクトの全てに対して、「処理A」を繰り返し行わせるためのものです。すなわち、すべてのオブジェクトについて「処理A」を行なう命令です。


セルでの利用

選択したセル範囲に左上のセルから順番に番号を振り、「For Each」ステートメントがどのような順番で処理しているか確認しましょう。

次のプログラムを実行する前に、アクティブワークシートに適当に複数セルを選択しておきます。

どうですか?数が左上から右下へ順番に入力されていることが確認できましたか。これは今後に役立ちますので覚えておきましょう。


【例題7】 選択されたセル範囲に番号をつけます。

もちろん、「For Each」ステートメントではなく、「For Next」ステートメントでも操作できます。

次のプログラムを実行する前に、アクティブワークシートに適当に複数セルを選択しておきます。

どうですか?同じように番号がつきましたか。


【例題8】 For Nextを使って番号をつけます。


【例題9】 選択した範囲の合計を求めます。

例題08で作成したセルを選択して下のコードを標準モジュールシートに入力して実行してみてください。適当なセルにSum関数を記述して、同じ結果になることを確認しましょう。


ワークシートでの利用

【例題10】 このブック内でのワークシートの名前をすべて表示してみましょう。ここでのオブジェクトはワークシートでそのプロパティのひとつである名前を「Debug.Print」ステートメントを使ってイミディエィトウィンドウに結果を出力して確認してください。

確認方法はCtrl + G キーでイミディエィトウィンドウに移り、上方向 キーで読み上げてください。


【例題11】 10枚以上のワークシート名をA列に入力するコードを書いて実行してみてください。

Alt + F11 キーでワークシートに移動して、ワークシートの名前と枚数を、Ctrl + Page Up、またはPage Down キーで確認して、A列に表示されていることを確認してください。