VBA

【ExcelVBA】ブック内のシートをタブ区切りのテキスト形式で保存する

ねぇもりさん、Excelのデータをタブ区切りのテキストファイルにしたいんだよね
もり
もり
「名前を付けて保存」でファイルの種類を「テキスト」にする作業のことかな?
csvtxt1
そうそう、この作業。ポチポチするのめんどうくさいよね
もり
もり
よーし!じゃあマクロを作っちゃおう!

Excelブック内の「アクティブシート」を「タブ区切りのテキストファイル」で出力するマクロの紹介です。

ExcelVBAでタブ区切りのテキストファイルを作る

アクティブシートからテキストファイルを作る

「アクティブシート」とは、選択されている(最前面に表示されている)シートのことです。

下記のコードを標準モジュールに貼り付けて実行します。

  • テキスト化されるシート:アクティブシート
  • 出力先:Excelブックと同じパス

このマクロを実行すると、Excelブックと同じフォルダにテキストファイルが出力されます。

「data」シートから data.txt ができあがります。

【ポイント】作成対象のシートを新規ブックにコピーする

この処理、シートをわざわざ新規ブックにコピーしてるよね。

なんでシートを直接テキスト形式で保存してないの?

下記の3ステップでテキストファイルを作成しています。

  1. アクティブシートを空の新規ブック(Book1)にコピー
  2. 新規ブック(Book1)をテキスト形式で保存
  3. 新規ブック(Book1)を破棄(保存しないで閉じる)

 

Excelブックのシートを「名前を付けて保存」でテキスト形式で保存すると、元のExcelのファイル名がtxt形式になってしまうんです。

csvtxt5
もり
もり
Application.ScreenUpdating = False で画面更新を止めてるから、見た目では気づかないね!

ブック内の全シートをテキストファイルにする

こちらの記事で紹介しています!あわせてご覧ください!

【ExcelVBA】エクセルブックの全シートからCSV(テキスト)ファイルを一括出力するExcelブックのシートからCSVファイル・タブ区切りのテキストファイルを一括作成するマクロツールを紹介しています。...