Excel VBAでファイル取込み!Excelファイル編

ディスプレイのイラスト

前回CSVファイルの取込み方法について紹介しました。

CSVファイルと同様に、Excelファイルで別Excel ファイルの取込みをすることがあります。

Excelファイルの取り込みはCSVとは違い、Excelオブジェクトを作成したりしないといけないため多少複雑ですが、一度覚えてしまえばそこまで難しくはありません。

 

 
 

 

Excel取込みのサンプル

Excelシート画像


Sub ボタン1_Click() Dim objBook As Excel.Application Dim objSheet As Excel.Worksheet Dim IX As Integer Set objSheet = ThisWorkbook.Worksheets("Sheet2") objSheet.Cells.Clear Set objBook = CreateObject("Excel.Application") objBook.Visible = False objBook.Application.Workbooks.Open Filename:="D:\temp\Book1.xlsx" IX = 1 Do While objBook.Cells(1, IX) <> "" objSheet.Cells(IX, 1) = objBook.Cells(IX, 1) objSheet.Cells(IX, 2) = objBook.Cells(IX, 2) objSheet.Cells(IX, 3) = objBook.Cells(IX, 3) objSheet.Cells(IX, 4) = objBook.Cells(IX, 4) objSheet.Cells(IX, 5) = objBook.Cells(IX, 5) IX = IX + 1 Loop objBook.QuitIX + 1 End Sub

 

 

サンプルの解説

Set objSheet = ThisWorkbook.Worksheets("Sheet2")

出力先のシートを変数に格納します。

今回はシート名「Sheet2」に取込んだ内容を出力します。 

 

objSheet.Cells.Clear

Sheet2に前回取込んだデータが残っている可能性があるので、取込む前にシート全体を

クリアします。

 

Set objBook = CreateObject("Excel.Application")

Excelオブジェクトを作成して変数に格納します。

 

objBook.Visible = False

作成したExcelオブジェクトを非表示にします。

False ⇒ Trueにすると作成したExcelが画面に表示されます。 

 

objBook.Application.Workbooks.Open Filename:="D:\temp\Book1.xlsx"

作成したExcelオブジェクトでExcelファイルを開きます。

今回はDドライブのtempフォルダにある「Book1.xlsx」ファイルを開きます。

 

Do While objBook.Cells(1, IX) <> ""

Do ~ Loopまでが繰り返し処理です。

Book1.xlsxファイルのA列のセルが未入力になるまで繰り返し処理をします。

 

 

objSheet.Cells(IX, 1) = objBook.Cells(IX, 1)
objSheet.Cells(IX, 2) = objBook.Cells(IX, 2)
objSheet.Cells(IX, 3) = objBook.Cells(IX, 3)
objSheet.Cells(IX, 4) = objBook.Cells(IX, 4)
objSheet.Cells(IX, 5) = objBook.Cells(IX, 5)

繰り返し処理の内容です。

 

VBAを実行しているExcelブックのSheet2にBook1.xlsxファイルの内容を記述していきます。

繰り返し処理の前に変数IXに「1」を格納しているので、繰り返し処理の最初はSheet2のセル1行目にBook1.xlsxの1行目の内容を記述していきます。

 

IX = IX + 1

変数IXをカウントアップします。

この処理をすることで次の行を参照することができます。

 

objBook.Quit

書き込み処理が終了したので、Book1.xlsxファイルを閉じます。

この処理をしないとExcelファイルがずっと開いている状態になり、手動で開いた時に読取り専用でしか開けなくなってしまいます。

 

 

最後に

いかがだったでしょうか。

本日はExcelファイルで別Excelを開いて内容を転記するVBAを紹介しました。

今回は単純に転記するVBAでしたが、繰り返し処理にIf文を書くことで取込むデータを選択することもできます。

サンプルをコピーして色々試してみてください。

 

www.nanana-blog.com

 

www.nanana-blog.com

 

 

www.nanana-blog.com