は私がstr
という変数と結果にあるように、入力文字列を仮定しますコンソールに出力されます。必要に応じて調整します。
基本的に2つのアプローチがあります。最初は、文字列の一部を取得するために、文字列にし、Left
とMid
検索する組み込み関数InStr
を使用しています。
Dim firstWordLocation As Long
Dim secondWordLocation As Long
firstWordLocation = InStr(str, firstWord)
secondWordLocation = InStr(str, secondWord)
If firstWordLocation > 0 And secondWordLocation > 0 Then
Debug.Print Left(str, firstWordLocation + Len(firstWord) - 1) & Mid(str, secondWordLocation)
End If
これにアプローチする別の方法は、正規表現を使用することです。それらははるかに強力で複雑な文字列操作を非常にコンパクトな方法で実行できます。 ライブラリマイクロソフトのVBScriptの正規表現5.5は以下のように、(また、詳細についてはhttps://stackoverflow.com/a/22542835を参照)を使用することができるRegExp
クラス提供:これは、第1および第2のコンテンツに入力された文字列を置換し
Dim regex As New VBScript_RegExp_55.RegExp
regex.Pattern = "(.*?" & firstWord & ").*?(" & secondWord & ".*)"
Debug.Print regex.Replace(str, "$1$2")
をかっこはPattern
にあるため、その間のすべてを省略します。 予約文字.*+?()[]{}^$\
は、firstWord
またはsecondWord
にある場合は、バックスラッシュ\
でエスケープする必要があることに注意してください。 入力文字列に改行がある場合は、https://superuser.com/q/399381を参照する必要があります。
あなたが戻っ形でこの文字列を配置し、VBAを使用して、それの特定の部分をフォーマットする場合は、形状の各単一のテキスト文字を表しTextRange
のCharacter
プロパティを使用する必要があります。これで、それらの文字オブジェクトを使用して、目的のフォーマットを割り当てることができます。
詳細についてはhttps://msdn.microsoft.com/de-de/library/office/ff743845.aspxを参照してください(このドキュメントはPowerPoint向けですが、Wordでも同様です)。
instr()を使用して2つのキーワードの位置を特定し、Left()、Right()、Mid()の組み合わせを使用して文字列を分割することができます。その後、連結演算子(&)を使用して、中間部分を残して物事を戻します。これらの機能については、VBAのドキュメントを参照してください。 –