PeaceJetのブログ

金融系の社内エンジニアをやりながら、マーケティングやプランナーなども

ExcelのシートをHTMLテーブルとして出力する方法。【ExcelVBA・エクセルマクロ】

本日はExcelシート上のデータをテーブル(Tableタグ付きデータ)に
加工して出力してみます。

ポイント

  1. Rangeオブジェクトは2次元配列。
  2. 2次元配列の要素数を取り出すには、UBound関数の知識が必要。
  3. 加工後は『イミディエイト・ウインドウ』へ出力する。
Sub BuildTable()
    
    Dim LastRow, LastColumn As Long
    Dim TargetArray As Variant
    Dim i, j As Long
    Dim Text As String

    '2次元配列
    TargetArray = Range(Cells(1, 1), Cells.SpecialCells(xlLastCell))

    LastRow = UBound(TargetArray, 1)  '--(1)
    LastColumn = UBound(TargetArray, 2)  '--(1)
    
    For j = 1 To LastRow
    
        Text = Text & vbTab & "<tr>"

            For i = 1 To LastColumn
            
                Text = Text & "<td>"
                Text = Text & TargetArray(j, i)
                Text = Text & "</td>"
            
            Next i

        Text = Text & "</tr>" & vbCrLf
    
    Next j

    Text = "<table>" & vbCrLf & Text & "</table>"

    Debug.Print Text
    'Sheets("Sheet2").Cells(1, 1) = Text

End Sub

ここまで、ソースを見てきましたが。
ポイントの項目について細かく見ていきます。

Rangeオブジェクトについて

  • Rangeオブジェクトは2次元配列。

配列の要素を取り出すには、TargetArray(i,j)とする
ことで、要素を取り出すことができる。

2次元配列で要素数を取り出すには?

イミディエイト・ウインドウ

  1. イミディエイト・ウィンドウを表示させるには、
    VisualBasicEditorのメニューバーを以下のように操作する。

f:id:ivclo:20150504205659p:plain