• ベストアンサー

Office2007のマクロ実行が襲い

XP+Excel2000で実行していた割と簡単なマクロを、先日 VISTA+Excel2007で実行したところ、実行速度が2,3倍遅くなったように感じます。 まったく同じマクロで特殊なことはやっておりません。 PCは双方ともCore2Duo、しいて言えばVISTAの方はNoteです。 PC環境は大差ないと思います。 OS、2007の仕様でしょうか? 一般的にどうなんでしょうか?

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

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

こんばんは。#4の回答者です。 参考になるか分かりませんが、私は、最初から、Vista + Excel 2007 で、業務用の伝票発行のプログラムを作りましたが、速度としても、使用感にしても、まったく違和感はありませんでした。 ただし、オブジェクトの違いで、反応が思ったようにならなくて、最初、投げ出したくなりました。 困った点は二つです。 ひとつは、IEの呼び出しで、セキュリティが働いてしまうことです。アクセスする時だけ、IEの設定を変えるために、レジストリの書き換えをしなくてはならないのですが、その開発したものを別のPCに移す目的でしたので、そこまでは手を付けませんでした。 もうひとつは、デジタル署名を入れると、バグつぶしが出来なくなることに気がつかなかったのでした。 しかし、Office 2007 VBAの資料が、今頃になって、Microsoft から出ているような気がしますが、ちょっと参ってしまいますね。まだ、全部出ていないか、間に合っていないようですね。ここの回答者として回答して、初めて気がつくようなものもあります。新しく増えたコマンドで、少なくとも、ヘルプのどこにもないものがあります。 Office 2010 が出ても、詳しい内容は、かなり遅れてくる可能性があります。そのたびに、振り回されかねないです。

その他の回答 (4)

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

#2の回答者です。 Office 2007 の場合、保存そのものの仕方が大きく変わったからだと思います。VBAというのは、通常、コンパイルした状態の中間言語を保存しているのですが、それが、それていないものだと思うのです。 >環境の違いによる問題なのかわかるような、VBA実行スピードをチェックできるようなプログラムがあるといいですね。 マクロのスピードチェック自体はできるけれども、その違いは、そのバージョンに合わせて比較することは、今の私では難しいですね。環境の違い自体は、Application.Verion せいぜい、以下のような時間計測用のマクロ程度です。 '========================================= Private Declare Function timeGetTime Lib "winmm.dll" () As Long Sub SpeedMeasureSample()   Dim myStart As Long   Dim myEnd As Long   Dim ver As Variant   myStart = timeGetTime() '開始   '----------実行マクロの始まり-----------      Dim i As Long   i = 1      Do    Cells(i, 1).Select    i = i + 1   Loop While i < 10 ^ 4         '----------実行マクロの終了-------------    myEnd = timeGetTime '終了   ''Debug.Print myEnd - myStart   ver = Application.Version   MsgBox "Excel " & Val(ver) & ": " & (myEnd - myStart) / 1000 & "秒" End Sub

jugemu22
質問者

お礼

何回も情報ありがとうございました。 その後、あちこち検索してみましたら、2003と比較して「2007は遅い」という記事が沢山ひっかかりました。 リボンの操作も今一つと感じておりました。 2003以降のOFFICEでないと対応できない処理だったので、使い慣れたXP+2000から2007に移行しましたが、2003に再移行しなければならないようです。 尚、2010もβ晩版?がすでに出ているようですが、2007の延長らしく少なくともしばらくは期待できないようです。さらに、7も安定すのにしばらくかかるようですね。 10年も前のソフトが軽く、未だ使い勝手が一番というのも、考えさせられます。 お世話になりました。

  • 374649
  • ベストアンサー率38% (203/527)
回答No.3

