A1・・・・・GR1 までに項目と日にちが入っています。
この下、つまり2行目以下にはところどころデータが入っています。
例えば
2行目以下にデータのある一番右の列がAW列目
2行目以下にデータのある一番下の行が7行目
である場合、印刷範囲をA1:AW7という範囲で印刷設定したいのですが、
まったくわかりません。今まで、サイトを参考にCurrentRegionで印刷
設定を自動でしていたのですが、それでは対応できないようで質問に
参りました。教えてください、よろしくお願いします。
No.3ベストアンサー
- 回答日時:
VBAでやるなら、まどろっこしいが、各行各列について、最下、最右の最大値を行や列で、総当りで探す。
Sub test01()
retu = 26 'Z列まで
Gyou = 100 '100行まで
c = 1
r = 1
For i = 1 To Gyou
For j = 1 To retu
ri = Cells(Gyou, j).End(xlUp).Row
r = WorksheetFunction.Max(r, ri)
Next j
cj = Cells(i, retu).End(xlToLeft).Column
c = WorksheetFunction.Max(c, cj)
Next i
Range(Cells(1, 1), Cells(r, c)).Select
End Sub
というロジックになるのかな。
ーー
データの入りそうな最大限を適当に見繕って、それに修正してください。
上記コードは範囲指定だけのコード。
印刷範囲にするなら
Range(Cells(1, 1), Cells(r, c)).Select
がRange(Cells(1, 1), Cells(r, c)).PrintOut
となる。
No.4
- 回答日時:
こんにちは。
CurrentRegion では 1行目まで拾ってしまうし、UsedRange では値のない
セル書式のみのセルまで拾ってしまう、SpecialCells(xlCellTypeLastCell)
も同様....ということでしょうか?
Find メソッドを利用して最後のセルを探すとか。
Sub Sample()
Dim r As Range
With Worksheets("Sheet1")
' // 2~シート最終行の範囲で最後のセルを探す
Set r = FindLastCell(Range(.Rows(2), .Rows(.Rows.Count)))
If r Is Nothing Then
MsgBox "2行目以降にデータがない"
Else
.PageSetup.PrintArea = "$A$1:" & r.Address
End If
End With
Set r = Nothing
End Sub
' // 指定範囲の値のある最後のセルを返す
Public Function FindLastCell(ByVal rSearch As Range) As Range
Dim r As Long, c As Long
On Error GoTo Err_
r = rSearch.Find(What:="*", LookIn:=xlValues, _
SearchDirection:=xlPrevious, _
SearchOrder:=xlByRows).Row
c = rSearch.Find(What:="*", _
SearchDirection:=xlPrevious, _
SearchOrder:=xlByColumns).Column
Set FindLastCell = rSearch.Parent.Cells(r, c)
Bye_:
Exit Function
Err_:
Set FindLastCell = Nothing
Resume Bye_
End Function
No.2
- 回答日時:
>今まで、サイトを参考にCurrentRegionで印刷設定を自動でしていたのですが、
>それでは対応できないようで質問に参りました。
この部分を”どのようにしていたけどダメだった”のか、元のコードと状況を提示してみるとか?
憶測ですけど、空白列と空白行がどこかにあるのかな?
UsedRangeを使うとか。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAで複数のシート印刷設定 1 2022/09/07 12:03
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
- Excel(エクセル) Excel VBAプルダウンの値を変えながら2枚ずつ印刷する方法? 4 2022/05/27 13:04
- Visual Basic(VBA) マクロについて教えてください。 3 2023/06/09 17:37
- Excel(エクセル) エクセルシートのPDFでの保存 2 2022/09/06 13:05
- Visual Basic(VBA) 改ページ 2 2023/03/10 21:29
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Visual Basic(VBA) マクロについて教えてください 2 2023/06/09 16:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセル マクロ オートフィ...
-
結合されたセルをプルダウンの...
-
[EXCEL]ボタン押す→時刻が表に...
-
罫線の斜線を自動で引くマクロ
-
Excel グラフのプロットからデ...
-
アクティブになっている行をマ...
-
エクセルマクロで偶数行(又は...
-
エクセル 上下で列幅を変えるには
-
完全一致したら代入するマクロ...
-
AのセルとB行を比較して、一致...
-
【EXCEL】連続データの個数を抽...
-
A1に入力された文字列と同じ文...
-
エクセルマクロ オートSUM(合...
-
VBAで色の付いているセルの行削除
-
【VBA】「同じ文字を含むセ...
-
Excel ウインドウ枠の固定をす...
-
電話番号の入力方式が違うデー...
-
エクセル 数字のみ残したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
結合されたセルをプルダウンの...
-
[EXCEL]ボタン押す→時刻が表に...
-
excel 小さすぎて見えないセル...
-
AのセルとB行を比較して、一致...
-
エクセル マクロで数値が変っ...
-
エクセル 上下で列幅を変えるには
-
excelのデータで色つき行の抽出...
-
Excel グラフのプロットからデ...
-
エクセル2016で時間を入力して...
-
VBAで色の付いているセルの行削除
-
特定の文字がある行以外を削除...
-
連続データが入った行の一番右...
-
エクセルVBA 最終行を選んで並...
-
エクセルのセルに指定画像(.jpg...
-
エクセルで昨日までの日付デー...
-
エクセルマクロで偶数行(又は...
-
A1に入力された文字列と同じ文...
おすすめ情報