
シートをコピーする下記記述でダイアログを用いた記述がわかりません?( 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 別ブックからコピペしたい...
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
選択されたブックを開いてデー...
-
WSHによるExcelのセルコピー&...
-
エクセル フォルダ内の.xlsフ...
-
VBAで別のブックにシートをコピ...
-
Excelのマクロコードについて教...
-
Excel2007VBAファイルの表示に...
-
Excel VBA 違うxlsファイルの指...
-
VBA 二つのブックをうまく扱え...
-
VBA コードを実行すると画面が...
-
VBS Bookを閉じるコード
-
【マクロ】アクティブセルにブ...
-
VBA アプリケーション定義また...
-
【前回の続きです、ご教示くだ...
-
ワイルドカード「*」を使うとう...
-
エクセルVBAが途中で止まります
-
複数のエクセルブックをひとつ...
-
【ExcelVBA】zip圧縮されたCSV...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
VBA 別ブックからコピペしたい...
-
別ブックをダイアログボックス...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
【Excel VBA】書き込み先ブック...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
Excel2007VBAファイルの表示に...
-
VBAで複数のブックを開かずに処...
-
[Excel]ADODBでNull変換されて...
-
Excelファイルを開くとき、読み...
-
VBA 実行時エラー 2147024893
-
Excelマクロ 該当する値の行番...
-
Excel にて、 リストボックスの...
-
VBS Bookを閉じるコード
-
複数のエクセルファイルとシー...
-
【ExcelVBA】インデックスが有...
おすすめ情報
ありがとうございます。
A = Dir(ThisWorkbook.Path & FolderName & "*")で連結し直したところ、実行時エラー52 ファイル名または番号が不正です、となりました?
ご指摘のとおり、フォルダ内のファイルが対象なのでダイアログでフォルダの指定をする方法をご教授頂けるとありがたいです。