パワーテクニックシリーズ[逆引き]Excel VBA パワーテクニック 525
[2016/2013/2010/2007 対応]

書籍の概要

この本の概要

Excelパワーユーザー向けの,すぐに使えるVBAサンプル集です。定番のテクニックから,目からウロコの達人ワザまで,目的別に参照しやすいよう体系的に整理しました。Excelの基本になるセルの操作から,情報収集/データ分析/グラフや表の作成/WordやPowerPointへの出力/印刷など,コンパクトサイズの本に充実したテクニックの数々がぎっしり詰まっています。ユーザーフォームやAPIといった開発者向けのテクニックも収録しているので業務で頻繁に使用している方から日々プログラム開発されている方まで幅広く活用できます。すぐに実践できるダウンロードサンプル付き。

こんな方におすすめ

  • 仕事でExcelを使っている方
  • Excel VBAを使って自動化に取り組みたい方

著者の一言

─本書は,痒い所に手が届く「孫の手」のような本です。─

本書は,中を一瞥していただければわかるとおり,Excel VBAの基本的な知識,テクニックはすでに習得している方を対象に書かれた本です。
「基本的」とは,オブジェクト,プロパティ,メソッドといったVBAの文法や,条件分岐やループという処理の制御,そして,変数やVBA関数のことを指します。
 しかし,そうした知識をマスターしていても,「作れそうで作れないマクロ」というものが無数に存在します。たとえばですが,マクロの処理結果が入力されたセルB100を画面の左上に表示したくても,こうしたステートメントはマクロ記録では作れませんし,方法を考えてもなかなか思い付くものではありません(このテクニックは,もちろん本書に登場します)。
 そこで私たち著者は,VBAユーザーがどのようなマクロが作れなくて立ち往生しているのかをインターネットを通じて徹底的に調査し,その「悩み」に重みを付けた上で,さらに「実務に役立つマクロ」という観点を加味して,最終的に525個のテクニックに絞り込んで解説することにしました。
 結果,痒い所に手が届く「孫の手」のような解説書に仕上がりました。たとえば,ループを理解していてもなかなか作れない「重複データを削除するマクロ」などは「孫の手」の典型と言ってもいいでしょう。さらには,本書の解説は,ワークシートに作った住所録からGoogleマップを作成してしまうという「大技」にまで及んでいますので,本書は「孫の手」というよりも「熊手」に近いのかもしれません。
 いずれにしましても,本書を読めば「作れそうで作れないマクロ」の多くが自力で作れるようになりますし,理解するのが面倒なら,サンプルブックをダウンロードして,マクロをそのまま流用してください。
 どのような読み方,使い方でも,本書は悩める多くのVBAユーザーの救いになると信じています。

2016年5月
著者を代表して,大村あつし

目次

Chapter1 セルの操作

1-1 目的のセルを操作するときに使えるテクニック

  • 【001】セル番地や行・列番号でセルを取得する
  • 【002】任意のセル範囲内から目的のセルを取得する
  • 【003】セルが選択されているときだけアドレスを取得する
  • 【004】セルが選択されていないときにもアドレスを取得する
  • 【005】使用されているセル範囲を取得する
  • 【006】使用されているセル範囲の右下端のセルを取得する
  • 【007】数式が入力されているセル範囲を取得する
  • 【008】数値が入力されているセル範囲を取得する
  • 【009】文字列が入力されているセル範囲を取得する
  • 【010】任意のセルを含む行全体を取得する
  • 【011】任意のセルを含む列全体を取得する
  • 【012】空白セル範囲を取得する
  • 【013】空白セルを含む行をすべて削除する
  • 【014】結合されたセル範囲を取得する
  • 【015】2つ以上のセル範囲の集合を取得する
  • 【016】複数のセル範囲が共有するセル範囲を取得する
  • 【017】非連続のセル範囲の数を取得する
  • 【018】任意の文字列が入力されているセルを1つ取得する
  • 【019】任意の文字列が入力されているセルをすべて取得する
  • 【020】終端セルを利用して1行分のセル範囲を取得する
  • 【021】オブジェクトが描画されている左上と右下のセルを取得する
  • 【022】表示されているセル範囲を取得する
  • 【023】非表示の行・列があるかどうかをチェックする
  • 【024】ウィンドウ内に表示されているセル範囲を取得する
  • 【025】スクロール範囲を制限する(スクロールエリア)
  • 【026】アクティブセルのある位置を画面の左上に表示する
  • 【027】アクティブではないシートのセルへと移動する

1-2 セルの値を判定するためのテクニック

  • 【028】セルの値が空白かどうかを判定する
  • 【029】セルの値が数値かどうかを判定する
  • 【030】セルの値が日付かどうかを判定する
  • 【031】セルの値が文字列かどうかを判定する

