Microsoft365のエクセルを使っています。
VBAでボタンクリックで一番下のWorksheet_SelectionChangeのオンオフを切り替えたいのですが、2行目で「VBA エラー 438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。」というエラーが出てしまいます。
https://xtech.nikkei.com/it/pc/article/NPC/20070906/281295/
上記のページの中ほどにあるコードをコピペ改変しただけなのですが、どこがおかしいのでしょうか?
よろしくお願いいたします。
VBA
1Private Sub CommandButton3_Click() 2With ActiveSheet.Shapes("CommandButton3").TextFrame.Characters 3 If .Text = "チェック受付中" Then 4 .Text = "チェック受付" 5 Application.EnableEvents = False 6 7 Else 8 .Text = "チェック受付中" 9 Application.EnableEvents = True 10 End If 11 End With 12 13End Sub 14Private Sub Worksheet_SelectionChange(ByVal Target As Range)
・リンクは「リンクの挿入」で記入してください。
・ワークシート上に"CommandButton3"という名前のオートシェイプが存在していて、ユーザーフォーム上に"CommandButton3"という名前のコマンドボタンが存在していますか?
Excel2013で試したところ、質問のエラーは再現しませんでした。
ありがとうございます。
ワークシート上に、開発の中の挿入で作ったプロパティの(オブジェクト名)がCommandButton3のものならありますが、ユーザーフォームに関しては作っていませんでした。調べて新たにユーザーフォームにCommandButton3を作ってみましたが、同じエラーが出てしまいます。
ワークシート上のボタンを作るだけではダメだったということでしょうか?
よろしくお願いいたします。
コードの各行で何に対して何をやっているか、説明できますか?
質問のコードに「Private Sub CommandButton3_Click()」の記述があったので、ユーザーフォームのコマンドボタンのクリック時の動作を定義しているものと理解しましたが違いましたか? 違うのであれば別にユーザーフォームは不要です。
回答でのご指摘通り、フォームとactiveXのボタンをごっちゃにしていたのが原因だったようです。
ありがとうございました。

回答1件
あなたの回答
tips
プレビュー