秀丸マクロで、近義語をカンマに置換するマクロを作りたいです。どのようにすればよいでしょうか? 「hèn zhī rù gǔ」の近義語「刻骨仇恨」や「恨入骨髓」は、間にスペースがあるだけです。

以下に、秀丸マクロで近義語をカンマに置換する方法を示します。

“`vbscript
‘ マクロを実行するための関数
Function Main
‘ テキスト選択範囲の取得
Dim selectedText
selectedText = hm_ExtTextSelection()

‘ カンマに置換する処理
Dim replacedText
replacedText = ReplaceSynonyms(selectedText)

‘ 置換後のテキストをセット
hm_XreplaceText selectedText, replacedText
‘ 該当部分を選択状態にする
hm_SelText selectedText

‘ マクロの終了
hm_exit Sub_MacroErrorResumeNext
End Function

‘ 近義語をカンマに置換する処理
Function ReplaceSynonyms(text)
‘ 近義語の辞書を作成
Dim synonymsDict
Set synonymsDict = CreateObject(“Scripting.Dictionary”)
synonymsDict.Add “刻骨仇恨”, “刻骨,仇恨”
synonymsDict.Add “恨入骨髓”, “恨入,骨髓”

‘ 近義語をカンマに置換する
Dim synonym
For Each synonym In synonymsDict.Keys
text = Replace(text, synonym, synonymsDict(synonym))
Next

ReplaceSynonyms = text
End Function
“`

上記のマクロを秀丸エディタに保存し、マクロの実行方法に従って近義語をカンマに置換することができます。

このマクロは、選択されたテキスト内の近義語(「刻骨仇恨」や「恨入骨髓」)をカンマに置換します。近義語の辞書として、`ReplaceSynonyms`関数内に静的に定義されていますが、必要に応じて他の方法(例: ファイルからの読み込み)を使用することもできます。また、マクロ内のキーワードや処理をカスタマイズして、他の用途にも適用することができます。

ただし、このマクロではスペースがあるだけの場合にも対応していないため、入力されたテキスト内の近義語がスペースで区切られている場合には正しく処理できません。改良案として、正規表現を使用して近義語を抽出し、スペースの有無に関係なくカンマに置換する方法を検討することができます。

なお、マクロの作成や正規表現の使用に関して詳細な説明は省略していますので、具体的な作成手順や正規表現のパターンについては、秀丸エディタのマクロや正規表現のドキュメントを参照してください。

コメントを残す