エクセルVBAで使うコードの備忘録。エクセルワークシートで選択した行・列を非表示にするコード。非表示になった行・列を再表示するコードについても一緒に記載します。
Hiddenプロパティ
ワークシートの行や列の表示・非表示を切り替えるにはRangeオブジェクトのHiddenプロパティを使用します。Hidden(隠れた)という名前からもわかるように、Hiddenプロパティの値をTRUEに設定すれば行・列が非表示になり、逆にFALSEに設定すれば表示されます。
行を非表示にする
ワークシートの行(横方向)を非表示にするサンプルコードです。Hiddenプロパティは行や列全体に対して設定するので、Rowsに非表示にしたい行番号を引数として与えて表示・非表示を切り替えます。行全体のオブジェクトを取得する方法としては、RangeオブジェクトのEntireRowを使用する方法もあります。
なお、コードを使用する際はカッコに囲まれた部分([***])を自分のプログラムに合わせて変更してください。
行を非表示にする(Rowsを使う場合)
Public Sub HideUnhideRow1()
'--- ワークシートオブジェクトを設定 ---'
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("[ワークシート名]")
'--- 非表示にする行番号 ---'
Dim rowIndex As Long
rowIndex = [行番号]
'--- 指定した行を非表示にする ---'
ws.Rows(rowIndex).Hidden = True
'--- 指定した行を表示する ---'
ws.Rows(rowIndex).Hidden = False
End Sub
行を非表示にする(Rangeを使う場合)
Public Sub HideUnhideRow2()
'--- ワークシートオブジェクトを設定 ---'
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("[ワークシート名]")
'--- 非表示にする行を含むセルのアドレス(A1など) ---'
Dim cellAddress As String
cellAddress = [セルのアドレス(A1など)]
'--- 指定した行を非表示にする ---'
ws.Range(cellAddress).EntireRow.Hidden = True
'--- 指定した行を表示する ---'
ws.Range(cellAddress).EntireRow.Hidden = False
End Sub
列を非表示にする
ワークシートの列(縦方向)を非表示にするサンプルコードです。Hiddenプロパティは行や列全体に対して設定するので、Columnsに非表示にしたい列番号を引数として与えて表示・非表示を切り替えます。列全体のオブジェクトを取得する方法としては、RangeオブジェクトのEntireRowを使用する方法もあります。
列を非表示にする(Columnsを使う場合)
Public Sub HideUnhideColumn1()
'--- ワークシートオブジェクトを設定 ---'
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("[ワークシート名]")
'--- 非表示にする列番号 ---'
Dim colIndex As Long
colIndex = [列番号]
'--- 指定した列を非表示にする ---'
ws.Columns(colIndex).Hidden = True
'--- 指定した列を表示する ---'
ws.Columns(colIndex).Hidden = False
End Sub
列を非表示にする(Rangeを使う場合)
Public Sub HideUnhideColumn2()
'--- ワークシートオブジェクトを設定 ---'
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("[ワークシート名]")
'--- 非表示にする列を含むセルのアドレス(A1など) ---'
Dim cellAddress As String
cellAddress = [セルのアドレス(A1など)]
'--- 指定した列を非表示にする ---'
ws.Range(cellAddress).EntireColumn.Hidden = True
'--- 指定した行を表示する ---'
ws.Range(cellAddress).EntireColumn.Hidden = False
End Sub