8

非常に単純な単語マクロを使用して Word 文書を作成しようとしています。マクロは、テキストに配置したブックマークを検索し、その場所に 2 週間先の日付を追加します。

しかし、テンプレートから新しいドキュメントを作成すると、ブックマークが見つかりません。私はそれを何度も経験してきましたが、ブックマークがそこにあることもあれば、そこにあるのに「移動」をクリックできないこともあります。

どうすれば動作させることができますか? イベントに小さなコードを追加しましたが、 Bookmark not foundDocument_New()が報告され続けます。

私の Web サーバーは .dotm 拡張子を処理できないため、rar ファイルにドキュメントがあります。 書類

このテンプレートから新しい文書が作成されたときに、新しい文書の 2 週間先の日付が 2 つの太字のセクションの間に配置されるようにするにはどうすればよいですか?

Sub Two_Weeks_Ahead()
''# Two_Weeks_Ahead Makro
    Selection.GoTo What:=wdGoToBookmark, Name:="TwoWeeks"
    With ActiveDocument.Bookmarks
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With

    Dim dt As Date
    dt = DateAdd("d", 14, DateTime.Now)

    Selection.TypeText Text:=Format(dt, "yyyy-MM-dd")
End Sub

Private Sub Document_New()
    Selection.GoTo What:=wdGoToBookmark, Name:="TwoWeeks"
    With ActiveDocument.Bookmarks
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With

    Dim dt As Date
    dt = DateAdd("d", 14, DateTime.Now)

    Selection.TypeText Text:=Format(dt, "yyyy-MM-dd")
End Sub
4

1 に答える 1

5

これはActiveDocument、コードでの使用が原因である可能性があります。呼び出し元のマクロのドキュメントはまだである可能性があるActiveDocumentため、ブックマークは見つかりません。これが、うまく機能するマクロ対応のドキュメント/テンプレートを呼び出すことからそれを行う方法です。

Sub AddTwoWeeks()
    Dim d As Document
    Set d = Documents.Add("C:\Users\Me\Desktop\Title.dotx")

    Dim dt As Date
    dt = DateAdd("d", 14, DateTime.Now)

    Dim b As Bookmark
    Set b = d.Bookmarks("TwoWeeks")
    b.Range.Text = Format(dt, "yyyy-MM-dd")
End Sub
于 2010-06-28T06:53:10.147 に答える