書籍概要

レシピ集

Excel VBA コードレシピ集

著者
発売日
更新日

概要

Excel VBAによる業務改善のための,究極のレシピ集。仕事で今すぐ使える時短テクニックからプロ技まで余すところなく集めました。セルの操作/データ抽出・集計/ファイルの読込/Power Queryの操作/テーブル/フィルター/ユーザーフォーム/Word・PowerPointへの出力など,目的別にレシピを整理。「どうすれば自動化できるんだろう?」が,スグにわかります。仕事で使い始めたばかりの方からプログラマーの方まで,Excel VBAを扱うすべての方にお届け。Excel 2013/2016/2019/Microsoft 365版に対応。

こんな方におすすめ

  • Excel VBAの初~中級者。Excel VBAの基礎を理解し,これから実際に使いこなそうとしている方
  • VBAプログラマの方

著者から一言

みなさまは,これまでに何冊のExcel VBAの解説書を手にしましたか。恐らくですが,本書が「初めての解説書」という方はほとんどいないと思います。なぜなら,本書はExcel VBAの基礎は理解している方を前提に執筆されたものだからです。
では,現実を見ると多くの人が何冊もの解説書を読まなければならないのはなぜでしょうか。Excel VBAはそれほど難しいものなのでしょうか。その答えは「いいえ」です。
ライターでもあり開発者でもある私は自信を持って断言できます。Excel VBAはとても平易な(しかし,非常に優れた)プログラミング言語であると。
ただし,プログラミングというのは「知識」だけではいずれ行き詰ります。その知識を生かす「知恵」が要求されるシーンに直面するからです。これは,Excelのマクロも例外ではありません。そして,「知恵」というのは「知識×経験」から生まれるものだと私は常々感じています。
今,このページを開いているみなさまは,恐らく十分な「知識」はお持ちのはずです。そして,その「知識」はあまたある解説書で習得したのではないでしょうか。
ところが,「経験」となりますと,それを教えてくれる解説書はほとんど存在しません。 かと言って,「3年,5年かけて,ご自身で実際に体験してください」では,あまりに非現実的です。誰もが本業を持ち,恐らくはその業務の改善のためにExcel VBAを必要としているのに,多忙な中で「自分で努力してください」と突き放すような者に「教える資格」はないと私は考えます。

そこで書き上げたのが本書『Excel VBAコードレシピ集』です。
先に私は,「知識×経験=知恵」と述べましたが,実はもう1つのアプローチがあります。それが,「知識×テクニック=知恵」です。
そして,本書にはそのテクニックが実に650個も収録されています。結果,本書を読めば,次から次へと「知恵」が溢れ出てくることになるでしょう。

どうか,その「知恵」を武器に素晴らしいExcelマクロを開発し,業務改善などさまざまなシーンでExcel VBAを活用してください。
本書がその一助となれば著者としてこれ以上の幸福はありません。

大村あつし

サンプル

samplesamplesample

目次

Chapter 1 セル選択のテクニック

  • 001 セル番地や行・列番号でセルを取得したい
  • 002 任意のセル範囲内から目的のセルを取得したい
  • 003 セルが選択されている時だけ アドレスを取得したい
  • 004 セルが選択されていない時も アドレスを取得したい
  • 005 使用されているセル範囲を取得したい
  • 006 表の先頭と終端のセルを取得したい
  • 007 数式が入力されているセル範囲だけを操作したい
  • 008 数値が入力されているセル範囲だけを操作したい
  • 009 文字列が入力されているセル範囲だけを操作したい
  • 010 基準セルを含む行全体を操作したい
  • 011 基準セルを含む列全体を操作したい
  • 012 コードの実行結果空白セルだけを操作したい
  • 013 空白セルを含む行全体を一括操作したい
  • 014 結合セルかどうかや結合範囲を取得したい
  • 015 2つ以上のセル範囲の集合を取得したい
  • 016 2つのセル範囲の重なり合う範囲を取得したい
  • 017 離れた位置にあるセルを固まりごとに操作したい
  • 018 セルを検索して見つかったセルを操作したい
  • 019 セルを検索して対象セルすべてを操作したい
  • 020 「1行分」単位でセルを操作したい
  • 021 グラフや図がどのセル上に置かれているかを知りたい
  • 022 表示されているセル範囲だけを操作したい
  • 023 非表示の行・列があるかどうかをチェックしたい
  • 024 現在表示されているセル範囲を知りたい
  • 025 シートの表示エリアを制限したい
  • 026 指定セルが画面左上に来るようスクロールさせたい
  • 027 アクティブではないシート上のセルへ移動したい
  • 028 他のセルへジャンプ後に元のセルへと戻りたい

