• ベストアンサー

Excel97から2003への移行

Excel97で作成したプログラムをExcel2003で動作させたところエラーになりました そこでExcel97 → Excel2000、Excel2000 → Excel2002、Excel2002 → Excel2003、のそれぞれの段階でVBAにどのような変更があったのかをMSDNなどで調べているのですが、Excel2000以降、変更があったのか、なかったのかすら分かりません 変更があったのか、それともなかったのか。もしあったのなら参考になるサイト等があるのか教えていただけないでしょうか

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 >Excel97から2003への移行 >何も記述されていないため、変更があったのかどうかが分からず困っているというのが現状です 「何も記述されていないため」というようなことはありません。 おっしゃっているのは、「 Migration(マイグレーション)」のことだと思います。 Mougの大村あつし氏は、結局は、全部のバージョンで直接調べてみるしかない、という悲観論を述べられていますが、私自身、最終的には、そのようにするしかないと思っています。特に、上位バージョンから、下位バージョンを動かすコードを作るのは至難の業です。上位に関しては、コード的に不自然さは残っても、エラーということは、ほとんどありませんね。概ね、そのエラーは、別のところに存在します。 97 → 2003 http://office.microsoft.com/search/redir.aspx?AssetID=HA011401651033&Origin=HH100308411033&CTT=5 私自身、一応のMigration についてはある程度心得ているつもりです。邦訳・翻案は、「プロジェクトA」が行っています。プロジェクトA株式会社のページに邦訳が置いてあるはずです。Microsoft社にも置いてあるはずです。 私などが、ここで、Migrationの説明しても、その全てを伝えられませんが、下から上に、積み上げ式で書いたものは、エラーになる可能性がひじょうに少ないです。また、メモリ的にも、上位バージョンのほうがかなり余裕がありますから。だいたい、そこでエラーになるのは、初歩的な参照設定のミスです。 >メソッドで引数の追加や削除などの変更があったと記述されているのですが、 新しいメソッドの追加に関しては、触れる必要はないと思います。また、VBA内のメソッドの削除は、削除ではなくて、隠しオブジェクトになっているはずです。それ自体は生きているしエラーは吐き出しませんが、正しいか間違っているかは、コーディングや目視では、さっぱり分りません。追加に関しては、概ね、プロパティだと思いますが、下位バージョンからの積み上げ式には、トラブルはないはずです。 しかし、一般的に、ブック自体のVBAコードについては、上も下も、あまり互換性を期待しないほうがよいですね。その理由はわかると思いますから、説明はしませんが。

blue_001
質問者

お礼

教えていただいたサイトやアドバイスを参考に色々と調べてみましたところ、Findメソッドが怪しいと分かりました 初めは単順に何か変更があったから動作しないだろうと思っていたんですが、そう単純にはいかないんだなと思い知らされました 今回のことを教訓に、これからも勉強していこうと思います 詳しく教えていただき本当にありがとうございました

blue_001
質問者

補足

詳しいご回答ありがとうございます アドバイスを参考に調べてみます

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

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

全文を見る
すると、全ての回答が全文表示されます。
noname#15459
noname#15459
回答No.1

デバッグになるところとエラー番号がわかるといいのですが、 Excel97で作成したプログラムといえばOSがWIN98でしょうか Excel2003で動作させたOSはXPですか?ファイルの保存形式でそのプログラムが動作しない場合もありますが、

blue_001
質問者

補足

