エクセルVBA ユーザーフォーム 家計簿にマルチページを適用する。

家計簿入力を、一覧ではなく種類ごとに分けたい

前回作成した記事の更新です。
bimori466-1.hatenablog.com


家計簿の入力で、野菜を買ったら以下のフォームから入力していました。
f:id:bimori466:20200612071255p:plain

しかし、これ「探しずらい」(-_-;)。レタス買ったけど、どこに入力するねん。なので、野菜を色別に選択して入力できるように、マルチページを作成した話です。


改善結果は下の写真↓↓
f:id:bimori466:20200612084943p:plain
「緑」「赤」「橙」「黒」「紫」「白」「黄」の7つの野菜ごとにページを作りました。レタスもすぐに見つけられます。

色別に作るだけでなく、似通った食品「果物」「キノコ」「海藻」も同じページにまとめました。野菜を選択して、次は果物、次はキノコ、と選択するのが面倒くさいし、登録行が増えてしまうので。



1 閲覧対象者

マルチページをコードから動的に作成する例を見たい方。

2 得られる効果

品目が分類化され、「入力」と「入力項目」を探すのが楽になる。

3 設計

1 Sheetに食品リストを準備する。
f:id:bimori466:20200612082340p:plain

2 ユーザーフォームのコンボボックスで、入力したい種類を選択する。
3 コンボボックスで選択した種類のページ項目を、リストSheetを参照し、マルチページを作成する。

4 VBAの処理を解説

処理の流れ

f:id:bimori466:20200612084200p:plain
f:id:bimori466:20200612084306p:plain

コードの解説(Formモジュール:cmb_入力選択_Change)

処理の流れ

1 マルチページが作成済みであれば、削除
2 コレクション変数(item_classification)にSheetリスト「ページ」列の重複しないコレクションを作成。
3 マルチページを作成する。
4 入力用コントロールを作成。
5 入力コントロールに共通イベントを登録。

5 作ってみての感想

マルチページは便利だった。
食品の知識が増える。子どもにやらせてみてもよいかも。

6 使ってみたい方(noteのリンク)

noteから無料でダウンロードできます。
興味のある方は、お試しください。
note.com