膨大な行のデータを高速で処理するVBAとは?使い方を徹底解説!


毎月膨大なデータ計算に時間がかかってしまう・・・
VBAを使って解決できるようになりたいな・・・
VBAの具体的な書き方、実行方法などが知りたい・・・

Excelを使って仕事をしている人の中には、膨大な計算・抽出作業に時間がかかっている人もいるのではないでしょうか。少しでも楽にするためにセル関数を使う方が多いですが、使いすぎてExcel自体が重たくなってしまうケースはよくありますよね。

こんにちは!フリーランスエンジニア兼テックライターの脇坂です。

この記事では、Excelの作業に時間がかかって困っている人向けに、VBAを書くための2つの方法、具体的なVBAの使い方について徹底的に解説します!!

VBAの基礎については本記事について知りたい方は、先に以下記事を見てみてくださいね!

この記事はこんな人のために書きました。

  • これからVBAを使えるようになりたい方
  • Excelの膨大な計算・抽出作業に時間がかかっている方

ExcelでVBAを書く2つの方法

はじめに、ExcelでVBAを書く2つの方法について解説します。

VBAは、大きく分けて2つの作り方があります。

1. マクロの記録で自動でVBAのコードを作る方法
2. VBAを1から自分で書いて作る方法

それぞれ詳しく解説しますね。

マクロの記録でVBAを書く方法とは?

まず、マクロの記録でVBAを書く方法についてです。

マクロの記録とは、Excelの操作を保存してVBAに変換する機能です。たとえば、シートAの値をA1セルの値をコピーし、シートBのB1セルにペーストする処理をマクロの記録で保存すると、次のようなVBAが自動でできます。

「Sheets("シートA").Select ~ Selection.Copy」までの処理でシートAのA1セルをコピーし、「Sheets("シートB").Select ~ ActiveSheet.Paste」の処理でシートBのB2セルにペーストしています。このように、操作を保存してVBAのコードを作ることができるのです!

普段のExcel操作で同じ操作をしている作業があれば、マクロの記録で即自動化できます。マクロの記録の具体的な方法は以下で詳しく解説しているので、使ってみたい方はぜひ見てみてくださいね!

【ExcelVBA入門】マクロの記録を使って簡単にマクロを作る方法とは
更新日 : 2018年8月17日

VBEで直接コードを書く方法とは?

次に、VBEで直接コードを書く方法について解説します。

先ほどと異なり、1からVBAのコードを書いてマクロを作ります。作り方は次のとおりです。

1. 開発タブのVisual Basicを選択し、VBEを開く

Visual Basicの場所

2. 挿入タブの標準モジュールを選択

標準モジュール選択

3. コードウィンドウで「Sub マクロ名」を押してエンターキーを押す

マクロ名を入力してエンター

4. 「Sub マクロ名 ~ End Sub」の間に作りたい処理をVBAで書く

マクロの処理を書く方法

標準モジュールというマクロを作るための箱を用意し、Subでマクロを作ってから処理を書いていくイメージです。VBAのさらに詳しい書き方、使い方については以下で詳しく解説しています!

【ExcelVBA入門】VBAの基礎知識・書き方・おすすめの学習方法を解説
更新日 : 2019年5月30日

ただ、「VBAの処理ってどうやって書けばいいんだ?具体的な書き方とかが知りたいな・・・」と思った方もいるのではないでしょうか。そんな方向けに、用途別にVBAの書き方がわかる情報をまとめたので、ご紹介しますね。

VBAでセル操作する方法

まず、VBAでセル操作する方法についてです。ここからは、処理のイメージ + 簡単な解説 + 詳細がわかる記事リンクの流れで解説していきます!

セルのデータを取得・書き込む方法

1つ目は、セルのデータを取得・書き込む方法についてです。

データ入力作業を自動化するときに便利な方法です。Excelは別の資料、ブック、シートを見ながらデータ入力するケースはよくありますよね。VBAの難易度も低いので、最初に覚えておくと便利です!


■自動化できる処理イメージ

  • 〇〇セルにデータを入力する操作
  • シートAのデータを、シートBに書き込む方法
