ExcelVBA】マクロを高速化する3つの方法2016年2月16日チュートリアルプログラミングExcelVBATweetみなさんお久しぶりです!最近、ダイエットの為に食べ始めた「こんにゃく麺」にはまっているまさとぅーです。こんにゃく麺はその名の通り、こんにゃくからできており......こんにゃく麺の魅力について熱く語りたいところですが、それはまた別の機会にさせて頂こうと思います。前回のブログでExcelVBA自動化ツールをご紹介させて頂きました。今回は、マクロが遅いと感じた時に役立つExcelVBA・マクロ高速化の方法をご紹介させて頂きたいと思います。記事はこちらExcelVBA・マクロ高速化VBAマクロを用いることで、Excelを使用する定型作業を自動的に行うことが可能になりました。大量データを処理すると必然的に処理時間は掛かるようになってしまい、複雑な処理を行うと数時間処理が終了しない!なんてこともよくあります。そんな処理の遅さを今すぐ簡単に解消できる(かもしれない?)方法を3点ご紹介させて頂きます。1.シートの更新を停止する2.イベントを抑制する3.数式計算を「手動」にする上記について、解説させて頂きます。1.シートの更新を停止するセルに対しデータをセットする処理等行う場合、1処理毎にシートの更新が行われます。処理するデータが少ない場合は、それほど影響はありませんが、大量データを処理する場合、シートの更新を行うだけでかなりの時間を要します。False」と指定します。シートの更新を停止することで、セルにデータを貼ったり、シートを切り替えたり、他のブックを開いたりしても画面には表示されなくなります。True」と指定し、シートの更新を再開するのを忘れないでください。2.イベントを抑制するマクロ動作中に別のイベントが発生するのを抑制します。繰り返し処理でセルに値をセットする処理の場合、セルに値をセットする度に「Worksheet_Change」イベントが発生してしまいます。False」と指定します。イベントを抑制することで、VBAマクロ実行中にイベントが発生しなくなります。True」と指定し、イベントを再開するのを忘れないでください。3.数式計算を「手動」にするExcelは以下の場合、数式計算を実行します。・セルの値が変わったとき・セルの数式が変更されたとき上記はVBAマクロ処理中でも実行され、数式を多数使用していた場合、その都度、数式計算が実行され、それだけで処理時間は長くなってしまいます。数式計算を「手動」にし、数式計算を自動で行われなくすることで、処理速度が向上します。xlCalculationManual」と指定します。数式計算を「自動」にするのを忘れないでください。処理が遅いなーとお悩みのあなた!今一度処理を見直してみてください。今回挙げさせて頂いた上記3点を行うことで、処理速度が大幅に向上すると思います!少しでも参考にして頂けたら幸いです。最後までお読み頂き、ありがとうございました。次の記事へ株式会社ライズウィル人に、企業に、社会に貢献するサービスを提供するITソリューション企業の株式会社ライズウィルです。ライズウィルブログでは、システム開発、Web制作、デザインなどのITに関するためになる情報や、社内のイベント、お知らせなどを掲載していきます。求める人材Web系、もしくはオープン系の開発実務1年以上の経験をお持ちの方。