0
VBAの新機能です。ダイアログボックスのキャンセル/終了ボタンがクリックされるたびにタイプミスマッチのエラーが発生します。エラーは、Application.GetOpenFileName行に表示されます。誰がここで間違っているのか分かっていますか?GetOpenFileNameマルチ選択:キャンセルをクリックするとTrueエラーが発生します。
Private Sub cmdBrowse_Click()
Application.ScreenUpdating = False
Dim i As Long, j As Long, iCheck As Long
Dim fname() As Variant
Dim wkbNameList As String, wkbNamePath As String
Dim win As Window
fname = Application.GetOpenFilename(filefilter:="Excel, *xlsx; *xlsm", MultiSelect:=True)
If fname = "False" Then
Exit Sub
End If
For i = LBound(fname) To UBound(fname)
workbooks.Open Filename:=fname(i)
wkbNameList = wkbNameList & workbooks(i + 1).Name & vbCrLf
wkbNamePath = wkbNamePath & fname(i) & " , "
Next i
関数はVariant型を返してみてください。1)文字列MultiSelectがfalseの場合、2)MultiSelectがtrueの場合は配列。3)ユーザーがキャンセルを押した場合のブール値。 –
@Kostasチェックしましたか?これは私の発見ではありません。 – h2so4
MSDN:https://msdn.microsoft.com/en-us/vba/excel-vba/articles/application-getopenfilename-method-excel –