1-3 数式を使いこなすためのテクニック

  • 【032】セルにR1C1形式で数式を設定する
  • 【033】セルに配列数式を設定する
  • 【034】セルの数式を取得する
  • 【035】セルに数式が入力されているかどうかを判定する
  • 【036】セルの数式がエラーかどうかを判定する
  • 【037】セルの数式が参照しているセル範囲を取得する

1-4 日付を使いこなすためのテクニック

  • 【038】セルのシリアル値を取得する
  • 【039】日付に変換されてしまう値を文字列として入力する
  • 【040】分割された年月日を1つの年月日に結合する
  • 【041】VBE上で直接日付値を入力する
  • 【042】特定の日付から年月日や時分を取り出す
  • 【043】月の最終日を取得する
  • 【044】2つの日付の間の日数や年数を取得する
  • 【045】10日後や3か月後の日付を取得する
  • 【046】日付に指定した書式を適用した文字列を取得する
  • 【047】稼働日数を取得する
  • 【048】稼働日か休日かを判定する

1-5 コメントを使いこなすためのテクニック

  • 【049】セルにコメントを挿入する
  • 【050】セルのコメントを編集する
  • 【051】セルのコメントを削除する
  • 【052】すべてのコメント内の文字列を検索する

1-6 フリガナを使いこなすためのテクニック

  • 【053】セルのフリガナを取得する
  • 【054】セルのフリガナの設定を変更する
  • 【055】ダイアログボックスで入力した文字列のフリガナを取得する
  • 【056】漢字ごとの個別のフリガナを取得する
  • 【057】フリガナを一括消去する

 1-7入力規則を使いこなすためのテクニック

  • 【058】セルに条件を満たす日付しか入力できないようにする
  • 【059】入力できるデータをポップアップで表示する
  • 【060】規則外のデータ入力時にエラーメッセージを表示する
  • 【061】個別のセルに入力規則が設定されているかどうかを判定する
  • 【062】入力規則が設定されているセルをまとめて取得する
  • 【063】入力規則の対応形式を設定/再設定する
  • 【064】入力規則に反したデータの数と位置を取得する

1-8ハイパーリンクを使いこなすためのテクニック

  • 【065】セルに挿入したハイパーリンクでブックを開く
  • 【066】ハイパーリンクのポップヒントを変更する
  • 【067】すべてのハイパーリンクのリンク先ホームページを開く
  • 【068】すべてのハイパーリンクを削除する
  • 【069】特定のセル範囲のハイパーリンクを削除する

1-9 データを検索するためのテクニック

  • 【070】「数式の結果」ではなく「数式そのもの」を検索する
  • 【071】書式で検索する
  • 【072】特定の値を含むセルに色を付ける
  • 【073】セルに特定の単語が含まれている個数を取得する
  • 【074】MATCH関数で完全に一致するデータを検索する
  • 【075】MATCH関数で特定の範囲の値を持つデータを検索する
  • 【076】VLOOKUP関数で表引きして目的のデータを取得する
  • 【077】DCOUNTA関数で複雑な条件を満たすデータ数を取得する

Chapter2 データの整理や収集に役立つテクニック

2-1テーブルを使いこなすためのテクニック

  • 【078】データ範囲をテーブルに設定する
  • 【079】テーブルの設定を解除する
  • 【080】テーブルの名前や書式を設定する
  • 【081】テーブル全体を選択する
  • 【082】テーブルの見出し行とデータ部を分けて選択する
  • 【083】テーブルに新規データ用の行を用意する
  • 【084】テーブルのセル範囲を更新する
  • 【085】テーブルのデータ件数を取得する
  • 【086】テーブルの平均値などを算出する

2-2 データを集めるためのテクニック

  • 【087】「次のデータ」を書き込む位置を取得する(1)
  • 【088】「次のデータ」を書き込む位置を取得する(2)
  • 【089】「次のデータ」を書き込む位置を取得する(3)
  • 【090】テーブル機能を使って「次のデータ」を書き込む
  • 【091】見出しを除くセル範囲を取得する
  • 【092】複数のシートに点在するデータを集める
  • 【093】開いているブックに点在するデータを集める
  • 【094】閉じているブックに点在するデータを集める
  • 【095】特定のフォルダー内のブックに点在するデータを集める
  • 【096】CSV(カンマ区切り)形式のデータを開く
  • 【097】固定長形式のデータを開く
  • 【098】「001」や「10-1」などの値が変換されないように読み込む
  • 【099】文字列として認識されているデータを数値に一括変換する
  • 【100】文字コードを指定してテキストファイルを読み込む
  • 【101】Streamオブジェクトを利用してファイルを読み込む
  • 【102】テキストファイルを指定位置から指定行数分だけ読み込む
  • 【103】テキストファイルから特定の文字列を含む行だけ読み込む
  • 【104】セルの内容を特定の区切り文字で分割する
  • 【105】セルの内容を特定の文字数で分割する
  • 【106】QueryTableを使って好きな位置にデータを読み込む
  • 【107】XML形式のデータを読み込む
  • 【108】XPath式を使ってXMLデータから目的の値を読み込む

