Excel2007 実行時エラー1004

このQ&Aのポイント
  • Excel2003環境で作成したマクロをExcel2007環境で実行すると実行時エラー1004が発生します。
  • 具体的には、作成した表を所定パスにText形式で保存するマクロの箇所でエラーが発生します。
  • Excel2007では、SaveAsメソッドが失敗し、下位互換性の問題が原因と考えられます。解決策を教えてください。
回答を見る
  • ベストアンサー

Excel2007 実行時エラー1004

宜しくお願い致します。 Excel2003環境時に作成したマクロを2007環境で動作させると実行時エラー1004が返ってきます。 対策をお教えいただきたくお願いします。 (1)Excelで表作成 (2)作成した表を所定パスにText形式で保存するマクロを実行  【Excel2003でのソース】 ActiveWorkbook.SaveAs filename:=(ファイルパス) & ".txt" _ , FileFormat:=xlText (3)FileFormatの箇所で実行時エラー1004(SaveAsメソッドは失敗) Excel2007で上記部分に下位互換市内部分が含まれているのだとおもいますが、対策が全く分かりません。 お知恵をお借りしたくお願いします。

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

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

EXCEL2003とEXCEL2007環境は、別PCと推測します。 > 特定の先を指定していますので どちらも同じパスに保存しようとしてますか? 2007のほうは C:\Documents and Settings\UserName のような、途中に空白を含んではいない? TXT形式ではなく、XLS形式で別名(または別フォルダに)保存するとどうなります?

Greens97
質問者

補足

返信有難うございます。 別PC環境というのは当たっております。 ただ、保存先パスはいずれも同様のパスを指定しております。 別形式でもトライしてみましたが、いずれも結果は同じでした。

その他の回答 (1)

回答No.1

>(2)作成した表を所定パスにText形式で保存するマクロを実行  【Excel2003でのソース】 ActiveWorkbook.SaveAs filename:=(ファイルパス) & ".txt" _ , FileFormat:=xlText そんときのファイルパスの中身?

Greens97
質問者

補足

早速回答戴きまして有難うございます。 ファイルパスは特定の先を指定していますので、ここは問題ではありません。 問題なのは、このマクロをExcel2007で廻した結果、「, FileFormat:=xlText」の 部分で発生しているエラー回避方法です。 宜しくお願い致します。

