アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2003を使用している者ですが、オートシェイプの文字列の置換ができなくて困っています。マクロ初心者ですが、量が多いためマクロで解決できればと思っています。

このようなマクロをご存知の方がいましたら、コードを教えていただけますでしょうか。

宜しくお願いします。

A 回答 (3件)

#1です。

作者に失礼して、当方で試験したコードを載せます。
UserForm1に、テキストボックス2個(最初に検索用、次いで置換用を設ける)、コマンドボタン1個を設置します。プロパティは何もいじりません。
<標準モジュール>
Dim test As Long
Public SearchWord As String
Public ReplaceWord As String

Public Sub ReplaceShapeText()
Dim sh As Object '対象シート
Dim s As Shape '対象オートシェイプ
Dim t As String '対象テキスト

Call UserForm1.Show
Set sh = Application.ActiveSheet
On Error Resume Next
For Each s In sh.Shapes
t = s.TextFrame.Characters.Text
If Err Then
Call Err.Clear
Else
s.TextFrame.Characters.Text = Replace$(t, SearchWord, ReplaceWord)
End If
Next s
Set sh = Nothing
End Sub

<UserForm1のコード>
Private Sub CommandButton1_Click()
SearchWord = Me.TextBox1.Text
ReplaceWord = Me.TextBox2.Text
Call Unload(Me)
End Sub
以上
    • good
    • 0

過去ログです。


参考になるかも知れません。

ブック全体の置換に図形を含めるには?
http://oshiete1.goo.ne.jp/qa4594810.html
    • good
    • 1

人様のコードです。

試用してみましたが、テキストボックス、四角、円筒等の文字列中の一部の文字を置換してくれました。グループ化してある場合は、解除しないと無理だと思います。(当方XL2000)ご参考まで。
http://d.hatena.ne.jp/tk78/20080609/1213003555

この回答への補足

自分もやってみましたが、「コンパイルエラー:変数が定義されていません。」という表示が出てしまいましたが、何か修正が必要ということでしょうか?

ちなみに
Public Sub ReplaceShapeText()
という場所が色付けされます…

補足日時:2009/07/18 21:09
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!