まだVBAをプログラミングしている人はいますか?
このコードを機能させようとしています
Private Sub button3_click()
'hide main buttons
button1.Visible = False
button2.Visible = False
button3.Visible = False
'show submenu buttons
button4.Visible = True;
button5.Visible = True;
End Sub
基本的に私がやろうとしているのは、5つのメインボタンコントロールを持つメインフォームがあるということです。それらのうちの2つは起動時に非表示になります。したがって、ボタン3をクリックすると、最初の3つのメインボタンを非表示にし、残りの2つを「再表示」します。このイベントを実行しようとすると、エラーが発生しました
"ランタイムエラー2165-フォーカスのあるコントロールを非表示にすることはできません"。
誰かが以前にプログラミングのこの側面に出くわしたことがありますか?私はそれが実行可能であると確信しています。ここで何が悪かったのかわかりません...
現在のコントロールを非表示にする前に、フォーカスを表示されているコントロールの1つに変更します
Private Sub button3_click()
'show submenu buttons
button4.Visible = True
button5.Visible = True
DoEvents 'execute any pending events, to make sure the button 4 and 5 are really visible
button4.SetFocus 'change the focus to a now visible control
DoEvents 'execute any pending events, to make sure that button4 really has the focus
'now you can hide the other buttons
'hide main buttons
button1.Visible = False
button2.Visible = False
button3.Visible = False
End Sub
DoEventsコマンドをスキップできるかもしれませんが、試してみてください
エラーは十分に明白だと思いました。コードを実行する前に、非表示にしようとしていないコントロールにフォーカスを移動します。また、Me
: http://msdn.Microsoft.com/en-us/library/aa223099(v = office.11).aspx を検討してください。