【Excel VBA】スクロールバーの表示・非表示を切り替える(DisplayVerticalScrollBar/DisplayHorizontalScrollBar)

はじめに

今回は、スクロールバーの表示・非表示を切り替える方法について解説します。
画面を広く見せるため、シート見出しを非表示にしたいこともあるかと思います。
そのような場合に活用できると思いますので、ぜひ最後までお付き合いください。

この記事を読むメリット
  • 垂直スクロールバーの表示・非表示を切り替える方法が分かります。
  • 水平スクロールバーの表示・非表示を切り替える方法が分かります。
  • コピペで使える実践的なサンプルコードを掲載しています。

前提

スクロールバーとは

スクロールバーとは、以下赤枠箇所のことを指します。
(垂直スクロールバーと、水平スクロールバーの2種があります)
本記事では、以下の表示・非表示の切り替え方法について解説します。

スクロールバーのイメージ
スクロールバーのイメージ

スクロールバーを非表示となっていても、マウスホイールなどで画面のスクロールは可能です。

基本情報

DisplayVerticalScrollBarプロパティ

垂直スクロールバーの表示・非表示を切り替えるには、WindowオブジェクトのDisplayVerticalScrollBarプロパティを使用します。
設定値には、「True」及び「False」のBoolean型を指定します。

構文

Windowオブジェクト.DisplayVerticalScrollBar = 設定値

設定値

  • Trueを指定:垂直スクロールバーを表示する
  • Falseを指定:垂直スクロールバーを非表示にする

「Windowオブジェクト.DisplayVerticalScrollBar」にて、表示状況を取得することも可能です。

DisplayHorizontalScrollBarプロパティ

水平スクロールバーの表示・非表示を切り替えるには、WindowオブジェクトのDisplayHorizontalScrollBarプロパティを使用します。
設定値には、「True」及び「False」のBoolean型を指定します。

構文

Windowオブジェクト.DisplayHorizontalScrollBar = 設定値

設定値

  • Trueを指定:水平スクロールバーを表示する
  • Falseを指定:水平スクロールバーを非表示にする

「Windowオブジェクト.DisplayHorizontalScrollBar 」にて、表示状況を取得することも可能です。

サンプルコード

スクロールバーを非表示にする

アクティブ状態のウィンドウを対象とし、スクロールバーを非表示にするサンプルコードです。
表示する場合は、Trueを設定するようにしてください。

サンプルコード
Public Sub hiddenScrollBar()

    ' スクロールバーを非表示にする
    ActiveWindow.DisplayVerticalScrollBar = False   ' 垂直スクロールバー
    ActiveWindow.DisplayHorizontalScrollBar = False ' 水平スクロールバー
End Sub

スクロールバーの表示を切り替える

アクティブ状態のウィンドウを対象とし、シート見出しの表示状態を反転させるサンプルコードです。

「ActiveWindow.DisplayVerticalScrollBar」及び「ActiveWindow.DisplayHorizontalScrollBar」にて表示状態が取得されます。
取得した値を「Not」で反転したうえ、代入しています。

サンプルコード
Public Sub changeVisibleStateForScrollBar()

    ' スクロールバーの表示状態を切り替える
    With ActiveWindow
        .DisplayVerticalScrollBar = Not .DisplayVerticalScrollBar       ' 垂直スクロールバー
        .DisplayHorizontalScrollBar = Not .DisplayHorizontalScrollBar   ' 水平スクロールバー
    End With
End Sub
りゅう

掲載サンプルコードでは、垂直と水平のどちらも対象としていますが、用途によりコメント化をするなど、使い分けてください。

最後に

今回は、スクロールバーの表示・非表示を切り替える方法について解説しました。

本記事が皆さんのお力になれば幸いです!

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

この記事を書いた人

大手外資系コンサルティングファーム勤務。ExcelVBA歴は8年。金融関係のプロジェクトにて約100万レコードを処理するマクロの開発実績あり。ExcelVBAの基礎・応用情報を発信中。

コメント

コメントする

CAPTCHA