本記事は、指定した範囲のセルの値をCSVに出力する方法についてご説明します。
【動画】指定した範囲のセルの値をCSVに出力する実際の動き
本題に入る前に、まずは指定した範囲のセルの値をCSVに出力する実際の動きについて、次のツイートをご覧ください。
指定した範囲のセルの値をCSVに出力する処理を動画に撮ってみました☺️
出力されたCSVは、デリミタ文字は「,」で区切られてデータが出力されます😃
※タブやスペースをデリミタにする事もできます(出力フォーマットに指定)※動画内ではCSVファイル有無のチェック処理は省いています😅#VBA pic.twitter.com/NqzYRTjo84
— まさ@Excel、VBA、マクロ(経験年数16年) (@masamasa9785) July 10, 2021
ツイート内の動画では、指定した範囲のセルの値をCSVに出力しています。
指定した範囲のセルの値をCSVに出力する方法
指定した範囲のセルの値をCSVに出力するには、次の流れの通りにコードを書いていきます。
なぜわざわざ新規ブックを作成するのかというと、新規ブックをCSVファイルとして保存(出力)するのに使うからです。
ファイルを保存(出力)するのに必要な処理です。
コードの例
Dim CSVFile As String '出力するCSVファイル Dim dataRange As Range '出力するデータのセル範囲 Dim wb As Workbook 'ワークブック Dim fso As Object 'FileSystemObjectオブジェクトのインスタンス用変数 'CSVファイルの出力先を取得 CSVFile = Application.ThisWorkbook.Path & "\testData.csv" 'CSVファイルへ出力する範囲を指定 Set dataRange = Worksheets("data").Range("C22:K29").CurrentRegion '新規ブックを作成(新規ブックをCSVファイルとして保存(出力)するために行う) Set wb = Workbooks.Add 'CSVファイルへ出力するデータのセル範囲を新規ブックにコピーする dataRange.Copy wb.Worksheets(1).Range("A1") 'FileSystemObjectオブジェクトのインスタンスを作成する Set fso = CreateObject("Scripting.FileSystemObject") '新規ブックをCSVファイルとして保存(出力)する wb.SaveAs FileName:=CSVFile, FileFormat:=xlCSV '新規ブックを保存せずに閉じる(CSVファイルの保存(出力)が終われば、新規ブックは不要のため) wb.Close SaveChanges:=False '後処理 Set fso = Nothing
コードの解説
このコードでまず見て頂きたいのは22行目です。
この22行目でCSVファイルの保存(出力)を行っています。
CSVファイルの保存(出力)先(の指定)は7行目で、出力したいセル(の範囲の指定)は10行目で行っています。
指定した範囲のセルの値をCSVに出力する処理の仕組み
今回説明した、指定した範囲のセルの値をCSVに出力する処理の仕組みをザックリと説明すると、次の通りです。
※上記のSTEP1からSTEP3は、先ほど説明したソースコードの13行目から22行目の部分にあたります。
以上の処理の仕組みのポイントは、STEP3の「新規ブックをCSVファイル形式で保存」の部分です。
新規ブックを開き、CSVファイルに出力したいデータを貼り付けて、CSVファイル形式で保存をマクロで行っています。
参考までに、手動で「新規ブックをCSVファイル形式で保存」をすると次の通りです。
手動で「新規ブックをCSVファイル形式で保存」
①「名前を付けて保存の確認」ダイアログで「はい」をクリック
②CSVファイルに出力したいデータを貼り付け
③「ファイル」タブをクリック→「名前を付けて保存」をクリック
④保存先を指定するため、「コンピュータ」→「参照」をクリック
⑤「名前を付けて保存」ダイアログでファイルの種類に「CSV(カンマ区切り) (*.csv)」を選択
⑥ファイル名を入力して「保存」ボタンをクリック
⑦確認ダイアログで「はい」をクリック
⑧開いているExcelのブックがCSVファイルに変わった
⑨保存しないで閉じる
⑩CSVファイルが保存(出力)されたことを確認
以上が手動で「新規ブックをCSVファイル形式で保存」の手順になります。
自動でCSVファイルに出力している処理のイメージを分かってもらえたら幸いです。
最後に
本記事では、指定した範囲のセルの値をCSVに出力する方法についてご説明しました。
セルの値を範囲指定してCSVに出力したい場合は参考にしてみてくださいね。
プログラミングのスキルを習得するなら
プログラミングのスキルを習得したい、今のスキルをもっと高めたい、そう考えているなら「プログラミングスクール」がおすすめです。
プログラミングのスキルの基礎を身につけるなら「TechAcademy」で1週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。