Excel VBA 複数のHTMLファイルを書き出す

こんにちは、ジンです。

今回はExcelのVBAを使ってhtmlを書きだすサンプルを残しておきます。サーバーの環境によってはCGIやPHPなどが使えず、動的にページを作成できない場合において、定型のページを数多く生成するには大変便利な方法だと思います。またエクセルの表のデータをそのまま使用できるので、データベースを組むほどでもないサイトを作成する際もメリットはあるかと思います。

サンプルでは横には8個の項目、縦にはデータを入れた分だけhtmlの作成を行うようにしています。
こんな表を想像していただければ分かりやすいかと思います。
excel_html

仮にシートに「CommandButton1」というボタンを配置して、ボタンと押したときに実行する場合のサンプル

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Private Sub CommandButton1_Click()
 
'HTMLファイルを作成
 
For n = 2 To Worksheets("リスト").Range("$B$65536").End(xlUp).Row
 
Path = ActiveWorkbook.Path & "\"
FN = Path & Worksheets("リスト").Cells(n, 2).Value & ".html"
 
Open FN For Output As #1
 
    Print #1, "<html>"
    Print #1, "<meta http-equiv=" & Chr(34) & "Content-Type" & Chr(34) & "content=" & Chr(34) & "Text / html; Charset = shift_jis" & Chr(34) & " />"
    Print #1, "<title>" & Worksheets(1).Cells(n, 2).Value & "</title>"
    Print #1, "</head>"
    Print #1, "<body>"
    Print #1, Worksheets(1).Cells(n, 1).Value
    Print #1, "<br />"
    Print #1, Worksheets(1).Cells(n, 2).Value
    Print #1, "<br />"
    Print #1, Worksheets(1).Cells(n, 3).Value
    Print #1, "<br />"
    Print #1, Worksheets(1).Cells(n, 4).Value
    Print #1, "<br />"
    Print #1, Worksheets(1).Cells(n, 5).Value
    Print #1, "<br />"
    Print #1, Worksheets(1).Cells(n, 6).Value
    Print #1, "<br />"
    Print #1, Worksheets(1).Cells(n, 7).Value
    Print #1, "<br />"
    Print #1, Worksheets(1).Cells(n, 8).Value
    Print #1, "<br />"
    Print #1, "</body>"
    Print #1, "</html>"
 
Close #1
 
Next n
 
MsgBox "書き出しました"
 
End Sub

コメントを残す

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