【ExcelVBA】セルの値を取得・書き込むためのValueプロパティとは?
更新日 : 2019年7月9日

セルのデータをコピーする方法

2つ目は、セルのデータをコピーする方法についてです。

データ入力と同じように、セルのデータをコピぺする作業はよくありますよね。書き方を覚えるだけでちょっとした作業は自分で自動化出来るようになります。頻度がとても高いので、覚えておくと便利です。


■自動化できる処理イメージ

  • 〇〇セルのデータを△△セルにコピペする作業
  • シートAのデータを、シートBに書き込む方法


VBAでセル・シート・ファイルをコピー(値、書式のみも解説)
更新日 : 2019年4月21日

【ExcelVBA入門】PasteSpecialメソッドで形式を選択して貼り付ける方法
更新日 : 2018年8月28日

セルのデータをクリア・削除する方法

3つ目は、セルのデータをクリアする方法についてです。

データ入力・コピーしたあと、不要なデータを消すときによく使います。値を消すクリア、セルごと消す削除をそれぞれ覚えておくと応用が効くのでおすすめです!


■自動化できる処理イメージ

  • コピペ・入力などで不要なデータを消すとき


【VBA入門】行・列の削除とクリアをする方法
更新日 : 2019年4月25日

セルのデータを検索する方法

4つ目は、セルのデータを検索する方法についてです。

必要な情報を調べてから使うケースはよくありますよね。請求書番号が「A00001」のデータを使うようなケースで、セルの位置を検索する方法を覚えておくと便利です!


■自動化できる処理イメージ

  • セルのデータを検索するとき
【VBA入門】Find、FindNextで検索(完全一致、部分一致、複数一致)
更新日 : 2019年4月18日

VBAでシート操作する方法

次は、シート操作についてご紹介します!

指定したシートをアクティブにする方法

1つ目は、指定したシートをアクティブにする方法についてです。

シートを指定してセルのデータをコピー、変更するケースはよくありますよね。シートを指定するために、アクティブ化する方法を覚えておくと便利です!


■自動化できる処理イメージ

  • シートを指定したデータ入力・抽出・コピペ・削除
【VBA入門】シートのコピーと移動(複数コピーや名前の変更も解説)
更新日 : 2019年3月29日

アクティブシートを操作する方法

2つ目は、アクティブシートを操作する方法についてです。

シートをアクティブ化したあとは、具体的な操作方法を知りたいですよね。シート名の変更、セル操作、行列操作など、具体的な書き方を覚えておくのがおすすめです!


■自動化できる処理イメージ

  • アクティブシートの名称・セル操作・行列操作
【ExcelVBA入門】アクティブシートの取得・操作方法について徹底解説!
更新日 : 2019年4月22日

シートを追加する方法

3つ目は、シートを追加する方法です。

元のデータに手を加えずに、新しいシートを使うケースはよくありますよね。シート追加方法を覚えておくと他の操作がしやすくなるため、覚えておくと便利です!


■自動化できる処理イメージ

  • 元のデータを変えずに計算したいとき
【ExcelVBA入門】シートを追加するためのAddメソッドの使い方とは
更新日 : 2018年8月21日

シートをコピーする方法

4つ目は、シートをコピーする方法です。

たとえば、Excelで請求書を作る場合は、請求書テンプレートシートをコピーしてデータ入力をします。「シートコピー → 一覧データを見てデータ入力 → PDF化して保存」のような流れになります。シートコピーして使うケースはよくあるので、覚えておくと便利です!


■自動化できる処理イメージ

  • 請求書テンプレートのように、テンプレートをコピーするとき
  • 一覧データとは別に詳細シートを作るとき
【VBA入門】シートのコピーと移動(複数コピーや名前の変更も解説)
更新日 : 2019年3月29日

シートを削除する方法

5つ目は、シートを削除する方法です。

請求データ管理ツールなどを作る場合は、データ一覧シートだけでなく、請求管理番号ごとに詳細シートを作ります。誤って登録してしまったデータは、データ一覧だけでなく詳細シートも削除しますよね。このように、VBAで処理を作るときはシート削除機能もよく使うため、覚えておくと便利です!


