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ファイル・タブ区切りのテキストファイルを一括作成するマクロツールを紹介しています。...
ノンプログラマーがプログラミングを学ぶ理由

ノンプログラマーがプログラミングを使えるようになると、「仕事の幅」が広がります。

日常生活にたとえると「車の運転」のイメージです。

多くの人は、大人になると自動車教習所に通って、運転の練習をしますね。F1レーサーやタクシードライバーなどの「プロ」になるわけではないのに。

車の運転ができれば、遠いところへ、速く・ラクに移動できて「生活の幅」が広がるからです。

プログラミングができるようになれば、今の仕事を速く・ラクに片づけて、「仕事の幅」を広げることができます。

「プロ」を目指す必要はありません。今の仕事をより豊かにするための「手段」、それがプログラミングです。

1週間オンライン無料体験あり
全国6教室で無料体験会