- ベストアンサー
エクセルの印刷範囲をマクロで決めたいです。
以前こちらで、選択範囲を印刷範囲にする方法を教えていただきました。 選択範囲は別の項目で決定されています。 With Selection Vert = .Rows.Count Side = .Columns.Count Print_range = .Cells(1, 1).Address & ":" & .Cells(Vert, Side).Address End With With ActiveSheet.PageSetup .PrintArea = Print_range .PaperSize = xlPaperA3 .Orientation = xlPortrait End With 以上の記述で無事選択範囲が印刷範囲になりました。 次に、選択範囲が何種類かのパターンに絞れる事がわかったので パターンごとに拡大縮小印刷の%も決定しようと Select Case True Case Masu = 10 ActiveSheet.PageSetup.Zoom = 100 Case Masu = 11 ActiveSheet.PageSetup.Zoom = 115 Case Masu = 12 ActiveSheet.PageSetup.Zoom = 123 Case Else ActiveSheet.PageSetup.Zoom = 100 End Select を追加したところエラーになります。 何がよくないのかさえわかりません。 よい解決策はないものでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>.PrintArea = Print_range にエラーがあるようで ということであれば、Print_rangeに不適当な値が入っていることになりませんか? 下記の●のMsgboxで確認してみたらどうでしょうか。 With ActiveSheet.PageSetup ● MsgBox Print_range .PrintArea = Print_range .PaperSize = xlPaperA3 .Orientation = xlPortrait End With それから、 Select Case True Case Masu = 10 ActiveSheet.PageSetup.Zoom = 100 Case Masu = 11 ActiveSheet.PageSetup.Zoom = 115 End Select この書き方は間違いではありませんよ。 今回のような場合においては一般的な使い方でないというだけです。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17070)
質問表題が羊頭狗肉。質問内容を表してない。前質問の表題では。 Select Case 文の誤解。VBの解説書WEBを読むべし。 Select Case 項目 Case (項目の)値 End Select
- mshr1962
- ベストアンサー率39% (7417/18945)
Select Case Masu Case 10 ActiveSheet.PageSetup.Zoom = 100 Case 11 ActiveSheet.PageSetup.Zoom = 115 Case 12 ActiveSheet.PageSetup.Zoom = 123 Case Else ActiveSheet.PageSetup.Zoom = 100 End Select
補足
ご指摘ありがとうございます。 間違っていました。 ただ、どうも原因はここではないようです。 その手前の .PrintArea = Print_range にエラーがあるようで途方にくれています。
お礼
ご回答ありがとうございます。 ●行を追加してみました。 どういう訳か「Print_range」には意図した値が入っていてエラーも起きなくなってしまいました。 不具合が再現しないと検証も難しいですね。 メッセージボックスは動作を止めて確認できるので この方法は便利ですね。 これからもお世話になりそうです。 ありがとうございます。