■自動化できる処理イメージ

  • 一覧データ + 詳細シートのツールを作るとき
【VBA入門】Deleteでシートを削除(複数シートの削除も解説)
更新日 : 2019年4月30日

VBAでブック操作する方法

次は、ブック操作する方法についてご紹介します!

新しいブックを開く方法

1つ目は、ブックを開く方法です。

別のブックを操作する場合は、先にブックを開く必要があります。ブック操作の基礎として最初に覚えておくのがおすすめです!


■自動化できる処理イメージ

  • 別ブックにデータを書き込むとき
  • 別のブックからデータを取得するとき
【ExcelVBA】Workbooks.Openでブックを開く方法について徹底解説!
更新日 : 2019年5月4日

ThisWorkBookとActiveWorkBookの違い

2つ目は、ThisWorkBookとActiveWorkBookの違いについてです。

複数ブックの処理を作るとき、マクロを動かすブックと、開いているブックを指定して処理を作りたいケースがよくあります。開いているブックのデータをコピーし、マクロを動かしているブックにペーストするような処理です。そのため、マクロを動かしているブック(ThisWorkBook)、アクティブになっているブック(ActiveWorkBook)の違い、使い方を覚えておくと便利です。


■自動化できる処理イメージ

  • 複数ブックで連携した処理を作るとき
【VBA入門】ActiveWorkBookの使い方!ThisWorkBookとの違いも解説!
更新日 : 2019年5月2日

ブックを保存する方法

3つ目は、ブックを保存する方法についてです。

修正を加えたら、ブックを保存しますよね。マクロを作るときは必須なので、覚えておくのがおすすめです!


■自動化できる処理イメージ

  • マクロでデータ更新したデータを保存したいとき
【ExcelVBA入門】ワークブックを保存する方法を徹底解説!
更新日 : 2019年4月25日

ブックを閉じる方法

4つ目は、ブックを閉じる方法です。

複数ブックで処理するときは、処理が終わった後にブックを閉じたいですよね。処理を作るためにブックを開く必要があるとはいえ、開きっぱなしにはしたくないはずです。そのため、ブックを閉じる処理を覚えておきましょう。


■自動化できる処理イメージ

  • 複数ブックの処理を作るとき
【ExcelVBA入門】ワークブックを閉じる方法を徹底解説!
更新日 : 2019年4月17日

ブック操作まとめ

5つ目は、ブック操作のまとめです。

ブック操作についてそれぞれ解説してきましたが、ブック操作を一連の流れで覚えておくと理解が早いです。ブック開く、閉じる、作る、コピー、セルの値取得・書き込みなど、ブックを使った操作をまとめて覚えておくと便利です!


■自動化できる処理イメージ

  • 別ブックを操作する処理を作りたいとき
【ExcelVBA入門】ワークブック操作する方法について徹底解説!
更新日 : 2018年8月29日

VBAでユーザーフォームを作る方法

次は、VBAでユーザーフォームを作る方法についてご紹介します!

テキストボックスを使う方法

1つ目は、テキストボックスを使う方法です。

テキストボックスは、画面でテキストを入力するボックスのことです。名前、金額など、直接値を入力するケースはよくあるので、覚えておくと便利です。


■使用するときのイメージ

  • 入力が必要な画面を使って処理を作るとき
【ExcelVBA入門】ユーザフォームでテキストボックスを使う方法とは
更新日 : 2019年5月8日

コンボボックスを使う方法

2つ目は、コンボボックスを使う方法です。

コンボボックスとは、複数の選択肢から選んで使う画面の要素のことです。部署名、顧客名などは、登録済みのデータから選んだ方が楽ですよね。テキストボックスと同様よく使うので、覚えておくのがおすすめです。


■使用するときのイメージ

  • 部署名、顧客名など選択肢が多い項目を画面で使うとき
【VBA入門】コンボボックスの使い方(リストの初期化、値の取得)
更新日 : 2019年4月22日

チェックボックスを使う方法