2-3 Aceessデータベースから読み込むテクニック

  • 【109】Accessのデータベースに接続する(1)
  • 【110】Accessのデータベースに接続する(2)
  • 【111】Accessのテーブルを読み込む
  • 【112】Accessのテーブルをフィールド名も含めて読み込む
  • 【113】Accessのクエリを読み込む
  • 【114】Accessのパラメータクエリを読み込む
  • 【115】SQL文で抽出したデータを読み込む
  • 【116】Accessのテーブルから5番目のレコードを読み込む
  • 【117】Accessのテーブルを扱う際の形式を指定する

Chapter3:分析に役立つテクニック

3-1 並べ替えのテクニック

  • 【118】セルを並べ替える
  • 【119】4つ以上の列で並べ替える(1)
  • 【120】4つ以上の列で並べ替える(2)
  • 【121】フリガナを無視してソートする
  • 【122】行頭の数値でソートする
  • 【123】行頭の型番や枝番を抜き出してソートする
  • 【124】正規表現で行頭の型番や枝番を抜き出してソートする
  • 【125】一時的にソートして元に戻す

3-2 フィルターでデータを抽出するテクニック

  • 【126】フィルター操作の基礎
  • 【127】フィルター矢印を特定の列だけに表示する
  • 【128】フィルターで空白のセルを抽出する
  • 【129】フィルターで特定の文字を含む/含まないデータを抽出する
  • 【130】フィルターで数字の末尾を元に抽出する
  • 【131】フィルターで特定の色を抽出する
  • 【132】フィルターで「あ行」のデータを抽出する
  • 【133】フィルターでトップ3や上位10%のデータを抽出する
  • 【134】フィルターでデータが抽出されているかどうかを判定する
  • 【135】フィルターで特定期間のデータを抽出する
  • 【136】フィルターで今週や今月のデータを抽出する
  • 【137】フィルターで抽出したデータ件数を取得する
  • 【138】フィルターの抽出結果のみを集計する
  • 【139】フィルター矢印を解除せずに全データを表示する
  • 【140】フィルターが設定されているセル範囲を取得する
  • 【141】フィルターで抽出されたデータをコピーする
  • 【142】フィルターで抽出した条件を取得する

3-3 より複雑な条件でデータを抽出するテクニック

  • 【143】フィルターの詳細設定で複数条件を組み合わせて抽出する
  • 【144】フィルターの詳細設定で「か行」のデータを抽出する
  • 【145】フィルターの詳細設定で抽出結果を転記する
  • 【146】フィルターの詳細設定で重複を除いたデータを取り出す
  • 【147】必要なフィールドのみを好きな順番で転記する
  • 【148】フィルターの詳細設定で顧客別売上データを作成する

3-4 グラフ作成のテクニック

  • 【149】グラフシートを作成する
  • 【150】グラフオブジェクトを作成する
  • 【151】グラフの種類を指定して作成する
  • 【152】グラフの元データとするセル範囲を更新する
  • 【153】グラフの位置や大きさを指定する
  • 【154】複数のグラフの大きさや位置を揃える
  • 【155】グラフのタイトルを変更する
  • 【156】第2軸を追加してスケールの異なるデータを見やすくする
  • 【157】右クリックでグラフを作成する
  • 【158】任意のグラフを複製して新規グラフを作成する
  • 【159】平均値を表す系列を追加する
  • 【160】注目させたい値のマーカーを強調する
  • 【161】注目させたい値のバーの色を変更する
  • 【162】グラフシート上の要素を選択した時にコードを実行する
  • 【163】グラフの要素クリック時に対応するセルに色を塗る
  • 【164】「■」記号を使った簡易グラフを作成する

3-5 条件付き書式のテクニック

  • 【165】条件付き書式で特定のデータを強調する
  • 【166】条件付き書式の設定されているセル範囲を取得する
  • 【167】条件付き書式をクリアする
  • 【168】売上金額ベスト3のデータを強調する
  • 【169】売上平均を上回るデータを強調する
  • 【170】1行おきに色を付ける
  • 【171】2つ以上の条件付き書式の優先順位を決める

3-6 ピボットテーブルのテクニック

  • 【172】ピボットテーブルを作成する
  • 【173】ピボットテーブルのレイアウトを変更する
  • 【174】値フィールドに書式を適用する
  • 【175】特定のアイテムの情報を取得する
  • 【176】特定のアイテムのセル範囲を選択する
  • 【177】特定のクロス集計の結果を取得する
  • 【178】特定のフィールド内のアイテムごとに書式設定を行う

