しごと

ネットワーク系の職場であるにもかかわらず、なぜか一日中、VBAでマクロの組み立て。
内容としては、Excel VBA から HTML を生成するマクロ。


テキストファイルを生成する方法がよく解からないので、どこかで見つけたテンプレートを流用。

Function CreateHTML() 

Dim WorkPath As String

WorkPath = "c:\sample.html"
With CreateObject("Scripting.FileSystemObject").CreateTextFile(WorkPath, True)
        .WriteLine ("<HTML>")
        .WriteLine ("<HEAD>")
        .WriteLine ("<TITLE>Sample HTML</TITLE>")
        .WriteLine ("</HEAD>")
        .WriteLine ("<BODY>")
        .WriteLine ("<H1>Sample</H1>")
        .WriteLine ("<p>sample text</p>")
        .WriteLine ("")
        .WriteLine ("</BODY>")
        .WriteLine ("</HTML>")
End Function

基本はこんな感じ。
実際はもっと作りこんである。


これに、変数やループ処理などを入れて、目的とするhtmlファイルをテキストで生成する。
do〜loop文ならうまくいくのだけれど、for文にするとなぜか僕の環境ではエラーが発生…


ん〜、他にいい方法が無いものか…


とりあえず今日は「データはきちんと整列したものをつかいましょう」という結論で終了。
順番に書き込むために何回も上から読み込むには、データが大きすぎる…
他の処理との兼ね合いで、このマクロのためだけにテンポラリに書き出してソートを実施するという荒業(エレガントではない技)で処理。
まぁ、売りに出すものでもないし(担当者=僕が使うだけ)、こんなもんだろう。