VBA版タグ挿入スクリプト
たとえば、フォルダ内にqa0001.htmからqa7000.htmの7000個のhtmファイルがあったとします。
とある事情で、bodyタグの直後にscriptタグを追加したい場合、手作業で追加するのは大変です。
そこで、以下のようなプログラムをEXCELのVBAで組んで見ました。
以下のプログラムをそのフォルダ内で実行すると一発で7000個ファイルを更新することが出来ます。
Dir関数の引数やLike演算子のオペランドをカスタマイズして、何かに流用してもらえれば、幸いです。
とにかく、フォルダ内の複数のファイルに対しいて処理するときの雛型として使えると思います。
'--------------------------------------------------------------------------------------------- '[VBA版タグ挿入スクリプト] 'カレントフォルダにあるqa*.htmでマッチしたファイルすべてにbodyタグの直後にscriptタグを追加する。 ' '--------------------------------------------------------------------------------------------- Option Explicit Private Sub Workbook_WindowActivate(ByVal Wn As Window) Dim vntp As Variant Dim strWk As String Dim strCurrentDirectory As String Dim intIdx As Integer 'カレントディレクトリを求める。 For intIdx = Len(ActiveWorkbook.FullNameURLEncoded) To 1 Step -1 If Mid(ActiveWorkbook.FullNameURLEncoded, intIdx, 1) = "\" Then Exit For Next strCurrentDirectory = Mid(ActiveWorkbook.FullNameURLEncoded, 1, intIdx - 1) 'カレントディレクトリを設定する。 ChDrive Mid(strCurrentDirectory, 1, 1) ChDir strCurrentDirectory 'カレントフォルダにあるq*.htmでマッチしたファイルすべて処理する。 'ちなみに『*』は、ワイルドカード。 vntp = Dir("q*.htm", vbNormal) Do While vntp <> "" Open "tmp.log" For Output As #2 Open vntp For Input As #1 Do While Not EOF(1) Line Input #1, strWk Print #2, strWk '文字列の中をLike検索する。ちなみに『*』はワイルドカード。 If strWk Like "*" Then Print #2, "" End If Loop Close #1 Close #2 FileCopy "tmp.log", vntp Kill "tmp.log" vntp = Dir Loop Application.Quit End Sub
以下が、少し参考になるかも。