Excelテンプレート・アドイン作成

開発用ワークブックからテンプレートやアドインを作成するツールです。
機能を集約することができました。   現在は、VB.NETExcel(VBA含む)の統合環境で仕事をしており、テンプレートやアドインの新規作成やメンテナンスも頻繁に行ないます。 Excelに関しては、旧97-2003形式のワークブック(*.xls)、テンプレート(*.xlt)、アドイン(*.xla)が資産として大量に残っており、その割には運用環境は全てOffice2010以降に切り替わりました。
このサイトの全体で主張していることですが、後から「変更」が入ることを常に想定しており、テンプレートやアドインについてもファイル形式の新旧に関わらず全て開発用原本のワークブック(*.xls、*.xlsx、*.xlsm)を保存しており、これをメンテナンスしてからテンプレートやアドインを作成する方法を採っています。
従来はテンプレートやアドインの作成は作成専用のマクロブックをそれぞれに作成していましたが、旧97-2003形式の作成についてもExcel2010以降で動作させることになったため、保存(SaveAsメソッド)での引数、ファイル形式(FileFormat)を追加する作業が必要になりました。 記述の変更そのものは「コピー・貼り付け」でも可能な単純な変更ですが、本数が数百本にも及びます。
ここで、これらの「一元化」を考えて、作成したのがこのプログラムです。



これは「開発者」向けのツールです。
「ワークブックからテンプレートを作成」「ワークブックからアドインを作成」という機能のプログラムです。この時「ワークブック」は開発用原本として元のまま残るので、次回のメンテナンス時にそのまま利用できるということになります。
ワークブックを作成して、テンプレートやアドインの形式を指定して名前を付けて保存しようとすると、Excelはテンプレートやアドインの既定フォルダ(ローカル)に移動してしまいます。 毎回、開発用の決まった保存先フォルダを指定し直して保存させなければならず、これだけの作業だとしても頻繁に発生するとなると面倒なことですね。
私の場合は、VB.NETで作成している業務系システムの帳票系メニューは全てExcelテンプレートに出力させる仕組みとなっており、さらに近年からはExcelテンプレートの新旧(*.xltx又は*.xlt)の選択ができるようにしたため、1機能について2つのテンプレートを作成するようになっています。 これらの作業を行なうテンプレートが数百にも及び、この他にExcelで使用しているアドインも多数あります。
新規作成はもとよりメンテナンスが発生する都度「ワークブックからテンプレート(アドイン)の作成」という工程があり、開発用原本のワークブックの数だけマクロブックを用意するのではその数によっては管理上で大変なことになります。 そういった環境になっている、あるいは将来的になる可能性があるという方にお勧めするものです。
処理タイプ 開発側 本番運用側
テンプレート テンプレート開発ワークブック(*.xls*) 本番運用テンプレート(*.xltx,*.xltm,*.xlt)
アドイン アドイン開発ワークブック(*.xls*) 本番運用アドイン(*.xlam,*.xla)
ワークブック ワークブック開発ワークブック(*.xls*) 本番運用ワークブック(*.xlsx,*.xlsm,*.xls,*.xlsb)
この図のように「常に開発ワークブックから本番運用のものを生成する」という「一方通行」を厳守して運用することで、最新の開発ワークブックを保管しておけば 変更作業が要求された時に誤って古い本番運用テンプレートから変更作業を行なうというような「事故」を避けるのが本プログラムの目的です。 本番運用テンプレートやワークブックでは、ワークブックやシートをパスワ-ド保護することが多いのですが、本番運用のものしかない場合に後からパスワ-ド失念といった事故もよくあることです。
さらに、本番運用テンプレート・アドイン・ワークブックの生成時に予め登録しておいた「初期化マクロブック」を適用することで、 後からの変更作業の時点でも初回生成時の取り決めの通りに本番運用テンプレート・アドイン・ワークブックを決まった状態にさせることができるようになっています。

操作は簡単です。
インストールして起動させると、オプションメニューしかない単純なダイアログ形式のフォームが表示されます。

Excelテンプレート・アドイン作成(起動画面)

ここにExcelワークブックをドラッグさせることで動作が開始されます。
「ワークブックからテンプレートを作成」「ワークブックからアドインを作成」のそれぞれの設定をパラメータとして保持して次回からその設定が呼び出されて動作するというのが本プログラムの基本動作ですが、新しいワークブックがドラッグされた場合はその設定の登録フォーム「パラメータの登録」が表示され、「作成元ファイル名」にドラッグさせたファイルが表示されるようになっています。

