非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Excel/VBAでファイルダイアログを使う

   

Excelマクロでファイルダイアログを使う方法です。

ファイルを開く際にファイルを選ばせたり、保存を促したりする際に自動でファイルダイアログを起動させる時に使えます。

広告

ファイルを開く場合(オープンダイアログ)

ファイルを開くためのダイアログを起動させるには以下のソースコードとなります。Application.GetOpenFilename メソッドを使います。引数はファイルタイプです。

返値は指定したファイルのフルパスになりますが、「キャンセル」ボタンを押した際はFalseを返すので、それに応じて処理を変えます。

Sub OpenFileDialog()
  fname = Application.GetOpenFilename("Excelファイル,*.xlsx")

  If fname <> False Then
    MsgBox ("開く処理します。ファイル名: " & fname)
  Else
    MsgBox ("開く処理を中断します")
  End If
End Sub
 

 

実行すると以下のようなダイアログが起動します。

 

ファイルを保存する場合(セーブダイアログ)

ファイルを保存するためのダイアログを起動させるには以下のソースコードとなります。オープンダイアログ同様、Application.GetOpenFilename メソッドを使います。引数はファイルパスとファイルタイプです。セーブダイアログの場合、保存先とファイル名を事前に指定できます。

返値は同じく指定したファイルのフルパスになり、「キャンセル」ボタンを押した際はFalseを返します。

Sub SaveFileDialog()
  fname = Application.GetSaveAsFilename("C:\Users\...\test.xlsx", "Excelファイル,*.xlsx")

  If fname <> False Then
    MsgBox ("保存処理します。ファイル名: " & fname)
  Else
    MsgBox ("保存処理を中断します")
  End If
End Sub
 

 

実行すると以下のようなダイアログが起動します。

 

広告

 - Excel, VBA