VBAのメモ
ループ処理でエクセルを保存
■デスクトップのパスを自動取得
Dim WSH As Object
Set WSH = CreateObject("Wscript.Shell")
Dim DesktopPath As String
DesktopPath = WSH.SpecialFolders("Desktop")
Set WSH = Nothing
■日付
'YYYYMMDD1, YYYYMMDD2を宣言
Dim YYYYMMDD1, YYYYMMDD2
'年月日
YYYYMMDD1 = Format(Now(), "yyyy/mm/dd")
'年月日「/」なし。
YYYYMMDD2 = Format(Now(), "yyyymmdd")
■ループ処理
Dim i As Long: i = 56 'iに56を代入
'Sheets(1)の56行以降かつ1列目に入力がある場合は以下をループで実行
Do While Sheets(1).Cells(i, 1).Value <> ""
'Sheets(2)("A1")に日付を入力
Sheets(2).Range("A1").Value = YYYYMMDD1
'Sheets(2)("A1")にSheets(1)(i行目, 1列目)の値を入力
Sheets(2).Range("A2").Value = Sheets(1).Cells(i, 1).Value
' FilNameは、Sheets(1)(i行目, 1列目)※保存時の値に使用
FilName = Sheets(1).Cells(i, 1).Value
' i は 1ずつ増える
i = i + 1
'AとBを新規Excelへコピー
Sheets(Array("A", "B")).Copy
ActiveWorkbook.SaveAs Filename:=DesktopPath & "\" & YYYYMMDD2 & "abcabc" & FilName.xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close
Loop
End Sub
その他
■メッセージボックス
MsgBox "処理完了"
Excelシート内の棒グラフ操作
全グラフの凡例を削除
Dim cho As ChartObject
Worksheets(1).Select
For Each cho In ActiveSheet.ChartObjects
cho.Chart.HasLegend = False
グラフを太くする(グラフ間隔を狭くする)
For Each cho In ActiveSheet.ChartObjects
cho.Chart.FullSeriesCollection(4).Select
ActiveChart.ChartGroups(1).GapWidth = 4
Next