• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数のマクロを条件付きで実行する)

複数のマクロを条件付きで実行する方法

このQ&Aのポイント
  • 会社でエクセル2003を使っている場合、複数のマクロを条件付きで実行する方法を知りたいです。
  • 縦にデータを入力する表を作成し、データを別シートに転記して印刷するマクロを作りました。
  • もう一つのマクロでは、未入力のセルがあればメッセージボックスで知らせ、データを入力するまで同じシートに留まり、未入力がなければ別シートに移動します。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>教えていただいたコードを実行してみますと、未入力があっても別シートへ移ってしまいます。 ということは、回答したのとは何か違うマクロで、勝手に回答したのとは別の事をしています。 では 1.マクロは次に変更し実行する sub 印刷前点検と印刷()  worksheets("Sheet1").activate  if range("A1") = "" then   msgbox "A1が未入力です"   end  end if  if range("A2") = "" then   msgbox "郵便番号が未入力です"   end  end if  if range("A3") = "" then   msgbox "A3が未入力です"   end  end if  msgbox "全てのデータが記入されました" & vblf & "シート2を印刷します"  worksheets("Sheet2").printout end sub 2.他のマクロはすべて停止する とします。

s1023
質問者

お礼

ありがとうございます。 補足の質問をさせていただいていたのですが、keithinさんのおかげで何とか形になりました。 本当にありがとうございました。

s1023
質問者

補足

何度もすいません。 「ど素人でマクロに手を出すな」と思われるかもしれませんが… コピーして貼り付けているのですが…どうしてもだめなんです。 >2.他のマクロはすべて停止する と書いていただいているのですが、停止するというのはどの様にすればいいのでしょうか? 本当にすいません

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

ALT+F11を押す 挿入メニューから標準モジュールを挿入する 下記をコピー貼り付ける sub 印刷前点検と印刷()  worksheets("Sheet1").activate  if range("A1") = "" then   msgbox "A1が未入力です"   exit sub  end if  if range("A2") = "" then   msgbox "郵便番号が未入力です"   exit sub  end if  if range("A3") = "" then   msgbox "A3が未入力です"   exit sub  end if  msgbox "全てのデータが記入されました" & vblf & "シート2を印刷します"  worksheets("Sheet2").printout end sub マクロを実行する。

s1023
質問者

補足

早速のアドバイスありがとうございます。 教えていただいたコードを実行してみますと、未入力があっても別シートへ移ってしまいます。 私としては、未入力セルがあるときはメッセージボックスで「未入力があります」と知らせて、シートは移動せずデータを入力し、その後再度クリックして未入力のセルがなければ別シートへ移動する。という形にしたいのですが… そのような条件は可能でしょうか?

関連するQ&A