【VBA】指定したファイルを読み込む(Workbooks.Open)

【VBA】指定したファイルを読み込む(Workbooks.Open) VBA
この記事は約3分で読めます。

Excel VBA マクロでファイルを読み込み(Workbooks.Open)シートに書き出すコードをご紹介します。

開いたファイルのデータを全て移すことができるので非常に便利です!

ファイルの読み込みを繰り返すと複数ファイルを1つのシートにまとることもできるので、ぜひ参考にしてください。

スポンサーリンク
[ad01]

コンパイルエラーの場合

「コードを実行した際にユーザ定義型は定義されていません。」とエラーが表示された場合

エディタの「ツール」⇒「参照設定」を選択して「Microsoft Scripting Runtime」にチェックを入れてください。

処理の流れ

  1. 実行前にSheet1のデータをクリア
  2. 指定したファイルを開く
  3. 開いたファイルのデータをSheet1にコピー
  4. 読み込んだファイルを閉じる
うめ
うめ

指定したファイルを開けるので汎用性は高いです!

コピペで使えるコード

コピペで使えるコードはこちら。
標準モジュールに貼り付けて使用してください。

開いたデータのコピー先を変更する場合は7行目「Set Ws1 = Worksheets(“Sheet1“)」のシート名を変更してください。

Sub ファイルを読み込む()

Application.ScreenUpdating = False  '画面の更新を停止
Application.DisplayAlerts = False   '確認メッセージを停止

Dim Ws1 As Worksheet
Set Ws1 = Worksheets("Sheet1")

'事前にデータをクリア
Ws1.Cells.Clear

MsgBox "読み込むファイルを指定して下さい。", vbInformation

'指定したファイルのパスを取得
Dim Fname As String: Fname = Application.GetOpenFilename

'ファイル名を取得した場合、読み込んだデータをSheet1にコピー
If Fname <> "False" Then

    Dim Fso As FileSystemObject
    Set Fso = New FileSystemObject

  'パスからファイル名と拡張子を取得
    Dim FileOpenName  As String: FileOpenName = Fso.GetFileName(Fname)
    
  '取得したパスのファイルを開く
    Workbooks.Open Filename:=Fname
    
  '読み込みファイルのセルの全範囲をSheet1にコピー
    Workbooks(FileOpenName).Worksheets(1).UsedRange.Copy Ws1.Range("A1")
    
  '読み込みファイルを閉じる
    Workbooks(FileOpenName).Close SaveChanges:=False
    
    Else
    
    MsgBox "ファイルを確認できませんでした。再度実行してください。", vbExclamation
    Exit Sub

End If

Application.ScreenUpdating = True '画面の更新を開始
Application.DisplayAlerts = True '確認メッセージを開始

End Sub

この記事が気に入ったら
いいね ! しよう

Twitter で

VBAを学習する時間が取れない人

VBAは我流で組むことができますが、初心者だと作業時間が多く掛かったり、間違った部分を見つけるのに苦労したります。

VBAが組めるようになれば便利なことも多いですが、仕事をしながら勉強するのは結構大変…。

もし時間に追われて思うようにいかないのであればココナラで「VBAを組める人」に依頼してみませんか?

個人で販売しているため価格も抑えらえれます
まずはこちらから無料会員登録をして依頼をしてましょう!


VBA
スポンサーリンク
[ad01]
うめをフォローする
梅屋ラボ
タイトルとURLをコピーしました