Menu

Excel EXCEL2016 VBA ワイルドカードで

Excel EXCEL2016 VBA ワイルドカードで。そんな場合はDir関数を使います。EXCEL2016 VBA ワイルドカードでファイルを開きたい

sub macro2()
Dim wb As Workbook Set wb = Workbooks Open(filename:=CreateObject("WScript Shell") SpecialFolders("Desktop") & "\什器在庫表国内_2019 05 01~ xlsm")

’様々な処理

wb Close True & x27;保存して閉じる

end sub

デスクトップフォルダには什器在庫表国内で始まるファイルは、
上記のファイル1つだけです

Workbooks Open(filename:=CreateObject("WScript Shell") SpecialFolders("Desktop") & "\什器在庫表国内_2019 05 01~ xlsm") を

Workbooks Open(filename:=CreateObject("WScript Shell") SpecialFolders("Desktop") & "\什器在庫表国内_* xlsm")
としたのですが
openメソッドが失敗しましたと表示されてしまって、開きません

どのようにしたら良いでしょうか

ご教示くださいファイルの操作[名前を指定してブックを開く]。ファイルの種類を表す任意の文字列; 表示するファイルの拡張子ワイルドカード
可」や。バリアント型で「 」として
も判定できますが。これはが内部で自動型変換をしてくれているからです。

[ファイルを開く]ダイアログボックスを表示するGetOpenFilename。[ファイルを開く]ダイアログボックスを表示するメソッド
| 引数には。ファイルフィルタ文字列とワイルドカードを
ペアにして。「,カンマ」で区切りって指定します。ファイルの種類を複数
指定Excel。フォルダの指定をしたあとは「」にワイルドカードを使用して「」を含む
ファイル名を。順番にループで取得します。 「
」はファイル名がマクロの書かれた

そんな場合はDir関数を使います。>Workbooks.Openfilename:=CreateObjectWScript.Shell.SpecialFoldersDesktop/什器在庫表国内_*.xlsm をDim file As Stringfile = DirCreateObjectWScript.Shell.SpecialFoldersDesktop/什器在庫表国内_*.xlsmWorkbooks.Open Filename:=CreateObjectWScript.Shell.SpecialFoldersDesktop/fileにしてみて下さい。ファイルの存在チェックにも使えます。Dim file As Stringfile = DirCreateObjectWScript.Shell.SpecialFoldersDesktop/什器在庫表国内_*.xlsmIf file =ThenMsgBox ファイルがありませんExit SubEnd IfWorkbooks.Open Filename:=CreateObjectWScript.Shell.SpecialFoldersDesktop/fileまたはDesktopフォルダも変数にすると見やすくなると思います。Dim desktop As StringDim file As Stringdesktop = CreateObjectWScript.Shell.SpecialFoldersDesktop/file = Dirdesktop什器在庫表国内_*.xlsmIf file =ThenMsgBox ファイルがありませんExit SubEnd IfWorkbooks.Open Filename:=desktopfileWorkbooks.Open で複数ファイルを開くことはできないようです。やるなら、該当ファイル名を取得し、ループで開いていくようです。Sub 指定フォルダーのExcelファイルを全て開く Const DIR_PATH = C:/tmp Dim fl_name As String fl_name = DirDIR_PATH/*.xls* If fl_name =Then MsgBox Excelファイルがありません。 Exit Sub End If Do Workbooks.Open Filename:=DIR_PATH/fl_name fl_name = Dir Loop Until fl_name = End Sub

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です