#772 | テキストファイルの一部を削除して出力するプログラム例 | VBA | |
あるフォルダのすべてのテキストファイルを1つずつ順番に読み込んで、一定範囲の行を削除したあと、別のフォルダに出力するプログラム例です。実際には、”削除”するのではなく”出力しない”ことで削除された状態にします。 次のコードでは、
プログラム例: Sub TextFileSample2() Dim strFileName As String Dim intFilenum1 As Integer, intFilenum2 As Integer Dim strData As String Dim blnDelFlg As Boolean 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 '「<div id="footer">」が出てきたら削除フラグをON If InStr(strData, "<div id=""footer"">") > 0 Then blnDelFlg = True End If '削除フラグがOFFなら出力先に1行書き込み ' ※フラグがONの間は出力しないことで削除した形にする If Not blnDelFlg Then Print #intFilenum2, strData End If '削除フラグがONで「</div>」が出てきたら削除フラグをOFF If blnDelFlg And InStr(strData, "</div>") > 0 Then blnDelFlg = False End If Loop '入力元と出力先のファイルを閉じる Close #intFilenum1: Close #intFilenum2 '次のファイルへ進む strFileName = Dir() Loop MsgBox "処理完了!", vbOKOnly + vbInformation End Sub 実行例: ■C:\テストのファイル ■C:\テスト\NewFileのファイル |
|||
|
Copyright © T'sWare All rights reserved |