• 締切済み

Excelのマクロについて

Excelのマクロで  組み込みダイアログを開いて 選択したファイルの名前だけを取得したい場合 どうしたらよいのでしょうか? 宜しくお願いします。

みんなの回答

  • wildcard
  • ベストアンサー率54% (54/100)
回答No.2

#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)
回答No.1

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

関連するQ&A

専門家に質問してみよう