- 締切済み
VBAでCallを使えば処理軽くなりますか?
VBAでシフト表作成シートを作っていて、そこそこ重い処理を入れてるのですがcallで処理をした方が軽くなったり少し早くなったりしますか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kkkkkm
- ベストアンサー率66% (1719/2589)
Callするものによる
- bardfish
- ベストアンサー率28% (5029/17766)
Excelでしょうか? Excelを使用している限り大差ないと思います。 Excel VBAでデータ処理やらせたとき、余り物遅さにブチ切れてAccessに移植したことがあります。処理完了にかかる時間は大幅に減りました。 今ではAccessもやめてVisualBasicにSQLServerで処理させています。その方がAccessより早いことが多いし、メンテナンス性が向上します。 ※データが飛んだときのことを考えてSQLServerは別のパソコンを使用。 ちなみに・・・ExcellからAccessに移植したモノは、Excellだと30分かかっていた処理がAccessだと10分ちょっとになりました。最大で6分の1に短縮できています。 処理時間の大幅短縮の理由は「インデックス」。 データを探して選択するような場合に、その項目をキー項目として定義すると検索時間が大幅に短縮されます。Excelではキーを設定することが出来ません。出来たとしても複雑さが増すだけだしバージョンが変わると動作が変わったり使えなくなったりするので可能な限りそういう便利機能は使いたくありません。 それに対し、Accessの様なデータベースではそういう機能は標準装備です。 VB+SQLServer版は作っていないので比較は出来ませんが、SQLServerは数人で同時処理が可能になるので、用途に応じて使い分けています。 ちなみに・・・VBもSQLServerも今は無料で使うことが出来ます。無料故に説明書はなく自分でネットを探す必要があります。 一言で言えば「敷居が高い」となりますが、その恩恵はかなりのモノとなります。 シフト表の作成だと、Pythonという言語をExcelから利用して機械学習させる・・・という方法がネットで紹介されていた記事を読んだことがあります。 確かYouTuberの人も実演を交えて紹介していました。 気になったら探してみてください。