【Excel】マクロで印刷範囲の設定
- Excel2003を使用しています。マクロで印刷範囲を設定するコードを書きました。コードで指定している範囲外にデータがあるせいか、その列まで印刷範囲に設定されてしまいます。このデータは印刷範囲には入れたくないのですが、どうしたらいいでしょうか?
- 印刷範囲の設定で問題が発生しています。マクロでページを追加する際に、コードで指定している範囲外のデータも印刷範囲に含まれてしまいます。このデータを印刷範囲から除外する方法を教えてください。
- Excel2003を使用しています。マクロで印刷範囲を設定するコードを書きましたが、指定している範囲外のデータも印刷範囲に含まれてしまいます。印刷範囲から除外する方法を教えてください。
- ベストアンサー
【Excel】マクロで印刷範囲の設定
Excel2003を使用しています。 マクロで印刷範囲を設定するコードを書きました。ページを追加するマクロを実行したときに一緒に実行するようにしているのですが、コードで指定している範囲外にデータがあるせいか、その列まで印刷範囲に設定されてしまいます。このデータは印刷範囲には入れたくないのですが、どうしたらいいでしょうか? ちなみに、印刷範囲部分のコードは .PageSetup.PrintArea = Range(Cells(1, 1), Cells(j, 24)) Y1セルとZ1セルにデータが入力されています。マクロを実行すると、印刷範囲がA1:Zjに設定されます。印刷範囲はX列までに設定したいのですが、可能でしょうか?よろしくお願いします。
- rx-z5815
- お礼率86% (485/559)
- オフィス系ソフト
- 回答数1
- ありがとう数3
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
印刷範囲の指定は、 ….PrintArea = "$A$1:$C$5" のように、「A1形式の参照」で行わなければいけません。 A1形式の参照は、Address プロパティで得られるので、 .PageSetup.PrintArea = Range(Cells(1, 1), Cells(j, 24)).Address とするとよいでしょう。 Visual Basic のヘルプでは、「PrintArea プロパティ」のところに説明と address プロパティを使った使用例があります。
関連するQ&A
- VBA 印刷範囲設定がうまくいかない
変数cntに値を代入し印刷範囲が変わるという事を、以下のコードで実行しようとしています。 Sub Macro1() cnt = 9 Sheets("A").Activate 範囲 = Sheets("A").Range(Cells(1, 1), Cells(33, cnt + 1)) ActiveSheet.PageSetup.PrintArea = 範囲 上記のコードですと、シート「A」のセルA1~J33までが印刷範囲になると思ったのですが、実行すると全く関係ないセルまで印刷範囲になってしまいます。 「A」シートには罫線やデータが入力されているセルが他にもあり、どうやらそれらのセルも同じく印刷範囲とされてしまっているようなのです。(例えばK列に罫線が引いてあり、セルに色がついているとK列まで印刷範囲になる) Sheets("A").Range(Cells(1, 1), Cells(33, cnt + 1)).select とすれば、望みどおりのセル範囲A1~J33がきちんと選択されるのですが、印刷範囲ではなぜこのようなことになってしまうのでしょうか。
- ベストアンサー
- その他MS Office製品
- EXCEL マクロで変化する印刷範囲を設定したい
複数年分集計したEXCELの表の中からある年(度)のデータをマクロで印刷範囲を設定したい!です。 ・EXCELのシートはA~AK列までのデータです。 ・A4~AK8までが「タイトル行」です。 ・A1列に「2014/7/1」等といった日付のデータが入っています。 ・上記「タイトル行」とある年(度)のデータをマクロで自動に選択して 印刷範囲を設定したいです。下記は、2014年のデータを印刷範囲とした マクロです。どの部分を修正すればある年のデータを抽出するマクロに できるでしょうか?教えてください。宜しくお願いします。 Sub 印刷範囲() ' ' 印刷範囲 Macro ' 印刷範囲を指定する ' ' Range("A4:AK8").Select ActiveSheet.PageSetup.PrintArea = "$A$4:$AK$8" ActiveWindow.ScrollColumn = 38 ActiveWindow.ScrollColumn = 2 ActiveWindow.SmallScroll Down:=-39 Range("A170:AK220").Select ActiveSheet.PageSetup.PrintArea = "$A$4:$AK$8,$A$170:$AK$220" Range("U208").Select End Sub
- 締切済み
- 財務・会計・経理
- 印刷範囲を設定するvbaコード
エクセルシートの印刷範囲を設定するvbaコードで Sub Macro1() With ActiveSheet.PageSetup .PrintArea = "$A$1:$c$10" End With End Sub としてるのですが、 "$A$1:$c$10"の部分を Range(Cells(1, 1), Cells(10,3)) 形式でやりたいのですが、 うまくできません。 Sub Macro1() With ActiveSheet.PageSetup .PrintArea = Range(Cells(1, 1), Cells(10,3)) End With End Sub としても、全部が印刷範囲として選択されてしまいます。 というか、印刷範囲が設定されません。
- ベストアンサー
- Excel(エクセル)
- Excel2003 VBAで印刷 セル指定
よろしくお願いします。 ボタン5をクリックしてある範囲を印刷したいのですが、私が知っているものはセル指定でActiveSheet.PageSetup.PrintArea = Range("A90:K130") であれが印刷可能なのですが最後の行までにしたいのですがどうしてもうまくいきません。 ActiveSheet.PageSetup.PrintArea = Range(Cells(90, 1), Cells(r, 11)) それと同時に11列全部(文字は小さくてもいいのですが)一枚に印刷したのですが よろしくお願いします。 Private Sub CommandButton5_Click() res = MsgBox("決済記録を印刷します", vbYesNo + vbQuestion) If res = vbYes Then r = Range("A65536").End(xlUp).Row + 1 'Range(Cells(90,1),Cells(r,11)) '印刷したい範囲 ActiveSheet.PageSetup.PrintArea = Range("A90:K130") ActiveSheet.PrintOut preview:=True End If End Sub
- ベストアンサー
- オフィス系ソフト
- 印刷範囲の設定がうまくいきません。教えてください
エクセルのマクロで、データの5列目の最終行を探し、その行の一列目から右に12列、上に20行の範囲を印刷したいのですが、下記のように記述すると、一列目の一行目から12列目の最終行まで印刷されてしまいます。 どのように記述すればよいのでしょうか。 Cells(ActiveSheet.Rows.Count, 5).End(xlUp).Offset(0).Select ActiveCell.Offset(0, -4).Range("a1").Select 上 = ActiveCell.Row - 20 右 = 14 Range(ActiveCell, Cells(上, 右)).Select Range(ActiveCell, Cells(上, 右)).Activate ActiveSheet.PageSetup.PrintArea = ActiveCell.CurrentRegion.Address ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
- ベストアンサー
- Visual Basic
- Excelマクロで印刷範囲の指定をしたい
Excelで一覧表を作成し、 『印刷A3』と『印刷A4』というボタンを作り、 それぞれ印刷範囲が異なるようにマクロを組みたいと思い、『印刷A3』の場合は下記のマクロで問題ありませんでした。 【印刷A3】 ------------------------------------------------- Sub 印刷A3_Click() Worksheets(7).PageSetup.PrintArea = _ Range("A6").CurrentRegion.Address With Worksheets(7).PageSetup .Orientation = xlLandscape .PaperSize = xlPaperA3 .Zoom = 63 End With Worksheets(7).PrintOut Preview:=True End Sub ------------------------------------------------- セルA6以降の入力されているセルを選択できるのですが、『印刷A4』の場合は、列の範囲を23列までとし、23列目以降は印刷範囲外としたいです。 (列は最大で33列まであります) 行は『印刷A3』と同じように、入力されている全てのセルを範囲としたいです。 マクロ初心者のため、教えていただけると助かります。 よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- 印刷範囲の設定で教えてください。
再三再四で申し訳ございません。 マクロで印刷範囲設定は ActiveSheet.PageSetup.PrintArea = "$B$1:$H65" と範囲を固定するのが一般的と思うのですが、 印刷範囲が利用者毎に相違するため 開始セル値を A8 セルに 最終セル達を A10 に置く形で 印刷範囲を任意変更可能にしたい場合には セル値で印刷範囲設定する方法を お教えくださいますよう 御願いいたします。
- 締切済み
- Windows 7
- VBAの範囲印刷設定を修正したいのですが
VBAの初心者です。詳しく教えてください。 1.下記のVBAでシートを非表示にしたときに実行時エラー1004が出るのですが どうしたらよいのですか。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー Sub printappointedrange() Worksheets("シート1").Activate Range("A1:AB42").Select 'セル範囲の選択 With ActiveSheet .PageSetup.PrintArea = Selection.Address '印刷範囲の指定 .PrintOut '印刷 .PageSetup.PrintArea = False '印刷範囲のクリア End With End sub ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 2.シートに印刷ボタン作成して、印刷はできるのですが、印刷する前にプリンターの設定を変更する方法は無いのですか。
- ベストアンサー
- オフィス系ソフト
- エクセルの印刷範囲をマクロで決めたいです。
以前こちらで、選択範囲を印刷範囲にする方法を教えていただきました。 選択範囲は別の項目で決定されています。 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 を追加したところエラーになります。 何がよくないのかさえわかりません。 よい解決策はないものでしょうか?
- ベストアンサー
- オフィス系ソフト
- Excel マクロ右下末端までの範囲指定
Excel 2007を使っております。 VBAで、左上A1から、文字が入っている右下末端(都度行はかわる。L列であるというのは変わりませんが)までの範囲指定をして、印刷範囲に指定するには、どうすればよいのでしょうか。 以下、記録マクロでやっていて、仮に1000行だと、このような感じになっています。 Range("A1:L1000").Select Range("L1").Activate ActiveSheet.PageSetup.PrintArea = "$A$1:$L$1000"
- ベストアンサー
- Excel(エクセル)
お礼
>印刷範囲の指定は、 ….PrintArea = "$A$1:$C$5" のように、「A1形式の参照」で行わなければいけません。 知りませんでした。。。 マクロ勉強中なので、これでまたひとつ覚えました(^^) 早速、教えていただいたとおりにコードを修正したところ、希望通りのことができました! 回答ありがとうございました。