#221 Officeオブジェクトを使った"ファイル選択"ダイアログ VBA

Accessから「Microsoft Office10.0 Object Library」を呼び出して、"ファイル選択"ダイアログを表示、選択されたファイルを得るための方法です。

※下記方法を使うためには、VBEの[ツール]-[参照設定]メニューを実行し、「参照可能なライブラリファイル」一覧の"Microsoft Office10.0 Object Library"の項目にチェックを付けておく必要があります。


まず、ダイアログを表示し、そこで選択されたファイルのフルパスを返すサンプルプロシージャを示します。これを標準モジュールなどに記述してください。
Public Function GetFileName() As String
'ファイルを開くダイアログの例

  Dim intRet As Integer
  
  With Application.FileDialog(msoFileDialogOpen)
    'ダイアログのタイトルを設定
    .Title = "ファイルを開くダイアログの例"
    'ファイルの種類を設定
    .Filters.Clear
    .Filters.Add "Microsoft Access データベース", "*.mdb"
    .Filters.Add "Microsoft Access プロジェクト", "*.adp"
    .Filters.Add "MDE ファイル", "*.mde"
    .Filters.Add "すべてのファイル", "*.*"
    'ファイルの種類の初期値を設定
    .FilterIndex = 1
    '複数ファイル選択を許可しない
    .AllowMultiSelect = False
    '初期パスを設定
    .InitialFileName = CurrentProject.Path
    'ダイアログを表示
    intRet = .Show
    If intRet <> 0 Then
      'ファイルが選択されたとき
      'そのフルバスを返り値に設定
      GetFileName = Trim(.SelectedItems.Item(1))
    Else
      'ファイルが選択されなければ長さゼロの文字列を返す
      GetFileName = ""
    End If
  End With

End Function

使用例:
Dim strFileName As String

'ファイルを開くダイアログを表示
strFileName = GetFileName()

'選択結果を評価
If Len(strFileName) > 0 Then
  MsgBox strFileName & "が選択されました!"
Else
  MsgBox "ファイルは選択されませんでした!"
End If


ダイアログの表示例


選択結果を表示したところ

| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved