[30] [31] [32] ... [31] [32] [33]などのシリアル番号を置き換えるときに問題があります。私は記事の真ん中に新しい参照を挿入するとMSの言葉で。 GUIで解決方法を見つけられなかったので、VBAを使用してその置換を実行しようとしました。私は、スタックオーバーフローで同様の問題を見つける:それは他の場所でいくつかの置換配列を生成する必要があるため括弧内の数字をMS Wordの計算で置き換える方法
MS Word Macro to increment all numbers in word document
しかし、この方法は少し不便です。私はregexとMS Word VBAのコードのようないくつかの機能を以下のように置き換えることができますか?
Sub replaceWithregExp()
Dim regExp As Object
Dim regx, S$, Strnew$
Set regExp = CreateObject("vbscript.regexp")
With regExp
.Pattern = "\[([0-9]{2})\]"
.Global = True
End With
'How to do some calculations with $1?
Selection.Text = regExp.Replace(Selection.Text, "[$1]")
End Sub
しかし、regExpで$ 1で計算する方法がわかりません。 "[$ 1 + 1]"を試してみましたが、[31 + 1] [32 + 1] [33 + 1]を返します。誰も助けることができますか?ありがとう!
おそらくこれは明らかですが、わかりません。なぜ、通常の検索と置換を使用しないのですか?最も高い数字から始め、あなたの方法をダウンしてください。 – Andreas
@アンドレアス私は、この種の問題を解決するためのより便利な方法を見つけたいと思うし、次に私は何度も何度も検索して置き換える必要はなく、いくつかのコードを変更して実行するだけです:) – Eki
Ok。あなたは正規表現マッチを行い、マッチを操作し、oldstringとnewstringで "置き換え"ますか?私は正規表現置換があなたが望むように動作するかどうかはわかりません。一方、正規表現のマッチは機能します。 – Andreas