1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

【VBA入門】for eachで同じ処理の繰り返し方

【VBA入門】
Pocket

For Each文についてご説明します。
For Eachは同じブック内の同じ種類のオブジェクトに同様の処理を行いたいという場合に便利です。
具体的には、同じブック内の全てのシートを成形したり、すべての図形を対象としてチェックをかけたりすることができます。

For Eachの構文

コレクションとは?

同じ種類のオブジェクトの集合体のことをコレクションと呼びます。例えば、1つのワークブック内に存在する
1つ1つのワークシートはVBAではWorksheetオブジェクトとして扱われており、
ブック内のWorksheetオブジェクト全部に一括して処理を行いたい場合は
Worksheetsコレクションを操作対象とすることになります。

なお、オブジェクトを格納しておくための変数はあらかじめDimで定義しておく必要があるので
それぞれのオブジェクトに対応した型を設定するようにしてください。
ワークシートの場合は『Dim 変数名 As Worksheet』となります。
それでは、実際にワークシート内のオブジェクトをまとめて操作してみましょう。

ワークブック内のシートをまとめてリネーム

<コード>

<実行例>

ブック内の全てのシートが1月~3月までの月名でリネームされています。

ちなみにFor Each分の末尾はIn コレクションという順番で記述することとされていますが、
Worksheetオブジェクトの集合体であるコレクションはWorksheet“s”というふうに
複数形になっている点に注意しましょう。

ワークシート内の図形を全削除

ワークシートを作成する際に図形を使用するとより見やすくなりますが、
周辺のセルを消去するなどの操作で図形のサイズが小さくなってしまい、そのまま存在が忘れられて
不要なオブジェクトとしてファイル内に残ってしまうことがあります。

こういったオブジェクトはそのままにしておくとファイルの容量を圧迫してしまいますし、
かといって手作業で全て削除することは困難です。
こんな時にはFor Eachでシート全体にチェックをかける方法が効果的です。

<コード>

<実行例>

おわりに

ワークブック内のオブジェクトの一括操作にはFor Each文が大変便利です。
For文と同様ネストさせることもでき、かなり複雑な処理を行うことも可能となります。
For Each文を使いこなすことにより面倒なチェック作業もスマートに処理することができるようになりますね。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る