2016-05-16 11 views
0

ワークシートにDatePickerコントロールがあります。ワークシートの埋め込みコードには、次のようにコントロールの値にアクセスできます。DatePickerから値を取得できません

Public Sub showValue() 

Debug.Print Me.DTPicker21.value 

End Sub 

モジュールから値を取得したいと思います。ここでコード:私はこれを実行すると

Sub getDate() 

Dim obj As Object 
Dim sht As Worksheet 

Set sht = ThisWorkbook.Sheets("Tool interface") 
For Each obj In sht.OLEObjects 
    If obj.Name = "DTPicker21" Then 
     Debug.Print obj.value 
    End If 
Next 

End Sub 

obj.valueはこのエラーをトリガ:

Object doesn't support this property or method 

私はthis procedureを使用してobjのプロパティのリストをチェックし、何valueプロパティがありません。 DatePickerで設定されている日付の値を取得するにはどうすればよいですか?

答えて

2

すべての詳細はわかりませんが、OLEObjectsの中には、最初にそのObjectプロパティにアクセスする必要があり、他のプロパティにアクセスする必要があります。私はOLEObjectがコンテナとして機能すると思います。そして、 "サブオブジェクト"はあなたが対話したい実際のオブジェクトです。あなたは次の2行のコードを実行する場合たとえば、あなたは最初に戻りOleObjectおよび第二リターンDTPickerていることがわかります。あなたの場合

Debug.Print "Obj: " & TypeName(obj) 
Debug.Print "Obj.Object: " & TypeName(obj.Object) 

は、注意してください(エラーを削除するには、次のコード変更を試してみてくださいデバッグ行):

Sub getDate() 

Dim obj As Object 
Dim sht As Worksheet 

Set sht = ThisWorkbook.Sheets("Tool interface") 
For Each obj In sht.OLEObjects 
    If obj.Name = "DTPicker21" Then 
     Debug.Print obj.Object.Value 
    End If 
Next 

End Sub 
関連する問題