دینا سندی دارد که برای استفاده از سه ستون فرمت شده است. او راهی برای نمایش و چاپ خودکار شماره ستون در بالای هر ستون میخواهد. بنابراین، ستون های صفحه 1 از 1 تا 3 شماره گذاری می شوند، ستون های صفحه 2 از 4 تا 6 و غیره شماره گذاری می شوند.
هیچ راهی برای انجام خودکار این کار وجود ندارد، اما راه حل این است که یک ماکرو ایجاد کنید که سند را با شماره ستون در هدر صفحه چاپ کند. تنها کاری که باید انجام دهید این است که مطمئن شوید سرصفحه دارای tab stop هایی است که با جایی که می خواهید شماره ستون ها نمایش داده شود مطابقت داشته باشد.
Sub ColumnHeaders()
Dim p As Long
Dim tp As Long
Dim c As Integer
Dim tc As Integer
Dim h As String
Dim ch As String
" Get total pages
tp = ActiveDocument.Content.ComputeStatistics(wdStatisticPages)
" Get number of columns
tc = ActiveDocument.Sections(1).PageSetup.TextColumns.Count
" Save current header
ch = ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text
For p = 1 To tp
h = ""
For c = 1 To tc
h = h & Trim(Str(p + (c - 1) + (2 * p - 2))) & vbTab
Next c
h = Left(h, Len(h) - 1)
ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text = h
ActiveDocument.PrintOut Range:=wdPrintFromTo, _
From:=Trim(Str(p)), To:=Trim(Str(p))
Next p
If Len(ch) > 1 Then
" Restore previous header
ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text = ch
Else
" There is no previous header
ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Delete
End If
End Sub
ماکرو در واقع هر صفحه از سند را به صورت جداگانه چاپ می کند. فرض بر این است که فقط یک بخش در سند وجود دارد. تعداد ستونها برای آن بخش مشخص میشود و سپس از این تعداد در کنار هم قرار دادن سرصفحه برای هر صفحه استفاده میشود. سربرگ شامل شماره ستون هایی است که با زبانه ها از هم جدا شده اند. هدر برای هر صفحه ساخته می شود و سپس هر صفحه چاپ می شود.