アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になります。
OSはWin XP Home EXCEL2000です。

現在以下の現象で悩んでおります。
EXCEL2000のVBAでUserform1(シート上ではない方です)を作り、そこにTextbox1(TabIndex = 0)とCommandButton1(TabIndex = 1)を配置しました。

UserFormを初回に表示した時、及びフォームの右上の「X」で閉じた後は問題ないのですが、以下のコードでUserForm1を閉じた後に再び他のマクロからUserForm1.showとやると、どこにもフォーカスがない状態でUserForm1が立ち上がります。
Private Sub CommandButton1_Click()
UserForm1.TextBox1.SetFocus
UserForm1.Hide
End Sub

一方他のマクロから
UserForm1.show
UserForm1.textbox1.SetFocus
とやってみても期待通りにフォーカスはあたりません。
どのような場合でもUserFormが表示されたときにはtextbox1にフォーカスをあてるようにしたいのです。
尚、この現象はEXCEL2002だと同じコードでも問題なくフォーカスがあたります。

以上よろしくお願いします。

A 回答 (3件)

直接の回答ではないですが、Hide は 隠すだけなので



Unload UserForm1

のようにした方が良いと思います。
    • good
    • 0
この回答へのお礼

すっきり解決しました。ありがとうございます。

お礼日時:2004/03/10 14:25

下記サイト、非常に勉強になりますし


心強い味方になってくれるでしょう

参考URL:http://www.fuji.ne.jp/~excelyou/
    • good
    • 0
この回答へのお礼

いいサイトですね。ちょうと別件で悩んでいた事の解決策にめぐりあいました。これから活用させていただこうと思います。

お礼日時:2004/03/10 14:30

Private Sub UserForm_Initialize()


Me.TextBox1.SetFocus
End Sub

ではダメでしょうか?
フォームが呼び出される時に
実行するコマンドです
    • good
    • 0
この回答へのお礼

userform1.hide の状態のユーザーフォームをuserform1.showで呼び出した場合、このイベントは発生していないようです。残念ながら期待通りの動きはしてくれませんでした。
でも、このInitializeは他に使えそうです。ご回答ありがとうございました。

お礼日時:2004/03/10 14:28

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