こんな感じなものをどうしたらいいかと試行錯誤中
dynamicMenuを使ってフォームを列挙したい。getContentで要求されるXMLをLINQでごによごにょしてずばっとできるかなと。
<dynamicMenu id="FormEnum"
label="フォーム"
getContent="getContent"
invalidateContentOnDrop="true" />
こんな感じなものをどうしたらいいかと試行錯誤中
dynamicMenuを使ってフォームを列挙したい。getContentで要求されるXMLをLINQでごによごにょしてずばっとできるかなと。
<dynamicMenu id="FormEnum"
label="フォーム"
getContent="getContent"
invalidateContentOnDrop="true" />
例えば、AllowBypassKeyとか。いちいちコードを書くとかコピペするのをやめてもいいかなと。VBAのコードをそのまま移植する場合、TryしてCOMExceptionをCatchって感じなのだろうけど、へそ曲がりなのとLINQ to Objectがなんだか面白いのでちょっとあれこれ。
Core Tabのうち通常表示されるタブ(TabHomeAccess / TabCreate / TabExternalData / TabDatabaseTools)をまとめてしまう。それだけでもすっきりする。
メニューで折りたたんだだけともいう。
タブの間を行ったり来たりを自分好みに調整という感じで。最終的には組み込みタブの TabHomeAccess / TabCreate / TabExternalData / TabDatabaseTools をまとめたいかなと。ちょっと機能を加えながら。
どうすべきなのだろうか整理しながら考える。あれこれ調べてちょこっと確認中、NativeWindowクラスを使ってWindowsメッセージを監視することになりそうな感じ。
CustomTaskPaneの表示非表示に連動するリボンコントロールにはdynamicMenuを使用。invalidateContentOnDropで更新に手間がかからないから。
コマンドのオーバーライドをアプリケーションレベルで実装。
<commands>
<command idMso="FileCompactAndRepairDatabase"
onAction="cmdActionOverride"/>
</commands>
最適化/修復コマンドをオーバーライド
正式なサポートではないようだけど開発環境のカスタマイズということができそうだしやってみている。なにができそうなのかなと。
- UIカスタマイズ
Office2010でリボンUIをアプリケーションレベルでカスタマイズできるのだけれども、もう少し突っ込んだカスタマイズができそう。アドインの有効無効で切り替えができることがよいかな。
- カスタムコマンド実装/コマンドのオーバーライド
カレントデータベースを閉じてそして開くとか、最適化実行前にバックアップを取るとか、データベースプロパティの編集とか。アプリケーションパーツで実装できることもあるけどたまに不安定なことあるし。
とりあえず必要なものは、Visual StudioとVSTOテンプレート
テンプレートは、
Visual Studio 2010 - VSTO (VB) Access 2010 Template/Joao Livio { MIX ~ UP on USA}
Visual Studio 2008/Access2007用のテンプレートはCodoPlexに。