VBAを利用する場合、開発の効率化やプログラムの高速化を図るため、必ずお決まりのコードを書きます。必ず書くにも関わらず忘れがちなものを本記事にまとめました。
イミディエイトウインドウに表示する関数
Sub log(txt)
Debug.Print (txt)
End Sub
時間計測と高速化の開始・終了
'開始
Sub StartTool()
starttime = Timer()
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual '自動再計算OFF
Application.ScreenUpdating = False '画面描画OFF
End Sub
'終了
Sub EndTool()
Application.ScreenUpdating = True '画面描画再開
Application.Calculation = xlCalculationAutomatic '自動再計算再開
Application.DisplayAlerts = True
endtime = Timer()
log (endtime - starttime)
End Sub
4月始まりの年度の取得
Function Nendo(d)
If IsDate(d) Then
If Month(d) <= 3 Then
Nendo = Year(d) - 1 '昨年
Else
Nendo = Year(d) '今年
End If
Else
MsgBox ("nendo関数の引数はDate型にして下さい。")
End If
End Function
ブックの新規作成
Sub CBook(bkname, Optional bkpath = 1)
Dim Book As Workbook
If bkpath = 1 Then
bkpath = ThisWorkbook.Path & "\" & bkname & ".xlsx"
End If
If Dir(bkpath) = "" Then
Set Book = Workbooks.Add
Book.SaveAs bkpath
Else
MsgBox "既に" & bkname & "というファイルは存在します。"
End If
End Sub
コメント