Excel VBAで本当に大切なアイデアとテクニックだけ集めました。

書籍の概要

この本の概要

「Excel VBAの文法は入門書で学んだ。基礎の知識はひととおりある。でも,実践になると思うようにマクロが書けない……」。Excel VBAは生産性アップや時短を後押ししてくれる強力なツールですが,こんな“困った”を持つ人が少なくありません。「なぜ書けないのか」を知り尽くす著者の大村あつしさんは,知識とアイデアは別のものと指摘します。「いま持っている知識にアイデアとテクニックを加えればマクロを書くスキルは目に見えて上がる。そして,必ず知っておきたいアイデアの数は厳選できる」と。本書は,自動化,高速化から,データベース,ユーザーフォーム,外部ファイルの操作まで,お持ちの知識を活性化して上級者への確かな足がかりを築くことをお助けします。

こんな方におすすめ

  • Excel VBAの入門書を終えた方
  • Excel VBAの上級者をめざす方
  • マクロ作りの土台となるアイデアとテクニックをまとめて吸収したい方

この書籍に関連する記事があります!

Excel VBAはなぜ必要?
Excelの上下方向の番号を「行」,左右方向のアルファベットを「列」と呼ぶのは皆さんご存じと思います。

本書のサンプル

本書の紙面イメージは次のとおりです。画像をクリックすることで拡大して確認することができます。

サンプル画像1

サンプル画像2

サンプル画像3

目次

Part 1
初中級者のつまずきに効く
【お助け】テクニック

  • Part 1で身につけること
    • 「知識」と「アイデア」は別もの
  • セルを操作するテクニック
    • セルの値が空白かどうかを判定する
    • セルの値を空白にする
    • すべてのセルを選択する
    • 日付に変換されてしまう値を文字列として入力する
    • 「次のデータを書き込むセル」を選択する
    • セルの文字列内の空白をすべて削除する
    • 変数に代入された文字列内の空白をすべて削除する
    • オブジェクトが描画されている左上と右下のセルを取得する
  • データを検索するテクニック
    • MATCH関数で完全に一致するデータを検索する
    • VLOOKUP関数で完全に一致するデータを検索する
  • 重複データを削除するテクニック
    • RemoveDuplicatesメソッドで重複データを削除する
    • ループ処理で重複データを削除する
  • セルの値を判定するテクニック
    • セルの値が数値かどうかを判定する
    • セルの値が日付かどうかを判定する
    • セルの値が文字列かどうかを判定する
    • セルの数式がエラーかどうかを判定する
  • 日付に関するテクニック
    • 分割された年月日を1つの年月日に結合する
    • 特定の日付から年月日や時分秒を取り出す
    • 月の最終日を取得する
    • 2つの日付の間の日数や年数を取得する
    • 20日後や4カ月前の日付を取得する
  • Findメソッドを極めるテクニック
    • 任意の文字列が入力されているセルを1つ取得する
    • 任意の文字列が入力されているセルをすべて取得する
    • 「数式の結果」ではなく「数式そのもの」を検索する
  • そのほかのテクニック
    • MsgBox関数で文字列と変数を連結する
    • Workbook_Openイベントプロシージャを実行させないでブックを開く
    • 数式の再計算を一時的に止める

Part 2
フィルターを制す者がマクロを制す
【データベース】テクニック

  • Part 2で身につけること
    • フィルターで抽出したデータをどうするか
  • フィルターの初級テクニック
    • フィルターで抽出する
    • フィルターで空白のセルを抽出する
    • フィルターでトップ10や上位10%のデータを抽出する
    • フィルターで複数の条件で抽出する
    • フィルターでデータが抽出されているかどうかを判定する
    • フィルターで特定期間のデータを抽出する
    • フィルターで今週や今月のデータを抽出する
    • フィルターを解除せずに全データを表示する
    • フィルターで抽出されたデータをコピーする
    • (抽出されなかったデータを削除する)
  • フィルターの上級テクニック
    • フィルターで特定の文字を含む/含まないデータを抽出する
    • フィルターで数字の末尾をもとに抽出する
    • フィルターで「あ行」のデータを抽出する
    • フィルターの抽出結果のみを集計する
    • フィルターで抽出したデータ件数を取得する

