このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】おしゃれなユーザーフォームの作り方

マクロ(VBA)ではユーザーフォームを作ることができるのですが、デフォルトで作ると灰色ばかりの無機質な見た目になりがちです。(業務用だとそんなイメージかもしれませんが)

ですが、ちょっと工夫するだけで意外とおしゃれなユーザーフォームを作ることができたりします。

そんなTipsをいくつか紹介したいと思います。

※アイディアは何個かあって、少しずつ更新で追加していきたいと思います。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

①ボタンクリックで右側に広がるユーザーフォーム

まずはボタンクリックすることで、隠されたエリアが表示されるデザインを紹介します。

イメージは上の画像のような感じで、「開けゴマ」ボタンを押すと、ユーザーフォームの隠されたエリアが表示されます。

普段は見ない、使い方の説明などを隠しておくのに向いていると思います。
初めて使う人に、説明エリアを用意しておくと使うのがスムーズになりますよね。

作り方

まずは開く前の通常サイズで、ユーザーフォームを作成します。
(画像にHeight、Widthが書いてありますが、これは参考値です。好きな大きさで作ってください)

次にユーザーフォームのWidthを広くして、隠しエリアの要素を作成します。

ユーザーフォームのWidthは、プロパティウィンドウから数値で指定することができます。

最後に「開けゴマ」ボタンを設置すれば、準備は完了です。
あとは、簡単なコードを追加するだけです。

Private Sub UserForm_Initialize()
    ' ユーザーフォームを開いたときにWidthを変更する
    
    Me.Width = 240
End Sub
Private Sub CommandButton1_Click()
    ' 「開けゴマ」ボタン
    
    If Me.Width = 240 Then
        Me.Width = 360 ' 開く
    Else
        Me.Width = 240 ' 閉じる
    End If

End Sub

追加が必要なコードは↑の2つです。

UserForm_Initializeによって、ユーザーフォームが起動したときにWidthを小さくして隠しエリアが見えないようにします。

CommandButton1_Clickは「開けゴマ」ボタンで、Widthが240なら360にして隠しエリアを表示させます。すでに隠しエリアが表示されているときは、反対に非表示にします。

こんな風に、Widthを変化させることによってボタンクリックで右側に広がるユーザーフォームを作ることができます。

これギミック感があって結構好きなんですよねぇ。

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい