Excel VBA質問箱 IV

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

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


2433 / 13646 ツリー ←次へ | 前へ→

【68072】vbModeless 亜矢 11/1/28(金) 17:14 質問[未読]
【68074】Re:vbModeless Yuki 11/1/28(金) 17:46 発言[未読]
【68077】Re:vbModeless UO3 11/1/28(金) 18:09 回答[未読]
【68078】Re:vbModeless 亜矢 11/1/28(金) 20:11 お礼[未読]
【68079】Re:vbModeless ichinose@食事中 11/1/28(金) 20:13 発言[未読]
【68080】Re:vbModeless ichinose 11/1/28(金) 20:26 発言[未読]
【68081】Re:vbModeless 亜矢 11/1/28(金) 20:35 お礼[未読]

【68072】vbModeless
質問  亜矢  - 11/1/28(金) 17:14 -

引用なし
パスワード
   よろしくお願いします。
下記の様なプログラムで、あるセルをクリックしてUserform1を表示させます。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Cells(Target.Row, 2) <> "" Then
   UserForm1.Show vbModeless
 End If
End Sub
 問題はUserform1が表示されると矢印キーが利かないことです。
 マウスでセルを選択することはできるのですが、できれば矢印キーで
 移動も可能としたいと思いますが、可能でしょうか
 可能の場合はプログラムはどのように記述したらよいか
 教えていただきたいと思います。

【68074】Re:vbModeless
発言  Yuki  - 11/1/28(金) 17:46 -

引用なし
パスワード
   ▼亜矢 さん:
>よろしくお願いします。
>下記の様なプログラムで、あるセルをクリックしてUserform1を表示させます。
>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> If Cells(Target.Row, 2) <> "" Then
>   UserForm1.Show vbModeless
> End If
>End Sub
> 問題はUserform1が表示されると矢印キーが利かないことです。
> マウスでセルを選択することはできるのですが、できれば矢印キーで

どのように動かないのですか?
具体的に教えて下さい。
現在はCells(Target.Row, 2) <> "" のところは動かないですけど
それ以外は動きます。これを全部動かすと言うことですか?

【68077】Re:vbModeless
回答  UO3  - 11/1/28(金) 18:09 -

引用なし
パスワード
   ▼亜矢 さん:

勘違いならスルーしてください。

Option Explicit

Private Declare Function SetFocus Lib "user32" (ByVal hwnd As Long) As Long

Sub Test()
  UserForm1.Show vbModeless
  SetFocus Application.hwnd
  ActiveCell.Activate
End Sub

【68078】Re:vbModeless
お礼  亜矢  - 11/1/28(金) 20:11 -

引用なし
パスワード
   ▼UO3 さん:
>▼亜矢 さん:
>
>勘違いならスルーしてください。
>
>Option Explicit
>
>Private Declare Function Lib "user32" (ByVal hwnd As Long) As Long
>
>Sub Test()
>  UserForm1.Show vbModeless
>  SetFocus Application.hwnd
>  ActiveCell.Activate
>End Sub
ありがとうございまして。動くようになりました。
 API32のSetFocus(VBAの意味は理解しています)の意味を教えていただきたいと
 思います。

【68079】Re:vbModeless
発言  ichinose@食事中  - 11/1/28(金) 20:13 -

引用なし
パスワード
   ▼亜矢 さん:
こんばんは。
シートがアクティブになっていればよいのですか?なら、

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Cells(Target.Row, 2) <> "" Then
   UserForm1.Show vbModeless
   Application.Visible = True
 End If
End Sub

この程度でもいけました(Excel2002)。

【68080】Re:vbModeless
発言  ichinose  - 11/1/28(金) 20:26 -

引用なし
パスワード
   追伸
>
>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> If Cells(Target.Row, 2) <> "" Then
>   UserForm1.Show vbModeless
   AppActivate Application.Caption
> End If
>End Sub
>
これでもいけました(Excel2002)。

【68081】Re:vbModeless
お礼  亜矢  - 11/1/28(金) 20:35 -

引用なし
パスワード
   ▼ichinose@食事中 さん:
>▼亜矢 さん:
>こんばんは。
>シートがアクティブになっていればよいのですか?なら、
>
>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> If Cells(Target.Row, 2) <> "" Then
>   UserForm1.Show vbModeless
>   Application.Visible = True
> End If
>End Sub
>
>この程度でもいけました(Excel2002)。
皆様いろいろありがとうございまして。おかげで解決しました。

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