• ベストアンサー

関数とマクロ(VBA)について

関数とマクロ(VBA)について エクセルで関数を多様するのとVBAを書くのとでは、処理速度およびファイルサイズが変わりますか? ちなみに現在、関数を多様してるせいなのかファイルサイズが21Mもあり、コア2.66G、メモリ2Gでちょっと時間がかかります。データは12000行くらいです。 VBAの方がいいとしましても、全く出来ないのでこれからの勉強になると思いますが・・・。 やはり、VBAでしょうか?

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

  • ベストアンサー
  • mimeu
  • ベストアンサー率49% (39/79)
回答No.3

  12000行で21Mのファイルサイズは少し多いのではないでしょうか。 ちなみに私の持つ一番大きいXLSファイルは万葉集4560首のデータで、 原文・訓読・カナなどで数えてみたら(もちろんVBAでですが、笑) 1229848文字ありました。それでもファイルサイズは3Mです。   WordやExcelのファイルは 編集して行くにつれゴミがいっぱい溜まってふくれていきがちですので、 21Mの中味はもしかしたらゴミ屋敷(失礼)かもしれません。   そんな場合、一度新しいBookに セ ル 単 位 で コピーすると スッキリ細身になります。 手前味噌ですが、それもVBAを使えば簡単にできます。 (シート単位でコピーも出来ますが、  場合によっては情報の一部が消えることがあります)   なお、正確に実験したわけではありませんが、 ワークシート関数で持つより、VBAで、それもワークシートに 書き込む関数ではなくVBAプログラムだけで持ち、答のみを ワークシートに記入する方がファイルサイズは小さくなる傾向が あったように思います。これこそ内容によりますが。

tomohiro414
質問者

お礼

回答ありがとうございます。 古いデータを整理して行数を減らして見ます。

その他の回答 (2)

  • xtort
  • ベストアンサー率44% (32/72)
回答No.2

どのような処理をしたいかが分かりませんので、回答しようがないのですが、単純に行数が多いので発生している問題だと思います。 12000行ということで簡易のデータベースとして利用されていると思いますが、Excelは元々そのように設計されていないので、行数が増えるとびっくりするほど重くなります。 (21Mということで相当重いと思われます・・・) 各セルに計算項目(関数)が入っている場合などは、VBAの方が早くなるかもしれませんが、やはり何とも言えないところです。 質問とは少しずれますが、データベースとして利用している場合は、MSであればAccessなどのソフトを使った方が良いかもしれません。

tomohiro414
質問者

お礼

回答ありがとうございます。 古いデータ整理して軽くしてみます。

  • wkbqp833
  • ベストアンサー率36% (319/886)
回答No.1

同じ結果を得るための処理でも、関数とVBAとでは、得意とする処理がことなるようで、一概にこちらが速いとは言えないようです どういった処理をなされているかわからないので、正確にお答えできず申し訳ないのですが

tomohiro414
質問者

お礼

回答、ありがとうございます。