Chapter4 作表に使えるテクニック

4-1 値や表示状態の対処に困ったときに使えるテクニック

  • 【179】セルに表示されている状態で値を取得する
  • 【180】セルに「###」が表示されていたら列幅を調整する
  • 【181】セルに表示形式を設定する
  • 【182】セルの表示形式をコピーする
  • 【183】セルに罫線を引く
  • 【184】セルの罫線の状態を取得する
  • 【185】セルの値を置き換える
  • 【186】セルの内容を縮小して全体を表示する
  • 【187】セル内の改行コードを削除する
  • 【188】一部文字列のフォントを変えて「x2+y」という文字列を作る
  • 【189】"大村"と引用符のついた文字列を入力する

4-2 適切な表記に変換するテクニック

  • 【190】「1」という数値を「VBA-001」といった文字列に変換する
  • 【191】「11」を「011」や「110」といった文字列に変換する
  • 【192】左右の余分な空白を消去する
  • 【193】空白をすべて消去する
  • 【194】文字列の全角/半角,ひらがな/カタカナを統一する
  • 【195】数値を漢数字に変換する
  • 【196】一覧表を元に表記の揺れや間違いを一括修正する
  • 【197】正規表現で値を置き換える
  • 【198】正規表現でマッチングした文字列を取得する

4-3 セルに入力されているデータを整理するテクニック

  • 【199】特定の文字を目安にして1列のデータを整理する
  • 【200】値を1~10,11~20といった範囲ごとに分類する
  • 【201】必要な列のデータのみを抜き出す
  • 【202】リストアップ形式のデータから表形式のデータを作成する
  • 【203】表形式のデータからリストアップ形式のデータを作成する
  • 【204】入力されている値に合わせて行・列の幅を自動調整する
  • 【205】現在の行・列の幅を少し拡張する
  • 【206】表形式のデータをツリー形式にする
  • 【207】ツリー形式の表に罫線を引く
  • 【208】ツリー形式の表を一覧表形式にする(1)
  • 【209】ツリー形式の表を一覧表形式にする(2)

4-4 シェイプ(図形)を作成するテクニック

  • 【210】シート上にシェイプを追加する
  • 【211】シェイプの位置やサイズを設定する
  • 【212】シェイプの色を設定する-Excelで扱う色についての整理
  • 【213】シェイプの線の太さと色を変更する
  • 【214】シェイプにスタイルを適用する
  • 【215】シェイプにテキストを表示する
  • 【216】特定の種類のシェイプのみ種類を変更する
  • 【217】吹き出しの引き出し線の位置を調整する
  • 【218】シェイプを複製する
  • 【219】シェイプを削除する
  • 【220】現在選択しているシェイプの書式を設定する
  • 【221】シェイプを画像として書き出す

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

5-1 値や表示状態の対処に困ったときに使えるテクニック

  • 【222】セル範囲をCSV形式で書き出す
  • 【223】セル範囲をテキスト形式で書き出す
  • 【224】自由な形式でテキストファイルへ書き出すための準備
  • 【225】セルに表示されている値のまま書き出す
  • 【226】自分の好みの表示形式で書き出す
  • 【227】既に存在しているファイルへと追加書き出しする
  • 【228】文字コードをUTF-8形式にして書き出す
  • 【229】XMLドキュメントの作成準備をする
  • 【230】XMLのノードを作成・追加する
  • 【231】XMLの属性を作成・追加する
  • 【232】セルの値を元にXMLツリーを作成して書き出す

5-2 Wordに書き出すテクニック

  • 【233】Wordドキュメントを作成する
  • 【234】Wordドキュメントにセルの内容を書き出す
  • 【235】Wordドキュメントに書式やスタイルを付けて書き出す
  • 【236】Wordドキュメントの末尾にセルの内容を書き出す
  • 【237】Wordドキュメントの指定位置にグラフを書き出す

5-3 PowerPointに書き出すテクニック

  • 【238】PowerPointプレゼンテーションを作成する
  • 【239】PowerPointプレゼンテーションに表を書き出す
  • 【240】PowerPointプレゼンテーションにグラフを追加する

5-4 Accessのデータベースに書き出すテクニック

  • 【241】Accessのテーブルにレコードを追加する
  • 【242】Accessのテーブルを追加する
  • 【243】Accessのデータベースに対してSQLコマンドを実行する
  • 【244】Accessのデータベースにトランザクション処理を実行する

 Chapter6:ブックとシートと印刷の操作

6-1 ブックを操作するテクニック

  • 【245】開いているブックを操作する
  • 【246】新規に作成したブックを操作する
  • 【247】マクロの記述してあるブックを操作する
  • 【248】既存のブックを開いて操作する

