[リストへもどる]
一括表示

投稿時間:2003/12/09(Tue) 12:43
投稿者名:ぢぢぢ
Eメール:
URL :
タイトル:
オプションボタンのコントロール配列
オプションボタンのコントロール配列のTrueになっている
index値を返すサブモジュールを標準モジュール内で作りたいのですが

なかなか旨くいきません…
どなたか教えて下さい〜

投稿時間:2003/12/09(Tue) 13:09
投稿者名:これ
URL :
タイトル:
Re: オプションボタンのコントロール配列
> オプションボタンのコントロール配列のTrueになっている
> index値を返すサブモジュールを標準モジュール内で作りたいのですが
>
こういうことでしょうか?
------Module
Public Function getOptIndex(Frm As Form, ctrlName As String) As Integer
    Dim i   As Integer
    Dim opt As OptionButton
    getOptIndex = 0
    For i = 0 To Frm.Controls(ctrlName).Count - 1
        Set opt = Frm.Controls(ctrlName)(i)
        If opt.Value Then
            getOptIndex = i
            Exit For
        End If
    Next i

End Function

------Form
Private Sub Command1_Click()
    Debug.Print getOptIndex(Me, "Option1")
End Sub

Option1がコントロール配列でないとエラーになりますが・・・
もう少し違うやり方もあるように思いますが
この程度しか思いつきませんでした。

投稿時間:2003/12/09(Tue) 13:28
投稿者名:ぢぢぢ
Eメール:
URL :
タイトル:
ありがとうございます!
先ほどから自分でも作ってみました

------module
Public Function GetIndex(index As Object) As Integer
    Dim opt As Object
    For Each opt In index
        If opt.Value = True Then
            index = opt.index
            Exit Function
        End If
    Next
End Function

----form
Private Sub Command1_Click()
    Set setObj = option1
  option1 = GetIndex(setObj)
End Sub

for eachを使いたくて色々試行錯誤したのですが(汗)
Frm.Controls(ctrlName)の使い方を知りませんでしたので かなり参考になりました
本当にありがとうございます!