マクロ内のテキストの置換(Microsoft Word)
マクロを作成している場合は、おそらく文字列変数を使用して多くの作業を行います。文字列変数に関連する一般的な操作は、文字列内の1つの文字を別の文字に置き換える必要があることです。たとえば、次の文字列について考えてみます。
"This is my string of characters."
「of」を「thathas」などの別の単語に置き換えることをお勧めします。
次の汎用関数は、まさにそれを実行できます。
Function RepText(sIn As String, sFind As String, sRep As String) As String Dim x As Integer x = InStr(sIn, sFind) While x > 0 sIn = Left(sIn, x - 1) & sRep & Mid(sIn, x + Len(sFind)) x = InStr(sIn, sFind) Wend RepText = sIn End Function
関数の使用方法の例として、次のことができます。
sTemp = "This is my string of characters." sTemp = RepText(sTemp, "of", "that has")
このコードが実行されると、sTempには「これは文字を含む私の文字列です」という文字列が含まれます。
私のルーチンでは、RepTextのような関数を使用して、余分なスペースを削除することがよくあります(2つのスペースの文字列を1つのスペースの文字列に置き換えます)
または、複数のスペースをタブ文字に置き換えます。もちろん、どのように使用するかは完全にあなた次第です。
最新バージョンのVBAのみを使用したことがある人は、組み込みのReplace関数ではなくRepTextなどの関数を使用する理由について興味があるかもしれません。置換関数は基本的にRepTextと同じことを行いますが、VBAアーセナルへの追加は比較的新しいものです。マクロが古いバージョンのWordで使用される可能性がわずかでもある場合、Replaceを使用すると、マクロがクラッシュするリスクがあります。これらのバージョンでは使用できません。
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(811)は、Microsoft Word 97、2000、2002、および2003に適用されます。