VBA

【ExcelVBA】シングルクォート区切りのdatファイルを作成する

ねぇもりさん、VBAでdatファイル作れるかな?
もり
もり
datファイル?!

 

datファイル(ダットファイル)とは、拡張子が .dat の「データファイル」です。システムに取り込むデータなどに使われます。

 

シングルクォート区切りdatファイル、作ってよ
もり
もり
お、おぅ・・・まかせろ!

エクセルシートのデータから、シングルクォート区切りdatファイルを作成します。

Excelシートからdatファイルを作成する

 

 

SaveAsメソッドでdatファイルは作れない?

ファイル保存といえばSaveAsメソッドですが・・・

SaveAsメソッドのフォーマットに「dat」形式は指定できないようです。

もり
もり
仕方ないね…地道な方法で作るわよ

【方針】

  • エクセルシートの「各セルの値」にシングルクォートを挟んで連結する
  • 最終列の場合、改行する
    ※ただし、最終行・最終列の場合は改行しない

こんな感じですね↓

(改行)
(改行)

Excelシートからdatファイルを作成する

アクティブシートのデータからdatファイルを作成するコードです。2行目以降をファイルに出力します。

※1行目から出力したい場合は、19行目 For r = 2 To lastRow の 2 を 1 に変更してください。

このコードを実行すると、マクロブックと同じ階層にsample.datが出力されます。メモ帳などのテキストエディタにドラッグ・アンド・ドロップすると、中身を確認できます。

datファイルの開き方

Printメソッドで改行しない方法

各セルの値にシングルクォートを挟んで連結しています。

【ポイント】

  • 最終列 → 改行する
  • それ以外 → 改行しない

Printステートメントの行末にセミコロン(;)を付けると改行しません。このセミコロンを利用して、各セルの値を改行なしで連結していき、最終列のみ改行するようにします。

datファイルの作成(改行するしない)

 

.txt(テキストファイル) や .csv(CSVファイル)が一般的で、datファイルはシステムにアップロードする際に使われる珍しい形式のファイルです。

もし作成することがあれば、ぜひこの方法を活用してみてください。