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
プログラムが動作した時の嬉しさはほんとに何物にも代えがたいです。この調子で頑張ります🔥
この記事が気に入ったらサポートをしてみませんか?