プロが教えるわが家の防犯対策術!

VBA勉強中の者です。エクセル2010使用
前回も同じような件で質問したのですが、入力フォームを作成中。
数量表の入力ホームなので、出来るだけキーボードのテンキーでの操作が出来るようにと考えております。
チェックボックスのon/off でテキストボックスの入力の可否を出来るようにしています。これが7組あるとします。(チェックボックス1に対してテキストボックス1に数値が入力出来るように)

質問(1)
チェックが入っていれば、呼応したテキストボックスへエンターキーで移動。
チェックを入っていなければ、エンターキーで次のチェックボックスへ移動するようにしたいのです。

質問(2)
シートへの転記の際は、7組の間に『、』カンマを入れたいのですが、当然チェックのないものは必要ないので、カンマが要らない事になります。初心者の考えでは単純に条件式をその通り数書くことになるのかと思うとゾッとしますが、少しでも条件式を減らす方法があれば、ご教授願います。

分かり難くて、すみません。

A 回答 (2件)

質問(1)


チェックが入っていれば、呼応したテキストボックスへエンターキーで移動。
チェックを入っていなければ、エンターキーで次のチェックボックスへ移動するようにしたいのです。
マウス操作でチェックボックスを操作、テンキーでテキストボックスを操作
することになりますが、これって使いやすいですか?
とりあえず、それぞれのチェックボックスに

Private Sub CheckBox1_Click()
If CheckBox1.Value = 0 Then
TextBox1.SetFocus
Else
CheckBox2.SetFocus
End If
End Sub

質問(2)
A1セルに書き出すとして

Private Sub CommandButton1_Click()
For i = 1 To 7
Range("A1").Value = Range("A1").Value & Controls("TextBox" & i).Value
If Controls("CheckBox" & i).Value = 0 Then Range("A1").Value = Range("A1").Value & ","
Next
End Sub

こんな感じでしょうか。

この回答への補足

回答有難うございます。
質問1ですが、チェックはスペースキーで入るので、マウスは使いません。
コードを試しましたが、チェックが入れば、次のチェックボックスに移る感じでした。
参考にさせていただきます。

有難うございます。

補足日時:2012/11/26 09:35
    • good
    • 0
この回答へのお礼

有難うございました

お礼日時:2012/12/05 14:40

何度か読み返したのですが、よく分からん・・。


チェックボックスは頻繁に On/Off を行うのでしょうか?
なら、チェックボックスはかえって邪魔なので削除、テキストボックスだけに
しておいた方が使いやすそうですけど?

ではなくて、チェックボックスの変更は、たまにしか行わないのなら
入力データによってチェックボックスのOn/Offを行い
その後はしばらくテキストボックスを使用してデータ入力
のような使い方ですか?
どうも私の想像しているものが見当違いな気もしますので
もっと具体的に入力状況が手に取るように見える説明が欲しいところです。

>7組の間に『、』カンマを入れたいのですが、
>当然チェックのないものは必要ないので、カンマが要らない事になります
カンマを取り去ったら、どのテキストボックスに入力した値なのか
判らなくなりませんか?
2,1,,,,6,7 なら、1・2・6・7のテキストボックスからだと分かりますが
2,1,6,7 では役に立たないのでは?

この回答への補足

一般的な表記方法の例は
M8×35L(N,2W,SW)  これの数字部分だけを入力できるようにすれば、ほぼテンキーとエンターキー、スペースキーで可能かと。
ただ、カッコ内の組み合わせも付属物が複数個であったり、無かったりと色々有りますので、チェックボックスでの判別としたかったのです。ちなみに上の表記の様にNとは『ナットが1個』の事ですが、1個の場合は数字は表記せずにNと表記します。
順序はテキストボックス順でいいのです。

これが質問2の内容の補足です。

ですので質問1の意図したいことも、わかりますでしょうか。
説明不足ですみません。

補足日時:2012/11/28 11:21
    • good
    • 0
この回答へのお礼

有難うございました

お礼日時:2012/12/05 14:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!