[[20220826083316]] 『リボンコントロールの取得』(エルモア) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『リボンコントロールの取得』(エルモア)

 customUIでリボンにドロップダウンを2つ、チェックボックスを20個ほど設置したのですがこれらの値をvbaから呼び出したり書き換えたりする方法を模索しています

 CustomUI内は以下のように記述されており
 方策が見つからなかった場合getSelectedItemIndexやgetPressedからそれぞれの要素をメモリ内に記録しておこうかと思っているのですが
 エラーなどでメモリが空になった際これらのコントロールをどうやって取得しようかと行き詰っています
 どなたかわかる方おられませんか?
    <tab id="tab1" label="Custom_Riboon" insertBeforeMso="TabHome">
        <group id="group1" label="グループ1">
            <dropDown id="ddHOGE" label="dd01:" imageMso="FileVersionHistory" showItemLabel="true" showItemImage="true" getSelectedItemIndex="getSelectedItemIndex" onAction="HOGE_onAction">
                <item id="HOGE01" label="HOGE01" imageMso="FileVersionHistory" screentip="HOGE01" supertip="HOGEHOGE01" />
                <item id="HOGE02" label="HOGE02" imageMso="FileVersionHistory" screentip="HOGE02" supertip="HOGEHOGE02" />
                .
                .
                .
                <item id="HOGE20" label="HOGE20" imageMso="FileVersionHistory" screentip="HOGE20" supertip="HOGEHOGE20" /
            </dropDown>
            <dropDown id="ddMOGE" label="dd02:" imageMso="ColorMenu" showItemLabel="true" showItemImage="true" getSelectedItemIndex="getSelectedItemIndex" onAction="MOGE_onAction">
                <item id="MOGE00" label="MOGE01" imageMso="GroupApplicationLog" screentip="MOGE01" supertip="01" />
                <item id="MOGE01" label="MOGE02" imageMso="PersonaStatusOnline" screentip="MOGE02" supertip="02" />
            </dropDown>
        </group>
        <group id="group2" label="グループ2">
            <checkBox id="TOGE01" label="TOGE01" screentip="screentip" supertip="supertip" onAction="checkBox_onAction" getPressed="getPressed" />
            <checkBox id="TOGE02" label="TOGE02" screentip="screentip" supertip="supertip" onAction="checkBox_onAction" getPressed="getPressed" />
            .
            .
            .
            <checkBox id="TOGE20" label="TOGE20" screentip="screentip" supertip="supertip" onAction="checkBox_onAction" getPressed="getPressed" />
        </group>
    </tab>

< 使用 Excel:Office365、使用 OS:Windows10 >


 私の場合ですけど、
 %APPDATA%配下にアドイン用のiniファイルを作って、
 アドインにまつわるコンフィグはすべてiniに保存してます。

 アドインの機能のOn/Off設定や、それこそgetPressedの設定値とかメニューの表示/非表示とか...
 それとIRibbonUI変数のObjPtr値(メモリが飛んじゃった時の回復用)
 その他アドインファイル自身のタイムスタンプ的な情報とか。

 iniファイルの入出力はGetPrivateProfileStringとWritePrivateProfileStringを、
 IRibbonUI変数回復にはMoveMemory使ってます。
 いずれもKERNEL32.dllのAPIですね。

 (結構取っ付き易い参考ページがあったと思うんだけど見つけられない...)

(白茶) 2022/08/26(金) 09:31


 見つけましたよ。↓ココです。

Office 2007/2010・リボンのカスタマイズ 初心者備忘録
IRibbonUIオブジェクトがNothingになったときの対処法
http://www.ka-net.org/ribbon/ri64.html

 あと↓ココもCustomUIの勉強に向いてて好きです(具体例が多い)

リボンの君とSuyamaSoft
http://suyamasoft.blue.coocan.jp/index.html

(白茶) 2022/08/26(金) 09:39


 白茶さんありがとうございます
 外部に値を持つ方法はいいですね
 こちら配布用のファイルを想定していますがブック起動時に初期値のファイルを作ったりすればいいだけですし

 >IRibbonUIオブジェクトがNothingになったときの対処法
 これはメモリが空になったらIRibbonUIを取得してInvalidateでまたgetselectやgetpress取得できそうですね!

 ありがとうございます

(エルモア) 2022/08/26(金) 10:01


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.