
お世話になります。
現在マクロを中心に開発してきました。
処理速度を向上させるため、VBAにしたほうがいいのでは?という意見が社内より出ましたが根拠が不明な為、お伺いします。
1.マクロで開発すると実行速度が遅くなりやすいというようなことはありますでしょうか?単純に比較はできないかもしれませんが。。
2.マクロで開発したものをVBAに変換したら、処理速度が向上するケースがあるとすれば、どのようなケースでしょうか?目安となる判断基準やご経験でも構いませんので、ご存知でしたら教えてください。
以上、宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
こんにちは。
>参考にされたWebサイトを教えていただけませんか?
たぶん、ご存知です。
Access クラブ
http://www.accessclub.jp/
ここのクイズなんかに、マクロのコンパイルの話を読んだことがあります。
そちらの住人さんは、また、別のことをおっしゃるかもしれませんが。
コンパイル型(バイナリ)は速いというのは当たり前なのですが、ところが、VBA自体は、一見されていないようでいて、コンパイルはされている、ということで、以下の文章に行き当たりました。
もうひとつは、おそろしく分かりにくい文章です。
MS サポート
http://support.microsoft.com/kb/209176/ja
以下の人が、上の文章をリライトしています。
http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips13.htm
もうひとつは、これは、古い書籍で、Office のプログラマーズガイドに出てくる、「VBAのオプティマイズ(最適化)」というルールが出てきます。
http://msdn.microsoft.com/library/ja/default.asp …
この項目を読んでいると、VBAを速くするために、いろいろ工夫しなければならないことが分かります。そして、インターフェイスを通して、アプリケーションを動かすようにそのつど翻訳している、ということが分かります。コーディングにも依存しているということが分かりますね。
私は、あまり断定的にはいえませんが、私個人の実感としては、やはり、VBAは、遅いような気がしているのです。それは、VBEのモジュールというのは、本体とは違う、別のオブジェクトなのです。(つまり、VBE自体の使い方というのも工夫が必要になることがあります。)そこから、また、インターフェイスを通しているというので、このような手間は遅いのではないだろうか、という印象を持っているのです。
No.1
- 回答日時:
こんばんは。
はっきりと実証があるわけではなくて、今は、単に、今まで読んだ本やWebサイトから考えた理屈だけです。
>マクロで開発すると実行速度が遅くなりやすいというようなことはありますでしょうか?単純に比較はできないかもしれませんが。
現行では、マクロのほうが、速いはずです。VBAは、テキストコードを一旦、インターフェイスで、読み込んで、p-code という特殊なバイナリファイルにしていますが、マクロのほうは、実行する前に、すでにバイナリに変換しています。少なくとも、その分だけ違うはずです。
しかし、また実際に、VBAでなくては出来ないものもあるはずです。
そこらは使い分けていくしかないのですが、VBAというのは、呼び出して使う分で、また、ロスが生じているように思っています。
早速のご回答ありがとうございます!!
てっきりVBAの方が早いのかと思いました。難しいほうが高性能というか、そういう先入観でおりましたので。
ちなみに可能であれば、参考にされたWebサイトを教えていただけませんか?
宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
UWLSの記録でマクロを作成し使...
-
エクセルで別のセルにあるふり...
-
メッセージボックスのOKボタ...
-
VBSからエクセルのマクロを起動...
-
Excel_マクロ_現在開いているシ...
-
特定のPCだけ動作しないVBAマク...
-
エクセルVBA イベントプロシー...
-
Excel・Word リサーチ機能を無...
-
既存のマクロをコンボボックス...
-
エクセルで縦に並んだデータを...
-
TERA TERMを隠す方法
-
Sub ***( ) と Private Sub ***...
-
エクセルのマクロについて教え...
-
【EXCEL VBA】オートシェイプを...
-
プリプロセッサのエラー対策が...
-
テニス(ダブルス)乱数表 Exc...
-
レポートで空データ時に印刷しない
-
ExcelのVBA。public変数の値が...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
メッセージボックスのOKボタ...
-
Excel_マクロ_現在開いているシ...
-
一つのTeratermのマクロで複数...
-
マクロの連続印刷が突然不可能...
-
ExcelのVBA。public変数の値が...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
エクセルに張り付けた写真のフ...
-
Excelのセル値に基づいて図形の...
-
TERA TERMを隠す方法
-
マクロ実行時エラー
-
ExcelVBAでPDFを閉じるソース
-
wordを起動した際に特定のペー...
-
特定文字のある行の前に空白行...
-
Excel マクロでShearePoint先の...
-
エクセルで縦に並んだデータを...
-
マクロ実行時、ユーザーフォー...
-
ソース内の行末に\\
おすすめ情報