エクセルVBAマクロ
CheckBox1のチェックがOFFで値がfalseになった時、TEXTBOX1にカーソルが自動的に移動し、
そしてTEXTBOX1内のデータ(数値)をクリアして、データ入力待ち(0-9.)の状態になる。
数値入力後エンターキーを押すと、commandbox1上にカーソルが自動移動する。
数値入力せずにエンターキーを押すと、自動的に0.5が入力され、commandbox1上にカーソルが自動移動する。
CheckBox1のチェックがONで値かtureの時、TEXTBOX1は、入力不可。
と動作させたいと考えております。
ユーザフォーム上でのCheckBox1,TEXTBOX1,commandbox1ではなく、
エクセルのワークシート上にコントロールツールボックスからCheckBox1,TEXTBOX1,
commandbox1を貼り付けた状態です。
上述の動作をさせる為のエクセルVBAマクロを教えてください。(エクセル2003使用です)
どのタイミングで何をやりたいのかがわからなかったのでスルーしてたのですが、
キャンセルして質問文作り直しされたので、パズルがてらやってみました
Private Sub CheckBox1_Click() With TextBox1 If CheckBox1 = True Then .Enabled = True: 'テキストボックスを有効化 .Value = "": 'テキストボックスを空っぽに .BackColor = &HC0FFC0: '背景色を元の色に .Activate Else .Enabled = False: 'テキストボックスを無効化 .BackColor = &HC0C0C0: '判りやすいように背景をグレーに End If End With End Sub Private Sub TextBox1_KeyPress(ByVal KeyCode As MSForms.ReturnInteger) ' 数値と小数点以外の文字は無効化するための処理 If KeyCode >= 48 And KeyCode <= 57 Then ' 0-9 ElseIf KeyCode = 46 And InStr(TextBox1.Value, ".") = 0 Then ' 小数点 Else ' その他のキー KeyCode = 0 End If End Sub Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) ' Enterキーの判定はこちらで行う If KeyCode = 13 Then CommandButton1.Activate End If End Sub Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) MsgBox "CommandButton1が押されたよ" & vbCrLf & "値は[" & TextBox1.Value & "]だね" End Sub