「この入力画面、項目が多すぎてスクロールするの大変…。もっとパッと見て、どこに何を入れればいいか直感的にわかるようにならないのかな……」
こんな経験はありませんか?
1つの画面に何十個も入力項目が並んでいると、人間はそれだけで「うわ、めんどくさそう……」と感じてしまいますよね。この心理的なハードルが、入力ミスや作業の遅延(1件あたり約1〜2分のロス)につながってしまいます。
そこで活躍するのが、Excel VBAのUserFormで使える機能「MultiPage(マルチページ)」です。
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を使うメリットをまとめます。
- 画面がスッキリする: 視覚的なストレスが大きく軽減されます。
- ミスが減る: 今入力すべき項目だけに集中できます。
- プロっぽくなる: 使う人から「すごく使いやすい!」と喜んでもらえます。
まずは基本となる2ページ構成から、作ってみてください!
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。
リンク
リンク

コメント