Part 3
マクロ開発時に意外に思いつかない
【アイデア】テクニック

  • Part 3で身につけること
    • [選択オプション]ダイアログボックスをVBAで使いこなす
    • ウィンドウ操作テクニックでマクロの結果の見栄えをよくする
    • 第5節こそアイデアマクロの真骨頂
  • SpecialCellsメソッドを簡単に使うテクニック
    • 数式の保護,数値,文字列,可視セル,エラーのセルの操作
    • 空白セルの行を削除する
  • ウィンドウを操作するテクニック
    • ウィンドウ内に表示されているセル範囲を取得する
    • スクロール範囲を制限する(スクロールエリア)
    • アクティブセルを画面の左上に表示する
    • 任意のセル範囲を画面いっぱいに表示する
  • ブックとシートを操作するテクニック
    • 現在実行中のマクロが記述されているブックを操作する
    • ブックの変更を保存せずにExcelを終了する
    • ユーザーが再表示できないようにシートを非表示にする
    • 連番でワークシートを複数作成する
  • セルの応用テクニック
    • セルに名前を定義する
    • セルの名前をすべて削除する
    • 特定の値を含むセルに色を付ける
    • 一時的にソートしてからもとに戻す
  • For...Nextステートメントのアイデアテクニック
    • 1行おきにセルに背景色を塗る
    • 1行おきに行を挿入する
    • 5行おきに罫線を引く

Part 4
個人用マクロブックとショートカットキーの
【省力快適】テクニック

  • Part 4で身につけること
    • まずは個人用マクロブックについて
    • 使い勝手を決めるのはショートカットキー
  • マクロを個人用マクロブックのショートカットキーに登録する方法
    • 個人用マクロブックを作成する
    • 個人用マクロブックの場所を調べて削除する
    • マクロをショートカットキーに登録する
  • 表示を切り替えるマクロ
    • 数式の表示/非表示を切り替える
    • セルの目盛線(枠線)の表示/非表示を切り替える
    • 数式バーの表示/非表示を切り替える
    • ステータスバーの表示/非表示を切り替える
    • ふりがなの表示/非表示を切り替える
    • 改ページ区切り線の表示/非表示を切り替える

Part 5
操作をすると勝手にマクロが実行される
【自動化】テクニック

  • Part 5で身につけること
    • イベントプロシージャの基礎から
    • ブックのイベントプロシージャとシートのイベントプロシージャ
  • イベントプロシージャの作成方法
    • イベントプロシージャとは?
    • イベントプロシージャを作成・体験する
    • イベントプロシージャの仕組み
  • ブックのイベント
    • ブックのイベントの種類
    • 新しいシートを作成したときにマクロを実行する
    • ブックを印刷できないようにする
    • ブックを閉じられないようにする
  • シートのイベント
    • シートのイベントの種類
    • シートをアクティブにしたときに発生するイベント
    • セルの値が変更されたときにマクロを自動実行する
    • 方向キーを押しても特定のセルが選択できないようにする
    • セルをダブルクリックしたときにマクロを自動実行する
    • セルを右クリックしたときにマクロを自動実行する

Part 6
待ち時間が劇的に少なくなる
【マクロの処理高速化】テクニック

  • Part 6で身につけること
    • ワークシート関数を使うほうが簡単で,速い
    • 2次元配列はこわくない
  • VBAでワークシート関数を使うテクニック
    • 最終セルの下にSUM関数で合計値を入力する
    • 条件に一致するセルの数値をSUMIF関数で合計する
    • 文字列の一部が一致する個数をCOUNTIF関数で取得する
  • バリアント型変数に関するテクニック
    • 2次元配列の基本的な使い方
    • 2次元配列の要素をワークシートに展開する
    • セル範囲の値をバリアント型変数に代入する

