xcelの表をHTMLへ変換したいときはないでしょうか。
例えば、WordPressなどWebへExcelの表を貼り付けたい時などです。
けど、そんな中で悩むことは、
・WordPressへExcelの表を貼り付けたいが、余計なスタイルが入るので除きたいが方法がわからない。
・VBAで表をHTMLへ変換したいが複雑でどう組めばよいかわからない。
ですよね。
今回はそんなお悩みを解決する
についてまとめます!
もくじ
Excelの表をHTMLへ変換するイメージ
Excelの表をHTMLへ変換するイメージについて説明をします。
HTMLへ変換したい表を用意します。
表をマウスなどで範囲選択し。
VBAを実行すると、
外部のテキストファイルへ表を変換したHTMLが出力されます!
WordPressなどWebページへコピペすると、
ブラウザではこんな感じで表示されます!
No. | 商品名 | 単価 |
---|---|---|
1 | にんじん | 100 |
2 | きゅうり | 70 |
3 | ピーマン | 50 |
ワンクリックで変換からテキスト出力までできるので便利ですね!
それでは早速使ってみましょう!
HTMLへ変換する表を用意する
HTMLへ変換する表を用意しましょう。
表の内容はなんでもよいですが、確認のため複数行、複数列の構成にします。
サンプルは以下の通りです。
VBAでExcelの表をHTMLへ変換する
VBAを使い、Excelの表をHTMLへ変換する機能を追加していきましょう。
VBAを用意する
まずは、今回使うVBAのコードを用意しましょう。
VBAのコードは以下の通りです。
Sub Excelの表をHTMLへ変換する()
'テキストを出力するテキストファイルを指定します。デフォルトはVBAを実行するブックと同階層となります。
Open ThisWorkbook.Path & "\outputtable.txt" For Output As #1
'thにする箇所を選択します。0の場合はすべてtd、1の場合は横の1行目をth、2の場合は縦の1列目をthとします。
selectth = 1
'TableのサイズやCSSなどスタイル設定があれば入力します。
strTableStyle = "<table width=""100%"">"
'選択した範囲を配列へ格納します。
tempHairetsu = Selection
Dim i As Integer
Dim j As Integer
Print #1, strTableStyle
Print #1, "<tbody>"
' 選択した範囲全要素をループします。
' 行の件数分縦方向に繰り返します。
For i = LBound(tempHairetsu, 1) To UBound(tempHairetsu, 1)
Print #1, "<tr>"
' 列の件数分横方向に繰り返します。
For j = LBound(tempHairetsu, 2) To UBound(tempHairetsu, 2)
Select Case selectth
Case 1
'1行目をthにします。
If i = 1 Then
Print #1, "<th>" & tempHairetsu(i, j) & "</th>"
Else
Print #1, "<td>" & tempHairetsu(i, j) & "</td>"
End If
Case 2
'1列目をthにします。
If j = 1 And i = 2 Then
Print #1, "<th>" & tempHairetsu(i, j) & "</th>"
Else
Print #1, "<td>" & tempHairetsu(i, j) & "</td>"
End If
Case Else
'指定がない、もしくは0の場合はtdにします。
Print #1, "<td>" & tempHairetsu(i, j) & "</td>"
End Select
Next
Print #1, "</tr>"
Next
Print #1, "</tbody>"
Print #1, "</table>"
'開いたファイルを閉じます。
Close #1
'終わったのが分かるようにメッセージを出す
MsgBox "表のHTML変換が完了しました!"
End Sub
VBAを設定する
VBAを設定していきましょう。設定する箇所は以下の通りです。
テキストを出力するテキストファイルを指定します。デフォルトはVBAを実行するブックと同階層となります。
thにする箇所を選択します。
0の場合はすべてtd、
1の場合は横の列項目をth、
2の場合は縦の行項目1つ目をthとします。
TableのサイズやCSSなどスタイル設定があれば入力します。
VBAを実装し実行する
VBAを実装し実行してみましょう。
実装方法は「VBAの実装手順」をご覧ください。
実装できたらマクロから「Excelの表をHTMLへ変換する」を見つけます。
置換対象範囲をマウスなどで選択し、マクロを実行します。
メッセージが表示されたら処理は完了です。
ブックがある同一階層に「outputtable.txt」がありますので、見つけたらメモ帳などで開きます。
はい、HTMLが出力されていますね!
WordPressに張り付けた結果です。
No. | 商品名 | 単価 |
1 | にんじん | 100 |
2 | きゅうり | 70 |
3 | ピーマン | 50 |
問題ないですね!
VBAの実装手順
実装手順は以下の通りです。
Excel側にVBAを実装していきます。
①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。
②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。
③右ペインのウインドウに上記のVBAを入力します。
こちらで完了です。
VBAを実行する
では早速VBAの実行をしてみましょう。
①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。
②処理がされたことが確認できれば完了です。
VBAを実行する
早速VBAの実行をしてみましょう。
①「開発」タブの「マクロ」をクリックし今回実装したマクロ明を選択し、「実行」をクリックします。
②「表のHTML変換が完了しました!」が表示されたら、処理結果を確認しましょう。
「th」にする箇所やスタイルを変更する
現在、表の中の項目名と値は同じスタイルが適用されています。
それを区分けする方法として「th」タグをつける方法がありますので、1行目や1列目にそれぞれ「th」タグを付けてみます。
次に表全体のサイズや色などのスタイルも変更してみましょう。
1行目に「th」タグを付ける
1行目に「th」タグを付けてみましょう。
変数selectth の値を1に変更します。
表を選択してVBAを実行してみましょう。
はい、1行目が「th」タグになりましたね!
WordPressへ実装した結果は以下です。
No. | 商品名 | 単価 |
---|---|---|
1 | にんじん | 100 |
2 | きゅうり | 70 |
3 | ピーマン | 50 |
1列目に「th」タグを付ける
1列目に「th」タグを付けてみましょう。
変数selectth の値を2に変更します。
表を選択してVBAを実行してみましょう。
はい、1列目が「th」タグになりましたね!
WordPressへ実装した結果は以下です。
No. | 商品名 | 単価 |
---|---|---|
1 | にんじん | 100 |
2 | きゅうり | 70 |
3 | ピーマン | 50 |
Tableのサイズやスタイルを変更する
Tableのサイズやスタイルを変更することができます。
幅を80%、余白を追加してみましょう。
以下の箇所を変更します。
表を選択してVBAを実行してみましょう。
出力したHTMLをWordPressへ貼り付けます。
はい、サイズとスタイルが変更されていますね!
No. | 商品名 | 単価 |
---|---|---|
1 | にんじん | 100 |
2 | きゅうり | 70 |
3 | ピーマン | 50 |
Excelの表をHTMLへ変換しセルへ出力する
セルへ出力版について別記事にまとめていますので、よろしければこちらもご参考ください。
Excelの表をHTMLへ変換しセルへ出力する方法!THも指定可!
さいごに
いかがでしょうか。
今回は、
についてまとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す