ExcelマクロでWordを閉じるには

このQ&Aのポイント
  • Excel2000のマクロ内でWord2000を起動してファイルを開き、別名保存した後にWordを閉じる処理を行いたい
  • 現在のマクロでは開いたファイルは閉じられるが、別名保存したファイルが閉じられない
  • どのように記述すれば、開いたファイルと別名保存したファイル、それにWordアプリケーションを閉じることができるか
回答を見る
  • ベストアンサー

Excelマクロで、WORDを閉じるには。

Excel2000のマクロ内で、Word2000を起動してファイルを開き、それを別名保存した後Wordを閉じてExcelに戻る…という処理を行いたいのですが、Wordを閉じる所がうまく出来ません。 [現在のマクロ]------------------------------ Set wd = CreateObject("word.Application") wd.Visible = True wd.documents.Open Filename:= _ "C:\aaa.doc" wd.ActiveDocument.SaveAs Filename:= _ "C:\test\bbb.doc" wd.Close SaveChanges:=False -------------------------------------------- これで実行すると、開いたファイル(aaa.doc)は閉じるのですが、別名保存したファイル(bbb.doc)が閉じません。両方のファイルおよびWORDアプリケーションを閉じたければどう記述すればよいのでしょうか? どなたか教えてください。

  • cole
  • お礼率43% (22/51)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

記載されたマクロをコピーして実行してみました。 最後の行でオブジェクトがないというエラーになりました。 で、次のように書き換えました。 Sub w_close() Set wd = CreateObject("word.Application") wd.Visible = True wd.Documents.Open Filename:= _ "C:\aaa.doc" wd.ActiveDocument.SaveAs Filename:= _ "C:\bbb.doc" wd.Documents.Close SaveChanges:=False wd.Quit End Sub Wordを閉じるのには Quitメソッドを使います。 私のPCではこれでうまくいくみたいなんですが、いかがでしょう?

cole
質問者

お礼

うまく動きました(^O^) ありがとうございました!

