- 締切済み
メッセージボックスでyesならマクロ1noならマクロ2を入れたい
メッセージボックスで エクセルの表で集計した「数量を○○個でokですか?」という質問をして 「yes」なら登録したマクロ1を実行。 「no」なら「数量を確認してやりなおし」という表示をしたいのですが 可能でしょうか?集計の行は毎回かわります。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
こんなの基礎的なことではないか。 MSGBOX の戻り値(応答結果)を IFステートメント(文)で判別する Ok(はい)の場合 実行するモジュールに飛ぶ それには(「飛ぶ」とは) Call モジュール名 と記述 または モジュール名のみ記述 でよい。 「いいえ」なら別のモジュールに飛ぶ。 ーー Sub test01() y = MsgBox("OKですか", 4) MsgBox y If y = 6 Then test02 Else test03 End If End Sub ーー Sub test02() MsgBox "はい、のルーチン" End Sub ーー Sub test03() MsgBox "いいえ、のルーチン" End Sub ーー MsgBox("OKですか", 4)の4や If y = 6 Thenの6の意味や他の値はWEBで調べること。 検索語「Msgbox VB」 http://homepage1.nifty.com/rucio/main/technique/MsgBox.htm ==== >集計の行は毎回かわります。 集計が出ている行は、どのようにして判別するのか。 それは質問者が説明することだ。 集計はどのようにして出しているのか。それを説明しないとだめ。 関数、プログラムで足しこみ、集計を出すデータの終わりである察知はどうしているのか。決まった行か。 プログラムを考えるものは条件(何を基にして、どういうタイミングで、その処理を実行するか)をいつも考えるものだ。
- popesyu
- ベストアンサー率36% (1782/4883)
集計云々は意味が分からないのでyes/noのところだけ If MsgBox("数量を○○個でokですか?", vbYesNo) = vbYes Then Call マクロ1 Else MsgBox ("数量を確認してやりなおし") End If 細かい使い方はヘルプに載っています。
補足
回答ありがとうございます。また勉強不足、説明不足で申し訳ありません。 集計は 商品名 数量 aaa 1 aaa 1 集計 2 ←subtotalになってます。 bbb 1 bbb 2 集計 3 総計 5 ←この全ての総計部分をmsgboxにいれたいんです。 総計行は毎回最終の行になります。 よろしくお願いいたします。