• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAの記述方法の質問です。)

エクセルVBAでオートシェープの吹き出しに文字列を表示する方法

このQ&Aのポイント
  • エクセルVBAを使用して、オートシェープの吹き出しにセルの文字列を表示する方法について質問です。
  • 現在、オートシェープの吹き出しにセルの文字列を表示するマクロを作成していますが、セレクトする必要があります。
  • セレクトせずに文字列を表示する方法を知りたいです。変更したところ、「オブジェクトはこのプロパティまたはメソッドをサポートしていません」というエラーが発生しました。どこが間違っているのか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • pureh
  • ベストアンサー率69% (36/52)
回答No.2

> ActiveSheet.Shapes("AutoShape 4").Characters.Text = a > と書くと保護の有無にかかわらず実行時エラーなのです。 ActiveSheet.Shapes("AutoShape 4").TextFrame.Characters.Text = a

otasukey
質問者

お礼

ありがとうございました! うまく行きました。 マクロの自動記録では絶対わからない書き方ですね。 助かりました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

シートを保護させたから エラーになったんでしょう。 保護したまま、VBAのほうで、解除して、再度 保護するようにしてみれば? '保護の解除 ActiveSheet.Unprotect ActiveSheet.Shapes("AutoShape 4").Select Selection.Characters.Text = a 'シートの保護 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

otasukey
質問者

補足

> シートを保護させたから エラーになったんでしょう。 ActiveSheet.Shapes("AutoShape 4").Select と書けば保護時にはエラーになるし、解除すればもちろん大丈夫です。それはわかるのです。 ActiveSheet.Shapes("AutoShape 4").Characters.Text = a と書くと保護の有無にかかわらず実行時エラーなのです。 だから、この書き方のどこがまずいのか知りたいのです。 よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A