• ベストアンサー

エクセルのコマンドボタンの位置をVBAで指定できませんか?

エクセルのコマンドボタンの位置をVBAで指定できませんか? 表にコマンドボタンがかぶらないようにデータのない最終行にコマンドボタンを移動する VBAを教えていただけませんか? 最終列に移動するVBAも合わせて教えてください。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.5

シートのセルの位置と関連付けるのは Sub test01() c = Range("iv2").End(xlToLeft).Next.Next.Column r = Range("a65536").End(xlUp).Row + 2 Worksheets("Sheet1").CommandButton1.Left = Cells(r, c).Left Worksheets("Sheet1").CommandButton1.Top = Cells(r, c).Top End Sub のようにする。 c = Range("iv2").End(xlToLeft).Next.Next.Column は c = Range("iv2").End(xlToLeft).Column + 2 でも同じ。 +2の部分は好みで変えれば良い。 表の最右列、表の最下行を捉えるコードはわかっていたのかな。それを知ることが先決。 上記は表示ーツールバーーコントロールツールボックスのコマンドボタンを使用の場合。コントロールをシートに貼り付け時に、右クリックして プロパティの項目の各々が何を規定するか改めて勉強のこと。 必要あればコントロールの書式設定の各タブ(プロパティとか保護とか)の項目設定も勉強して設定のこと。

sadacchi12
質問者

お礼

思った通りの動きになりました。 奥が本当に深いなと実感しています。 本当にありがとうございました。

その他の回答 (4)

  • sumer45
  • ベストアンサー率17% (52/294)
回答No.4

マクロの自動記録で下記を試してみてください Ctrl+矢印キー

  • sumer45
  • ベストアンサー率17% (52/294)
回答No.3

あ、ごめん Endrow=("a1").End(XlRight).Column でした 

  • sumer45
  • ベストアンサー率17% (52/294)
回答No.2

Endrow = Range("a65536").End(xlUp).Rowの UPをRightに変える!

  • sumer45
  • ベストアンサー率17% (52/294)
回答No.1

Sub test() Dim Endrow As Long Endrow = Range("a65536").End(xlUp).Row With Worksheets(1).CommandButton1 .Top = Cells(Endrow, 1).Top + 好きな数字 .Left = Cells(Endrow, 1).Left + 好きな数字 End With End Sub 好きな数字のところを調整してください

sadacchi12
質問者

お礼

早速の回答ありがとうございました。 コマンドボタンの移動ができました。 列の移動も教えていただければありがたいのですが。

関連するQ&A