« HTMLのTableをVBAで作る | トップページ | HTMLのTableをVBAで作る 3 »

2010年1月29日 (金)

HTMLのTableをVBAで作る 2

記事「HTMLのTableをVBAで作る」では
セルの「塗りつぶし」だけをTableにしましたが
次は
セルの大きさもTableに反映させたいと思います。

HTMLのTableタグの大きさの指定の単位は
ピクセル…

一方、
セルの大きさは

ColumnWidth
RowHeight

で取得できる。

単位はポイントですが
その大きさが
イマイチよくわからない。
(セルの高さ・幅を設定しようとした人には
わかってもらえると思います。)

場当たり的に

幅    11.8ポイント:100ピクセル
高さ   75ポイント:100ピクセル

を使ってポイントをピクセルに変換する。
記事「セルの縦と横の比」参照

まずは手動でお絵かき。
「塗りつぶし」とセルの大きさを変える。

Pic20100129a

このようになりました。
3行4列使ってます。

これをTableにします。
コードはこちらです。
既出コードを
少し いじっただけです。

HTMLのTable生成(色と大きさ)のコード:

Sub macro100129a()
    Dim i, j As Integer
    'それぞれ行と列に対応
   
    Dim MyHTML As String
    '生成したHTMLを入れる
   
    Dim MyHexColor As String
    '長整数型を16進数に変換した文字列を入れる
    Dim TWidth, THeight As Integer
    'Tableの幅と高さを入れる
    Dim AddTWidth As String
   
    MyHTML = "<TABLE><TBODY>"
    For i = 1 To 3
        'i行の始まり
        '高さ設定
        THeight = Int(Cells(i, 1).RowHeight * 100 / 75)
        MyHTML = MyHTML & "<TR height = " & THeight & ">"
        For j = 1 To 4
            'i行j列について
            '幅設定、1行目のみ
            If i = 1 Then
                TWidth = Int(Cells(i, j).ColumnWidth * 100 / 11.8)
                AddTWidth = " width = " & TWidth
            End If
            MyHexColor = LngtoHexColor(Cells(i, j).Interior.Color)
            MyHTML = MyHTML & "<TD bgcolor=" & _
                Chr(34) & MyHexColor & Chr(34) & AddTWidth & "></TD>"
            AddTWidth = "" 'AddTWidthをなしにする
        Next j
        MyHTML = MyHTML & "</TR>"
    Next i
    MyHTML = MyHTML & "</TBODY></TABLE>"
   
    '生成したHTMLを適当なセルに書き出す
    Cells(4, 1) = MyHTML
End Sub

これが、
生成されたTableのHTMLソースです。

生成されたTableのHTMLソース:

<TABLE><TBODY><TR height = 119><TD bgcolor="#00FF00" width = 122></TD><TD bgcolor="#000000" width = 5></TD><TD bgcolor="#003366" width = 47></TD><TD bgcolor="#99CCFF" width = 93></TD></TR><TR height = 8><TD bgcolor="#993300"></TD><TD bgcolor="#FF0000"></TD><TD bgcolor="#C0C0C0"></TD><TD bgcolor="#333399"></TD></TR><TR height = 72><TD bgcolor="#008000"></TD><TD bgcolor="#FFFFFF"></TD><TD bgcolor="#FF9900"></TD><TD bgcolor="#FFCC00"></TD></TR></TBODY></TABLE>

これをHTMLに埋め込んだものが
これ↓

Excelのセルの高さと幅の設定には
苦労しますが
こちらは、思ったよりも
あっさりうまく行きました。

|

« HTMLのTableをVBAで作る | トップページ | HTMLのTableをVBAで作る 3 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: HTMLのTableをVBAで作る 2:

« HTMLのTableをVBAで作る | トップページ | HTMLのTableをVBAで作る 3 »