0

これは私に頭痛を与えています。かなり巨大な Word マクロがあります。そしてある時点で、ページのヘッダーとフォーマットを変更する必要があります。

したがって、この時点でブレークを挿入します

Selection.InsertBreak Type:=wdSectionBreakContinuous

横/横の形式に変更します(画像にもこの形式があるため)

    WordBasic.TogglePortrait Tab:=3, PaperSize:=0, TopMargin:="2.5", _
    BottomMargin:="2.5", LeftMargin:="2", RightMargin:="2.5", Gutter:="0", _
    PageWidth:="29.7", PageHeight:="21", Orientation:=1, FirstPage:=0, _
    OtherPages:=0, VertAlign:=0, ApplyPropsTo:=0, FacingPages:=0, _
    HeaderDistance:="1.25", FooterDistance:="1.25", SectionStart:=0, _
    OddAndEvenPages:=0, DifferentFirstPage:=0, Endnotes:=0, LineNum:=0, _
    StartingNum:=1, FromText:=wdAutoPosition, CountBy:=0, NumMode:=0, _
    TwoOnOne:=0, GutterPosition:=0, LayoutMode:=0, CharsLine:=41, LinesPage:= _
    39, CharPitch:=220, LinePitch:=360, DocFontName:="+Textkörper", _
    DocFontSize:=11, PageColumns:=1, TextFlow:=0, FirstPageOnLeft:=0, _
    SectionType:=1, FolioPrint:=0, ReverseFolio:=0, FolioPages:=1

ヘッダーを入力します

ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader

前のページは変更してはならないので、前のページとのヘッダー構成のリンクを解除します

Selection.HeaderFooter.LinkToPrevious = False

ヘッダーからジャンプする 最後のページに移動 = 新しいセクションの最初のページ これを行う必要があります。そうしないと、上記のコマンドにより前のセクションのヘッダーに移動します。(最後のヘッダーにジャンプする理由がわかりません)正しいヘッダーにジャンプします

ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Selection.EndKey unit:=wdStory
ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader

ヘッダー全体を選択して削除します

Selection.WholeStory
Selection.Delete

水平形式に変更した後にブレークポイントを設定すると、最初にヘッダーにジャンプするか、上記のリストの前のポイントにジャンプすると、すべて正常に動作します。しかし、これは可能な最後のものです。

最後のページのヘッダーのみを削除する代わりに、ブレークポイントがないと、前のセクションのヘッダーも削除されます。

なぜこれが起こるのか、それを防ぐ方法はわかりません。

4

1 に答える 1

0

わかりました、私はそれを行う方法を考え出しました。ランタイムに関係があり、一部のイベントを時間内に実行できないとすでに考えていました。

だから私はdoeventsでループを書いた

For u = 1 To 1000000
DoEvents
Next u

これは私が知っていることが多すぎますが、うまくいきます;)

編集:実際には2回で十分です1000000の必要はありません最初に確認したかっただけです:D

于 2012-08-30T10:35:18.087 に答える