シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWorkbook.Path & FolderName "*") で構文エラーとなります?連結するにはどう書き換えたら良いかご教授いただけませんでしょうか?よろしくお願いいたします。
///////////////////////
Sub シートコピー()
Application.DisplayAlerts = False
Dim A
Dim FolderName As String '文字列を入れる変数として「FolderName」を使う
FolderName = Application.GetOpenFilename 'ダイアログを用いて選択したファイルのパスをFolderNameとする
A = Dir(ThisWorkbook.Path & FolderName "*") 'フォルダ内のブック名を取得
Do While A <> ""
'ブックを開く
Workbooks.Open ThisWorkbook.Path & "\FolderName\" & A
With ActiveWorkbook
'シートをコピーして取得
.Worksheets("利用状況表(保育短時間)").Copy After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
'シート名をブック名に変更
ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name = Left(.Name, 6)
.Close False 'ブックを閉じる
End With
A = Dir() '次のブック名を取得
Loop
End Sub
No.2ベストアンサー
- 回答日時:
ダイアログでファイルのフルパスを取得するより、フォルダを取得した方が宜しいのでは?
スマホなのでコードを全般に書き直すのは諸先輩方にお任せしますけど。
& "\FolderName\" &
これも変数を文字列にしてはダメじゃないかなと。
No.4
- 回答日時:
No.3続き
vbaなんだから、1ステップずつ動かして、その時の
ThisWorkbook.Pathの中身、FolderNameの中身、
カーソル当てれば確認出来るでしょ?
No.3
- 回答日時:
そもそも変じゃ無い?
ThisWorkbook.Pathは、仮にデスクトップに置いてあるブックなら
"C:\Users\user\Desktop"の様になり、
FolderName = Application.GetOpenFilename も
"C:\Users\user\・・・・"の様になるわけ。
どっちも、フルパスで、C:\から始まる訳だから、
それを連結したら、
C:\・・・・・が2回も出てくるよ。
No.1
- 回答日時:
文字列の連結をする。
A = Dir(ThisWorkbook.Path & FolderName "*")
↓
A = Dir(ThisWorkbook.Path & FolderName & "*")
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) 複数のブックをひとつのブック(複数のシートにまとめる)場合にシートとの順番について 5 2022/12/28 20:47
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
ACCESSVBA からExcelの他ブック...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
ワイルドカード「*」を使うとう...
-
【ExcelVBA】インデックスが有...
-
VBAで複数のブックを開かずに処...
-
VBAで別ブックのシートを指定し...
-
VBA コードを実行すると画面が...
-
VBS Bookを閉じるコード
-
【マクロ】違うフォルダにある...
-
[Excel VBA] 複数のサブフォル...
-
vbaで他のブックに転記したい。...
-
vbaでvbaProjectのパスワード解...
-
pythonでクラスで複数のメソッ...
-
VBA 実行時エラー 2147024893
-
[Excel]ADODBでNull変換されて...
-
Excelのマクロについて教えてく...
-
VBA 別ブックからコピペしたい...
-
マクロを利用して別ファイルに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
(マクロ)データをAブックからB...
-
VBS Bookを閉じるコード
-
VBA 別ブックからコピペしたい...
-
VBA 複数のエクセルから一つの...
-
VBA シート名が一致した場合の...
-
【ExcelVBA】インデックスが有...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
vbaでvbaProjectのパスワード解...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBA コードを実行すると画面が...
-
【VBA】全シートの計算式を全て...
-
複数のエクセルブックをひとつ...
-
VBA 実行時エラー 2147024893
-
ExcelのVBAです。フォルダ内の...
おすすめ情報
ありがとうございます。
A = Dir(ThisWorkbook.Path & FolderName & "*")で連結し直したところ、実行時エラー52 ファイル名または番号が不正です、となりました?
ご指摘のとおり、フォルダ内のファイルが対象なのでダイアログでフォルダの指定をする方法をご教授頂けるとありがたいです。