2017-10-11 15 views
0

アクセスからドキュメントを生成し、フィールドコード "ListNum"をドキュメントで使用します。私はMSの単語から実行されたときにフィールドコードを文書に正しく追加する以下のマクロを持っています。私はワードオブジェクトを介してアクセスしてVBAからこれを実行するとVBA実行時にMS Wordに新しいフィールドコードを追加するには

Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ 
    "LISTNUM LegalDefault ", PreserveFormatting:=False 

しかし動作するように表示されません。アクセス時のコードは次のとおりです。

Dim objApp As Object 
Set objApp = GetObject("Word.Application") 

    Set objApp = CreateObject("Word.Application") 
    objApp.Visible = True 
    Set Word = objApp 

    With Word 
     .Documents.Add 
     .activedocument.Fields.Add Range:=.Selection.Range, Type:=wdFieldEmpty, Text:="LISTNUM LegalDefault ", PreserveFormatting:=False 
    End With 

私はこれを使用することができますが、それは、あまりにも動作する言葉でマクロを呼び出すためのアクセスから

Word.Run "ListNum" 

「実行」機能を使用する場合は、それが持つユーザーに依存しているとして、それは理想的ではありませんテンプレート内のこのマクロ

ありがとうございます。

答えて

0

FYI、修正プログラムは次の行に、この一定の値を使用して行うにはcorrecものです、それはそう言葉に上を移動するときは、次の

Type:=wdFieldEmpty 

がアクセスで認識されませんように見えます代わりに動作します

.activedocument.Fields.Add Range:=MyRange, Type:=-1, Text:="LISTNUM LegalDefault " 

オブジェクトエクスプローラをワードで使用して定数を検出しました。

+1

レイトバインディングを使用している場合(つまり、Wordオブジェクトモデルへの参照が設定されていない場合)、これはすべてのWord定数に適用されます。 - 各モジュールの上部に['Option Explicit'](https://msdn.microsoft.com/en-us/library/bw9t3484%28v=vs.84%29.aspx)があることを確認してください。 コンパイル時に変数宣言を強制し、宣言されていない変数やスペルミスを報告するため、実行時にあなたを噛まない。 これを新しいモジュールに自動的に追加するには、VBAエディタで[変数宣言が必要](http://www.fmsinc.com/microsoftaccess/modules/options/index.html)オプションを設定します。 – Andre

+0

ええ、私はずっと前に同様の問題に遭遇し、これについて忘れてしまった。私はこのモジュールのために適切に定義されていなかったエラーハンドラを持っていました。そして、それは過去のものをスキップしてエラーメッセージを出すのではありませんでした。今すぐ!ありがとう。 –

関連する問題