Help us understand the problem. What is going on with this article?

高速VBAの作成のヒント、プロ以上の社内アプリを造ろう

More than 1 year has passed since last update.

※記載内容はメモとして作成しているため、修正が必要な部分があるかもしれません。

VBA高速化のポイント

VBAの手作りのアプリを使っている会社は多いのではないでしょうか。
しかし、素人でも作りやすいためプロレベルというものは少ないです。

以下のポイントを守れば劇的にVBAを高速化することが可能です。

・配列を使う
・処理はメモリ内で実施するようにする
・新しいモジュールを採用する
・処理の重いオブジェクトの使用を避ける
・古いモジュールの使用を避ける
・メモリ使用量の少ないデータ型を使用する
・画像処理を避ける

どういうことでしょうか。
詳しく説明していきましょう。

エクセルのメモリ構造について簡単に記載します。

どんなアプリケーションも立ち上がると同時にメモリを予約します。
このメモリはデフォルトです。使っていくと追加されるアプリケー
ションもあります。

また、配列やデータもメモリを予約します。
エクセルはデータ型のメモリがいっぱいになるとエラーメッセージ
を表示してくれます。

新しいウィンドウでエクセルを立ち上げると、別のエクセルのインス
タンスが作成されます。

上記を踏まえてエクセルの動きをイメージしながらVBAを記述すれば
劇的に高速化することが可能です。

インスタンスレベルまでメモリを意識できればもうプロ以上です。
プロのアプリでもメモリまで意識したものは現状少ないです。
興味ある人はレベルアップのため調べてみればいいでしょう。
その際、データ型の予約メモリ領域の違いと配列から実験してみる
のがいいと思います。

メモリ内での処理の完結が多ければ多いほど、余計な動きが削除さ
れるのです。

これであなたもプロレベルの高速化が実現できます。
※VDIや別PCにあるVBAの場合、帯域制御によりそもそも高速化ができ
ない場合があります。まずはローカルで作成してみましょう。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした