オプションボタン(1)からスタートするには?

解決


ゆか  2006-01-24 00:01:59  No: 129756

この間は質問に答えてもらってありがとうございます。もう一つ質問したいことがあって書き込みました。それは、コントロール配列にしてあるオプションボタン1,2,3のうち、プログラムを実行したときにオプションボタン1が押された状態で始めたいですがエラーが出てしまいます。

Private Sub Form_Load()
On Error Resume Next

    Me.optButton(0).Value = True
    
End Sub

と書いたんですけど、「プロシージャの呼び出し、または引数が不正です」って出てしまいます。どうすればこのエラーは消えてくれますか?


ガッ  2006-01-24 00:40:02  No: 129757

新規プロジェクトを作って、確かめてみましたか?
うち(WinXPHome VB6(SP6))では再現できませんでした。


ゆか  2006-01-24 00:49:39  No: 129758

それが、エラーが出た後OK押すと普通にプログラムが実行されて、オプションボタン1も押された状態で始まるんです。つまりはエラーが出てるけど処理はおこなわれているってことなんでしょうか?だとしたらなんでエラーなんだろ。


LESIA  2006-01-24 01:03:29  No: 129759

Form_Loadではなぅ、デザイン時にプロパティウィンドウで、
オプションボタン1のValueをTrueにしておくのはダメですか?


コボル  2006-01-24 01:12:22  No: 129760

新規プロジェクトで試してみましたか?
オプションボタンのイベントコードが掲示されていないので、
回答が推測の域を超えられません。
Private Sub Form_Load()
    Call optButton_Click(1)
End Sub
いろいろ試してみてください。


ひでらん  2006-01-24 01:14:02  No: 129761

optButton変更時になにか処理するように記述してあって
そっちでエラーとか?

※私の環境:WinXPPro-SP2 VB6-SP6でも再現しませんが・・・。


ゆか  2006-01-24 01:25:29  No: 129762

LESIAさんごめんなさい。それじゃダメなんです。泣
えっと、調べてみて少しわかったのは、起動する時に一度オプションボタンの処理を通してから起動させるとよいみたいなことが書いてあったんですけどわかりますか?私にはどうやっていいのかわかりませんでした。


ゆか  2006-01-24 01:38:43  No: 129763

えっと、みなさん回答ありがとうございます。説明不足すぎますね。泣
オプションボタン1,2,3が押された時の処理を書きます。

'オプションボタン
Private Sub optButton_Click(Index As Integer)
On Error GoTo lblError
 
Select Case True

    Case optButton(0).Value
    
        Me.txtInput.Text = ""
        Me.txtID.Text = ""
        Me.txtName.Text = ""
        Me.txtMemo.Text = ""
        Me.txtInput.Enabled = False
        Me.txtID.Enabled = True
        Me.txtName.Enabled = True
        Me.txtMemo.Enabled = True
        Me.cmdReading.Enabled = False
        Me.cmdUpdate.Enabled = True
        Me.cmdDeletion.Enabled = True
        Me.txtID.SetFocus

    Case optButton(1).Value

        Me.txtInput.Text = ""
        Me.txtID.Text = ""
        Me.txtName.Text = ""
        Me.txtMemo.Text = ""
        Me.txtInput.Enabled = True
        Me.txtID.Enabled = False
        Me.txtName.Enabled = False
        Me.txtMemo.Enabled = False
        Me.cmdReading.Enabled = True
        Me.cmdUpdate.Enabled = False
        Me.cmdDeletion.Enabled = False
        Me.txtInput.SetFocus
    

    Case optButton(2).Value
    
        Me.txtInput.Text = ""
        Me.txtID.Text = ""
        Me.txtName.Text = ""
        Me.txtMemo.Text = ""
        Me.txtInput.Enabled = True
        Me.txtID.Enabled = False
        Me.txtName.Enabled = False
        Me.txtMemo.Enabled = False
        Me.cmdReading.Enabled = True
        Me.cmdUpdate.Enabled = False
        Me.cmdDeletion.Enabled = False
        Me.txtInput.SetFocus
    
End Select
    
lblExit:
    Exit Sub
lblError:
    Call MsgBox("[エラー番号]" & Err.Number & vbCrLf & "[エラー内容]" & Err.Description, vbExclamation, "VBエラー")
    Resume lblExit

End Sub

といった処理なんですけど、汚いソースでわかりづらいと思います。ごめんなさい。簡単に説明しますと、オプションボタン1,2,3をコントロール配列で作って、それのどれが押されるかで書き込めるTextとか押せるボタンを制御させています。コントロール配列にした理由は、上からの命令です。コントロール配列じゃなかったら簡単にできたんですけど、コントロール配列にしたらエラーがでるようになってしまいました。


GOD  2006-01-24 01:54:13  No: 129764

SetFocusをコメントにするとどうなります?
画面表示してないからフォーカスで設定でエラーになっているのでは。
あとSelect Case Indexのほうがよくない?


ゆか  2006-01-24 02:02:27  No: 129765

SetFocusをコメントにした場合すんなり実行できました。つまりSetFocusのせいってわかりました。ですが、SetFocusをコメントにしとくわけにもいかず。どうすればいいのでしょうか?本当無知でごめんなさい。


いな  2006-01-24 02:15:45  No: 129766

Visibleの値によってセットフォーカスする、しないを切り分けるとか


ゆか  2006-01-24 02:24:30  No: 129767

いなさん、お返事ありがとうございます。SetFocusはつけておきたいのですが、やっぱりSetFocusのせいでエラー出るなら取り払うべきなのかな?


ぶぶ  2006-01-24 02:36:52  No: 129768

>Private Sub Form_Load()
>On Error Resume Next
>
     me.show      '<----これいれてみる
>    Me.optButton(0).Value = True
>    
>End Sub
me.showをいれてみたらどうですか?エラーでますか?


コボル  2006-01-24 02:42:58  No: 129769

最初にフォーカスを与えるコントロールが決まっているのであれば、
TabIndexプロパティに1をセットしておくとか。


ひでらん  2006-01-24 02:46:40  No: 129770

この書き方でも意図した様に動くんですねぇ。
私はちょっとびっくりしました。

>Select Case True
>  Case optButton(0).Value
>  Case optButton(1).Value
>  Case optButton(2).Value
>End Select


ゆか  2006-01-24 02:47:28  No: 129771

ぶぶさんお返事ありがとうございます。ぶぶさんのアドバイスのとおりしてみたら、エラーがおこりませんでした。本当ありがとうございます。


ゆか  2006-01-24 02:49:39  No: 129772

コボルさん、ひでらんさん、お返事ありがとうございます。お二人のやり方も試してみます。本当皆さんの対応に感動します。すごくうれしいです。


ゆか  2006-01-24 02:53:12  No: 129773

あっ、少し勘違いがありました。ごめんなさい。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加