【ExcelVBA】別Excelファイルのシートデータ取り込み方法(複数ファイル・シート対応)

12月 9, 2022

ExcelVBAで別のExcelファイルからシートデータを取得したい人向けに書いています。

本記事の内容

・ExcelVBAで別のExcelファイルからシートデータを取得する方法

ExcelVBAで別のExcelファイルからシートデータを取得したいと思ったことはありませんか?

ExcelVBAでの別のExcelファイルからシートデータを取得する方法を紹介します。

 

ExcelVBAでの別のExcelファイルからシートデータを取得するプログラム

以下が別のExcelファイルからシートデータを取得するプログラムです。
本プログラムではインプットExcelが保存されているフォルダを指定して対象フォルダに入っているファイルすべてを処理します。
ExcelVBA(アウトプット)ファイルにもしインプットファイルと同じシートがあった場合はExcelVBAファイルの同名のシートを削除して取り込みます。
取り込んだシートはシート末尾に取り込まれていきます。

  1. '*****************************************
  2. '* Excelデータ取り込み
  3. '*****************************************
  4. Sub EXCEL_DATA_GET()
  5.     Dim Input_Path As String 'インプットExcelファイルフォルダ
  6.     Dim buf As String '格納ファイル
  7.     Dim InputBook As Workbook 'インプットExcelブック
  8.     Dim InputSheet As Worksheet 'インプットExcelシート
  9.     Dim SaveDir As String 'インプットExcelファイルパス
  10.     Dim InputWs As Worksheet 'インプットシート
  11.     Dim OutputWs As Worksheet 'アウトプットシート
  12.     
  13.     'インプットExcelフォルダ取得
  14.     Input_Path = ThisWorkbook.Path & "\バックアップ\"
  15.     
  16.     'インプット対象ファイルを格納
  17.     buf = Dir(Input_Path & "*.xlsm")
  18.     
  19.     'インプットExcelシート取得
  20.     Do While buf <> "" 'インプット対象ファイルがなくなるまで処理する
  21.         
  22.         'インプットファイルオープン
  23.         Set InputBook = Workbooks.Open(Input_Path + buf)
  24.         
  25.         'アウトプットファイルに同じシートめがある場合シート削除
  26.         For Each InputWs In InputBook.Worksheets
  27.             
  28.             For Each OutputWs In ThisWorkbook.Sheets
  29.                 
  30.                 If OutputWs.Name = InputWs.Name Then
  31.                 
  32.                     Application.DisplayAlerts = False
  33.                     OutputWs.Delete
  34.                     Application.DisplayAlerts = True
  35.                     
  36.                 End If
  37.                 
  38.             Next OutputWs
  39.             
  40.             'シート取得
  41.             InputWs.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) 'Beforeの場合、指定したシートの前に
  42.         Next InputWs
  43.         
  44.         'インプットExcelブックを閉じる
  45.         InputBook.Close False
  46.         
  47.         '次のファイル名を格納
  48.         buf = Dir()
  49.         
  50.     Loop
  51.     
  52. End Sub


14行目:インプットするExcelファイルが入っているフォルダを設定
17行目:インプットするExcelファイルの対象拡張子を設定

スポンサーリンク

まとめ

ExcelVBAでの別のExcelファイルからシートのデータを取得する方法を紹介しました。
最後までご覧いただき、ありがとうございました。

 

【ExcelVBA】CSVデータ取り込み方法(0頭の数字文字列対応)
【ExcelVBA】Excelシートを上部から順次処理する方法
【ExcelVBA】複数Excelファイルデータを1シートにまとめて取り込む方法
も紹介していますので、もしよろしければこちらも御覧ください。

 

¥891 (2023/02/02 12:04時点 | Amazon調べ)
Microsoft Public Affiliate Program (JP)(マイクロソフトアフィリエイトプログラム)