やりたいこと
複数シートの値を集計
Excelで下記のようなデータがあるとします。
シート001~003は同じレイアウトで中の数値が異なります。
各シートから請求番号、請求日、請求金額を集計して
以下のように一覧シートに転記する方法について紹介します。
コードと解説は以下の通りです。
【VBA コード】
ポイント
集計するシートのレイアウトはそろえておく
コードをきれいに書くことも大切ですが、Excelでシートのレイアウトをそろえておくことも大切です。
複数のワークシートにあるデータを参照して一覧表を作成する際は行と列の内容を同じにすることで集計も楽にできるようになります。
ワークシートは番号で指定することができる
ワークシートは左から順番に番号が振られています。
対象とするワークシートを操作する際は番号で指定するか、直接ワークシート名を指定して操作します。
今回のケースではWorksheets(1)とWorksheets("一覧")は同じ意味となります。
ThisWorkbookプロパティ
実行しているマクロがあるブックはThisWorkbookプロパティで表すことができます。
ThisWorkbookプロパティは常に自分自身を表すので、ブック名を変更したときにマクロを修正する必要がないというメリットがあります。
NumberFormatLocalプロパティ
NumberFormatLocalプロパティを使うことで、セルの表示形式を設定することができます。
Excelの「セルの書式設定」→「ユーザー定義」を選択したときに表示される記号と同じように使用することができます。
ひとこと
シート名は直接指定か番号で指定が可能ですが、
直接指定の場合は、シート名を変更するとエラーになってしまいます。
番号指定であれば、シート名を変更しても正常に動作しますが、シートを移動させると
想定していないシートを参照することになり上手く動作しません。
どちらが良いかは処理の内容によって変わってくるので、どちらの方法も知っておくことは大切です!(^^)!
できるシリーズはフルカラーでかなり細かいところまで画像を使って解説してあるのでオススメです!