関連するQ&A

  • マクロ 実行時エラーに付いて

    マクロ初心者です宜しくお願い致します。 OS=Win Vista    Office2007 で下記のようなマクロを組みました。 Sub 保存() '保存 Macro ' Keyboard Shortcut: Ctrl+h ' Dim Uname As String   Uname = CreateObject("WScript.Network").UserName ActiveWorkbook.SaveAs Filename:="C:\Users\" & Uname & "\Desktop\" & Format (Date, "yyyy") & "年度.xlsm", _ FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False End Sub Office2007 の元(マクロ作成PC)で動作確認すると OK でした が  OS=XP Sp3 Office2003 の 別のPCで動かすと ”実行時エラー’1004’: ’SaveAs’メソッドは失敗しました’Workboo’オブジェクト” と表示され下記の部分が黄色で反転されます。 ActiveWorkbook.SaveAs Filename:="C:\Users\" & Uname & "\Desktop\" & Format (Date, "yyyy") & "年度.xlsm", _ FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False 表記方法の問題なのか、変数? 対応できなく困っています。 対処方法をお教え頂ければと思います、宜しくお願い致します。

  • 2010excel の記述方法

    2007excelでマクロを記述したものが、実行エラー1004 「Save As メリッドは失敗しました Workbookオブジェクト」と表示されます。 テバックすると NewWkbook.SaveAs FileName:=FileName, FileFormat:=xlExcel8 がエラー表示されます。 すいません、教えてください If Dir(FileName) <> "" Then '##ファイルが既に存在する If MsgBox("既に指定のファイルが存在します。 置き換えますか?", vbOKCancel, "置き換えの確認") = vbCancel Then NewWkbook.Close saveChanges:=False '##保存せずに終了 Exit Sub End If '##指定ファイル置き換え保存 NewWkbook.SaveAs FileName:=FileName, FileFormat:=xlExcel8 Else '##ファイルを新規保存 NewWkbook.SaveAs FileName:=FileName, FileFormat:=xlExcel8←黄色 End If ' NewWkbook.Close saveChanges:=False Application.DisplayAlerts = True

  • 実行時エラー1004

    下記マクロを実行するとA1に入力した文字に名前をつけて保存するような マクロをつくりましたが A1に 「保存横一列」なら保存できますが 「保存(alt+エンター) セルに2行」 というように(alt+エンター)を入れて複数行にすると 「実行時エラー1004」が出てしまいます。 「保存セルに2行」というように1列にして保存したいのですが どのようにしたらいいのでしょうか? よろしくお願いします。 Sub Macro1() Dim name As String name = Range("A1").Value ChDir "C:\Documents and Settings\E-MACHINE\デスクトップ" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\E-MACHINE\デスクトップ\" & name & ".xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub

  • excel2000マクロでのダイアログ表示での実行

    下記のマクロを実行させると、 ActiveWorkbook.SaveAs Filename:= の所で保存しますか というダイアログが表示されて、はい又はいいえを押さないと次のマクロが実行されないのですが、ダイアログを表示させないで、はいを押したと自動認識して次のマクロを走らせる方法はありますか? ChDir "C:\Documents and Settings\kenkan\デスクトップ\DB\SYSTEM\Inner_System" Workbooks.Open Filename:= _ "C:\Documents and Settings\kenkan\デスクトップ\DB\SYSTEM\Inner_System\一時出力データ.csv" ' その他の疾患を抽出 Columns("H:H").Select Selection.Copy Workbooks.Add ActiveSheet.Paste Cells.Replace What:=" ", Replacement:=" ", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False Application.CutCopyMode = False ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\kenkan\デスクトップ\DB\SYSTEM\Inner_System\一時出力_その他の疾患.txt" _ , FileFormat:=xlText, CreateBackup:=False ActiveWindow.Close

  • エクセル2010で2003形式でマクロ保存したい

    マクロ初心者ですので、よろしくお願いいたします。類似例が無いかと検索しましたが見つからないので質問いたします。 会社のパソコンがエクセル2003から2010に変更されました。しかし、XP環境でエクセル2003しか使えないソフトがあり、そのパソコンも残してあります。2010で作成したマクロブック(xlsm)が、2003でも使えるようファイル名を付けてエクセル2003(xls)で保存できるマクロを作成したのですが、うまくいきません。 2010で保存できた構文に、「m」を削除し、Excel8の構文を付加するのですが、構文「FileFormat:」がハイライトされ、コンパイルエラーと表示され、「名前付き引数がありません」となります。 ActiveWorkbook.SaveCopyAs Filename:=FPATH & "\" & book3 & ".xls", _ FileFormat:=xlExcel8  「ActiveWorkbook.SaveAs」では拡張子が合わないとなりますが、保存はできています。「ActiveWorkbook.SaveCopyAs」で名前付け保存したいのですが、上記のエラーとなります。 よろしくご回答をお願いいたします。

  • excel2007でエラーになるマクロ

    Excel2003では問題なく動いていた以下のマクロですが、これはボタンにマクロを貼り付けてあり、それを2007で実行すると、「問題が発生したため、Microsoft Office Excelを終了します」となり、強制終了になってしまいます。 でも、VBEの方で実行すると、ワークシートはちゃんと保存されて正しく閉じます。 (その場合、VBE自体は終了にならず、起動したままです) また、マクロを表示させてマクロ名を選択し、実行をクリックすると、正常に動作します。 新しく別の図形を作成し、そこにマクロを貼り付けるとやはり強制終了になります。 Excel2007で、リソースの診断などしても問題は見つかりません。 Windowsは、SP2でだめだったので、SP3にしてみましたが、現象は同じで何ら変化はありませんでした。 エラーを出さなくするにはどうすればよいのでしょうか。 --------マクロ--------- Sub ファイル名を変えて保存して閉じる() Dim nnen As String Dim kcode As String Dim kcode2 As String Dim cname As String Dim dno As String Dim dno2 As String Dim myPath As String nnen = ActiveWorkbook.Worksheets("inputform").Range("O5") kcode = ActiveWorkbook.Worksheets("inputform").Range("R3") kcode2 = Format(kcode, "000") cname = ActiveWorkbook.Worksheets("inputform").Range("C7") dno = ActiveWorkbook.Worksheets("inputform").Range("H26") dno2 = Format(dno, "00000") myPath = ThisWorkbook.Path & "\" On Error Resume Next 'エラーが発生しても処理を続行する ActiveWorkbook.SaveAs Filename:=myPath & "様式5_" & nnen & kcode2 & "【" & cname & dno2 & "】" _ , CreateBackup:=False On Error GoTo 0 'エラー処理ルーチンを無効にする ActiveWorkbook.Close End Sub

  • EXCEL確認メッセージを出さずに保存したい

    恐れ入りますが、ご教示お願い致します。 質問(1) EXCELファイルを (1)特定の名前で (2)CSVファイルにして 保存をしたいと考えています。次のマクロを書いたところ、”CSVへの変更を保存しますか?”確認メッセージがでます。 確認メッセージを出さずに、保存するためには、どのように記述したらよいでしょうか? With ActiveWorkbook .SaveAs Filename:=Mypath & "\" & Mybook & MYsireal, FileFormat:=xlCSV .Close End With (2)改行するためにはどうしたらよいでしょうか? .SaveAs Filename:=Mypath & "\" & Mybook & MYsireal, FileFormat:=xlCSV を、次のように改行させたいのです。 .SaveAs Filename:=Mypath & "\" & Mybook & MYsireal,      FileFormat:=xlCSV _ を使うということを、なんとなく覚えておりますが、うまくいきません。注意点等をご教示頂ければと思います。 以上 よろしくお願い致します。

  • VBA でフロッピーに保存が時間かかりすぎる

    excel2000を使用し VBAで フロッピーディスクへの保存 ChDir "A:\" ActiveWorkbook.SaveAs Filename:="A:\請求台帳.xls",FileFormat:=xlNormal のマクロを実行したところ物凄い時間がかかります。 普通に送るから実行するとものの20秒もかかりません。 どうしてかよくわかりません。 フロッピへ送るフアイルは980MB程度です。 よろしくお願いします。

  • Excel VBAでCSV出力をすると実行時エラー

    Excelで品番ごとの数量データなどを他のシステムに取り込むためにCSV形式で出力するプログラムをVBAで作りました。 CSV出力を実行すると 「実行時エラー1004: 'ファイル名.csv'は読み取り専用です。アクセスできません。」 のエラーが出てしまいます。 このプログラムを作成したのは去年であり、Windows XPとExcel2003の環境では一度も出なかったエラーなのですが、PCの更新で新しい端末がWindows7とExcel2010となってから出るようになりました。 コードは以下の通りです ================================================================== 11桁の品番の間のハイフンや後ろに記号などを削除してTempシートのA列にデータを貼り付け(コード省略) bolTemp = Application.DisplayAlerts Application.DisplayAlerts = False Sheets("temp").Copy 'CSV出力 ActiveWorkbook.SaveAs Filename:="C:\Hinban Data.csv", FileFormat:=xlCSV, Local:=True ActiveWorkbook.Saved = True ActiveWorkbook.Close Application.DisplayAlerts = bolTemp MsgBox ("CSVデータの出力が完了しました(C:\Hinban Data.csv)") End Sub ================================================================== エラーが起きるエクセルファイルを以前の端末(廃棄前)にコピーして実行したらCSV出力ができました。 Windows7とExcel2010の環境下では何かコードの追記が必要なのでしょうか。 ネット検索などで調べましたがそれらしいヒントが見つかりません。 対処法などご存じでしたら、教えていただけるととても助かります。 よろしくお願いいたします。

  • vbaマクロ 実行時エラー '91'について教えてください

    下記のマクロで、ファイル指定保存をする時に "実行時エラー91 オブジェクト変数またはWithブロック変数が設定されていません”がでます。 やりたいのは、選択したセルの1番目をファイル名として 保存をしたいのですが、うまくいきません。 どうしたらよいのでしょうか? Sub Macro1() Dim セル As Object Dim i As Long  i = 1  For Each セル In Selection   Worksheets("Sheet2").Cells(1, i).Value = セル     i = i + 1  Next ActiveWorkbook.SaveAs Filename:="D:\TEST\" & セル & ".xls" End Sub

専門家に質問してみよう