VBA/指定ファイル名取得

参照:https://www.moug.net/tech/acvba/0110015.html
実験対象バージョン:Excel2010

サンプル

Excel(VBA)よりファイルを選び、ファイルを開いたりの処理に不可欠な処理です。
ファイル名取得画面のサンプル
上記からファイルを取得することも可能です。

メソッド部

FileName

※メニューバーの[ツール(T)]→[参照設定(R)...]→「Microsoft Office ×× Object Library」にチェックを入れて[OK]が必要です。
ファイルを開く際の設定
ファイルを開く際の設定2

                        Function FileName() As String
      
                            '=====================
                            '   ファイル指定
                            '=====================
                            With Application.FileDialog(msoFileDialogOpen)
                                .Title = "ファイルの選択"
                                'ファイルの種類を設定
                                .Filters.Clear
                                .Filters.Add "すべてのファイル", "*.*"
                                '複数ファイル選択を許可しない
                                .AllowMultiSelect = False
                        
                                'ダイアログを表示
                                If .Show = -1 Then
                                    'ファイルが選択されたとき
                                    'そのフルバスを返り値に設定
                                    FileName = Trim(.SelectedItems.Item(1))
                                Else
                                    'ファイルが選択されなければ長さゼロの文字列を返す
                                    FileName = ""
                                End If
                            End With
         
                        End Function
                    
10行目のファイルを一部にすることも可能です。
例えば、以下のようにするといいでしょう。
                        .Filters.Add "Excel ブック (*.xlsx)", "*.xlsx"
                    
複数上記の形で増やしていくことも可能です。

呼び出し(仮)

test


                    Sub test()
                       MsgBox FileName
                    End Sub
                    
左記は試すようなのでどんな感じでファイル名が入るか確認用です。
実際はこのファイル名を基に処理を実行させていきます。