【保存版】初心者がエクセルVBAを実務で使えるようになるための完全マニュアル

★気に入ったらシェアをお願いします!


山頂への道のり

photo credit: Wanderung via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

エクセルVBAをマスターして活用すれば間違いなくお仕事効率化できます。

Microsoft Officeはたいがいのお仕事用Windowsマシンには入っていると思いますし、エクセルがある程度使える方ならば間違いなく誰でも習得することができます。

というお話なのですが、習得するには段階が必要で、少し時間をかけて訓練していく必要はあります。

このページは【これを見れば初心者がエクセルVBAをマスターして実務で使えるようになる】まとめ記事です。

上から順にマスター頂いても良いですし、目的別に見出しをつけていますので、知りたいところだけチョイスしても良いと思います。

皆さんが時間をかけながらも、エクセルVBAを身に着けるまでのお供としてマニュアル的にご活用頂ければと思います。

以下、キーワード別リファレンスページも合わせてご活用くださいね。

【保存版】エクセルVBAリファレンス~キーワード別インデックス
エクセルVBAのリファレンスページです。 ステートメント・関数・オブジェクト・メソッド・プロパティなどについてキーワード別にリストアップ!随時追加していきます。 皆さんが、エクセルVBAを身に着けるための参考としてご活用頂ければと思います。

目次

エクセルVBAを始める前の準備

まずは準備編。実際に実務用のプログラムを書く前の心構えと準備について確認しておきましょう。

【1】エクセルVBAはお仕事の大いなる武器
エクセルVBAを習得するメリットについてとその心構えについて確認して勢いづけをしておきましょう。

【2】VBEの使い方
VBAプログラムを書くためにはVBE(Visual Basic Editor)というアプリケーションが必要です。その基本的な使い方を確認しておきます。

【3】最初のVBAプログラム
超簡単なプログラムを組むんでみて、プロシージャ、変数、コメント、デバッグなどといった最初に知っておくと良い基本中の基本を解説しています。

オススメのエクセルVBA本の紹介

勉強する際に読んでおくと良い本、手元に置いておいたほうが良い本について紹介した記事です。

【1】「Excel VBAの神様 ボクの人生を変えてくれた人」

【2】「ExcelVBAを実務で使い倒す技術」


連載目次:エクセルVBAの作業効率&快適さを劇的に上げるVBEの使い方

エクセルVBAの作業では、プログラムとかその書き方に目が行きがちですが、その道具であるVBEの使い方ひとつで、コーディングやデバッグの作業効率が劇的に変わりますよ。そんなテクニックやノウハウをお伝えします。
  1. 【エクセルVBA】VBEの背景色や文字色を変更して画面を見やすくしよう
  2. 【エクセルVBA】最初っから知っておきたいVBEのショートカットキーまとめ
  3. 【エクセルVBA】VBEにコメントブロックのショートカットキーを設定する方法
  4. 【エクセルVBA】初心者にとっても便利なVBEの自動メンバー表示とその使い方
  5. 【エクセルVBA】初心者にオススメのVBEの7つのコード設定とその機能について
  6. 【エクセルVBA】初心者のうちから知っておくべきDebug.Printの使い方
  7. 【エクセルVBA】イミディエイトウィンドウはコマンド入力画面として使うと超便利


連載目次:データ一覧から請求書を自動で作る

お仕事において特定のデータ一覧から必要な情報を抽出するということは頻繁にありうると思います。ここではデータ一覧から請求書を作るということを目標に、実務で使えるスキルをまっすぐに身に着けることを目的としています。
  1. 【初心者向けエクセルVBA】データ一覧から請求書を自動で作る
  2. 【初心者向けエクセルVBA】For~Next文で簡潔にプログラムを書く
  3. 【初心者向けエクセルVBA】行の数をカウントする&不要な行を隠す
  4. 【初心者向けエクセルVBA】文字列の連結&Format関数での書式変更
  5. 【初心者向けエクセルVBA】If~Thenを使った条件分岐の超入門
  6. 【初心者向けエクセルVBA】Public変数の宣言とSubプロシージャの呼び出し
  7. 【初心者向けエクセルVBA】InputBoxでの日付入力と月末日の自動算出
  8. 【初心者向けエクセルVBA】Worksheetのコピーを活用して複数の請求書を作る
  9. 【初心者向けエクセルVBA】ファイルのコピーを使って取引先別の請求書を作る
  10. エクセルVBAでDateAdd関数を使って年月を条件としてSumIfs関数を使う方法
  11. 宣言もセットも不要!エクセルVBAでワークシートをオブジェクト名で取り扱う方法
  12. エクセルVBAでシートの列の挿入も簡単に対応できちゃう列挙体の使い方