6-2 制限のあるブックを開くテクニック

  • 【249】ブックが互換モードで開いているかを判断する
  • 【250】ブックが読み取り専用で開いているかを判断する
  • 【251】ブックのリンクを更新しないで開く
  • 【252】マクロで開いたブックを履歴に残す
  • 【253】マクロを自動実行させずにブックを開く

6-3 ブックの情報を取得するテクニック

  • 【254】ブックの保存場所を取得する
  • 【255】拡張子を除いたブック名を取得する(1)
  • 【256】拡張子を除いたブック名を取得する(2)
  • 【257】ブックの保護状態を取得する
  • 【258】共有ブックを開いているユーザーを取得する
  • 【259】ブックのプロパティを設定する
  • 【260】他のブックのマクロを実行する
  • 【261】ブックを閉じられないようにする
  • 【262】全てのブックの変更を保存せずにExcel自体を終了させる

6-4 ブックを閉じるテクニック

  • 【263】任意のブックの変更を保存せずに閉じる
  • 【264】ブックにパスワードを設定して保存する
  • 【265】すべてのブックを上書き保存する
  • 【266】ブック保存前に再計算を行う

6-5 表示に関するテクニック

  • 【267】新規に作成したウィンドウを操作する
  • 【268】分割されているウィンドウの数を取得する
  • 【269】2つのワークシートを左右に同時に表示する
  • 【270】すべての複製ウィンドウをまとめて閉じる
  • 【271】見出しを固定する
  • 【272】見出しを固定してある位置を取得する
  • 【273】ウィンドウのサイズを変更する
  • 【274】ウィンドウの位置を変更する
  • 【275】任意のセル範囲を画面いっぱいに表示する

6-6 シートを操作するテクニック

  • 【276】任意のシートを操作する
  • 【277】新規シートを追加して操作する
  • 【278】シートの位置を移動する
  • 【279】シート名を変更する
  • 【280】シート数を取得する
  • 【281】シートをコピーする
  • 【282】シートをコピーして新規ブックを作成する
  • 【283】シートを削除する
  • 【284】「前のシート」「後ろのシート」を取得する

6-7 マクロ記録ではできないシート操作のテクニック

  • 【285】アクティブシートがワークシートかどうかを判断する
  • 【286】ワークシートを保護/保護を解除する
  • 【287】シートの保護状態を列挙する
  • 【288】ユーザーが再表示できないようにシートを非表示にする
  • 【289】連番でワークシートを複数作成する
  • 【290】アクティブシートを非アクティブにさせない
  • 【291】複数のシートをまとめて選択して作業グループを作成する
  • 【292】作業グループ内のシートにまとめて処理を実行する
  • 【293】特定のシート以外を削除する
  • 【294】ワークシートを名前順に並べ替える(バブルソート)

6-8 マクロ記録ではできない印刷のテクニック

  • 【295】余白をセンチメートル単位で設定する
  • 【296】1枚の用紙に収まるように印刷する
  • 【297】ヘッダーやフッターに情報を印刷する
  • 【298】マクロ内で改ページの位置を任意に設定する
  • 【299】印刷ページ数を取得する
  • 【300】複数のワークシートを次々に印刷する
  • 【301】プリンターを選択する
  • 【302】印刷設定の処理時間を短縮する
  • 【303】ブックを印刷できないようにする
  • 【304】PDFとして出力する
  • 【305】グラフを画像として出力する

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

7-1 ワークシート関数で処理速度を向上するテクニック

  • 【306】VBAでワークシート関数を利用する
  • 【307】最終セルの下にSUM関数で合計値を入力する
  • 【308】条件に一致するセルの数値をSUMIF関数で合計する
  • 【309】文字列の一部が一致する個数をCOUNTIF関数で取得する

7-2 配列を使って処理速度を向上するテクニック

  • 【310】セル範囲の値を変数に代入して2次元配列にする
  • 【311】2次元配列の値をセル範囲に転記する
  • 【312】配列のループ処理を高速化する

7-3 Excelの設定を一時変更して処理速度を向上するテクニック

  • 【313】イベントの発生を一時的に止める
  • 【314】画面の更新を一時的に止める
  • 【315】数式の再計算を一時的に止める

