【VBA】スクロール可能な表示エリアを制限・解除する方法|ScrollAreaの使い方

Excelでは、ユーザーが操作できるセル範囲を制限したい場面があります。
たとえば、誤入力を防ぎたいときや、帳票テンプレートのレイアウトを固定したいときなどです。

そのようなときに便利なのが、VBAで使用できる ScrollArea プロパティです。
このプロパティを使えば、画面上でスクロール可能なセルの範囲を制限することができます。


目次

基本コード:スクロール可能範囲を制限する

Worksheets(1).ScrollArea = "B5:X100"
Application.Goto Range("B5"), True

説明:

  • ScrollArea は、指定した範囲内にスクロールやカーソル移動を制限するためのプロパティです。
  • "B5:X100" の範囲外には、クリックや移動ができなくなります(選択・編集不可)。
  • Application.Goto により、制限範囲内のセルを強制的に表示しておくことが可能です。

注意点①:一時的な設定である

  • ScrollArea の設定は、ブックを保存しても永続的ではありません
  • Excelを再起動すると、設定はリセットされます。
  • 永続化したい場合は、WorkbookのOpenイベントに記述する必要があります
Private Sub Workbook_Open()
    Worksheets("入力シート").ScrollArea = "B5:X100"
End Sub

スクロール制限を解除する方法

Worksheets(1).ScrollArea = ""
  • ScrollArea に空文字列を指定することで、制限を解除できます。
  • ユーザーは再びシート全体を操作可能になります。

応用例:複数シートにスクロール制限を設定する

Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
    ws.ScrollArea = "C3:T50"
Next
  • 複数のシートに対して、一括でスクロール範囲を設定できます。

使用シーンとメリット

利用シーンメリット
入力フォームの制御入力エリア以外を無効化して誤入力を防止
帳票の保護レイアウト保護と入力範囲の明示化
特定範囲の編集支援操作可能エリアを限定してユーザーを誘導

まとめ

項目内容
使用プロパティScrollArea
制限方法"B5:X100" のように範囲文字列を指定
解除方法空文字 "" を指定することで元に戻す
永続化の方法Workbook_Open() イベントで自動設定可能

このように、ScrollArea を使えば、操作対象の範囲を柔軟に制御でき、ユーザー操作のミスやトラブルを防ぐことが可能です。
入力制限やテンプレート保護など、実務における安全性の向上に役立ちます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次