注目キーワード

Excelの表をhtmlに変換するツールをVBAで作ってみた

はじめに

drow.ioを使ってテーブル定義を行っていた時に操作性が悪かったのでExcelのテーブル定義からVBAマクロを組んでテーブル定義のhtmlを生成するツールを作ってみた。

やりたいこと

作りたいHTMLはこんな感じ

作りたいものが具体的なほうが分かりやすくていいと思うので以下の図を例にとって話を進めてい行きます。

以下のテーブル定義をHTMLにすると下のコードのようになります(改行コードをわざと入れています)。色やサイズなどの細かい部分は置いておいておきますが一旦はtrタグが行を表して、tdタグが列を表しているとだけわかっていればよいです。

エクセルのテーブル定義
<table border="1" width="100%" style="width: 100% ; height: 100% ; border-collapse: collapse"><tbody><tr style="background-color: rgb(153 , 255 , 255)"><td>No</td><td>論理名</td><td>物理名</td><td>型</td><td>サイズ</td><td>PK</td><td>Null</td><td>INDEX</td><td>FK_TABLE</td><td>FK_COLUMN</td><td>REF_TABLE</td><td>REF_COLUMN</td><td>AUTO_INC</td><td>default</td><td>備考</td></tr><tr><td>1</td><td>組織コード</td><td>organization_code</td><td>INT</td><td></td><td>〇</td><td>-</td><td>-</td><td>m_user</td><td>organization_code</td><td></td><td></td><td>-</td><td></td><td></td></tr><tr><td>2</td><td>組織名</td><td>organization_name</td><td>VARCHAR</td><td>100</td><td>-</td><td>-</td><td>-</td><td></td><td></td><td></td><td></td><td>-</td><td></td><td></td></tr><tr><td>3</td><td>作成日時</td><td>create_time</td><td>DATETIME</td><td></td><td>-</td><td>-</td><td>-</td><td></td><td></td><td></td><td></td><td>-</td><td>NOW</td><td></td></tr><tr><td>4</td><td>作成者</td><td>create_user_id</td><td>VARCHAR</td><td>30</td><td>-</td><td>-</td><td>-</td><td></td><td></td><td></td><td></td><td>-</td><td></td><td></td></tr><tr><td>5</td><td>更新日時</td><td>update_time</td><td>DATETIME</td><td></td><td>-</td><td>-</td><td>-</td><td></td><td></td><td></td><td></td><td>-</td><td>NOW</td><td></td></tr><tr><td>6</td><td>更新者</td><td>update_user_id</td><td>VARCHAR</td><td>30</td><td>-</td><td>-</td><td>-</td><td></td><td></td><td></td><td></td><td>-</td><td></td><td></td></tr></tbody></table>

プログラムの仕様について

今回作ろうとするプログラムの仕様はこんな感じです。

スポンサーリンク

・シート名を取得しファイル名にする

・ 実行するマクロが配置してあるフォルダの配下に ファイルが出力されること

・ヘッダーは色が青色になるようにする

・列(tdタグ)は15列であること

・行(trタグ)は動的であること

・処理完了後にメッセージを出力すること

実際に書いてみた

drow.ioに出力されたHTMLをそのまま読み込ませると改行コードのせいでうまく読み込めないため改行コードは入れていません。

プログラムの説明

実行してみる

まとめ