Excel2007のマクロ(excel4.0)でマクロエラーが発生する

このQ&Aのポイント
  • Excel VBAで開発されたソフトの改造を行っていますが、Excel2007で動作しないマクロがあり困っています。
  • 改造元ソフトはOffice2000で開発されており、Excel2007で動作するとマクロエラーが発生する処理があります。
  • マクロエラーの内容はマクロ(excel4.0)のBV28で発生しており、シートの特定の範囲を選択することができません。Excel2000やExcel2003では正常に選択できますが、Excel2007ではエラーが発生します。
回答を見る
  • ベストアンサー

Excel2007のマクロ(excel4.0)のSELECT関数でマクロエラーが発生する

Excel VBAで開発されたソフトの改造を行ってますが、Excel2007で動作しないマクロがあり困ってます。 <開発環境> ・WindowsXP Pro SP3 ・Celeron 540(1.8GHz) ・メモリ1GB ・Excel2007 SP1 (Microsoft Office2007) 改造元ソフトはOffice2000で開発されており、Excel2007で動作するとマクロエラーが発生する処理があります。 因みにまだソフト改造はしてなく、そのままExcel2007で動作させるだけでマクロエラーが発生します。 発生する箇所はマクロ(excel4.0)で定義されており、下記のコマンドです。 =SELECT(!選択エリア) マクロエラーの内容は下記になります。 ------------------------------- マクロエラー [dbg.xls]マクロ(excel4.0)BV28 ------------------------------- やりたい事はシートの特定の範囲を選択することです。 "選択エリア"は正しく定義されていることは確認してます。 (=シート名!$D$4:$CY$103 と定義してます) Excel2000やExcel2003ではマクロエラーが発生せずに正常に選択されます。 Excel2007のマクロセキュリティ設定を「すべてのマクロを有効にする」にしてます。 開発者向けのマクロ設定を「VBAプロジェクトオブジェクトモデルへのアクセスを信頼する」にチェックしても改善しません。 ネットで調べましたが判らず、ここで質問させて頂きました。 判りにくい説明で申し訳ありませんが、よろしくお願いします。

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

  • ベストアンサー
  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.1

