Vba: 別のブックからデータを抽出する方法
VBA で次の構文を使用して、別のブックからデータを抽出できます。
SubExtractData ()
'turn off screen updates to make this run faster
Application.ScreenUpdating = False
'specify workbook we want to extract data from
Set wb = Workbooks.Open(" C:\Users\bobbi\OneDrive\Desktop\my_data.xlsx ")
'extract all data from Sheet1 and paste as new sheet in current workbook
wb.Sheets(" Sheet1 ").Copy After:=ThisWorkbook.Sheets(1)
'do not save any changes to workbook we extract data from
wb.Close SaveChanges:=False
'turn screen updating back on
Application.ScreenUpdating = True
End Sub
この特定のマクロは、次の場所にあるmy_data.xlsxというワークブックを開きます。
C:\ユーザー\ボブ\デスクトップ\my_data.xlsx
次に、 Sheet1というシートのすべてのデータをこのブックにコピーし、現在アクティブなブックの最初のシートの直後のシートにコピーします。
注: Application.ScreenUpdating = False行は、より高速に実行されるように、このプロセスをバックグラウンドで実行するように VBA に指示します。
次の例は、この構文を実際に使用する方法を示しています。
例: VBA を使用して別のワークブックからデータを抽出する
次の Excel ワークブックを開いて表示しているとします。
次に、別のワークブックが閉じられているが、次のデータが含まれているとします。
次のマクロを使用して、この閉じたブックのシート 1からデータを抽出し、現在開いているブックの最初のシートの直後に新しいシートに貼り付けることができます。
SubExtractData ()
'turn off screen updates to make this run faster
Application.ScreenUpdating = False
'specify workbook we want to extract data from
Set wb = Workbooks.Open(" C:\Users\bobbi\OneDrive\Desktop\my_data.xlsx ")
'extract all data from Sheet1 and paste as new sheet in current workbook
wb.Sheets(" Sheet1 ").Copy After:=ThisWorkbook.Sheets(1)
'do not save any changes to workbook we extract data from
wb.Close SaveChanges:=False
'turn screen updating back on
Application.ScreenUpdating = True
End Sub
このマクロを実行すると、次の出力が表示されます。
閉じたワークブックのデータが抽出され、新しいシートとして現在アクティブなワークブックに貼り付けられていることに注意してください。
新しいシートの名前は現在のシートと同じなので、自由に変更してください。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。