午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

エクセルのアドインやアドイン作成用のファイルサイズを小さくする方法(手動)とインポート後のエラー対処

エクセルのアドインやアドイン作成用のファイルサイズを小さくする(元に戻す)

アドイン作成は普通のエクセルのファイルで行うんだけど
いじっているとファイルサイズがどんどん無駄に大きくなる
解決法は
新しくファイルを作りなおす
 
イメージ 1
これが無駄に大きくなっている状態
ファイルサイズ500KB
 
イメージ 2
新しくファイルを作りなおすと
500KBが150KBまで小さくなる
書いてある文章やシートの枚数は全く同じでもここまで違ってくる
 
作り直す手順は
元のファイルのすべてのモジュールをエクスポートしておく
ファイルを新規作成して元のファイルのシートをコピーする
エクスポートしておいたファイルをインポートする
リボンのボタンの設定
 
エクスポートは問題ない

f:id:gogowaten:20191015155653p:plain

 
ファイルを新規作成してシートをコピーするも問題ない
f:id:gogowaten:20191015155709p:plain
 
エクスポートしたファイルのインポート

f:id:gogowaten:20191015155730p:plain

すべてインポートする、これも問題ないはずなんだけど
 

f:id:gogowaten:20191015155746p:plain

マクロを実行すると
ユーザー定義型は定義されていません。
のエラー、何のことだかわからない
クラスモジュールに書いたスライダー作成に関係する
Private WithEvents exSL As MSComctlLib.Slider
の「MSComctlLib.Slider」をそんなの知らないよって言っているみたいで

f:id:gogowaten:20191015155816p:plain

候補に出ていたMSComctlLibが出てこなくなっている

いつもの様にググって
 
ここを見ると参照設定をするといいみたい
f:id:gogowaten:20191015155832p:plain
ツール→参照設定で
Microsft Windows Common Controls 6.0(SP6)
これにチェックを入れる、これで動くはず
それにしても参照設定の一覧で出てくる1000個位のリスト
あれにはそれぞれ部品が入っているのかしら
 
実行したら違うエラー

f:id:gogowaten:20191015155854p:plain

今度のエラーは
メソッドまたはデータメンバが見つかりません。
スライダーの位置Left(x座標)を指定しているところでエラーになっている
スライダーのプロパティにLeftなんてものはないですって言っているみたい
そんなはずはないんだけどなあ

f:id:gogowaten:20191015155909p:plain

ツールボックスにも表示されているし
フォームの上にあるスライダーのプロパティでもLeftは表示されていた
Leftがわかんないならその次に指定しているTop(y座標)はどうか→
Topもわからないというので参照設定だけでは認識しきれていない感じ
わけがわからないままいろいろいじって見つけた解決法は
 
ツールボックスから新たにスライダーを作成する
これ
 
その後は作成したスライダーは削除してもいい
ツールボックスから一度作成すれば認識するみたい
こんなの気づかないYO
でもこれで動くようになった
 
最後はリボンのボタンの設定
アイコンの登録して
XMLの編集というかコピペ

f:id:gogowaten:20191015155925p:plain

 
 
アイコン用の画像登録
まずはようやく動くようになった新しいファイルを名前を付けて保存して閉じる
無駄に大きくなっている元のエクセルファイルも閉じておく
新しいファイルを
Custom UI Editor
で開いて
メニューのInsert→Office 2007 Custom UI Part
f:id:gogowaten:20191015155936p:plain
 
続いてInsert→Iconsでアイコンの登録
登録した(アイコン)画像は32x32のpng形式
画像ファイルの名前は英数字だけにした方がいい

f:id:gogowaten:20191015155958p:plain

 

f:id:gogowaten:20191015160013p:plain

 

これでエクセルのファイルにアイコンの登録ができた
保存して閉じる
 
次はリボンの設定に使うXMLの編集
使うアプリは
Office Ribbon Editor
無駄に大きくなった元のエクセルファイルと
さっきアイコン用の画像登録したエクセルファイルの二つを開く

f:id:gogowaten:20191015160034p:plain

RibbonX12をダブルクリックで編集画面になる↓

f:id:gogowaten:20191015160046p:plain

 

f:id:gogowaten:20191015160059p:plain

元のエクセルファイルのコードをコピー
 

f:id:gogowaten:20191015160117p:plain

新しい方へペースト
保存して閉じる
 

f:id:gogowaten:20191015160130p:plain

新しいファイルをエクセルで開いて

名前を付けて保存からアドインを選んで保存でアドイン完成
 
リボンの編集を頑張れば動的に部品の増減や変更ができるみたいなんだけど
エクセルVBAとの連携もあって難しい
どんな部品があるのかわもわかんないんだよなあ
 
関連記事