脱・初心者!Excel VBAのUserFormに「タブ」を実装して、プロっぽい入力システムを作る方法

【業務効率化】VBA
スポンサーリンク

「この入力画面、項目が多すぎてスクロールするの大変…。もっとパッと見て、どこに何を入れればいいか直感的にわかるようにならないのかな……」

こんな経験はありませんか?

1つの画面に何十個も入力項目が並んでいると、人間はそれだけで「うわ、めんどくさそう……」と感じてしまいますよね。この心理的なハードルが、入力ミスや作業の遅延(1件あたり約1〜2分のロス)につながってしまいます。

そこで活躍するのが、Excel VBAのUserFormで使える機能「MultiPage(マルチページ)」です。

【業務効率化】VBAの記事を見る 

MultiPageとは?

簡単に言うと、「情報のカテゴリごとにページを分けられる、タブ付きクリアファイル」のような機能になります。

例えば、顧客管理システムなら以下のように分類できます。

  • ページ1: 顧客の基本情報(氏名、住所、電話番号など)
  • ページ2: 取引履歴(購入日時、商品名、金額など)
  • ページ3: 特記事項(担当者のメモや個別対応など)

こうすることで、1画面あたりの項目数が減り、どこに何を入力すべきかが一目で分かるようになります。

さっそく作ってみよう!

UserFormのツールボックスから「マルチページ」を選んで配置するだけ。ページを増やしたいときも、タブを右クリックして「新しいページ」を選択するだけです。

「でも、ボタンを押したときや特定の条件のときに、次のページへ自動で移動させたい!」

そんな時に使える便利なコードがこちらです。

Private Sub btnNext_Click()
    ' Valueプロパティでページを切り替えます   
    Dim currentPage As Integer
    currentPage = MultiPage1.Value
   
    ' 最後のページでなければ次へ
    If currentPage < MultiPage1.Pages.Count - 1 Then
        MultiPage1.Value = currentPage + 1
    Else
        MsgBox "これが最後のページです"
    End If
End Sub


【補足】フォームが開いた瞬間に自動で特定のページを開きたい場合

Private Sub UserForm_Initialize()
    Call JumpToSupportPage
End Sub

' 特定のページを表示したい時
Private Sub JumpToSupportPage()
    ' 3番目のページ(インデックスは2)を直接表示する
    MultiPage1.Value = 2
End Sub

注意点:ただ「分ければいい」わけではない

大切なのは、人が「一度に把握できる量(およそ7項前後)」に絞ってページを分けることです。
使う人の立場に立って、「どう配置すれば一番楽に入力できるか?」を考えることが成功のポイントになります。

まとめ

MultiPageを使うメリットをまとめます。

  1. 画面がスッキリする: 視覚的なストレスが大きく軽減されます。
  2. ミスが減る: 今入力すべき項目だけに集中できます。
  3. プロっぽくなる: 使う人から「すごく使いやすい!」と喜んでもらえます。

まずは基本となる2ページ構成から、作ってみてください!

【業務効率化】VBAの記事を見る 


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でしたが、年間100万円以上節約していました。
株式投資で年間360万円以上投資し、iDeCoも併用しています。
総資産はアッパーマス層に到達しました。
資格は日商簿記3級を持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、生産性を高めるITスキルについて発信しています。

生活を豊かにするため、高配当株投資で年間配当金60万円をめざしています。
現在の年間配当金は30万円ほどです。

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

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