• ベストアンサー

EXCELが高速に動く、PCを教えてください

大きなデータベースを持っていて、データを含めたプログラムのサイズは、100メガです。VBA(EXCEL2003)で、書かれています。ハイパフォーマンスを狙って、Duo搭載のPC(VISTA)で、EXCEL2007にしたら、互換モードとなり、かえって遅くなってしまいました。 解決策は、 1)もっと速いPC、2)EXCEL2007に、書き換え、3)他の方法(プログラミングテクニック?)、因みに、処理に要する時間は、長いもので、2時間ほどかかります。グラフィック機能は、それほど用いません。 具体的な質問でないので、答えにくいかもしれませんが、何かヒントでも、ご教示いただければ、幸いです。

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

  • ベストアンサー
  • kusa_mochi
  • ベストアンサー率76% (1597/2087)
回答No.3

データベースの世界で100MBは決して大きなサイズとはいえない。 但し、Excelとなるとどれだけのsheetがあり、各sheetでどれだけのレコード数があるか訊きたいところかなぁ。 その2時間掛かる処理というのが、色々なsheetからデータを読み込んでいるような処理なら、データのi/o処理に一番時間が取られているのかもしれない。 ちなみにその処理の最中にHDDのアクセスランプはどうなっていますか? (必死に点滅を繰り返していますか? それともタマにアクセスしている程度ですか?) i/o処理に時間が掛かるなら、そのexcelのsheetごとRAMディスクのドライブに移せば、i/o処理は非常に早くなる。 CPU側はその処理に専任で当たれるコアがあれば良いと思うので、2コア以上でクロックが2.5GHz以上のPCを用意。 メモリは、4GBを搭載して内1GBをRAMディスク側に割り振る。 (1GBあれば、そのExcelデータ+Excelのテンポラリファイル作成でも足りるだろうから) で、処理時間はかなり短縮できるのではないかと。 RAMディスクは電源を切ると内容が消えるが、ソフトによっては電源を落とす前に別の場所に退避しておき、次回電源を入れた際に復元してくれるものもあるから、RAMディスクである事を気にせず使えるかも知れないと思う。  【RAM Phantom】   http://www.iodata.jp/prod/memory/list/2004/ramphantom/index.htm

grochan_08
質問者

お礼

大変参考になりました。100MBのデータは20のSheetsに格納しています。2コア以上のクロックが、2.5GHz以上のPCを用意して、4GBを用いて、そのうち、1GBをRAMディスクに割り当てるわけですね。なるほど勉強になりました。研究してみます。有難うございました。

その他の回答 (5)

  • ani00
  • ベストアンサー率37% (241/640)
回答No.6

再び、こんにちわ ani00です。クラウドとかはかなり高いので、無料は厳しいんですよ。 単純に管理者も必要だし、データ領域とかの関係もあるしで。 会社でやっているなら、業務として何人かに手伝ってもらうしかないのですが、個人物だと厳しいでしょう。 なお、細かく、クラウドとかSaasとかに興味ある場合には、 まず、Wikiかぐぐると良いでしょう。 65歳でその向上心はすばらしいですね。 現在の50代や40代後半に見習わせたい次第です。 後は、皆さんにお礼を私も勉強になります。

grochan_08
質問者

お礼

何度も有難うございます。クラウド・コンピューティングは、費用が高いですか。一般化して個人にまで開放されるといいんですが、そうするとパソコンメーカーやチップメーカーは、困りますね。65歳にもなるとSaasとかWikiといわれるともういけません。目がショボショボして、ダメです。僕などは、化石みたいなもんです。ワイヤード・コンピュータの時からの付き合いですけど。また、ご指導ください。

回答No.5

殆どが データなら ODBCのドライバーをかまして データだけでも 外部のDBMSに任せた方がいいと思う MYSQLでもいいし 場合によっては 数十倍くらい性能が上がるかも これでパフォーマンスが劇的に上がるのもアレなんですが

grochan_08
質問者

お礼

有難うございます。DBMSやMYSQLとなると本格的になりますね。65歳の僕には、少しハードルが高いような気がします。もっと勉強してみます。

  • ani00
  • ベストアンサー率37% (241/640)
回答No.4

こんちわ たぶんですが、VBAの増えすぎが原因じゃないかな? と思います。 まず、できるならシートの分割とかで、分けてどうかな? という問題のような気がします。 これで、マシンをパワーアップしてもイタチゴッコでしかないと思いますから。 んで、個人的には、2をしながら分割できるものは分けるぐらいが、良いんじゃないかな? と思います。かなり手間でしょうが、頑張って下さい。

grochan_08
質問者

お礼

ありがとうございます。書き換えは、相当な手間がかかりますね。話は、変わりますが、最近話題のクラウド・コンピューティングとかが、一般的になり、個人ユーザにも開放されて、しかもEXCELが動けば、好いんですが・・・

回答No.2

まず、高スペックなPCを要するプログラムはよろしくありません。 今でこそ、技術の進歩や製品の低価格化で高スペックなPCが手に入りやすくなりましたが昔のそうではない時代はPCに負荷をかけないプログラミングが心がけられていたと思います。 いくら高スペックのPCが安価に買えるようになったからといってもそういうプログラムはだめだめだと思います。 プログラムに合わせてPCを買い換えてたんじゃキリがありません。 プログラムの見直しが必要と思います。 まず、Excelで100MBというのはド級だと思います。 excelで管理するには無理がきているのであればデータベースソフトの使用も考えるべきでは?

grochan_08
質問者

補足

早速の回答有難うございます。そのとおりと思います。ただ、当方、素人で、長年溜め込んだVBAのソフトが数多くあり、新しく作り変えるのは、骨折りかなと案じています。Excelで100MBと言っても、計算してみると98%が、データでした。データベースをACCSESSという方法があるのかもしれませんが、計算が複雑なので、どうしてもEXCELが主体になります。併用は、煩雑になり諦めた経緯があります。

  • roadhead
  • ベストアンサー率22% (852/3790)
回答No.1

こちらのサーバーをベースにしたらどうですか? http://h20547.www2.hp.com/is-bin/INTERSHOP.enfinity/WFS/Directplus-Customer-Site/ja_JP/-/JPY/BrowseCatalogForBusiness-Start?CategoryName=SERI:388 これをベースに CPUをクアッドコア インテルXeonX3210 メモリを1st&2ndにフル搭載すればかなり快適に動きます。 このサーバーは結構PC代わりに使用している方も多いですよ。

grochan_08
質問者

お礼

有難うございます。少し贅沢な気がしますが、クアッドコアをPC代わりにという手もありましたね。検討してみます。

関連するQ&A

専門家に質問してみよう