リボンのアイコンをファイルとして保存する(2)
つづき
前回は,リボンのアイコンをファイルとして保存するに際して必要な「前提」について述べました.
今回からは「実践」に入ります.
そのために何を使えばいいのか
これがMicrosoft Office単体でできれば,まぁもちろん言うことなしです――元々,ツールの使用が制限された,私の昼の職場を想定していますしね.
こういうときはとりあえず,VBEのオブジェクト・ブラウザでキーワードとなる文言を検索してみましょうか.
あたまの構造が単純な私には,まぁその方が性に合っていますw
で,今回のキーになりそうなのはimageMSO属性なので,imagemsoで検索,‥
‥なんかいる‥.GetImageMso
メソッドとかいうすごくそれっぽいものが‥.
このメソッドについて検索してみると,
Function GetImageMso(idMso As String, Width As Long, Height As Long) As IPictureDisp
戻り値はIPictureDisp
なる型らしいので,それをオブジェクト・ブラウザで見てみましょうか.
そもそも,これがどのライブラリ所属なのかもわからないですからね.
stdole
の所属でしたか.
「stdole
なんて見たことない」という方もおられると思いますが,「最初から使えるやつ」くらいに思っておけば,まぁ間違いないと思います(適当).
では,とりあえずstdole
で何ができるのかを,オブジェクト・ブラウザで見てみましょうか.
‥またもなんかいる‥.SavePicture
メソッドとかいう,すごくそれっぽいものが‥.しかも,宣言を見ると,
Sub SavePicture(Picture As IPictureDisp, filename As String)
なんか見えてみた気がする.つまり
- 適当なアイコンを示すimageMSO属性の値を
idMSO
として,その幅・高さとしてそれぞれ適当な値をWidth
・Height
として,GetImageMso
メソッドを呼び出す - すると,アイコンのイメージを示す
IPictureDisp
型のオブジェクトが返される. - これを第一引数,保存先のパスを第二引数として,
SavePicture
メソッドを呼び出す. - すると,そこにアイコンが何らかの画像形式で保存されている!
こうなるんじゃないかしらん?
どんな画像形式かはわかりませんが,まぁ基本ということでICOかBMP,せいぜいPNGをまず疑えばいいんじゃないかと思います.
では,次回はこれに基づいて実験してみましょうか.
つづく