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

そのまま使える 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

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

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

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