7-4 必要データを素早く確認できるテクニック

  • 【316】数値の列番号をA1形式の列番号にする
  • 【317】すべてのブックのすべてのシートで文字列を検索する
  • 【318】新規ブックを指定のシート数で作成する
  • 【319】1行おきに行を挿入する
  • 【320】5行おきに罫線を引く
  • 【321】華氏を摂氏に変換するユーザー定義関数を作成する
  • 【322】フィルターで抽出されなかったデータを削除する
  • 【323】2枚のシートの両方に存在する行だけを抽出する
  • 【324】2枚のシートの片方にしか存在しない行だけを抽出する
  • 【325】セルに名前を定義する
  • 【326】任意のセル範囲を画像オブジェクトにする
  • 【327】任意のセル範囲をリンク付き画像オブジェクトにする
  • 【328】セルに入力されている値から1次元配列を作成する
  • 【329】Collectionオブジェクトで重複しないデータを取り出す
  • 【330】ループ処理で重複データを削除する
  • 【331】RemoveDuplicatesメソッドで重複データを削除する
  • 【332】Excel上で変更があったセルを記録する
  • 【333】レジストリに値を保存する
  • 【334】レジストリから値を読み込む
  • 【335】レジストリからデータを削除する

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

8-1 フォルダーを操作

指定するテクニック

  • 【336】カレントフォルダーを取得する
  • 【337】カレントフォルダーを変更する
  • 【338】ブックを選択するダイアログを表示する
  • 【339】ブックを選択して開くダイアログを表示する
  • 【340】ブックを保存するダイアログを表示する
  • 【341】フォルダーを選択するダイアログを表示する(1)
  • 【342】フォルダーを選択するダイアログを表示する(2)
  • 【343】ZIP形式で圧縮するフォルダーを作成する
  • 【344】ZIP形式で圧縮する
  • 【345】ZIP形式のファイルを解凍する
  • 【346】「デスクトップ」や「ドキュメント」のパスを取得する

8-2 FileSystemObjectを使ったテクニック

  • 【347】FSOを利用する際の2つの方式
  • 【348】操作対象とするファイルやフォルダーを取得する
  • 【349】ベースネームや拡張子などのファイル情報を取得する
  • 【350】ファイルを作成してデータを書き込む
  • 【351】ファイルにデータを追記する
  • 【352】ファイルの内容を読み込む
  • 【353】サブフォルダーを取得する
  • 【354】フォルダー内の合計サイズを取得する
  • 【355】ドライブの種類一覧を作成する
  • 【356】ドライブの容量や空き容量を調べる
  • 【357】デバイスの準備ができているかを調べる
  • 【358】操作対象のフォルダーが存在しない場合は作成する
  • 【359】ファイルを移動する
  • 【360】ファイルをコピーする
  • 【361】ファイル名やフォルダー名を変更する
  • 【362】フォルダーごとファイルを移動する
  • 【363】フォルダーをコピーする
  • 【364】フォルダーを削除する
  • 【365】ファイル名を入れ替える
  • 【366】ファイル名に連番を振る
  • 【367】ファイル名の連番をずらす
  • 【368】一覧表を使ってファイル名を一括変更する

Chapter9 ショートカットキーやアドインに登録して使いたいマクロ

9-1 マクロを個人用マクロブックのショートカットキーに登録する

  • 【369】個人用マクロブックを作成する
  • 【370】個人用マクロブックの場所を調べて削除する
  • 【371】通常操作でマクロにショートカットキーを割り当てる
  • 【372】VBAからマクロにショートカットキーを割り当てる

9-2 表示切替に使えるマクロ

  • 【373】数式の表示/非表示を切り替える
  • 【374】セルの枠線の表示/非表示を切り替える
  • 【375】数式バーの表示/非表示を切り替える
  • 【376】ステータスバーの表示/非表示を切り替える
  • 【377】フリガナの表示/非表示を切り替える
  • 【378】改ページ区切り線の表示/非表示を切り替える
  • 【379】シートを一括で再表示する
  • 【380】フィルターのオン/オフを切り替える
  • 【381】数式が入力されているセルだけを保護する
  • 【382】表示倍率を切り替える

9-3 入力と修正に使えるマクロ

  • 【383】新規シートを一番右に追加する
  • 【384】罫線を除いてセルをコピーする
  • 【385】数式を数値に変換する
  • 【386】エラー値を含む数式のみをクリアする
  • 【387】セルに定義された名前を一括で削除する
  • 【388】重複した値に色を付ける
  • 【389】数値データをシミュレーションする
  • 【390】ブックを保存しているフォルダーをエクスプローラーで開く

9-4 アドインに関するテクニック

  • 【391】アドイン用ブックを作成する
  • 【392】アドイン用ブックをアドインとして組み込む
  • 【393】アドインブックを組み込んだときにマクロを実行する
  • 【394】アドインブックを解除したときにマクロを実行する
  • 【395】アドインをマクロで組み込む
  • 【396】アドインをマクロで解除する
  • 【397】ブックを簡易アドインブックに設定する

Chapter10 インターネット関連のデータを扱うテクニック

