![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
環境: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
ご支援願います
![「Excel VBA SetFocus」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/8/750258_5497baff0baac/M.jpg)
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ランキング
-
Flash IE6でプログレスバーが...
-
WEBブラウザの重複起動の禁止
-
【C#】wavファイルの複数同時再生
-
メモリに読み込んだ音源のPlayS...
-
FLASHでmp3プレイヤー
-
外部ドメインで編集不可の子フ...
-
VB6のスクロールバー付きフレー...
-
フラッシュで逆再生中の停止に...
-
メガネ ウェリントン どこの国...
-
大元のタイムラインの変数を初...
-
複数のsoundを1つのon/offボタ...
-
フレームでページ分かれていて...
-
imovie9の書き出し時間が長過ぎ...
-
ビルダー フレームページから...
-
【理系】フレームと時間を対応...
-
インターネットエクスプローラ...
-
VBAでIE操作時のLocationURLとURL
-
車の運転時のメガネ 縁なし(...
-
MC内のフレームをrootにペース...
-
左フレームの選択結果を右フレ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WEBブラウザの重複起動の禁止
-
AS3.0で子MCから他の子MCの...
-
Math.ramdom()を特定回数繰り返す
-
ループ再生のflashをタイムライ...
-
Excel VBA SetFocus
-
ASではどうやって記述するのか
-
フラッシュ初心者ですが
-
Flash lite1.0の計算クイズ
-
ActionScriptで関数とは?
-
プルダウンメニューとフェード...
-
Smartyのテンプレートについて
-
Error#1009 時計のシーン移動ボ...
-
秒と同期してMCを動作させる方法
-
キーボードを押した時のムービ...
-
ボタンシェイプにリンクを張ると…
-
FLASH LITE1.1のテキスト入力に...
-
ActionScript3.0でエラーがでる
-
actionscriptでfor文が正常に動...
-
loadMovieで読み込んだswf
-
ボタンとASが1フレーム目にない...
おすすめ情報