HOME > 即効テクニック > Excel VBA > ユーザーフォーム関連のテクニック > フォームとコントロールの活用−ラベルコントロールでInternetExplorer風ボタン

即効テクニック

ユーザーフォーム関連のテクニック

フォームとコントロールの活用−ラベルコントロールでInternetExplorer風ボタン

(Excel 97/2000)
テクニック集”フォームとコントロールの活用 − フレームを使って擬似ツールバーを作る”では、フレーム上にコマンドボタンを配置して擬似的なツールバーを作成しましたが、ラベルを使い、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
'==========================================================================