Excelの表をHTMLへ変換しセルへ出力する方法!THも指定可!

Excelの表をHTMLへ変換しセルへ出力する方法

Excelの表をHTMLへ変換しセルへ出力したいときはないでしょうか。

けど、そんな中で悩むことは、

・Excelの表をHTMLへ変換しセルへ出力したいが方法がよくわからない
・Excelの表をHTML出力すると余計なスタイルが入るので除きたいが方法がわからない。

ですよね。

今回はそんなお悩みを解決する

・Excelの表をHTMLへ変換しセルへ出力する方法

についてまとめます!

Excelの表をHTMLへ変換しセルへ出力するイメージ

Excelの表をHTMLへ変換しセルへ出力するイメージについて説明をします。

HTMLへ変換したい表を用意します。

VBAにその表の範囲を指定し、VBAを実行すると、

表を変換したHTMLが指定したセルへ出力されます!

また項目のTHにしたい箇所も行列ともに指定が可能です!

それでは早速試してみましょう。

タカヒロ
タカヒロ
テキストファイル出力版も用意しています。よろしければこちらもご参考ください。
Excelの表をHTMLへ変換する方法!widthやthも調整可!

VBAでExcelの表をHTMLへ変換しセルへ出力する

VBAを使い、Excelの表をHTMLへ変換する機能を追加していきましょう。

HTMLへ変換する表と出力先セルを用意する

Excel側へHTMLへ変換する表を用意しましょう。

サンプルは”A1:C11″を指定しています。

またHTML出力先となるセルの位置を決めておきます。

サンプルはF2セルを指定しています。

タカヒロ
タカヒロ
HTMLタグ出力先となるセルは表と同一のシート内に用意してください。

VBAコード

VBAのサンプルコードは以下の通りです。

Sub Excelの表をHTMLテーブルタグへ変換しセルへ出力する()

    Dim strHTML As String
    Dim arrRange As Variant
    Dim intSelectTHrow As Integer
    Dim intSelectTHcol As Integer
    Dim i As Integer
    Dim j As Integer
    
    'テーブルタグへ変換したい範囲を指定します。
    arrTemp = Range("A1:C11")
    
    '項目のTHタグにしたい行番号を指定します。指定しな場合は0にしてください。
    intSelectTHrow = 1

    '項目のTHタグにしたい列番号を指定します。指定しな場合は0にしてください。
    intSelectTHcol = 0
    
    
    'テーブルの開始タグを追加します。
    strHTML = "<table>" & vbCrLf & "<tbody>" & vbCrLf
    
    'アクティブであるシートを対象にします。
    With ActiveSheet
        
        '存在する行数分処理を繰り返します。
        For i = LBound(arrTemp, 1) To UBound(arrTemp, 1)
            'TRタグを追加します。
            strHTML = strHTML & "<tr>" & vbCrLf
        
            '存在する列数分処理を繰り返します。
            For j = LBound(arrTemp, 2) To UBound(arrTemp, 2)
                
                'TH指定箇所になったかどうか判定します。
                If i = intSelectTHrow Or j = intSelectTHcol Then
                    '指定行数にTHタグを挿入します。
                    strHTML = strHTML & "<th>" & .Cells(i, j).Value & "</th>" & vbCrLf
                Else
                    'セルの値ごとにTDタグを挿入します。
                    strHTML = strHTML & "<td>" & .Cells(i, j).Value & "</td>" & vbCrLf
    
                End If
            Next j
        
            'TRタグを挿入します。
            strHTML = strHTML & "</tr>" & vbCrLf
        Next i
    
        'テーブルの閉じタグを挿入します。
        strHTML = strHTML & "</tbody>" & vbCrLf & "</table>"
        
        'HTMLタグを指定のセルへ出力します。
        Range("F2") = strHTML
        
    End With
    
    '終わったのが分かるようにメッセージを出します。
    MsgBox "表のHTML変換が完了しました!"

End Sub

VBAを設定する

VBAを設定していきましょう。

テーブルタグへ変換したい範囲を指定します。

arrTemp = Range("A1:C11")

項目のTHタグにしたい行番号を指定します。指定しな場合は0にしてください。

intSelectTHrow = 1

項目のTHタグにしたい列番号を指定します。指定しな場合は0にしてください。

intSelectTHcol = 0

HTMLタグ出力先となるセルを指定します。

Range("F2") = strHTML

VBAの実装

VBAの実装方法については
VBAの実装手順
をご参照ください。

VBAを実行する

VBAを実行してみましょう。

“表のHTML変換が完了しました!”と表示されたら完成です。

HTMLタグが指定セルへ出力されていますね!

出力されたHTMLタグを表示させてみても問題ありませんね!

番号 商品名 売上
1 にんじん 1000
2 じゃがいも 2000
3 きゃべつ 1400
4 たまねぎ 1800
5 だいこん 500
6 さといも 500
7 ながいも 1500
8 しいたけ 3000
9 まつたけ 10000
10 べにいも 1800

項目のTHタグを変更してみましょう。項目としたい列番号を1列目とし指定します。

intSelectTHcol = 1

以下実行結果です。1列目も項目として表示されましたね!

番号 商品名 売上
1 にんじん 1000
2 じゃがいも 2000
3 きゃべつ 1400
4 たまねぎ 1800
5 だいこん 500
6 さといも 500
7 ながいも 1500
8 しいたけ 3000
9 まつたけ 10000
10 べにいも 1800

VBAの説明

VBAについて説明をします。

テーブルの開始タグを追加します。

strHTML = "<table>" & vbCrLf & "<tbody>" & vbCrLf

アクティブであるシートを対象にします。

With ActiveSheet

存在する行数分処理を繰り返します。

For i = LBound(arrTemp, 1) To UBound(arrTemp, 1)

TRタグを追加します。

strHTML = strHTML & "<tr>" & vbCrLf

存在する列数分処理を繰り返します。

For j = LBound(arrTemp, 2) To UBound(arrTemp, 2)

TH指定箇所になったかどうか判定します。

If i = intSelectTHrow Or j = intSelectTHcol Then

指定行数にTHタグを挿入します。

strHTML = strHTML & "<th>" & .Cells(i, j).Value & "</th>" & vbCrLf

セルの値ごとにTDタグを挿入します。

Else strHTML = strHTML & "<td>" & .Cells(i, j).Value & "</td>" & vbCrLf

TRタグを挿入します。

strHTML = strHTML & "</tr>" & vbCrLf

テーブルの閉じタグを挿入します。

strHTML = strHTML & "</tbody>" & vbCrLf & "</table>"

終わったのが分かるようにメッセージを出します。

MsgBox "表のHTML変換が完了しました!"

VBAの実装手順

実装手順は以下の通りです。

Excel側にVBAを実装していきます。

①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。

②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のVBAを入力します。

こちらで完了です。

VBAを実行する

では早速VBAの実行をしてみましょう。

①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。

②処理がされたことが確認できれば完了です。

さいごに

いかがでしょうか。

今回は、

・Excelの表をHTMLへ変換しセルへ出力する方法

についてまとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です