Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3373 / 13644 ツリー ←次へ | 前へ→

【62637】コマンドボタンにフォーカスを移動するには masa2 09/8/18(火) 18:25 質問[未読]
【62639】Re:コマンドボタンにフォーカスを移動する... kanabun 09/8/18(火) 18:45 発言[未読]
【62642】Re:コマンドボタンにフォーカスを移動する... masa2 09/8/18(火) 19:51 発言[未読]
【62643】Re:コマンドボタンにフォーカスを移動する... yoshi 09/8/18(火) 21:15 回答[未読]
【62646】Re:コマンドボタンにフォーカスを移動する... masa2 09/8/19(水) 7:52 発言[未読]
【62654】Re:コマンドボタンにフォーカスを移動する... masa2 09/8/19(水) 13:32 質問[未読]

【62637】コマンドボタンにフォーカスを移動するに...
質問  masa2  - 09/8/18(火) 18:25 -

引用なし
パスワード
   Excel2007でキーワード検索の機能を作っています。

TextBox1にキーワード入力後、Enterキーを押すと、
CommandButton1にフォーカスが移動する機能を書きたいのですが、
わからなくて困ってます。

「SetFocus」を使うのかな?というと所まではわかったので
ですが、具体的プログラムがわかりません。
Private Sub TextBox1_Change()???
  SetFocusu (CommandButton1)???
End Sub

アドバイス頂けると助かります。よろしくお願いします。

【62639】Re:コマンドボタンにフォーカスを移動す...
発言  kanabun  - 09/8/18(火) 18:45 -

引用なし
パスワード
   ▼masa2 さん:
こんにちは。

>TextBox1にキーワード入力後、Enterキーを押すと、
>CommandButton1にフォーカスが移動する機能を書きたい

VBEメニュ−[表示]-[タブオーダー]から
テキストボックスのつぎにCommandButtonがくる順番にしておくと、
コードで何もしなくても、

> Enterキーを押すと、
> CommandButton1にフォーカスが移動する

とおもいます。

【62642】Re:コマンドボタンにフォーカスを移動す...
発言  masa2  - 09/8/18(火) 19:51 -

引用なし
パスワード
   kanabunさん、返答ありがとうございます。
>VBEメニュ−[表示]-[タブオーダー]から
>テキストボックスのつぎにCommandButtonがくる順番にしておくと、
>コードで何もしなくても、
>
>> Enterキーを押すと、
>> CommandButton1にフォーカスが移動する
>
>とおもいます。

[タブオーダ]が灰色で設定できません。
調べてみると[タブオーダ]は、formを使ってる場合に機能する機能の様です。

今回は、エクセルシートに直接、ActiveX コントロールのTextBoxとCommundButtonを
貼り付けて機能を作りたいです。
残念ですが今回は[タブオーダ]機能が利用できないようです。

【62643】Re:コマンドボタンにフォーカスを移動す...
回答  yoshi  - 09/8/18(火) 21:15 -

引用なし
パスワード
   >今回は、エクセルシートに直接、ActiveX コントロールのTextBoxとCommundButtonを
>貼り付けて機能を作りたいです。
こういうことは始めに言っておくべきでは。
単にTextBox1とかCommandButton1とか言われるとユーザーフォームのコントロールと思うのが通常です。

ActiveX コントロールだと以下のようでしょうか。

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
 If KeyCode = Asc(vbCr) Then CommandButton1.Activate
End Sub

【62646】Re:コマンドボタンにフォーカスを移動す...
発言  masa2  - 09/8/19(水) 7:52 -

引用なし
パスワード
   yoshiさん、ありがとうございます。
こんな感じで動く様になりました。
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  '"a1"にOldKeyCodeを保存
  If Range("a1").Value = KeyCode Then '同じキー押しが2度続いたか?
    If KeyCode = Asc(vbCr) Then CommandButton1.Activate
  End If
  Range("a1").Value = KeyCode 'OldKeyCodeの更新
End Sub

しかし、CommandButton1.Activateになると、CommandButton1ボタンの表示が消えて
しまいます。Activate以外に良いものがないか調べてみます。

【62654】Re:コマンドボタンにフォーカスを移動す...
質問  masa2  - 09/8/19(水) 13:32 -

引用なし
パスワード
   CommandButton1がActivateになるとCommandButton1の表示が消えてしまう問題
を解決しようと、いろいろやってみたのですが解決方法が見つかりません。
この様な状態になる原因と解決法をアドバイス頂けると助かります。
よろしくお願いします。
Excel 2007 Windows XP SP3

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  '"a1"にOldKeyCodeを保存
  If Range("a1").Value = KeyCode Then '同じキー押しが2度続いたか?
    If KeyCode = Asc(vbCr) Then Me.CommandButton1.Activate
    'If KeyCode = Asc(vbCr) Then Me.CommandButton1.Select
    'If KeyCode = Asc(vbCr) Then Me.CommandButton1.Verb
    'CommandButton1.Visible = True
    
  End If
  Range("a1").Value = KeyCode 'OldKeyCodeの更新
End Sub

3373 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free