• 締切済み

Document.SaveAsを実行しても保存されません

VB6.0、Word2000で動作していたソースが、Word2007だと結果を保存しなくなりました。参照設定は、MicrosoftWord12.0ObjectLibraryに変更しました。 ためしに、 Public m_WordApp As Object Public m_WordDoc As Word.Document Set m_WordApp = CreateObject("Word.Application") ・・・・ ワードに出力するデータを作成。 ・・・・ m_WordDoc.Fields.Update m_WordApp.PrintPreview = True m_WordDoc.SaveAs strFileName, wdFormatDocument →出力されない。 上記のSaveAsの代わりに m_WordApp.PrintOut Background:=False m_WordDoc.Close SaveChanges:=False を実行した場合は、印刷できました。 何か設定が必要なのでしょうか。よろしくお願いいたします。

みんなの回答

回答No.1

回答がつかないですね。 もしエラー トラップをしているなら外してみてはどうでしょうか? 何かエラーが出ている可能性もあります。

hamstar1
質問者

お礼

temtecomai2さん、ありがとうございます。 エラーが発生していたわけではなく、 Public m_WordDoc As Word.Document ↓ Public m_WordDoc As object とすれば正常に動作しました。 一応報告まで。

関連するQ&A

  • EXCEL VBAでプリンタの設定方法について

    EXCEL VBAのプリンタの設定方法について質問があります。 Dim oApp As Object Dim WFM As Strin WFM = "\\Cl111\フォルダ\ファイル\" &Range("C3").Value & ".doc" Set oApp = CreateObject("Word.Application")  ’ワード起動 oApp.Visible = True oApp.Documents.Open WFM  ’文書を開く Application.ActivePrinter = "AAA on Ne00:"  ’プリンタ設定 oApp.activedocument.PrintOut Copies:=1, Background:=False  ’印刷 oApp.Quit SaveChanges:=False  ’ワード終了 Set oApp = Nothing このようなコードで、(1)ワードを開き、(2)プリンタを設定し、(3)印刷をする、という作業をしたいのですが、 Application.ActivePrinter = "AAA on Ne00:" ではプリンタの設定が変わらず、通常使うプリンターで印刷がされてしまいます。 ワードを開いて印刷することで何か特殊なコードが必要なのではないかと思うのですが、調べても該当するものが出てきませんでした。 どうぞよろしくお願いいたします。

  • 【VB】【エクセル操作】 SaveAsでエラーが出てしまいます。

    VB6.0で作成したソフトの一部でエクセルを操作する箇所があります。 『新しいブックを作成して名前を付けて保存する』ところでエラーが出てしまいます。 Excel2007,2003では正常に動作するのですが、2000ではエラーが発生し強制終了されてしまいます。 '//////////////////////////////////////////////////////////// Private Sub EditExcelFile(FileName As String) Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add xlApp.Visible = True With xlBook .Application.DisplayAlerts = False .SaveAs (FileName) .Application.DisplayAlerts = True End With Set xlBook = Nothing Set xlApp = Nothing End Function '//////////////////////////////////////////////////////////// 上記コードの .SaveAs (FileName)の箇所でエラーがでます。 .SaveAs (FileName)をコメント文にすると2000でも正常に動作します。 FileNameは新しいブック名のパスが入ります。 2000でも正常に動作させるにはどのような処理を加えれば良いでしょうか? 宜しくお願い致します。

  • 同じフォルダーに保存したい。

    報告書.xlsを一部加工後に実行するVBマクロで教えてください。同じフォルダー内で報告書.xlsを上書き保存しさらに4個のsheet(報告書、詳細、依頼書、関連写真)の内、2個のsheet(依頼書、関連写真)を削除した後にsheet(報告書)のセル"Z1"の名前で保存すべく作成したのですが(Z1).xlsが同じフォルダーに作成できません。マイドキュメントに出来てしまいます。 Sub Macro2() Dim strFilePath As String Dim strFileName As String Dim flg As Boolean '◆保存するパスの設定 strFilePath = ThisWorkbook.Path & "\" '◆保存するファイル名の指定 Application.DisplayAlerts = False strFileName = "報告書" ThisWorkbook.SaveAs strFilePath & strFileName Sheets("関連写真").Select ActiveWindow.SelectedSheets.Delete Sheets("依頼書").Select ActiveWindow.SelectedSheets.Delete Sheets("報告書").Select strFilePath = ThisWorkbook.Path & "\" Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=ActiveSheet.Range("z1").Value End Sub

  • VBAの印刷について

    VBAでの質問です。 ある処理を施したあとにページ設定をして印刷するプログラムを作成しているのですが、なぜか同じものが2枚出力されてしまいます。 1枚だけ指定して印刷するにはどのようにコードを書けば良いかどなたか教えて下さい。お願いします。 With ActiveSheet.PageSetup 'ページ詳細設定 .PaperSize = xlPaperA4 .Zoom = False .FitToPagesTall = 1       .FitToPagesWide = 1     End With 'ActiveSheet.PrintOut Worksheets(sheetname5).PrintOut ActiveWorkbook.SaveAs Filename:=takiicode & "_" & Format(today, "yyyymmdd") & ".xls" '保存) Workbooks(takiicode & "_" & Format(today, "yyyymmdd") & ".xls").Close SaveChanges:=True '終了

  • ExcelBookを作って保存して開いて書いて…このコードを簡素にしたい

    よろしくお願いします。 Accessから新規のExcelへデータをエクスポートしたいと思っています。 TransferSpreadsheet はシングルコーテーションがついてしまうのでやめて OutputTo はファイル形式エラーが出てしまうのでやめて CopyFromRecordset rs で行っています。 ユーザーにまずダイアログで保存先を指定してもらっています。 SaveAsのキャンセル時の処理が面倒そうだったので、ダイアログで指定した後にdir関数で同名ファイルの有無を見て存在していたらメッセージを出して保存するしないの選択をしてもらってます。 保存するならそのまま進んで、 xlApp.DisplayAlerts = False xlBook.SaveAs (strFileName) でメッセージを出さずに強制上書きしています。 '新規でExcelを起動 Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add '指定されたファイル名で指定されたフォルダへ一旦保存 xlApp.DisplayAlerts = False xlBook.SaveAs (strFileName)←指定されたフルパスファイル名 '名前をつけて保存したファイルを開く Set xlBook = xlApp.Workbooks.Open(strFileName) Set xlSheet = xlBook.Worksheets(1) xlSheet.Range("A1").CopyFromRecordset rs 何か…新規で作って保存して開いて書いて、無駄が多い気がします。 新規ExcelBookに指定したファイル名を付けられれば一番良いのですが 何か良い方法、処理の仕方等ありましたら教えて下さい。

  • Excel ファイルに保存すると実行時エラーになる

    こんにちは。宮本と申します。VB6(SP5)で、 プログラミングをしております。 下記の様にプログラミングをしましたが、どうしても [実行時エラー’1004’ test_1.xlsにアクセスできません]と、なります。 c:\test.xls は、元々ある事を前提とし、c:\test_1.xlsに上書きをしたいのです。 宜しくお願い致します。 Dim wApp As Excel.Application Dim wExl As Object Set wApp = CreateObject("Excel.Application") Set wApp = CreateObject("Excel.Application") Set wExl = wApp.Workbooks.Open("c:\test.xls") wExl.Worksheets(1).Cells(1, 1).Value = 3000 wExl.Application.Visible = False wExl.Application.DisplayAlerts = False wExl.SaveAs "c:\test_1.xls" <---ここで、エラー

  • 保存したときに毎回出る、不可思議なエラーを回避するには?

    vistaでExcel2007を使用して次のマクロを実行すると Sub MAKE_NEWBOOK_WO_MACROS004() 'Const cnsTITLE = "マクロなしブックの作成" 'Const cnsFILTER = "Excelワークブック (*.xls),*.xls" Dim xlAPP As Application Dim WBK1 As Workbook ' 本ブック Dim WBK2 As Workbook ' 作成ブック Dim strFILENAME As String Dim tblSH As Variant Dim lngLines As Long Set WBK1 = ThisWorkbook ' 本ブック ' 指定シートを新規ブックにコピーする Worksheets("印刷").Copy Set WBK2 = ActiveWorkbook strFILENAME = Format(Date, "ggge年m月d日") & ".xls" Application.DisplayAlerts = False フォームコントロール削除 WBK2.SaveAs "請求書" & strFILENAME MsgBox "この請求書 を保存しました。" Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Application.DisplayFormulaBar = False WBK2.Close False Application.DisplayAlerts = True Set WBK2 = Nothing MAKE_NEWBOOK_WO_MACROS_EXIT: Set WBK1 = Nothing Set xlAPP = Nothing End Sub 次のような表示が毎回出ます。 [開こうしているファイルAAAの形式は、ファイル拡張子が示す形式と異なります。このファイルを開く前に、ファイルが破損していないこと、信頼できる発行元からのファイルであることを確認してください。ファイルを今すぐひらきますか?] OKすると、正常にファイルが表示されます。 このエラーを表示させないようにしたいのです。よろしくお願いします。

  • 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アプリケーションを閉じたければどう記述すればよいのでしょうか? どなたか教えてください。

  • シートAの保存を他のPCのデスクトップにしたい

    Excel2007で見よう見真似でマクロ作成の初心者です。3時間ほどの試行錯誤を繰り返しました。が、お手上げのため質問します。本ブックのシートAを、他のPCでも、マクロが実行できるようにしたいです。よろしくお願いします。 Option Explicit Sub シートAの保存を他のPCでしたい() ' 'Const cnsTITLE = "マクロなしブックの作成" 'Const cnsFILTER = "Excelワークブック (*.xls),*.xls" Dim xlAPP As Application Dim WBK1 As Workbook ' 本ブックの Dim WBK2 As Workbook ' 作成ブック Dim strFileName As String Dim tblSH As Variant Dim lngLines As Long Dim myDate As String Worksheets("シートA").Select myDate = Range("AE4").Value 'Date = Format(Date, "ge年m月度") Set WBK1 = ThisWorkbook ' 本ブック ' シートAをデスクトップの「計算綴り」にコピーする Worksheets("シートA").Copy Set WBK2 = ActiveWorkbook strFileName = Format(myDate, "ge年m月度") & ".xls" ChDir "C:\Users\aaaaa\Desktop\計算綴り"   ’私はaaaaaのため、私しかできないです。 Application.DisplayAlerts = False WBK2.SaveAs "基本計算書" & strFileName, FileFormat:=XlFileFormat.xlExcel8 MsgBox "この計算書を基本計算書 " & myDate & " の名前で保存しました。" Application.DisplayFormulaBar = True WBK2.Close False Application.DisplayAlerts = True Set WBK2 = Nothing MAKE_NEWBOOK_WO_MACROS_EXIT: Set WBK1 = Nothing Set xlAPP = Nothing End Sub -------------------------------------------- いろいろサイトを探していたら次のコードが参考になるようですが これを利用してコードを修正できません。よろしくご指導ください。 ''次のコードは、アクティブブックを「デスクトップ」フォルダに 「Sample.xls」という名前で保存します。 Sub Sample3() Dim Path As String, WSH As Variant Set WSH = CreateObject("Wscript.Shell") Path = WSH.SpecialFolders("Desktop") & "\計算綴り" ActiveWorkbook.SaveAs Path & "Sample1.xls" Set WSH = Nothing End Sub

  • CSV形式で出力後、開くときの警告メッセージについ

    いつもお世話になっております。 ACCESSからデータをCSV形式で出力後、ファイルを開くときに添付のような警告メッセージが表示されます。[はい]をクリックすればファイルは開くことができるのですが、警告メッセージが表示されないようにするにはどうしたらいいでしょうか? xlsxのテンプレートを開き、そこにデータを書き出して、csvで保存するようになっています。csv形式で出力したことがないので、csvのFormatを指定する必要があると思っていますが、どうしたらいいでしょうか? ご教授お願いいたします。 Private Sub CMD_Expo_DblClick(Cancel As Integer) On Error GoTo Err_FileDialog_Click Dim strsql As String Dim strTemplate As String Dim strFileName As String Dim ExpFileName As String Dim xlapp As Object Dim xlWB As Object Dim myCn As New ADODB.Connection Dim myRs As New ADODB.Recordset 'ファイル名作成 ExpFileName = "SNDFILE" & Format(Date, "yyyymmdd") strFileName = GetFileName(False, "", "", ExpFileName & ".csv") 'EXCELアプリケーションを起動 Set xlapp = CreateObject("Excel.Application") 'セットする過程が見えないよう一旦不可視 xlapp.Visible = False Set myCn = CurrentProject.Connection strsql = "Q_BOFAXExpo_MJ" 'レコードセットオープン myRs.Open strsql, myCn, adOpenForwardOnly, adLockReadOnly With xlapp 'テンプレートを開く strTemplate = Application.CurrentProject.Path & "\" & "SNDFILE.xlsx" Set xlWB = .Workbooks.Open(strTemplate) 'テンプレートファイルが存在しないときはエラー If Dir(strTemplate) = "" Then MsgBox "テンプレートファイルを確認してください。", vbOKOnly + vbCritical, "エラー" .Visible = True .Quit Exit Sub End If 'テンプレートファイルオープン .Workbooks.Open strTemplate '結果値出力処理(1行目にヘッダーを表示しているので、2行目1列目からセット xlWB.Worksheets("Sheet1").Cells(1, 1).CopyFromRecordset myRs '完了したら保存 If Len(strFileName) = 0 Then xlWB.Close SaveChanges:=False xlapp.Quit MsgBox "処理を中止します。", vbOKOnly + vbInformation Exit Sub Else xlWB.SaveAs FileName:=strFileName End If MsgBox "BOFAX用のファイルの出力が完了しました。", vbOKOnly + vbInformation End With Set myRs = Nothing: Close Set myCn = Nothing: Close 'Excelを終了します xlapp.Quit Exit Sub Exit_FileDialog_Click: Exit Sub Err_FileDialog_Click: MsgBox "予期せぬエラーが発生しました" & Chr(13) & _ "エラーナンバー:" & Err.Number & Chr(13) & _ "エラー内容:" & Err.Description, vbOKOnly End Resume Exit_FileDialog_Click End Sub