Chapter 2 セルの値と表示に関するテクニック

  • 029 セルに値を入力したい
  • 030 セルが空白かどうかを判定したい
  • 031 セルの値が数値かどうかを判定したい
  • 032 セルの値が日付かどうかを判定したい
  • 033 セルの値が文字列かどうかを判定したい
  • 034 セルに相対参照の考え方で数式を入力したい
  • 035 セルに配列数式を入力したい
  • 036 セルの計算結果ではなく数式を取得したい
  • 037 セルに数式が入力してあるかどうかを判定したい
  • 038 セルの数式がエラーかどうかを判定したい
  • 039 セルの数式が参照しているセル範囲を取得したい
  • 040 セルのシリアル値を取得したい
  • 041 日付に変換させずに文字列として入力したい
  • 042 日付値を年・月・日それぞれの値から作成したい
  • 043 時刻値を時・分・秒それぞれの値から作成したい
  • 044 VBE上で直接日付値を入力したい
  • 045 日付から年月日や時分秒の値を取り出したい
  • 046 月の最終日を取得したい ❶
  • 047 月の最終日を取得したい ❷
  • 048 10日後や3か月後の日付を計算したい
  • 049 日付に指定書式を適用した文字列を取得したい
  • 050 稼働日数を取得したい
  • 051 指定日が休日かどうかを判定したい
  • 052 「メモ」と「コメント」の違いを整理する
  • 053 セルにメモを追加したい
  • 054 メモの内容を更新したい
  • 055 メモを削除したい
  • 056 メモ内の文字列を一括検索したい
  • 057 セルにコメントを追加したい
  • 058 コメントの内容を更新したい
  • 059 コメントに返信したい
  • 060 コメントを削除したい
  • 061 すべてのコメントをチェックしたい
  • 062 セルのフリガナを取得したい
  • 063 セルのフリガナ設定を変更したい
  • 064 任意の文字列のフリガナを自動判別したい
  • 065 漢字ごとの個別のフリガナを取得したい
  • 066 フリガナを一括消去したい

Chapter 3 データの入力で役立つテクニック

  • 067 規則を満たす値しか入力できないようにしたい
  • 068 入力できる値をポップアップで表示したい
  • 069 規則外の値の入力時に警告メッセージを表示したい
  • 070 セルに入力規則が設定されているかを知りたい
  • 071 入力規則が設定されているセルすべてを取得したい
  • 072 入力規則の対応形式を再設定する
  • 073 入力規則に反したデータ数と位置を取得したい❶
  • 074 入力規則に反したデータ数と位置を取得したい❷
  • 075 セルにハイパーリンクを挿入したい
  • 076 セルに他ブックへのハイパーリンクを挿入したい
  • 077 ハイパーリンクのポップヒントを変更したい
  • 078 特定セル範囲のハイパーリンクを削除したい
  • 079 すべてのハイパーリンクのリンク先をまとめて開きたい
  • 080 すべてのハイパーリンクを削除したい
  • 081 数式の結果でなく数式そのものを検索したい
  • 082 特定の書式を持つセルを検索したい
  • 083 色の付いているセルすべてを取得したい
  • 084 特定の値を含むセルに色を付けたい
  • 085 セルに特定の単語が含まれている個数を取得したい
  • 086 MATCH関数で完全に一致するデータを検索したい
  • 087 MATCH関数で特定範囲内の値を検索したい
  • 088 VLOOKUP関数で目的のデータを表引きしたい
  • 089 DCOUNTA関数で複雑な条件を満たすデータ数を取得したい
  • 090 セルにスピル形式の数式を入力する
  • 091 セルがスピル範囲かどうかを取得する
  • 092 スピル形式の数式の結果セル範囲を取得する
  • 093 UNIQUE関数でユニークなリストを取得したい
  • 094 XLOOKUP関数で目的のデータを表引きしたい

Chapter 4 表形式でデータを扱うテクニック

  • 095 表形式のセル範囲をテーブルに変換したい
  • 096 テーブルの名前やスタイル書式を設定したい
  • 097 テーブル設定を解除したい
  • 098 テーブル全体のセル範囲を取得したい
  • 099 テーブルの見出しとデータ範囲を分けて選択したい
  • 100 テーブルで扱うセル範囲を更新したい
  • 101 テーブルに「次のレコード」を追加したい
  • 102 テーブルのデータをレコード単位で扱いたい
  • 103 テーブルのレコード数を知りたい
  • 104 テーブルのデータをフィールド単位で扱いたい
  • 105 テーブルのスライサーを設定/消去したい
  • 106 テーブル内のデータを構造化参照式で計算したい
  • 107 テーブルのデータ範囲を構造化参照式で指定したい
  • 108 テーブルの「現在のレコード」を取得したい
  • 109 テーブルに集計行を追加したい
  • 110 テーブルを操作するときの注意点❶
  • 111 テーブルを操作するときの注意点❷
  • 112 テーブルを使わずに表形式の考え方でデータを扱いたい
  • 113 「次のデータ」を書き込む位置を取得したい❶
  • 114 「次のデータ」を書き込む位置を取得したい❷
  • 115 「次のデータ」を書き込む位置を取得したい❸
  • 116 フィールドの値の種類に合わせて書式を設定したい

