エクセル画面右下には左右に画面移動するための水平スクロールバーが必ず表示されていますが、ユーザーフォームなどを使ってエクセル自動化させた時には、意図しないスクロールによってエラーになってしまった事ありませんか?
そこで思い切って水平スクロールバーを非表示にして操作できないようにしましょう。
方法は簡単で、水平スクロールバーを非表示にする(DisplayHorizontalScrollBarプロパティ)を使うだけで、簡単なのでぜひ取り入れてみませんか?
DisplayHorizontalScrollBarプロパティ
DisplayHorizontalScrollBarプロパティとActiveWindowを組み合わせると、現在表示している水平スクロールバーを表示したり非表示にしたりすることができるようになります。
- 水平スクロールバーを非表示・・・False
- 水平スクロールバーを表示・・・・True
では実際にここでは、ユーザーフォームに配置したコマンドボタンに水平スクロールバーを表示・非表示にするVBAコードを書いていきましょう。
水平スクロールバーを非表示
水平スクロールバーを非表示にするには、DisplayHorizontalScrollBarをFalseに指定することでできるようになります。
これで、コマンドボタン1が押されたら水平スクロールバーが非表示になります。
水平スクロールバーを再表示
水平スクロールバーを非表示にできたら、再表示できないと不都合なので、DisplayHorizontalScrollBarをTrueに指定することでできるようになります。
非表示のFalseを表示のTrueに変更するだけで完成するのとても簡単です。
この方法でも問題ないのですが、コマンドボタンを2つ用意しなくてはいけないのですが、ちょっと工夫すると1つのコマンドボタンで非表示も再表示もできるんですよ!
クリックするたびに水平スクロールバーの表示/非表示を切り替え
なんでもかんでもできるわけではないのですが、この種の表示・非表示の切り替えには、FalseやTrueの代わりにNot演算子を使用するとできるようになります。
意外と簡単ですよね。
作成したエクセルは様々なスタッフが使う為に、想定外の操作をされてしまいエラーを引き起こすことがあるので、ユーザーフォーム以外の操作をできないように工夫しています。
- 画面上部の緑色のメニューバー(リボンツールバー)
- 数式表示窓(数式バー)
- 行番号・列番号
- 画面下のシート名表示
- 左右移動バー(水平スクロールバー)
- 上下移動バー(垂直スクロールバー)
- マス目の線(グリッド線)
- 画面下のステータスバー
画面表示の便利機能
ボタン1つで表示を切り替えたり元に戻したりできると便利なので、ほかの表示方法も知っていて損はないと思いますよ!