VisualBasic for Applications (Microsofot Excel編)
第3回

講座メインページに戻る


はじめに

EXCELにはHTML形式で保存する機能がありますが、これをあえてVBAで実行してみます。VBAで実行させるメリットとして、EXCELからHTML変換した場合には正しく変換できないことがあることと、定型業務においてはVBAで作業させるとかなり威力を発揮する事ができます。


いきなりサンプル

以下のようなExcelの表があるとします。C列がハイパーリンク先で、B列にハイパーリンクを設定するとします。

  A B C
1 設備 給湯機の説明 kyuutou.htm
2 外部 窓の説明 mado.htm
3 外部 屋根の説明 yane.htm
4 内部 建具の説明 tategu.htm

VBAでは以下のようなプログラムを行います。

Sub htm_sam()
Dim i As Integer
Dim html As String
Dim file_name As String
Dim file_num As Integer
Dim cr As String
Rem ********初期設定を行います********
cr = Chr(13) & Chr(10)
file_name = "c:\sample.htm"
Rem ********HTMLファイル用のハイパーテキスト作成********
html = "<html><head><title>Excelからのサンプル出力</title></head>" & cr
html = html & "<body>" & cr
html = html & "<p>Excelからのサンプル出力</p>" & cr
html = html & "<table border='1'>" & cr
For i = 1 To 4
html = html & "<tr>" & cr
html = html & "<td>" & Cells( i , 1 ) & "</td>" & cr
html = html & "<td><a href='" & Cells(i,3) & "'>" & Cells( i , 2 ) & "</a></td>" & cr
html = html & "</tr>" & cr
Next i
html = html & "</table>" & cr
html = html & "</body>" & cr
html = html & "</html>" & cr
Rem ********HTMLファイル出力を行います********
file_num = FreeFile()
Open file_name For Output As #file_num
Print #file_num , html
Close #file_num
Rem ********プログラム終了********
End Sub

 

実際のHTML出力結果


Excelからのサンプル出力
設備 給湯機の説明
外部 窓の説明
外部 屋根の説明
内部 建具の説明

解説

実際のところ、かなり強引なプログラムだと自分でも思います。が、定型業務作業ではいろいろと応用すればかなり実用的です。(本当はExcelではなく、AccessでHTML出力プログラムを作ったほうが威力を発揮します。)
改行のため、変数crにキャラクタコード13(改行)とキャラクタコード10(ラインフィーダ)を格納して使用しています。変数HTMLに、完全なHTML構文を使ってHTML文章を格納し、最後にファイルへ出力します。ファイル出力には、使用可能なファイル番号を取得(FreeFile関数)して、そのファイル番号を用いて出力します。


 

講座メインページに戻る