Chapter 5 データの集積・集計を行うテクニック

  • 117 複数シートに点在するデータを集めたい
  • 118 開いているブックすべてからデータを集めたい
  • 119 閉じているブックからデータを集めたい
  • 120 指定フォルダー内のブックすべてからデータを集めたい
  • 121 CSVファイルを開きたい
  • 122 固定長形式のファイルを開きたい
  • 123 「001」や「10-1」等の値を変換させずに読み込みたい
  • 124 文字列として認識されているデータを数値に一括変換したい
  • 125 文字コードを指定してテキストファイルを読み込みたい
  • 126 Streamオブジェクトでファイルを読み込みたい
  • 127 テキストファイルを指定位置から数行分だけ読み込みたい
  • 128 テキストファイルから特定の文字を含む行だけ読み込みたい
  • 129 セルの内容を特定の区切り文字で分割したい
  • 130 セルの内容を指定文字数ごとに分割したい
  • 131 QueryTableを使って好きな位置にデータを読み込みたい
  • 132 XML形式のデータを読み込みたい
  • 133 XPath式を使ってXML形式のデータを読み込みたい
  • 134 Accessのデータベースに接続したい❶
  • 135 Accessのデータベースに接続したい❷
  • 136 Accessのテーブルを読み込みたい
  • 137 Accessのテーブルをフィールド名も含めて読み込みたい
  • 138 Accessのクエリの結果を読み込みたい
  • 139 Accessのパラメータークエリの結果を読み込みたい
  • 140 SQL文を使ってAccessからデータを読み込みたい
  • 141 Accessのテーブルから5番目のレコードを読み込みたい
  • 142 カーソルの種類を指定してAccessに接続したい
  • 143 WebページをPC標準のブラウザーで表示したい
  • 144 IEでWebページを表示したい
  • 145 読み込み完了後にWebページの内容を取得したい
  • 146 Webページの任意の部分を抜き出したい
  • 147 Webページ内のフォームにデータを書き込んで送信したい
  • 148 文字列をURLエンコードしたい
  • 149 URLエンコードされた文字列をデコードしたい❶
  • 150 URLエンコードされた文字列をデコードしたい❷
  • 151 ブラウザーを介さずWebのデータを読み込みたい
  • 152 名前空間を指定してデータを取得したい
  • 153 JSON形式のデータを扱いたい

Chapter 6 Power Queryでデータを扱うテクニック

  • 154 Power Queryを利用したい
  • 155 Power Queryでデータを読み込む処理の基本手順
  • 156 Power Queryのクエリを登録したい
  • 157 Power Queryのコマンドテキストを作成したい
  • 158 Power Queryの結果を「テーブル」として展開したい
  • 159 Power Queryの結果を展開したい
  • 160 Power Queryで現在のブックのデータを扱いたい
  • 161 Power Query上でシート単位のデータを扱いたい
  • 162 Power Query上で1行目をフィールドとして扱いたい
  • 163 Power Query上で複数テーブルを連結したい
  • 164 Power Query上でブック内の全テーブルを扱いたい
  • 165 Power Query上でブック内の全シートを扱いたい
  • 166 Power Query上で複数テーブルを結合したい❶
  • 167 Power Query上で複数テーブルを結合したい❷
  • 168 Power Query上で抽出を行いたい
  • 169 Power Queryで最新の5レコードのみ読み込みたい
  • 170 Power Queryで必要な列だけ選択したい
  • 171 Power QueryでAccessから読み込みたい
  • 172 Power QueryでCSVファイルから読み込みたい
  • 173 Power QueryでWebページ内のテーブルを読み込みたい
  • 174 Power QueryでXMLやフィード情報を読み込みたい
  • 175 Power Query上でJSON形式のデータを扱いたい
  • 176 Power QueryでPDF内のデータを読み込みたい
  • 177 Power Queryでフォルダー内のデータをすべて読み込みたい
  • 178 Power Queryでクロス集計表のピボットを解除したい
  • 179 Power Queryでカスタム関数を作成したい
  • 180 Power Queryで連結セルやExcel方眼紙データを読み取りたい
  • 181 Power Query側にパラメータを渡して更新したい
  • 182 Power Query側で動的にフィールド名を取得したい
  • 183 Power Queryで各フィールドのデータ型を変換したい
  • 184 Power Queryで列名を一括変更したい
  • 185 Power Queryで各フィールドにプレフィックスをつけたい
  • 186 Power Queryで任意のフィールド名だけ変更したい
  • 187 Power Queryで新たなフィールドを追加したい
  • 188 Power Queryで新規テーブルを作成したい
  • 189 Power Queryで集計・グループ化したい
  • 190 「クエリ」や「接続」を一括消去したい

Chapter 7 データを分析するテクニック

  • 191 セルを並び替えたい
  • 192 4つ以上の列でソートしたい❶
  • 193 4つ以上の列でソートしたい❷
  • 194 フリガナを無視してソートしたい
  • 195 行頭の数値でソートしたい
  • 196 行頭の型番や枝番を抜き出してソートしたい
  • 197 正規表現で行頭の型番や枝番を抜き出してソートしたい
  • 198 一時的にソートして元に戻したい
  • 199 フィルターで抽出したい
  • 200 フィルター矢印を非表示にしたい
  • 201 フィルターで空白のセルを抽出したい
  • 202 フィルターで特定の文字を含む/含まないデータを抽出したい
  • 203 フィルターで末尾の数値を元に抽出したい
  • 204 フィルターで特定の色を抽出したい
  • 205 フィルターで「あ行」のデータを抽出したい
  • 206 フィルターでトップ3や上位10%のデータを抽出したい
  • 207 シートのフィルター状態を調べたい
  • 208 テーブルのあるシートのフィルター状態を調べたい
  • 209 フィルターで特定期間を抽出したい
  • 210 フィルターで今週や今月のデータを抽出したい
  • 211 フィルターで抽出された件数を取得したい
  • 212 フィルターの抽出結果のみを集計したい
  • 213 フィルター状態を解除せずに全データを表示したい
  • 214 フィルターが設定されているセル範囲を取得したい
  • 215 フィルターで抽出されたデータをコピーしたい
  • 216 フィルターで抽出した条件を取得したい
  • 217 フィルターの詳細設定で複数条件を組み合わせて抽出したい
  • 218 フィルターの詳細設定で「か行」のデータを抽出したい
  • 219 フィルターの詳細設定で抽出結果を転記したい
  • 220 フィルターの詳細設定で重複を除いたデータを取り出したい
  • 221 必要なフィールドのみを好きな順番で転記する
  • 222 フィルターの詳細設定で顧客別売上データを作成する