連載目次:経費精算書のデータをデータベースに集約する

請求書シリーズと逆のパターンですが、バラバラの帳票からデータ一覧つまりデータベースに情報を集めて蓄積していく、というお仕事も多いと思います。ここでは各担当者から提出された経費精算書をデータベースに蓄積するプログラムを目標にして進めていきます。
  1. 【エクセルVBA入門】バラバラの経費精算書をデータにまとめる
  2. 【エクセルVBA入門】Do While~Loopで条件を満たす間繰り返し
  3. 【エクセルVBA入門】Withでプログラムをスッキリわかりやすく書く
  4. 【エクセルVBA入門】他のワークブックをWithで開く&保存せずに閉じる
  5. 【エクセルVBA入門】For Each~Nextでフォルダ内のブック全てを参照する
  6. 【エクセルVBA入門】Openしたブックのファイル名からLeft&Rightで文字列を抜き取る
  7. 【エクセルVBA入門】マスタからVlookupでデータを取得する方法
  8. 【エクセルVBA入門】データの重複を防ぐSubプロシージャの作成


連載目次:エクセルVBAでシートのセル範囲を簡単に取得する方法

エクセルVBAでシート上のセル範囲を取得。いつも必要になるのですが、これが意外と難しいと思われませんか? 本シリーズではシート上のデータがあるセル範囲を簡単に、そして上手に取得する方法をお伝えしていきます。
  1. 【エクセルVBA】表が変更されても、表全体の範囲を簡単に取得する方法
  2. 【エクセルVBA】シートで使用されているセルの範囲全てを取得する方法
  3. 【エクセルVBA】Endプロパティを使って表の最終行番号を取得する方法
  4. 【エクセルVBA】Endプロパティで表全体の範囲を取得する方法


連載目次:エクセルVBAで色々なCSVファイルを取り扱う

様々なソフトウェア間のデータ交換の際に一般的に多く活用されているCSVファイル。エクセルで取り込んで集計や加工することもたくさんあることと思います。このシリーズでは、CSVファイルをエクセルVBAで取り込むためのテクニックについてお伝えしています。
  1. CSVとは何か?そしてエクセルでCSVファイルを扱うときの注意点
  2. エクセルVBAでCSVを読み取る初心者向けの最も簡単なプログラム
  3. エクセルVBAでCSVデータをカンマで区切ってワークシートに取り込む方法
  4. エクセルVBAでCSV取込み~改行がされないパターンの対処法
  5. エクセルVBAでダブルクォーテーションで囲まれているCSVファイルを取り込む
  6. エクセルVBAでデータにカンマが含まれてしまっているCSVを取り込む
  7. 文字化けよさようなら!エクセルVBAでUTF-8のCSVを読み込む方法


連載目次:エクセルVBAでCSVや様々なテキストファイルを出力する

多くの企業では様々なデータをエクセル形式で保持しています。そのデータ群をCSVやHTMLなどで有効利用できたら便利ですよね?このシリーズでは、エクセルデータをテキストをはじめ様々な形式のファイルに出力する方法についてお伝えしています。
  1. エクセルVBAでテキストファイルに書き出す最も簡単なプログラム
  2. エクセルVBAでエクセルシート上のデータをCSVファイルに書き出す
  3. エクセルの表をHTMLのtableタグに変換して出力するVBAマクロ
  4. エクセルVBAでセルが結合されているかどうか、またそのセルの数を判定する方法
  5. エクセルVBAで文字コードUTF-8のCSVファイルを書き出す方法
  6. エクセルVBAでBOM無しのUTF-8でCSVファイルなどを出力する方法


連載目次:エクセルVBAでIEを操作してWEBスクレイピング

