開発者テクノロジ | Visual Basic for Applications
Microsoft 製品に組み込まれている Visual Basic の実装。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
ExcelにてMXSheetボタンを設置し、VBA側にてそのボタンのEnabledのTrue/Falseを動かしているのですが、気が付いたらオブジェクト名が変更されてしまいました。
「実行時エラー'438'
オブジェクトは、このプロパティまたはメソッドをサポートしていません。」
というエラー文が出てきました。
これ自体はオブジェクト名を変更すると解決しますが、再発防止策などありますか?
Microsoft 製品に組み込まれている Visual Basic の実装。
サードパーティーが提供しているアドインについての問題は、まずそのアドインの提供元(MX Sheet であれば三菱電機)のサポート情報を確認し、解決できなければ提供元のサポート窓口で相談してください。
製品によっては、提供元とのサポート契約が必要な場合がありますので、必要に応じてサポート契約を結んでください。
PLC関連のアドインについてであれば開発元に相談してみてください。
ActiveXコントロールのボタンなのだと思いますが、そのワークシートがアクティブになった時のイベントなどで、ボタンの名前を正しい名前に修正してみたら?
Option Explicit
Const OBJECT_NAME = "CommandButton1" '正しい名前
Private Sub CommandButton1_Click()
MsgBox "ok"
End Sub
Private Sub Worksheet_Activate()
Dim i As Long
For i = 1 To Me.OLEObjects.Count
Dim o As Object
Set o = Me.OLEObjects(i)
On Error GoTo CATCH
Debug.Print o.Name
'座標などで特定する
If 160 <= o.Left And o.Left <= 170 And 0 <= o.Top And o.Top <= 10 And o.Name <> OBJECT_NAME Then
'なまえが違ってなら修正する
o.Name = OBJECT_NAME
End If
CATCH:
Next
End Sub