1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【VBA】任意のフォルダーのファイルを全て処理するコード

Last updated at Posted at 2021-08-13

#はじめに
とあるフォルダーに処理したいファイルを複数個入れて、それらを読み込んで処理するコードです。

#コード

Sub test()
'パスの指定。このコードではマクロがあるフォルダーを指定

  DIR_PATH = ThisWorkbook.Path
  Dim fl_name As String
  fl_name = Dir(DIR_PATH & "\*.xlsx*")
  If fl_name = "" Then
    MsgBox "エクセルファイルがありません。"
    Exit Sub
  End If

  Do
    Workbooks.Open Filename:=DIR_PATH & "\" & fl_name
    fl_name = Dir
    
    'ここに処理を入れる。
   Cells(1,1)="Hello"
    
  Loop Until fl_name = ""
End Sub

#コードの説明
 最初にパスを設定します。
 上のコードでは、Thisworkbook.Pathとしているため、このマクロが書かれたファイルのある場所を読み込むことになります。
 また読み込むファイルの拡張子を"xlsx"と指定しています。この2箇所を変えることで、他の場所・ファイルを読み込むことが出来ます。
 後はDo loopで全てのファイルに処理を施します。今回はセルの(1,1)、すなわちセルA1にHelloと入力されます。

#実際の使い方
例えば下の画像のような状態でtestに入れた上記のコードを実行すると、Book1~Book4のセルA1が"Hello"になります。
image.png

#終わりに(注意点)

  • このコードはopenでファイルを開くため、実行する処理の最後にcloseを入れた方がいいです。特に大量のファイルを処理する前にはテストをしておかないとPCが落ちてしまいます。
  • このコードは処理速度の最適化が出来てません。
  • 最後までお読みいただきありがとうございます。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?