Part 7
これであなたも立派な開発者
【ユーザーフォーム】テクニック

  • Part 7で身につけること
    • まず学ぶべきはユーザーフォーム
    • コマンドボタンとテキストボックス
    • 選択を行うコントロール
    • おなじみのスクロールバーを自作する
  • ユーザーフォームを操作するテクニック
    • ユーザーフォームを追加してコントロールを配置する
    • ユーザーフォームを2パターンの方法で表示する
    • ユーザーフォームを2パターンの方法で閉じる
  • 基本的な入力や表示を行うコントロール
    • コマンドボタンが押されたときに処理を行う
    • 既定のボタンとキャンセルボタン
    • テキストボックスに入力できる文字数を制限する
    • テキストボックスの文字列を取得/設定する
    • テキストボックスのIMEを自動的に切り替える
    • テキストボックスで文字を隠してパスワードを入力する
    • テキストボックスで複数行の入力を可能にする
    • テキストボックスに入力された文字をチェックする
    • タブオーダーを変更する
  • 選択を行うコントロール
    • チェックボックスの状態を取得する
    • リストボックスに表示する項目を設定する
    • リストボックスで選択されている項目を取得する
    • リストボックスで任意の行をリストの先頭に表示する
    • リストボックスで複数行を選択可能にする
    • コンボボックスの項目の追加や削除をマクロで行う
  • 数値を扱うコントロール
    • スクロールバーの値の取得と設定を行う
    • スクロールバーの移動幅を設定する

Part 8
Excel以外のファイルを自在に操る
【外部ファイルの操作】テクニック

  • Part 8で身につけること
    • Excelブックを開いてテキストファイルを読み込む
    • Excelブックを開かずにテキストファイルを読み込む(書き込む)
    • Excelに用意されているダイアログボックスと外部ファイルの操作
  • フォルダーとダイアログボックスを操作するテクニック
    • Excelの組み込みダイアログボックスを開く
    • 初期値を変更して[印刷]ダイアログボックスを開く
    • ブックを選択するダイアログボックスを開く
    • ブックを保存するダイアログボックスを開く
    • フォルダーを選択するダイアログボックスを開く
  • テキストファイルを操作するテクニック
    • テキストファイルを手動で開く
    • カンマ区切り(CSV形式)のテキストファイルを開く
    • 数値データを文字列として取り込む
    • 必要な列のデータのみを読み込む
  • ブックを開かずにテキストファイルの入出力を行うテクニック
    • CSV形式のテキストファイルを読み込む
    • 文書形式のテキストファイルを読み込む
    • ワークシートの内容をCSV形式で保存する
    • ワークシートの内容を文書形式で保存する
  • ファイルを操作するステートメントと関数
    • フォルダー内のファイルを削除する
    • フォルダー内のファイルを複数検索する

Part 9
初中級者を卒業
【VBA上級】テクニック

  • Part 9で身につけること
    • サブルーチンでマクロを部品化する
    • サブルーチンの上級テクニックである値渡し
    • エラー処理
  • 引数付きでマクロを呼び出す
    • 引数付きサブルーチンを体験する
    • Callステートメントでマクロの呼び出しを明示する
    • ほかのモジュールにあるマクロを呼び出せなくする
  • 参照渡しと値渡し
    • 参照渡しで引数を渡す-ByRefキーワード-
    • 値渡しで引数を渡す-ByValキーワード-
    • 実引数をカッコで囲むと値渡しとなる
    • マクロを強制終了する
  • エラーを適切に処理する
    • 「エラーのトラップ」でエラーが発生した場合に備える
    • エラー番号とエラー内容を調べる
    • エラーの種類によって処理を分岐する

著者プロフィール

大村あつし(おおむらあつし)

VBAを得意とするテクニカルライターであり,20万部のベストセラー『エブリ リトル シング』の著者でもある小説家。Excel VBAの解説書は30冊以上出版しており,その解説のわかりやすさと正確さには定評がある。過去にはAmazonのVBA部門で1~3位を独占し,同時に上位14冊中9冊を占めたこともあり,「今後,永遠に破られない記録」と称された。
1997年にその後国内最大級に成長することになるMicrosoft Officeのコミュニティサイト「moug.net」をたった一人で立ち上げた経験から,徹底的に読者目線,初心者目線で解説することを心がけている。また,VBAユーザーの地位の向上のために,2003年には新資格の「VBAエキスパート」を創設。
主な著書に『かんたんプログラミング Excel VBA』シリーズ,『Excel VBA 本格入門』『いつもの作業を自動化したい人の Excel VBA 1冊目の本』(いずれも技術評論社),『マルチナ,永遠のAI。』(ダイヤモンド社)など多数。静岡県富士市在住。