【Excel】ユーザーフォームのフレームを使い道を複数解説します。【VBA】

ユーザーフォームのフレームの使い道について調べてみたのですが、下記の説明が多かったです。

  • フレームの詳細設定方法
    フレームの色や、背景色を変更する方法など
  • 見栄えを良くするため
    UIを見やすくするためのしきりとして使用

この二つが多かったのですが、他にもたくさんあります。

スポンサーリンク

具体的な使い道

具体的に使用例を載せていきます。

  • オプションボタンが複数使用できる。
    一つのユーザーフォームに複数のオプションボタンを設定することが出来るようになります。
  • フレームを使用することで、テキストボックスなどを特定しやすくなる。
    多数のテキストボックスなどがあると、任意のテキストボックスを特定するのが困難になります。
    また、一つテキストボックスなどを追加するときにコツコツ動かしてユーザーフォームを調整しないといけない羽目になったりしてめんどくさいことこの上ないです。これを解決してくれるのがフレームワークです。
  • まとめて表示の可否、入力の可否が設定できる。
    一つずつ入力の可否を設定するのがめんどくさいと思うので、まとめて入力できない様にできます。

オプションボタンが複数使用できる。

オプションボタンの特性になりますが、1つのコンテナで1種類のオプションボタンしか設定できないようになっています。
これをコンテナであるフレームを使用することにより、複数設定することが可能です。

フレームを使用することでテキストボックスなどを特定しやすくなる。

下記の画像はオプションボタンですが、任意のアイテムを特定するのが容易になります。

オプションボタンはたくさんありますが、フレームで囲っていることにより、シンプルなコードでオプションボタンを特定し、オプションボタンの数字を変更しています。
こんな使い方する人いないと思いますけども笑
下記にコードを乗せておきます。

Private Sub CommandButton2_Click()
    Call 無駄にオプションボタンの数字変更(1)
End Sub

Private Sub CommandButton3_Click()
    Call 無駄にオプションボタンの数字変更(2)
End Sub

Private Sub CommandButton4_Click()
    Call 無駄にオプションボタンの数字変更(3)
End Sub

Private Sub 無駄にオプションボタンの数字変更(num As Integer)
    Dim i As Integer
    i = 1
    For Each opBtn In Frame4.Controls
        opBtn.Caption = i * num
        i = i + 1
    Next opBtn
End Sub

このコードの中で特に重要なのが「Controls」です。UserFromで使用するとすべてのアイテムを選択することになりますが、Frameを指定して「Controls」を使用するとフレーム内にあるアイテムだけを選択してくれます。

まとめて表示の可否、入力の可否が設定できる。

フレーム自体の操作の可否を設定することが出来ますので、フレーム内に設置されたアイテムもまとめて操作できないようにできます。

今回作成したユーザーフォームの提供

絶対使い道なんてありませんが、コードを見たい人に向けて下記に乗せておきます。
フレームの使うことでメンテナンス性の高いフォーム作れるようにしていきましょう。


コメント

タイトルとURLをコピーしました