[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エクセルの処理時間』(T18)
お世話になります。
ちょっと本校の主旨から外れるかもしれませんが、現在使用中のエクセル「2010」から「最新バージョン」に変更することにより、マクロの処理時間の短縮はどの程度期待できるでしょうか?
背景)
新規パソコンで全てのエクセル処理をすることになりました。
ハード面で「intel i7-920/win7 32bit」から「i7-8700/win10 64bit」とかなり強化されたと思います。
確かに2倍〜3倍ほどの処理時間短縮はできているように思いますが、まだ1分近くかかるマクロがあり
少々不満です。
※マクロの“出来不出来”は今は不問とさせてください
よろしくお願いします。
< 使用 Excel:Excel2010、使用 OS:Windows10 >
しかしながら、処理の内容次第ですが、データの読み書きにかかる時間が大きいと、通信環境とHDD(SSD)速度があまり進歩していないため、処理時間は、良くても半分くらいなのではないでしょうか。
なので、PC性能に頼らず、無駄な表示更新や自動計算をを抑止するとか、数式を無くすとか、処理内容を工夫する方が高速化できたりしますよ。
(???) 2018/06/04(月) 10:28
>「2010」から「最新バージョン」に変更することにより こっちは更に期待できないと思います。 新しい機能、より便利になる機能とかが追加されて、Excel自身は「仕事が増えた」状態です。 古くからある既存機能の[処理速度改善]という部分で見直しされているとすれば、 おそらくかなり以前のバージョンで既に対応が図られていると思います。
結局 >マクロの“出来不出来” これが最も左右される部分ですからねぇ^^;
例えば Sortメソッドは最大3列までしか1回の処理で行えませんが Sortオブジェクトは4列以上も1回の処理で行えます。
3列以内の並べ替えであればSortメソッドとSortオブジェクトどちらも1回の処理で済みますので 処理速度の違いは(ほとんど)ありません。
4列以上の並べ替えとなると Sortメソッドでは実際は2回に処理を分けなければならず、 1回で済ませられるSortオブジェクトの方が速い訳です。
従ってSortオブジェクトの恩恵を受けるなら、 マクロを弄る必要があります。
結局↑こういった部分に手を加えないと、目に見える効果は得られないのではないでしょうか。
(白茶) 2018/06/04(月) 10:43
>・・・9年経ってこの程度しか最近は変わっていません >こっちは更に期待できない・・・かなり以前のバージョンで既に対応が図られていると思います
そうなんですか(驚)、店員からの“劇的に早くなりますよ”のコメントにかなり期待し、ドライブも
HDDからSSDにしましたが正直いって期待外れです。
>無駄な表示更新や自動計算をを抑止するとか・・・処理内容を工夫する方が高速化できたりしますよ >マクロの“出来不出来”・・・これが最も左右される部分
一応、本校をみて上記や配列使用とか一通りやっているつもりですが、まだまだ工夫の余地は
ある、とみてはいます。
ただ今回は純粋に同じ環境でエクセルのバージョン違いで果たしてどの程度速度改善できるか、
具体的なお話を聞ければ・・と思っていました。(ズバリのサイトを見つけられないので)
64bit版って期待できないですかね?
(互換性の問題がエクセルでもあるのであればダメですが…)
(T18) 2018/06/04(月) 11:22
>64bit版って期待できないですかね? OSの事なのかOfficeの事なのかで、またちょっと意味が変わってくると思いますが いずれにせよ「64bit版だから」という部分で効果を体感できる分野って 主に ・非常に大きな処理を行う場合 ・容量の大きな画像、動画、アニメーション等を処理する場合 この2点に収束するのではないかと思います(多分^^;)
表計算の世界で、しかも今まで32bitで動いていた物となれば、 環境が64bitに変わっただけで劇的に速くなるとは考え難いかなぁ・・・と思いますよ。
(白茶) 2018/06/04(月) 14:44
Excelのマクロも、例えば整数型には Long型を使っていますよね? 64bit版だけなら LongLong型を使えば良いですが、途端に32bit版では動かせなくなります。 または、環境を調べてどっちを使うか切り替えるコードにすればどちらでも動きますが、2倍の手間をかける割には、速度は2倍なんてならない事でしょう。 Excel自体が32bitを捨て去らないとです。
(???) 2018/06/04(月) 15:06
お二人のご意見を集約すると、どうもエクセル64bit版に過度な期待はできなさそうですね…
また、ネットでは逆に遅くなった・・なんてのもありました。(↓)
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_winother-mso_2016/windows7windows10/0c267417-e30d-4dc1-b943-59000b8430a3
PC環境が違うので何ともいえませんが、このまましばらく様子をみつつマクロ改善を検討〜
ダメなら助け舟をお願いしようと思います。
本校をヒントに「切った貼った」したものなので時間かかると思いますが、よろしくお願いします。
(T18) 2018/06/04(月) 16:28
64bit版にすると遅くなるというのは、やはり Long型を例にすると、CPUのレジスタは64bitなので64bit分のデータで埋めないといけないのですが、変数が32bitなので、残り半分は内部処理で密かに埋めることになります。単純に0で埋めるなら簡単なのですが、Long型はマイナス値も扱えるので、マイナスなら0ではなく、&hFFFFFFFFで埋めないといけない。つまり、代入処理が増えるだけでなく、32bit値が正か負かをIf判定する処理まで増えるのです。 だから、PC性能向上しないなら、逆に遅くなってしまうのですね。 全部64bit変数にすると、この半分埋める処理が無くなるので、速くなるのです。 どれだけ向上するのかは、CPU時間が全体の処理時間のどれくらいを占めているのか次第。
(???) 2018/06/04(月) 17:06
>どれだけ向上するのかは、CPU時間が全体の処理時間のどれくらいを占めているのか次第
タスクマネージャーからの「CPU使用率」のことでしょうか?
「使用率〇%なら△%アップ」なんて、定量的にわかると嬉しいのですが・・・
OSもアプリもどんどん重くなりそれをPC性能が補っている、というのはまるで“イタチごっこ”ですね…
となると、最新のゲームマシン並みのCPUを選ぶべきだったですかねぇ〜
まぁ、PC買い替えや2016を買う余裕もないので、マクロ改善に挑戦してみます。
その時はよろしくお願いします。
(T18) 2018/06/04(月) 22:42
そもそも、「劇的」の定義も人それぞれでしょう。
i7 → i7 なら、体感的に多少速くなる程度では?
ましてやソフト的に最新バージョンにすれば速くなるってことはないですね。
機能は追加しても高速化はハードがしてくれるからほぼ気にして無いような気がします。
まして、メモリーの消費をどうやって節約するかなんて気にしなくていいほど、
高性能になりましたし。
>確かに2倍〜3倍ほどの処理時間短縮はできているように思いますが、
>まだ1分近くかかるマクロがあり少々不満です。
貪欲ですね^^;
買い換えて体感で2倍以上、体感で1分以内の処理時間。
十分満足の範囲内だと思いますが。。。。
それくらい明確に処理時間に目標があって気にするなら、
ぼくなら買う前にUSB持って行って試させてもらうかな^^;
どんなことをやりたいのかの説明が全くなく愚痴だけ書いてあるだけだけど、
多分、エクセルに縛られている限りそれ以上の高速化は難しいかも?
(まっつわん) 2018/06/05(火) 09:11
そうですね、かつてMacでフォトショップ、イラストレータなどの画像処理アプリを弄ってた経緯から、
たかが1万行程度のデータ処理に数分もかかるのは許せない、それこそエクセルごときで、
とは思っていました。^^;
処理が一つだけならいいのですが、一連の作業で通常10種以上の処理を行うのでストレスがたまります。
専用アプリとのやり取りを含めると悠に1時間を超えてしまい、少しでもデータ処理「後の」考察に
時間をまわしたいです…
>ぼくなら買う前にUSB持って行って試させてもらうかな^^; >多分、エクセルに縛られている限りそれ以上の高速化は難しいかも?
数店まわりましたが、USBは断られました。(涙;狭量な店だったのでしょうか?)
エクセル使わずに自分でプログラムする能力も気概もなく、愚痴をいってすみませんでした。
先述しましたように突っ込みどころ満載のマクロばかりですので、改善で行き詰まった時は
よろしくお願いします。
(T18) 2018/06/05(火) 10:52
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.