« 簡易メール送信 | トップページ | [書式設定]をクリアするときの不便を解消 »

2010年4月15日 (木)

HTMLファイルを生成

記事「HTMLファイルの目次を作る 」では
生成したHTMLのソースをイミディエイトウィンドウに出力して
それをメモ帳にコピペして
HTML形式で保存したのですが
今回はファイルの保存までVBAでします。

HTML形式で保存といっても
単に拡張子を「.html」にするだけなので
実際にはテキストファイルを作って
そのファイルの拡張子を「.html」にしただけです。

テキストファイルを作るには
CreateTextFileメソッドを使います。
詳細はVBAのヘルプにあります。

上記記事中のmacro100331aで
変数MyHTMLに入れたHTMLのソースを
テキストファイルを作って書き込んで
名前を付けて保存します。

コードはこちら

HTML形式の目次のHTMLファイルを作るコー ド:

Sub macro100415a()
'macro100330aの改造版
'指定したフォルダ内の
'HTMLファイルの目次を作って
'HTMLファイルを自動生成
    Dim MyPath As String, MyFile As String
    Dim MyHTML As String
    Dim i As Integer
    MyHTML = "<HTML><BODY>" & Chr(10)
   
    'フォルダを指定する
    MyPath = "C:\"
   
    'ファイルの有無を確認
    With Application.FileSearch
        .LookIn = MyPath
        'ファイル名検索
        .Filename = "*.htm*"
        If .Execute() > 0 Then
            MsgBox .FoundFiles.count & _
                " 個のファイルが見つかりました。"
            For i = 1 To .FoundFiles.count
                MyHTML = MyHTML & "<A href = " & Chr(34) _
                    & Dir(.FoundFiles(i)) & Chr(34) & ">" _
                    & Dir(.FoundFiles(i)) & "</A><BR/>" & Chr(10)
               
            Next i
        Else
            MsgBox "検索条件を満たすファイルはありません。"
        End If
    End With
    MyHTML = MyHTML & "</BODY></HTML>"
   
    'HTML形式のファイルを生成
    Dim fs As Object, a As Object
   
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set a = fs.CreateTextFile("c:\index.html", True)
    a.WriteLine (MyHTML)
    a.Close
   
End Sub

同名のファイルが存在する場合、
上書き保存されるようなのでご注意を。

HTMLファイルを自動生成できるようになったので
もっとなんかできそうな気がします。

|

« 簡易メール送信 | トップページ | [書式設定]をクリアするときの不便を解消 »

コメント

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

トラックバック


この記事へのトラックバック一覧です: HTMLファイルを生成:

« 簡易メール送信 | トップページ | [書式設定]をクリアするときの不便を解消 »