いつもお世話になります
Windows7 excell2010 です
ご指導を仰ぎたいのは参照図で言うと、
TextBox1~6 は順調に入力しますがTextBox7にすると「入力」に飛び
参照図のG13に入力されません。
VBAを勉強し始めたはかりですのでどこが悪いかわかりません。
恐れ入りますがご指導願えませんでしょうか。
下記参考にします。
Module のコードには
Sub FormSample()
Do
UserForm1.Show
Loop
End Sub
Sub Test()
MsgBox "ボタンによるマクロの実行"
End Sub
UserForm1
Private Sub CommandButton1_Click()
n = 1
Do
n = n + 1
Loop While Cells(n, 1) <> ""
Cells(n, 1) = UserForm1.TextBox1.Text
Cells(n, 2) = UserForm1.TextBox2.Text
Cells(n, 3) = UserForm1.TextBox3.Text
Cells(n, 4) = UserForm1.TextBox4.Text
Cells(n, 5) = UserForm1.TextBox5.Text
Cells(n, 6) = UserForm1.TextBox6.Text
Cells(n, 7) = UserForm1.TextBox7.Text
Unload Me
End Sub
Private Sub CommandButton2_Click()
Unload Me
End
End Sub
No.1ベストアンサー
- 回答日時:
> TextBox1~6 は順調に入力しますがTextBox7にすると「入力」に飛び
おそらく・・としか言いようがありませんが、
「タブインデックス」がコマンドボタンより後にあるのでしょう。
VBE画面でテキストボックスを右クリック⇒プロパティを選択すると、
図のような「プロパティ」という枠が出てきます。
この中の「TabIndex」を確認し、処理したい(フォーカスを置きたい)順番にしてやりましょう。
フォームが開いた時にフォーカスを持つコントロールには「0(ゼロ)」が振られますから、
質問文中の「図」のフォームのままだとすると、テキストボックス7は「7番目にフォーカス」、
よって「6」を設定してやればOKです。
(おそらく今はボタンが「6」、テキストボックス7が「7」に設定されているのでは?)
もう一つの確認点は「TabStop」が「False」になっている可能性です。
これだとまったくフォーカスを持てなくなってしまいますので、「True」にしておいてあげましょう。
以上、質問への(私なりの)回答でした。
以下は蛇足で、質問とは全く関係ないのですが・・
> Module のコードには
> Sub FormSample()
> Do
> UserForm1.Show
> Loop
> End Sub
これ、大丈夫ですか?
このままだと「強制的にマクロを止めない限り」延々とフォームが出続けますが・・・
私なら、YES/NO型のメッセージを出し、「NOなら終了/YESなら繰り返し」
のような感じで作ります。
例えば
Sub FormSample()
UserForm1.Show
If MsgBox("続行しますか?", vbYesNo) = vbNo Then
Exit Sub
Else
FormSample
End If
End Sub
簡単に書くとこんな感じ。
ついでに。
> n = 1
> Do
> n = n + 1
> Loop While Cells(n, 1) <> ""
おそらく、最終行の次の空白行を取りたいんですね。
もちろん、間違えたやり方とは言いません。
が、これが100行・1000行・・と増えてきたときに
どんどんレスポンスが落ちてきます(処理速度が落ちます)。
1行ずつDo~Loopしていく必要があるためです。
(基本的にDo~Loopは遅いです。)
なので、別案。
n = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(n, 1) = UserForm1.TextBox1.Text
(以下省略)
これで、最終行の次の行番号を一発で引っ張ってきます。
これだとデータが何行あっても処理は1回ですから、レスポンスも基本的には落ちません。
以上、参考までに。
TextBox1 = TabIndex 0
TextBox2 = TabIndex1
という具合に修正したらうまくゆきました。
例えば
Sub FormSample()
UserForm1.Show
If MsgBox("続行しますか?", vbYesNo) = vbNo Then
Exit Sub
Else
FormSample
End If
End Sub
なので、別案。
n = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(n, 1) = UserForm1.TextBox1.Text
(以下省略)
も採用させていただきました。
丁寧なご回答をいただき誠にありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) フレーム内のオプションボタンの選択結果をセルに書き出したい。 図のような預金種目というフレームにオプ 2 2022/07/29 11:12
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Excel(エクセル) VBA 同日で2回目(午後)の体温を登録するときのコード 3 2022/08/28 20:29
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どこにもフォーカスを当てたくない
-
エクセルVBA テキストボックス...
-
C# ReadOnlyのTextBoxで
-
MFCでコンボボックスを選択不可...
-
コマンドボタンのEnterイベント...
-
他の人には声だして挨拶してる...
-
中古本の店名ハンコの消し方
-
ユーザーフォームのSetFocusが...
-
池袋サンシャイン通りでキャッ...
-
キーボードからのチェックの入れ方
-
よしみち という名前に対して...
-
エクセルで、任意のテキストボ...
-
炊飯器のセットの音と出来上が...
-
油性マジックの消し方
-
F503iにSVって表示されてるんで...
-
VC++2010のラジオボタンの選択...
-
VBAのExitイベントについて
-
業務に差し支えのないテンキー...
-
85年に開催された神戸グリー...
-
keydown イベントについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どこにもフォーカスを当てたくない
-
業務に差し支えのないテンキー...
-
炊飯器のセットの音と出来上が...
-
エクセルVBA テキストボックス...
-
C# ReadOnlyのTextBoxで
-
コマンドボタンのEnterイベント...
-
矢印(左右)キーでイベントを...
-
ユーザーフォームのSetFocusが...
-
他の人には声だして挨拶してる...
-
油性マジックの消し方
-
池袋サンシャイン通りでキャッ...
-
OPPO A54 5Gを使っています。 ...
-
テキストボックス入力後、警告...
-
VBAでのユーザーフォーム上...
-
GridViewでハイライトを使用し...
-
『エッジの効いた○○』の意味。
-
テキストボックスの入力チェッ...
-
酸素ボンベのレギュレーターか...
-
MFCでコンボボックスを選択不可...
-
二台のノートパソコンを繋げて...
おすすめ情報