IEを操作してWEBページのデータを取得して、エクセルのデータとして取り込む、つまりWEBスクレイピングをエクセルVBAで実現します。各種WEBページを課題として様々なデータの取得の仕方を解説していきたいと思います。
  1. 【エクセルVBAでIE操作】10分で終わるセッティングとWEBページの閲覧確認
  2. 【エクセルVBAでIE操作】HTMLタグと要素そしてドキュメントの取得
  3. 【エクセルVBAでIE操作】ブラウザの読み込み待ちをしないとダメなのです
  4. 【エクセルVBAでIE操作】ページ内のリンク先URLを全部取得する
  5. 【エクセルVBAでIE操作】ディスクリプションなどの要素をname属性でGetする
  6. 【エクセルVBAでIE操作】hタグなどの要素をタグ名でGetする
  7. 【エクセルVBAでIE操作】WEBページのテーブル要素を自動で取得する方法
  8. 【エクセルVBAでIE操作】IEで検索窓にキーワードを入力して送信する方法
  9. 【エクセルVBAでIE操作】ページをクロールしてブログの記事一覧を取得する方法
  10. 【エクセルVBAでIE操作】ブログの記事一覧ページから公開日とカテゴリを取得する
  11. 【エクセルVBAでIE操作】ページャーを最後のページまでどんどんリンクする
  12. 【エクセルVBAでIE操作】ユーザー名とパスワードを入力してログインをする


連載目次:FileSystemオブジェクトでフォルダやファイルを操作する

ファイルやフォルダを操作するのはデリケートな気がしますが、エクセルVBAではFileSystemオブジェクトを使うことでファイル、フォルダ、ドライブをオブジェクトとして安全にそして細やかに操作をすることができます。 このシリーズでは、FileSystemオブジェクトの様々な活用法についてシリーズでお伝えしていきます。
  1. 【エクセルVBA】FileSystemオブジェクトの基本と簡単にフルパスを生成・分解する方法
  2. 【エクセルVBA】FileSystemオブジェクトでファイルやフォルダが存在するかを判定する
  3. 【エクセルVBA】指定のフォルダが存在するか判定して、存在してなければ作成する方法
  4. 【エクセルVBA】FileSystemオブジェクトとFor Each文でファイル一覧を取得する方法
  5. 【エクセルVBA】FileSystemオブジェクトでフォルダ内のサブフォルダ一覧を取得する


連載目次:エクセルVBAでマクロの動作状況をログファイルに残す方法

マクロの動作状況やエラーの発生などをログファイルに記録しておきたいときありますよね。本シリーズではFileSystemオブジェクトを使ってログをテキストファイルに書き込む方法についてお伝えしていきます。
  1. エクセルVBAでマクロの動作をログファイルに記録する最も簡単なプログラム
  2. エクセルVBAでテキストファイルを新規作成するFileSystemオブジェクトの使い方
  3. エクセルVBAでエラーが発生したらエラーの内容をログファイルに書き出すプログラム


連載目次:エクセルVBAでPDF出力と色々な印刷設定

エクセルで見積書や請求書などの帳票を作成する場合、印刷やPDF出力したいときがありますよね。このシリーズでは印刷やPDF出力をする方法、またその際の様々な設定やテクニックについてお伝えします。
  1. 初心者でも簡単!エクセルVBAでPDFを出力する最もシンプルなプログラム
  2. エクセルVBAで印刷時のページ中央配置と余白を設定する
  3. エクセルVBAで印刷範囲の設定をする方法とクリアをする方法
  4. エクセルVBAで印刷時のヘッダー・フッターの設定をする方法と書式コード・VBAコード一覧
  5. エクセルVBAで全てのシートを一つのPDFにまとめて出力する方法
  6. エクセルVBAで一部のワークシートのみ選択してPDFで出力する方法


連載目次:エクセル&VBAでブックやシートの保護をするテクニック

エクセルやVBAで「このシートは消されると困る」とか、「シートの名前を変えられるとVBAが動かなくなる」といった悩み、ありますよね。そんな時は「保護」をして操作ができないようにすることができます。本シリーズではエクセルやエクセルVBAでブックやシートの保護をするテクニックについてお伝えします。
  1. 【Excel】勝手な編集は許しません!初心者向けのシート保護設定
  2. 【Excel】勝手なシート操作を防ぐ!初心者向けのブックの保護設定
  3. 【エクセルVBA】Protect/Unprotectメソッドでシートの保護設定と解除をする方法
  4. 【エクセルVBA】保護しているシートでマクロの操作だけ有効にする方法
  5. 【エクセルVBA】VBAでパスワード付のシートの保護を設定・解除する方法
  6. 【エクセルVBA】シートの追加も削除も、名前さえ変えさせない!VBAでブックの保護を設定する方法


連載目次:エクセルVBAでピボットテーブルを操作する第一歩

