2016-07-31 8 views
0

WordやExcelのマクロでは経験はありませんが、エクセルデータを複数のワードファイルにインポートしたい場合は、それぞれ同じコンテンツが含まれています。 (私はこの仕事を結局は複雑にすることはできないと思っていましたが、formletter-functionを使って完成しようとしましたが、失敗したときには思ったよりもずっと複雑でした。アドバイスを求める正しい場所...)。Excelのデータを検索と置換を使用してWordテンプレートに変換 - 複数のドキュメント

例データ(エクセルデータ):

Varname Value 
    Var1  2 
    Var2  3 
    Var3  0.5 
    ... 

例データ(Wordテンプレート)

The following treats the topic on "Varname". Its Value is "Value". 

だから最後に、それは次のようになります。実際ものの

The following treats the topic Var1. Its Value is 2. (saved as Var1.doc or even better Var1.txt, but *.doc would be ok for the beginning!) 
    The following treats the topic Var2. Its value is 3. (saved as Var2.doc) 
    The following treats the topic Var3. Its value is 0.5. (saved as Var3.doc) 
    ... 

テキストははるかに複雑であり、コード自体の一部であってはなりません。だから私は最高の解決策は、 "find"と "Replace"でなければならないと考えました。 Word/Excelのマクロは全く新しいので、「置き換え」機能のExcelデータの実装方法はわかりませんでした。

' Replace-Excel-Data-Macro 
    ' 
    ' 
     Selection.Find.ClearFormatting 
     Selection.Find.Replacement.ClearFormatting 
     With Selection.Find 
      .Text = """Varname""" 
      .Replacement.Text = "**???**" 
      .Forward = True 
      .Wrap = wdFindContinue 
      .Format = False 
      .MatchCase = False 
      .MatchWholeWord = False 
      .MatchWildcards = False 
      .MatchSoundsLike = False 
      .MatchAllWordForms = False 
     End With 
     Selection.Find.Execute Replace:=wdReplaceAll 
     With Selection.Find 
      .Text = """Value""" 
      .Replacement.Text = "**???**" 
      .Forward = True 
      .Wrap = wdFindContinue 
      .Format = False 
      .MatchCase = False 
      .MatchWholeWord = False 
      .MatchWildcards = False 
      .MatchSoundsLike = False 
      .MatchAllWordForms = False 
     End With 
     Selection.Find.Execute Replace:=wdReplaceAll 
    End Sub 

この質問は事前に...多分これによるマクロなものの私の非常に限られた知識を、私は今まで、適切なヘルプを見つけることができなかった、前にあなたのコメントに感謝を依頼されている場合、私は申し訳ありません! :)

答えて

0

Winwordで差し込み印刷を使用すると、このような作業を簡単に行うことができます。

データソースからテンプレートを入力します:execl/database /任意のデータ。

テンプレートでは、データソースからフィールド名を定義します。差し込み文書]タブの[

あなたがフィールドを使用してテンプレートを定義ウィザードで、データソース

、[スタート]をクリックします。

例えば

、あなたのテンプレートは次のようになります。このウィザードを使用して

The following treats the topic on <<Varname>> Its Value is <<Value>> 

[差し込み印刷]をクリックし、 ステップバイステップの差し込み印刷ウィザードをクリックします。

はチュートリアルから、次の手順に従います。

How to use mail merge to create form letters in Word

+0

私の答えは少し遅れているが、それでもあなたに感謝します!最終的に私はそれを正確にこのようにした:) – GreenDot72

関連する問題