プロが教えるわが家の防犯対策術!

いつもお世話になっております。

いろいろ調べたのですが行き詰っておりまして
ご教授お願いします。
下記記述でsetfocusでエラーになってしまいます。

Private Sub コマンド_Click()

If IsNull(Me.テキストボックスコントロール名) Then
MsgBox "未入力です"
Me.テキストボックスコントロール名.SetFocus

End If

テキストボックスの処理記述

End Sub


https://www.moug.net/tech/acvba/0030005.html
こちらを参考にしました。
よろしくお願いします。

A 回答 (4件)

コントロールの名前は



プロパティの「名前」で指定してください。

コントロールソースは全く別の用途です。

新規でテキストボックスと、ボタンを作成して質問のコードをコピペで正常動作します。

「名前」をコントロールソースに指定されていたということであれば、その他のプロパティで余計な設定、もしっくは間違った設定をされている可能性があります。

テキストボックスを作り直して、「名前」だけを入力して、コードが動くか確かめてください。
    • good
    • 0

エラーメッセージは文章そのままの意味ですね・・・



理由は指定したコントロールがSetfocusをサポートしていない = フォーカスできないコントロールである可能性が高いです。

コードの入力画面で、

Me.テキストボックスコントロール名.Set

ここまで手入力した時にSetfocusが補完機能の候補に残っていますでしょうか?


残っていない場合にはコントロール名が間違っているか、テキストボックスではない可能性があります。
フォーカスさせたいテキストボックスのプロパティの「名前」をしっかり確認してください。

もしかして、テキストボックスのプロパティの「名前」に
「Me.テキストボックスコントロール名」
としていたりしませんよね?
テキストボックスの名前には「テキストボックスコントロール名」と「Me.」は入れてはいけません。

この回答への補足

>ここまで手入力した時にSetfocusが補完機能の候補に残っていますでしょうか?
はい、保完候補にのこっております。

>もしかして、テキストボックスのプロパティの「名前」に
>「Me.テキストボックスコントロール名」
>としていたりしませんよね?
はい、確認しましたがプロパティの「名前」にはMe.は入っておりません。

追記
補足ですが、テキストボックスのプロパティで「名前」と「コントロールソース」がありますが
どちらを使うのが正しいのでしょうか?
「名前」の方を使ったところ
実行時エラー94
NULLの使い方が不正ですとなりました。
質問時は「コントロールソース」を指定していました。

皆様お手数をお掛けしますが、宜しくお願いします。

補足日時:2013/07/01 11:13
    • good
    • 0

「テキストボックスコントロール名」この名称でテキスとボックスが


フォーム上に配置されていますか?

この回答への補足

回答遅れまして申し訳ありません。
はい、フォーム上に配置されています。
宜しくお願いします。

補足日時:2013/07/01 11:02
    • good
    • 0

コード自体は問題ないようです。



setfocusでエラーが出るのであれば何らかの理由でフォーカスが移動できないんじゃないですかね?

テキストボックスのプロパティで 「使用可能:いいえ」になっているとかじゃないでしょうか?

また、このような質問の場合、何というエラーが出るのかも記載したほうがよいですよ!

この回答への補足

ご回答ありがとうございます。
「使用可能:はい」となっております。
エラーメッセージですが
実行エラー488
オブジェクトはこのプロパティまたはメソッドをサポートしておりません
となります。

よろしくお願いします。

補足日時:2013/06/23 11:15
    • good
    • 0

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

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


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