重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

エクセルの画面にマクロボタンを作って セルを上下に動かしたいが 以下の場合だと 一画面づつ
動いてしまう。
ActiveWindow.LargeScroll up:=1, ToRight:=0
ActiveWindow.LargeScroll Down:=1, ToRight:=0

一セルづつにするには どう書けばいい。ご教授ください。

A 回答 (3件)

こういう事でしょうか?



ActiveWindow.ScrollRow = ActiveWindow.VisibleRange.Row - 1 'Up
ActiveWindow.ScrollRow = ActiveWindow.VisibleRange.Row + 1 'Down
    • good
    • 0

一層の事、以下の様な物を作ってしまったらいかがでしょうか?



Sub Scroll(Optional Up As Long = 0, Optional ToRight As Long = 0)

 With ActiveWindow
  If .VisibleRange.Row - Up < 1 Then
   .ScrollRow = 1
  Else
   If .VisibleRange.Row - Up > Rows.Count Then
    .ScrollRow = Rows.Count
   Else
    .ScrollRow = .VisibleRange.Row - Up
   End If
  End If
  If .VisibleRange.Column - ToRight < 1 Then
   .ScrollColumn = 1
  Else
   If .VisibleRange.Column - ToRight > Columns.Count Then
    .ScrollColumn = Columns.Count
   Else
    .ScrollColumn = .VisibleRange.Column - ToRight
   End If
  End If
 End With

End Sub

使い方は以下のような感じです。
※「Call Scroll(10)」か「Call Scroll(Up = 10)」で10セル上に
※「Call Scroll(,20)」か「Call Scroll(ToRight = 20)」で20セル右へ
※「Call Scroll(10,20)」か「Call Scroll(Up = 10, ToRight = 20)」で10セル上20セル右へ
    • good
    • 0

cells関数使ったら?


rowとcolumnを一つずつ加減算してやればいい。

cells(行、列).select
activateでもいいけど。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!