• 締切済み

オートシェイプの文字列の置換

エクセル2003を使用している者ですが、オートシェイプの文字列の置換ができなくて困っています。マクロ初心者ですが、量が多いためマクロで解決できればと思っています。 このようなマクロをご存知の方がいましたら、コードを教えていただけますでしょうか。 宜しくお願いします。

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.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 以上

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

過去ログです。 参考になるかも知れません。 ブック全体の置換に図形を含めるには? http://oshiete1.goo.ne.jp/qa4594810.html

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

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

shun-0315
質問者

補足

自分もやってみましたが、「コンパイルエラー:変数が定義されていません。」という表示が出てしまいましたが、何か修正が必要ということでしょうか? ちなみに Public Sub ReplaceShapeText() という場所が色付けされます…

関連するQ&A

専門家に質問してみよう