人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBAの質問です。直前のフォーカスを覚えておく方法は?
図のような画面で、たとえばマウスで英字マス(たとえばB)を選択し、
次にマウスで下の数字ボタン(たとえば7)を押すと、Bに7が入るようにしたいです。
ところがマウスでボタンを押した瞬間に、ボタンにフォーカスが移り、
英字マスへのフォーカスが外れてしまうので、たとえばSendkey命令で、7を押したことにする方法が使えません。
この機能を実現するためにはどのようにすれば良いか、教えていただけないでしょうか。

1377150462
●拡大する

●質問者: lionfan2
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● きゃづみぃ
●200ポイント ベストアンサー

それぞれに Enterというイベントがあるはずなので
そのイベントに入ったら グローバル変数に そのボタンに入ったという 記憶を持たせたらいいでしょう。


lionfan2さんのコメント
id:taknt様、ありがとうございます。 今から会議なのですぐに試せないのが残念ですが、帰宅したらすぐ試してみます!!

lionfan2さんのコメント
id:taknt様、ありがとうございました。無事解決しました。助かりました。 いちおう現物とコードを書いておきます。コントロール配列は使いませんでした。 ↓現物 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
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