VBA:印刷範囲をセル値で設定するには
私には、設定を見えるようにしておきたいという癖があって、
VBAコードを書き換えなくても印刷範囲を設定できるように、○~○ってセルに書いている値で印刷範囲を設定できるようにしてみました。
ポイントは、セル値をStringで定義することです。
終わりにサンプルシートを置いています。
【書いたコード】
Sub 印刷範囲ページ数をセル値で設定しプレビュー()
Dim sh As Worksheet
Dim pa1 As String
Dim pa2 As String
Dim i, j, c As Integer
Dim rng As Range
On Error Resume Next
Set sh = ActiveSheet
'★A列に印刷範囲行番号を入れる================
'前の値を削除する。塗りつぶし解除
For Each rng In Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row)
rng.ClearContents
rng.Interior.ColorIndex = 0 '透明
Next
j = Range(Range("D1")).Row
For i = 3 To j
Range("A" & i).Value = i - 2
Range("A" & i).Interior.ColorIndex = 1 '黒
Next
'★========================================
With sh.PageSetup
c = Range(Range("D1")).Column
Range(Cells(1, 1), Cells(2, c)).Interior.ColorIndex = 1 '黒
'★★ページ範囲変数設定
pa1 = sh.Range("B1").Value
pa2 = sh.Range("D1").Value
.PrintArea = Range(pa1, pa2).Address
'---------------------------------------------
.Zoom = False
.FitToPagesTall = Range("F1").Value 'ページ数セル値設定
.FitToPagesWide = 1 '横は1ページにする
sh.PrintPreview '印刷プレビューする
End With
On Error GoTo 0
End Sub
--------------------------------------
こうすると、B1、D1のセルに書いた番地に印刷範囲をセットできました。
備忘録としてのサンプルシートです。
↓
ちょっとひらめいたので、書いてみました。
今日は朝からお日様🌞近いです・・ギラギラ💦
では、また(^^)/