Excelテンプレート・アドイン作成(登録画面)

ここで登録する内容を設定単位に保持して次回再利用時に同じ動作をさせるという仕組みです。
まずは「処理タイプ」を選択します。例えば「テンプレート」を選択してみると、

Excelテンプレート・アドイン作成(登録画面)

このように「作成先ファイル名」のデフォルトが表示されます。この「作成先ファイル名」は必要に応じて変更して下さい。このようにパス名を表意しない(フルパスで指定しない)場合はドラッグさせたExcelワークブックと同じフォルダにテンプレートが作成されるという動作になります。
特にオプションの指定がなければ、このまま「作成」ボタンをクリックして作成すれば、テンプレートが作成されて設定がパラメータとして保持されます。
Ver1.0.9.1より、保存するテンプレート等の行列番号の参照形式の指定が追加されました。
これにより作成元ワークブックの参照形式にかかわらず、保存するテンプレート等の参照形式を固定させることができるようになりました。

次回に同じExcelワークブックをドラッグさせると、

Excelテンプレート・アドイン作成(選択画面)

このような「パラメータの確認」が表示され、オプションを含めて前回に登録したのと同じ内容でテンプレートやアドインの作成が行なえるわけです。
同じ作成元ファイルに対して複数の作成先ファイルを登録することができ、複数登録されている場合はこの画面に「作成先ファイル名」が複数行で表示されます。 異なるの作成先ファイル名で作成する場合はここで「パラメータの追加」を選択して追加させることができます。

先頭のフォームのオプションメニューにはこのような機能を用意しています。

Excelテンプレート・アドイン作成(オプションメニュー)

内容は以下の通りです。
メニュー 内容
登録内容の変更 登録済みパラメータの一覧表示を経由してパラメータ内容の変更・削除を行なうことができます。

Excelテンプレート・アドイン作成(登録済みパラメータ一覧)
この一覧は、上のドラッグ作業でテンプレートやアドインの作成を行なって登録された「作成元ファイル名」と「作成先ファイル名」の組み合わせが11行で表示されます。

この一覧から行をクリックすると、パラメータ内容の変更・削除画面が表示されます。この画面は上記の登録フォームと同じです。 但し、「パラメータの登録のみ」となります。
大量に登録されるケースがある(このサンプルも200件程度)ので「検索」や「Excel出力(この一覧のExcel出力)」のメニューも用意してあります。
マクロブック収容先 初期化マクロブックでフォルダ指定がない場合の既定フォルダを変更することができます。
設定エクスポート 登録済みパラメータ内容を外部ファイルにエクスポートします。
設定インポート 外部ファイルからパラメータ内容をインポートします。全件置き換えとなります。
設定初期化 パラメータ内容を初期化(全件削除)します。
ショートカット作成 デスクトップにショートカットアイコンを作成します。
このショートカットアイコンへExcelワークブックをドラッグさせて起動することができます。 
バージョン情報 概要やバージョンの値を表示します。
概要説明 概要説明のドキュメントをメモ帳等で開きます。

「初期化マクロブック」について
「ワークブックからテンプレートを作成」「ワークブックからアドインを作成」という動作の中で、マクロを使って必要な「初期化」を行なう場合は、初期化用のマクロブックを作成しておいて本作成で利用することができます。作成先ファイルを保存する前にここで設定した初期化マクロブックの決まったマクロを自動的に実行させることができます。
インストーラの圧縮ファイルの中に「初期化マクロブック(サンプル).xlsm」を用意してあるので、これを元にして必要なマクロブックを作成してご利用下さい。 開発用原本のワークブックの「ゴミ掃除(テストで登録していたデータの消去)」に始まって、初期表示のセル位置、スクロール状態の既定や計算式の塗り直し、不要行列の折りたたみ、隠しシートの非表示化からシートやワークブックのパスワード保護などをマクロで行なう必要がある場合に利用できます。

ぜひ、ご利用下さい。
このような機能に関心がある方は利用してみて下さい。

インストールについて
下記の「ダウンロード」からインストーラが収容されたZIP形式の圧縮ファイルがダウンロードできます。



動作環境はMicrosoft .NET Framework 4.*(4.5~4.8)です。
本アプリケーションは32ビット版ですが、Windows64ビット版でも問題ありません。



当然ながら、Microsoft Excel(32ビット版のみ対応)がインストールされていることが利用の前提条件となります。

