- ベストアンサー
エクセルの印刷指定
お世話になります。 エクセルのシートが10枚あるとします。 Sheet1の名前は「指定表」Sheet2以降は「1枚目・・・9枚目」と変更してあります。 VBAで「指定表」のA1に「1」と入力しマクロの登録ボタンを押すと、「1枚目」が出力され、以下「2」と入力し登録ボタンを押すと「1枚目」と「2枚目」が出力される、「3」なら「1~3枚目」が出力される。 と言うように入力された数値の値のシートの枚数が出るようなマクロをご教示ください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
例えばこんなマクロでも可能です 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 でも質問は「たとえば」で書かれているように感じますので、実際には修正が必要かもしれません。それはご自身でお願いします。
その他の回答 (1)
- hiro2803
- ベストアンサー率50% (20/40)
一例としては次のようになります。この 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と入力した場合にもエラーが出て停止しますので、セルの入力規則などでシート名に指定した数値より大きな数値が入力できないように工夫して下さい。
お礼
お忙しい中、ご回答ありがとうございます。 注意点を参考にVBAの完成度を高めて行きたいと思います。
お礼
お忙しい中、ご回答ありがとうございます。 確かに質問では単純化するために、「たとえば」で書きましたが、このご解答で充分対応可能です。