こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

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
**************************************************************************

エラーが出ないようにするためにはどのようにすればよいのでしょうか。
色々とマクロを修正してみましたが、なにぶんマクロを勉強中のため修正できず煮詰まっています。

仕事で使っているため、至急修正が必要な状況に迫られています。
どうかご教示ください。
よろしくお願いいたします。

投稿日時 - 2012-09-19 02:31:17

QNo.7705494

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

> 細かいエラーの内容は失念してしまいました。
こういう情報がカギを握ってるんですよ。

> 「送信する」「送信しない」のポップアップが出た後
どこで出ます?


> ActiveWorkbook.SaveAs Filename:= _
  "\\C\返品データ\ " & " 返品データ" & Format(Date - 1, "mm") & Format(Date - 1, "dd") & ".xls", FileFormat:= _
  xlExcel8, CreateBackup:=False

返品データの左側、C の前に\\とありますが、なぜにUNCパス?
ローカルディスクに吐き出してから、ネットワークドライブへMOVEなりCOPYなりしてはいかがでしょう?

投稿日時 - 2012-09-19 21:22:10

補足

失礼しました。
エラーの内容は以下の通りです。
「問題が発生したため、Microsoft Office Excel を終了します。 ご不便をおかけして申し訳ありません。」
「作業中の内容が失われたおそれがあります。」

発生するタイミングとしては、sheet1にある上記マクロを登録したボタンをクリックした後です。
希望のファイルは作成されているところから判断する限りでは、
ファイルを作成するまではマクロが実行できているのではと思います。

また、使用しているファイルはexcel2007ですが、吐き出すファイルはexcel2003出なければいけないため、xlExcel8,となっています。

ファイルの保存先ですが、複数名が様々な端末でマクロを実行する事になるため、ローカルに吐き出さず、ネットワークドライブへ直接吐き出そうと思った次第です。
この考えがおかしかったでしょうか。

投稿日時 - 2012-09-21 18:22:08

ANo.1

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

投稿日時 - 2012-09-19 17:47:28

補足

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

投稿日時 - 2012-09-21 18:24:23

あなたにオススメの質問