
エクセル2003 VBAでデータ入力フォームを作成中です。
データ2種類あり、2つのtextbox(t1 , t2)作りました。
t1のデータ入力後はEnterKeyでExitして
private SUB t1.exit(ByVal Cancel As MSForms.ReturnBoolean)
でエクセルのセル内への所定の場所に書き込みを実行しています。
ところが次にfocus(tabというのか)が移動する t2では 繰り返しデータを入力したいのです。ですからt1と同じようにしたのではEnterでt1にfocusが逃げてしまいます。データは2桁の数字です。Enterで確定してさらに繰り返しt2内でデータを入れ、0を入力しEnterしたときに初めてt1に移らせたいのです。EnterKeyBehaviorをtrueにするのか また
private SUB t2.Exit(ByVal Cancel As MSForms.ReturnBoolean)
で記述していいのかわかりません。教えてください。
No.3
- 回答日時:
標準モジュールに
Public i
Public j
Sub test01()
i = 2
j = 2
UserForm1.Show
End Sub
iは明細最初行、jは明細最初列(B列)を指定。
ーーーー
Userform1にTextBox1とTextBox2を貼り付け。
TextBox1のイベントで
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Cells(i, 1) = TextBox1.Text
TextBox2.SetFocus
End Sub
---
TextBox2のイベントで
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox2.Text = "0" Then
TextBox2.Text = ""
i = i + 1
j = 2
Cancel = False
TextBox1.SetFocus
MsgBox "第" & i & "行目入力"
Else
Cells(i, j) = TextBox2.Text
TextBox2.Text = ""
j = j + 1
End If
Cancel = True
TextBox2.SetFocus
End Sub
<実行関係>
標準モジュールの
test01を実行する。
ーー
<入力のお約束。>
そして次ぎの操作を入力する。
(A)はテキストボックス1に入力
それ以外はテキストボックス2で入力。
(E)はENTERキーを押すことを意味す。
(0)は半角0とENTERキーを押す。(全角で0を入れないよう用心)。
(C)はESCキーを押すことを意味す。
ことを意味する。
テキストボックス1に対し、まず東京と入力しENTER。以下下記にしたがって入力する。
東京(A)国立(E)八王子(E)青梅(E)東村山(E) 0(E)
(ESC)(TXB1クリック)神奈川(A)横浜(E)相模原(E) 0(E)
(ESC)(TBX1クリック)京都(A)八幡向日常用(E)0(E)
以下略
東京国立八王子青梅東村山
神奈川横浜相模原
京都八幡向日常用
がシートに入力されます。
結構私にとって難しかった。不適当箇所もあるかも。ご参考に。
ーーー
しかしこの質問の発想は普通は使わないと思う。複雑になり、もろいプログラムに(操作によってはエラーが出やすい)なりやすいと思う。

No.1
- 回答日時:
こんにちは。
Exitイベントは、Cancel = True とすることで、イベントをキャンセル出来ます。
データを入力してExitイベントで入力したデータが0以外の時に処理をしてCancel = Trueにして元のテキストボックスに戻る、とすればいいでしょう。
Private SUB t2.Exit(ByVal Cancel As MSForms.ReturnBoolean)
If t2.Text <> "0" Then
'ここにデータに対する処理を書く
Cancel = True
End If
こんな感じでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) vbaでセルに入力したときに,その横にあるセルを保護し入力不可にするマクロを作りたいです。 2 2022/04/24 20:59
- Visual Basic(VBA) エクセル VBAについて 2 2022/05/16 16:33
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルVBA テキストボックスへのセットフォーカスについて
Visual Basic(VBA)
-
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
コマンドボタンのEnterイベント後に、フォーカスを移動したい。
その他(Microsoft Office)
-
-
4
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
5
ユーザーフォームへのデータ入力を繰り返す方法
Visual Basic(VBA)
-
6
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
7
ユーザーフォームのSetFocusが働かない?
その他(プログラミング・Web制作)
-
8
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA テキストボックス...
-
初歩的な事だと思います。 Sub...
-
テキストボックスの番号を使っ...
-
EXCEL VBA で指定した範囲に入...
-
教えて!全角文字「μ」の半角
-
数字以外の入力をエラーにする...
-
標準入力について
-
DataGridViewの桁数制限に関して
-
HTMLで全角文字のみ入力するに...
-
textareaについて
-
TextBoxに特定の文字のみ入力を...
-
VBAでInputBoxの再入力をさせる...
-
入力フォームへ、データを自動...
-
Goliveでローマ数字IIの...
-
Excel-VBAでInputBox+Pulldown...
-
「イ分」・・・フンという文字...
-
ExcelVBAのユーザーフォームで...
-
VBA 別sheetからの転記なのですが
-
同時アクセスについて
-
エクセルを使用してHPの入力...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA テキストボックス...
-
初歩的な事だと思います。 Sub...
-
テキストボックスの番号を使っ...
-
Excel-VBAでInputBox+Pulldown...
-
EXCEL VBA で指定した範囲に入...
-
数字以外の入力をエラーにする...
-
VBAでInputBoxの再入力をさせる...
-
DataGridView 列ごとの入力制限
-
エディットボックスの入力制限...
-
入力フォームの値をQRコードで...
-
HTMLで全角文字のみ入力するに...
-
VBA R1C1形式で変数の入力について
-
TextBoxから数字が文字...
-
アクセスのマクロ
-
excel vba でユーザーフォーム...
-
DataGridViewの桁数制限に関して
-
Geminiって、Geminiの入力フォ...
-
c#でTextBoxの入力制限
-
教えて!全角文字「μ」の半角
-
「イ分」・・・フンという文字...
おすすめ情報