雑記

Excel VBA 複数「列」を非表示にする

© UsaNekoSanpo

複数「列」を非表示

うさこちゃん
うさこちゃん

サンプルは2パターンあります。
データが少ない場合は1つ目のサンプルで十分ですが、データが大量にあると、処理が遅くなる場合があります。
その場合は、サンプル2の「Range」に非表示データを貯めておき、一括して非表示にして高速化する方法がいいと思います。

①元データ

うさこちゃん
うさこちゃん

合計行(12行目)に0のデータがある列を非表示する。

②処理後データ

うさこちゃん
うさこちゃん

合計行(12行目)の0のデータを非表示した結果。

サンプル①

Dim ObjThisSh As Object
Dim LngColMax As Long
Dim LngHidden As Long
Set ObjThisSh = ThisWorkbook.Sheets("Sheet1")
LngHidden = 12 '合計行

With ObjThisSh

    LngColMax = .Cells(LngHidden, .Columns.Count).End(xlToLeft).Column

    For LngIndex = 2 To LngColMax
        If .Cells(LngHidden, LngIndex).Value = 0 Then
            '列を非表示にする
            .Columns(LngIndex).EntireColumn.Hidden = True
        End If
    Next LngIndex

End With

サンプル② 高速化バージョン

Dim ObjThisSh  As Object
Dim LngColMax As Long
Dim LngIndex As Long
Dim RngHidden As Range
Dim LngHidden As Long
Set ObjThisSh = ThisWorkbook.Sheets("Sheet1")
LngHidden = 12 '合計行

With ObjThisSh

    LngColMax = .Cells(LngHidden, .Columns.Count).End(xlToLeft).Column

    For LngIndex = 2 To LngColMax
        If .Cells(LngHidden, LngIndex).Value = 0 Then
            If RngHidden Is Nothing Then
                Set RngHidden = .Cells(2, LngIndex)
            Else
                Set RngHidden = Union(RngHidden, .Cells(2, LngIndex))
            End If
        End If
    Next LngIndex

    If Not RngHidden Is Nothing Then
        '列を一括非表示
        RngHidden.EntireColumn.Hidden = True
    End If

End With
ExcelVBA逆引き大全 600の極意 Office365/2019/2016/2013/2010対応

ExcelVBAを仕事で使う際、「あれって、どうやるんだったっけ?」と困った時にサッと使うための逆引きテクニック集です。「コピペ使用に耐えうるサンプル」「スクショ画像を交えての丁寧な説明」「構文についてだけの情報もセットになっている」「関連するテクニックについての情報もすぐに引ける」という4つの条件を満たした情報をネットで探すのは非常に困難。デスクの片隅に常備したい1冊です。

できる大事典 Excel VBA 2019/2016/2013&Microsoft 365(サンプルファイル・無料電子版付)

VBAを使ってコードを記述するには、プログラミングの知識や基本構文の理解などが必要です。しかし、基本的な概念や仕組みだけを覚えても、VBAを使って柔軟にプログラムを記述するのはなかなか難しいもの。自分の思い通りにプログラムを記述するには、使用したい機能の構文や、構文を記述する際の設定項目なども知ることが必要です。
992ページという大ボリュームに、Excel VBAを使ったあらゆる操作を凝縮しました。この1冊をお持ちいただければどんな場面でもすぐに役立つはず。クラスモジュールを利用したプログラムの作成方法や、Webスクレイピングを実行するVBAの記述方法など、高度な内容も解説しているため、一歩先を進んだ応用的な操作をしてみたい中級者の方にもおすすめの1冊です。

タイトルとURLをコピーしました