マクロシートが見つかったようでよかったですね。 あれを回答しながらたぶん次は4.0マクロについての質問があるだろうと予想していました。。。(^^;;; 4.0マクロについては使ったこともないので今回の回答は控えようと思ったのですが、もしかして、ということもありますので。 VBAでもアクティブにしてないシートのセルは選択できないのですが、その辺りはどうですか? 2007で実行するときに、”選択エリア”のあるシートをアクティブにしてから実行しましたか? 該当シートをアクティブにしてから実行、とか、 SELECTする前に強制的に該当シートをアクティブにするコード入れて実行、とか。 選択エリアがSheet1にあるとしたら =ACTIVATE("Sheet1") =SELECT(!選択エリア) たぶん、否、きっと、トンマな回答でしょう。。。(^^;;;  

yosshi777
質問者

お礼

前回はありがとうございました。 今回もご回答感謝してます。 やはり予想されてましたか(笑) アクティブのご指摘で解決できました。 下記の1行をSELECTの前に追加しました。 =WORKBOOK.ACTIVATE("Sheet1") Excel2007とそれ以外のバージョンはマクロ動作に互換性ありませんね(汗) まだまだ、前途多難です。 でも、また一つ問題が解決できました! 本当に感謝してます。 ありがとうございました。

関連するQ&A

  • 既存Excel VBAソフトがOffice2007でマクロエラーが発生

    初めて投稿させて頂きました。 Excel VBAで開発されたソフトの改造を行っているのですが、初めてのVBAで悪戦苦闘しております。 <開発環境> ・WindowsXP Pro SP3 ・Celeron 540(1.8GHz) ・メモリ1GB ・Microsoft Office2007 SP1 改造元ソフトはOffice2000で開発されており、Office2007で動作するとマクロエラーが発生する処理があります。 因みにまだソフト改造はしてなく、そのままOffice2007で動作させるだけでマクロエラーが発生します。 発生する箇所はVBAコードで定義されており、下記のマクロ実行時です。 Application.Run ("macro1") マクロエラーの内容は下記になります。 ------------------------------- マクロエラー [dbg.xls]マクロ(excel4.0)BV25 ------------------------------- この「macro1」はVBAのコードにはありません。 Excelの開発タブのマクロ一覧にはあります。 マクロ一覧で「macro1」を選択して、"編集"ボタンを押しても、マクロ一覧画面が消えるだけで何も表示されません。 この「macro1」がどこに定義されているか調べても全く判らず、ここで質問させて頂いた次第です。 Office2000やOffice2003ではマクロエラーが発生せずに正常に動作します。 Office2007のマクロセキュリティ設定を「すべてのマクロを有効にする」にしてます。 開発者向けのマクロ設定を「VBAプロジェクトオブジェクトモデルへのアクセスを信頼する」にチェックしても改善しません。 Office2000やOffice2003では動作しているので「macro1」はどこかに定義されているのだと思いますが、VBAコードにはありませんでした。 マクロ一覧にありますが、マクロ一覧の編集ボタンを押してもマクロが表示されません。 このマクロ「macro1」はどこで定義されているか、ご教授して頂けると助かります。 判りにくい説明で申し訳ありませんが、よろしくお願いします。

  • Excelマクロ(excel4.0)のTODAY関数で日付が正常に表示できない

    Excel VBAで開発されたソフトの改造を行っているのですが、初めてのVBAで悪戦苦闘しております。 Excel2000で開発されたソフトでマクロ(excel4.0)が組み込まれてますが、下記の方法で日付を表示すると"2004/10/7"と表示されてしまいます。 =FORMULA(TODAY(),!HIZUKE) 当たり前なのですが、下記だと"2008/10/8"と表示されます。 =FORMULA("2008/10/8",!HIZUKE) パソコンの時計は 2008/10/8 に設定されてます。 HIZUKEのセルの書式設定は「日付-2005/3/15」の種類で設定してます。 Excel2000とExcel2007で確認しましたが、同じ症状です。 違うパソコンで確認しましたが、改善できず困ってます。 原因がわかる方、ご教授いただけると助かります。 <開発環境> ・WindowsXP Pro SP3 ・Celeron 540(1.8GHz) ・メモリ1GB ・Excel2007 SP1 (Office2007)

  • Excel2007でBOOK間のシート移動をVBAで行うとエラーになる

    Excel VBAで開発されたソフトの改造を行ってますが、Excel2007で動作しないマクロがあり困ってます。 <開発環境> ・WindowsXP Pro SP3 ・Celeron 540(1.8GHz) ・メモリ1GB ・Excel2007 SP1 (Microsoft Office2007) 改造元ソフトはOffice2000で開発されており、Excel2007で動作するとマクロエラーが発生する処理があります。 因みにまだソフト改造はしてなく、そのままExcel2007で動作させるだけでマクロエラーが発生します。 発生する箇所はVBAで開発されており、下記のコマンドです。 Sheets(移動元シート名).Move Before:=Application.Workbooks(移動先ブック名).Sheets(1) 異常の内容は下記になります。 ------------------------------- ?err.Description 移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー] コマンドと [貼り付け] コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。 ?err.Number 1004 ------------------------------- 移動元BOOKは1シート、移動先BOOKは1シートあります。 これをExcel2000で実行すると正常にシートが移動できます。 (移動元BOOKのシートがなくなりBOOKが終了して、移動先BOOKは2シートになります) Excel画面の移動元シートを選択して、右クリックメニューの「移動またはコピー」で移動先ブックを指定して移動すると 「移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー] コマンドと [貼り付け] コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。」 とVBAから実行した時と同じ内容のエラーダイアログが表示されました。 (Excel2000では手動でも移動できました) Excel2007では1シートで構成されたBOOK間の移動はできないのでしょうか? また、これをVBAで対策しようとした場合にどうしたら良いのでしょうか? ネットで調べましたが判らず、ここで質問させて頂きました。 判りにくい説明で申し訳ありませんが、よろしくお願いします。

  • Excel2003でマクロが動かなくなった!

    Excel97で作成されたVBAマクロがあるのですが、 Excel2000とExcel2002までは問題なく動いていたものの、 Excel2003では実行途中でエラーが発生してしまいました。 VBAマクロには上位互換が無いのでしょうか?? 自分はマクロに詳しくなく使用する立場なのですが、 マクロを作成した人が既に退職している為、 修正できる人間がおりません。。 何か簡単な方法で回避できる方法は無いものでしょうか? 宜しくお願い致します。

  • Excel2003で動いたマクロがExcel2007で動作しなくなる

    マクロの動作確認をしているのですが、Excel2003では動いていたマクロがExcel2007では動かず、エラーが出てしまいます。 一週間程前からvbaはvbに似ているということで、vbの参考書片手にマクロを動かしている、マクロ作成初心者です。 マクロの動作確認をしているのですが、 Excel2003で動いていたマクロがExcel2007ではエラーが出てしまいます。 まず初めに、Excel2007では LineWeight = .Line.Weight / 0.75 という部分にエラーが出て(エラー番号は6で、調べてみるとオーバーフーローとのことです) .Line.Weightに-2.147484E+0.9という値が入っています。 Excel2003では.Line.Weightに0.75とか1または2という値が入っていました。 (どちらもWith~End With間に書かれています。) そこでお聞きしたいのですが、.Line.Weightというのはオブジェクトから線幅の値を取得する関数なのでしょうか? それともどこかで値を設定しているのでしょうか?-2.147484E+0.9という値を設定しているとは考えにくいもので… 2003と2007の互換性についても調べたのですが、2007でも2003のマクロは動作するとの旨が多く、 ハッキリどこがダメとも書いてないので分からずとても困っております。 乱文で申し訳ないです。どなたかお教え下さい。

  • EXCEL2000VBAのアプリケーションエラーについて

    EXCEL2000VBAにてユーザーフォームを使ったマクロを作ったのですが、マクロを実行しユーザーフォームからエクセルのシートにデーターを移行する際に、アプリケーションエラーというエラーがでます。 他のイベントプロシージャの動作ではこのエラーは発生しません。 EXCEL2003でも発生しました。 はっきり分かりませんが、必ずアプリケーションエラーが生じるのではなく、1,2度保存や終了を繰り返した後に発生するようです。 アプリケーションエラーどういった場合に発生するのでしょうか? また、なぜこのようなことが発生するのでしょうか? 初心者ですのでよろしくお願いいたします。

  • 【Excel】 2003で使用していたマクロが2007でエラーになります。

    こんにちは フリーソフトで「マクロ_リネーム・コピー_ファイル」を利用しています。 http://www.vector.co.jp/soft/win95/util/se383332.html ファイルは正常に開きます。 対象フォルダを指定し、シート作成をクリックすると 「実行エラー'445'オブジェクトはこの動作をサポートしていません。」となります。 Excel2003で正常に使っていましたが、Excel2007で実行すると エラーになります。 フリーソフトですが最近の更新もされていないようです。 作者と連絡をとることもできず困っています。 このマクロを2007で実行するのはあきらめるしかないでしょうか。 また、他のマクロを使っているファイルでもエラーが起こるでしょうか。 2003と2007では、互換性に問題があるのでしょうか。 Excelを利用できることで、大変重宝していただけにこの先困ってしまいます。 よろしくお願いします。

  • mac excel 2011 マクロ

     現在macのexcel2011でVBAを勉強中なのですが、いきなりつまずいてしまいました。 適当なマクロを作り、ボタンにマクロを登録しようと ボタンを作り → ボタンで右クリック → マクロの登録 と選択すると 「Microsoft エラー報告ツール」 というウインドウが出てきて 「問題が発生したため、Microsoft Excel を終了します。ご不便をおかけして申し訳ありません」といった趣旨のメッセージが表示され、excelが強制終了してしまいます。 試した数は少ないですが、おそらくマクロの内容に関係なく起きる気がします。 チェックボックスなどにマクロを登録しようとしても同じ現象が起きます。 何かわかる方がいらっしゃいましたら、返答よろしくお願いします。 使用しているOSは     OS X 10.8.3 です。

  • CreateObjectでエラー発生(Excel2007が悪い?)

    下記の環境、プログラムで"ActiveXコンポーネントを作成できません。"のエラーが出て困っています。 毎回ではなく、「1回目はエラーで、2回目以降は出ない」「たまに出る」など、動作が一定ではありません。 Excel2003では問題なく動作するので、Excelのバージョンを変更しようかとも考えています。(高価で入手しにくいので踏み切れずにいます。) Excel2007とVBの問題なのでしょうか? プログラムの変更で解決すればいいのですが…。 ご教示ください! ****** 環境 ****** OS:WindowsXP Professional Ver.2002 SP2 (Microsoft .NET Framework 2.0 Configuration) Excel:Microsoft Office Excel 2007 言語:VB2005 SP1 参照先:Microsoft Excel 12.0 Object Library ****** プログラム ****** Dim xlApp As Microsoft.Office.Interop.Excel.Application Dim xlBook As Microsoft.Office.Interop.Excel.Workbook Dim xlSheet1 As Microsoft.Office.Interop.Excel.Worksheet Try xlApp = CType(CreateObject("Excel.Application"),Microsoft.Office.Interop.Excel.Application) xlBook = CType(xlApp.Workbooks.Open("C:\File\OutPutSheet_1System.xls"),Microsoft.Office.Interop.Excel.Workbook) xlSheet1 = CType(xlBook.Worksheets(1),Microsoft.Office.Interop.Excel.Worksheet) ↓↓以下省略 (開放は行っています。)

  • Excel2000で作成したマクロがExcel2007で動かない

    Office2000にあるExcel2000で作成したマクロを プリインストールされたExcel2007でマクロを動作させると フリーズしてしまいます。 回避方法はあるでしょうか。

専門家に質問してみよう