人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルVBAマクロを教えてください。(エクセル2003使用です)

エクセルVBAマクロ

CheckBox1のチェックがOFFで値がfalseになった時、TEXTBOX1にカーソルが自動的に移動し、
そしてTEXTBOX1内のデータ(数値)をクリアして、データ入力待ち(0-9.)の状態になる。

数値入力後エンターキーを押すと、commandbox1上にカーソルが自動移動する。
数値入力せずにエンターキーを押すと、自動的に0.5が入力され、commandbox1上にカーソルが自動移動する。


CheckBox1のチェックがONで値かtureの時、TEXTBOX1は、入力不可。

と動作させたいと考えております。

ユーザフォーム上でのCheckBox1,TEXTBOX1,commandbox1ではなく、
エクセルのワークシート上にコントロールツールボックスからCheckBox1,TEXTBOX1,
commandbox1を貼り付けた状態です。

上述の動作をさせる為のエクセルVBAマクロを教えてください。(エクセル2003使用です)

1322189150
●拡大する

●質問者: hawk007
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● うぃんど
ベストアンサー

どのタイミングで何をやりたいのかがわからなかったのでスルーしてたのですが、
キャンセルして質問文作り直しされたので、パズルがてらやってみました

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

うぃんどさんのコメント
テストケースを投稿してしまったので、再投稿してます 人力検索上に表示されているものが最新です
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