今回は知識編、マルチページの設置方法です。
ユーザーフォームはマルチページでデザイン数も広がります。
使ってみる前は難しく思えますが、設置は至って簡単!非表示化で秘密コマンドも作れます。
こんにちは、じゅんぱ店長(@junpa33)です。
エクセルVBAで使って便利なのが、ユーザーフォーム
そのユーザーフォームのコントロールの中で使って便利なのが、「マルチページ」です。
結構 そのように思われている方も多いのではないでしょうか。
と、言うことで、今回は、「マルチページ」の設置の方法についてまず最初に、基本部分を説明したします。
マルチページを設置した実例はこちら↓でご覧になります。
![fuutoatenatorieyecatch](https://shimaydo.com/wp-content/uploads/2020/08/fuutoatenatorieyecatch-160x120.jpg)
![ryousyu_userformeyecatcha](https://shimaydo.com/wp-content/uploads/2019/04/ryousyu_userformeyecatcha-160x120.jpg)
プチなVBAコード記事シリーズは他にもこのようなものがあります。
コンテンツ
エクセルVBAマルチページを始めから作成する
![multi020](https://shimaydo.com/wp-content/uploads/2020/08/multi020.jpg)
ユーザーフォームにマルチページを配置
コントロールから「マルチページ」を選択し、ユーザーフォーム上で展開します。
![multi001](https://shimaydo.com/wp-content/uploads/2020/08/multi001-1024x758.jpg)
プロパティリストの中でCaptionの項目を「Page1」から「その1」に変更します。
ここは、各ページタブの名称を変更・決定する部分です。適宜変更することが出来ます。
![multi002](https://shimaydo.com/wp-content/uploads/2020/08/multi002-1024x758.jpg)
マルチページをアクティブ(マウスで左クリック)します。
次に、タブの上で右クリックして「新しいページ」を選択します。
![multi003](https://shimaydo.com/wp-content/uploads/2020/08/multi003-1024x757.jpg)
タブのところで右クリックすると表示されるメニューから「移動」を選択する。
![multi008](https://shimaydo.com/wp-content/uploads/2020/08/multi008-1024x757.jpg)
表示された「ページの順序」で変更できます。
![multi009](https://shimaydo.com/wp-content/uploads/2020/08/multi009-1024x756.jpg)
マルチページにコマンドボタンを置く
「その1」ページにコマンドボタンを置きます。いつも通りにツールボックスから選んで「その1」に設置します。
![multi004](https://shimaydo.com/wp-content/uploads/2020/08/multi004-1024x760.jpg)
同じように「その2」ページを選択表示したときには、「その1」ページのコマンドボタンは背後に回って表示されません。
![multi005](https://shimaydo.com/wp-content/uploads/2020/08/multi005-1024x757.jpg)
同様に「その2」ページにもコマンドボタンを置きます。
![multi006](https://shimaydo.com/wp-content/uploads/2020/08/multi006-1024x760.jpg)
ユーザーフォーム1のモジュールを確認すると、設置ページなどの区別なく、シンプルにコントロール毎に表記されている。
![multi007](https://shimaydo.com/wp-content/uploads/2020/08/multi007-1024x759.jpg)
マルチページ1のプロパティ「Style」を変更してみる
「0-fmTabStyleTabs」
デフォルトの設定です。
「1-fmTabStyleButtons」
タブがトグルボタン式に際立って表示されます。
「2-fmTabOrientationTop」
トップページの表示だけ残り、マルチページそのものをアンビジブルにします。
秘密鍵コードで非表示化
![multi021](https://shimaydo.com/wp-content/uploads/2020/08/multi021.jpg)
作成の流れ
- ユーザーフォームにマルチページを設置。
- 隠しページに隠したいコントロールを設置
- TOPページに表示して良いコントロールを設置
- 「秘密鍵」を実行するスイッチをユーザーフォームに設置
- ユーザーフォームモジュールに、マルチページの「Style」プロパティを操作するコードを記入
それぞれのコントロールを設置する
「Page1」はTOPページとしてマルチページのステルス後にも見える部分になります。
![multi016](https://shimaydo.com/wp-content/uploads/2020/08/multi016.jpg)
「Page2」以降は秘密鍵による隠しページになります。
![multi017](https://shimaydo.com/wp-content/uploads/2020/08/multi017.jpg)
簡単には、コマンドボタンやトグルボタンを設置すればよいのですが、あまり「秘密の意味」がなくなってしまいますので、
ちょっとした「これかぁ~」というようなものを設置したいと思います。ちょっと遊び気分で作りましょう。
分かり易い例でいえば、
「今日の天気」というCaptionのフレームに、「晴れ」・「曇り」・「雨」・「台風」のオプションボタンを設置します。
特定の天気を選択したあと、黄色のラベルをクリックするとマルチページのStyleプロパティを切り替えるスイッチが入ります。
![multi018](https://shimaydo.com/wp-content/uploads/2020/08/multi018-1024x898.jpg)
コントロールの設置方法は、ツールボックスよりコントロールを選択して行ってください。
「黄色のラベル」はユーザーフォームのベース色と同色にすると場所の所在が消えますので、より秘密のスイッチ的になります。
「曇り」を選択して「黄色ラベル(この場合Label3)」をクリックするとマルチページがアンビジブルになります。
「雨」を選択して「黄色ラベル(この場合Label3)」をクリックするとマルチページがビジブルになります。
![vbawithstateeyecatch](https://shimaydo.com/wp-content/uploads/2020/12/vbawithstateeyecatch-160x120.jpg)
Private Sub Label3_Click()
If OptionButton2 = True Then
With MultiPage1
.page2.Visible = False
.Style = 2
End With
ElseIf OptionButton3 = True Then
With MultiPage1
.page2.Visible = True
.Style = 1
End With
Else
Exit Sub
End If
End Sub
マルチページの設置 まとめ
![multi022](https://shimaydo.com/wp-content/uploads/2020/08/multi022.jpg)
VBAのユーザーフォームというと結構難しく考える人も多いかと思いますが、
このマルチページを取ってみても、説明しましたように、結構簡単に設置することが出来ました。
さらに、ちょっとプロパティを変化させれば、こういった隠しページも作る事が出来ました。
いつも、ビジネス色が強いエクセルVBAですが、楽しみながら作業が出来れば、また気分も違ったことになるのではと思うこの頃です。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
![vbastudyeyecatch2](https://shimaydo.com/wp-content/uploads/2022/01/vbastudyeyecatch2-160x120.jpg)
今回の記事はここまでです。 最後までご覧いただき有難うございました。
<記事内容についての告知>
VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。