2018年11月03日

【Excel VBA】customUIに既存の機能を入れる

お題

リボンを作ってて思うこと・・・
「既存の機能も入れたい!!」

今まで出来ないと思ってたので、既存機能はオプションからタブを作って入れてました。
でもこれって、アイコンがちょっとしかなくて、なかなかピッタリなものがなくて不満。
あとcustomUIとタブが分かれちゃって不便。

前回、タブやグループのコントロールID一覧を見ててふと気づいた。

Control Nameに既存の機能も含まれている ということに。

ってことは、cusomUI.xmlに書けるんじゃん!?



試行錯誤

とりあえず勘でw
<button id="Button001" imageMso="HappyFace" label="VBE&#xD;&#xA; " size="large" onAction idMso="VisualBasic" />


0040_01.png


怒られた・・・。
へなちょこの勘、無に等しき。

onAction="idMso="VisualBasic"
command idMso="VisualBasic"

とかイロイロ思い付きでやってみたけど、Excel様はお気に召さないようです。
しょーがないよ。
13時すぎは睡魔と戦うのが仕事だもの。



初心に返る

わからないときは、作った本人に聞け!
MSDN を眺めてみた。

ひたすらひたすらスクロールしてたら・・・眠くなっちゃった。
ぼーーっとしながらスクロールを続け・・・

スクロールする手が疲れちゃったから、そろそろ諦めよっかなー、と思ったら・・・

0040_02.png


コレだ!!!


実装

<button idMso="VisualBasic" />


0040_03.png


できた!!
あれこれ試行錯誤したけど、こんな簡単なものでしたw


しかし、ちっさいなー。
ダメもとでやってみる。
<button idMso="VisualBasic" size="large" imageMso="HappyFace" label="VBE"/>


0040_04.png


いけた♪

調子に乗ってどんどんつっこんでみる。
<button idMso="ControlsGallery" size="large" />
<button idMso="DesignMode" />


あれーー??
0040_05.png


コントロール名のこぴぺミスったかな?

コントロールID一覧を見直してみたら

0040_07.png


Control Typeがgalleryになってるね。
一番最初はControl Typeを書くっぽい。←MSDNをちゃんと読んでない
<gallery idMso="ControlsGallery" size="large" />

にしてみたら、Excel様もご満足いただけた模様。



結論

< Control Type idMso=" Control Name " />




余談

へなちょこのタブはこんなカンジ。

0040_06.png

デザインモード〜マクロの記録は、boxに入れてます。
既存機能を入れられたおかけで、開発タブは、もういらない笑












Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: