Excel VBA質問箱 IV

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

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


20 / 13307 ツリー ←次へ | 前へ→

【80812】十字キーで色をつけたセルの移動の方法 SHUN 19/5/16(木) 18:40 質問[未読]

【80815】Re:十字キーで色をつけたセルの移動の方法 hatena 19/5/16(木) 21:50 回答[未読]
【80831】Re:十字キーで色をつけたセルの移動の方法 SHUN 19/5/18(土) 12:38 お礼[未読]

【80815】Re:十字キーで色をつけたセルの移動の方法
回答  hatena  - 19/5/16(木) 21:50 -

引用なし
パスワード
   すでに回答で出てますが別案です。

ユーザーフォームを作成します。
名前は、UserForm1 とします。

ユーザーフォームのモジュールを下記のように記述します。

Option Explicit
Dim r As Range

Private Sub UserForm_Initialize()
  Me.StartUpPosition = 0
  Me.Left = 0 - Me.Width - 10
  Set r = Cells(10, 10)
  r.Interior.ColorIndex = 6
End Sub

Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  Dim r1 As Range
  Set r1 = r
  r1.Interior.ColorIndex = xlNone
  Select Case KeyCode
  Case vbKeyLeft
    If r.Column > 1 Then Set r1 = r.Offset(, -1)
  Case vbKeyUp
    If r.Row > 1 Then Set r1 = r.Offset(-1)
  Case vbKeyRight
    If r.Column < 20 Then Set r1 = r.Offset(, 1)
  Case vbKeyDown
    If r.Row < 20 Then Set r1 = r.Offset(1)
  Case vbKeyEscape
    Unload Me
    Exit Sub
  End Select
  r1.Interior.ColorIndex = 6
  Set r = r1
End Sub


シート上に、ユーザーフォームのボタンを配置して、
下記のマクロを登録します。

Sub ボタン1_Click()
  UserForm1.Show
End Sub

これで、ボタンをクリックすると、Cells(10, 10) が黄色になり、
矢印キーで黄色のセルが移動します。
ESCキーを押すと、終了します。


やっていることは、ユーザーフォームをウィンドウの外に移動させて見えないようにして、
キーボード入力はユーザーフォームで受け取るようにしてます。

【80831】Re:十字キーで色をつけたセルの移動の方法
お礼  SHUN  - 19/5/18(土) 12:38 -

引用なし
パスワード
   ありがとうございます。
初心者なのでユーザーフォームとは?となってしまいましたが、
別解も理解したほうが後々幅が広がると思うので、勉強しようと思います。
ありがとうございました。

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