
環境:Excel 2002です
UserForm1での質問です
Flame5にTextBox14とTextBox15があります
TextBox14とTextBox15のBeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)後
Flame2にあるTextBox1にSetFocusしたいのですがエラーが発生します
実行時エラー 2147467259(800004005)
異なるFlameにSetFocusする方法があるのでしょうか?
Flame5の中でTextBox14及びTextBox15のSetFocusはできます
TextBox14とのTextBox15のBeforeUpdateのプロシージャです
Private Sub TextBox14_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Len(Me.TextBox14.Text) <> 0 Then
Dim a As Variant
a = 100 - Val(Me.TextBox14.Text)
Me.TextBox15.Text = a
Dim i As Integer
For i = 1 To 4
Me.Controls("TextBox" & i).Enabled = True
Me.Controls("TextBox" & i).BackColor = &H80000005 '背景色(白色)
Next i
End If
Me.TextBox1.SetFocus
End Sub
Private Sub TextBox15_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Len(Me.TextBox15.Text) <> 0 Then
Dim a As Variant
a = 100 - Val(Me.TextBox15.Text)
Me.TextBox14.Text = a
Dim i As Integer
For i = 1 To 4
Me.Controls("TextBox" & i).Enabled = True
Me.Controls("TextBox" & i).BackColor = &H80000005 '背景色(白色)
Next i
End If
UserForm1.TextBox1.SetFocus
End Sub
ご支援願います

No.3ベストアンサー
- 回答日時:
こちらでは解決しているようです。
http://www.moug.net/faq/viewtopic.php?t=65607
別解を。
質問者さんの図では、
フレームの本来の使い方(オプションボタン、チェックボックスなどの1個のみを選択する)をしていません。
見た目だけを、分かり易くグループ化しているのみです。
これなら、苦労してフレーム絡みのフォーカス移動を制御するより
ラベルを、フレームのように見せかけて
(SpecialEffect プロパティ を 3 に設定)
(テキストボックスは最前面に表示)
(見出し部分はラベルを重ねる) 等々
質問者さんのコードで動かすほうがずっと簡単かと思います。
ご指摘の通り見た目だけを、分かり易くグループ化してました
グリッドが使えてForm作成が簡単だったのです。
ラベルを、フレームのように見せかけて
(SpecialEffect プロパティ を 3 に設定)
(テキストボックスは最前面に表示)
(見出し部分はラベルを重ねる) 等々 … は目からうろこでした。
この方法で作り直しました
ありがとうございました
No.2
- 回答日時:
分かっているとは思いますが、直接、TextBox1 とか名指しするから問題ですよね。
何のためのFrameかは分かりませんが、概ね、見栄えの問題だけだと思います。
そうなら、Frame自体へ飛ばせば(SetForcus)よいと思います。
例:Me.Frame2.SetFocus
Frameの中の順番自体は、その中のコントーロールに、TabIndexで合理的な順序をつければよいと思います。常識的に、Frameから別のFrameとあっちに行ったり、こっちにいったりはしないものですから。
つまり、TextBox1 は、Frame2 の中で、TabIndex は、0になっているということです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- Visual Basic(VBA) エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示 6 2023/04/25 17:01
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
suzukaのスクリプトで
-
画像がめくれて切り替わるよう...
-
FlashLite1.1でのランダム表示...
-
段ボールみたいな材質でできて...
-
フレームページを更新すると、...
-
flashのBGMのoff/onボタン
-
大元のタイムラインの変数を初...
-
メガネのフレームが半分に折れ...
-
Key入力を無効にするには
-
au Music PortでCDを読み込み作...
-
動画から、1(いち)フレーム...
-
トグルボタンの排他制御でご教...
-
scriptの書き方について
-
ムービークリップを一定時間ご...
-
リンク設定時の「ターゲット」...
-
Flashファイル内に別のswfを読...
-
フレームレートの変更
-
【C#】wavファイルの複数同時再生
-
コマンドボタンのクリックによ...
-
フレームの解除方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WEBブラウザの重複起動の禁止
-
suzukaのスクリプトで
-
深い階層でのムービークリップ...
-
FlashLite1.1でのランダム表示...
-
○秒間ストップ
-
Flashでのゲーム用アナログ時計...
-
教えて下さい!ActionScriptで...
-
プルダウンメニューとフェード...
-
Flash lite1.0で カウントダウン
-
ActionScript3.0でエラーがでる
-
Flash IE6でプログレスバーが...
-
フラッシュ初心者ですが
-
フレームの実行について
-
ループ再生のflashをタイムライ...
-
xmlから配列で取得したものを取...
-
Flash Professional CS5
-
ActionScriptで関数とは?
-
ボタンシェイプにリンクを張ると…
-
WSHを使ってフォームに書き込み...
-
FLASH LITE1.1のテキスト入力に...
おすすめ情報