環境: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ランキング
-
Access レポート印刷するときに...
-
アクセスクエリの計算
-
Access VBA を利用して、フォル...
-
実行時エラー3131 FROM 句の構...
-
エクセルのデータをアクセスに...
-
アクセスで教えてください。 ク...
-
【至急・画像あり】建物or住所...
-
Accessのスプレッドシートエク...
-
ACCESS VBA でのエラー解決の根...
-
Microsoft Accessをクレジット...
-
accessデータを指定したExcel、...
-
Microsoft365にAccessってあり...
-
Access VBA [リモートサーバー...
-
Accessで作ったデータベースをw...
-
アクセス レポートを開いたとき...
-
日付のテキストボックスに(例...
-
Accessのリンクテーブルのパス...
-
Access で半角スペースと全角ス...
-
アクセスクエリで教えて下さい...
-
Access Error3061 パラメータが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WEBブラウザの重複起動の禁止
-
JavaScriptからsetVariable()で...
-
時刻の設定と取得について
-
FLASH LITE1.1のテキスト入力に...
-
FlashLite1.1でのランダム表示...
-
Excel VBA SetFocus
-
Flash lite1.0で カウントダウン
-
Flash lite1.0の計算クイズ
-
Suzukaで時計のflashを作成し、...
-
_parent.gotoAndStopコマンドに...
-
二択のフレーム移動
-
FLASH上でインラインフレームみ...
-
フレーム内に移動したい
-
ドロップフレームの計算をエク...
-
Access2010でサブフォームのフ...
-
phpで音を鳴らす
-
フレーム内のオプションボタン...
-
【C#】wavファイルの複数同時再生
-
VB6のスクロールバー付きフレー...
-
C#でDLLファイル読み込みを行う...
おすすめ情報