- 締切済み
Excelのマクロについて
Excelのマクロで 組み込みダイアログを開いて 選択したファイルの名前だけを取得したい場合 どうしたらよいのでしょうか? 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- wildcard
- ベストアンサー率54% (54/100)
#1さんの方法が一般的ですが、こんな方法もあります。 Dim File_Name As String On Error Resume Next File_Name=Dir(Application.GetOpenFilename(, , "ファイルを選択して下さい")) On Error GoTo 0 この場合、File_Nameに拡張子を含むファイル名が格納されます。 なお On Error Resume Next は、ファイルが指定されない場合(キャンセルされた場合)マクロがエラーで停止してしまうのを防ぎ、処理を次行に続行させる為に記述しています。その場合、File_Nameには何も代入されません。最後の On Error GoTo 0 は、エラーが発生した場合の処理を通常の方法に戻します。 もしユーザーに必ずファイルを指定させたい場合は、以下のようになります。(本当にキャンセルしたい場合、回避できないので、あまりお勧めできませんが…(^^;) Dim File_Name As String On Error Resume Next Do While File_Name = "" File_Name=Dir(Application.GetOpenFilename(, , "ファイルを選択して下さい")) Loop On Error GoTo 0
- nishi6
- ベストアンサー率67% (869/1280)
Excel97でも動くように書いています。ご参考に。 標準モジュールに貼り付け。 ↓ Sub GetFileName() Dim fulFileName As String 'フルパスファイル名 Dim FileName As String 'ファイル名 Dim p As Integer 'カウンタ fulFileName = Application.GetOpenFilename() If fulFileName <> "False" Then For p = Len(fulFileName) To 1 Step -1 If Mid(fulFileName, p, 1) = "\" Then FileName = Right(fulFileName, Len(fulFileName) - p) MsgBox "選択ファイル名は " & FileName Exit For End If Next End If End Sub