解凍してから「MakeExcelTool1_Setup.exe」を起動することでインストールが行なわれます。インストール後はスタートメニューの「すべてのプログラム」から「Excelでお仕事!VisualStudioツール」の中にある「Excelテンプレート・アドイン作成」を起動して下さい。 なお、デジタル証明書は搭載していないので、インストール中の確認画面で発行元は「不明」と表示されます。

アンインストールを行なう場合は、コントロールパネルの「プログラムと機能(プログラムの追加と削除)」から「Excelテンプレート・アドイン作成」を選択して「削除」を実行します。
本ソフトではレジストリは使用していません。画面モードの設定保存はMicrosoft .NET Frameworkの設定保持機能を使っています。

著作権等について
本ソフトの著作権は「Excelでお仕事!(井上 治)」が所有しています。
フリーソフトですのでご自由にダウンロードしてご利用いただけます。 但し、動作確認は充分に行なっておりますが、このソフトを使ったことによって損害が発生しても一切の責任は負えません。

本記事内容の転載についてはアーカイブに変更を加えないことを条件に、転載は自由にして頂いて構いませんが、必ずご連絡いただくようにお願いします。 連絡については当サイトの「意見・質問」ペ-ジが利用できます。
また、不具合や改善点などについてもご連絡いただけると幸いです。

バージョン情報

更新日 Ver 内容
2014/12/07 1.0.0.0 新規作成
2014/12/08 1.0.0.1 処理後は終了させない方式に変更
2014/12/08 1.0.0.1 設定内容に更新日時を追加する対応
2014/12/08 1.0.0.1 実行用ワークブックのモードの追加対応
2014/12/08 1.0.0.1 「バージョン情報」の追加
2014/12/08 1.0.0.1 設定インポート/エクスポートフォルダの保持を追加
2014/12/08 1.0.0.1 初期化マクロブックが既定フォルダからドラッグされた場合はフォルダを除外
2014/12/08 1.0.0.1 アドイン作成時はダミーワークブックを開く対応を追加(例外発生対応)
2014/12/09 1.0.1.0 同一作成元ファイルから複数の作成先ファイルの定義ができる機能の追加対応
2014/12/09 1.0.1.0 デスクトップショートカットへのドラッグで起動させる対応を追加
2014/12/09 1.0.1.0 一覧表示フォームに検索機能、ステータスバーを追加
2014/12/10 1.0.1.1 ドラッグからのフォーム呼び出しをタイマ経由(非同期)に変更する対応
2014/12/10 1.0.1.1 書き込みパスワード、読み取り専用推奨の追加対応
2014/12/10 1.0.1.1 上書き保存時は以前のファイルを一旦削除する対応
2014/12/10 1.0.1.1 一覧表示で登録変更後に初期画面に戻さずに一覧の行を更新させる対応
2014/12/11 1.0.1.2 登録画面で各ファイルのパス表示が見切れる時はToolTipに全体の表示を追加
2014/12/17 1.0.2.0 登録モードの選択機能追加
2014/12/17 1.0.2.1 登録モードによってボタン表示名の変更を行なう
2014/12/17 1.0.2.2 登録画面はドラッグされていない時は登録のみとする対応を追加
2014/12/20 1.0.2.3 初期表示時の画面明滅の対応
2015/02/05 1.0.3.0 登録内容一覧から一覧をExcelに出力させる機能の追加対応
2015/09/04 1.0.3.1 グループボックスの境界の見にくさを軽減
2016/01/17 1.0.3.1 Windows10での動作確認を行なったので記載を変更
2016/03/06 1.0.3.2 メニューにToolTipを追加する対応
2016/05/22 1.0.3.3 フォームサイズ退避値の異常値対策を追加
2016/06/17 1.0.3.4 Windows複数画面環境でのフォーム下辺でのマウスによるサイズ変更動作不正の対応
2016/07/09 1.0.3.5 登録一覧の検索機能に「検索解除」機能を追加
2017/02/19 1.0.3.6 アドイン処理で1秒のWAITを入れるように対応(大きいアドイン作成時の動作不良対応)
2017/04/26 1.0.3.7 ワークブックの起動時イベントの動作を抑制する対応
2017/08/15 1.0.3.8 ワークブックを閉じる時のイベントの動作を抑制する対応
2017/10/25 1.0.4.0 作成先ファイル名をCheckedListBoxに変更し、複数同時選択を可能とする修正
2017/10/29 1.0.4.1 作成先ファイル名を複数同時選択した時の動作を改善(連続動作)
2017/11/01 1.0.4.2 一覧表示からの修正画面で変更登録すると作成元ファイル名が消去されてしまう不具合を修正しました。
2017/11/11 1.0.4.3 「キャンセルが選択されました」の後、閉じないと再登録ができない不具合を修正
2018/03/04 1.0.5.0 複数件処理時に処理を単一(同一)Excelインスタンスで行なう対応
処理後は起動画面を閉じるように変更(Excel動作が不安定なことがあるため)
2018/04/29 1.0.6.0 Excel2013以降で「初期化マクロブック」の利用時に、初期化マクロ内のシートのSelectに失敗するケースが見られるようになりました。 最近の現象なので、WindowsUpdateによる動作の仕様変更なのかも知れません。 本体プログラム側では「初期化マクロブック」を開いてから、元の処理ワークブックをアクティブに戻して初期化マクロを起動させていますが、 これで失敗するのであればマクロが起動されたワークブックがアクティブに替わっているということになります。
対処としては、初期化マクロ側で処理ワークブックをアクティブにする記述を追加しています。
また、今回より「初期化マクロブック作成」のメニューを追加しており、初期化マクロブックのテンプレートが開くようになっています。 初期化マクロブックの利用時はこのテンプレートでマクロの作成を行なってから「マクロブック収容先」のフォルダに名前を付けて保存させた上で 対象となるテンプレート等に登録させて下さい。
2018/05/02 1.0.6.1 各グリッド表示(DataGridView)でのスクロールバー表示が正しくないことがある件の対応
2018/05/16 1.0.6.2 ExcelInteractive操作を追加(ユーザー操作との衝突の対応の一部)
2018/08/08 1.0.7.0 Excelのバイナリ形式ワークブック(*.xlsb)の対応を追加
2018/08/09 1.0.7.1 登録フォームで初期化マクロブックのドラッグをフォーム全体で受けられるように修正
2018/08/11 1.0.7.2 エクスポートファイル名初期値の「時」部分が12時間制になっていたものを修正
登録済パラメータ一覧の最大化機能追加対応
2018/10/06 1.0.8.0 DPI環境で起動時フォーム位置がスクリーン領域外になってしまうことが発生する件の対応
2018/10/10 1.0.9.1 Excelワークブックの参照形式(ReferenceStyle:A1参照形式、R1C1参照形式)の指定ができるように機能追加
2018/11/04 1.0.9.2 画面位置保持機能について複数画面時の個別DPI指定に対応する修正②
2021/11/30 1.1.0.0 開発環境を「Microsoft Visual Studio 2010」から「Microsoft Visual Studio 2019」に変更
2021/11/30 1.1.0.0 フレームワーク環境を「.NET Framework4.x」に変更
(ターゲットフレームワークは「.NET Framework4.5」に設定)
2022/05/14 1.1.0.2 ・開発環境を「Microsoft Visual Studio 2022」に変更
Windowsスタートメニューメンバの整理(概要説明リンクの削除⇒本体メニューから呼び出し可能)
2023/01/15 1.1.1.0 独自メッセージボックス変更(マウス既定ボタンモード対応)

