大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAを使って、ExcelシートをCSVとして保存するには、新規ブックにコピーして、SaveAsを使ってCSV形式で保存するとできます。複数シートをCSVで保存したい場合は、Excel VBAを使って自動化すると便利です。シートからCSVファイルを自動で作成する方法について、マスターしていきましょう。

はじめに

この記事では、ExcelシートをCSVで保存する方法について、ご紹介します。

手順としては、

  • シートを新規ブックにコピー
  • ブックをCSV形式で名前を付けて保存
  • ブックを閉じる

という流れになります。

複数シートをCSVファイルで保存したい場合に、Excel VBAを使って自動化できると便利です。

Excel VBAを使って、ExcelシートをCSVで保存する方法について、マスターしていきましょう。

では、ExcelシートをCSVで保存する方法について、解説していきます。

この記事を読むメリット

  • ExcelシートからCSVファイルを作成する手順を自動化できます。

目次から見たい項目へ移動すると便利ですよ。

目次

シートをCSVで保存する

シートをCSVで保存してみます。

新規ブックにコピーしてCSVで保存

シートからCSVファイルを作成するには、次のような手順になります。

  • シートを新規ブックにコピー
  • SaveAsでCSV形式で保存
  • ブックを閉じる

VBAコードは、次のようになります。

Sub TEST1()
  
  '新規ブックにコピー
  Sheets("TEST1").Copy
  '名前を付けて「CSV」で保存
  ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & "TEST1.csv", xlCSV
  ActiveWorkbook.Close 'ブックを閉じる
  
End Sub

やりたい内容は、シートをCSVで保存したい、ということになります。

シートをCSVで保存したい

シートをCSVで保存したいです

VBAコードを実行すると、シートをCSVで保存することができます。

シートをCSVで保存できた

シートをCSVで保存することができます

CSVファイルを確認してみます。

CSVファイルの確認

CSVで保存できていることがわかります

CSVで保存できていることがわかります。

日付と時刻を付けて保存

CSVファイルを作成する際は、「日付と時刻」を付けると名前が被らないので便利です。

Sub TEST2()
  
  '新規ブックにコピー
  Sheets("TEST1").Copy
  '日付と時間を足して、名前を付けて「CSV」で保存
  ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & "TEST_" & Format(Now(), "yyyymmdd-hhmmss") & ".csv", xlCSV
  ActiveWorkbook.Close 'ブックを閉じる
  
End Sub

実行すると、日付+時間を付けて、CSVで保存できます。

日付+時間を付けてCSVで保存できた

日付+時間を付けて、CSVで保存できます

CSVファイルの確認してみます。

CSVファイルの確認

CSVで保存できていることがわかります

CSVで保存できていることがわかります。

複数シートをCSVで保存する

複数シートをCSVで保存してみます。

For EachでシートをループしてCSVで保存

複数シートをCSVで保存するには、「For Each」でシートをループしてCSVで保存するとできます。

Sub TEST3()
  
  Dim A
  'シートをループ
  For Each A In Sheets
    A.Copy '新規ブックにコピー
    '名前を付けて「CSV」で保存
    ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & A.Name & ".csv", xlCSV
    ActiveWorkbook.Close 'ブックを閉じる
  Next
    
End Sub

次の複数シートをCSVで保存してみます。

複数シートをCSVで保存したい

1つ目のシートです。

複数シートをCSVで保存したいです

2つ目のシートです。

複数シートをCSVで保存したいです

3つ目のシートです。

複数シートをCSVで保存したいです

実行すると、複数シートをCSVで保存できます。

複数シートをCSVで保存できた

複数シートをCSVで保存できます

複数シートをCSVで保存できました。

CSVファイルを確認してみます。

CSVファイルの確認

1つ目のCSVファイルです。

複数シートをCSVで保存できました

2つ目のCSVファイルです。

複数シートをCSVで保存できました

3つ目のCSVファイルです。

複数シートをCSVで保存できました

複数シートをCSVで保存できました。

日付と時刻を付けて保存

複数CSVファイルを作成する際に、「日付と時刻」を付けて保存してみます。

最初に「Format(Now(), "yyyymmdd-hhmmss")」で日付+時間を取得しておくのがポイントです。

Sub TEST4()
  
  Dim A, B
  '日付と時間を取得
  B = Format(Now(), "yyyymmdd-hhmmss")
  'シートをループ
  For Each A In Sheets
    A.Copy '新規ブックにコピー
    '日付と時間を足して、名前を付けて「CSV」で保存
    ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & A.Name & "_" & B & ".csv", xlCSV
    ActiveWorkbook.Close 'ブックを閉じる
  Next
    
End Sub

実行すると、日付+時間を付けて、複数シートをCSVで保存できます。

日付+時間を付けて、複数シートをCSVで保存

日付+時間を付けて、複数シートをCSVで保存できます

日付+時間を付けて、複数シートをCSVで保存できました。

CSVファイルを確認してみます。

CSVを確認

1つ目のCSVファイルです。

日付+時間を付けて、CSVで保存できています

2つ目のCSVファイルです。

日付+時間を付けて、CSVで保存できています

3つ目のCSVファイルです。

日付+時間を付けて、CSVで保存できています

日付+時間を付けて、CSVで保存できています。

複数シートからCSVファイルを作成したい場合は、Excel VBAで自動化すると便利です。

おわりに

この記事では、ExcelシートをCSVで保存する方法について、ご紹介しました。

手順としては、

  • シートを新規ブックにコピー
  • ブックをCSV形式で名前を付けて保存
  • ブックを閉じる

という流れになります。

複数シートをCSVファイルで保存したい場合に、Excel VBAを使って自動化できると便利です。

Excel VBAを使って、ExcelシートをCSVで保存する方法について、マスターしていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す