|
はじめまして。
ちょっと質問があります。
題名には文書を開く、までしか書けなかったのですが
開いたあとに、固定の文を挿入させたいのです。
----------------------------------------------------------
Private Sub 送達状作成_Click()
Dim wrd As Object 'オリジナル文書をセット
Dim doc As Object 'テンプレート文書用
Dim g_wordTpPath As String
Dim strInfile As String
Dim lngRecCOUNT As Integer
Dim a As Variant
'差込印刷のオリジナル文書
strInfile = "C:\aiueo\警告文雛形.doc"
strOutFile = "C:\aiueo\警告文.doc"
If Dir(strInfile) = "" Then
MsgBox "該当する雛形ファイルがありません。確認してください。",
vbOKOnly, vbCritical, "Wordファイル存在チェック"
Exit Sub
End If
' ワードオブジェクトの取得
Set wrd = CreateObject("Word.Application")
Set doc = wrd.Documents.Open(FileName:=strInfile, ReadOnly:=True)
↑この状態で、ファイルはちゃんとOPENします。
ファイルをOPENした状態で、
さらに下にプログラムが続きます。
i = doc.Paragraphs.Item(1).Range.Start
doc.Range(i, i).Text = "千葉県浦安市●●●●"'iは10+1=11
i = doc.Paragraphs.Item(2).Range.Start
doc.Range(i, i).Text = "システム(株)"'iは、11+7+1=19
i = doc.Paragraphs.Item(3).Range.Start
doc.Range(i, i).Text = "山田はなみ"'iは19+5+1=25
doc.SaveAs FileName:=strOutFile
doc.Close SaveChanges:=False
Set doc = Nothing
Set wrd = Nothing
Exit_WordPrint:
Exit Sub
Err_WordPrint:
MsgBox Err.Number & " " & Err.Description, vbCritical, "エラー"
GoTo Exit_WordPrint
End Sub
の、ようにワード文書の左上に1件ずつ表示させたいのです。
WordVBAではなく、AccessVBAでの実行をしています。
AccessのデータをWordにエクスポートするやり方でやったら
サーバの関係かなにかでうまくテーブルデータがとれなかった
ので、現状は上に記載したように1件ずつをだらだらと
書いて表示させています。
ちゃんと、ワードには表示されるのですが、
i = doc.Paragraphs.Item(1).Range.Start
doc.Range(i, i).Text = "千葉県浦安市●●●●"
のように、"千葉県浦安市●●●●"
" "で囲まれる文字列は毎回変わる場合、
1行づつ書いてては効率が悪いので
文字列を変数にいれて、カウントし、
そのカウントされた値に1をたして
次の2行目に変数を渡す。そしてまた
1を足して3行目に渡す、
の繰り返しの作業をしたいのですが、
なかなかうまくいきません。
文字列が変わってもちゃんと同じように値が出るように
するにはどうすればよいのでしょうか。
申し訳ありませんがよろしくお願いします。
|
|