入力フォームの入力値をコマンドボタンを押すことでシートのリストに登録することをVBAでおこないたいのですが、そこでテキストに入力規制をかけたいのですがいろいろ調べ調べで試行錯誤していますがわからなくて困っています。
初心者のためご教授願います。
以下のようにできるか考えたのですが…
ユーザーフォームに ①OptionButton1 と ②OptionButtun2 と ③TextBox を配置し、①を選択すると正の数(自然数)、②を選択すると負の数(マイナスをつけた数)しか③に入力できない規制をかけたい(異なった数値が入力された場合メッセージで注意を促したい)のですが、そもそもこのようなことはできるのでしょうか?できるのであればコードを教えて下さい。
上記以外でも結果として登録する直前に①と②の状態からシートに誤登録を防ぐストッパーのような働きができればと考えています。
No.2ベストアンサー
- 回答日時:
ワークシートのセルには入力規則が設定できますが、残念ながらテキストボックスに同様の機能はありません。
よって、自力でチェックコードを書くことになります。すでに、ニューメリックチェックは掛けているようなので、同じように、オプションボタンの状態を判断しながら、ゼロ未満、またはゼロ以上のチェックを追加することになります。
オプションボタンの判定の仕方も分かっているようなので、他に何をアドバイスすれば良いのやら…。
回答ありがとうございます。なるほどテキストボックスで規制はできないんですね。オプションボタンの状態を判断してゼロ未満~以上のチェックの追加~コードですが、自分なりに動作は想像はつくのですが、いざコードを書くとなるとなかなか自力では難しいので可能であればコードを教えていただきたいのですが…
この場合、おそらくマイナスの入力忘れだけが懸念されるだけなので、コマンドボタンを押した際、OptionButton2(出)がTrueの状態でテキストボックスに0以上の数字が入力されていたらメッセージで促すコードを付け足すような感じになる?のでしょうか?
何かわがままですみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) EXCEL ActiveX コマンドボタンで実行する前にいったんmsgBoxで確認を求めたい 1 2022/07/06 19:41
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- 確定申告 公金受取口座登録後、e-Taxで口座情報を入力する必要はありますか 2 2022/05/09 06:48
- Visual Basic(VBA) VBA エクセル 条件の設定 1 2022/03/28 10:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスの番号を使っ...
-
Windowsのアプリ開発ってなんの...
-
数字以外の入力をエラーにする...
-
エクセルVBA テキストボックス...
-
初歩的な事だと思います。 Sub...
-
エディットボックスの入力制限...
-
EXCEL VBA で指定した範囲に入...
-
Excel-VBAでInputBox+Pulldown...
-
VBAの質問になります メッセー...
-
入力フォームの値をQRコードで...
-
DataGridView 列ごとの入力制限
-
DataGridViewの桁数制限に関して
-
vbaで同じテキストボックスを繰...
-
教えて!全角文字「μ」の半角
-
excel vba でユーザーフォーム...
-
テキストボックスの入力チェック。
-
SQL で数値フィールドにDBNULL...
-
VBAでInputBoxの再入力をさせる...
-
入力フォームで入力出来る文字...
-
TEXTAREA に入力時の位置
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA テキストボックス...
-
テキストボックスの番号を使っ...
-
初歩的な事だと思います。 Sub...
-
数字以外の入力をエラーにする...
-
EXCEL VBA で指定した範囲に入...
-
Excel-VBAでInputBox+Pulldown...
-
入力フォームの値をQRコードで...
-
VBAの質問になります メッセー...
-
c#でTextBoxの入力制限
-
VBAで質問があります
-
教えて!全角文字「μ」の半角
-
VBAでInputBoxの再入力をさせる...
-
excel vba でユーザーフォーム...
-
TextBoxから数字が文字...
-
エディットボックスの入力制限...
-
accessで該当するレコードがな...
-
DataGridViewの桁数制限に関して
-
VBA R1C1形式で変数の入力について
-
「イ分」・・・フンという文字...
-
Windowsのアプリ開発ってなんの...
おすすめ情報
実際に使用するフォームとシート構成のイメージも添付します。
よろしくお願いします。
Private Sub CommandButton1_Click()
Dim LastRow As Long
With Worksheets("Sheet1")
If ComboBox1.Text = "" Then
MsgBox "品名を入力して下さい。"
ComboBox1.SetFocus
Exit Sub
End If
If Not IsDate(TextBox2.Text) Then
MsgBox "期限を正確に入力して下さい。"
TextBox2.SetFocus
Exit Sub
End If
If Not IsNumeric(TextBox3.Text) Then
MsgBox "登録数を正確に入力して下さい。"
TextBox3.SetFocus
つづきです。
Exit Sub
End If
If (OptionButton1 Or OptionButton2) = False Then
MsgBox "分類を選択して下さい"
Exit Sub
End If
LastRow = Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row + 1
If LastRow = 3 Then
.Range("A" & LastRow).Value = 1
Else
.Range("A" & LastRow).Value = .Range("A" & LastRow - 1).Value + 1
End If
.Range("C" & LastRow).Value = TextBox1.Text
つづき~2です
.Range("D" & LastRow).Value = ComboBox1.Value
.Range("E" & LastRow).Value = TextBox3.Text
.Range("F" & LastRow).Value = TextBox2.Text
If OptionButton1 = True Then
.Range("B" & LastRow).Value = OptionButton1.Caption
ElseIf OptionButton2 = True Then
.Range("B" & LastRow).Value = OptionButton2.Caption
End If
End With
MsgBox "登録しました"
End Sub
長くてすみません