以前のリビジョンの文書です
1.htmlファイルの任意の場所にvbaで作成したタグを埋め込む方法
まずは任意のタグを埋め込むhtmlファイルのサンプルを作成
<html> <head> <title>エクセル マクロ テスト</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> </head> <body> <h1>Fool For the City</h1> <hr> <br> <!---Target--> <hr> <div align="right"> Media Kiss Lab </div> </body> </html>
ここでは<!—Target–>をターゲットとする。
次にエクセルファイルを開いてvbaを作成する。
CommandButtonを1つ配置して、それをクリックしたら実行するプログラムにする。
Private Sub CommandButton1_Click() '変数の宣言 Dim xlAPP As Application Dim SFILE As Variant Dim WFILE As Variant Dim intFFIN As Integer Dim intFFOUT As Integer Dim strREC As String Dim CNT As Integer '挿入用HTMLを作成 'vbNewLineは改行の意味なので適当にHTMLを生成してくださいwww 'SHTMLという変数に差し込みたいHTMLを全て入れるのがポイントね 'このサンプルではvbaが組み込まれたシートのX=3,Y=7からY軸を下に '確認していき空白になるまで繰返しテーブルタグに入れるって書いてます CNT = 7 SHTML = SHTML & "<table>" & vbNewLine Do While Cells(CNT, 3) <> "" SHTML = SHTML & " <tr><td>" & vbNewLine SHTML = SHTML & " " & Cells(CNT, 3) & vbNewLine SHTML = SHTML & " </td></tr>" & vbNewLine CNT = CNT + 1 Loop SHTML = SHTML & "</table>" '読込む用のHTMLファイルを選択する '読込むHTMLが固定の場合はSFILEにPathを書いてね SFILE = _ Application.GetOpenFilename( _ Filefilter:="HTML(*.html),すべてのファイル(*.*)" _ , FilterIndex:=1 _ , Title:="元ファイルを選択" _ , MultiSelect:=False _ ) 'キャンセルボタンを押された場合はこのコードは終了します If SFILE = False Then Exit Sub End If '書き込む用のHTMLファイルを選択する '初期のファイル名はmarge.htmlになってるので 'ここは適当に変更してみてね Set xlAPP = Application xlAPP.StatusBar = "保存ファイル選択" WFILE = _ xlAPP.GetSaveAsFilename( _ InitialFileName:="marge.html", _ Filefilter:="HTML(*.html),すべて(*.*)" _ , Title:="保存ファイル選択" _ ) 'キャンセルボタンを押された場合はこのコードは終了します If WFILE = False Then Exit Sub End If '読み込み用HTMLのオープン intFFIN = FreeFile Open SFILE For Input As #intFFIN '書き込み用HTMLのオープン intFFOUT = FreeFile Open WFILE For Output As #intFFOUT '読み込み用ファイルを1行づつ読込んでる Do Until EOF(intFFIN) Line Input #intFFIN, strREC '差換える文字列を発見したらSHTMLで置換する '差換える文字列は適当に変更してね strREC = Replace(strREC, "<!---Target-->", SHTML) 'ファイルに書き出す Print #intFFOUT, strREC Loop '処理が終わった後は閉じますねwww Close #intFFIN Close #intFFOUT xlAPP.StatusBar = False MsgBox ("処理が完了したよ(^^)") End Sub