• 締切済み

VB6入力画面オプションボタンで止まらない。

お世話になります。 XPのVB6で入力画面を作っているのですが、 OptionButtonのIndex0とIndex1で次にカーソルを移動させるTextBoxを変えたいのですが、 プログラムを実行するといきなりIndex0で移動させるTextBoxにカーソルが移動してしまいます。 OptionButtonのClickとKeyDownとLostFocusルーチンに入ったら止めるようにしたところ LostFocusで止まりました。 どうすれば最初のOptionButtonで止まるでしょうか。 ご教授宜しくお願いします。

みんなの回答

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

中学校ぐらいで 5W1H とか習いませんでした? 質問文では、どんな状況で何をどうしたのかが抜けていて、 結果だけ書いてあるのでこちらでは理解できません。 OptionButton の選択でカーソルを移動させるプログラムを 書いているのであれば、最初であろうが、途中であろうが OptionButton で止まる事はありませんし、あってはいけ ないでしょう?(止まる方がプログラムした命令外の動き ですから、バグになります) 特定の条件(初回のみ)プログラムを実行しないのであれば 変数でフラグでも用意して、条件分岐させればいいのでは?

関連するQ&A

  • オプションボタンで選択したセルにキー入力出来ない他

    UserForm1を配置しその中にOptionButtonを2つ配置しまして、 OptionButton1をクリックした時は、a1セルに東京と表示した後カーソルをb1セルに移動させて、 そのB1セルに数字をキー入力する。 OptionButton2をクリックした時は、a1セルに大阪と表示した後カーソルをb1セルに移動させて、 そのB1セルに数字をキー入力するマクロをつくりました。 '---------------------------- Private Sub Workbook_Open() UserForm1.Show End Sub Private Sub OptionButton1_Click() Range("a1").Value = "東京" Range("b1").Activate End Sub Private Sub OptionButton2_Click() Range("a1").Value = "大阪" Range("b1").Activate End Sub '---------------------------- 動かしてみて、下記2点を改良したいのですが 1、OptionButtonをクリック後、数字キーを押してもb1セルに表示されません、b1セルをマウスでクリック後キー入力すると入力した数字が表示されます。マウスでクリックしなくてもキー入力出来る   ようにしたい 2.ファイルを保存終了後、再度開いたときオプションボタンの丸印が2つ共○になっているが、前回終了時に選んだオプションボタンに●がついた状態で表示させたい 以上 よろしくお願いします

  • コントロールが発生させるイベントを回避したい

    VB2008です。 状態: フォーム上にtextbox1、textbox2、button1があり、textbox1からtextbox2もしくはbutton1にフォーカスが移動したとき 1:textbox2への移動->textbox1のlostfocusイベントを通常通り発生させる。 2:button1への移動->textbox1のlostfocusイベントをキャンセルする。(1度たりとも発生させない、もしくは発生してもその処理を1度たりともさせない。) 1は通常の処理なのでなにもしなくていいと思うのですが、2の処理が上手に浮かびません。button1でフラグを立てて、textbox1_lostfocusの処理を抜けるようにしているのですが、必ず1度は処理が実行されます。 どのようにコードを書けばうまくできるでしょうか。もし、これが仕様ということなら、同じような処理をするにはどうすればよいでしょうか。 わかりにくければ補足いたします。よろしくお願いします。

  • VB2005 TextBoxの入力制限について

    はじめて質問させていただきます。 現在、VB2005を使ってプログラムを組んでいるのですが、半角カタカナだけをTextBoxに入力し、表示する方法がわかりません。 Private Sub TextBox6_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox6.KeyDown TextBox6.ImeMode = Windows.Forms.ImeMode.KatakanaHalf End Sub Private Sub TextBox6_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox6.KeyPress If (e.KeyChar < "ア"c Or e.KeyChar > "-"c) And e.KeyChar <> vbBack Then e.Handled = True End If End Sub ↑見にくいかもしれませんがコードです。 この方法ではだめなのでしょうか? 回答をお願いします

  • VB2008 textbox入力判断について

    こんばんは、いつもお世話になりました。 VB2008で "ストップワォッチ"と"タイムダウン"のプログラムを作っています。 要望: 1 TextBox1.textが入力しない時、ストップワォッチを実行 (OK) 2 TextBox1.textが入力する時、TextBox1.textの値からタイムダウンを実行 (OK) 3 TextBox1.textの値をクリアされた時、再度ストップワォッチを実行 4 TextBox1.textに文字列入力された時、数字に変更してから タイムダウンを実行 (例:全角12:56 →12:56) 5 TextBox1.textが入力エラーの場合は プログラムを抜け、何もしないこと 下記のソースでしたら、3と4,5はまだできていません。 宜しくお願いします。 ---------------------------------------------------- 'TextBox1.textが入力しない時、ストップワォッチを実行 If TextBox1.Modified = False Then Timer1.Enabled = True datStart = Now() Me.Button1.Enabled = False Me.Button3.Enabled = False End If 'TextBox1.textが入力する時、TextBox1.textの値からタイムダウンを実行 If TextBox1.Modified = True Then dTime = TextBox1.Text Timer2.Interval = 1000 Timer2.Enabled = True End If 'TextBox1.textの値を再度クリアされた時、ストップワォッチを実行 If Len(TextBox1.Text) = 0 Then TextBox1.Modified = False End If -------------------------------------------------------------- 以上

  • TextBoxに連続で入力する方法

    Form1に、TextBox1とTextBox2を配置しています。 TextBox1にKey入力を受け、Enter Keyで取り込む動作を、連続して行うためのプログラムを作ってみましたが、何故かEnter Keyの後、カーソルがTextBox2に移動してしまいます。Enter Keyの後、TextBox1.SetFocusで、カーソルをTextBox1にしているのですが何故が解らず困っています。Enter Kyeの後、カーソルがTextBox1に戻るようにするには、どのようにすれば良いのか教えて下さい。 PC環境は、OS=Win10 Excel=2010 です。作ったプログラムは以下の通りです。よろしくお願いします。 Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = vbKeyReturn Then Sheets("Sheet1").Range("A1") = TextBox1.Value TextBox1 = "" TextBox1.SetFocus End If End Sub

  • VBでEnterを押すとTabで飛ぶ様にする

    お世話になります。 VB初心者です。VBでフォームを作り、TEXTBOXを複数作ると、Tabキーでタブストップの順番にカーソルが移動しますが、Enterを押すとカーソルが移動するようにするのはどうしたら良いのでしょうか? 宜しくお願いします。

  • VB2005 TextBoxに何も入力しない場合のエラー

    VB入門者なので、よろしくお願いします。 VB2005で、Textboxに何も文字を入力しないで Button1をクリックしたら、  MessageBox.Show("何か入力してください", "エラーメッセージ") の様に何かエラーメッセージが表示されるようにしたいのですが、何かいい方法はありますか? ちなみにTextboxに入力するものは、ひらがな、数字、漢字、ローマ字 なんでも入力できるようにしています。

  • VB2005でExcelのアクティブセルに文字を入力したあとに

    VB2005初心者です。 VB2005のTextBox1に表示された文字をExcelのActiveCellに入力するプログラムを先ほど教えて頂きました。 そのあとの追加動作でActiveCellに文字を入力した後、ActiveCellを一段下げ、TextBox1の文字が変化したらActiveCellに変化した文字を入力するような繰り返し処理をさせるにはどのようにプログラムすればいいのでしょうか? 以下のコードはTextBox1の文字をActiveCellに表示させるプログラムです。ここにどのように追加すればいいのか教えて頂けませんでしょうか? Dim xlApp As Object = GetObject(, "Excel.Application") xlApp.ActiveCell.value = TextBox1.Text xlApp = Nothing どうぞよろしくお願いいたします。

  • vb6で文字を入力可能なコンテキストメニューの作り方を押してください。

    作成環境:VB6(SP6) 右クリックメニューの中に、 文字の入力できるコンテキストメニューを表示させるにはどうしたらいいでしょうか? もしくはVB6で作成可能でしょうか? (MicrosoftのAccessのような、右クリックして「フィルタの対象」として入力できるようなもの) 今現在は、別フォームにTextBoxだけを配置して、 FormのサイズをTextBoxに合わせてFormを呼び出しています。 よろしくお願いします。

  • VB5でTextBoxを入力不可能にする方法は?

    VisualBasic5で開発を行っているのですが、TextBoxの入力を不可能にする(入力カーソルもそこに移動できない)必要が出てきました。 もちろんEnabledプロパティをFalseにする方法があるのですが、この場合文字の色がグレーに変わってしまいます。 また、Labelを使用するパターンも「入力出来たり、入力不可にする」という取り決めがあるので、使えません。 TextBox内の文字色(BackColorも)をそのままにして、入力を拒絶する方法があれば、どなたか教えてください。 もちろんAPIを使用する方法でもかまいませんので…