10-1 インターネット関連のデータを読み込むテクニック

  • 【398】WebページをPC標準のブラウザーで表示する
  • 【399】IEでWebページを表示する
  • 【400】読み込み完了後にWebページのテキストを取得する
  • 【401】Webページの任意の部分を抜き出す
  • 【402】Webページ内のフォームにデータを書き込んで送信する
  • 【403】文字列をURLエンコードする
  • 【404】URLエンコードされた文字列をデコードする
  • 【405】ブラウザーを介さず直接RSSなどのデータを取得する
  • 【406】名前空間を指定してデータを取得する
  • 【407】JSON形式のデータから値を取り出す
  • 【408】JavaScriptの関数をExcelで利用する
  • 【409】Google Geolocation APIを使って住所から地図を表示する

10-2 インターネット関連のデータを書き出すテクニック

  • 【410】HTML形式で書き出す処理の基本
  • 【411】HTML形式用に文字列をエスケープする
  • 【412】セルの値から任意のタグの要素を作成する
  • 【413】ハイパーリンクを持つ要素を作成する
  • 【414】任意の要素を自由に作成できる関数を用意する
  • 【415】セル範囲をテーブル要素に変換する
  • 【416】テンプレートを用意して一部の内容を変更して書き出す
  • 【417】JSON形式でデータを書き出す

Chapter11 ユーザーフォームを利用したテクニック

11-1 ユーザーフォームを表示する際のテクニック

  • 【418】ユーザーフォームを2パターンの方法で表示する
  • 【419】ユーザーフォームの表示位置を指定
  • 【420】ユーザーフォームを2パターンの方法で閉じる
  • 【421】ユーザーフォームを閉じるときに処理を実行する
  • 【422】セルによって表示するユーザーフォームを切り替える
  • 【423】ユーザーフォームをマクロのランチャーとして利用する

11-2 コードからユーザーフォームを操作する際のテクニック

  • 【424】ユーザーフォームのタイトルとサイズを設定する
  • 【425】オブジェクト名を指定してコントロールにアクセスする
  • 【426】コントロールの位置やサイズを設定する
  • 【427】コントロールの使用可否を切り替える
  • 【428】ユーザーフォーム上に文字列を配置する
  • 【429】コマンドボタンを利用する
  • 【430】既定ボタン・キャンセルボタンを設定する
  • 【431】テキストボックスを利用してテキスト入力を求める
  • 【432】複数行入力が可能なテキストボックスを作成する
  • 【433】長いテキストの表示にテキストボックスを利用する
  • 【434】項目のチェックにチェックボックスを利用する
  • 【435】チェックボックスの値が変更されたときに処理を実行
  • 【436】複数のチェックボックスのイベント処理をまとめて記述
  • 【437】オプションボタンで複数選択肢から1つだけ選んでもらう
  • 【438】フレームを利用して項目の選択を整理する
  • 【439】リストボックスを利用してリストを表示する
  • 【440】リストボックスにセルの値を表示する
  • 【441】リストボックスの選択項目を取得する
  • 【442】リストボックスに表示する値を調整する
  • 【443】リストボックスで複数項目を選択可能にする
  • 【444】リストボックスへと個別に項目を追加・削除する
  • 【445】ドロップダウンリストから選択する
  • 【446】任意のコントロールにフォーカスを当てる
  • 【447】Tabキーを押したときの移動順を設定する
  • 【448】動的にコントロールを配置してイベント処理を行う

Chapter12 開発の際に役立つテクニック

12-1 一歩進んだ変数や定数を扱う際のテクニック

  • 【449】変数と定数の利用
  • 【450】列挙を利用して選択肢をひとつのグループにまとめる
  • 【451】列挙とビットフラグを利用した選択肢の管理
  • 【452】特定のビットフラグを操作する
  • 【453】ユーザー定義型を利用する
  • 【454】実行時にVariant型変数に格納されたデータ型を調べる
  • 【455】開発時に任意の変数に格納されたデータ型や値を調べる
  • 【456】開発時にすべての変数に格納されたデータ型や値を調べる
  • 【457】変数の値の変化に応じて一時停止する
  • 【458】連想配列を使う(Collectionオブジェクト)
  • 【459】連想配列を使う(Dictionaryオブジェクト)

12-2 マクロの整理に役立つテクニック

  • 【460】処理の一部をサブルーチン化する
  • 【461】サブルーチンに引数を設定して呼び出す
  • 【462】引数の参照渡しと値渡しを使い分ける
  • 【463】計算結果を戻り値として返すユーザー定義関数を作成する
  • 【464】オブジェクトを返すユーザー定義関数を作成する
  • 【465】引数を省略可能にする
  • 【466】引数が省略されたかどうかをチェックする
  • 【467】引数をパラメーターで受け取る

12-3 クラスモジュールを使ったテクニック

  • 【468】カスタムクラス(オブジェクト)を作成する

