僕はまず書式(標準スタイル)と印刷の設定をします。もう何年もExcelを相手に試行錯誤してきたので、「僕が作る書類」の書式はかなり固まってきました。
ここでそのこだわりを語り始めると長いので省略して、僕が使っている「標準書式と印刷設定を適用するマクロ」を公開します。
Personal.xlsに定義しておくと便利ですよ。'===============================================================================
' ワークシートに標準書式と印刷設定を適用します。
'===============================================================================
Public Sub DefaultSetting()
' 画面更新停止
Application.ScreenUpdating = False
' 定数
Const C_NORMAL_FONT_NAME As String = "Meiryo UI"
Const C_NORMAL_FONT_SIZE As Integer = 10
Const C_DEFAULT_ZOOM_PERCENTAGE As Integer = 85
Const C_DEFAULT_COLUMN_WIDTH As Double = 1.75
Const C_DEFAULT_WHITESPACE_WIDTH As Double = 1.5
Const C_DEFAULT_HEADER_HEIGHT As Double = 0.8
Const C_LEFT_HEADER As String = "&F - &A"
Const C_LEFT_FOOTER As String = "印刷:&D"
Const C_RIGHT_FOOTER As String = "&P / &N ページ"
' 定数(変更不要)
Const C_NORMAL_STYLE_NAME As String = "Normal"
' 変数
Dim v_book As Workbook
Dim v_sheet As Worksheet
Dim v_style As Variant
Dim v_window As Window
' 初期化
Set v_window = ActiveWindow
Set v_book = ActiveWorkbook
Set v_sheet = ActiveSheet
' 既定スタイルの削除
On Error Resume Next
For Each v_style In v_book.Styles
If v_style.Name <> C_NORMAL_STYLE_NAME Then
v_style.Delete
End If
Next v_style
' 標準スタイルの設定
On Error GoTo 0
With v_book.Styles(C_NORMAL_STYLE_NAME)
.VerticalAlignment = xlCenter
.Font.Name = C_NORMAL_FONT_NAME
.Font.Size = C_NORMAL_FONT_SIZE
End With
' 表示倍率の設定
With v_window
.View = xlPageLayoutView
.Zoom = C_DEFAULT_ZOOM_PERCENTAGE
.View = xlPageBreakPreview
.Zoom = C_DEFAULT_ZOOM_PERCENTAGE
.View = xlNormalView
.Zoom = C_DEFAULT_ZOOM_PERCENTAGE
End With
' 列幅の設定
v_sheet.Cells.ColumnWidth = C_DEFAULT_COLUMN_WIDTH
' 印刷の設定
With v_sheet.PageSetup
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = False
.PrintQuality = 600
.LeftHeader = C_LEFT_HEADER
.LeftFooter = C_LEFT_FOOTER
.RightFooter = C_RIGHT_FOOTER
.LeftMargin = Application
.CentimetersToPoints(C_DEFAULT_WHITESPACE_WIDTH)
.RightMargin = Application
.CentimetersToPoints(C_DEFAULT_WHITESPACE_WIDTH)
.TopMargin = Application
.CentimetersToPoints(C_DEFAULT_WHITESPACE_WIDTH)
.BottomMargin = Application
.CentimetersToPoints(C_DEFAULT_WHITESPACE_WIDTH)
.HeaderMargin = Application
.CentimetersToPoints(C_DEFAULT_HEADER_HEIGHT)
.FooterMargin = Application
.CentimetersToPoints(C_DEFAULT_HEADER_HEIGHT)
End With
' 画面更新再開
Application.ScreenUpdating = True
End Sub
enjoy :)
0 件のコメント:
コメントを投稿