以前のリビジョンの文書です


ファイルのマージ

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
office/2003/excel/vba00.1281269606.txt.gz · 最終更新: 2010/08/08 12:13 by miyako
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0