• ベストアンサー

2回目のSortメソッドが失敗~2007~

Office2007エクセルでの質問です。 Office2003だと正常に動作します。 標準モジュールに作ったマクロなんですが。 (1)他エクセルファイル(複数)を開いて、情報を取得。閉じる。 (2)一度、自分の一覧用シートに貼り付ける。 (3)ソートをかける。 (4)参照したりなんだりでデータを集計する。 (5)結果表示用シートに表示する。 エクセル起動後、一度目の実行は問題なく終了します。 ブックを閉じずに、再度実行すると、結果はまったく同じになるはずなのに、(3)のソートで ・実行時エラー'-2147417848(80010108)'  'Sort'メソッドは失敗しました'Range' ・実行時エラー'1004'  'Sort'メソッドは失敗しました'Range' のいずれかが発生します。 また、対象のRangeを一度取得し、オブジェクトに対してSortをかけようとすると、 実行時エラー'-2147417848(80010108)' オートメーションエラーです。 起動されたオブジェクトはクライアントから切断されました。 が発生します。 考えられる、予想される原因としてはどんなものがあるでしょうか? かなり困り、急いでいます。 ソースも載せないで(あまりにも長いので・・)、なんですが、よろしくお願いいたします。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

参照設定の問題だったり、(事前バインディングから事後バインディングへ変えてみる) AciveXコントロールの問題だったり、(特殊なコントロールを使ってないかチェック) 自動保存の問題だったり、(Offにしてみる) OSもしくはOfficeのサービスパック未適用の問題だったり、(最新パッチを当ててみる) ...他にもありそうですが、やっぱりコードを提示してみない事には難しいような気がします。 コードを編集し直し分割作成するなどして、再現する箇所を絞り込む事はできないんでしょうか。 あとは環境要因がないか、 新規Bookに移設したり、 セーフモード下のExcelで実行したり、 他ユーザーのプロファイルで実行したり、 他端末で実行したり、 障害の発生レベルを確認する事も必要かもしれませんね。

potluckker
質問者

お礼

丁寧にありがとうございます。 そういったヒントが欲しかったのです! しかしどうやら、原因はユーザー設定リストまわりの、2003と2007での仕様の違いでした。 仕様というよりはバグだろっ!って感じですが。 #1さんへのお礼に投稿したのであしからず・・・。 また質問する機会があれば、分割、抽出してなるべくソースを載せます。

その他の回答 (1)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

コードを見ないと何とも答えられませんね。 エラー箇所のコードだけでも提示できませんか?

potluckker
質問者

お礼

ありがとうございます。 エラー箇所。確かにそこに問題がありました。 一応手順を書いてみたものの一番肝心なところが抜けてました。 ユーザー設定リスト使っていたんです。 どうやらoffice2007のバグっぽい。 ソートメソッドのオーダー指定は、前回実行時のものが引き継がれますよね。 (1)通常ソート実行(昇順指定) (2)ユーザー設定リスト作成 (3)作成したリストによるソート (4)リスト削除 とやっていたのですが、2回目に実行するときは (1)の実行で、(3)の設定が引き継がれていたので ユーザー設定リストがないために、エラーが発生。 しかもマクロを中断するとエクセルがフリーズしていました。 2003では、なくても問題がないですし、指定のオーダーが優先される と思います。 マクロで使用するリストは普通削除します。 なのに、記憶されて更にフリーズとは・・・ありがとうございました。

関連するQ&A