エクセルVBAマルチページ作成。秘密鍵コードで非表示化!

multipageeyecatch

今回は知識編、マルチページの設置方法です。

ユーザーフォームはマルチページでデザイン数も広がります。

使ってみる前は難しく思えますが、設置は至って簡単!非表示化で秘密コマンドも作れます。

こんにちは、じゅんぱ店長(@junpa33)です。

エクセルVBAで使って便利なのが、ユーザーフォーム

そのユーザーフォームのコントロールの中で使って便利なのが、「マルチページ」です。

結構 そのように思われている方も多いのではないでしょうか。

と、言うことで、今回は、「マルチページ」の設置の方法についてまず最初に、基本部分を説明したします。

マルチページを設置した実例はこちら↓でご覧になります。

fuutoatenatorieyecatch 封筒宛名印刷エクセルソフトの無料DLと取説 ryousyu_userformeyecatcha ユーザーフォームのVBAで領収書の印刷をコントロールする方法

プチなVBAコード記事シリーズは他にもこのようなものがあります。

「プチなVBAコード」の記事一覧を開く

エクセルVBAマルチページを始めから作成する

multi020

ユーザーフォームにマルチページを配置

ツールボックスからマルチページを選ぶ

コントロールから「マルチページ」を選択し、ユーザーフォーム上で展開します。

multi001

Captionプロパティからページ表示を変更する

プロパティリストの中でCaptionの項目を「Page1」から「その1」に変更します。

ここは、各ページタブの名称を変更・決定する部分です。適宜変更することが出来ます。

multi002

新しいページを追加する

マルチページをアクティブ(マウスで左クリック)します。

次に、タブの上で右クリックして「新しいページ」を選択します。

multi003

ページのタブ順を変更するには

タブのところで右クリックすると表示されるメニューから「移動」を選択する。

multi008

表示された「ページの順序」で変更できます。

multi009

マルチページにコマンドボタンを置く

「その1」ページにコントロールを設置する

「その1」ページにコマンドボタンを置きます。いつも通りにツールボックスから選んで「その1」に設置します。

multi004

「その2」ページにも設置する

同じように「その2」ページを選択表示したときには、「その1」ページのコマンドボタンは背後に回って表示されません。

multi005

同様に「その2」ページにもコマンドボタンを置きます。

multi006

ユーザーフォーム1モジュールでコマンドボタンのコードを確認

ユーザーフォーム1のモジュールを確認すると、設置ページなどの区別なく、シンプルにコントロール毎に表記されている。

multi007

マルチページ1のプロパティ「Style」を変更してみる

「0-fmTabStyleTabs」

デフォルトの設定です。

multi011multi012

「1-fmTabStyleButtons」

タブがトグルボタン式に際立って表示されます。

multi010multi013

「2-fmTabOrientationTop」

トップページの表示だけ残り、マルチページそのものをアンビジブルにします。

multi014multi015

秘密鍵コードで非表示化

multi021

作成の流れ

  1. ユーザーフォームにマルチページを設置。
  2. 隠しページに隠したいコントロールを設置
  3. TOPページに表示して良いコントロールを設置
  4. 「秘密鍵」を実行するスイッチをユーザーフォームに設置
  5. ユーザーフォームモジュールに、マルチページの「Style」プロパティを操作するコードを記入

それぞれのコントロールを設置する

1・2・3の設置

「Page1」はTOPページとしてマルチページのステルス後にも見える部分になります。

multi016

「Page2」以降は秘密鍵による隠しページになります。

multi017

4の設置

簡単には、コマンドボタンやトグルボタンを設置すればよいのですが、あまり「秘密の意味」がなくなってしまいますので、

ちょっとした「これかぁ~」というようなものを設置したいと思います。ちょっと遊び気分で作りましょう。

分かり易い例でいえば、

「今日の天気」というCaptionのフレームに、「晴れ」・「曇り」・「雨」・「台風」のオプションボタンを設置します。

特定の天気を選択したあと、黄色のラベルをクリックするとマルチページのStyleプロパティを切り替えるスイッチが入ります。

multi018

コントロールの設置方法は、ツールボックスよりコントロールを選択して行ってください。

「黄色のラベル」はユーザーフォームのベース色と同色にすると場所の所在が消えますので、より秘密のスイッチ的になります。

ユーザーフォームモジュールでのコード作成

「曇り」を選択して「黄色ラベル(この場合Label3)」をクリックするとマルチページがアンビジブルになります。

「雨」を選択して「黄色ラベル(この場合Label3)」をクリックするとマルチページがビジブルになります。

vbawithstateeyecatch With~End Withの使い方。VBAコードを簡潔に記述する
VBA
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

VBAのユーザーフォームというと結構難しく考える人も多いかと思いますが、

このマルチページを取ってみても、説明しましたように、結構簡単に設置することが出来ました。

さらに、ちょっとプロパティを変化させれば、こういった隠しページも作る事が出来ました。

いつも、ビジネス色が強いエクセルVBAですが、楽しみながら作業が出来れば、また気分も違ったことになるのではと思うこの頃です。

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

vbastudyeyecatch2 エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です

今回の記事はここまでです。   最後までご覧いただき有難うございました。

エクセルVBA最速理解で必要な知識を集めよう!

エクセルVBA業務ツールで日常の業務改善を行いましょう。

<記事内容についての告知>VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。