Chapter 8 分析を補助するテクニック

  • 223 グラフシートを作成したい
  • 224 グラフオブジェクトを作成したい
  • 225 グラフの種類を指定して作成したい
  • 226 グラフの元データとするセル範囲を更新したい
  • 227 グラフの位置や大きさを指定したい
  • 228 複数のグラフの位置や大きさをまとめて指定したい
  • 229 グラフのタイトルを変更したい
  • 230 第2軸を追加してスケールの異なるデータを見やすくしたい
  • 231 任意のグラフを複製して新規グラフを作成したい
  • 232 右クリックで新規グラフを作成したい
  • 233 平均値を表す系列を追加したい
  • 234 注目させる値のバーを強調したい
  • 235 注目させる値のマーカーを強調したい
  • 236 注目させる値の場所にシェイプを追加したい
  • 237 バーを選択した時に任意のメッセージを表示したい
  • 238 バーを選択した時に対応するセルを塗りつぶしたい
  • 239 「■」記号を使った簡易グラフを作成したい
  • 240 条件付き書式で特定のデータを強調したい
  • 241 条件付き書式が設定されているセルを確認したい
  • 242 条件付き書式をクリアしたい
  • 243 売上金額ベスト3のデータを強調したい
  • 244 平均以上・平均以下のデータを強調したい
  • 245 1行おきに色を付けたい
  • 246 2つ以上の条件付き書式の優先順位を決めたい
  • 247 ピボットテーブルを作成したい
  • 248 ピボットテーブルのレイアウトを変更したい
  • 249 ピボットテーブルの値フィールドに書式を設定したい
  • 250 ピボットテーブルの特定のアイテムの情報を取得したい
  • 251 ピボットテーブルの特定のアイテムのセル範囲を選択したい
  • 252 ピボットテーブルの特定の集計結果を取得したい
  • 253 ピボットテーブルの特定フィールドに書式を設定したい

Chapter 9 作表に使えるテクニック

  • 254 セルに表示されている状態で値を取得したい
  • 255 セルに「###」が表示されていたら列幅を広げたい
  • 256 セルに表示形式を設定したい
  • 257 セルの表示形式をコピーしたい
  • 258 セルに罫線を引きたい
  • 259 セルの罫線の状態を細かく取得/設定したい
  • 260 セルの値を置き換えたい
  • 261 セルの内容を縮小して全体を表示したい
  • 262 セル内の改行コードを削除したい
  • 263 一部文字列のフォントを変えて「x2 +y」という文字列を作りたい
  • 264 “大村”と引用符のついた文字列を入力したい
  • 265 「1」という数値を「VBA-001」といった文字列に変換したい
  • 266 「11」を「011」や「110」といった文字列に変換したい
  • 267 左右の余分な空白を消去したい
  • 268 文字列内の空白を一括削除したい
  • 269 文字列の全角/半角,ひらがな/カタカナを統一したい
  • 270 数値を漢数字に変換したい
  • 271 一覧表を元に表記の揺れを統一したい
  • 272 カタカナのみを全角に統一したい
  • 273 正規表現で値を置き換えたい
  • 274 正規表現でマッチングした値を取り出したい
  • 275 特定の文字を目安にして1列のデータを整理したい
  • 276 値を1~10,11~20といった範囲ごとに分類したい
  • 277 必要な列のデータのみを抜き出したい
  • 278 リストアップ形式のデータから表形式のデータを作成したい
  • 279 表形式のデータからリストアップ形式のデータを作成したい
  • 280 入力されている値に合わせて行・列の幅を自動調整したい
  • 281 現在の行・列の幅を少し拡張したい
  • 282 表形式のデータをツリー形式にしたい
  • 283 ツリー形式の表に罫線を引きたい
  • 284 ツリー形式の表を表形式にしたい❶
  • 285 ツリー形式の表を表形式にしたい❷
  • 286 シェイプを追加したい
  • 287 シェイプの位置や大きさを指定したい
  • 288 シェイプの色を設定したい - Excelで扱う色についての整理
  • 289 シェイプの線の太さと色を変更したい
  • 290 シェイプにスタイルを適用したい
  • 291 シェイプにテキストを表示したい
  • 292 特定種類のシェイプのみ種類を変更したい
  • 293 吹き出しの引き出し線の位置を調整したい
  • 294 シェイプを複製したい
  • 295 シェイプを削除したい
  • 296 選択しているシェイプに対して処理を行いたい
  • 297 [フォーム]のコントロールを残して削除したい
  • 298 シェイプを画像として書き出したい

