サイトについて      連絡先   検索

VBA 列を非表示にする

はじめに

Excel VBA マクロの列を非表示する方法を紹介します。

Columns.Hidden プロパティまたは Range.Hidden プロパティから列を非表示できます。

Hidden プロパティで列が非表示になっているか判定ができます。

  • 目次
    • 列を非表示する
    • 列を表示する
    • 列が非表示になっているか判定する
    • 列の範囲を非表示する
    • 指定したシートの列を非表示する

列を非表示する

Columns の引数に列番号または列名を指定すると、その列を非表示できます。

列「B」を非表示にするにはColumns(2).Hidden = TrueまたはColumns("B").Hidden = Trueを入力します。


Columns(2).Hidden = True  ' B 列を非表示
Columns("B").Hidden = True
1

Range の引数にセル名を指定すると、そのセルを取得できます。EntireColumn からその列を取得できます。

セル「A1」の列を非表示するにはRange("A1").EntireColumn.Hidden = Trueを入力します。


Range("A1").EntireColumn.Hidden = True

列を表示する

列を表示するにはHidden = Falseのように入力します。


Columns(1).Hidden = False
Columns("A").Hidden = False
Range("A1").EntireColumn.Hidden = False

列が非表示になっているか判定する

Hidden が True なら非表示になっています。


' A ~ J 列で非表示になっている列を表示する
Dim l As Long
For l = 1 To 10
    If Columns(l).Hidden = True Then
        Columns(l).Hidden = False
    End If
Next

列の範囲を非表示する

列の範囲「B ~ C」を非表示するにはColumns("B:C").Hidden = Trueを入力します。


Columns("B:C").Hidden = True ' B ~ C 列を非表示
Columns("B:B").Hidden = True ' B 列を非表示
2

指定したシートの列を非表示する

シートを指定するには Worksheets の引数にシート名またはインデックスを指定します。

Sheet1 を指定するにはWorksheets("Sheet1")またはWorksheets(1)を入力します。

sheet1

' Sheet1 の列を非表示
Worksheets("Sheet1").Columns(1).Hidden = True
Worksheets(1).Columns(1).Hidden = True

' Sheet2 の列を非表示
Worksheets("Sheet2").Columns(1).Hidden = True
Worksheets(2).Columns(1).Hidden = True

Sheet1 に Columns を入力すると、自身のシートの列になります。自身を表すMe.が省略されています。


' どちらも同じコード
Dim r As Range
Set r = Columns(1)
Set r = Me.Columns(1)

標準モジュールに Columns を入力すると、アクティブなシートの列になります。アクティブシートを表すActiveSheet.が省略されています。


' どちらも同じコード
Dim r As Range
Set r = Columns(1)
Set r = ActiveSheet.Columns(1)
  • 目次
    • 列を非表示する
    • 列を表示する
    • 列が非表示になっているか判定する
    • 列の範囲を非表示する
    • 指定したシートの列を非表示する