※バージョンアップでのインストール時に動作上は正常にインストールされるものの、EXEファイルが置き換わらない現象があるようです。 フォーム上の各コントロールをマウスでポイントするとツールチップでバージョンが表示されるので、新しいバージョンになっていない場合は一旦アンインストールさせてから再度インストールさせて下さい。

ダウンロードはこちら。

←MakeExcelTool1_Setup.zip
      (1145KB)

VectorからもExcelテンプレート・アドイン作成」でダウンロードできます。


.NET Frameworkの変更について   PCに搭載されている.NET Frameworkのバージョンはその有無を含めてWindows側の環境に依存します。
本プログラムは従来、古いWindowsへの対応から、.NET Framework2.0~3.5をターゲットとしていましたが、 現在では逆に.NET Framework3.5をインストールすることが必要となって余分な作業負荷となってしまってきているため、 Ver1.1.0.0より.NET Framework4.xに変更しました。



本プログラムを新規にインストールされる場合は必要な.NET Framework環境の確認だけでご利用いただけますが、 以前の.NET Frameworkバージョンから.NET Framework4.xにバージョンアップされる場合のみ設定やデータが引き継がれないのでご注意下さい。



手動作業での設定引き継ぎ(設定ファイルのコピー作業)バージョンアップ時の不具合については、こちらで説明しています。



一旦、.NET Framework4.x環境に移行した後の今後のバージョンアップについての設定内容は、自動的に引き継がれるようになります。