FileSystemObjectでテキストファイルを1行ずつ入出力させ、JScriptの正規表現で置換処理を行うHTA(HTML Application)のサンプルコードです。
Windows環境で動作し、追加のランタイムをインストールすることなくテキストのバッチ処理や簡易的な置換を試すことができます。
前提条件・動作環境
- Windows OS(Internet Explorerのコンポーネントを利用するため現代のWindows環境では制限がある場合があります)
- ローカル環境でのテスト用
HTAソースコード
以下のコードをコピーし、拡張子を .hta (例: fso_replace.hta)として保存して実行してください。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>【HTA】 FileSystemObjectでテキスト処理 & Jscriptで置換処理</title>
<HTA:APPLICATION
ID="FileSystemObjectRep"
APPLICATIONNAME="Rep"
SCROLL="yes"
SINGLEINSTANCE="yes"
>
</head>
<script id="lang_js" language="jscript" type="text/jscript">
// FileSystemObject
var FSO = new ActiveXObject("Scripting.FileSystemObject");
// 定数
var ForReading = 1;
var ForWriting = 2;
var ForAppending = 8;
// このファイルが置かれているフォルダのパス名を取得する
function GetBaseFolder(){
return FSO.GetFolder(".");
}
function Exp()
{
var IN_FILE = GetBaseFolder() + "\\in.txt";
var OUT_FILE = GetBaseFolder() + "\\out.txt";
var s, r, re;
s = "";
r = "";
document.getElementById('ReadFileName').innerText = "インプット=" + IN_FILE;
document.getElementById('WriteFileName').innerText = "アウトプット=" + OUT_FILE;
if(FSO.FileExists(OUT_FILE)){
FSO.DeleteFile(OUT_FILE);
}
var RTS = FSO.OpenTextFile(IN_FILE, ForReading, true);
var WTS = FSO.OpenTextFile(OUT_FILE, ForWriting, true);
while(!RTS.AtEndOfStream){
s = RTS.ReadLine();
// JScriptの正規表現による置換処理(例: 文字 'a' を 'Q' に置換)
re = /(a)/g;
r = s.replace(re, "Q");
WTS.Write(r);
if(RTS.AtEndOfStream){
break;
}
WTS.Write("\r\n");
}
RTS.Close();
WTS.Close();
document.getElementById('content').innerText = "処理が完了しました。";
}
</script>
<body onload="Exp()" style="padding: 20px; font-family: sans-serif;">
<h3>HTA テキスト置換処理</h3>
<div id="ReadFileName"></div>
<div id="WriteFileName"></div>
<div id="content" style="margin-top: 10px; color: green; font-weight: bold;"></div>
</body>
</html>
使い方と注意事項
- 同一フォルダ内に
in.txtという名前のテキストファイルを配置して実行してください。 - 実行すると自動的に
out.txtが生成され、文字の置換結果が出力されます。 in.txtが存在しない場合はエラーになるため、事前にテスト用のファイルを作成してください。
この記事の更新履歴
この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。
2026年9月12日
- 変更HTMLタグとインデントの乱れを解消し、見やすいコードブロック形式へ修正しました。
- 追加HTAの動作要件や実行手順についての説明を追加しました。

