#771 テキストファイルの一部を変更して出力するプログラム例 VBA

あるフォルダのすべてのテキストファイルを1つずつ順番に読み込んで、内容を一部変更したあと、別のフォルダに出力するプログラム例です。

次のコードでは、
  • 「C:\テスト」フォルダ内にあるすべての「.html」ファイルを読み込みます。
  • 変更後のファイルは「C:\テスト\NewFile」フォルダに同名ファイルとして出力します。
  • テキストファイル内の「。」を「。<br />+vbCrLf」に置換します。
    ※「<br />」はHTML上の改行、「vbCrLf」はテキストファイル上の改行コードを表します。
  • テキストファイル内の「<li>」を「<li><b>」に、「→」を「</b>→」に置換します。
    ※それによって <li> と → で囲まれた文字列にHTMLの <b>〜</b> タグを付けて太字表示にします。

プログラム例:

Sub TextFileSample1()

  Dim strFileName As String
  Dim intFilenum1 As Integer, intFilenum2 As Integer
  Dim strData As String
  Const cstrSrc = "C:\テスト\"
  Const cstrDst = "C:\テスト\NewFile\"

  'C:\テストフォルダ内の最初の.htmlファイルを読み込む
  strFileName = Dir(cstrSrc & "*.html")

  'フォルダ内のすべての.htmlファイルを読み込むループ
  Do While strFileName <> ""
    '入力元と出力先のファイルを開く
    intFilenum1 = FreeFile()
    Open cstrSrc & strFileName For Input As #intFilenum1
    intFilenum2 = FreeFile()
    Open cstrDst & strFileName For Output As #intFilenum2

    '入力元ファイルからすべての行を読み込むループ
    Do Until EOF(intFilenum1)
      Line Input #intFilenum1, strData
      '「。」を「。<br />+vbCrLf」に置換
      strData = Replace(strData, "。", "。<br />" & vbCrLf)
      '「<li>」を「<li><b>」に、「→」を「</b>→」に置換
      strData = Replace(strData, "<li>", "<li><b>")
      strData = Replace(strData, "→", "</b>→")
      '出力先に1行書き込み
      Print #intFilenum2, strData
    Loop
    '入力元と出力先のファイルを閉じる
    Close #intFilenum1: Close #intFilenum2

    '次のファイルへ進む
    strFileName = Dir()

  Loop

  MsgBox "処理完了!", vbOKOnly + vbInformation

End Sub


実行例:

■C:\テストのファイル




■C:\テスト\NewFileのファイル

| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved