Option Explicit
# If VBA7 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
# Else
Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
# End If
Sub PublisherStartMacro()
Const StLine = 9 'Input This Line Number
Dim pbDoc As Publisher.Document: Set pbDoc = Publisher.Application.ActiveDocument
Dim pbView As Publisher.View: Set pbView = pbDoc.ActiveView
Dim pbWin As Publisher.Window, WSz As pbWinSize: Set pbWin = pbDoc.ActiveWindow: WSz.h = pbWin.Height: WSz.l = pbWin.Left: WSz.w = pbWin.Width: WSz.t = pbWin.Top
Dim pbPages As Publisher.Pages: Set pbPages = pbDoc.Pages
Dim pbPage As Publisher.Page, pbPSet As pbPageSet: Set pbPage = Publisher.ActiveDocument.ActiveView.ActivePage
Dim pbShps As Publisher.Shapes, pbShp As Publisher.Shape
Dim pbtFrame As Publisher.TextFrame, pbtRng As Publisher.TextRange
Dim pbTStyles As Publisher.TextStyles, pbTstyle As Publisher.TextStyle
Dim Sz As pbShapeSize, FS As FontSetting, Para As ParagraphSet, PSz As pbShapeSize, Tss As pbTableSet, SS As pbStroySet, TFS As PbTextFrameset, TRS As PbTextRangeset
Debug.Print StLine + 10 'Line:0012 <StLine Use Like This. Show Relative Row Position.And Add Remark Line Number Like "'Line:0012" is Readabily.
End Sub
Publisherのスタートセット
変数の宣言が毎回面倒ですがこのパターンで可能となります。
ただし前回のTypeステートメントを忘れないようにしてください。
別モジュール等Typeステートメントがないと作らないとエラーを起こします。
前回はこちら
Publisher VBA Startセット(1) Typeステートメントと関数
http://qiita.com/Q11Q/items/c8a1e05457722d0092f2
Pageのセット
Set pbPage = Publisher.ActiveDocument.ActiveView.ActivePage
AcitivePageかCurrentというのがあるのが常ですが、PublisherはActivePageです
しかしDocumentではなくDocument.ActiveViewというViewオブジェクトの下になります。
これが嫌なとき、Page数を指定するときは
Set PbPage= PbPges(1)
のようにします。
ShapeはPageの下
つまりPages Page Shapes Shapeのように並んでいます。
したがってShapesオブジェクトはページとごとに設定する必要があります。
このほかにこんなのもあります
設定を書きだすマクロを作成しました
Publisher VBA Publisherの設定を書きだす
縦中横を実現するマクロ
Publisher VBA 縦中横 を実行して数字を並べるマクロ