テクニック集"フォームとコントロールの活用 − フレームを使って擬似ツールバーを作る"
では、フレーム上にコマンドボタンを配置して擬似的なツールバーを作成しましたが、
ラベルを使い、SpecialEffectプロパティーを"fmSpecialEffectEtched"に設定の上、
アイコン表示とともにキャプションも表示できるようにするとすると
インターネットエクスプローラ風になります。(ただ残念ながらMouseOverイベントが
ないため、マウスをラベルの上に持っていった時にボタン形状が変わるようにするのは
困難です。)
"フォームとコントロールの活用 − フレームを使って擬似ツールバーを作る"と同様、
Pictureに使用するためのアイコンファイルなどを用意してテスト用のブックと同じフォルダー
に配置(MyIcon1.ico - MyIcon5.ico)した上で、以下のサンプルを実行してください。
(前提):フレーム(Frame1)、フレーム内にラベル×5(Label1-5)
※フレーム、ラベルの形状、位置はコードで調整
'==========================================================================
Private Sub UserForm_Initialize()
Dim i As Integer
Dim FT As Integer, FL As Integer, TH As Integer, TW As Integer
FT = 15: FL = 15 'FrameのTop,Left設定用
TH = 45: TW = 45 'ラベルの高さ、幅
With Me.Frame1
.Caption = ""
.Top = FT
.Left = FL
.Height = TH + 3 'フレームの高さ調整
.Width = TW * 5 + 3 'フレームの幅調整
End With
For i = 1 To 5
With Me.Frame1.Controls("Label" & i)
.SpecialEffect = fmSpecialEffectEtched
.Top = 0
.Left = TW * (i - 1) '左位置調整
.Height = TH
.Width = TW
.Picture = LoadPicture(ThisWorkbook.Path & "\MyIcon" & i & ".ico")
End With
Next i
End Sub
'==========================================================================
より一層IE風にみせるためにはコントロールの幅、高さを微調整する必要があります。
また、ラベルクリックの一時的な形状変更(一瞬だけボタンを窪ませる)には、
MouseDown,MouseUpイベントを使用します。
※ラベルのキャプションは手動で機能を表す適当な名前に変更してください。
デフォルトのままでもかまいません。
'==========================================================================
Private Sub Label1_MouseDown(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'ラベルを窪ませる
Label1.SpecialEffect = fmSpecialEffectSunken
End Sub
Private Sub Label1_MouseUp(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'ラベルを元の形状に戻す
Label1.SpecialEffect = fmSpecialEffectEtched
End Sub
'==========================================================================
|