Chapter 10 書き出しに使えるテクニック

  • 299 セル範囲をCSV形式で書き出したい
  • 300 セル範囲をテキスト形式で書き出したい
  • 301 自由な形式でテキストファイルへ書き出したい
  • 302 セルに表示されている値のまま書き出したい
  • 303 自分の好みの形式に変換して書き出したい
  • 304 既存ファイルへとデータを付け加えていきたい
  • 305 文字コードをUTF-8として書き出したい
  • 306 XMLドキュメントのXML宣言部分を作成したい
  • 307 セル内の改行コードを削除したい
  • 308 XMLの属性を作成・追加したい
  • 309 セルの値を元にXMLツリーを作成して書き出したい
  • 310 Wordドキュメントを作成したい
  • 311 Wordドキュメントにセルの内容を書き出したい
  • 312 Wordドキュメントに書式やスタイルを付けて書き出したい
  • 313 Wordドキュメントの末尾にセルの内容を追記したい
  • 314 Wordドキュメントの内の指定位置にグラフを張り付けたい
  • 315 PowerPointプレゼンテーションを作成したい
  • 316 PowerPointプレゼンテーションに表を書き出したい
  • 317 PowerPointプレゼンテーションにグラフを書き出したい
  • 318 Accessのテーブルにレコードを追加したい
  • 319 AccessのDBにテーブルを追加したい
  • 320 AccessのDBに対してSQLコマンドを実行したい
  • 321 AccessのDBにトランザクション処理を実行したい
  • 322 HTML形式で書き出したい
  • 323 HTML形式用に文字列をエスケープしたい
  • 324 セルの値から任意のタグの要素を作成したい
  • 325 ハイパーリンクを持つ要素を作成したい
  • 326 任意の要素を自由に作成できる関数を用意する
  • 327 セル範囲をテーブル要素に変換したい
  • 328 テンプレートを元にHTMLファイルを作成したい
  • 329 JSON形式でデータを書き出したい
  • 330 特定のシートのみを印刷したい
  • 331 複数シートをまとめて印刷したい
  • 332 ブック全体を5部ずつ印刷したい
  • 333 特定のセル範囲のみを印刷したい
  • 334 余白をセンチメートル単位で設定したい
  • 335 1枚の用紙に収まるように印刷したい
  • 336 特定ページのみを再印刷したい
  • 337 ヘッダーやフッターに情報を印刷したい
  • 338 マクロで改ページ位置を設定したい
  • 339 印刷の総ページ数を取得したい
  • 340 印刷後の区切り線を消去したい
  • 341 行・列番号や枠線も含めて印刷したい
  • 342 プリンターを選択したい
  • 343 印刷設定の処理時間を短縮したい
  • 344 ブックを印刷できないようにしたい
  • 345 PDFとして出力したい
  • 346 グラフを画像として出力したい

Chapter 11 ブックとシートを操作するテクニック

  • 347 開いているブックを操作したい
  • 348 新規に作成したブックを操作したい
  • 349 マクロを記述してあるブックを操作したい
  • 350 現在画面に表示されているブックを操作したい
  • 351 ブックを開いて操作したい
  • 352 パスワードのかかっているブックを開きたい
  • 353 ブックが互換モードかどうかを判断したい
  • 354 ブックが読み取り専用かどうかを判断したい
  • 355 ブックの自動保存設定の状態を調べたい
  • 356 ブックのリンクを更新せずに開きたい
  • 357 マクロで開いたブックを履歴に残したい
  • 358 マクロを自動実行させずにブックを開きたい
  • 359 ブックの保存場所を取得したい
  • 360 拡張子を除いたブック名を取得したい ❶
  • 361 拡張子を除いたブック名を取得したい ❷
  • 362 ブックを上書き保存したい
  • 363 ブックを別名保存したい
  • 364 ブックのコピーを保存したい
  • 365 ブックにマクロが含まれるかどうかを判定したい
  • 366 ブックの保護状態を取得したい
  • 367 共有ブックを開いているユーザーを取得したい
  • 368 ブックのプロパティを設定したい
  • 369 他のブックのマクロを実行したい
  • 370 ブックを閉じられないようにしたい
  • 371 全ブックの変更を保存せずにExcelを終了させたい
  • 372 確認メッセージを表示させずにブックを閉じたい
  • 373 ブックにパスワードを設定して保存したい
  • 374 開いているすべてのブックを上書き保存する
  • 375 ブック保存前に再計算を実行したい
  • 376 新規に作成したウィンドウを操作したい
  • 377 分割されているウィンドウのペイン数を取得したい
  • 378 2つのワークシートを左右に同時に表示したい
  • 379 すべての複製ウィンドウをまとめて閉じたい
  • 380 見出しを固定したい
  • 381 見出しを固定してある位置を取得したい
  • 382 ウィンドウのサイズを変更したい
  • 383 ウィンドウの位置を変更したい
  • 384 任意のセル範囲を画面いっぱいに表示したい
  • 385 任意のシートを操作したい
  • 386 新規シートを追加して操作したい
  • 387 シートの位置を移動したい
  • 388 シート名を変更したい
  • 389 オブジェクト名でシートを扱いたい
  • 390 シート数を取得したい
  • 391 シートをコピーしたい
  • 392 シートをコピーして新規ブックを作成したい
  • 393 シートを削除したい
  • 394 「前のシート」「後ろのシートを」を取得したい
  • 395 アクティブシートがワークシートかどうかを判断したい
  • 396 ワークシートを保護/保護を解除したい
  • 397 シートの保護状態を列挙したい
  • 398 ユーザーが再表示できないようにシートを非表示にしたい
  • 399 連番でワークシートを複数作成したい
  • 400 他のシートへと移動する前にチェックを行いたい
  • 401 複数シートをまとめて作業グループとして選択したい
  • 402 作業グループ内の全シートに同じ処理をしたい
  • 403 特定のシート以外を削除したい
  • 404 ワークシートを名前順に並べ替えたい(バブルソート)

