- ベストアンサー
【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
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
デザインモードに切り替えると 移動できます。 「表示」-「ツールバー」-「VisualBasic」 で開いたツールバーの中にデザインモードに するボタンがあります。
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 >クリックイベントにも何か記述が必要ということなのでしょうか? もともと、そのコマンドボタンは、何をするためでしょうか? 単に動くだけではなくて、クリックして何をするか、ということですね。 移動するだけではないと思いますけれど……。 私の場合は、最下行にデータを貼り付けるようにしています。 ただ、移動の方法が、ボタンクリックではなくて、 Private Sub Worksheet_SelectionChange で動くようにしています。
お礼
おはようございます。 お礼が遅くなり、申し訳ありません。 >もともと、そのコマンドボタンは、何をするためでしょうか? コマンドボタンをクリックすると1ページ分移動するというもので、教えていただいた動くボタンで、そのページ移動にコマンドボタンもついてきます。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 >デザインモードに切り替えて、移動させることができました。 そういうことでしたか。 コントロールツールや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() を使えます。
お礼
Wendy02 さん、こんにちは。 お久しぶりです。 1年程前になりますが、Wendy02 さんから、この“動くボタン”を教えていただいて、大変便利に使わせていただいていましたが、最近、ボタンの位置を少し変えようかなと思い、試してみたところ、上記の質問のような状態で…というわけです。 どうしても移動させたいといけないわけでもなかったのですが、できないことが逆に気になって、質問させていただいた次第です。 >Clickイベントとして、動かすマクロが生きていないのではありませんか? 恥ずかしながら、ちょっと意味がわからなかったのですが、アドバイスをいただいたように、 If Shift = 0 Then Exit Sub ↑1行加えてみたところ、右クリック・左クリックしてもページ移動しなくなりました。 >そうすれば、 Private Sub CommandButton1_Click() を使えます。 とのことで、クリックイベントにも何か記述が必要ということなのでしょうか? もし、お時間が取れましたら、教えていただけると嬉しいです。
お礼
アドバイスありがとうございます。 デザインモードに切り替えて、移動させることができました。 ありがとうございました!