なか日記

一度きりの人生、楽しく生きよう。

車輪の再発明。ExcelのセルをA1に揃える+αのマクロを書いた

ネタかどうかは読んだ人の判断にお任せするとして、久しぶりにVBAのコード書きました。

タイトルにある通り、同じフォルダにあるExcelファイルの全シートをA1セルに揃えるってやつです。

ついでに、「拡大率を100%に揃える」処理も追加しました。

f:id:nakaji999:20160324205158p:plain

コード

適当に標準モジュールにでもコピペして使って下さい。

どうでも良いことですが、私はVBA書くときにメソッド名に日本語使うのが癖になってます。

Option Explicit

Private Sub セルをA1にセットする(sheet As Worksheet)
    
    sheet.Select

    sheet.Range("A1").Select

    ActiveWindow.ScrollColumn = 1
    ActiveWindow.ScrollRow = 1
    
End Sub

Private Sub 拡大率を100パーセントにする(sheet As Worksheet)
    
    sheet.Select

    ActiveWindow.Zoom = 100

End Sub

Private Sub 先頭のシートを選択した状態にする(wb As Workbook)
    
    wb.Sheets(1).Select

End Sub

Private Sub 全てのシートを整備する(wb As Workbook)

    Dim sheet As Worksheet
    
    For Each sheet In wb.Sheets
        セルをA1にセットする sheet
        拡大率を100パーセントにする sheet
    Next
    
    先頭のシートを選択した状態にする wb
    
End Sub

Sub フォルダ配下の全xlsxファイルを整備する()

    Application.ScreenUpdating = False

    Dim wb As Workbook
    Dim file As String
    file = Dir(ThisWorkbook.Path & "\*.xlsx")
    Do
        Debug.Print file
        
        Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & file)
        
        DoEvents
        
        全てのシートを整備する wb
        
        wb.Save
        wb.Close
        Set wb = Nothing
        
        file = Dir
    Loop Until file = ""
    
    Application.ScreenUpdating = True

End Sub

まとめ

これで納品前の作業が捗りますね。短時間で精度の高いアウトプットを得ることができます。生産性は大幅にアップ。すばらしい。

でもね、これって本当に必要なこと?

おしまい。