Chapter 12 すぐに使える実用テクニック

  • 405 VBAでワークシート関数を利用したい
  • 406 最終セルの下にSUM関数で合計値を入力したい
  • 407 条件に一致するセルの値をSUMIF関数で合計したい
  • 408 文字列の一部が一致する個数をCOUNTIF関数で取得したい
  • 409 Excel方眼紙状のセルから値を取り出したい
  • 410 フィルター結果のみをFILTER関数で取得したい
  • 411 値のソート結果のみをSORT関数で取得したい
  • 412 表引き結果をVLOOKUP関数で取得したい
  • 413 表引き結果をXLOOKUP関数で取得したい
  • 414 セル範囲の値を2次元配列として変数に代入したい
  • 415 2次元配列の値をセル範囲に一括代入したい
  • 416 配列のループ処理を高速化したい
  • 417 イベントの発生を一時的に止めたい
  • 418 画面の更新を一時的に止めたい
  • 419 数式の計算を一時的に止めたい
  • 420 数値の列番号をA1形式の見出し文字列に変換したい
  • 421 全ブック内の全シートから検索を行いたい
  • 422 新規ブックを指定のシート数で作成したい
  • 423 1行おきに行を挿入したい
  • 424 5行おきに罫線を引きたい
  • 425 摂氏を華氏に変換するユーザー定義関数を作りたい
  • 426 フィルターで抽出されなかったデータを削除する
  • 427 2つの表の両方に存在する行だけを抽出したい
  • 428 2つの表の片方にしか存在しない行を抽出したい
  • 429 セルに名前を定義したい
  • 430 任意のセル範囲を画像として貼り付けたい
  • 431 任意のセル範囲をリンク付き画像として貼り付けたい
  • 432 セルの値から1次元配列を作成したい
  • 433 Collectionオブジェクトで重複しないデータを取り出したい
  • 434 ループ処理で重複データを削除したい
  • 435 RemoveDuplicatesメソッドで重複データを削除したい
  • 436 UNIQUE関数でユニークなデータを取得したい
  • 437 Excel上で変更があったセルを記録したい
  • 438 レジストリにデータを保存したい
  • 439 レジストリからデータを取得したい
  • 440 レジストリからデータを削除したい

Chapter 13 ファイルやフォルダーを操作するテクニック

  • 441 カレントフォルダーを取得したい
  • 442 カレントフォルダーを変更したい
  • 443 ブックを選択するダイアログを表示したい
  • 444 ブックを選択して開くダイアログを表示したい
  • 445 ファイルを保存するダイアログを表示したい
  • 446 フォルダーをダイアログから選択したい❶
  • 447 フォルダーをダイアログから選択したい❷
  • 448 ZIP形式で圧縮するフォルダーを作成したい
  • 449 ZIP形式で圧縮したい
  • 450 ZIP形式のファイルを解凍したい
  • 451 「デスクトップ」や「ドキュメント」のパスを取得したい
  • 452 FSOを利用してファイル操作をする準備をしたい
  • 453 FSOでファイルやフォルダーを取得したい
  • 454 FSOでファイル情報やフォルダー情報を取得したい
  • 455 FSOでファイルを作成してデータを書き込みたい
  • 456 FSOで既存ファイルにデータを追記したい
  • 457 FSOでファイル内容を読み込みたい
  • 458 FSOでサブフォルダーを取得したい
  • 459 FSOでフォルダー内の合計サイズを取得したい
  • 460 FSOでドライブの一覧表を作成したい
  • 461 FSOでドライブの空き領域を知りたい
  • 462 FSOでデバイスの準備ができているかを調べたい
  • 463 FSOで指定フォルダーが存在しない場合は作成したい
  • 464 FSOでファイルを移動したい
  • 465 FSOでファイルをコピーしたい
  • 466 FSOでファイル名やフォルダー名を変更したい
  • 467 FSOでフォルダーごとファイルを移動したい
  • 468 FSOでフォルダーごとコピーしたい
  • 469 FSOでフォルダー内のファイルも含めて一括削除したい
  • 470 FSOでファイル名を入れ替えたい
  • 471 ファイル名に連番を付けたい
  • 472 ファイル名の連番をずらしたい
  • 473 シート上の一覧表に沿ってファイル名を変更したい

