• ベストアンサー

Excel マクロ右下末端までの範囲指定

Excel 2007を使っております。 VBAで、左上A1から、文字が入っている右下末端(都度行はかわる。L列であるというのは変わりませんが)までの範囲指定をして、印刷範囲に指定するには、どうすればよいのでしょうか。 以下、記録マクロでやっていて、仮に1000行だと、このような感じになっています。 Range("A1:L1000").Select Range("L1").Activate ActiveSheet.PageSetup.PrintArea = "$A$1:$L$1000"

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

ActiveSheet.PageSetup.PrintArea = "A1:" & "L" & Range("L" & Rows.Count).End(xlUp).Row になります。

spongetak
質問者

お礼

ありがとうございます!

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

WEB(Google照会)でCurrentRegionやUsedRangeで照会して、それぞれ捉える内容に特徴があるから使い分けてはどう。 検索語は、「VBA CurrentRegion」など。 L列のデータ最終行をEnd(xlUp).Rowで求める手もあるが、これも特徴がある。 VBAの常識なので、自分で調べて、テストして納得すべきです。 ーー またVBAをやるなら、VBAの本をたくさん購入は無理だろうから、WEB照会を活用すべきだ。

spongetak
質問者

お礼

ありがとうございます!

関連するQ&A

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

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

  • 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

  • Excelマクロ 範囲指定について教えて下さい。

    ソフトから書き出したテキスト形式のファイルを、エクセルで読み込んで範囲を指定し、 他のブックのシートに貼り付けるという、いつもの作業をマクロで簡素化しようと、 マクロ初心者の私は、マクロの自動記録と、インターネットで調べたりで作っているのですが、 範囲指定でつまづいています。 読込んだファイルには、A列からH列までデータがあります。 行のほうは、その都度変わります。 A列を下に見ていくと、途中<小計>という文字が何度か出てきます。 左上端がA4として、そこから初めての<小計>がある行の1段上の行までで 範囲指定させることは出来るのでしょうか? 例えば、A20に<小計>があるなら、指定範囲を A1:H19 という具合に するのはどうしたらいいですか? 下のマクロでは、H列の右下端まで全部範囲指定するので、ダメですね。 Dim 左上端 As String, 右下端 As String Windows("aaa.txt").Activate Worksheets("aaa").Select 左上端 = "A4" 右下端 = Range(左上端).SpecialCells(xlLastCell).Address Range(左上端 & ":" & 右下端).Select Selection.Copy Windows("bbb.xls").Activate Sheets("bbb").Select Range("A1").Select ActiveSheet.Paste Application.CutCopyMode = False Excel2003を使っています。 よろしくお願いします。

  • EXCELで印刷範囲指定

    マクロの記録で印刷範囲の指定を考えています。 以下のマクロを記録しました。 Sub 印刷範囲指定() Cells.Select With Selection.Font .Name = "MS Pゴシック" .Size = 9 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Range("A1").Select With ActiveSheet.PageSetup .PrintTitleRows = "$6:$8" .PrintTitleColumns = "" End With ActiveSheet.PageSetup.PrintArea = "" With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "&A" .RightHeader = "" .LeftFooter = "" .CenterFooter = "&P / &N ページ" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0.78740157480315) .RightMargin = Application.InchesToPoints(0.78740157480315) .TopMargin = Application.InchesToPoints(0.984251968503937) .BottomMargin = Application.InchesToPoints(0.984251968503937) .HeaderMargin = Application.InchesToPoints(0.511811023622047) .FooterMargin = Application.InchesToPoints(0.511811023622047) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .PrintQuality = 600 .CenterHorizontally = False .CenterVertically = False .Orientation = xlLandscape .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 100 End With ActiveWindow.View = xlPageBreakPreview ActiveWindow.LargeScroll ToRight:=1 ActiveSheet.PageSetup.PrintArea = "$A$1:$I$50" ActiveWindow.View = xlNormalView Columns("B:I").Select Columns("B:I").EntireColumn.AutoFit Range("A1").Select End Sub やりたいことは ・まず最初にcsvファイルをxlsファイルに取り込む機能をつけたい。 ・取り込んだcsvをシートの一番最後につける。 そのファイルを以下のように設定していきたいです。 ・列の印刷範囲を数ある列のうちA列からI列までとする。 ・行の印刷範囲をA列の最終行までとしたい。 上記マクロでここを修正すればいいというところがあれば教えてください。。

  • エクセルの印刷範囲をマクロで決めたいです。

    以前こちらで、選択範囲を印刷範囲にする方法を教えていただきました。 選択範囲は別の項目で決定されています。 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 を追加したところエラーになります。 何がよくないのかさえわかりません。 よい解決策はないものでしょうか?

  • 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

  • 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マクロ:変数でセル範囲指定

    マクロの迷い人です。 Excelの表をマクロで印刷しようと思っています。 行の数が毎回違うため、最終セルもその都度指定しなければなりません。 A1 B1 A2 B2 A3 B3 A4 B4 この例で、A5 B5 以降は空セルとします。 印刷範囲を Range("A1:B4")と書かずに、そのときどきのアクティブセルを変数に代入し、変数を使って範囲指定したいのです。 Sub MacroTest () Dim a As Variant Dim b As Variant Range("B1").Activate Do While a <> 0 ActiveCell.Offset(1, 0).Activate '空白でなければ一つ下に移る a = ActiveCell.Value Loop ActiveCell.Offset(-1, 0).Activate '上の行に移る b = ActiveCell.Value Range("A1:"& b).Select End Sub こうしてみましたがダメでした。 デバッグの方法がわからないので教えて下さい。よろしくお願いします。

  • EXCEL VBA でアドレス指定

    ActiveSheet.PageSetup.PrintArea = の右辺に、他から計算された変数のアドレスを指定したいのですが、Range(Cell1,Cell2) ではうまくいかないのですが、何かいい方法はありませんでしょうか?

専門家に質問してみよう