12-4 イミディエイトウィンドウを使ったテクニック

  • 【469】カスタムクラスにプロパティを作成する
  • 【470】カスタムクラスにメソッドを作成する
  • 【471】カスタムクラスに初期化処理を作成する
  • 【472】カスタムクラスを扱うコレクション風クラスを作成する
  • 【473】アプリケーションやグラフのイベントをキャッチする

12-4 イミディエイトウィンドウを使ったテクニック

  • 【474】イミディエイトウィンドウに値を書き出す
  • 【475】入力したステートメントを直接実行する
  • 【476】イミディエイトウィンドウで使用できる簡易入力

12-5 知っておくとピンポイントで役立つテクニック

  • 【477】チェック項目を満たさない場合に中断モードに移行する
  • 【478】条件付きコンパイル定数を利用する
  • 【479】VBA7ベースや64ビットOSベースを条件にコンパイルする
  • 【480】ブレークポイントを使わずに一時停止する箇所を指定する
  • 【481】エラー処理を利用して処理を分岐する
  • 【482】重複する可能性が限りなく低いGUIDを取得する
  • 【483】ファイルをバイナリ読み込みしてヘッダ情報を取得する
  • 【484】プリンターの一覧を取得する
  • 【485】OS名やバージョン番号を取得する
  • 【486】Excelのバージョン番号を取得する

12-6 VBEの操作を自動化するテクニック

  • 【487】VBEをマクロから操作するための下準備
  • 【488】モジュールをエクスポートする
  • 【489】モジュールを開放(削除)する
  • 【490】モジュールをインポートする
  • 【491】モジュールの内容を検索してマクロの一覧を作成する
  • 【492】コードテキストを追加・修正する

12-7 シェル(コマンドプロンプト)を利用したテクニック

  • 【493】任意のプログラムを実行する
  • 【494】DOSコマンドを実行する
  • 【495】DOSコマンドの出力を受け取る

12-8 特定の時間にマクロを実行するテクニック

  • 【496】指定秒数後にマクロを実行する
  • 【497】一定間隔でマクロの実行を行う
  • 【498】1秒以下の間隔でマクロの実行を行う
  • 【499】配列を並べ替える(マージソート)
  • 【500】配列を並べ替える(マージ・クイックソート)
  • 【501】配列を並べ替える(クイックソート)

Chapter13 APIを使ったテクニック

13-1 APIを使ったテクニック

  • 【502】Windows APIの予備知識
  • 【503】2種類のWindows API
  • 【504】Windows APIの宣言
  • 【505】アプリケーションの重複起動を回避する
  • 【506】アプリケーションが終了するまで待機する
  • 【507】すべてのメモ帳を閉じる
  • 【508】ウィンドウを前面に表示する
  • 【509】ファイルの[プロパティ]ダイアログボックスを開く
  • 【510】拡張子に関連付けられたプログラムでファイルを印刷する
  • 【511】フォルダー選択用のディレクトリツリーを表示する
  • 【512】フォルダー単位でファイルをコピーする
  • 【513】同名のファイルが存在したら別名でコピーする
  • 【514】ファイルやフォルダーをごみ箱に移動する
  • 【515】拡張子に関連付けられたプログラム名を取得する
  • 【516】インターネットキャッシュディレクトリのパス名を取得する
  • 【517】画面解像度を取得する
  • 【518】Excelの[閉じる]ボタンを無効にする
  • 【519】ユーザーフォームの[×]ボタンを無効にする
  • 【520】ユーザーフォームの[×]ボタンを消去する
  • 【521】ユーザーフォームの最大化・最小化・リサイズを可能にする
  • 【522】ミリ秒単位でコードの実行速度を計測する
  • 【523】ミリ秒単位でコードの実行を中断する
  • 【524】カーソルの点滅速度を変更する
  • 【525】Wave音を鳴らす

著者プロフィール

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

Excel VBAを得意とするテクニカルライター兼小説家。Excel VBAの解説書は多数上梓しているが,代表作は『かんたんプログラミングExcel VBA』シリーズ,『てっとり早く確実にマスターできる ExcelVBAの教科書』,『Excel VBA 本格入門 ~日常業務の自動化からアプリケーション開発まで~』(以上,技術評論社)など。小説としての代表作は,『エブリ リトル シング』『無限ループ』(以上,講談社),『ExcelVBAの神様 ~ボクの人生を変えてくれた人 ~』(秀和システム)など。静岡県富士市在住。


古川順平(ふるかわじゅんぺい)

富士山麓で活動するテクニカルライター兼インストラクター。Excel VBAに関する書籍には,『かんたんだけどしっかりわかるExcelマクロ・VBA入門』『仕事に役立つ Excelデータベース』(以上,SBクリエイティブ)など。静岡県富士宮市在住。