電子書籍の厳選無料作品が豊富!

Office2007エクセルでの質問です。
Office2003だと正常に動作します。

標準モジュールに作ったマクロなんですが。

(1)他エクセルファイル(複数)を開いて、情報を取得。閉じる。
(2)一度、自分の一覧用シートに貼り付ける。
(3)ソートをかける。
(4)参照したりなんだりでデータを集計する。
(5)結果表示用シートに表示する。

エクセル起動後、一度目の実行は問題なく終了します。
ブックを閉じずに、再度実行すると、結果はまったく同じになるはずなのに、(3)のソートで
・実行時エラー'-2147417848(80010108)'
 'Sort'メソッドは失敗しました'Range'
・実行時エラー'1004'
 'Sort'メソッドは失敗しました'Range'
のいずれかが発生します。

また、対象のRangeを一度取得し、オブジェクトに対してSortをかけようとすると、
実行時エラー'-2147417848(80010108)'
オートメーションエラーです。
起動されたオブジェクトはクライアントから切断されました。
が発生します。

考えられる、予想される原因としてはどんなものがあるでしょうか?

かなり困り、急いでいます。

ソースも載せないで(あまりにも長いので・・)、なんですが、よろしくお願いいたします。

A 回答 (2件)

参照設定の問題だったり、(事前バインディングから事後バインディングへ変えてみる)


AciveXコントロールの問題だったり、(特殊なコントロールを使ってないかチェック)
自動保存の問題だったり、(Offにしてみる)
OSもしくはOfficeのサービスパック未適用の問題だったり、(最新パッチを当ててみる)
...他にもありそうですが、やっぱりコードを提示してみない事には難しいような気がします。
コードを編集し直し分割作成するなどして、再現する箇所を絞り込む事はできないんでしょうか。

あとは環境要因がないか、
新規Bookに移設したり、
セーフモード下のExcelで実行したり、
他ユーザーのプロファイルで実行したり、
他端末で実行したり、
障害の発生レベルを確認する事も必要かもしれませんね。
    • good
    • 0
この回答へのお礼

丁寧にありがとうございます。
そういったヒントが欲しかったのです!

しかしどうやら、原因はユーザー設定リストまわりの、2003と2007での仕様の違いでした。
仕様というよりはバグだろっ!って感じですが。

#1さんへのお礼に投稿したのであしからず・・・。

また質問する機会があれば、分割、抽出してなるべくソースを載せます。

お礼日時:2010/02/26 19:33

コードを見ないと何とも答えられませんね。



エラー箇所のコードだけでも提示できませんか?
    • good
    • 0
この回答へのお礼

ありがとうございます。

エラー箇所。確かにそこに問題がありました。
一応手順を書いてみたものの一番肝心なところが抜けてました。

ユーザー設定リスト使っていたんです。
どうやらoffice2007のバグっぽい。

ソートメソッドのオーダー指定は、前回実行時のものが引き継がれますよね。
(1)通常ソート実行(昇順指定)
(2)ユーザー設定リスト作成
(3)作成したリストによるソート
(4)リスト削除
とやっていたのですが、2回目に実行するときは
(1)の実行で、(3)の設定が引き継がれていたので
ユーザー設定リストがないために、エラーが発生。
しかもマクロを中断するとエクセルがフリーズしていました。

2003では、なくても問題がないですし、指定のオーダーが優先される
と思います。
マクロで使用するリストは普通削除します。
なのに、記憶されて更にフリーズとは・・・ありがとうございました。

お礼日時:2010/02/26 19:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!