VBA ユーザーフォームのデザインを考えてみる3(メニュー作ってみた)



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

VBA ユーザーフォームのデザインを考えてみる3(メニュー作ってみた)

どうも、takaです、なんだかんだと三回目のこのシリーズ【VBA ユーザーフォームのデザインを考えてみる】ですが、今回は今まで紹介した記事の内容をもとに実際にメニューを作成してみました(^^♪

VBAのユーザーフォームのデザインを考えてみるどうもtakaです、Excel VBAでは自分自身のオリジナルなダイアログボックス(ユーザーフォーム)を作成することができます。...
VBA ユーザーフォームのデザインを考えてみる2(コマンドボタンエフェクト)どうも、takaです。少し前にユーザーフォーム上のメニューに動きを付けるという記事ををご紹介...

作成したメニューのイメージ

今回作成したメニューのイメージはこちら

どうでしょうか?少しマシなものと思ってもらえると助かります(。-∀-)

フッターに色を付ける

今回初めてしたことは【Labelコントロール】を使用してフッターに色を付けてデザイン性を持たせたことです(^^)/

デザインついでに、コピーライティングなどを記述してみるのもOKです(おまけで時計機能も付けました)

時計機能についてはこちら

ユーザーフォームに時計をつけてみる今回はExcel VBAのユーザーフォーム上に時計を付けてみようと思います。あまり必要ないかもしれませんが暇つぶしにでもご覧ください...

用意するコントロール

今回のメニュー作成に使用したコントロールは以下の通りです。

※コントロールのオブジェクト名は基本変更していませんので連番で使用しています。

  1. Frameコントロール・・・・・1つ
  2. CommandButtonコントロール・5つ
  3. Labelコントロール・・・・・・1つ

作成したメニューのコード

今回作成したメニューのコードはこちらです。
仕組みはとっても簡単なので見てもらえればわかると思います(。-∀-)簡単な解説はコメント内でさせていただいています( ^ω^ )

後は実際にSampleファイルをダウンロードしてみてもらえると解りやすいと思います(^^)/

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'モジュールの一番上にペーストしてください。
Dim h As Long 'Height
Dim w As Long 'Width
Dim th As Long 'Topの高さ
Dim i As Long
Private Sub Frame1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

'Frame1上にマウスが来た時の処理
For i = 1 To 4
Controls("CommandButton" & i).Font.Bold = False 'commandbuttonからポインターが外れてFrame1の上に来た時に太字をやめる
Next


     h = Frame1.Height
     w = Frame1.Width


  Do While h < 50  'Frame1の高さを調整
    Frame1.Height = h
    Sleep 0.3
    h = h + 1
    Loop
  Do While w < 336 'Frame1の幅を調整
     Frame1.Width = w
     Sleep 0.3
     w = w + 1
  Loop
   
End Sub
Private Sub UserForm_Activate()

  '時計の設定
 Dim counttime As Variant
  Do While UserForms.Count > 0

  counttime = Format$(Time(), "h:nn:ss")
   Label1.Caption = "Copyright (C) 2017 taka All Rights Reserved    " & counttime
  DoEvents

 Loop

End Sub

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'UserForm上にマウスが来た時に書くコントロールの高さ・幅をもとに戻す。

     h = Frame1.Height
     w = Frame1.Width



    Do While h > 17  'Frame1の高さを調整して元に戻す
    Frame1.Height = h
    Sleep 0.5      'sleep関数を使用して戻す時間を調整
    h = h - 1
    Loop
  
     Do While w > 60 'Frame1の幅を調整して元に戻す
     Frame1.Width = w
        Sleep 0.3   'sleep関数を使用して戻す時間を調整
        w = w - 1
     Loop
 
CommandButton5.Font.Bold = False 'CommandButton5だけフレーム内にないのでこっちに記述
     
End Sub
Private Sub UserForm_Initialize()

'Formを読み込み時にCommandButtonの背景やフォント色を指定
For i = 1 To 5
Controls("CommandButton" & i).BackColor = RGB(18, 83, 164) 'とりあえずRGB関数で指定することによって自由度が増す
Controls("CommandButton" & i).ForeColor = &HFFFFFF  '文字の色を指定
 Next

End Sub
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'CommandButton1の上にポインタがあるときは太字にする
CommandButton1.Font.Bold = True
End Sub
Private Sub CommandButton2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'CommandButton2の上にポインタがあるときは太字にする
CommandButton2.Font.Bold = True
End Sub
Private Sub CommandButton3_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'CommandButton3の上にポインタがあるときは太字にする
CommandButton3.Font.Bold = True
End Sub
Private Sub CommandButton4_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'CommandButton4の上にポインタがあるときは太字にする
CommandButton4.Font.Bold = True
End Sub
Private Sub CommandButton5_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'CommandButton5の上にポインタがあるときは太字にする
CommandButton5.Font.Bold = True
End Sub

 

ダウンロード

当サイトの免責事項をお読みになってからお使いください。

 

フォロー・チャンネル登録お願いします

VBA以外についてのブログはこちら↓

https://yb-log.com/

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です