猫でも簡単!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 -----

テンプレート、およびサンプルのダウンロードは、こちらから。
このサンプルは、指定したフォルダ配下のファイル名を全て取得します。