ここから本文です

Excel2013で、テキストボックスの文字列を置換するマクロを組んだら、フォントまで...

chi********さん

2016/7/2710:48:25

Excel2013で、テキストボックスの文字列を置換するマクロを組んだら、フォントまで...

Excel2013で、テキストボックスの文字列を置換するマクロを組んだら、フォントまで変わってしまった。

ボタンを押したら、テキストボックス内の「あいうえお」を「ABCDE」に置換することを意図したマクロを組みたいです。

図の上側のように、テキストボックスの中でフォントを分けている場合に、
以下のようなプログラムを実行したところ、文字列は意図したとおりに置換されたのですが、図の下のように、フォントまでタイトル部分と同じになってしまいました。

フォントや左揃えなどを保持したまま、文字列だけを置換することはできないでしょうか?

Sub ボタン1_Click()
Dim shp As Shape, Buf As String, Buf2 As String
For Each shp In ActiveSheet.Shapes
'メッセージボックスの場合
If (shp.Type = msoTextBox) Then
'置換前の文字列
Buf = shp.TextFrame.Characters.Text
'置換後の文字列
Buf2 = Replace(shp.TextFrame.Characters.Text, "あいうえお", "ABCDE")
shp.TextFrame.Characters.Text = Buf2

End If
Next shp

End Sub

補足質問が重複してしまいましたが、もう一方は図の貼り付けに失敗したものです。
削除しようと思ったのですが、既に回答をされようとしている方がいらっしゃるかもしれないので、しばらく様子を見てから削除するつもりです。
できるだけ本質問の方にご回答いただきますようお願いいたします。

Excel2013,Buf2 As String,フォント,buf As String,テキストボックス,abcde&quot,あいうえお

閲覧数:
106
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

gim********さん

2016/7/2717:00:06

質問者の別アカです。自己解決しました。
shp.TextFrame.Characters("あいうえお"が見つかった位置、"ABCDE"の長さ).Text = "ABCDE"
でうまくいきました。

文字列が見つかった位置は

InStr(Buf, "あいうえお")で取得できます。

質問した人からのコメント

2016/7/27 17:59:10

自己解決したため締め切ります。回答者は質問者と同一です。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる