見出し画像

Excel VBA 学習記録①

わちょんのゆっくりITチャンネルさんで投稿されているVBA100本ノックでのExcel学習もPart60に入り後半戦。
今まで学習したことの応用や組み合わせの大切さやむずかしさに気付かされることが多くなり四苦八苦しています。。使いこなせるようになるまではまだまだ先が長そうですがコツコツ積み重ねてます

今回はApr_2020、May_2020のように名前が付けられたシート(Mar_2021まで)が12個入ったブックをQuarterごとに新しいブックとして保存するという問題に取り組みました。配列に触れてまだ日が浅いですが学習したものを使える機会かなと思ったので今回頑張って使ってみました。わかりやすいようにそれらで作った新しいブックはQuarterというフォルダの中に入れてます!

以下が僕の書いたコードになります


Sub VBA_100_59()

'Declare Variables'
    Dim d As Date: d = #4/1/2020# 'set initial date on Apr 1,2020'
    Dim i As Long
    Dim sName(2) As String
    Dim n As Long: n = 0 
    Dim fso As New Scripting.FileSystemObject
    Dim sPath As String: sPath = ThisWorkbook.Path & "\Quarter"
'Create folder named "Quarter"'
    If Not fso.FolderExists(sPath) Then
        fso.CreateFolder (sPath)
    End If
'Put sheet name to each element in an array.
        For i = 1 To 4
            sName(0) = Format(DateAdd("m", n, d), "mmm_yyyy")
            sName(1) = Format(DateAdd("m", n + 1, d), "mmm_yyyy")
            sName(2) = Format(DateAdd("m", n + 2, d), "mmm_yyyy")
'Create new workbook and save as in the follwoing
            Sheets(sName).Copy
            ActiveWorkbook.SaveAs sPath & "\" & i & "Q_"
            ActiveWorkbook.Close
            n = n + 3 'Add 3 to ensure a new book can have 3 sheets with formatted name per quarter'
        Next i
End Sub

プログラムが動作した時の嬉しさはほんとに何物にも代えがたいです。この調子で頑張ります🔥

この記事が気に入ったらサポートをしてみませんか?