VBA 行高さ・列幅をセル値で調整する

OVERVIEW

この作業、意外にメンドくさいので作りました。 快適です(^^)

【You Tube】

https://youtu.be/YAD8fbf13SA

【コード】

Sub z 管理01_高さ列幅をセル内の値で合わせる_不要行列を非表示にする_配列()

    'Application.WindowState = xlMinimized               'ウィンドウを最小化する

    'Application.ScreenUpdating = False                  '画面表示の更新をオフ

    'Application.EnableEvents = False                    'イベント発生をオフ

    'Application.Calculation = xlCalculationManual       '自動計算をオフ


' 高さ・列幅をセル内の値で合わせる

    Dim H(1)                                                '高さ

    For H(0) = 2 To Cells(Rows.Count, 1).End(xlUp).Row    '2行目~最終行まで

        H(1) = Cells(H(0), 1).Value                         'A列の各行セル内の数字を格納する

        

            If H(1) > 0.1 Then                              '各行セル内の数字を各行の「高さ」にする

            Cells(H(0), 1).RowHeight = H(1)

            

            End If                                          'もしセル内値が空白ならばこの処理はスキップする

    Next H(0)                                               '次の行に移る


    Dim W(1)                                                        '幅

    For W(0) = 2 To Cells(1, Columns.Count).End(xlToLeft).Column    '2列目~最終列まで

        W(1) = Cells(1, W(0)).Value                                 '1行目の各列セル内の数字を格納する

        

            If W(1) > 0.1 Then                                      '各列セル内の数字を各列の「幅」にする

            Cells(1, W(0)).ColumnWidth = W(1)

    

            End If                                                  'もしセル内値が空白ならばこの処理はスキップする

    Next W(0)                                                       '次の列に移る

    

'行(Rows)の高さが10のものを非表示

    For H(0) = 2 To Cells(Rows.Count, "A").End(xlUp).Row

        If Cells(H(0), 1) = 10 Then Rows(H(0)).Hidden = True

    Next H(0)


'列(Columns)の幅が1のものを非表示

    For W(0) = 2 To Cells(1, Columns.Count).End(xlToLeft).Column

        If Cells(1, W(0)) = 1 Then Columns(W(0)).Hidden = True

    Next W(0)

    

    Range("A1").Select


    'Application.Calculation = xlCalculationAutomatic    '自動計算をオン

    'Application.EnableEvents = True                     'イベント発生をオン

    'Application.WindowState = xlMaximized               'ウィンドウを最大化する

    'Application.ScreenUpdating = True                   '画面表示の更新をオン

    

    End Sub


ーーーーーー

Sub z管理90_不要行列の表示_非表示を切り替える()


' ウィンドウを最小化する

    'Application.WindowState = xlMinimized


'行(Rows)の高さが10のものを非表示⇔表示

    Dim R As Long

    For R = 2 To Cells(Rows.Count, "A").End(xlUp).Row

        If Cells(R, 1) = 10 Then Rows(R).Hidden = Not Rows(R).Hidden

    Next R


'列(Columns)の幅が1のものを非表示⇔表示

    Dim c As Long

    For c = 2 To Cells(1, Columns.Count).End(xlToLeft).Column

        If Cells(1, c) = 1 Then Columns(c).Hidden = Not Columns(c).Hidden

    Next c

    

'ウィンドウを最大化する

    'Application.WindowState = xlMaximized


 End Sub