トップ回答者
wordを操作するとき

質問
-
wordでの差し込み印刷時の操作を自動化しようとしています。
VB.netを初めて使いますので,わからないことだらけで困っています。
どうぞ,お助け願います。
wordでつくったアドレス帳にはいくつかのデータがあり,これの変更を自動化しようとしています。
手始めに一連の操作をマクロに記録し,このコードをそっくり流用したいのですが,下の5つのものが
「宣言されていません」とのエラーが出ています。
ActiveDocument wdFormletters wdOpenFormatAuto wdMergeSubTypeOAL wdToggle
どこに,どのように宣言すればよいのでしょうか。お教え願います。
Private Sub btnB5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnB5.Click With CreateObject("word.application") .Visible = True .documents.Open("D:\B5.docx") End With ActiveDocument.MailMerge.MainDocumentType = wdFormLetters ActiveDocument.MailMerge.OpenDataSource(Name:= _ "D:\五区南町内会\宛先印刷\アドレス帳\三役.mdb", ConfirmConversions:=False, ReadOnly:=False _ , LinkToSource:=True, AddToRecentFiles:=False, PasswordDocument:="", _ PasswordTemplate:="", WritePasswordDocument:="", WritePasswordTemplate:= _ "", Revert:=False, Format:=wdOpenFormatAuto, Connection:= _ "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=D:\五区南町内会\宛先印刷\アドレス帳\三役.mdb;Mode=Read;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Par" _ , SQLStatement:="SELECT * FROM `Office Address List`", SQLStatement1:="", _ SubType:=wdMergeSubTypeOAL) ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle End Sub
回答
-
どうにか解決できました。
Public Class Form1 Private btnArray(2) As System.Windows.Forms.Button Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim I As Integer btnArray(0) = btnB5 btnArray(1) = btnA4 For I = 0 To 1 AddHandler btnArray(I).Click, AddressOf ButtonClick Next End Sub Private Sub ButtonClick(ByVal sender As Object, ByVal e As System.EventArgs) Dim strFilename As String Dim strPath1 As String Dim strPath2 As String strPath1 = "D:\五区南町内会\宛先印刷\封筒\" strPath2 = "D:\五区南町内会\宛先印刷\アドレス帳\" Select Case CType(sender, Button).Text Case "B5用封筒" strFilename = "B5用封筒.docx" Case "A4用封筒" strFilename = "A4用封筒.docx" End Select 'word文書に宛先データを差し込む Dim wdApp As Object Dim wdDoc As Object wdApp = CreateObject("Word.Application") wdDoc = CreateObject("Word.Document") With wdApp 'word文書を開く .visible = True .documents.open(strPath1 & strFilename) 'wdDoc.Activate() '差し込み .ActiveDocument.MailMerge.OpenDataSource( _ Name:=strPath2 & "三役.mdb", ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True _ , AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="" _ , WritePasswordTemplate:="", Revert:=False, Format:=0, Connection:="Provider=Microsoft.ACE.OLEDB.12.0;" & _ "User ID=Admin;Data Source=" & strPath2 & "三役.mdb" & _ ";Mode=Read;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";" & _ "Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Par" _ , SQLStatement:="SELECT * FROM `Office Address List`", SQLStatement1:="", SubType:=2) End With End Sub End Class