エクセル2007アドイン、セルの塗りつぶしとフォントのパレット作ってみた、その10
続き
赤枠のとこが追加したもの
表示をするにはその他機能のボタン→もっとだ!のボタンを押す
最初に表示した時は数値が0.00になっている
この数値はTintAndShade
その他3のボタンを押すと
数値の右にあるスライドバーで数値が変更できる
上から0.8 0.6 0.4 -0.25 -0.5にしてボタンを押すと↓
0.3 -0.45 0.4 0.5 -0.6だとこう↓
スライドバーでは0.05刻みで手書きならもっと細かく指定できる
けど意味ないかも
マイパレットに登録する色を作るのに使えるかなと思って作ったけど
なんかいまいちかな
ダウンロード
ファイル名 午後のパレット_20141123.zip
ダウンロード先1
エクセル2007アドイン - OneDrive
ダウンロード先2(ヤフーボックス)
今回使った部品がテキストボックスとスライダーを各5個づつ
最初は手動で作っていたけどやっぱりめんどくさい
パレットと同じように動的作成だ!
パレットに使っている部品はImage
テキストボックスはTextbox、スライダーはSlider
名前が違うだけで同じControl(部品)の仲間なんだから同じように書いてみたけど
動かない
実際に書いた文章が
ここからユーザーフォームに書いた--------------------
ここまでフォームモジュールに書いた--------------------
ここからクラスモジュールに書いた--------------------
ここまでクラスモジュールに書いた--------------------
画像だと
緑色の文字はコメントで独自の表現になっている
スライダーをクラスに登録ってのも違うんだろうなあとは思いつつ書いている
特にスライダーの作成で使う名前がわからなかった
Set sL = Me.Controls.Add("MSComctlLib.Slider")
これが正解かわかっていないけどこれで動いている
このなかのMSComctlLibがわからなかった
スライダーを作るんだからSliderだけでいいと思うんだけど
そんな名前はないよって言われて、Sliderにカーソル合わせてF1キー押しても
ヘルプはありませんとか出るしで
ヤフーでググって
ここではスライダーではなくてListViewだけどここを見てやっと動かせた(理解できたわけではない)
テキストボックスも
Dim tB As TextBox、これだと型が違うと言われる
Dim tB As MSForms.TextBox、こっちが正解
パレットに使っているImageは
Dim img As Image、これで動いているのに!
動的作成だといくつ作ろうが手間は変わらないのがいい
イベントもそれぞに付けられるのはもっといい
今回みたいなスライダーを動かしたらテキストボックスの文字を変更するだけなら
細かな設定を除いたら20行くらいかな
Dim tB As MSForms.TextBox
Set tB = Me.Controls.Add("Forms.TextBox.1")
Dim sL As MSComctlLib.Slider
Set sL = Me.Controls.Add("MSComctlLib.Slider")
テキストボックスはMSForms.TextBox
スライダーはMSComctlLib.Slider
これでできる
この記事の続きは