• ベストアンサー

エクセルの印刷指定

お世話になります。 エクセルのシートが10枚あるとします。 Sheet1の名前は「指定表」Sheet2以降は「1枚目・・・9枚目」と変更してあります。 VBAで「指定表」のA1に「1」と入力しマクロの登録ボタンを押すと、「1枚目」が出力され、以下「2」と入力し登録ボタンを押すと「1枚目」と「2枚目」が出力される、「3」なら「1~3枚目」が出力される。 と言うように入力された数値の値のシートの枚数が出るようなマクロをご教示ください。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

例えばこんなマクロでも可能です Sub Macro1() Dim idx As Integer If IsNumeric(Sheets("指定表").Range("A1").Value) Then   For idx = 2 To Sheets("指定表").Range("A1").Value + 1     If idx <= Worksheets.Count Then       Worksheets(idx).PrintOut     End If   Next idx End If End Sub でも質問は「たとえば」で書かれているように感じますので、実際には修正が必要かもしれません。それはご自身でお願いします。

syuuchan
質問者

お礼

お忙しい中、ご回答ありがとうございます。 確かに質問では単純化するために、「たとえば」で書きましたが、このご解答で充分対応可能です。

その他の回答 (1)

  • hiro2803
  • ベストアンサー率50% (20/40)
回答No.2

一例としては次のようになります。この subPrintOut() を呼び出して下さい。 -----ここから Sub subPrintOut() Dim i As Integer For i = 1 To ThisWorkbook.Worksheets("指定表").Cells(1, 1) ThisWorkbook.Worksheets(i & "枚目").PrintOut Next End Sub ----ここまで 注意点としては、シート名「n枚目」のnに使う数字は半角でなければ動きません。また、9枚目までしか作成していないのに指定表シートに10と入力した場合にもエラーが出て停止しますので、セルの入力規則などでシート名に指定した数値より大きな数値が入力できないように工夫して下さい。

syuuchan
質問者

お礼

お忙しい中、ご回答ありがとうございます。 注意点を参考にVBAの完成度を高めて行きたいと思います。

関連するQ&A

専門家に質問してみよう