こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

【Excel VBA】コマンドボタンの選択&移動

Excel2003を使用しています。

以前、こちらで教えていただいて、1クリックで1ページ分移動するコマンドボタンを作成しました。
左クリックでDown、右クリックでUpし、Sheet2モジュールに下記のコードを記述しています。

このコマンドボタン自体を選択して、現在配置している場所(セル上)から移動させたい場合、どのように操作すればいいでしょうか?
右クリック、左クリック両方にページ移動が設定されているため、コマンドボタン自体を選択することができません…。
マクロが動作しないよう、一旦、コードを削除して、ボタンをクリックしてみたのですが、選択状態になりませんでした。
よろしくお願いします。

-------------------------------------------------------

Private Sub CommandButton1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 '左クリック-進む-Down
 '右クリック-戻る-Up
  CommandButton1.Caption = "左-Down, 右-Up"
  Dim WinTop As Long
  Dim i As Long
  i = Int((ActiveCell.Row) / 26) + 1
  If Button = 1 Then
    Application.Goto Cells(i * 26 + 1, 1), True
  ElseIf Button = 2 Then
    If i > 1 Then
      Application.Goto Cells((i - 2) * 26 + 1, 1), True
    End If
  End If
   WinTop = ActiveWindow.VisibleRange.Top + 2 '(2は縦の位置調整)
   CommandButton1.Top = WinTop
End Sub

投稿日時 - 2008-11-20 16:16:32

QNo.4493942

暇なときに回答ください

質問者が選んだベストアンサー

デザインモードに切り替えると
移動できます。
「表示」-「ツールバー」-「VisualBasic」
で開いたツールバーの中にデザインモードに
するボタンがあります。

投稿日時 - 2008-11-20 16:25:05

お礼

アドバイスありがとうございます。
デザインモードに切り替えて、移動させることができました。
ありがとうございました!

投稿日時 - 2008-11-20 17:13:03

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

こんばんは。

>クリックイベントにも何か記述が必要ということなのでしょうか?

もともと、そのコマンドボタンは、何をするためでしょうか?
単に動くだけではなくて、クリックして何をするか、ということですね。
移動するだけではないと思いますけれど……。

私の場合は、最下行にデータを貼り付けるようにしています。
ただ、移動の方法が、ボタンクリックではなくて、
Private Sub Worksheet_SelectionChange
で動くようにしています。

投稿日時 - 2008-11-21 19:43:42

お礼

おはようございます。
お礼が遅くなり、申し訳ありません。

>もともと、そのコマンドボタンは、何をするためでしょうか?

コマンドボタンをクリックすると1ページ分移動するというもので、教えていただいた動くボタンで、そのページ移動にコマンドボタンもついてきます。

投稿日時 - 2008-11-25 09:44:23

ANo.2

こんばんは。

>デザインモードに切り替えて、移動させることができました。

そういうことでしたか。
コントロールツールやVBEのツールバーの「青い三角定規と鉛筆と定規」のアイコンをオンにすれば、デザインモードになりますから、移動や加工は可能になります。

そのコードの元は、私の書いたものだと思いますが、右クリックも、左クリックもあるけれども、Clickイベントとして、動かすマクロが生きていないのではありませんか?

Private Sub CommandButton1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 '左クリック-進む-Down
 '右クリック-戻る-Up
  CommandButton1.Caption = "左-Down, 右-Up"
  Dim WinTop As Long
  Dim i As Long
   If Shift = 0 Then Exit Sub  '←ここに一行加える
  ・
  ・

Shift キーかControl キーを押さえながら、右クリック・左クリックで、動くようになります。

そうすれば、
Private Sub CommandButton1_Click()

を使えます。

投稿日時 - 2008-11-20 20:39:24

お礼

Wendy02 さん、こんにちは。
お久しぶりです。

1年程前になりますが、Wendy02 さんから、この“動くボタン”を教えていただいて、大変便利に使わせていただいていましたが、最近、ボタンの位置を少し変えようかなと思い、試してみたところ、上記の質問のような状態で…というわけです。
どうしても移動させたいといけないわけでもなかったのですが、できないことが逆に気になって、質問させていただいた次第です。

>Clickイベントとして、動かすマクロが生きていないのではありませんか?

恥ずかしながら、ちょっと意味がわからなかったのですが、アドバイスをいただいたように、

 If Shift = 0 Then Exit Sub

↑1行加えてみたところ、右クリック・左クリックしてもページ移動しなくなりました。

>そうすれば、
Private Sub CommandButton1_Click()

を使えます。

とのことで、クリックイベントにも何か記述が必要ということなのでしょうか?
もし、お時間が取れましたら、教えていただけると嬉しいです。

投稿日時 - 2008-11-21 10:42:08

あなたにオススメの質問