アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel97で作成したプログラムをExcel2003で動作させたところエラーになりました

そこでExcel97 → Excel2000、Excel2000 → Excel2002、Excel2002 → Excel2003、のそれぞれの段階でVBAにどのような変更があったのかをMSDNなどで調べているのですが、Excel2000以降、変更があったのか、なかったのかすら分かりません

変更があったのか、それともなかったのか。もしあったのなら参考になるサイト等があるのか教えていただけないでしょうか

A 回答 (3件)

こんばんは。



>Excel97から2003への移行

>何も記述されていないため、変更があったのかどうかが分からず困っているというのが現状です

「何も記述されていないため」というようなことはありません。

おっしゃっているのは、「 Migration(マイグレーション)」のことだと思います。

Mougの大村あつし氏は、結局は、全部のバージョンで直接調べてみるしかない、という悲観論を述べられていますが、私自身、最終的には、そのようにするしかないと思っています。特に、上位バージョンから、下位バージョンを動かすコードを作るのは至難の業です。上位に関しては、コード的に不自然さは残っても、エラーということは、ほとんどありませんね。概ね、そのエラーは、別のところに存在します。

97 → 2003
http://office.microsoft.com/search/redir.aspx?As …

私自身、一応のMigration についてはある程度心得ているつもりです。邦訳・翻案は、「プロジェクトA」が行っています。プロジェクトA株式会社のページに邦訳が置いてあるはずです。Microsoft社にも置いてあるはずです。

私などが、ここで、Migrationの説明しても、その全てを伝えられませんが、下から上に、積み上げ式で書いたものは、エラーになる可能性がひじょうに少ないです。また、メモリ的にも、上位バージョンのほうがかなり余裕がありますから。だいたい、そこでエラーになるのは、初歩的な参照設定のミスです。

>メソッドで引数の追加や削除などの変更があったと記述されているのですが、

新しいメソッドの追加に関しては、触れる必要はないと思います。また、VBA内のメソッドの削除は、削除ではなくて、隠しオブジェクトになっているはずです。それ自体は生きているしエラーは吐き出しませんが、正しいか間違っているかは、コーディングや目視では、さっぱり分りません。追加に関しては、概ね、プロパティだと思いますが、下位バージョンからの積み上げ式には、トラブルはないはずです。

しかし、一般的に、ブック自体のVBAコードについては、上も下も、あまり互換性を期待しないほうがよいですね。その理由はわかると思いますから、説明はしませんが。

この回答への補足

詳しいご回答ありがとうございます

アドバイスを参考に調べてみます

補足日時:2005/12/22 18:42
    • good
    • 0
この回答へのお礼

教えていただいたサイトやアドバイスを参考に色々と調べてみましたところ、Findメソッドが怪しいと分かりました

初めは単順に何か変更があったから動作しないだろうと思っていたんですが、そう単純にはいかないんだなと思い知らされました
今回のことを教訓に、これからも勉強していこうと思います

詳しく教えていただき本当にありがとうございました

お礼日時:2005/12/26 11:17

追伸です。



マイグレーションセンターのURLです。
http://www.projecta.co.jp/migration/download.html
    • good
    • 0

デバッグになるところとエラー番号がわかるといいのですが、


Excel97で作成したプログラムといえばOSがWIN98でしょうか
Excel2003で動作させたOSはXPですか?ファイルの保存形式でそのプログラムが動作しない場合もありますが、

この回答への補足

えっと、エラーを修正するのが目的ではなく、Excelのバージョンがあがった時にVBAに変更があったのかなかったのかを調べたいのです

MSDNには97→2000の時にいくつかのメソッドで引数の追加や削除などの変更があったと記述されているのですが、それ以降(2000→2002、2002→2003)では何も記述されていないため、変更があったのかどうかが分からず困っているというのが現状です

質問時に詳しく書き込まなくて申し訳ありません(件名も不適切ですね…)

補足日時:2005/12/22 16:53
    • good
    • 0

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