以下の処理について解説する。
セル個別に「印刷時非表示」を設定する機能はない。
入力・表示する領域と印刷する領域を分離できるのであれば印刷する部分だけ選択し、
[ファイル(F)]>[印刷範囲(T)]>[印刷範囲の設定(S)]
とすることで、印刷する範囲を限定できる。が、どうしても同一レイアウト内での入力・表示と印刷時の非表示を両立させる必要がある場合には、通常、その都度非表示にするセルの書式を変更する方法が考えられるが、なるべく自動化する方法として以下のような方法が考えられる。
上記手順は次のことを意図している。
つまり、『双子』の表をを作り、双方の値をリンクさせることで入力・表示と印刷時の非表示を両立させることを意図している。ただし、上記の方法では書式設定まではリンクしていないので、書式変更が頻繁に行われるレイアウトには向いていないかもしれない。
下記は入力セルを別に設ける方法である。
上記手順ではI1に入力した内容がA1に重ねたリンク図に表示される。
リンク図ダブルクリックでリンク元セルへジャンプすることが出来る。
印刷時に目的のセルを非表示とするような処理を割り込んで行うようなマクロを設定しておく方法。
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim MyLocal() As Variant, i As Long, MyCount As Long
With ActiveSheet
If .Name <> "Sheet1" Then Exit Sub
MyCount = .Range("A1:A10").Cells.Count
ReDim MyLocal(MyCount - 1)
For i = 1 To MyCount
MyLocal(i - 1) = .Range("A1:A10").Cells(i).NumberFormatLocal
Next i
.Range("A1:A10").NumberFormatLocal = ";;;"
Application.EnableEvents = False
.PrintOut
Application.EnableEvents = True
Cancel = True
For i = 1 To MyCount
.Range("A1:A10").Cells(i).NumberFormatLocal = MyLocal(i - 1)
Next i
End With
End Sub
上記マクロではSheet1という名前のシートのA1:A10の範囲のセルを印刷時に非表示とする。
上記サンプルでは「.PrintOut」という単純なコードを使用しているだけなので、シート既定の設定で一部のみ印刷される。(印刷ダイアログは表示されない)
このマクロ設定前に印刷の動作を「マクロの記録」で記録したものを利用するとよい。
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||