[[20060308191046]] 『VBAでWordを開くには?』(tmntaka) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAでWordを開くには?』(tmntaka)

すみません。どうしても解らないので教えて下さい。

Excel2003-VBAで、既存のWordファイルを開きたいのです。

色々なサイトを見たのですが、解りません。

どなたか教えて下さい。


 こんな感じでしょうか。
 参照設定はいらないです。

 With CreateObject("word.application")
   .Visible = True
   .documents.Open "D:\MARBIN\test.doc"
 End With
 (MARBIN)

MARBINさん。有難う御座います。
正しく開く事が出来ました。

更に教えてほしいのですが、開いたドキュメントを印刷したいのです。
普通に印刷ボタンを押せば良いのですが、
開いて印刷して閉じるという作業をマクロで組みたいのです。

すみませんが、教えて下さい。お願い致します。


 こんな感じでいけます。
 今回は参照設定が必要です。

 参照設定:Microsoft Word *** Object 
 ※***はワードのバージョンによる

 Sub WDPRT()
     Dim MyWd As Word.Application
     Dim MyDoc As Word.Document
     Const DocName As String = "D:\MARBIN\test.doc"

     Set Mywd = CreateObject("Word.Application")
     Set MyDoc = wdApp.Documents.Open(DocName)
     MyWd.Options.PrintBackground = False
     MyDoc.PrintOut
     MyDoc.Close
     MyWd.Quit
 End Sub
 (MARBIN)

回答、有難う御座います。

入力して実行したのですが、

『実行時エラー4605:
 文書ウィンドウが選択されていないため、
 PrintBackgroundメソッドまたはプロパティは使用できません。』と出ます。

ファイル名を別の物にしても同じ結果でした。

ちなみに参照設定の『Microsoft Word 11.0 Object Library』
 にはチェックが入っています。(Office2003を使用しています)

Private Sub CommandButton4_Click()

     Dim MyWd As Word.Application
     Dim MyDoc As Word.document
     Const DocName As String = "C:\Documents and Settings\123\デスクトップ\人事申請書類フォルダ\入社時 社員.doc"

      Set MyWd = CreateObject("Word.Application")
      Set MyDoc = Word.Application.Documents.Open(DocName)

     MyWd.Options.PrintBackground = False
     MyDoc.PrintOut
     MyDoc.Close
     MyWd.Quit

 End Sub

あまり解っていないので宜しくお願いします。


 >MyWd.Options.PrintBackground = False
 この部分を削除して実行してみてください。
 この部分は無くても特に問題ありません。
 (MARBIN)

Sub 転送()
  Dim nissi As String
  Dim wd As Word.Application
  Dim WDoc As Word.Document
      res = MsgBox("", vbYesNo)
  If res = vbYes Then
     nissi = "C:\Documents and Settings\123\デスクトップ\人事申請書類フォルダ\退社時 社員.doc"
  Else
     nissi = "C:\Documents and Settings\user\デスクトップ\人事申請書類フォルダ\入社時 社員.doc"
\.doc"

  End If
    Set wd = CreateObject("Word.Application.10")
    wd.Visible = True
    Set WDoc = wd.Documents. _
           Open(nissi)
    With WDoc.Tables(1)
 (4ku8ku)
          End With
    wd.Quit
    Set wd = Nothing
    Set WDoc = Nothing

End Sub


>MyWd.Options.PrintBackground = False を消して実行したところ、

『実行時エラー'91': オブジェクト変数またはWithブロック変数が設定されていません』と出ました。

そこで、>Set MyDoc = WdApp.Documents.Open(DocName)というところを

        >Set MyDoc = Word.Application.Documents.Open(DocName)に変えてしまっていたので、元に戻して実行しました。

しかし、
『実行時エラー'424': オブジェクトが必要です』と出ました。

もう一つ書いて戴いたコード"Sub 転送()"も試しましたが上手くいきません。

何がいけないのか全くわかりません。

何度もすみませんが教えて下さい。

(tmntaka)


this Workbookに下記のコードを貼り付けてください。ユーザホームにコマンドボタンを
作成してください
ワードの文書ファイルはデスクトップに表示させます
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Save
End Sub

Private Sub Workbook_Open()
○○××.Show madal
End Sub
(4ku8ku)


 すみません。私が2回目のレスで提示したコードに誤りがありました。
 ↓ではいかがでしょう?

 Private Sub CommandButton4_Click()
     Dim MyWd As Word.Application
     Dim MyDoc As Word.Document
     Const DocName As String = "C:\Documents and Settings\123\デスクトップ\人事申請書類フォルダ\入社時 社員.doc"
      Set MyWd = CreateObject("Word.Application")
      Set MyDoc = MyWd.Documents.Open(DocName)
      MyWd.Options.PrintBackground = False
      MyDoc.PrintOut
      MyDoc.Close
      MyWd.Quit
 End Sub
 (MARBIN)

MARBINさん。

無事解決しました。
どうしても出来なくて、対象のWordファイルにマクロを記入したのが原因みたいです。

WordのマクロにPrintOutとCloseを入れていたのが邪魔だった様です。(推測ですが・・・)

おかげさまで正常に動く様になりました。
本当に有難う御座いました。

また解らない事があったら、勝手ながら質問させてもらいますので、
見捨てないで教えて下さい。
(tmntaka)


wer

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.