【簡単エクセル/Excel VBA マクロ】10万行クラスのデータになると「配列」と「プログレスバー」が必要になってくる

アフィリエイト広告を利用しています。
運営者・ポテ

いつもありがとうございます!

皆さん、こんにちは。ご覧いただきありがとうございます。

“日々の業務にちょうどいい自動化を”──

業務改善アプリケーションの作成を行っている「ソフトデザイン工房」です。

この記事では、規模が大きいデータを扱う場合の考え方を綴りたいと思います。

この記事が、あなたのVBAマクロの価値をさらに高める一助となれば幸いです。

VBAを活用して、自分自身や身近なコミュニティに合ったアプリケーションを作成し、仕事量は半分に、成果は2倍に──そんな未来を目指すあなたを応援しています。

大規模データのマッチングには時短の工夫が必須

10万行程度のデータにおける、データマッチング(突合・照合)処理になると、時短の工夫が必要です。

10万行は、Excelで取り扱うデータとしては、かなり大きい部類に入るでしょう。

さすがにこれだけのデータ量になると、セルを逐一参照するロジックではオーバヘッドに時間がかかり、処理速度がかなり遅くなります。

そこで効果を発揮するのが「配列」ですね。

こういった大規模データでは配列を使わざるを得ません。

Information

オーバーヘッド
VBAでセルを1つずつ操作する場合、各処理ごとに「オーバーヘッド」と呼ばれる準備作業が発生します。これは、Excelのセルからデータを取得したり書き込んだりする際に、Excelとの間で行われるやり取りのことを指します。このような準備作業が繰り返されることで、全体の処理速度が低下する原因となります。

時短と言えば"配列"

配列を使うと、コードがやや複雑になるものの、セル操作のオーバーヘッドが大幅に減り、処理速度は格段に向上します。

2倍や3倍というレベルではなく、圧倒的なスピードアップが期待できます。

配列を使ったコードも慣れてしまえば、それほど難しくありません。(むしろ小規模なデータでも配列を使わないと気が済まなくなってくる)

【簡単エクセル Excel VBA マクロ】配列を使って繰り返し処理を高速化する方法|ワンポイントテクニック #003

いつもありがとうございます!ノンプログラマー向け「Excel VBA マクロ ワンポイントテクニック解説シリーズ」へようこそ。 本稿では、「配列を使って繰り返し処理を高速…

それでも時間がかかる大規模データ

とはいえ、大規模データでは、配列を使っても相応の時間がかかります。

様々な条件によって変わりますが、10万行クラスですと、すべてのデータマッチング処理に約20~30分ほど要するでしょう。


そんなときには"プログレスバー"

特定のシチュエーションで何度か利用して終わりにする“単発系”のアプリでは、必要最小限の機能しか実装しないのが一般的です。

しかし、20~30分もの時間がかかると「あとどれくらいで終わるのか」「本当に動いているのか」という不安で、待ってられないんですよね。

そんなときには、単発系であっても、やはりプログレスバーです。

通常、単発のアプリケーションにプログレスバーまで実装するケースは少ないかもしれませんが、処理が長時間に及ぶ場合は、必要性を感じます。

【簡単エクセル/Excel VBA マクロ】プログレスバー|エクセルオブジェクトの操作 #005

いつもありがとうございます。 ノンプログラマー向け「Excel VBA マクロ解説シリーズ」へようこそ。 本稿では、プログレスバーを操作する方法を解説いたします。


それでも短時間でセンスの良いアプリに仕上げるには

このような問題をサッと解決し、短時間でアプリを仕上げて業務に活用するのがプロの仕事ですよね。

高速なコード生成といえば、ChatGPですが、プロンプトでチューニングしながらコードを実装していくと、かえって時間がかかる場合もあります。

現在のところは、自力、ブログ参照、ChatGPT、このあたりを相補的に使って仕上げていくのが良いでしょう。

なお、自分でブログを書いていると、これまで蓄積した記事にアクセスして簡単に情報を得ることができるので、時短につながります。

