• 締切済み

メッセージボックスでyesならマクロ1noならマクロ2を入れたい

メッセージボックスで エクセルの表で集計した「数量を○○個でokですか?」という質問をして 「yes」なら登録したマクロ1を実行。 「no」なら「数量を確認してやりなおし」という表示をしたいのですが 可能でしょうか?集計の行は毎回かわります。 よろしくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

こんなの基礎的なことではないか。 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 ==== >集計の行は毎回かわります。 集計が出ている行は、どのようにして判別するのか。 それは質問者が説明することだ。 集計はどのようにして出しているのか。それを説明しないとだめ。 関数、プログラムで足しこみ、集計を出すデータの終わりである察知はどうしているのか。決まった行か。 プログラムを考えるものは条件(何を基にして、どういうタイミングで、その処理を実行するか)をいつも考えるものだ。

choco0903
質問者

補足

回答ありがとうございます。また勉強不足、説明不足で申し訳ありません。 集計は 商品名 数量 aaa  1 aaa  1 集計   2 ←subtotalになってます。 bbb  1 bbb  2 集計   3 総計   5 ←この全ての総計部分をmsgboxにいれたいんです。 総計行は毎回最終の行になります。 よろしくお願いいたします。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

集計云々は意味が分からないのでyes/noのところだけ If MsgBox("数量を○○個でokですか?", vbYesNo) = vbYes Then Call マクロ1 Else MsgBox ("数量を確認してやりなおし") End If 細かい使い方はヘルプに載っています。

関連するQ&A