プロが教えるわが家の防犯対策術!

2点わからない点がありますのでよろしくお願いします。

(1)ユーザーコントロールのオブジェクト名を引数として使用したいのですが
エラーが発生し困っています。どのようにしたらいいのでしょうか?

ユーザ-コントロールのオブジェクト名:UserControl1
☆でエラーが発生する「オブジェクトはこのプロパティまたはメソッドをサポートしていません。」
※関数aはDLLとなっておりどうしてもオブジェクト型で渡さなければなりません。

Private Sub Command1_Click()

Call a(Me)

End Sub

===DLL関数:a===
オブジェクト名とボタン名をINIファイルに書き込む処理
===========
Private Sub a(prmObj As Object)

Dim strMsg As String

strMsg = prmObj.Name ・・・☆





End Sub

(2)String型からObject型に変換するのは可能でしょうか?
INIファイルから"UserControl1.Command.Enable = False"というString型のデータを読込み、
ボタンを有効・無効設定するという事が処理がしたいのですが何かいい方法がありましたら教えてください。

Private Sub UserControl_Initialize()

Dim a As Object
Dim b as String'INIファイルから取得
Dim c as String       'INIファイルから取得

b = "UserControl1.Command1"
c = "False"

  Set a = Me.Controls(b)

If c = "False" then
a.Enable = False
else
a.Enable = True
End If

End Sub

A 回答 (1件)

(2)のほうですが、


名前で指定されたコントロールを操作するには
フォーム上のコントロールを検索して目的のコントロールを見つける必要があります。
こんな感じで。

Dim myControl  As Control       ' Formのなかにある各コントロール
Dim myName   As String        ' 操作するコントロールの名前
For Each myControl In myForm.Controls  ' コレクションの各要素に対して繰り返します。
  If myControl.Name = myName Then
    ~~目的のコントロールに対する処理~~
  End If
Next myObject

この回答への補足

ありがとうございました!

補足日時:2005/10/19 10:02
    • good
    • 0
この回答へのお礼

やってみたのですが,うまくいきませんでした。。。
☆で「オブジェクトが必要です」というエラーがでます。
何かいい案があったら教えてもらえないでしょうか?

Dim strMyControl As Control ' Formのなかにある各コントロール
Dim strMyName As Variant ' 操作するコントロールの名前
Dim strValue As String ' 操作するコントロールの設定値

For Each strMyControl In Controls ☆
  If Name = strMyName Then
Select Case strValue
case "ON"
strMyControl.enable = True
case "OFF" strMyControl.enable = True

End Select

End If
Next

お礼日時:2005/10/20 09:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!