Excel VBAでExcelのテーブルをhtmlテーブルのソースに変換する

ブログに投稿したいExcelテーブルを作成した際に、スクリーンキャプチャではなくhtmlテーブルにして投稿できればと思う事があります。そのような時のために、Excelのテーブルをhtmlテーブルのソースへと変換するExcelマクロを組んでみました。

動作

元のテーブル

例えば下図のExcelテーブルをhtmlで表現したい場合を考えます。

マクロの実行結果

今回組んだマクロは、Excelテーブルの一部を選択した状態で実行します。するとマクロが書かれたExcelブックの最初のシートのB5セルに、htmlテーブルが出力されます。

ソースコード

ここで、

テーブル左上行 CurrentRegion.Row
テーブル左上列 CurrentRegion.Column
テーブルの高さ CurrentRegion.Rows.Count
テーブルの横幅 CurrentRegion.Columns.Count

を用いてテーブルの領域を示すパラメータを取得しました。

後は変数tstrにテーブル情報を追記し続け、最後に出力して終わりです。

PHPで、入力されたデータをhtmlに変換する

PHPのhtmlspecialchars()関数についての記述です。

概要

PHPでユーザーがフォームへ入力したデータを、HTMLに変換するために、htmlspecialchars()関数を利用できます。

利用例

例えば、

$brand = htmlspecialchars($_GET[“brand”]);

とすれば、変数brandにhtml形式でフォームのデータが入ります。

変換とは?

HTMLの特殊な記号を変換します。例えば「>」を「>」に、「&」を「&」に変換します。変換については、htmlspecialchars (php.net) に詳細が掲載されています。

利用した方が良い理由

ユーザーの入力に、勝手なJavaScriptを実行する記述や、HTMLのタグが含まれているとサーバーを危険に晒します。これを避けるため、ユーザーの入力情報はhtml形式に変換した後に利用するのも良さそうです。

例えばフォームから受け取った値を、エスケープせずに画面に出力する危険性についての記述は、PHPの脆弱性への攻撃名称と対策メモ (qiita.com) のクロスサイトスクリプティングの項目から確認できます。