SEの転職活動で使うべきサイト・エージェント 目指せ年収アップ
SEの転職活動で使うべきサイト・エージェント 目指せ年収アップ
previous arrowprevious arrow
next arrownext arrow
 
Shadow
VBA

Excel VBAの配列からtsv・csvを出力する

仕事でtsvやcsvをエクセルから出したいことがありました。

備忘録として残しておきます。

インターフェースファイルを作るときなどにも役立つのでぜひ知っておいてください。

実際に作ったファイルはこちらから無料でダウンロードできます。

エクセルの仕様

区切り文字とダブルクォーテーション囲みの有無を設定できます。

出力ボタンをクリックすると、隣の「出力元シート」の内容を出力します。

出力場所はエクセルの配置されている場所です。

マクロが無効にされる場合

ダウンロードすると、以下のような警告が表示されることがあります。

ファイルを右クリックして、プロパティから「許可する」にチェックを入れて下さい。

エクセルからファイル出力するコード

コードはこんな感じです。

流れとしては以下です。

①出力対象範囲をを決める(可変対応しており、列、行が増えてもOK)

②出力範囲を配列に取得する

③配列から区切り文字で変数へ格納

④ファイルへ書き込む

ファイル名は[Output_] + [yyyyMMdd_] + [mmss]

 

実行結果

「出力元シート」に記載されている内容が出力されます。

エクセルの配置されている場所にファイルが出力されます。

※以下はtsv出力の結果のファイルです。

解説

42行目~62行目でメニューシートの設定内容を変数に格納しています。

66行目~92行目で出力元シートの内容を配列に格納しています。

91、92行目で一番最後の列、行を取得しているため、列、行が増えても自動で出力範囲が変わります。

63行目~86行目でセルごとの値を区切り文字を付けて文字連結しています。

enclosingLetterは、ダブルクォーテーション囲み有無の設定の際に、

「あり」の場合、[“]をセット

「なし」の場合、空白をセットすることで囲み文字が制御されています。

ABOUT ME
LooseCarrot
ブログ運営をしているLooseCarrotです。 興味のあることにトライして発信していきます! プロフィール

関連している記事