以下のVBAコードだとフォルダの場所が決まってしまっているので
フォルダの場所を
sheet2のセルB2へ記載した「D:\users\○○¥~」
みたいに場所を都度指定できるようにしたいです。
可能でしょうか??
※ちなみにフォルダパスのところでsheet2.B2を指定してみたのですが
うまく動きませんでした・・・
お力お貸しいただけますと幸いです。よろしくお願いいたします。
Sub merge()
Dim Folder_path As String, buf As String, Target As Worksheet
Dim LastCol As Long, TargetR As Long, TargetC As Long
Dim ctr As Long: ctr = 0
Application.ScreenUpdating = False
With Sheets("Sheet1")
'1行目クリア、2行目以降を削除
.Rows(1).ClearContents
.Rows("2:" & Rows.Count).Delete
'フォルダの場所
Folder_path = "D:\Sample\CSV\"
'ファイルを順番に開く
buf = Dir(Folder_path & "*.csv")
Do While buf <> ""
ctr = ctr + 1
Workbooks.Open Folder_path & buf, ReadOnly:=True
'CSVシート名を変数に入れる
Set Target = Workbooks(buf).Sheets(Split(buf, ".")(0))
'mergeシートのA1基準での最終列
LastCol = .Cells(1, Columns.Count).End(xlToLeft).Column
'開いたシートのA1基準での最終行、最終列
TargetR = Target.Cells(Rows.Count, 1).End(xlUp).Row
TargetC = Target.Cells(1, Columns.Count).End(xlToLeft).Column
'値で転記
If ctr = 1 Then
.Range(.Cells(1, LastCol + 1), .Cells(TargetR, LastCol + TargetC)).Value = _
Target.Range(Target.Cells(1, 1), Target.Cells(TargetR, TargetC)).Value
Else
.Range(.Cells(1, LastCol + 1), .Cells(TargetR, LastCol + TargetC - 2)).Value = _
Target.Range(Target.Cells(1, 3), Target.Cells(TargetR, TargetC)).Value
End If
'次へ
Workbooks(buf).Close False
buf = Dir()
Loop
'空白のA列削除
.Range("A:A").Delete
Application.ScreenUpdating = True
MsgBox "END"
End With
End Sub
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
sheet2.B2にパスが正しく格納されていると言う前提で・・・。
D:\Sample\CSV\ の様に最後に¥で終る事が前提です。
With Sheets("Sheet1")が記述されてしまってるので、Sheet2で有る事を明示する必要があります。
↓
Folder_path = Worksheets("Sheet2").Range("B2").Value
No.2
- 回答日時:
こんにちは
セル指定方法はすでに回答されていますね
以下参考程度で
>都度、
フォルダパスを指定するならフォルダピッカーを使う方が良いかも
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "フォルダを選択してください"
'.InitialFileName = "D:\Sample"
If .Show = 0 Then Exit Sub
Folder_path = .SelectedItems(1)
End With
挿入位置はApplication.ScreenUpdating = False の上
.InitialFileName で初期親フォルダパスを指定することも出来ます
Folder_path = "D:\Sample\CSV\" は不要です
No.1
- 回答日時:
>ちなみにフォルダパスのところでsheet2.B2を指定してみたのですが
どのように書きましたか?
想像では
Folder_path = sheet2.B2
とでも記述したのではないかと思いますが、これでは「オブジェクトがありません」や「プロパティーがありません」のようなエラーになっていると思います。
sheet2のセルB2へ記載した「D:\users\○○¥~」を文字列情報として得るためには
Folder_path = Sheets(”sheet2”).Range("B2").Text
のように記述しなければいけませんよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA マクロ フォルダ名を...
-
Windows10でコマンドプロンプト...
-
VBA 最新のフォルダ取得
-
Excelvbaでブックをコピー名前...
-
エクセル 一つ上の階層の別フ...
-
デスクトップの画像をhtmlに表...
-
バッチファイルで指定フォルダ...
-
ThisWorkbookがあるフォルダ更...
-
VB.net開発途中でのバックアッ...
-
excelマクロ 冒頭3文字が一致す...
-
エクセルマクロ フォルダの選...
-
エクセルマクロで指定フォルダ...
-
エクセルVBA ファイル移動につ...
-
Excel VBA で フォルダ名の一部...
-
VBScriptでのフォルダ指定ダイ...
-
フォルダ内のファイルの作成日...
-
エクセルのプロパティーでセキ...
-
A列に記載されているフォルダ...
-
バッチファイルのコピーで
-
同じファイル名 上書きしないフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
会社のネットワーク上のファイ...
-
VBA 最新のフォルダ取得
-
デスクトップの画像をhtmlに表...
-
Access VBA で フォルダ権限...
-
VBA フォルダ名に特定の文字を...
-
ファイル名と同名のフォルダを...
-
ExcelのVBAでフォルダ指定がで...
-
【VBS】古い日付のフォルダを削...
-
パス名に2バイト文字(マルチバ...
-
ExcelVBAでフォルダへのハイパ...
-
C ファイル出力で、フォルダが...
-
【マクロ】フォルダにファイル...
-
[VBS] Unicodeの文字化けを防ぎ...
-
あるフォルダの中にあるファイ...
-
VBA フォルダの複数選択ができない
-
サーバ内のフォルダ名と各フォ...
-
Excelのハイパーリンクについて...
-
Excelで指定したフォルダに保存...
-
excelマクロ 冒頭3文字が一致す...
おすすめ情報