|
▼年寄り さん:
こんにちは。
>久しぶりに訪れました。いつもお世話になっております。今回もよろしくお願いいたします。
>
>UserForm上でなく、Sheet上にあるコントロールを取得したい。例えばCommandButtonのCaptionを変更するとか、そのCommandButtonにSetFocusするとか。
これは、ツールバー「コントロールツールボックス」にあるボタンのことだと
思ってよろしいですね!!
例えば、Sheet1というシートにCommandButton1というコマンドボタン配置した場合、
標準モジュールに
'==============================================
Sub test()
With Worksheets("sheet1")
With .CommandButton1
.Caption = "時刻 " & Format(Now(), "hh:mm:ss")
.Activate
End With
End With
End Sub
というコードで
>Captionを変更するとか、そのCommandButtonにSetFocusするとか。
は実現できます。
でも同じ標準モジュールでも
Sub test2()
Dim sht As Worksheet
Set sht = Worksheets("Sheet1")
With sht
With .CommandButton1
.Caption = "時刻 " & Format(Now(), "hh:mm:ss")
.Activate
End With
End With
End Sub
というようにワークシートオブジェクトを変数に置き換えると、
「データメンバーが見つかりません」というエラーになります。
でも、このように変数で扱う場合ってよくありますよね?
Sub test3()
Dim sht As Worksheet
Set sht = Worksheets("Sheet1")
With sht
With .OLEObjects("CommandButton1")
.Object.Caption = "時刻 " & Format(Now(), "hh:mm:ss")
.Activate
End With
End With
End Sub
このようにOleobject ととして、処理するとオブジェクト変数でも処理できます。
両方とも覚えて置いてください。
|
|