Word (VBA)

Word VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
差し込み印刷ウィーザードの自動化
投稿日時: 17/05/05 16:34:40
投稿者: tako552101

Win8.1 2010です。
 
ファイルの移動などでリンク先が切れてしまうのを対処するのに、見よう見まねで
同フォルダのExcelファイルとの再リンクをマクロで可能になりました。
 
しかし、差し込み印刷ウィーザードが表示されておらず、手順3/6で終わってしまって
いるので、できれば(1)差し込み印刷ウィーザードをスタートし(2)-(3)手順6/6まで
進みたいのですが、マクロの記録では記録されませんでした。
 
どなたかご指導いただければ幸いです。
 
念のため、以下、手順3/6までのコードです。
※エラー処理はおこなっていません。
 

Sub DataLink()
    Dim myPath As String
    Dim myPath2 As String
    Dim myData As String
    Dim Mydoc As Document
  
    Set Mydoc = ActiveDocument
  
    myData = "エクセルファイル.xls"
    'パス名(SpecialFolders は、User ID の下のMyDocuments までの取得している)
    myPath = ActiveDocument.Path & "\" & myData

    If Dir(myPath) = "" Then
        MsgBox myPath & vbCrLf & "ファイルが見つかりません。", vbInformation
    Else
        On Error Resume Next
        
    ActiveDocument.MailMerge.OpenDataSource Name:=myPath _
        , ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
        AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
        WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
        Format:=wdOpenFormatAuto, Connection:= _
        "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=myPath;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet" _
        , SQLStatement:="SELECT * FROM `順位$`", SQLStatement1:="", SubType:= _
        wdMergeSubTypeAccess
        On Error GoTo 0
    End If
    
    Set Mydoc = Nothing

End Sub

回答
投稿日時: 17/05/06 08:20:13
投稿者: i-brown

すみませんが、まず手順1〜手順6を説明いただければと思います。

回答
投稿日時: 17/05/06 11:33:32
投稿者: i-brown

差し込み印刷ウィーザードの表示だけなら。

Private Sub Test()
    Dim pane As TaskPane
    Set pane = Application.TaskPanes.Item(wdTaskPaneMailMerge)
    pane.Visible = True
End Sub

手順1〜6は、差し込み印刷ウィーザードに表示される手順のことですね。

投稿日時: 17/05/07 05:19:07
投稿者: tako552101

i-brownさん、ありがとうございます。
 
>手順1〜6は、差し込み印刷ウィーザードに表示される手順のことですね。
 
その通りです。
 
現況のコードですと、ウィザードの3/6で終わってしまっているので、
できれば、差し込み印刷ウィザードを表示して、4/6 → 5/6 → 6/6と
(ウィーザドでは次のリンクを選択してしていきます)
ウィザードを最後まで進めておきたいのですが、可能でしょうか。

回答
投稿日時: 17/05/07 06:17:30
投稿者: i-brown

マクロで処理するのであれば、ウィザードを表示せずに最後までVBAで処理すれば良いのではないでしょうか?
反対に、ウィザードを表示するのであれば、ウィザード表示のみマクロで行い、利用者にウィザードを操作してもらってはいかがでしょうか?
 
ウィザードの存在目的が「難しい設定を順番に説明しながらユーザーに設定してもらう」というものなので、ユーザーフォームを使ったマクロと目的が重複しています。
差し込み印刷そのものはあまり詳しくないので、これ以上のアドバイスは困難です。

投稿日時: 17/05/08 06:08:51
投稿者: tako552101

>マクロで処理するのであれば、ウィザードを表示せずに最後までVBAで処理すれば良いのではないでしょうか?
 
そこまでのスキルはないもので。
 
以下、ご存じの方いらっしゃいましたらご指導お願いします。
 
(1)差し込み印刷ウィザードを表示 ※これはできました!
(2)ウィザード内の手順4/6 → 5/6 → 6/6をクリックして最後のページに進む

投稿日時: 17/05/11 20:07:54
投稿者: tako552101

一旦解決済みにします。
 
みなさんありがとうございました。