• ベストアンサー

エクセル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

専門家に質問してみよう