2017-10-31 5 views
1

すべてのキャリッジリターンを¶記号で置き換えて、キャリッジリターンをPPTで表示するようにしています(PPTでは)。 "置換"関数は最初のオカレンスしか見つけられないので、次のオカレンスを見つけるために各文字列をループする必要があります。VBA置換機能を使用してPowerPointで文字列をすべて検索する方法

私はMSの "replace"関数のサンプルコードを使用していますが、コードではキャリッジリターンの一部だけが検出されますが、すべてが検出されるわけではありません。私は何が欠けていますか? ありがとう!

VBAコード:

If .HasTextFrame Then 
    If .TextFrame.HasText Then 
     'MsgBox (.TextFrame.TextRange.Text) 
     Set oTxtRng = oSh.TextFrame.TextRange 

     'Set oTmpRng = oTxtRng 
     Set oTmpRng = oTxtRng.Replace(FindWhat:=Chr$(13), _ 
     Replacewhat:=("¶")) 

     Do While Not oTmpRng Is Nothing 
      Set oTxtRng = oTxtRng.Characters(oTmpRng.Start + oTmpRng.Length + 1, _ 
      oTxtRng.Length) 
      charCount = charCount + 1 

      'MsgBox (oTxtRng.Text) 

      Set oTmpRng = oTxtRng.Replace(FindWhat:=Chr$(13), Replacewhat:=("¶")) 
     Loop 

    End If 
End If 

答えて

0

例えば、テキスト範囲がメソッドを交換していない、Replace関数を使用し

dim sText = Replace(oTxtRng.Text, Chr$(13), "¶") 

oTxtRng.Text = sText 

機能を交換して一度にあるすべてのオカレンスを置き換えます。

+0

を壊す(oTxtRng.Text、CHR $(13)、 "¶") は動作しません。 PPTはこの記法を好まない。私はPPT 2013を利用しています 私はこれを動作させるのが大好きです。 –

0

PPTは、バージョンと1つのバージョン内のテキストボックスのタイプに応じて、異なる行末の文字を使用します。段落の終わりは改行とも異なります。私のPPTFAQサイトが役立つはずのこのページ:

段落終末とラインSTEXT =置き換え暗く http://www.pptfaq.com/FAQ00992_Paragraph_endings_and_line_breaks.htm

関連する問題