図のような画面で、たとえばマウスで英字マス(たとえばB)を選択し、
次にマウスで下の数字ボタン(たとえば7)を押すと、Bに7が入るようにしたいです。
ところがマウスでボタンを押した瞬間に、ボタンにフォーカスが移り、
英字マスへのフォーカスが外れてしまうので、たとえばSendkey命令で、7を押したことにする方法が使えません。
この機能を実現するためにはどのようにすれば良いか、教えていただけないでしょうか。
それぞれに Enterというイベントがあるはずなので
そのイベントに入ったら グローバル変数に そのボタンに入ったという 記憶を持たせたらいいでしょう。
id:taknt様、ありがとうございます。
2013/08/22 15:14:01今から会議なのですぐに試せないのが残念ですが、帰宅したらすぐ試してみます!!
id:taknt様、ありがとうございました。無事解決しました。助かりました。
2013/08/22 17:30:14いちおう現物とコードを書いておきます。コントロール配列は使いませんでした。
↓現物
http://www.nurs.or.jp/~lionfan//hatena_blog/button_and_num.xlsm
↓コード
Dim 最後に押したマス As String
Private Sub CommandButton1_Click()
Me.Controls(最後に押したマス).SetFocus
SendKeys ("1")
End Sub
Private Sub CommandButton2_Click()
Me.Controls(最後に押したマス).SetFocus
SendKeys ("2")
End Sub
Private Sub CommandButton3_Click()
Me.Controls(最後に押したマス).SetFocus
SendKeys ("3")
End Sub
Private Sub CommandButton4_Click()
Me.Controls(最後に押したマス).SetFocus
SendKeys ("4")
End Sub
Private Sub CommandButton5_Click()
Me.Controls(最後に押したマス).SetFocus
SendKeys ("5")
End Sub
Private Sub CommandButton6_Click()
Me.Controls(最後に押したマス).SetFocus
SendKeys ("6")
End Sub
Private Sub CommandButton7_Click()
Me.Controls(最後に押したマス).SetFocus
SendKeys ("7")
End Sub
Private Sub CommandButton8_Click()
Me.Controls(最後に押したマス).SetFocus
SendKeys ("8")
End Sub
Private Sub CommandButton9_Click()
Me.Controls(最後に押したマス).SetFocus
SendKeys ("9")
End Sub
Private Sub CommandButton0_Click()
Me.Controls(最後に押したマス).SetFocus
SendKeys ("0")
End Sub
Private Sub TextBox1_Enter()
最後に押したマス = TextBox1.Name
End Sub
Private Sub TextBox2_Enter()
最後に押したマス = TextBox2.Name
End Sub
Private Sub TextBox3_Enter()
最後に押したマス = TextBox3.Name
End Sub
Private Sub TextBox4_Enter()
最後に押したマス = TextBox4.Name
End Sub
Private Sub TextBox5_Enter()
最後に押したマス = TextBox5.Name
End Sub
Private Sub TextBox6_Enter()
最後に押したマス = TextBox6.Name
End Sub
Private Sub TextBox7_Enter()
最後に押したマス = TextBox7.Name
End Sub
Private Sub TextBox8_Enter()
最後に押したマス = TextBox8.Name
End Sub
Private Sub TextBox9_Enter()
最後に押したマス = TextBox9.Name
End Sub
Private Sub TextBox0_Enter()
最後に押したマス = TextBox0.Name
End Sub