【VBA】おしゃれなユーザーフォームの作り方
マクロ(VBA)ではユーザーフォームを作ることができるのですが、デフォルトで作ると灰色ばかりの無機質な見た目になりがちです。(業務用だとそんなイメージかもしれませんが)
ですが、ちょっと工夫するだけで意外とおしゃれなユーザーフォームを作ることができたりします。
そんなTipsをいくつか紹介したいと思います。
※アイディアは何個かあって、少しずつ更新で追加していきたいと思います。
①ボタンクリックで右側に広がるユーザーフォーム

まずはボタンクリックすることで、隠されたエリアが表示されるデザインを紹介します。
イメージは上の画像のような感じで、「開けゴマ」ボタンを押すと、ユーザーフォームの隠されたエリアが表示されます。
普段は見ない、使い方の説明などを隠しておくのに向いていると思います。
初めて使う人に、説明エリアを用意しておくと使うのがスムーズになりますよね。
作り方

まずは開く前の通常サイズで、ユーザーフォームを作成します。
(画像に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を変化させることによってボタンクリックで右側に広がるユーザーフォームを作ることができます。
これギミック感があって結構好きなんですよねぇ。
②タブを使って機能毎に分割する
ユーザーフォームの使い勝手をよくするデザインに、タブによる分割があります。
これは、ボタンがたくさんあるユーザーフォームにおすすめの手法です。
もし、ボタンがたくさんのユーザーフォームがあれば、デザイン編集してみてはどうでしょうか。

タブはツールボックス内のマルチページというボタンで作成できます。

タブを付けるとこんな感じのデザインになります。

タブのところで右クリックすると、タブを追加することもできます。(デフォルトは2ページ)

実際にタブで分割をすると↑画像のようなイメージとなります。
このユーザーフォームは割と小さいのですが、このサイズ感で6個(3個×2ページ)のボタンを設置することができます。(説明を入れるスペースも十分あり)
1つのユーザーフォームに大量のボタンを設置すると、使う人も混乱しやすくなります。
その点、タブだと一目でおおよその機能が分かります。別タブを開くと頭が切り替わるので認知負荷も減らせます。
ちょっと気を付けたいのは、使っている人がどのタブを使っているか分かるようにする点です。
↑画像ではボタンの色を変更することによって、2ページ目のタブを開いていると分かるようにしました。
ボタン配置などでも判別が付くようにできますが、色味を使った方がぱっと見で分かる点がいいと思います。
