• 締切済み

マクロ実行時に必ずエラーが発生して困ってます

EXCEL2007を利用しています。 毎日何百行もある返品のデータがexcelで届くので、そのデータから特定のルールに該当するデータを抽出し別ファイルで保存して処理をしなければならず、最初はフィルタを使って作業していました。 その間少しずつマクロを勉強しながら以下のマクロを作りました。 そのマクロを実行時に必ずエラーが発生し、「送信する」「送信しない」のポップアップが出た後、EXCEL破損のエラーが発生します。 細かいエラーの内容は失念してしまいました。 作業は終了していて、別ファイルもきちんと希望通りの名前で作成されるのですが、 毎回excelの修復が走って時間がかかり困っています。 作業としては以下の通りです。 sheet1にマクロを登録したボタンを作成しています。 sheet2のC2セルにはデータ貼り付けを行なっています。 関数でB列に特定のルールに該当するデータのみ連番が入るようにしています。 そのデータをsheet3(「返品」という名前)にvlookupで移動しています。 空欄の行も移動するため、そのデータをマクロでフィルタをかけ、空欄を除く該当データのみを表示させてコピー、新規ファイルを立ち上げて貼り付けし、「返品データmmdd」という名前(mmddは前日日付)をつけて保存するまでのマクロを作っています。 ************************************************************************** Sub 返品()   Sheets("返品").Select   Rows("1:1").Select   Selection.AutoFilter   ActiveSheet.Range("$A$1:$B$1000").AutoFilter Field:=1, Criteria1:="<>"   Range("A1:B1001").Select   Selection.Copy   Workbooks.Add   ActiveSheet.Paste   ActiveWorkbook.SaveAs Filename:= _   "\\C\返品データ\ " & " 返品データ" & Format(Date - 1, "mm") & Format(Date - 1, "dd") & ".xls", FileFormat:= _   xlExcel8, CreateBackup:=False End Sub ************************************************************************** エラーが出ないようにするためにはどのようにすればよいのでしょうか。 色々とマクロを修正してみましたが、なにぶんマクロを勉強中のため修正できず煮詰まっています。 仕事で使っているため、至急修正が必要な状況に迫られています。 どうかご教示ください。 よろしくお願いいたします。

みんなの回答

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

> 細かいエラーの内容は失念してしまいました。 こういう情報がカギを握ってるんですよ。 > 「送信する」「送信しない」のポップアップが出た後 どこで出ます? > ActiveWorkbook.SaveAs Filename:= _   "\\C\返品データ\ " & " 返品データ" & Format(Date - 1, "mm") & Format(Date - 1, "dd") & ".xls", FileFormat:= _   xlExcel8, CreateBackup:=False 返品データの左側、C の前に\\とありますが、なぜにUNCパス? ローカルディスクに吐き出してから、ネットワークドライブへMOVEなりCOPYなりしてはいかがでしょう?

mottekedorobou1
質問者

補足

失礼しました。 エラーの内容は以下の通りです。 「問題が発生したため、Microsoft Office Excel を終了します。 ご不便をおかけして申し訳ありません。」 「作業中の内容が失われたおそれがあります。」 発生するタイミングとしては、sheet1にある上記マクロを登録したボタンをクリックした後です。 希望のファイルは作成されているところから判断する限りでは、 ファイルを作成するまではマクロが実行できているのではと思います。 また、使用しているファイルはexcel2007ですが、吐き出すファイルはexcel2003出なければいけないため、xlExcel8,となっています。 ファイルの保存先ですが、複数名が様々な端末でマクロを実行する事になるため、ローカルに吐き出さず、ネットワークドライブへ直接吐き出そうと思った次第です。 この考えがおかしかったでしょうか。

  • goold-man
  • ベストアンサー率37% (8364/22179)
回答No.1

返品のデータファイルが2007以外のバージョンでは?

mottekedorobou1
質問者

補足

ご指摘の通り、吐き出したい返品のファイルは2003形式にしたく、xlExcel8,としました。 使用しているexcelは2007なのですが、ここがいけなかったのでしょうか。 作業の仕様上、作成されたファイルをネットワークで繋がっていない別端末にUSBで持って行って作業をするため、その端末がexcel2003でなければならず、止む無くこうしましたが、もしかするとここがエラーになっているのでしょうか。

関連するQ&A