ExcelマクロVBA再入門
第22回.複数ブックよりデータを集める

マクロが覚えられないという初心者向けに理屈抜きのやさしい解説
最終更新日:2015-10-30

第22回.複数ブックよりデータを集める


他のブックを開いて指定シートの指定セル範囲のデータを取得する、


取得したデータを使って、目的の表を作り上げる、

これこそマクロVBAの真価が問われる処理でしょう。

これまでにやってきた内容が出来れば大丈夫です。

これまでの内容を上手く組み合わせるだけです。

ポイントになりそうな部分を、ちょっと復習しましょう。

第17回.セルにブック・シートを指定する

VBAで自動化する時に、シートが1つという事はむしろ稀で、多くの場合は複数のブック、複数のシートを扱う事になります、そこで、どのブックのどのシートのセルかを指定する必要が出てきます。RangeやCellsでセルを指定するだけでは、どのブックのどのシートか分からない… RangeやCellsだけを書いた場合には、
ここでは、以下のコードをやりました。


Excel マクロ VBA サンプルコード

長々と、ブック・シートを書かず、SetやWithを使いこなします。

第19回.ブックを開く・閉じる・保存する

VBAで最も便利に感じるのが、他のブックからデータを取得したり、他のブックのデータを変更したりする場合でしょう、関数では出来ない完全自動化のシステムが作成できます。ブック(Excelファイル)を扱う上で一番の問題は、そのファイルがどこにあるか、つまりどこのフォルダに入っているかを特定しなければならない点です。
ここでは、以下のコードをやりました。

ExcelマクロVBA サンプル コード

ExcelマクロVBA サンプル コード

Openしたブックを直接SetやWithに入れる事で、すっきりしたコードになります。

第21回.ファイル一覧を取得する

マクロVBAで他のブック(ファイル)を扱う時、まず問題となるのがファイル名です、ファイル数が常に同じでファイル名も変化しなければ良いのですが… ファイル数もファイル名も決まっていない場合は、まずはファイルの一覧を取得する必要があります。ファイル名を取得するには、Dir関数を使います。
ここでは、以下のコードをやりました。。

エクセル マクロVBA サンプルコード

Dir関数を使いファイル一覧を取得します。


今回は、これまでの組み合わせだけです。


マクロの書かれているExcelファイルのあるフォルダ内に、「データ」というフォルダがあり、
この中の全てのExcelファイルの1番目のシートにある(A1セルの)表範囲のデータを全て集めてきます。

マクロを書くブックには、
・データ ・・・ 1行目に見出しを入れておきます。
・一覧 ・・・ ファイルの一覧を入れます
この2つのシートを用意しておきます。


ExcelマクロVBA サンプル コード

各VBAコードは、今まで説明してきたものです。

j = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
これが少々?かもしれません。
最終行 + 1
つまり、最終行の1行下という事です。

テストデータを用意し、画像を見ながらマクロVBAを書いてみて下さい。
データの用意も、実際に書いてみることも、マクロを覚える上で大切な事なのです。
どんなデータを用意したら良いか、それは、どんなマクロかを理解することです。
そして、指を動かすことで、目と指の双方からの情報で、より記憶に残ります。

1度と言わず、2度3度と書いてみましょう。
ステップイン(F8)で動きを確認しましょう。


この積み重ねでしか、マクロVBAを習得出来ません。
これ以外に、マクロVBAを習得する道はありません。



同じテーマ「マクロVBA再入門」の記事

第19回.ブックを開く・閉じる・保存する(Workbooks,Open,Close,Save,SaveAs)
第20回.全てのシートに同じ事をする(For~Worksheets.Count)
第21回.ファイル一覧を取得する(Do~LoopとDir関数)
第22回.複数ブックよりデータを集める
第23回.複数のプロシージャーを連続で動かす(Callステートメント)
第24回.マクロの呪文を追加してボタンに登録(ScreenUpdating)
第25回.月別ブックより部署別シートに担当別に集計するNo1
第26回.月別ブックより部署別シートに担当別に集計するNo2
第27回.月別ブックより部署別シートに担当別に集計するNo3
第28回.月別ブックより部署別シートに担当別に集計するNo4
第29回.月別ブックより部署別シートに担当別に集計するNo5


新着記事NEW ・・・新着記事一覧を見る

VBAにおける変数のメモリアドレスについて|VBA技術解説(11月8日)
空文字列の扱い方と処理速度について(""とvbNullString)|VBA技術解説(1月7日)
Errオブジェクトとユーザー定義エラー|VBA入門(11月5日)
シングルクォートの削除とコピー(PrefixCharacter)|VBA技術解説(11月4日)
ユーザー定義型の制限とクラスとの使い分け|VBA技術解説(11月3日)
クリップボードに2次元配列を作成してシートに貼り付ける|VBA技術解説(11月1日)
VBAクラスを使ったイベント作成(Event,RaiseEvent,WithEvents)|VBA技術解説(10月31日)
VBAクラスのAttributeについて(既定メンバーとFor Each)|VBA技術解説(10月19日)
VBAの用語について:ステートメントとは|VBA技術解説(10月16日)
VBAのマルチステートメント(複数のステートメントを同じ行に)|VBA技術解説(10月14日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数宣言のDimとデータ型|ExcelマクロVBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.セルに文字を入れるとは(Range,Value)|VBA入門



  • >
  • >
  • >
  • 複数ブックよりデータを集める

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