ダイアログボックスを表示したい。
下記処理コードを実行したときに、
ファイル選択のダイアログ表示をさせるのにファイル名を決まった形にしないと駄目みたいです。
(例)strLookupFileName = "abcms_E000_H*.csv;"
ファイル名に関係なくダイアログを表示させるにはどうしたら良いのでしょうか?
今現在、ファイル名を適当なものに変えると「キャンセルされました。」のメッセージボックスが表示されます。
例:strLookupFileName = "abc明細.xls"←エラー(これでも可に)
(処理コード)
'ファイル選択
strFileName = FileNameGet(Me.Hwnd, strHomeDirectory, strLookupFileName, "CSV ファイル", "ファイル選択")
If strFileName = "" Then
MsgBox "キャンセルされました。", vbInformation + vbOKOnly, " "
Exit Sub
End If
↓
Public Function FileNameGet(Owner As Variant, DefaultDirectory As String, DefaultFilter As String, DefaultFilterName As String, Title As String) As Variant
On Error GoTo Err
Dim dlg As OPENFILENAME
Dim rslt As Long
dlg.hwndOwner = Owner
dlg.hInstance = 0
'dlg.nFilterIndex = 0
dlg.lpstrTitle = Title & Chr(0) & Chr(0)
dlg.lpstrFileTitle = Space(256) & Chr(0) & Chr(0)
dlg.lpstrInitialDir = DefaultDirectory & Chr(0) & Chr(0)
dlg.lpstrFile = DefaultFilter & Space(256) & Chr(0) & Chr(0)
dlg.lpstrFilter = DefaultFilter & Chr(0) & Chr(0)
dlg.nMaxFile = Len(dlg.lpstrFile)
dlg.nMaxFileTitle = Len(dlg.lpstrFileTitle)
dlg.lStructSize = Len(dlg)
rslt = GetOpenFileName(dlg)
If rslt = 0 Then
FileNameGet = ""
Exit Function
End If
'ファイル名チェック
If IsNull(dlg.lpstrFile) Or dlg.lpstrFile = "" Then
MsgBox "ファイル名が取得できませんでした。", vbInformation + vbOKOnly, " "
FileNameGet = Null
Exit Function
End If
'FileNameGet = StrConv(MidB(StrConv(dlg.lpstrFile, vbFromUnicode), 1, (dlg.nFileExtension + 3)), vbUnicode)
FileNameGet = Left$(dlg.lpstrFile, InStr(dlg.lpstrFile, vbNullChar) - 1
On Error GoTo 0
Exit Function
Err:
MsgBox Err.Description
End Function
お礼
>End ステートメント の出番はほぼありません 了解しました。Resumeを使わないとダメなんですね。 ありがとうございました。