
シートをコピーする下記記述でダイアログを用いた記述がわかりません?( 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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別ブックをダイアログボックス...
-
エクセルマクロで、他ブックか...
-
VBA シートをコピーする際に Co...
-
現在開いているbook全てを対象...
-
VBA シート名が一致した場合の...
-
Excelマクロ 該当する値の行番...
-
【ExcelVBA】インデックスが有...
-
フォルダ内の全てのファイルに...
-
Excel にて、 リストボックスの...
-
【マクロ】実行時エラー '424':...
-
Excel UserForm の表示位置
-
ロックされていないセル内をクリア
-
あああ..ああい..ああう とい...
-
特定の文字がある行以外を削除...
-
結合されたセルをプルダウンの...
-
マクロの「SaveAs」でエラーが...
-
VBAで、特定の文字より後を削除...
-
エクセルでセルをクリックする...
-
Excelの行数、列数を増やしたい...
-
【VBA】【ユーザーフォーム_Lis...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のエクセルファイルとシー...
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
【Excel VBA】書き込み先ブック...
-
2つ目のコンボボックスが動作...
-
[Excel]ADODBでNull変換されて...
-
Excelマクロ 該当する値の行番...
-
VBA 実行時エラー 2147024893
-
Excelのマクロコードについて教...
-
Excel にて、 リストボックスの...
-
【ExcelVBA】インデックスが有...
-
VBA アプリケーション定義また...
-
【Excel VBA】表の列の値毎に分...
おすすめ情報
ありがとうございます。
A = Dir(ThisWorkbook.Path & FolderName & "*")で連結し直したところ、実行時エラー52 ファイル名または番号が不正です、となりました?
ご指摘のとおり、フォルダ内のファイルが対象なのでダイアログでフォルダの指定をする方法をご教授頂けるとありがたいです。