Chapter 14 ショートカットキー等に登録して使いたいマクロ

  • 474 どのブックからも利用できるマクロを作成したい
  • 475 個人用マクロブックの場所を調べて削除したい
  • 476 マクロをショートカットキーに登録したい
  • 477 VBAからマクロをショートカットキーに登録したい
  • 478 数式の表示/非表示を切り替えたい
  • 479 セルの枠線の表示/非表示を切り替えたい
  • 480 数式バーの表示/非表示を切り替えたい
  • 481 ステータスバーの表示/非表示を切り替えたい
  • 482 フリガナの表示/非表示を切り替えたい
  • 483 改ページの区切り線の表示/非表示を切り替えたい
  • 484 シートを一括で再表示したい
  • 485 フィルターのオン/オフを切り替えたい
  • 486 数式が入力されているセルだけを保護したい
  • 487 表示倍率を切り替えたい
  • 488 新規シートを末尾に追加したい
  • 489 罫線を除いてセルを貼り付けたい
  • 490 セルの内容を数式からその結果に置き換えたい
  • 491 エラーを含む数式をクリアしたい
  • 492 セルの名前定義を一括で削除したい
  • 493 ブックを保存しているフォルダーをエクスプローラーで開きたい
  • 494 重複した値に色を付けたい
  • 495 入力値を元に選択セル範囲の値を一括更新したい
  • 496 マクロをアドインブックとして配布したい
  • 497 アドインブックをExcelに組み込みたい
  • 498 アドインブックをマクロで組み込みたい
  • 499 アドインブックをマクロで組み込み解除したい
  • 500 アドインを組み込んだ時点でショートカットキー登録したい
  • 501 アドインを組み込み解除した時点でマクロを実行したい
  • 502 ユーザーフォームからマクロを実行したい
  • 503 カスタムリボンからマクロを実行したい
  • 504 個人用マクロブックをWorkbooksの対象から外したい

Chapter 15 ユーザーフォーム 作成時のテクニック

  • 505 ユーザーフォームを作成したい
  • 506 ユーザーフォームの基本フォントサイズを決めたい
  • 507 2種類の方法でユーザーフォームを表示したい
  • 508 ユーザーフォームの表示位置を指定したい
  • 509 2種類の方法でユーザーフォームを閉じたい
  • 510 ユーザーフォームを閉じる時に処理を実行したい
  • 511 現在のセル位置によって表示するユーザーフォームを切り替えたい
  • 512 ユーザーフォームから標準モジュールのマクロを実行したい
  • 513 ユーザーフォームのタイトルとサイズを設定したい
  • 514 オブジェクト名でコントロールを操作したい
  • 515 コントロールの位置やサイズを設定したい
  • 516 コントロールの使用可否を切り替えたい
  • 517 テキストをラベルを使って配置したい
  • 518 操作をボタンで実行したい
  • 519 既定のボタンとキャンセルボタンを設定したい
  • 520 テキストを入力するテキストボックスを配置したい
  • 521 複数行入力が可能なテキストボックスを配置したい
  • 522 長いテキストをテキストボックスで表示したい
  • 523 必要の有無をチェックボックスで確認したい
  • 524 チェック状態が変わった時点で処理を実行したい
  • 525 複数チェックボックスのイベント処理をまとめて記述したい
  • 526 どの選択肢を選んだのかをオプションボタンで確認したい
  • 527 2つ以上の設問の選択肢をオプションボタンで確認したい
  • 528 ユーザーフォーム上にリストを表示したい
  • 529 ユーザーフォーム上にシート上の表を表示したい
  • 530 リストボックスで選択した内容を取得したい
  • 531 リストボックスに表示されている値を変更したい
  • 532 リストボックスから複数のリストを選択したい
  • 533 リストボックスに項目を追加/削除したい
  • 534 ドロップダウン形式のリストから選択したい
  • 535 任意のコントロールにフォーカスを当てたい
  • 536 タブオーダーを設定して使いやすいフォームにしたい
  • 537 実行時に動的にコントロールを配置したい

Chapter 16 入力用シート作成時のテクニック

  • 538 シート上にボタンやリストを配置したい
  • 539 コントロールに共通の仕組みを知りたい
  • 540 コントロール固有の機能を活用したい
  • 541 リストボックスを活用したい
  • 542 コンボボックスを活用したい
  • 543 チェックボックスを活用したい
  • 544 オプションボタンを活用したい
  • 545 オプションボタンをグループ管理したい
  • 546 スピンボタンを活用したい
  • 547 ボタンや図形に登録するマクロを切り替えたい
  • 548 セル範囲の値を読み上げて確認したい
  • 549 指定テキストを読み上げたい
  • 550 セル入力した値を読み上げたい