3つ目は、チェックボックスを使う方法です。

チェックボックスは、複数の選択肢からチェックをして選択する画面の項目です。得意な言語(VBA,PHP,Ruby,Python,JavaScript)のように複数ある場合に使えます。


■使用するときのイメージ

  • 複数の選択肢から複数選択する項目を画面で使いたいとき
【ExcelVBA入門】ユーザフォームでチェックボックスを使う方法とは
更新日 : 2018年8月8日

オプションボタンを使う方法

4つ目は、オプションボタンを使う方法です。

オプションボタンは、複数の選択肢から1つだけ選択する画面の項目です。男性/女性、20代/30代/40代、消費税5%/消費税8%のように、選択肢から1つだけ選ぶときによく使います。


■使用するときのイメージ

  • 複数の選択肢から1つ選択させる項目を使いたいとき
【ExcelVBA入門】ユーザフォームでオプションボタンを使う方法とは?
更新日 : 2018年11月6日

VBAでエラー処理する方法

次は、VBAでエラー処理する方法です。

エラー処理は開発効率を上げるだけでなく、作った後のメンテナンス性も高めることができます。ツールは作って終わりでなく、運用保守をしていくケースがよくあるので、ツールを作るときは必須の考え方ですね。


■使用するときのイメージ

  • エラー箇所を特定し、対応しやすいVBAの処理を作るとき
【VBA入門】エラーを処理する方法(On Error、Resume、GoTo)
更新日 : 2019年4月21日

Excelでよく使うVBAの処理

次は、Excelでよく使うVBAの処理についてです。

CSVファイルを読み込む方法

1つ目は、CSVファイルを読み込む方法です。

Excelでデータ管理をするときは、外部システムで作ったCSVファイルのデータを取り込むケースもありますよね。その作業を自動化することができます。


■自動化できる処理イメージ

  • 外部システムで作成されたCSVデータを取り込むとき
【ExcelVBA】CSVファイルを読み込む方法とは?高速化方法も徹底解説!
更新日 : 2019年5月20日

フォルダ・ファイルの操作方法

2つ目は、フォルダ・ファイルの操作方法です。

VBAはExcelだけでなく、ファイル・フォルダを操作することもできます。無駄なファイルを削除するツールや、プロジェクトに使うフォルダ構造を自動作成するツールを作ることができます。ちょっとした作業でも、自動化すれば工数削減につながりますよね。


■自動化できる処理イメージ

  • フォルダを整理するとき
  • フォルダを一括で作成したいとき
  • ファイル名を一括で変更したいとき
【VBA入門】ファイルを選択のためのGetOpenFilename関数とは
更新日 : 2019年4月25日
【ExcelVBA入門】Killステートメントでファイルを削除する方法とは
更新日 : 2018年8月20日
【ExcelVBA入門】ファイルを出力しよう!Open・Print・Closeの使い方
更新日 : 2019年4月30日
VBAでファイル名を取得するには?3+1のパターンで速攻理解!
更新日 : 2019年4月25日

まとめ

今回は、VBAを書くための2つの方法、具体的なVBAの使い方について解説しました。

マクロの記録でVBAを試した後は、早めに自分で書いてみることがおすすめです。書いて動かしていくうちに、「もっと〇〇を自動化したい」と案が浮かんできますので。

ぜひ、VBAを作ってみてくださいね!

経験豊富なエンジニアに相談したいあなたへ

「IT業界の実情についてエンジニアの生の声を聞きたい、既にIT業務の仕事をしていて解決したい課題があるから相談にのってもらいたい」そんな要望はございませんか?

周りにエンジニアをやっている人がいないと、実際の現場のことがイメージできず不安ですよね。

侍エンジニア塾の無料体験レッスンでは、ご質問内容によって「現役エンジニア」があなたの開発したいサービスへ技術的なアドバイスや、未経験から内定を獲得する転職活動の極意をお伝えいたします。

下記の無料体験レッスン予約カレンダーよりお申し込みいただけます。あなたのご相談を心よりお待ちしております。

LINEで送る
Pocket

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説