しごと
ネットワーク系の職場であるにもかかわらず、なぜか一日中、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文にするとなぜか僕の環境ではエラーが発生…
ん〜、他にいい方法が無いものか…
とりあえず今日は「データはきちんと整列したものをつかいましょう」という結論で終了。
順番に書き込むために何回も上から読み込むには、データが大きすぎる…
他の処理との兼ね合いで、このマクロのためだけにテンポラリに書き出してソートを実施するという荒業(エレガントではない技)で処理。
まぁ、売りに出すものでもないし(担当者=僕が使うだけ)、こんなもんだろう。