• ベストアンサー

VB6.0について教えてください。

ARCの回答

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

オプションボタンのKeyDownイベントに、下記のように書けばいいです。 KeyDownイベントは、フォームなどのオブジェクトにも装備されていますので、色々応用が出来ます。 Private Sub Option1_KeyDown(KeyCode As Integer, Shift As Integer)   Select Case KeyCode     Case vbKeyUp       'TODO:↑を押したときの動作              KeyCode = 0 '標準のキー押下時の動作をキャンセルする     Case vbKeyDown       'TODO:↓を押したときの動作              KeyCode = 0     Case vbKeyLeft       'TODO:←を押したときの動作              KeyCode = 0     Case vbKeyRight       'TODO:→を押したときの動作              KeyCode = 0   End Select End Sub

chiba-masaru
質問者

補足

できないですが??? →を押してもKeyDownにこないです(なぜ?)

関連するQ&A

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

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

  • ユーザーフォーム上にある「テキストボックス」に小数が入力できない

    以前にユーザーフォーム上のテキストボックスにセル値反映する方法を下記(サンプル1)のようにお教えいただいたのですが、下記のようにマクロを組むとテキストボックスに小数が入力できなくなってしまいます。 どのようにしたら、テキストボックスに小数が入力できるようになるのでしょうか? お教えください。 事例)「1.234」とテキストボックスに打ち込むと「1」    「0.856」とテキストボックスに打ち込むと「0」と    なってしまいます。 (サンプル1) 'A1のデータを反映するとした場合 'OptionButton1のコード Private Sub OptionButton1_Click() TextBox1 = Sheets("Sheet1").Range("a1") End Sub 'B1に反映するとして 'OptionButton2のコード Private Sub OptionButton2_Click() TextBox1 = "" End Sub 'TextBox1のコード Private Sub TextBox1_Change() If OptionButton2 = True Then Sheets("Sheet1").Range("B1") = TextBox1.Value End If End Sub

  • エクセル マクロ オプションボタン

    エクセル上にユーザーフォーム1を作り OptionButton1~4作成 Captionには OptionButton1)あ OptionButton2)い OptionButton3)う OptionButton4)え と名前を付けてOptionButton1をクリックすると TextBox1に”あ”と表示するようにしたいです! お願いします! 教えて下さい。 {宣言は何?} Dim i As Integer Dim s1 As String For i = 1 To 3 Step 1 s1 = Me.Controls("OptionButton" & i).Caption If Me.Controls("optionbutton" & i) = True Then With UserForm1 .TextBox1.Value = s1 End With End If Next i End Sub 上記の記述では無理でした! 教えて下さい。

  • うまくVBが組めません

    会社でエクセルを使ってデータをまとめているのですがVBのユーザーフォームで作ろうとしています。今困っていることはoptionbuttonを4個使い選択式にし、選択したら「OK」buttonを押すことで各optionbuttonに対応したsheetへ飛ぶようにしたいのですがうまくいきません。 現状ですが Private Sub CommandButton1_Click() dim str as string str=optionbutton1.caption select case str case "****" sheets("1234").select ・    ・    ・ end select End Sub としています。 根本的に違うかもしれないので指摘してください。 ちなみに3日前に始めてVBを教えてもらいました。

  • エクセル

    TEXTBOX1 button1 button2 button3 TEXTBOX2 button4 button5 button6 comanndobuton1 Private Sub CommandButton1_Click() Dim cnt As Long cnt = Cells(Rows.Count, 1).End(xlUp).Offset(1).Row If Me.OptionButton1 = True Then Cells(cnt, 1) = Me.TextBox1 Else Cells(cnt, 1) = "" If Me.OptionButton4 = True Then Cells(cnt + 1, 1) = Me.TextBox2 Else Cells(cnt + 1, 1) = "" End If End If If Me.OptionButton2 = True Then Cells(cnt, 2) = Me.TextBox1 Else Cells(cnt, 2) = "" If Me.OptionButton5 = True Then Cells(cnt + 1, 2) = Me.TextBox2 Else Cells(cnt + 1, 2) = "" End If End If If Me.OptionButton3 = True Then Cells(cnt, 3) = Me.TextBox1 Else Cells(cnt, 3) = "" If Me.OptionButton6 = True Then Cells(cnt + 1, 3) = Me.TextBox2 Else Cells(cnt + 1, 3) = "" End If End If End Sub これで実行するとbutton1がtrueでありbutton4がtrueのように    bu2とbu5 bu3とbu6が一緒の時だけうまく以下なのですが ご指摘いただけないでしょうか

  • VBでこんなことできますか??

    例えば、テキストボックスが縦に100個並んでいるとします。あるボタンを押すと、textbox1~textbox100までの値(.text)を、順番にmsgboxで出していくとしたら・・・。 Sub bottun1_click msgbox textbox1.text msgbox textbox2.text msgbox textbox3.text ・ ・ msgbox textbox100.text End Sub じゃ無いと無理でしょうか? 何とかループ文でできないでしょうか? 知りたいことは、 オブジェクト名「textbox1」を何とか"textbox" & "1" のように表現できないものでしょうか?? これが表現できれば、変数の値を1~100回ループすれば たったの1文でできるような気がします。 どなたかご教授下さい。

  • VB6 教えてください

    お願いします。 あるfrom1があり、 そこにtextbox(0)から(10)まであります。 textbox(4)をクリックしたら、別のfrom2を開きたいのですが、わかりません。 textboxの配列をやめ、別の名称にすればできるのですが、事情がありできません。

  • 入力エラー時にメッセージを出す方法

    下記コードなのですが、入力ミスでもフォームが開いてしまいます。 5602、5662以外の場合、メッセージを出して、正しく入力を求めるようにしたいのですが、どのようにしたらいいでしょうか。 Sub 推進区() s = InputBox("納入便を選択して下さい。" & Chr(13) & _ "推進区:5602" & Chr(13) & "推進区:5662", "納入便選,s) If s = "5602" Then UserForm1.OptionButton3.Visible = False UserForm1.TextBox1.Value = 5602 Else UserForm1.OptionButton3.Visible = True UserForm1.TextBox1.Value = "5662" End If UserForm1.Show End Sub

  • VB2010について

    Microsoft Visual Basic2010で以下のようなブラウザを作ろうとしています。 TextBox1とTextBox2に文字を入力してButton1をクリックすると、TextBox1とTextBox2に入力した文字が自分のメールボックスに届くような事ができるサンプルコードを教えてください。 回答できる方是非お願いします。

  • オプションボタンについて

    VBAはまだやり始めたばかりで、ちょっとわからないので、教えて 下さい。 TextBox1~19に金額を入力すると、 TextBox60に小計 TextBox61に消費税 TextBox62に合計 が入るように設定してあります。 TextBox61のよこに OptionButton1 切捨て OptionButton2 切り上げ OptionButton3 四捨五入 OptionButton4 税込み(「-」を入力) を設定し、オプションボタンを選択するごとに、TextBox61の 消費税設定を変えたいと思っています。 標準では下記のコードでOptionButton1が選択されるように してあります。 オプションボタンで切り替えるにはどのようにしたら よいでしょうか。。。 Private Sub 合計Sub(ByVal myTextBox As MSForms.TextBox) Const cnsTax As Double = 0.05 Dim i As Long Dim v(1 To 19) As Long Dim y(60 To 62) As Long ' With myTextBox .Value = Format$(.Value, "#,##0") End With '再計算 On Error Resume Next For i = 1 To 19 v(i) = CLng(Me.Controls("TextBox" & i).Value) Next With Application.WorksheetFunction y(60) = .Sum(v) If myTextBox Is Me.TextBox61 Then y(61) = CLng(myTextBox.Value) Else y(61) = .RoundDown(y(60) * cnsTax, 0) End If y(62) = .Sum(y(60), y(61)) End With On Error GoTo 0 For i = 60 To 62 Me.Controls("TextBox" & i).Value = Format$(y(i), "#,##0") Next End Sub