Q&A
解決済み

【Excel】VBAを利用したCSVのインポートとエクスポートについて💦

Yurane
Yuraneさん
レギュラー

ExcelのVBAを利用したCSVのデータをエクスポート&インポートできるようにしたいです🙇

【プログラム】
自分の想像しているプログラムは次のような感じ🤔

「エクスポートの場合」
ActiveXコントロール コマンドボタンを押す

指定したシートのA2セルからB列のデータが最後にある行までを選択する

選択した行をCSVデータとして指定したフォルダに保存

「インポートの場合」
ActiveXコントロール コマンドボタンを押す

ファイルを選択するダイアログからCSVデータを選択

指定したシートのA2セルから順にデータを入れる

...という流れになりますm(_ _)m

◎分かるようでしたら、そのプログラムの内容がどんなものかも教えていただけると嬉しいです⸜( ˶'ᵕ'˶)⸝

不明点ありましたら詳しく説明させていただきますね👍


3 件の回答
ベストアンサー
ベストアンサー
公坊
公坊さん
Gマスター

medal ベストアンサー獲得数 256 件

わたしの検索が勘違いでなければ、Bingからの回答です?

エクスポート
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' 対象のシート名を設定
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row ' B列で最後の行を取得

' A2セルからB列の最後のデータまでを選択
Dim rng As Range
Set rng = ws.Range("A2:B" & lastRow)

' CSVファイルとして保存
Dim filePath As String
filePath = "指定したフォルダのパス" ' 保存するフォルダのパスを設定
rng.Copy

Dim newWb As Workbook
Set newWb = Workbooks.Add
With newWb
.Sheets(1).Cells(1, 1).PasteSpecial Paste:=xlPasteValues
.SaveAs Filename:=filePath, FileFormat:=xlCSV
.Close False
End With
End Sub

インポート
Private Sub CommandButton2_Click()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' 対象のシート名を設定

' ファイル選択ダイアログを表示
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Title = "CSVファイルを選択してください"
.Filters.Add "CSV", "*.csv", 1
If .Show = -1 Then
' CSVファイルを選択し、A2セルからデータを入力
Dim selectedFile As String
selectedFile = .SelectedItems(1)
With ws.QueryTables.Add(Connection:="TEXT;" & selectedFile, Destination:=ws.Range("A2"))
.TextFileParseType = xlDelimited
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFilePlatform = xlWindows
.Refresh
End With
End If
End With
End Sub

以下のリンクを参参照してください。
【Excel VBA入門】基本的なCSVファイルの読み込みと書き出し方法
https://valmore.work/vba-read-csv/

マクロ(Excel VBA)で CSV ファイルを開いてシートの中に取り込む方法
https://my-tax-nology.com/import-csv-data-to-excel-by-using-excel-vba

【Excel】VBAを利用したCSVのインポートとエクスポートについて
https://bing.com/search?q=Excel VBA CSV データ エクスポート インポート 方法
ベストアンサー この回答はベストアンサーに選ばれました。
  • 2
あいだの3件を表示
公坊
公坊さん
Gマスター

medal ベストアンサー獲得数 256 件

>>5 Yuraneさん

解決してようですね⁇
  • 7
Yurane
Yuraneさん・質問者
レギュラー

Reno A (mineo(docomo))

>>7 公坊さん
はい!解決しました(*^^*)
  • 8

Pixel 9 Pro(日本通信SIM) medal ベストアンサー獲得数 13 件

マクロの記録で

ファイルを読みこむ場合
データタブに切り替える
テキストまたはCSVからのボタンを押す
ファイルを選択するダイアログが出てくるのでファイルを選択
ファイルを読み込む

マクロ記録の終了

これでできたコードをまず見てみてどういう流れなのか見てみるのがいいかと思います。

昔Excel2000でよくやっていました・・・

CSVに書き出すのも同じような流れでできるかと?
  • 1
Yurane
Yuraneさん・質問者
レギュラー

Reno A (mineo(docomo))

>>1 谷 勝弘さん
マクロ記録の方が勉強にもなりますね🥺
次回試します🙇✨
  • 6
電人
電人さん
Gマスター

iPhone SE (第2世代) medal ベストアンサー獲得数 66 件

解決はしたようですが、

CSVのインポート相手、というか、出力方法というかによって、
Shift-JIS(CP932、だっけ?)とUTF-8のどっちで出すかでうまくいったりいかなかったりします。

カンマ区切りが良い場合とそうでない場合(例えばDBにぶち込むならタブ区切りの方が良かったりする)などでも変わってきます。
  • 9
Yurane
Yuraneさん・質問者
レギュラー

Reno A (mineo(docomo))

>>9 電人さん
今、試してきました!
『Shift_JIS』以外のCVSからインポートするとすべて文字化けしてしまいますね... 気をつけます💦
  • 10