ブログは、自身の勉強にもなりますし、読者の皆さんの役にも立ちますし、さらに自分の業務にも役立ちます。素晴らしいツールですね。

ご参考にWordPressサイトの立ち上げ手順を解説した記事のリンクを掲載しますね。もしご興味があれば。

【初心者向け】WordPressサイトの立ち上げ手順

いつもありがとうございます。 今回の記事では、WordPressサイトの立ち上げ手順について、実際にサイトを作成した経験を基に、分かりやすく解説します。

VBAスキルアップの参考情報

近年は、ChatGPTをはじめとするAIの登場によって、学習のスタイルが大きく変わりました。

分からないことがあれば、AIに尋ねれば答えがすぐに見つかる時代です。

とはいえ、AIを使いこなすには、自分自身の基本的な知識や理解力が欠かせません。

全体像をつかむためには、やはり書籍などで体系的に学んでおくことが今でも有効です。

そのうえでAIを活用すれば、自分の理解度に合わせた的確な解説や、応用のヒントを得ることができます。

「学んで基礎を築く → AIで補い発展させる」──このサイクルを重ねることで、VBAスキルは着実に高まっていくでしょう。

VBAのスキルアップ

VBAを学び始めるなら

入門書は、どれを選んでも大きな差はないように感じます。

どれを選ぶかに悩むことに時間をかけるよりも、まずは手頃な一冊を手に取って進めてみるのがおすすめです。

もし迷ったときには、私はインプレス社の「いちばんやさしい」シリーズを選ぶことが多いです。

基礎を超えて力をつけたいなら

私は上級者を目指していましたので、入門書にとどまらず、このような内容の濃い一冊を選んで学んでいました。

今は誰でもAIを活用できる時代になりましたが、上級者を目指す方にとっては、AIをより上手に活用するという意味でも、こうした本は今なお価値があります。

このレベルの本を一冊持っておくことに、損はないでしょう。


資格で能力を証明したいなら

VBAのプログラミング能力を客観的に示したい場合には「VBAエキスパート試験」があります。

特に「スタンダード」の方は上級者向けです。

あなたが社内業務の改善を行う立場であっても、VBAで作成したシステムをお客様に納める立場であっても、この資格は信頼や安心につながるでしょう。

以下の公式テキストが販売されています。



プログラミングの一般教養

「独学プログラマー」というプログラミングの魅力を解説した書籍があります。

これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。

今はAIにコードを尋ねれば、答えが返ってくる時代です。

しかし、この本からは「コード」以上に、プログラミングに向き合う姿勢や考え方を学ぶことができるでしょう。


こちらの記事でも紹介しています。もしよろしければご覧ください。

【初心者歓迎】無料相談受付中 

運営者・ポテ

いつもありがとうございます!

限られた時間をより良く使い、日本の生産性を高めたい──

みんなの実用学を運営するソフトデザイン工房では、業務整理や業務改善アプリケーション作成のご相談を承っております。

お気軽にご相談ください。


こちらの記事でも紹介しております。

まとめ

運営者・ポテ

ご覧いただきありがとうございました!

手段はどうあれ、最短で"センスの良い"アプリに仕上げるのが大切。

それ以上の価値はない。それこそが、のVBAプログラマーの仕事ですね。

お問い合わせやご要望がございましたら、「お問い合わせ/ご要望」フォームまたはコメント欄よりお知らせください。

この記事が皆様のお役に立てれば幸いです。

なお、当サイトでは様々な情報を発信しております。よろしければトップページもあわせてご覧ください。

この記事を書いた人

運営者・ポテソフトデザイン工房|日々の業務にちょうどいい自動化を
■人生を追求する凡人 ■日本一安全で、気の向くままに自分の時間を過ごせる、こだわりのキャンプ場を作るのが夢 ■ソフトデザイン工房運営(個人事業者) - 業務改善アプリケーションをご提供 ■人生は時間そのもの。ひとりでも多くの人が「より良い人生にするために時間を使って欲しい」と願い、仕事のスキルの向上、余暇の充実、資産形成にチャレンジ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です