猫でも簡単!ExcelVBAテンプレート

そのまま使える Excel VBA ツールのテンプレートを紹介します。

自分一人で使うなら適当なツールにしても大丈夫なのですが、多くの人に使ってもらうツールを作成しようとすると、それなりに体裁を整える必要がありますね。

今回は、Excel VBA のツール配布にあたり、整えておくべき体裁をあらかじめ準備したテンプレートを用意しました。

テンプレートのダウンロードは、このページの一番下にあります。


最初にこのテンプレートでできることを紹介します。

① メインとなるシートのテンプレートの準備

② プログラムの処理高速化(おまじない)

③ メインシートからのパラメータの取得

④ エラーハンドリング

⑤ 実行後、ファイルの保存処理

⑥ 実行後、メッセージの表示


それでは、プログラム内で重要な部分の説明をします。

② プログラムの処理高速化(おまじない)

'///// 処理高速化のおまじない /////
With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
End With

Excel VBA プログラムを高速化させるためのおまじないです。

画面描画停止、イベント抑制、計算(手動)にします。

③ メインシートからのパラメータの取得

フォルダ指定ダイアログの表示

'****************************************
' フォルダ選択ダイアログを開きます。
'****************************************
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 -----

テンプレート、およびサンプルのダウンロードは、こちらから。

このサンプルは、指定したフォルダ配下のファイル名を全て取得します。

ExcelVBA_Sample_フォルダ一覧表示_R1.zip