人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Power Pointで、マクロ(VBA)によって、
スライドの全図形中のテキストの
「りんご」を「みかん」に置換したいのですが、
参考になりそうなサンプルコードか、解説が載っているページを教えていただけないでしょうか。

なお http://q.hatena.ne.jp/1104101386 は見ています。よろしくお願いいたします。

●質問者: lionfan
●カテゴリ:コンピュータ
✍キーワード:point POWER VBA みかん りんご
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● aiaina
●60ポイント ベストアンサー

http://oshiete1.goo.ne.jp/kotaeru.php3?q=71326

御参考にどうぞ^?^

◎質問者からの返答

aiaina様

お教えいただいたサイトを参考に、

Replaceメソッドのヘルプを引いてみたところ、

みごと解決しました。

今後の方のために、コピペさせていただきます。

aiaina様、ありがとうございました。大感謝です。




Replace メソッド

関連項目対象使用例アプリケーション情報TextRange オブジェクトの Replace メソッド

指定したテキスト範囲から置き換える文字列を検索し、指定した文字列に置き換え、最初に見つかったテキストを表す TextRange オブジェクトを返します。一致するものが見つからない場合は、Nothing を返します。

expression.Replace(FindWhat, ReplaceWhat, After, MatchCase, WholeWords)

expression 必ず指定します。対象となるオブジェクトへの参照を返すオブジェクト式を指定します。

FindWhat 必ず指定します。文字列型 (String) の値を指定します。検索するテキストを指定します。

ReplaceWhat 必ず指定します。文字列型 (String) の値を指定します。置き換えるテキストを指定します。

After 省略可能です。長整数型 (Long) の値を指定します。引数 FindWhat の内容を指定したテキスト範囲のどこから検索するか、その文字の位置を指定します。たとえば、テキスト範囲の 4 番目の文字から検索するには、引数 After には 4 を指定します。この引数を省略すると、テキスト範囲の先頭から検索を開始します。

MatchCase 省略可能です。MsoTriState クラスの定数を使用します。大文字小文字を区別するかどうかを指定します。

使用できる定数は、次に示す MsoTriState クラスの定数のいずれかです。

msoCTrue

msoFalse (既定値)

msoTriStateMixed

msoTriStateToggle

msoTrue 大文字小文字を区別します。

WholeWords 省略可能です。MsoTriState クラスの定数を使用します。完全に一致する単語だけを検索するかどうか指定します。

使用できる定数は、次に示す MsoTriState クラスの定数のいずれかです。

msoCTrue

msoFalse (既定値)

msoTriStateMixed

msoTriStateToggle

msoTrue 単語の一部ではなく、完全に一致する単語を検索します。

Fonts オブジェクトの Replace メソッド

Fonts コレクションのフォントを置き換えます。

expression.Replace(Original, Replacement)

expression 必ず指定します。対象となるオブジェクトへの参照を返すオブジェクト式を指定します。

Original 必ず指定します。文字列型 (String) の値を指定します。置き換えるフォントの名前を指定します。

Replacement 必ず指定します。文字列型 (String) の値を指定します。置換フォントの名前を指定します。

使用例

TextRange オブジェクトの場合

次の使用例は、作業中のプレゼンテーションのすべての図形で、"like" と完全に一致するすべての単語を "NOT LIKE" に置き換えます。

Sub ReplaceText()

Dim oSld As Slide

Dim oShp As Shape

Dim oTxtRng As TextRange

Dim oTmpRng As TextRange

Set oSld = Application.ActivePresentation.Slides(1)

For Each oShp In oSld.Shapes

Set oTxtRng = oShp.TextFrame.TextRange

Set oTmpRng = oTxtRng.Replace(FindWhat:="like", _

Replacewhat:="NOT LIKE", WholeWords:=True)

Do While Not oTmpRng Is Nothing

Set oTxtRng = oTxtRng.Characters(oTmpRng.Start + oTmpRng.Length, _

oTxtRng.Length)

Set oTmpRng = oTxtRng.Replace(FindWhat:="like", _

Replacewhat:="NOT LIKE", WholeWords:=True)

Loop

Next oShp

End Sub


2 ● きゃづみぃ
●10ポイント

質問にある前の質問では 解決できないのでしょうか?

それを 少し変えれば 希望のものに近くなると思われます。

ちょっと変えたのを 下に 提示します。

あと、文中にある 「りんご」を「みかん」に変える場合は、

チェックの仕方と 変える部分を 変更しないと ダメですね。

それが必要ならば それも 提示できます。


Sub ChangeKanaText()

' スライドを取得

Dim slide

For Each slide In ActiveWindow.Parent.Slides

' スライド内のシェイプオブジェクト(テキストボックス等)を取得

Dim shape

For Each shape In slide.Shapes

' シェイプ(テキストボックス等)の単語を取得

Dim word

For Each word In shape.TextFrame.TextRange.Words

' 文字列の置換

If word.Text = "りんご" Then

word.Text = "みかん"

End If

Next

Next

Next

End Sub

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t13.htm

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