Call ReplaceUTF(一斉置換したいファイルのフルパス, 検索文字列, 置換文字列)
2. 文字コード UTF-8 以外の場合
Call ReplaceTXT(一斉置換したいファイルのフルパス, 検索文字列, 置換文字列)
[具体例]
フォルダ「C:\hinden\events.files\」内にある
ファイル「sheet001.htm」 (charset=UTF-8) の中に
「_parent」という文字列があったらすべて「_blank」という文字列に置き換えまくりたい。
↓
Call ReplaceUTF("C:\hinden\events.files\sheet001.htm", "_parent", "_blank")
[関数 : ReplaceUTF8]
'テキストを文字列置換 (文字コードがUTF-8の場合)
Public Function ReplaceUTF8(FileName As String, TargetText As String, Optional NewText As String = "")
Dim buf_strTxt As String '読み込みバッファEnd Function
'全文読み込み
With CreateObject("ADODB.Stream").Charset = "UTF-8"End With
.Open
.LoadFromFile FileName
buf_strTxt = .ReadText
.Close
'置換処理
buf_strTxt = Replace(buf_strTxt, TargetText, NewText, , , vbTextCompare)
'全文書き込み
With CreateObject("ADODB.Stream").Charset = "UTF-8"End With
.Type = 2
.Open
.WriteText buf_strTxt
.SaveToFile (FileName), 2
.Close
[関数 : ReplaceTXT]
'テキストを文字列置換 (通常版)
Public Function ReplaceTXT(FileName As String, TargetText As String, Optional NewText As String = "")
Dim fso As FileSystemObject 'ファイルシステムオブジェクトEnd Function
Dim TXT As TextStream 'テキストストリームオブジェクト
Dim buf_strTxt As String '読み込みバッファ
On Error GoTo Func_Err:'オブジェクト作成'終了処理
Set fso = CreateObject("Scripting.FileSystemObject")
Set TXT = fso.OpenTextFile(FileName, ForReading)
'全文読み込み
buf_strTxt = TXT.ReadAll
TXT.Close
'元ファイルをリネームして、テンポラリファイル作成
Name FileName As FileName & "_"
'置換処理
buf_strTxt = Replace(buf_strTxt, TargetText, NewText, , , vbTextCompare)
'書込み用テキストファイル作成
Set TXT = fso.CreateTextFile(FileName, True)
'書込み
TXT.Write buf_strTxt
TXT.Close
'テンポラリファイルを削除
fso.DeleteFile FileName & "_"
Func_Exit:Set TXT = NothingFunc_Err:
Set fso = Nothing
Exit FunctionMsgBox "Error Number : " & Err.Number & vbCrLf & Err.Description
GoTo Func_Exit:
このExcelに現物アリ。
↓
http://www2u.biglobe.ne.jp/~hinden/etc/excel/etc.xls
[関連する過去日記]
[「Ma_ho_Ma_ho_Family」のサイト。全ファイルの文字コードを一斉に「UTF-8」に改修]
http://hinden.at.webry.info/201711/article_6.html
上記 記事 に載せてある手順にて大体よろしかったんですけど、Excel VBA で自動作成しているページに、不具合 (文字化け) が発生しました (文字列の Replace 時に、アカンかったわけです)。それに対処したのが、今回の関数です。
これでもう、大丈夫。
↓
http://www2u.biglobe.ne.jp/~hinden/live
改修後の「まほまほファミリー」のホームページ。
↓
http://www2u.biglobe.ne.jp/~hinden/

[その他の、関連する過去日記]
[「Ma_ho_Ma_ho_Family」のサイト、一斉にページ更新しました。(VBAを自作して)]
http://hinden.at.webry.info/201710/article_20.html
[[Excel VBA] 表記ゆれを統一。英数字・記号はすべて半角に、カタカナは全角に置換。]
http://hinden.at.webry.info/201710/article_9.html

about me
--------
hinden Takahashi, Hideki
ひんでん 高橋 秀樹
http://hinden.at.webry.info/200002/article_1.html
[events]
イベント情報一覧
http://www2u.biglobe.ne.jp/~hinden/live
ラベル:コンピュータ
【関連する記事】
- 楽器のほうのキーボードを壊した ともみち くん。今度は、パソコンのほうのキーボー..
- 外付けハードディスク、全損。
- Q : ブラウザの起動ページが勝手に変えられてしまっていて、しかも通常の直し方で..
- 修理され戻ってきました、ディスプレイ一体型パソコン。以降、パソコン複数台を縦横無..
- そして、つなぎのノーパソ。なんと、これが素晴らしく具合よくて、ああ幸せ。(のろけ..
- 祝。ミッション、完遂。快適なパソコン環境を提供。([長女の一人暮らしが始まる] ..
- ノートパソコン、自力で直しました。
- Javaを身につけたいならココ、サーチマンさんのサイトが最適。(無料)
- この「FC2ホームページ」の障害はやっぱりどうにもならんものかな。無理か、無料版..
- 前のパソコンは、買取査定で大した額になりませんでした。w
- パソコン買い替え時の初期セットアップ手順を最新化しました。(自分用に特化した手順..
- [自分用メモ] CSV化する際には、BOM付きUTF-8にしておくべし。
- 直りました。「まほまほファミリー」のメールフォームからのメールが文字化けする障害..
- 「Ma_ho_Ma_ho_Family」のサイト。全ファイルの文字コードを一斉に..
- 「Ma_ho_Ma_ho_Family」のサイト、一斉にページ更新しました。(V..
- [Excel VBA] 表記ゆれを統一。英数字・記号はすべて半角に、カタカナは全..
- [自分用memo] 画像URLの一覧から随時サムネイルをセルに貼ってゆく、という..
- [誰か教えて] [Excel VBA] ネット上の画像が縦長なのか横長なのかを知..
- そういう仕様なの ? Google フォト。
- [パソコン] Q : ファイル名を一括リネーム (一部の文字列を一括で削除) し..