自分の経験から、Excel2003とExcel2007、OSはXPとWin7という環境で。 2003のマクロを2007で走らせると処理時間は遅くなります、そのマクロを2007専用に書き換え(ファイル名の拡張子など)2007で走らせると処理は目に見えて速くなりました、そのマクロを2003で走らせると"互換モードに変換"され動きますが保存は拡張子が違うのでエラーになる。 対処:XPとWin7を両方使うのでOSを判断してそれぞれのOS専用ルーチンを組み込みどちらでも使えるようにマクロを書き換える。 OS判断マクロ例: Sub GetOS() Dim OSvrsn As String Dim 商品名 As String OSvrsn = Application.OperatingSystem 'OSのバージョン情報を取り出す If OSvrsn = "Windows (32-bit) NT 6.01" Then 商品名 = "Windows7" ElseIf OSvrsn = "Windows (32-bit) NT 6.00" Then 商品名 = "WindowsVista" ElseIf OSvrsn = "Windows (32-bit) NT 5.01" Then 商品名 = "WindowsXP" End If Worksheets("?").Range("?") = 商品名 End Sub これでWorksheets("?").Range("?")にOS名が書き込まれますので後はアイデア次第。 こんなことをやってます!!

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

こんにちは。 こちらで、同じ内容が出ています。 http://oshiete1.goo.ne.jp/qa5595406.html その質問者さんは、その後の対応をしていませんが、互換状態では、その都度、コンパイルし直しますから、古いコードを、一旦2007用のマクロ付きファイルに保存し直すことが必要ではないかと思います。

jugemu22
質問者

補足

すでに2007用 xlsm ファイルとしてあります。 記事の中でコンパイルしておくこともできるらしいので、試してみます。 インタープリート(逐次翻訳)で早くないのは分かるのですが、2000でも同じことだと思います。 大きく、遅くなったので、そのことを考慮してコンパイルしておくようにしたということでしょうかね? 一般的な問題なのか、環境の違いによる問題なのかわかるような、VBA実行スピードをチェックできるようなプログラムがあるといいですね。 ありがとうございました。

  • xfiles
  • ベストアンサー率23% (164/693)
回答No.1

ノートとデスクトップじゃ実行速度に違いが出るとは思いますが、2,3倍はありえないと思います。 ノートのHDDの空き容量が少ないとかじゃないですかね?

