エクセルVBAを使ってワークシートのグリッド罫線(目盛線)を非表示にする方法
エクセル画面(ワークシート)にはセルの枠を示す縦横の線(グリッド罫線または目盛線という)が必ず表示されていますが、ユーザーフォームなどを使ってエクセル自動化させた時に見栄えも気になりませんか?
ユーザーフォームの背景に縦横のグリッド線があると見た目が煩わしいので消してしまいましょう。
セルの枠線(グリッド線)を非表示
セルを仕切る縦横の線があるのが当たり前なのですが、メニューツールバー(リボン内)「表示」を開くと「目盛線」があるので、チェックを外してあげるとグリッド罫線が消えます。
ただし、1つのシートに対してグリッド罫線(目盛線)を消しただけなので、他のシートには反映されず毎回行わなくてはいけないので面倒です。
そこでエクセルVBAを使って、現在のシートを含めてシートを指定すれば一括処理できますよ。
DisplayGridlinesプロパティ
DisplayGridlinesプロパティとActiveWindowを組み合わせると、現在表示しているエクセルシートのセルの枠線を表示したり非表示にしたりすることができるようになります。
- セルの枠線を非表示・・・False
- セルの枠線を表示・・・・True
では実際にここでは、ユーザーフォームに配置したコマンドボタンにセルの枠線(グリッド線)を表示・非表示にするVBAコードを書いていきましょう。
セルの枠線(グリッド線)を非表示にするには、DisplayGridlinesをFalseに指定することでできるようになります。
Private Sub CommandButton1_Click()
With ActiveWindow
.DisplayGridlines = False
End With
End Sub
- コマンドボタン1が押されたら
- 現在表示中のワークシートを操作する
- グリッド線の表示を非表示にする
- withステートメント終了
- マクロ終了
これで、コマンドボタン1が押されたらセルの枠線(グリッド線)が非表示になります。
セルの枠線(グリッド線)を再表示
セルの枠線(グリッド線)を非表示にできたら、再表示できないと不都合なので、DisplayGridlinesをTrueに指定することでできるようになります。
Private Sub CommandButton1_Click()
With ActiveWindow
.DisplayGridlines = True
End With
End Sub
- コマンドボタン1が押されたら
- 現在表示中のワークシートを操作する
- グリッド線を表示する
- withステートメント終了
- マクロ終了
非表示のFalseを表示のTrueに変更するだけで完成するのとても簡単です。
この方法でも問題ないのですが、ちょっと工夫すると1つのコマンドボタンで非表示も再表示もできるんですよ!
クリックするたびにグリッド線の表示/非表示を切り替え
なんでもかんでもできるわけではないのですが、この種の表示・非表示の切り替えには、FalseやTrueの代わりにNot演算子を使用するとできるようになります。
Private Sub CommandButton1_Click()
With ActiveWindow
.DisplayGridlines = Not .DisplayGridlines
End With
End Sub
- コマンドボタン1が押されたら
- 現在表示中のワークシートを操作する
- グリッド線の表示・非表示を切り替える
- withステートメント終了
- マクロ終了
作成したエクセルは様々なスタッフが使う為に、想定外の操作をされてしまいエラーを引き起こすことがあるので、ユーザーフォーム以外の操作をできないように工夫しています。
ボタン1つで表示を切り替えたり元に戻したりできると便利なので、ほかの表示方法も知っていて損はないと思いますよ!