関連するQ&A

  • エクセルVBAでワード文書印刷(2)

    先日、こちらで、VBAを記述したエクセルのブックと同一フォルダーにおいておいたABC.DOCをプリントし、ABC.DOCを閉じる方法を教えていただき、Excel2003でためしたら、下記でうまくいきました。(その際、回答者のchie65536さん、手が滑ってポイントをつけず締め切ってしまいました、申し訳ございません。) ところが今、会社のExcel2000でやったところ、「印刷中です。Wordを終了すると印刷待ちのすべてのジョブがキャンセルされます。」と出てしまいます。 ABC.DOCをプリントしおわったら、ABC.DOCを閉じ、ワードを終了するようにしたいのです。 ためしに、wd.Quitの代わりに、wd.ActiveDocument.Close とすれば印刷はされましたが、ワードが終了しません。 wd.ActiveDocument.Close のあとに wd.Quitを入れると、「印刷中です。Wordを終了すると・・・・」が出てしまいます。 どうなおせばよいのでしょうか? Sub Word_Print() Dim wd As Object Set wd = CreateObject("Word.application") wd.Visible = True wd.documents.Open Filename:=ThisWorkbook.Path & "\ABC.doc" wd.ActiveDocument.PrintOut wd.Quit Set wd = Nothing End Sub よろしくお願いいたします。

  • Access2010でWORD差込VBA実行後終了

    Access2010でWORDのブックマークへの差込を実行するVBAを組み、うまく作動しました ところが、「WORDで特定文書の名前で保存する構文をいれ、別名保存がうまく終わっている」にも拘わらず、必ず”未保存の文書1を保存しますか?”とWORDが必ず聞いてきます。これを回避するにはどのようにしたらよろしいでしょうか? ACCESS2010のVBAは下記のとおり組んでいます 'Word文書を保存する箇所 WordApp.Application.ActiveDocument.SaveAs FileName:=VARIABLE.doc, FileFormat:=1 'Wordを終了する箇所(上記保存のすぐ後に書いています) WordApp.Application.ActiveDocument.Close WordApp.Quit Set WordApp = Nothing Set doc = Nothing

  • EXCELのマクロで保存するときのメッセージ

    CSVファイルを上書き更新後、ファイルを閉じる作業をしたいのですが、EXCEL2000のマクロでその作業を行うと、次のメッセージがでて、次の手作業の要求がきます。 (1)ファイルの上書きするとき  この場所にAAAというファイルが既にあります。置き換えますか・・・はいのクリック (2)ファイルを閉じるとき  AAAへのファイルの変更を保存しますか・・・いいえをクリック この(1)(2)の作業も、マクロに書きたいのですが、どうすればよいのでしょうか 現在のマクロは ActiveWorkbook.SaveAs Filename:= _ "C:\AAA.csv" _ , FileFormat:=xlCSV, CreateBackup:=False ActiveWindow.Close よろしくお願いします

  • word VBA ファイル名 保存

    wordで作成したファイルの最初の第1行名をファイル名として、名前を付けて保存できるマクロを作りたいのですが、うまくいきません。 Sub 保存() Dim ファイル名 As Variant ファイル名 = ActiveDocument.Paragraphs(1) & ".docx" ActiveDocument.SaveAs FileName:=(ファイル名), FileFormat:= _ wdFormatXMLDocument End Sub ではだめなのですが、どなたか添削よろしくお願いします。困っております。なにぶん初心者ですので基本的な文法のミスかもしれないですが、うまくいきません。

  • ExcelのマクロでCSVファイルを開くと遅いのですが

    ExcelのマクロでCSVファイルを開くと遅いのですが速く開く方法はありますか? 普通にファイル-開くに比べてかなり遅いです。 下記のVBAで記述してあります。 Workbooks.Open Filename:=fname ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=xlCSV, _ CreateBackup:=False ActiveWorkbook.Close savechanges:=False

  • AccessVBAからWordのマクロを実行するには

    [環境]Access2000,Word2000 AccessVBAでWordのオブジェクトをつくりファイルを開くところまでは たどり着いたのですが、開いたWordファイルにあるマクロを実行させる ことが出来ずに困っています。 WordオブジェクトのApplicationとDocumentsオブジェクトの関係も把握 しきれていないため、おかしなソースになっているかも知れません。 よろしくお願いします。 sub DoMacro() Dim oWrd as Word.Application Dim oDoc as Word.Document Set oWrd = New Word.Application With oWrd Set oDoc = oWrd.Documents.Open("c:\test.doc") .Visible = True .Application.Run ("Macro1") oDoc.SaveAs "c:\newTest.doc" .Quit End With End Sub

  • Wordの名前を付けて保存のマクロを教えてください

    いつもお世話になっています。 名前を付けて、特定のフォルダに保存したいのですが、.GetSaveAsFilenameのところで 「メソッドまたはデータ メンバが見つかりません。」のエラーがでてうまく動きません。 何処が間違っているのか教えてください。よろしくお願いします。 元のデーターは、別のフォルダに入っていて、その名前を取得したいです。 しかし、その名前の修正をしたいときもあるので、確認して保存したいです。 ご教授お願いします。 SUB test() Dim fname As String Dim SF As String SF = "\\osaka\PCBackup\" fname = Application.GetSaveAsFilename(SF, _ FileFilter:="wordファイル,(*.doc),*.docx") ActiveDocument.SaveAs Filename:=fname End Sub

  • エクセルのブックを保存するときのマクロ

    エクセルで、ユーザーフォームを使ったマクロを作成しています。 もう、殆ど出来上がっているんですが、最後に別名保存の「コマンドボタン」を設置したいと考えています。 そこで質問なんですが、通常、別名保存をする際は ThisWorkbook.SaveAs Filename:="c:\○○\△□.xls" という記述を行いますが、「△□.XLS」のファイル名、つまり「△□」の部分を、テキストボックスで入力されたセルの文字列としたいと思っています。 もちろんこの文字列はその都度変化する変数です。 どなたかご存知の方がおられましたら、是非ともご教授頂きたくお願い致します。

  • EXCEL/VBA:WORDファイルの上書き保存を確認する方法

    以下のvbaを実行すると、次のように動作します。   test1.xlsを開いて、Atest1.xlsの名前で保存するときに、既にファイルが存在する場合、excelでは上書き保存するか聞いてきます。  しかし、test1.docを開いて、Atest1.docの名前で保存するときは、いきなり上書き保存されます。 wordの場合も上書き保存するか聞くようにするには、どうしたら良いか教えてください。 Workbooks.OpenText Filename:="test1.xls" ActiveWorkbook.SaveAs Filename:="Atest1.xls" ActiveWindow.Close Dim wordApp As Word.Application Dim wordDoc As Word.Document Dim wordRange As Word.Range Set wordApp = New Word.Application wordApp.Visible = True Set wordDoc = wordApp.Documents.Open(ThisWorkbook.Path & "\test1.doc") Set wordRange = wordDoc.Content wordDoc.SaveAs Filename:="Atest1.doc" wordDoc.Close wordApp.Quit

  • 印刷ダイアログを表示させたくない

    VB6.0でWORDファイルを印刷する機能を作成しています。 ボタンを押して指定のファイルを印刷する際、 完全にバックグラウンドで印刷したいのですが、 どうしても「印刷中」のダイアログが出てしまいます。 ソースは以下のとおりです。 Dim wd As Word.Application Set wd = CreateObject("Word.Application") wd.Visible = False wd.Documents.Open FileName:="D:\sample.doc", ReadOnly:=True wd.Options.PrintBackground = False wd.ActiveDocument.PrintOut wd.ActiveDocument.Close wd.Quit Set wd = Nothing ダイアログを制御するプロパティは存在しないのでしょうか? ご指導のほどよろしくお願い致します。

専門家に質問してみよう