見出し画像

これであなたもプロ級!ポップアップメニュー作成術

前回は、メニューボタンを作って[ファイルを開く]処理を実行しました。

画像1

今回は、[メニュー]ボタンを押して[ポップアップメニュー]を表示する方法について説明します。

画像2

ユーザーが記述するマクロは、下記のように[タイトル:業務メニュー]と[メニュー名:業務経費報告書 , 売上管理表 , 在庫管理表]を記述するだけですむようにします。

Sub 業務メニューを開く()
 n = f_メニュー("業務メニュー", "業務経費報告書,売上管理表,在庫管理表", "選択してください", 0)
End Sub

[メニュー]ボタンには、[業務メニューを開く]マクロを登録します。

マクロを登録する手順は、前回のnote記事(業務アプリは、マニュアル作り)を参考にしてください。


[業務メニューを開く]マクロの説明

1. [n =]について説明します。

一般的なマクロでは n = 1 と記述すると、変数 n に 1 を代入します。

ここでは n = f_メニュー(・・・) と記述していますので、変数 n に 関数 f_メニュー(・・・) の値を代入します。

関数 f_メニュー(・・・) は、指定した値[タイトル]と[メニュー名]と[メッセージ]を[ポップアップメニュー]に表示する関数です。

関数 f_メニュー(・・・) は関数を実行したけど、うまく実行できずにエラーになった場合は、0 の値を返します。

つまり、n = f_メニュー(・・・) と記述していますので、うまく実行できなかった場合は、変数 n の値は 0 になります。

関数 f_メニュー(・・・) が、正しく実行された場合は [選択されたメニュー番号]を返します。

つまり、1番目のメニューが選択された場合 n の値は 1 、 2番目のメニューが選択された場合 n の値は 2 になります。

関数を実行後の n の値を判定すれば、何番目のメニューが選択されたのかがわかります。


2. [f_メニュー("業務メニュー", "業務経費報告書,売上管理表,在庫管理表", "選択してください", 0)]について説明します。

下図のような[ポップアップメニュー]を作成するには、ユーザーフォームにリストボックスを挿入して作成します。

画像3

関数 f_メニュー(・・・)は、[タイトル]と[メニュー名]を指定すると[ポップアップメニュー]が表示するように作成された関数です。

記述方法は下記のようになります。

【構文】 f_メニュー("<タイトル>","<メニュー1>,<メニュー2>,・・・","<メーッセージ>",メニュー初期値)
【戻り値】選択したメニュー番号。[中止]したときは 0 を返します。

関数 f_メニュー(・・・)を実行する場合に必要な変数は4つあります。

・タイトル   業務メニュー
・メニュー名  業務経費報告書、売上管理表、在庫管理表、・・・
・メッセージ  選択してください
・初期値    開いた時に、指定した番号のメニューを選択しておく

変数を指定するには、文字列は 記号(")で囲んでください。
数値は、そのまま指定します。 

タイトル、メニュー名、メッセージは、文字列で指定します。
初期値は、数値で指定します。

下記のようになります。

f_メニュー("業務メニュー", "業務経費報告書,売上管理表,在庫管理表", "選択してください", 0)

初期値を 2 と指定すると、開いたときに 2番目のメニューが選択さています。

画像4

マクロを記述する場合に、関数 f_メニュー(・・・) のような多くの関数があると、少ないコード(ローコード)でマクロを書くことができます。

このような関数を[日本語ローコード]として公開していますので、興味のある方は利用してください。(日本語ローコード YUGE

この note[Excel 業務アプリ大学]では、主に[日本語ローコード]を利用したマクロをご紹介いたします。

[日本語ローコード YUGE]をダウンロードする

[日本語ローコード YUGE]は、OneDrive の フォルダで公開しています。
ダウンロードするには、下の[One Drive]をクリックしてください。

画像5

[OneDrive]が開いたら、[日本語ローコードYUGE_Vxxx.xlsm]にチェックをつけます。

[ダウンロード]をクリックしてください。

画像6

ダウンロードしたファイルを開いて、利用することができます。

画像7

[開く]をクリックすると[日本語ローコード YUGE]が組み込まれた サンプルファイルを実行できます。

画像8

[日本語ローコード]を使う

ダウンロードした[日本語ローコード YUGE]を開きます。

画像9

[開発]タブの[Visual Basic]をクリックします。
標準モジュールの[ユーザーマクロ]を開きます。

標準モジュール[ユーザーマクロ]は、ユーザーが自由に編集できるマクロです。ここに、マクロを記述します。

画像10

標準モジュール[日本語ローコードYUGE]は、色々なローコード関数が準備されていますので、自由に利用することができます。

f_確認
f_クエリー表示
f_クエリー編集
f_シート印刷
f_シートコピー
f_シート削除
f_シート判定
f_シート追加
f_シート表示
f_シートメニュー
f_条件セル入力
f_条件マスター参照
f_条件日付入力
f_条件年月入力
f_セルコピー
f_選択
f_ダイアログ
f_ファイルオープン
f_ファイル判定
f_ブックオープン判定
f_メニュー

では、[業務メニューを開く]マクロを作成します。
[Enter]キーを押して記入する空白行を広げます。

画像11

[Sub 業務メニューを開く]とタイプして[Enter]を押します。

画像12

上のサンプルから[n = f_メニュー("業務メニュー", "業務経費報告書,売上管理表,在庫管理表", "選択してください", 0)]をコピペで貼り付けます。

画像13

カーソルを[業務メニューを開く]マクロの中に置いて[Sub/ユーザーフォーム]を実行します。

画像14

下図のように[業務メニュー]が、開きます。

画像15

[業務経費報告書]を開く

次回は、[ポップアップメニュー]を開いた後、[業務経費報告書]を選択して、[業務経費報告書.xlsx]ファイルを開くマクロを作ります。