• 締切済み

印刷範囲の設定で教えてください。

再三再四で申し訳ございません。 マクロで印刷範囲設定は ActiveSheet.PageSetup.PrintArea = "$B$1:$H65" と範囲を固定するのが一般的と思うのですが、 印刷範囲が利用者毎に相違するため 開始セル値を A8 セルに 最終セル達を A10 に置く形で 印刷範囲を任意変更可能にしたい場合には セル値で印刷範囲設定する方法を お教えくださいますよう 御願いいたします。

みんなの回答

  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.4

蛇足ですが。 一番最初に印刷範囲を範囲選択して Range("A8").Value = Selection.Address を実行してもらい、A8に印刷範囲を登録しておくと入力ミスによるエラーはなくなります。 そのうえで本来のマクロ実行時には ActiveSheet.PageSetup.PrintArea = Range("A8").Value とする方法もあります。

samchan
質問者

お礼

幾度も御迷惑を掛けましたのに御丁寧な配慮を頂戴し本当に助かりました。 CurrentRegion.Address 方式で藻掻いておりましたが 範囲指定の記入式で無事解決致しました。 御陰様で課員各自が必要な範囲の資料を簡単に設定し自由に入手出来るようになりました。 本当にありがとうございました。 拝

  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.3

> 形=開始位置と終了位置とを記載したセル値の形、で印刷させる範囲を確定させる 任意の値(セル番地)を該当セルA8とA10に入力してその値を基に範囲指定したいということですね。 ActiveSheet.PageSetup.PrintArea = Range("A8").Value & ":" & Range("A10").Value でいけると思いますがいかがでしょう。上記を実行する前にA8とA10がセル番地として正しいかどうかのチェックは必要ですね。

  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.2

> 開始位置と終了位置とを固定セル(A8とA10)に置いて 何の開始位置と終了位置なのか不明なのですが、印刷範囲を任意の範囲ということなのですよね。回答があった後でそれはすでに試しましたというのはやめましょう。最初に何を試してダメだったのか先に書いてください。 INPUTBOX で任意の範囲を入力させるとかも試しましたか。

samchan
質問者

補足

御無礼の段 深くお詫び致します。 お許しください。 質問で印刷範囲の開始位置と終了位置とをセルに置いた値でと記載してありますので 当該印刷範囲の開始位置と終了位置と御判断できるかと思っておりました。 質問致しました形=開始位置と終了位置とを記載したセル値の形、で印刷させる範囲を 確定させる形でのマクセル文章を御教授いただけますよう 御願いいたします。

  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.1

先に任意のセル範囲を選択してから ActiveSheet.PageSetup.PrintArea = Selection.Address を実行すると選択した範囲が印刷範囲になります。

samchan
質問者

補足

御指示ありがとうございます。 いただきました方法は試行済ですが、開始位置と終了位置とを固定セル(A8とA10)に置いて 印刷範囲を指定するマクロ文章を御教授いただけますよう 御願いいたします。

関連するQ&A

  • 印刷範囲を設定する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 マクロで変化する印刷範囲を設定したい

    複数年分集計した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

  • エクセル2007 印刷マクロ

    A1からE25までを印刷したいのですが,現在このようにしています。 ActiveSheet.PageSetup.PrintArea = "$A$1:$E$12" ActiveWindow.SelectedSheets.PrintOut Copies:=1 ActiveSheet.PageSetup.PrintArea = "$A$13:$E$25" ActiveWindow.SelectedSheets.PrintOut Copies:=1 これを,ActiveSheet.PageSetup.PrintArea = "$A$1:$E$25" にすると,1枚目と2枚目の区切りが自分の思うようになりません。 改ページプレビューを使って,ページ区切りを設定するのではなく, マクロで何とかしたいと考えています。 1枚目はA1:E12,2枚目はA13:E25に固定する方法を教えて下さい。

  • 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.シートに印刷ボタン作成して、印刷はできるのですが、印刷する前にプリンターの設定を変更する方法は無いのですか。

  • 【Excel】マクロで印刷範囲の設定

    Excel2003を使用しています。 マクロで印刷範囲を設定するコードを書きました。ページを追加するマクロを実行したときに一緒に実行するようにしているのですが、コードで指定している範囲外にデータがあるせいか、その列まで印刷範囲に設定されてしまいます。このデータは印刷範囲には入れたくないのですが、どうしたらいいでしょうか? ちなみに、印刷範囲部分のコードは  .PageSetup.PrintArea = Range(Cells(1, 1), Cells(j, 24)) Y1セルとZ1セルにデータが入力されています。マクロを実行すると、印刷範囲がA1:Zjに設定されます。印刷範囲はX列までに設定したいのですが、可能でしょうか?よろしくお願いします。

  • エクセルの範囲指定マクロ

    エクセル2002のマクロで印刷範囲指定を例えば ActiveSheet.PageSetup.PrintArea = "A1:E60" と指定した時に、"A1:E60"の”1”と”60”を変数にする事はできますか。

  • AccessにてExcelの印刷範囲を設定したい

    お世話になっております。 ご存知の方がいらっしゃいましたら、お手数ですがご教授願えますでしょうか? AccessからデータをExcelへエクスポートした際、 印刷範囲の指定を行いたいのですが、うまくいきません。 データを指定したセルにセットした後、 ActiveSheet.PageSetup.PrintArea = "$A$1:$I$30" と指定しているのですが、 「オブジェクト変数またはWithブロック変数が設定されていません」 とエラーが出てしまいます。 オブジェクトブラウザで確認すると、 ActiveSheetはExcel.Globalのメンバとなっていますが、 Excel.Globalから書き込んでも同じエラーが出てしまいます。 もしかしてAccess上ではExcelの印刷範囲は指定できないのでしょうか? お手数ですが宜しくお願いいたします。

  • 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がきちんと選択されるのですが、印刷範囲ではなぜこのようなことになってしまうのでしょうか。

  • セルを移動して印刷したい。

    Win2003 S/P3 VB6.5を使用しています。 月の勤務表を作成しています。印刷のところで悩んでいます。 作成した表の内、印刷したいセルはA1からAQ22と、跳んで、A32からAQ38の範囲。途中のA23からAQ30は印刷したくないのです。 なおかつ、1頁分の印刷範囲はA1からAQ30までですので、A32からAQ38の範囲をA23からAQ30のエリアに移動して、印刷したいのです。 また、印刷したくないA23からAQ30の範囲のデータはそのまま残しておきたい。他のシートへコピーしておく方法は行いたくありません。 下記のように作成しましたが、印刷プレビューにはA1からAQ22だったり、A32からAQ38の範囲だけでした。 解りにくいかもしれませんが、要は「あるセル範囲に、別のセル範囲を移動して印刷、印刷前の元データはそのまま残しておきたいのです。 Sub print_Click() 印刷範囲1 = "$A$1:$AQ$22" 印刷範囲2 = "$A$32:$AQ$38" ActiveSheet.PageSetup.PrintArea = 印刷範囲1 ActiveSheet.PageSetup.PrintArea = 印刷範囲2 ' Range(印刷範囲1).Select ' Range(印刷範囲2).Select ' ActiveSheet.PageSetup.PrintArea = ActiveCell.CurrentRegion.Address Stop End Sub また、この印刷マクロ(Sub print_Click())はフォームコントロールのボタン機能から呼び出していますが、通常のメニューバーの印刷、印刷プレビューとどう連動しているのでしょうか? 以上、助けてください。

  • 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