えっと、エラーを修正するのが目的ではなく、Excelのバージョンがあがった時にVBAに変更があったのかなかったのかを調べたいのです MSDNには97→2000の時にいくつかのメソッドで引数の追加や削除などの変更があったと記述されているのですが、それ以降(2000→2002、2002→2003)では何も記述されていないため、変更があったのかどうかが分からず困っているというのが現状です 質問時に詳しく書き込まなくて申し訳ありません(件名も不適切ですね…)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Access2007への移行で動かなく・・・

    よろしくお願いいたします。 Access2000で作成されたVBAのプログラムをAccess2007に移行しました。 そこでEXCELを入力して帳票出力している部分があるのですが、そこでエラーになるようになってしまいました。 ==エラーの部分== SQL = "SELECT * FROM `Sheet1$` IN 'c:\data.xls' 'EXCEL 8.0;'" Me.RecordSource = SQL これで“FROM句の構文エラーです。”と表示されるようになってしまいました。 色々と試してみましたが、どうしてもエラーになってしまいます。 どうか、お助けください。 ちなみにEXCEL 8.0をEXCEL 12.0に変更しても同じでした。

  • エクセル2003で作ったVBAが2007で動かない

    現在、エクセル2003で作成したVBAがエクセル2007だと、マクロを有効にして起動させようとするとコンパイルエラーとなって動作しない現象が起きていて困っています。 どなたか、解決方法をご教授頂けないでしょうか? ・VBAを含んだファイルを開いて、マクロを有効にすると ”コンパイルエラー:変数が定義されていません” というエラーボックスが出てきてプログラムの矢印のポイントがPrivate Sub User Form_Initialize() のところを指したまま止まってしまう。 ・このVBAはエクセルの表の書かれたデータをRS-232Cで出力するようなプログラムが使われていて、MSCommというものが使われています。この関連のプログラムが2003と2007では互換がないということはありますでしょうか? どうぞ、よろしくお願い致します。

  • Windows7 + Excel2010 への移行

    現在、WindowsXP + Excel2003環境で運用されているVBAのシステムがあります。 このたび、Windows7 + Excel2010移行することになり動作検証することになったのですが、 以下のような実行時エラー1004(OLEObectクラスのエラー)が連発しています。 ・テキストボックスのEnabledが操作できない ・Ativateメソッドで失敗 やはり、このエラーたちは一個ずつ地道に対応するしかないのでしょうか? エクセルの設定やファイルの保存方法などで劇的に解決できる方法があるのでしょうか? 当方、Excel 2010の経験がありません。 Excel 2010 VBA に詳しい方がいましたら教えて下さい。宜しくお願いいたします。

  • vbaでvbaProjectのパスワード解除する

    マクロを作成したエクセルファイルがあるのですが、配布した数が1万ほどありまして、 今回、vbaプログラム自体を変更しなければいけなくなりました。 そこで、調べた結果vbaをvbaで編集することまではわかりました。 http://officetanaka.net/excel/vba/vbe/index.htm しかし、配布したエクセルファイルのvbaProjectにパスワード保護をかけていまして、上手く動作しません。 なので、vbaでvbaProjectの保護を解除したいのですが、何かいい方法がありましたら、 ご指導の程よろしくお願いします。 ※vbaProjectのパスワードはわかっています。

  • EXCEL VBA エラーで中断した場所

    EXCEL VBA エラーで中断した場所 EXCEL VBAの初心者です。。。 Excel VBAで他人の作ったプログラムを変更しています。 プログラムを実行中に「インデックスが有効範囲にありません。」というダイアログが出て中断しました。 ところが、このダイアログには 「OK」ボタンしかなく、どこで止まったのかわかりません。 プログラムが中断した場所を知りたいのですが、どうすればよいのでしょうか。

  • Excelが開かない

    数年前にNECデスクトップパソコンを購入し、Excelも通常どおり使用していましたが、突然Excelが開かなくなり困っています。解決方法を教えていただけると助かります。(本日電話で照会しようとしましたが、休業でしたので教えてください。) ※機種 :NEC VALUESTAR VN770/E Excelファイルをダブルクリックして開こうとすると、Excelファイルが一旦開くのですが(一度目は普通にファイルが開き、2度目以降は左半分に「Excelによって、以下のファイルが回復されました。残したいファイルを保存してください。」と表示され、右半分に開こうとしたExcelファイルの内容が表示されます。」)、しばらく時間が経過する、ないしは対象ファイルを指定すると、以下のエラーメッセージが表示されます。 最初は「Microsoft Excelは動作を停止しました。 この問題の解決を確認しています。」と表示され、しばらくすると、 「Microsoft Excelは動作を停止しました。 問題が発生したため、プログラムが正しく動作しなくなりました。プログラムは閉じられ、解決策がある場合はWindowsから通知されます。 プログラムの終了(C)」 と表示され、しばらくすると、Excelファイルが閉じられ、エラーメッセージだけが残ります。 違うExcelファイルで実行したり、PCを立ち上げたり、日を改めて操作したりしましたが、結果は同じです。 これまで作成したExcelが全く使用できなくなって、困っています。解決策がわかりましたら、教えてください。 Excelファイルは100個くらいあります。いくつかのExcelファイルを立ち上げてしまいましたが、破壊されていませんでしょうか。 なお、PC、メール、Wordは何の問題もなく使用できます。 ※OKWAVEより補足:「NEC 121ware :ソフトウェア」についての質問です

  • Excel2003でのマクロをExcel2010で

    Excel2003で動くことを確認されているマクロが組み込まれているスプレッドシートをExcel2010で使おうとすると以下のエラーメッセージが出ます。 「コンパイルエラー プロジェクトまたはライブラリが見つかりません」 そしてマクロのコードが表示されます。 Excel2010を擬似的にExcel2003に変更してこのプログラムを使いたいと考えています。やり方を教えてください。 なおWindows7です。

  • エクセル Webクエリの動作が不安定

    エクセルVBAで為替データーを取得する為のプログラムを作成中です。 数年分の為替データーを取得する為のプログラムなのですが、データーを取得できる時と出来ないときがあります。 何回か9年分のデーターを取り込むことに成功しているのですが、実行時エラーが出て全くプログラムが使えなくなるときがあります。 プログラムに何の変更も加えず、次の日に、プログラムを走らせると動作する。一度うまくいったので立て続けに、動作させると、今度は動作しないという具合で、プログラム作成が進みません。 だめなときには、データー→外部データーの取り込み→新しいWebクエリと手動でもデーターが取り込めなくなっています。 原因がどこにあるか分からず困っています。 OSは 2000XP、エクセルは2003です。 データーはYahooファイナンスです。 URLの中に使えない文字がある記述がヘルプをたどっていったらありましたが(?など)、これが原因でしょうか?でも何度かは成功しています。 念不具合の原因を調べる方法を教えていただけるとありがたいのですが。

  • VBプログラムをEXCEL VBAに移植する方法について教えてください

    こんばんは。私はVBA初心者です。 ”良くVBとVBAは同様な言語”と伺いますが、実際にVBプログラムのソースを VBAにコピーしてもエラーが出て使用できません。 私がいまいちVBとVBAの明確な違いがわかっていないからだと思いますが、頭がもやもやです。 VBはHP上からVB2005を入手しました。 そもそもVBとVBAの相違点は何が違いますか? HPを見ているとVBAでもVB同様にシステムも組めると記載されているため EXCEL上で動作するVBAで、簡単なシステムを組みたいと思ってます。 どうすればVBプログラムをEXCEL VBAに簡単に移植できますか? 作業手順、移植する際に注意する点等、アドバイスを教えてください。 また参考になるHPや本をご紹介くださいませ。

  • ExcelのVBAコードを他のBookへ展開

    OS:Win2000 Excel2000 ExcelでモジュールシートとThisWorkBookにVBAコードを作成しました。 このVBAを他の16個のExcelブックへ展開するのですが、 何か変更があった場合、16個のbookを修正しなければなりません。 管理が煩雑になるので、避けたいのですが何か良い方法はありますでしょうか? 16個のExcelブックは同じフォルダーで管理され、 Lan又はHttp(Web)で複数人が照会、変更を行います。

専門家に質問してみよう