dポイントプレゼントキャンペーン実施中!

現在、WindowsXP + Excel2003環境で運用されているVBAのシステムがあります。
このたび、Windows7 + Excel2010移行することになり動作検証することになったのですが、
以下のような実行時エラー1004(OLEObectクラスのエラー)が連発しています。

・テキストボックスのEnabledが操作できない
・Ativateメソッドで失敗

やはり、このエラーたちは一個ずつ地道に対応するしかないのでしょうか?
エクセルの設定やファイルの保存方法などで劇的に解決できる方法があるのでしょうか?

当方、Excel 2010の経験がありません。
Excel 2010 VBA に詳しい方がいましたら教えて下さい。宜しくお願いいたします。

A 回答 (2件)

・テキストボックスのEnabledが操作できない


シート上の話でいいでしょうか?
OLEObjects は操作できました。
Shapes は 2003 の時から Enabled は無かったかと。
テスト方法に問題はありませんか?

・Ativateメソッドで失敗
これは、Window が前面に出てこないような仕様と
関係あるかも。ですけど、そもそも Active~ とか
Select~ といったものは 2003 の時代でも失敗する
可能性があったので使ってないですね。使うべきで
ないです。
本当に Activate を使う必要がある場所で、
フォアグラウンドウィンドウ(Foreground Window)
の制御と関係ある原因なら、API 等で対処しないと
いけないかもしれません。

原因を無視した解決は無いと思います。
    • good
    • 0
この回答へのお礼

エラーは、シートの最小化した後、そのシートに対する処理で連発していました。
Activateメソッドでのご指摘はズバリでした。
ご回答有難うございました。

お礼日時:2011/09/06 10:30

PC の環境変化に対する VBA 動作テストの基本は参照設定です。


VBA のエディタで [ツール]-[参照設定] を見てみてください。
「参照不可」 となっているコンポーネントがあるかもしれません。

Windows XP + Excel 2003 の PC に別途インストールされていたが、Windows 7 + Excel 2010 の PC にインストールされていないコンポーネントがある。
→ 当該コンポーネントを Windows 7 + Excel 2010 の PC にもインストールする。(ライセンス違反には気を付けたうえで)

そのコンポーネントは Windows 7 + Exce3l 2010 の PC にもインストールしたが、Windows XP + Excel 2003 の PC とは違うバージョンのコンポーネントをインストールした。
→ 参照不可になっているコンポーネントのチェックを外し、合致するコンポーネントをリストの中から見つけてチェックを入れる。

と、こんなところだと思います。
    • good
    • 0
この回答へのお礼

教えて頂いた参照設定の仕組み等、とても勉強になりました。
ご回答有難うございました。

お礼日時:2011/09/06 10:28

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