WordのA4書類を三つ折りにするためのマークをセットするマクロです。
A4は幅210ミリ、高さ297ミリですので、上から297/3=99ミリと198ミリ、左右の端から10ミリのところに菱形のマークを4個、描きます。
マークの大きさは4ポイント、色はグレー、線の太さは0.5ポイントになっていますが、書き換えることができます。
重要な点はRelativeHorizontalPositionをwdRelativeHorizontalPositionPageとして、位置の基準をページ(用紙)にするところです。こうすることで文書の余白などを変えても同じ位置にマークが描かれます。
またLockAnchorをFalseとすると本文を変えてもマークが移動しません。
Sub 三つ折りマーク()
Const haba = 210 'mm
Const takasa = 297 'mm
Const yohaku = 10 'mm
Dim i, j
Dim x, y
For i = 0 To 1
For j = 0 To 1
x = yohaku + (haba - yohaku * 2) * i
y = takasa / 3 + takasa / 3 * j
Call set_mark(x, y)
Next j
Next i
Selection.HomeKey Unit:=wdStory
End Sub
Const haba = 210 'mm
Const takasa = 297 'mm
Const yohaku = 10 'mm
Dim i, j
Dim x, y
For i = 0 To 1
For j = 0 To 1
x = yohaku + (haba - yohaku * 2) * i
y = takasa / 3 + takasa / 3 * j
Call set_mark(x, y)
Next j
Next i
Selection.HomeKey Unit:=wdStory
End Sub
Function set_mark(x, y)
Const s = 4 'ポイント
Const c = 128 '0:黒、255:白
Const w = 0.5 'ポイント
ActiveDocument.Shapes.AddShape(msoShapeDiamond, _
MillimetersToPoints(x), _
MillimetersToPoints(y), _
s, _
s).Select
Selection.ShapeRange.Line.Weight = w
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.RGB = RGB(c, c, c)
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
Selection.ShapeRange.RelativeVerticalPosition = wdRelativeVerticalPositionPage
Selection.ShapeRange.RelativeHorizontalSize = wdRelativeHorizontalSizePage
Selection.ShapeRange.RelativeVerticalSize = wdRelativeVerticalSizePage
Selection.ShapeRange.LockAnchor = False
End Function
Const s = 4 'ポイント
Const c = 128 '0:黒、255:白
Const w = 0.5 'ポイント
ActiveDocument.Shapes.AddShape(msoShapeDiamond, _
MillimetersToPoints(x), _
MillimetersToPoints(y), _
s, _
s).Select
Selection.ShapeRange.Line.Weight = w
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.RGB = RGB(c, c, c)
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
Selection.ShapeRange.RelativeVerticalPosition = wdRelativeVerticalPositionPage
Selection.ShapeRange.RelativeHorizontalSize = wdRelativeHorizontalSizePage
Selection.ShapeRange.RelativeVerticalSize = wdRelativeVerticalSizePage
Selection.ShapeRange.LockAnchor = False
End Function
コメント