トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 新たなる挑戦編: 第14話「マクロを高速化しよう!」2/4 :回数を減らそう!

やってみよう!Excel VBAで業務改善! 新たなる挑戦編|第14話 「マクロを高速化しよう!」

回数を減らそう!

「ピンポーン!大正解だ」 八木くんはPCに新しいExcelを起動し、VBEの画面を開きました。

「…さっきもいったけど、問題なのは"セルに値を書き込む回数"なんだ。
おまえの作ったプログラムは、内示数を書き込むべきセルを見つけたら、
その都度セルに書き込んでいる。
…これじゃあ、1つ封筒を作るたびに郵便局に持って行くのと同じことだ。
ここまでOKかい?」
星くんは、フンフンとうなずきました。

「と…いうことはだよ。
セルに書き込む値をどこかに保持しておいて、全て用意したあと一気に書き込むことができれば、
マクロの実行速度は格段に向上する。
これも、オッケーかい?」
星くんが、さらに大きくうなずきます。
八木くんはカタカタと、VBEにコードを記述し始めました。

Sub Test()
    Dim v As Variant
    v = Range("A1:C2")
    Stop
End Sub

「うん。これでいい。あとは…セル範囲A1:C2に値を用意して…」

「…よし、こんなものか。
星、今からこのプロシージャを実行する。
Stopステートメントが記述されているので、4行目でコードの実行が中断するはずだ。
そのとき、ローカルウィンドウで変数vの値をみてみよう。
…おもしろいぞ」
そういうと八木くんは、プロシージャを実行しました。
Stopステートメントが黄色に反転し、デバッグモードになります。
八木くんは[表示]メニューから[ローカルウィンドウ]をクリックし、
ローカルウィンドウを表示しました。

ローカルウィンドウを使うと、実行中のプロシージャ内にある、すべての変数の値を確認することができます。

「星、この結果をみて、どう思う?」 「これって、Cellsプロパティにそっくりじゃないか…!」

一覧にもどる