人生のプチ美学を教えてください!!

いつもお世話になっております。
ありがとうございます。

マルチページ内のエラー時に、テキストにフォーカスしたいのですが、
該当のエラーテキストではないページ(タブ)にカーソルがあった場合、
エラーとなってしまいます。

色々調べて、やってみたのですが、うまくいきません。
ご教授いただけると幸いです。

マルチページ内には、いくつかのテキストとチェックボックスがあります。
マルチページのページ数はmei_su = 5 です。

For i = 1 To mei_su
Set mychk = Me.Controls("chkMei5_" & i)
If mychk.Value = True Then
MsgBox "チェックされていますが、入力されていません。"
Set mytxt = Me.Controls("txtMei2_" & i)
mytxt.SetFocus
Exit Sub
End If
Next

MultiPage1.value = 0 とか、
Me.Controls("Page" & i).enable = true とかも
入れてみたのですが、ダメでした。

よろしくお願い致します。

A 回答 (1件)

>マルチページ内には、いくつかのテキストとチェックボックスがあります。


>マルチページのページ数はmei_su = 5 です。

ご説明とマクロが矛盾しているように思われます。

とりあえず変更前:
mytxt.SetFocus

変更後:
Me.MultiPage1.Value = mytxt.Parent.Index
mytxt.SetFocus


それとも,マルチページの「1枚のページの中には」1個のチェックボックスと1個のテキストボックスの1セットしか無くて(幾つかあるワケじゃなくて),マルチページの頁数とチェック-テキストの組数は同じですというイミなら,今のマクロのままでOKですが,それならもっと簡単に
変更後:
me.multipage1.value = i - 1
mytxt.setfocus
で十分です。

この回答への補足

keithin様、本当にありがとうございました。

For i = 1 To 5
Set mychk = Me.Controls("chkMei5_" & i)
If mychk.Value = True Then
Me.MultiPage1.Value = i - 1
Set mytxt = Me.Controls("txtMei2_" & i)
mytxt.SetFocus
MsgBox "エラーです。"
Exit Sub
End If
Next

ご指摘のようにi-1で十分でした。
本当にありがとうございました。

補足日時:2011/04/18 18:42
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

説明が悪くすみません。

マルチページの中には、5ページあります。
その1ページ1ページには、テキスト・チェックボックス等が9つあります。

txtMei1-1 ~ txtMei4-5
(txtMeiの後の数字がページ内の番号、次の数字がページ数としています)
chkMei5-1 等

Me.MultiPage1.Value = mytxt.Parent.Index
mytxt.SetFocus

を入れてみたのですが、
「エラー 438 
 オブジェクトは、このプロパティまたはメソッドをサポートしていません。」
となってしまいました。

私の入力が悪いのかもしれません。
すみません。
また、ご回答いただけると幸いです。

お礼日時:2011/04/18 16:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A