
始めまして。
VBA初心者です。
2枚のCSVファイルをダイアログで各々指定し、保存する2枚のシートを1ブックにまとめたいのですが、うまくいきません。
現状は以下のようなマクロですが、別々のシートとなります。
よろしくお願い致します。
Sub 選択されたPDPファイルを開いて読み込む()
With Application.FileDialog(msoFileDialogOpen)
.Title = "ファイルを選択して[OK]ボタンをクリックしてください"
.AllowMultiSelect = False '複数選択不可
.Filters.Clear
.Filters.Add "1枚目", "*.csv", 1
If .Show = -1 Then .Execute 'キャンセルでなければ開く
End With
With Application.FileDialog(msoFileDialogOpen)
.Title = "2つめのファイルを選択して[OK]ボタンをクリックしてください"
.AllowMultiSelect = False '複数選択不可
.Filters.Clear
.Filters.Add "2枚目", "*.csv", 1
If .Show = -1 Then .Execute 'キャンセルでなければ開く
End With
End Sub
No.5ベストアンサー
- 回答日時:
こんにちは。
こちらにはレスはつかないかもしれませんが、コードを出しておきます。
ファイルオープン・ダイアログで、複数のCSVファイルを選択してください。
マルチセレクトにしてあります。
'標準モジュール
Sub CSVImportSheets()
Dim FileNames As Variant
Dim fn As Variant
FileNames = Application.GetOpenFilename _
("CSV(*.csv),*.csv", MultiSelect:=True)
If VarType(FileNames) = vbBoolean Then Exit Sub
For Each fn In FileNames
Worksheets.Add After:=Worksheets(Worksheets.Count)
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & fn, _
Destination:=Range("A1"))
.Name = ActiveSheet.Name
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileCommaDelimiter = True
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ActiveSheet.UsedRange.QueryTable.Delete
Next fn
End Sub
早速のご回答有難うございました。
早速試してみましたが私の思うような内容でした。
大変参考になりました。
また、機会ありましたらよろしくお願い致します。
No.4
- 回答日時:
こんにちは。
>選択したcsvファイルを1ブックに複数シート作成したかったのですが、ご質問の書き方が不十分でした。
QueryTable で、シートにインポートすればよいのでは?
No.3
- 回答日時:
こんばんは。
VBAで作らなくてはも、単に、二つのCSV を足すなら、コマンドプロンプトでしてしまえばよいのではありませんか?
copy test01.csv+test02.csv test03.csv
これで、test03.csv という結合ファイルが出来ますけれども。
もし、VBAで行いたいなら、それぞれのファイル名を確保して、Shell で行えばよいだけです。
No.2
- 回答日時:
#01です。
読み込むCSVが2つなら先のコードで問題がありませんが、将来的に数が増えることを想定し最後から6行目を変更します変更前
ActiveSheet.Cells(Selection.Rows.Count + 1, 1).Select
変更後
ActiveSheet.Cells(ActiveCell.CurrentRegion.Rows.Count + 1, 1).Select
なお余談ですがファイルの選択もFor~Nextに入れてしまえば、コードもすっきりすると思いますよ
早速のご回答有難うございました。
非常に参考になりました。
選択したcsvファイルを1ブックに複数シート作成したかったのですが、ご質問の書き方が不十分でした。
研究してみます。
ありがとうございました。
No.1
- 回答日時:
考え方としては2つのCSVファイルを開いて、それぞれのシートをコピーして、マクロが登録されている元のブックに貼り付ける方法が素直だと思います。
ちょっとベタですがこんな具合ですSub Test()
Dim bkName(2) As String
Dim wb As Workbook
Dim idx As Integer
Set wb = ActiveWorkbook
Range("A1").Select
With Application.FileDialog(msoFileDialogOpen)
.Title = "ファイルを選択して[OK]ボタンをクリックしてください"
.AllowMultiSelect = False '複数選択不可
.Filters.Clear
.Filters.Add "1枚目", "*.csv", 1
If .Show = -1 Then .Execute 'キャンセルでなければ開く
End With
bkName(1) = ActiveWorkbook.Name
With Application.FileDialog(msoFileDialogOpen)
.Title = "2つめのファイルを選択して[OK]ボタンをクリックしてください"
.AllowMultiSelect = False '複数選択不可
.Filters.Clear
.Filters.Add "2枚目", "*.csv", 1
If .Show = -1 Then .Execute 'キャンセルでなければ開く
End With
bkName(2) = ActiveWorkbook.Name
For Idx = 1 To 2
Workbooks(bkName(Idx)).Activate
Cells.CurrentRegion.Copy
wb.Activate
ActiveSheet.Paste
ActiveSheet.Cells(Selection.Rows.Count + 1, 1).Select
Next Idx
Application.CutCopyMode = False
Workbooks(bkName(1)).Close False
Workbooks(bkName(2)).Close False
End Sub
またFSO(FileSystemObject)を使って1行ずつデータを読み込み、","をタブに変換してクリップボード経由でセルに貼り付ける方法もあります。こちらはコードは上げませんが、慣れてきたら調べてみたら良いと思います
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのVBAについて とある...
-
FTPコマンド mgetでとまってし...
-
複数のcsvファイルを統合、でも...
-
yahooカレンダーのデータをICS...
-
Python CSVファイルについて
-
エクセル 指定範囲をCSV出力
-
複数エクセルファイルの合成
-
エクセルマクロ、複数のCSVファ...
-
csv形式からbmpを作成
-
【Rコマンダー】データインポー...
-
大量のフォルダからひとつのフ...
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトのエラーに...
-
バッチでテキストファイルから...
-
バッチ処理でファイルの中身を...
-
コマンドプロンプトで作成日時...
-
VBAでワークシートを引数として...
-
アクセス 壊れた? 「ファイ...
-
.txtではなく.logの方が良いの...
-
「読み取りと実行」と「読み取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのVBAについて とある...
-
複数エクセルファイルの合成
-
Python CSVファイルについて
-
【Rコマンダー】データインポー...
-
アクセスと同フォルダのCSVファ...
-
複数のcsvファイルを統合、でも...
-
FTPコマンド mgetでとまってし...
-
エクセルマクロ、複数のCSVファ...
-
csv形式からbmpを作成
-
gnuplotで複数csvファイルから...
-
複数のCSVファイルを読み込んで...
-
コマンドによるzip圧縮
-
csvファイルを結合するバッ...
-
エクセル 指定範囲をCSV出力
-
csvをVBAを使ってエクセル形式...
-
MAC フォルダ内のPDF件数とペー...
-
バッチ処理でcsvファイルの文字...
-
EXCEL マクロが正常に動かなく...
-
yahooカレンダーのデータをICS...
-
Rでcsvファイルを読み込んだあ...
おすすめ情報