関連するQ&A

  • Office2007のマクロ実行について

    Office2007のマクロ実行について ユーザー登録以前にはマクロ実行は出来ないのでしょうか? アップグレードを入れて2007を使おうとしました。 ユーザー登録をするのはよいのですが、後でも出来るのでとりあえず使って見ようとしました。 しかし、Excel2003で作ったマクロの入っているxlsファイルをExcel2007のマシンに入れたところ、一般機能は普通に出来るのですが、マクロを登録したボタンをクリックしても反応しません。また、ファイルオープン時にマクロを実行するかどうかも聞いてきません。 もしかすると、ユーザー登録以前にはマクロの実行は出来ないのかと思いました。 ご存知の方お教えください。

  • EXCEL2000 VBA Core2Quadの4つのコアをすべて使ってマクロを実行したい

    いつもお世話になっております。 タイトルの通り、EXCEL2000 VBAでCore2Quadの4つのコアをすべて使ってマクロを実行したいのですが、可能でしょうか。 これまでPen4 1.51GHzのPCを使っていたのですが処理速度が遅いため、新しくCore2Quad搭載のPCを購入しました。 旧PCで処理に長時間掛かるマクロを実行したところ、CPU使用率25%となっており、タスクマネージャで確認したところ1つのコアしか使っていないようです。 せっかく高いお金を出して購入したのにこれでは宝の持ち腐れです。 よろしくお願いいたします。

  • EXCEL マクロ実行速度が大きく変化する現象について

    EXCEL2003で他人のつくったマクロなのですが、普通に実行すると非常に遅いのですが、 1.実行中にESCキーを押して一旦中断 2.ダイアログボックスの継続ボタンで実行を再開 3.再びESCキーを押す という操作をすると、3によりマクロが中断されることはなく、実行の速度が当初の10倍くらい早くなります。 さらにもう一度ESCキーを押すとマクロは中断されます。 マクロは初心者でコードの内容もほとんど理解できず、また、仕事上のものなのでコードを記載することもできないのですが、このような現象について何かご存知の方、当初から早いスピードでマクロを実行する方法についてご存知の方がいらっしゃいましたらお教えいただけませんでしょうか。 なお、マクロで行っているのは特定の表から別の表を作り出すという作業です。EXCEL2003,celeron1.2G,メモリ376M,winXPです。 どうぞよろしくお願いいたします。

  • EXCELマクロの実行速度

    EXCELでマクロを組んで実行していますが、最近目に見えて実行速度が遅くなってしまいました。(体感として2倍以上遅く感じます) 何が原因かわからないのですが、早くする対処法がありましたら教えてください。

  • excel マクロが実行できません!

    タイトルどおりなのですが、 以前 excel2002 で作成したマクロを excel2000 の pc に copy し実行した所、 メッセージボックスで 「このプロジェクトのマクロは無効に設定されています。マクロを有効にする方法についてはオンラインヘルプまたは ホストアプリケーションのドキュメントを参照してください。」 となります。 ヘルプがこの pc から表示できませんので、どなたかご教授して下さい。

  • vistaでoffice2000,2003のエラーについて

    XPのPCがつぶれた(起動しなくなった)のでもう少し様子見をしたかったのですがVISTAのPCを買いました。core duo2400 メモリ1G HDD120Gでoffice の無しなのでOFFICE2000を入れてword,excel,pawerpointで 作って会社のXPの2000で読み込もうとしたら 読み込みできません。と出ました。逆の場合も 読み込めない場合があります。困っています。 方法は無いでしょうか 2003でも同じようです。 2007しかだめでしょうか? 

  • エクセルのマクロが実行されない。

    市販本(簿記の本)についているCD-ROMを開いたところ、↓のメッセージが出て、開きません。 『このブックにあるマクロは、セキュリティレベルが高に設定されており、デジタル著名がされていないかまたは安全なものとして確認されていないため利用できません。マクロを実行するには、著名するか、またはセキュリティレベルを変更する必要があります。詳細については、ヘルプを参照にしてください」 どうすればいいのか分からないので、詳しい方教えて下さい。よろしくお願いします。 ちなみにXP、EXCEL2002です

  • Excel2011マクロについて

    仕事柄会社ではウィンを使っています。家でExcel2004で仕事用マクロを作成してバッチ処理をしています。ただ、マックではパフォーマンスが非常に悪くExcel2011も視野に入れています。(2008はマクロ非対応なので見送りました) 2004だとロゼッタ上で動いているのでパフォーマンスが悪いと思うのですが、2011だと改善が期待できるのでしょうか。 現在のマシンは0S10.6.7、メモリ4GB、CPU-CORE2DUOのMacBookProです。 会社のXP、512MBセレロンMに負けていて・・・ どなたか2011を導入されてアドバイスなどあればお願いします。

    • ベストアンサー
    • Mac
  • excelマクロ実行エラーで原因が分からない

    複数行を選択して非表示にするマクロを組んでますが、PCによっては実行エラーがでるPCと出ないPCとで2通りで原因が分かりません。 Range( _ "11:11,17:17,23:23,29:29,35:35,41:41,55:55,67:67,73:73,79:79,85:85,91:91,111:111,117:117,123:123,129:129,135:135,141:141,147:147,153:153,159:159" _ ).Select Selection.EntireRow.Hidden = True 最後の行でエラーがでて 「実行時エラー'-2147417848(80010108): 'EntireRow’メソッドは失敗しました:’Range’オブジェクト」とでます。 また、実行したPCもWin-XP+EXCEL2003とVersionは同じです。 なぜ一方にはエラーがでるのか分かりません。どなたかヒントでもいただけないでしょうか?

  • あるPCでだけExcelマクロが動作しない

    仕事で使っているExcelのマクロなのですが、新しく導入したPCでなぜか動作しません。 途中まで動作するのですが、処理を完了せずカーソルが砂時計のままになります。 状況としては・・・ ・もともとはExcel2000上で作成したもの。 ・Excel2007までは動作確認済み ・新しいPCにはExcel2010がプレインストール、  動作しなかったためアンインストールを行い、Excel2000をインストール ・新しいPCの環境はWindowsXP SP3 CPUはCore2Duo メモリ2Gbite  ※同じCPUでWindows7、Excel2007では動作。 という、状態です。 一部のマクロは動作しているのでVBAが動かない状態ではないようなのですが・・・。 長年使っているマクロなので、マクロ内部の問題とは考えにくいので、 新しいPCの環境に何かあるのかと思うのですが・・・お手上げ状態です。 アドバイスをいただけると助かります。 よろしくお願いします。

専門家に質問してみよう