ピボットテーブルはとっても便利です。それを自動化できたらもっと便利に使えるのでは?ということで、VBAを使ってピボットテーブルを操作する方法についてお伝えしていきます。
  1. エクセルVBAでピボットテーブルを操作するための第一歩~ピボットテーブルオブジェクト変数~
  2. エクセルVBAでピボットテーブルを作成!PivotCacheにデータソース範囲をセットする
  3. エクセルVBAでピボットテーブルを作成! CreatePivotTableメソッド
  4. 【エクセルVBA】 ピボットテーブルに行、列、値フィールドを追加する


連載目次:エクセルVBAで図形を操作するShapeオブジェクトの使い方

画像、オートシェイプ、グラフ、テキストボックス、ワードアート、ボタン…エクセルでは様々なものをシートに配置できますが、これらのアイテムは全てShapeオブジェクトです。これら、Shapeオブジェクトの挿入や配置など、自在に操作する方法をお伝えしていきます。
  1. エクセルVBAで画像やオートシェイプなどを操作するShapeオブジェクトのはじめの一歩
  2. エクセルVBAで画像ファイルをシートに追加するAddPictureメソッドの使い方
  3. 【エクセルVBA】AddPictureメソッドで挿入した画像にリンクを張る方法
  4. エクセルVBAで大量の画像をまとめてシートに貼り付けるAddPictureメソッドの使い方


連載目次:エクセルVBAでエクセルからAccessデータベースを操作する

エクセルと相性の良いデータベースとして第一候補として挙がるAccess。エクセルをインターフェース、AccessをデータベースとしてエクセルVBAを使って連携する方法とその様々なテクニックについてお伝えしていきます。
  1. なぜエクセルとAccessデータベースを連携するのが良いのか、またその際の注意点
  2. エクセルVBAでAccessデータベースと接続する最もシンプルなプログラム
  3. 【エクセルVBA&Access連携】SQL文でデータを抽出する最も簡単なプログラム
  4. 【エクセルVBAでAccess連携】SQLのSELECT,FROM,WHEREによる様々なデータ抽出方法
  5. 【エクセルVBAでAccess連携】SQLのJOINを使って複数のテーブルを組み合わせてデータを取り出す
  6. 【エクセルVBAでAccess連携】データベースのテーブルにレコードを追加するシンプルな方法
  7. エクセルVBAでAccessデータベースに複数のレコードを追加する方法とその実行速度について
  8. 【エクセルVBAでAccess連携】データベースのテーブルにレコードを追加するシンプルな方法
  9. 【エクセルVBAでAccess連携】データベースに特定条件のデータが存在するかどうかを判定する
  10. エクセルVBAからAccessデータベースのレコードを呼び出して修正して上書き更新する方法
  11. エクセルVBAでAccessデータベースの複数のレコードをまとめて上書き更新する方法
  12. エクセルVBAでAccessデータベースの複数のレコードを上書き更新する場合の実行速度について
  13. エクセルVBAでAccessのデータをORDER BYで並び替えをして取り出す
  14. エクセルVBAでADODBレコードセットをSortメソッドで並び替えする方法
  15. エクセルVBAでAccessデータをグループで集計して抽出するGROUP BY句と集計関数の使い方
  16. エクセルVBAでAccessデータを集合関数による条件で抽出するHAVING句の使い方
  17. エクセルVBAでAccessデータベースからFormat関数によるSQL文で特定の日付で抽出
  18. エクセルVBAでのAccessデータベース操作にトランザクション処理を入れる


連載目次:エクセルVBAでWord文書を操作する方法

Word文書についての情報を集めてリストを作りたい、そんなときはエクセルVBAでWord文書を開いたり、情報を取得したりしたいものです。シリーズでは初心者でもできる、エクセルVBAからのWord文書の操作の仕方をお伝えします。
  1. エクセルVBAでWordを操作して文書を操作する準備と最も簡単なプログラム
  2. エクセルVBAでWord文書を開いてページ数や文字数などのいろんな情報を取得する
  3. エクセルVBAでフォルダ内のWord文書のページ数・文字数などをリスト化する


連載目次:エクセルVBAでグラフとPowerPointを操作する

