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

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


山頂への道のり

photo credit: Wanderung via photopin (license)

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

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

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

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

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

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

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

スポンサーリンク

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

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

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

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

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

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

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

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

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

お仕事において特定のデータ一覧から必要な情報を抽出するということは頻繁にありうると思います。ここではデータ一覧から請求書を作るということを目標に、実務で使えるスキルをまっすぐに身に着けることを目的としています。

  1. Worksheetオブジェクトとセルの値の操作
  2. For~Nextでの繰り返し
  3. 行の数をカウントする&不要な行を隠す
  4. 文字列の連結&Format関数での書式変更、WorkSheetの再計算
  5. If~Thenを使った条件分岐と年月日の取得
  6. Public変数の宣言とSubプロシージャの呼び出し
  7. InputBoxの入力フォーム表示と月末日の取得
  8. Worksheetのコピーと名前の変更
  9. FileCopyでのWorkbookのコピーとオープン、フルパスの取得

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

請求書シリーズと逆のパターンですが、バラバラの帳票からデータ一覧つまりデータベースに情報を集めて蓄積していく、というお仕事も多いと思います。ここでは各担当者から提出された経費精算書をデータベースに蓄積するプログラムを目標にして進めていきます。

  1. Worksheetとセルの操作のおさらい&一行だけデータベースに転記
  2. Do While~Loopによる条件を満たす間の繰り返し
  3. Withでプログラムをスッキリわかりやすく書く
  4. 他のワークブックをWithしながら開く&保存せずに閉じる
  5. For Each~Nextでフォルダ内のブック全てを参照する
  6. 人為的なミスを回避する方法その1~ファイル名を使う
  7. 人為的なミスを回避する方法その2~マスタを利用
  8. データの重複を防ぐSubプロシージャの作成

連載目次:エクセルVBAでファイルを開く作業を自動化する方法

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

連載目次:エクセル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でPDF出力と色々な印刷設定

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

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

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

連載目次:エクセル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操作】ユーザー名とパスワードを入力してログインをする
⇒以下連載中!

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

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

連載目次:エクセル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でグラフと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に関する数々のテクニック

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