• ベストアンサー

エクセル2002VBAでselect caseについてご教授ください

Sub macro() x = Application.InputBox("数値を入力! 1=東京、2=大阪", Type:=1) Select Case x Case 1 指定フォルダにある別ブック「東京」を開き、そのブック内の   シート名「東京」に関しての処理   Case 2  指定フォルダにある別ブック「大阪を開き」、そのブック内の    シート名「大阪」に関しての処理 End select  「そのあとの作業」がつづきます End sub  このようなマクロを組んでいます インプットボックスで 1または2を入れると それに応じた作業をしてくれますが それ以外の数字を入力すると エラーが起きます (指定フォルダ内に「東京、「大阪」以外のブックが存在しないので) これを避けるため「1」「2」以外の数字を入力した場合に 再度インプットボックスに戻って入力を促すように 組みたいのですが どうしたらよろしいでしょう?

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

  • ベストアンサー
  • lasichi
  • ベストアンサー率31% (122/389)
回答No.1

Select Case x Case 1 指定フォルダにある別ブック「東京」を開き、そのブック内の   シート名「東京」に関しての処理   Case 2  指定フォルダにある別ブック「大阪を開き」、そのブック内の    シート名「大阪」に関しての処理 case else exit sub End select  「そのあとの作業」がつづきます End sub  でいいんじゃないでしょうか?

ennkai
質問者

お礼

失礼しました 質問文の内容を間違っていました 改めて質問させていただききます 一度締め切らせていただき 回答順にポイントをおつきいたします 大変失礼いたしました

ennkai
質問者

補足

さっそくの回答ありがとうございます 補足いたします 必ず1か2の数字を入力させたいのですが 誤解を招く質問をしてしまい、言葉足らずで申し訳ありませんでした。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • to_suzu
  • ベストアンサー率40% (2/5)
回答No.3

Select Case x Case 1 指定フォルダにある別ブック「東京」を開き、そのブック内の   シート名「東京」に関しての処理 Case 2  指定フォルダにある別ブック「大阪を開き」、そのブック内の    シート名「大阪」に関しての処理 Case Else   「ここでメッセージボックス」を出して、   入力を促す。   call macro ← もう一度このサブルーチンを呼び出す。 End select  「そのあとの作業」がつづきます End sub でいいんじゃないでしょうか?

ennkai
質問者

お礼

失礼しました 質問文の内容を間違っていました 改めて質問させていただききます 一度締め切らせていただき 回答順にポイントをおつきいたします 大変失礼いたしました

すると、全ての回答が全文表示されます。
  • lasichi
  • ベストアンサー率31% (122/389)
回答No.2

No1です。 case else msgbox "正しい値を入力してください" exit sub ではどうですか? 必ず1か2を入力させたい→1か2以外の場合は処理をしないという感じで理解していました。。。

すると、全ての回答が全文表示されます。

関連するQ&A