猫でも簡単!ExcelVBAテンプレート
Page Contents
そのまま使える Excel VBA ツールのテンプレートを紹介します。
自分一人で使うなら適当なツールにしても大丈夫なのですが、多くの人に使ってもらうツールを作成しようとすると、それなりに体裁を整える必要がありますね。
今回は、Excel VBA のツール配布にあたり、整えておくべき体裁をあらかじめ準備したテンプレートを用意しました。
テンプレートのダウンロードは、このページの一番下にあります。
このテンプレートでできることを紹介します。
② プログラムの処理高速化(おまじない)
② Windows のダイアログでフォルダを指定
③ 設定パラメータの取得
⑤ 実行後、ファイルの保存
⑤ 実行後、メッセージの表示
⑦ プログラムの処理高速化(おまじない)の解除
それでは、プログラム内で重要な部分の説明をします。
① プログラムの処理高速化(おまじない)
'///// 処理高速化のおまじない /////
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Excel VBA プログラムを高速化させるためのおまじないです。
画面描画停止、イベント抑制、計算(手動)にします。
② Windows のダイアログでフォルダを指定
Windows 標準のダイアログを表示します。
'****************************************
' フォルダ選択ダイアログを開きます。
'****************************************
Sub SelectDir1()
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = True Then
Cells(5, 4).Value = .SelectedItems(1)
End If
End With
End Sub
③ 設定パラメータの取得
' ----- シート設定値の取得 -----
Dim strVal As String, strVal2 As String
With ws
strVal = .Cells(5, 4).Value
strVal2 = .Cells(8, 4).Value
End With
④ 実行後、結果ファイルの保存(result_<ファイル名>_実行日時分.xlsx)
Dim outWb As Workbook, outWs As Worksheet
Set outWb = Workbooks.Add
Set outWs = outWb.ActiveSheet
'////////////////////////////////////////
'///// ここに実行するプログラムを書く
'////////////////////////////////////////
'----- Save WorkBook -----
outWb.SaveAs strVal2 & "\" & "result_" & strWb & "_" & Format(Now, "yyyymmddHHMM") & ".xlsx"
outWb.Close True
'----- / Save WorkBook -----
⑤ 実行後、メッセージの表示
' ----- メッセージの表示 -----
If iResult = 0 Then
strMsg = "正常に実行できました。"
Else
strMsg = "実行に失敗しました。"
End If
MsgBox strMsg
⑥ おまじないの解除
'///// 処理高速化のおまじないの解除 /////
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
テンプレート、およびサンプルのダウンロードは、こちらから。
このサンプルは、指定したフォルダ配下のファイル名を全て取得します。