Chapter 17 押さえておくと便利な文法

  • 551 変数や定数を利用したい
  • 552 変数名に工夫して扱いやすくしたい
  • 553 配列を利用したい
  • 554 配列の先頭番号と末尾の番号を指定したい
  • 555 Array関数で手軽に配列を作成したい
  • 556 2次元配列を利用したい
  • 557 配列の先頭番号と末尾の番号を知りたい
  • 558 配列で扱う要素数を実行中に変更したい
  • 559 配列の先頭要素の番号を常に「1」から始めたい
  • 560 区切り文字を基準に文字列から配列を作りたい
  • 561 配列の値を連結して表示したい
  • 562 値の追加・削除が簡単なリストを利用したい
  • 563 連想配列を利用したい ❶
  • 564 連想配列を利用したい ❷
  • 565 列挙で選択肢をひとつのグループにまとめたい
  • 566 複数の定数を使って選択肢を管理したい
  • 567 ユーザー定義型を利用したい
  • 568 Variant型変数に格納されたデータ型を確認したい
  • 569 開発時に任意の変数に格納されたデータ型や値を調べたい
  • 570 開発時にすべての変数に格納されたデータ型や値を調べたい
  • 571 変数の値が変化したら一時停止して確かめたい
  • 572 処理の一部をサブルーチン化したい
  • 573 サブルーチンに引数を指定して実行したい
  • 574 参照渡しと値渡しの違いを知りたい
  • 575 引数で必要な情報を渡せる関数を作成したい
  • 576 引数を省略可能にしたい
  • 577 引数が省略されているかどうかを知りたい
  • 578 複数の引数をパラメータとして受け取りたい
  • 579 オブジェクトを返すユーザー定義関数を作成したい
  • 580 カスタムクラス(オブジェクト)を作成したい
  • 581 カスタムクラスにプロパティを定義したい
  • 582 カスタムクラスにメソッドを定義したい
  • 583 カスタムクラスに初期化処理を定義したい
  • 584 カスタムクラスをまとめて扱うコレクション風のオブジェクトを作成したい
  • 585 クラスモジュール特有の同じ「名前」の解決方法を知りたい
  • 586 既存シートをカスタムオブジェクトと見なして扱いたい
  • 587 エラーが発生したら処理を分岐したい
  • 588 エラーの監視を解除したい
  • 589 エラーを無視して次の行の処理を実行したい
  • 590 エラーの種類を確認して処理を分岐したい
  • 591 エラーに対応後に元の処理をやり直したい
  • 592 エラー情報をクリアしたい
  • 593 決まった文字数のデータを作成したい
  • 594 右詰め,左詰めでデータを作成したい
  • 595 イミディエイトウィンドウに見やすく値を表示したい
  • 596 マクロを途中で抜けたい
  • 597 マクロを途中で完全に終了したい
  • 598 ループ処理内の残りの処理をスキップしたい
  • 599 シート名を返すワークシート関数を作成したい
  • 600 処理にかかった時間を計測したい

Chapter 18 開発時や確認時に役立つテクニック

  • 601 イミディエイトウィンドウに値を出力したい
  • 602 イミディエイトウィンドウに値を続けて出力したい
  • 603 ちょっとしたステートメントを手軽に実行したい
  • 604 もっと手軽に変数やセルの値を出力したい
  • 605 少し長いステートメントを手軽に実行したい
  • 606 開発中に手早く他のマクロに移動したい
  • 607 範囲を指定して検索や置換を行いたい
  • 608 チェック項目を満たさない場合は一時停止したい
  • 609 開発中だけ実行する箇所を用意したい
  • 610 VBA7ベースや64ビットOSベースを条件にコンパイル箇所を変更したい
  • 611 ブレークポイントを設定せずにコードを一時中断するポイントを作成したい
  • 612 VBEのフォントや背景色を変更したい
  • 613 構文エラー時にエラーダイアログを表示させないようにしたい
  • 614 プリンター一覧を取得したい
  • 615 セル内改行に合わせて数式バーの表示行数を調整したい
  • 616 ファイルのヘッダ情報を取得したい
  • 617 OS名やバージョン番号を取得したい
  • 618 Excelのバージョン情報を取得したい
  • 619 VBEをコードから操作したい
  • 620 モジュールをエクスポートしたい
  • 621 モジュールを削除(解放)したい
  • 622 モジュールをインポートしたい
  • 623 モジュール内容を検索してマクロ一覧を作成したい
  • 624 コードテキストを追加・修正したい
  • 625 モジュール名を指定してマクロを呼び出したい
  • 626 特定のプログラムを実行したい
  • 627 DOSコマンドを実行したい
  • 628 DOSコマンドの出力を受け取りたい
  • 629 10分後にマクロを実行したい
  • 630 一定間隔でマクロを実行したい
  • 631 1秒以下の間隔でマクロを実行したい
  • 632 配列を並べ替えたい(マージソート)
  • 633 配列を並べ替えたい(マージ・クイックソート)
  • 634 配列を並べ替えたい(クイックソート)

Chapter 19 APIを利用したテクニック

  • 635 Windows APIの概要を知りたい
  • 636 2種類のWindows APIについて知りたい
  • 637 Windows APIをVBAから使用できるようにしたい
  • 638 アプリケーションの重複起動を回避したい
  • 639 アプリケーションが終了するまで待機したい
  • 640 すべてのメモ帳を閉じたい
  • 641 ウィンドウを前面に表示したい
  • 642 ファイルやフォルダをごみ箱に移動したい
  • 643 画面解像度を取得したい
  • 644 Excelの[閉じる]ボタンを無効にしたい
  • 645 ユーザーフォームの[閉じる]ボタンを無効にしたい
  • 646 ユーザーフォームの[閉じる]ボタンを消去したい
  • 647 ユーザーフォームの最大化・最小化・リサイズを可能にしたい
  • 648 ミリ秒単位でコードの実行速度を計測する
  • 649 ミリ秒単位でコードの実行を中断する
  • 650 拡張子に関連付けられているプログラムを知りたい

サポート

ダウンロード

本書のサンプルファイルを,下記リンクからダウンロードすることができます。

データはzip形式の圧縮ファイルでダウンロードできます。展開してご利用ください。

ダウンロード
vba_sample.zip

正誤表

本章の掲載内容に誤りがございました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2021年1月13日最終更新)

正誤表を以下からダウンロードできます。ダウンロードしたPDFファイルを参照してください。

初版第1刷(紙版)をご購入の方へ
訂正情報PDF

また,誤りのございました本書目次につきまして,訂正後のPDFを公開しております。

目次PDF

商品一覧