Excel VBAでファイルの選択ダイアログを表示して、ファイルのフルパスを取得する方法

エンジニア

※本記事は作成日より一年以上が経過しています。最新の情報ではないので、ご注意ください。

読了の目安時間: 156

ファイルの選択ダイアログの表示および指定したファイルのフルパス取得には、GetOpenFilename関数を使います。

▼構文
Object.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)

▼GetOpenFilenameの詳細
https://msdn.microsoft.com/ja-jp/library/office/ff834966.aspx

例外処理を入れて記述すると、下記の感じです。

Sub file_cap()

  Dim h_txt As String
  Dim f_Path As Variant
  Dim ws As Worksheet

  'プロパティの宣言
  Set ws = ActiveSheet

  '例外処理
  On Error GoTo solve_err

  'ポップアップ・ダイアログの見出しタイトルを指定
  h_txt = "Excelファイルを選択して下さい"

  'ファイル参照ダイアログの表示
  f_Path = Application.GetOpenFilename("", , h_txt)

  If f_Path = False Then
  'キャンセルボタン時は終了
      End
  End If

  '取得したフルパスを表示
  MsgBox f_Path

  Exit Sub

solve_err:
  MsgBox "エラー番号:" & Err.Number
  MsgBox "エラー内容:" & Err.Description
  MsgBox "ヘルプファイル名" & Err.HelpContext
  MsgBox "プロジェクト名:" & Err.Source
  Resume Next

End Sub

MsgBoxにしているところを、セルや変数に代入することで、vba処理の中で、ファイルのフルパスを扱うことができます。

またGetOpenFilenameでは、複数ファイルの取得や、指定した拡張子のファイルのみ選択を限定するなどの調整もできます。

最後に一言

かなり、便利。

本記事を気に入って頂けたら、facebookの「いいね!」を是非!

Excel VBAでファイルの選択ダイアログを表示して、ファイルのフルパスを取得する方法


本記事のシェアはこちらから!

  • このエントリーをはてなブックマークに追加
  • Pocket

PROFILE

yoshi

follow us in feedly

本ブログ・WebMakeBlog KIYOTATSUを運営しているYoshiと申します。PVは月間10万程度です。普段はWEB制作をやっています。過去、エンジニアの頃は、MATLAB/simulink/VBA/C/C++など扱っていました。生産管理、MECE、オブジェクト指向など、当時に得た知識はweb業界に入っても、かなり役立っています。