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再入門」の記事

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


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

CSVの読み込み方法(ジャグ配列)|VBAサンプル集(7月15日)
その他のExcel機能(グループ化、重複の削除、オートフィル等)|VBA入門(7月14日)
オートフィルタ退避回復クラスを複数シート対応させるVBAクラス|VBA技術解説(7月6日)
オートフィルタを退避回復するVBAクラス|VBA技術解説(7月6日)
IfステートメントとIIF関数とMax関数の速度比較|VBA技術解説(6月23日)
Withステートメントの実行速度と注意点|VBA技術解説(6月6日)
VBA+SeleniumBasicで検索順位チェッカー(改)|VBA技術解説(6月2日)
マクロでShift_JIS文字コードか判定する|VBA技術解説(6月1日)
Shift_JISのテキストファイルをUTF-8に一括変換|VBAサンプル集(5月31日)
「VBAによる解析シリーズその2 カッコ」をやってみた|エクセル(5月21日)


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

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



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

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


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




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