VBA初心者です。
教えてください。
指定のフォルダにある「管理シート・・・.xlsm」という”管理シート”以降のファイル名は
日々変わるエクセルファイルを開きたいです。
Workbooks.Open "\\Share\管理\管理シート * .xlsm"
上記で書くと指定ファイルが見つかりませんのエラーとなります。
ワイルドカードが使用できないのは分かったのですが
DIR関数の使い方とWorkbooks.Openへのつなぎ方がいまいちわかりません。
ご教授いただけますでしょうか。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
こんなものはいかがですか?
-----------------------------------------------------------------------------------------
Sub Sample()
Dim ファイル名 As Variant
CreateObject("WScript.Shell").CurrentDirectory = "\\Share\管理"
ファイル名 = Application.GetOpenFilename("管理ファイル,管理シート*.xlsm")
If ファイル名 <> False Then
Workbooks.Open ファイル名
Else
MsgBox "キャンセルされました"
End If
End Sub
-----------------------------------------------------------------------------------------
「管理シート○○○.xlsm」を選択して開くものです。
No.3
- 回答日時:
こんにちは。
>日々変わるエクセルファイルを開きたいです。
しかし、日々、管理シート*.xlsm 「*」(ワイルドカード)の部分が変わるようでしたら、確かに、#2さんのオープンダイアログが確実かもしれませんが、それをプログラムで判定する(本日に一番近いファイルとか)ということを考えてしまいます。
'//
Sub TestWBOpen()
Dim FName As String
Dim MyPath As String
Dim flg As Boolean
MyPath = "\\Share\管理\" '末尾は\を入れること
FName = Dir(MyPath & "管理シート*.xlsm", vbNormal)
Do While FName <> ""
If FName <> "." And FName <> ".." Then
Workbooks.Open MyPath & FName
flg = True
Exit Sub '今は最初に見つけたものを開く/続けて開かない
End If
FName = Dir
Loop
If flg = False Then
MsgBox "ファイルが見つかりませんでした。", vbExclamation
End If
End Sub
No.1
- 回答日時:
以下のサンプルが所定のフォルダ内の全ブック(*.xlsm)を処理する例です。
このマクロを格納したブックは、"\\Share\管理\管理シート"内に格納しないでください。(2重にオープンされてしまいます)
------------------------------------------------------
Public Sub 一括処理()
Const book_folder As String = "\\Share\管理\管理シート"
Dim bookname As String
bookname = Dir(book_folder & "\*.xlsm", vbNormal)
'全てのブックを処理する
Do While bookname <> ""
'1ブックのオープン
Workbooks.Open Filename:=book_folder & "\" & bookname
'そのブックの処理・・・・
'そのブックのクローズ
ActiveWorkbook.Close
'次のブックの取得
bookname = Dir()
Loop
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) 複数ブックの統合について Excel VBA 1 2022/05/13 09:48
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
ワイルドカード「*」を使うとう...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
【ExcelVBA】VBA実行でダイアロ...
-
VBS Bookを閉じるコード
-
VBA 実行時エラー 2147024893
-
ACCESSVBA からExcelの他ブック...
-
VBA コードを実行すると画面が...
-
【VBA】全シートの計算式を全て...
-
VBSでExcelのオープン確認
-
【ご教示ください】VBAの記述方...
-
マクロVBA別Excelブックにデー...
-
VBA ブックを開かずにブック内...
-
【ExcelVBA】インデックスが有...
-
[Excel]ADODBでNull変換されて...
-
【Excel VBA】書き込み先ブック...
-
ExcelのVBAコードについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
ワイルドカード「*」を使うとう...
-
複数のエクセルブックをひとつ...
-
【ExcelVBA】zip圧縮されたCSV...
-
vbaでvbaProjectのパスワード解...
-
VBAで別ブックのシートを指定し...
-
VBA コードを実行すると画面が...
-
VBSでExcelのオープン確認
-
VBA 別ブックからコピペしたい...
-
エクセルVBAでテキストボックス...
-
【Excel VBA】書き込み先ブック...
-
VBA シート名が一致した場合の...
-
フォルダ内の全てのファイルに...
-
VBAで複数のブックを開かずに処...
-
VBS Bookを閉じるコード
-
エクセルのマクロを使ってメー...
-
VBAで別のブックにシートをコピ...
-
ACCESSでExcelにデータ出力、高...
おすすめ情報