エクセルで様々な集計や分析をした結果の表やグラフを、最終的にPowerPointに貼り付け…という作業は結構多いですよね。1つ2つなら良いですが、大量にあった場合は大変です。そんな時にはVBAで自動化をしてしまいましょう!
  1. エクセルVBAでPowerPointを操作するための準備と最も簡単なプログラム
  2. エクセルVBAでPowerPointのプレゼンテーションを開く方法・スライドを取得する方法
  3. エクセルVBAでPowerPointスライド上のシェイプ一覧を取得する
  4. エクセルVBAでPowerPointの特定のシェイプのインデックス番号を調べる方法
  5. エクセルVBAでPowerPointのテキストボックスに文字を入力する
  6. エクセルVBAでPowerPointでタイトルを変更しながらスライドを大量に生成する
  7. 初心者でも分かる!エクセルVBAでグラフを操作し取り扱うための超基本の第一歩
  8. エクセルVBAでグラフの元となるデータ範囲を次々と変更するプログラム
  9. 簡単!エクセルVBAでシート上のグラフをコピーしてPowerPointにペーストする
  10. エクセルVBAでグラフのデータ範囲を変更しながらPowerPointに連続して貼り付ける
  11. エクセルVBAでグラフタイトルを変更する方法とChartTitleについて
  12. エクセルVBAでグラフの軸の最大値・最小値や軸タイトルを設定する方法


連載目次:【脱エクセルVBA初心者】請求書を自動で作る際のテクニック集

「請求書を自動で作る」というニーズはとても多いですから、その際に便利な機能やテクニックをシリーズにてお伝えしていきます。脱エクセルVBA初心者をターゲットにしています。
  1. 【脱エクセルVBA初心者】新規のワークブックを作成、シートのコピーと名前の変更
  2. 【脱エクセルVBA初心者】確認メッセージを表示させずにワークシートを削除する方法
  3. 【脱エクセルVBA初心者】PDFでの出力とファイル名の指定保存そして閉じる
  4. 【脱エクセルVBA初心者】データが含まれる範囲全体を一発で取得してSortで並び替え
  5. 【脱エクセルVBA初心者】コピペはRangeが効率的なのでその範囲を見つけるプログラム
  6. 【脱エクセルVBA初心者】Copyメソッドで範囲まるごとを一発でコピペする
  7. 【脱エクセルVBA初心者】Vlookupで出てしまうエラーをいい感じに回避する方法
  8. 【脱エクセルVBA初心者】請求書作成マクロの全体おさらいと総仕上げ


連載目次:エクセルVBAでファイルやフォルダを操作する方法

お仕事でいつも決まったファイルをいつも一つずつダブルクリックして開くの…毎日だと思うと面倒ですよね。 このシリーズでは、ファイルを自動で開く、フォルダ一覧を出力するなど、エクセルVBAでファイルやフォルダを操作する方法についてお伝えしていきます。
  1. エクセルVBAでブックを開いたときに他のワークブックも一緒に自動で開く
  2. エクセルVBAでエクセル以外の他のアプリケーションを開く方法
  3. エクセルVBAでDir関数を使って指定のファイルが存在するかどうかを判定する方法
  4. エクセルVBAでFileDialogオブジェクトを使ってファイル選択ダイアログを開く
  5. エクセルVBAでフォルダ内のファイル一覧を表示するDir関数の使い方
  6. エクセルVBAでDir関数を使ってフォルダ一覧を表示する方法


連載目次:エクセルの入力情報からVBAでHTML文を自動生成

企業向けのWebサイトを作る際、エクセルの入力情報を元に自動でHTMLコードを生成できれば楽ですよね。本シリーズではBootstrapを使ったシングルページを想定してコードを生成するVBAプログラムを作っていきます。
  1. エクセルVBAでWordPress投稿用HTMLソースを自動で生成する
  2. エクセルVBAでインデントや改行を入れながらHTML文を追加していく便利関数を作る
  3. エクセル入力情報からWebサイトの会社概要のHTML文を生成するVBAプログラム
  4. 【エクセルVBA】シートの開始行や行数の変更があってもちゃんと動く繰り返し文の書き方
  5. カラム数を指定してBootstrapのグリッドシステムを使ったHTMLを生成するエクセルVBA

その他エクセルVBAに関する数々のテクニック

  1. 遅い…重い…そんなエクセルVBAプログラムの処理速度を劇的に改善する方法
  2. エクセルで重複したデータを削除する方法とVBAプログラム
  3. エクセルVBAのボタン設置で引数を渡してマクロを呼び出す方法
  4. vbacでエクセルVBAのソースコードをGitバージョン管理する方法