古川順平(著)
SBクリエイティブ
本の詳細
本書は、次のような人に読んでもらいたい本です。
(1)日々のルーチンワークの多さに悩まされていて、自動化・効率化の方法を探している人
(2)便利なマクロを使ってみたいけれど、使い方がわからない人
(3)Webや書籍から入手した「そのまま」では使えないマクロを、自分の目的に合わせてカスタマイズする方法が知りたい人
(4)VBAを駆使する開発者を目指すわけではないけれど、VBAの基礎を学びたい人、VBAのマクロを書きたい
Excelを使った売り上げデータの入力・集計等の日々のルーチンワークに手間と時間を割かれて、「これ、もっと手早く済ます方法ないかな?」と頭を悩ませてはいませんか? また、Excelでは処理を自動化・効率化できる仕組みがあると聞いたことはありませんか?
Excelでは「マクロ」という仕組みを使うと、時間のかかる業務を短時間で済ますことができるのです。非常に便利なものなので、既に皆様の周囲で活用されている方も多くいらっしゃるかもしれません。
自分でいちいちマクロを作らなくても、マクロの使い方さえ覚えておけば、「それらのサンプルを利用して自動化・効率化の恩恵を得ることができる時代になっている」と言ってもよいでしょう。
しかし、サンプルは必ずしも「そのまま使える」ものばかりではありません。「ここをちょっと変えることができれば自分の業務でも使えるのに」というケースにぶつかることも少なくありません(むしろ、そちらの方が多いはずです)。
そんな時は「VBA」の出番です。VBAを覚えれば、既存のマクロを「ちょっと変える」ことができるようになります。本書はそんな、「既存のマクロを自分の業務内容に合うようにちょっと変える」ために必要なVBAの知識を、2人の登場人物と共に学んでいただけます。
Part1では、まず、「手っ取り早くVBAというものがどんなものかを理解・体験したい」という方のために、実際にその仕組みを使ってサクッと「マクロの実行・修正」を体験していただきます。その後、押さえておくと「どこを修正すればよいのか」を判断しやすくなる仕組みやポイントに関する知識を紹介します。
後半のPart2(Chapter10〜Chapter12)では、Part1で得た情報を元に、実際にサンプルを修正する作業を行っていただきます。業務においてよくある作業や自動化できると作業時間が劇的に短縮できる作業、そして、仕事をする際に「自分の仕事にとって、あると便利なちょっとした機能」の活用の仕方を紹介します。
最終的には、Excel VBAの基礎の部分を固め、その知識をお土産に、自分で「業務内容に合ったVBAプログラムの探索・修正」を行ってもらえるようになるのが本書の目的です。
目次
Part 1 基礎編
Chapter01 マクロの便利さを体験する
[01-01] サンプルのマクロを実行してみましょう
- コンテンツを有効化する
- 「開発」タブを表示する
- マクロを実行する
[01-02] マクロの中身を確認してみましょう
- VBEを表示する
- マクロを表示する
[01-03] マクロでできることを理解しましょう
- マクロでできること
- 書き換えで処理が変わる
[01-04] マクロとVBAの関係を理解しましょう
- VBAとは
Chapter02 マクロの編集作業を体験する
[02-01] マクロの中身をコピーしてみましょう
- 「標準モジュール」を追加する
- 移動したいマクロをコピーする
- コピー先にマクロをペーストする
- 「標準モジュール」以外のモジュール
[02-02] マクロの中身を変更してみましょう
- マクロをカスタマイズする
- コメントを挿入する
- 基本的な構成と用語
[02-03] マクロを含むブックを保存してみましょう
- 「マクロ有効ブック」形式で保存する
[02-04] エラーの種類と対処方法を覚えましょう
- コンパイルエラー
- 実行時エラー
- 論理エラー
- ステップ実行で原因のコードを突き止める
- まったく動かない場合の最後の手段
Chapter03 オブジェクトで処理対象を指定する
[03-01] オブジェクトの意味と役割を理解しましょう
- 「オブジェクト」で処理対象を指定する
- オブジェクトに対して「命令」を与える
[03-02] コレクションでオブジェクトを指定しましょう
- 「コレクション」で任意のオブジェクトを指定する
- セルの管理
[03-03] 処理対象のオブジェクトを指定してみましょう
- コレクションを利用してオブジェクトを指定する
- 階層構造を使った指定方法
- 「目の前のオブジェクト」を指定する方法
[演習] オブジェクトを変更しましょう
Chapter04 プロパティとメソッドで操作を行う
[04-01] プロパティでオブジェクトの情報を指定しましょう
- オブジェクトの「情報」を指定する「プロパティ」
- プロパティの値の変更
[04-02] メソッドでオブジェクトを操作しましょう
- オブジェクトの「操作」を命令する「メソッド」
- 「引数」でメソッドの動作を細かく指定する
[04-03] オブジェクト・プロパティ・メソッドの調べ方を覚えましょう
- よく使うオブジェクトを押さえておく
- ヘルプを引く
- コードから直接ヘルプを引く
- マクロの自動記録機能を活用する
- リファレンス系の書籍を手元に置いておく
[演習] プロパティやメソッドを変更しましょう
Chapter05 式と演算子で計算を行う
[05-01] 数値や文字列を使う時のルールを理解しましょう
- 数値の書き方
- 文字列の書き方
- 日付や時間の書き方
[05-02] 演算子を使って計算してみましょう
- 演算子を使った計算
- &演算子による文字列の連結
[05-03] 代入演算子で値を代入しましょう
- =演算子で値を代入
[演習] 式を変更しましょう
Chapter06 変数を使って値を保存・再利用する
[06-01] 変数を宣言して値を代入しましょう
- 何かを記録する仕組みが「変数」
- 「データ型」の指定
[06-02] 2種類の代入方法を使い分けましょう
- 「値」の代入と「オブジェクト」の代入
[06-03] 変数の使い方のコツとクセを押さえておきましょう
- 何のために変数を使うのか
- よく使われる変数名とその意味
[06-04] 定数を使って値を指定しましょう
- 定数を自分で宣言する
- 選択肢を指定する「組み込み定数」と「列挙」
[演習] 変数を変更しましょう
Chapter07 条件分岐と繰り返しで処理の流れを設定する
[07-01] 条件分岐の意味と役割を理解しましょう
- 条件分岐の目的
- Ifステートメントで処理を分岐
- Elseキーワードで条件に応じて処理を分岐
- ElseIfキーワードで複数の条件に応じて処理を分岐
- 条件式の読み方・作り方
- Select Caseステートメント
[07-02] 繰り返し(ループ処理)の意味と役割を理解しましょう
- 繰り返し処理の目的
- For Nextステートメント
- For Each Nextステートメント
- Do Loopステートメント
[07-03] 配列の使い方を覚えましょう
- 配列の仕組みと宣言方法
- 配列と繰り返し処理を組み合わせる
[演習] 条件分岐とループ処理を変更しましょう
Chapter08 VBA関数で計算や情報収集を行う
[08-01] VBA関数の意味と役割を理解しましょう
- 関数の基本的な構文
- 関数と「戻り値」
[08-02] よく使うVBA関数を覚えておきましょう
- 文字列を扱うVBA関数
- 数値を扱うVBA関数
- 日付・日時を扱うVBA関数
[08-03] ユーザーへの問いかけを行うVBA関数を使いましょう
- メッセージを表示するMsgBox関数
- 値を入力してもらうInputBox関数
[08-04] VBAでワークシート関数を使いましょう
- WorksheetFunctionオブジェクトの利用
[演習] VBA関数を変更しましょう
Chapter09 イベント処理で操作に合わせて実行する
[09-01] イベント処理の仕組みとコードの記述場所を理解しましょう
- イベント処理を体験する
- イベント処理を記述するオブジェクトモジュール
- イベントの種類はオブジェクトごとに決まっている
- イベント処理の基本的な構文と引数
- イベント処理から他のマクロを実行する
[09-02] 定番のイベント処理をざっと押さえておきましょう
- 記入漏れ等のチェックに使うイベント
- 入力の準備に使うイベント
- 特定のセルの値が変更された際に使うChangeイベント
[演習] イベント処理を変更しましょう
Part2 実践編
Chapter10 目的に合わせてマクロをカスタマイズする
[10-01] カスタマイズするサンプルを確認しましょう
- 現在使用している帳票の確認
- カスタマイズするサンプルの確認
- サンプルブックの機能
- カスタマイズを行う際の下調べ
[10-02] 転記処理に必要なマクロをカスタマイズしてみましょう
- マクロ間に繋がりがあるかどうかを確認する
- 自分のブックへマクロをコピーする
- ステップ1 「入力用シートと保存用シートの指定」
- ステップ2 「新規データ入力位置取得」
- ステップ3 「転記」
[10-03] 読み込み処理に必要なマクロをカスタマイズしてみましょう
- マクロをコピーする
- ステップ1 「転記元と転記先のセット」
- ステップ2 「キーとなるセル範囲について検索」
- ステップ3 「転記」
[10-04] 入力の準備に必要なマクロをカスタマイズしてみましょう
- 新規の見積書番号を入力するマクロ
- 「セルのクリア」と「まとめて数式を入力」するマクロ
Chapter11 複数シート・ブックからデータを集計する
[11-01] 複数のワークシートにあるデータを集計しましょう
- 現在使用している帳票を集計するには
- マクロのパーツ化と繰り返し処理の組み合せ
- 保存用シートの追加とマクロのパーツ化
[11-02] Worksheetsコレクションを利用してワークシートを集計しましょう
- すべてのワークシートに対して任意の処理を行う
[11-03] 複数のブックにあるデータを集計しましょう
- 他のブックを対象に集計する
- 任意のブックの内容を集計するようにカスタマイズ
- 複数のブックを一気に集計する
[11-04] 集計時に対象のファイルやフォルダーを選べるようにしましょう
- ファイルを選択するダイアログボックスを表示する
- フォルダーを選択するダイアログボックスを表示する
Chapter12 サンプルを使ったカスタマイズの練習
[サンプル1] 印刷前の入力チェックとワークシートのコピーが簡単な請求書
- 入力されている値のチェックと印刷
- 指定セル範囲を新規ワークシートへと転記
- 印刷と転記
[サンプル2] テーブル形式で保存し、カード形式で確認・入力する顧客管理
- カード型の画面の表示と印刷
- カード型画面の値をテーブル範囲に追加・修正
[サンプル3] 項目ごとに新規ページにデータを振り分けられる売上明細
[サンプル4] 2種類の方法で期間の指定ができる工程管理
索引
[Hint]
- Excel2007の操作方法
- VBEからマクロを実行する
- 文字と文字列と数値
- VBAの内容は基本的に半角英数字で入力する
- マクロ名の表示形式
- なぜかマクロが実行できない時はセキュリティの設定をチェック
- 指定はA1形式でも$A$形式でもOK
- インデックス番号とオブジェクト名
- アクティブとThisWorkbook
- コードの確認方法
- 「戻り値」を返すメソッド
- 文字列と数値
- 押さえておきたい追加・削除のルール
- 頼りになるのはやっぱり「アンドゥ」機能
- シリアル値とは何か
- 覚えておくと便利な「VbCrLf」
- イミディエイトウィンドウでちょっとした計算の確認
- 「=」は「条件式」にも使用する
- 他のプログラミング言語経験者がミスしがちな変数名
- 変数を使う時はデータ型に注意する
- 浮動小数点数
- データ型を指定するメリットは?
- 「Nothing」の代入
- 「Option Explicit」は変動の宣言漏れを防ぐ仕組み
- オブジェクトなら何でも扱える「Object型」
- オブジェクト指定の記述を楽にするWithステートメント
- モジュール内のどこからでも利用できる変数
- 複数の条件式を組み合わせる論理演算子
- キーワードの位置による動作の違い
- 一気にコメント化できる「コメントブロック」ボタン
- マクロ実行時に要素を追加する「動的配列」
- 手軽に配列を扱えるふたつの仕組み
- Round関数は「銀行丸め」
- 現在の日時を取得するプロパティ
- VBA関数の戻りの確認方法
- マクロをショートカットキーに登録する
- 値を使った定数の指定方法
- 引数の順番と省略方法
- 似ているようでちょっと違う「InputBoxメソッド」
- Privateは有効範囲を示す
- イベントの連鎖を防ぐ「EnableEventsプロパティ」
- ブック内のすべてのシートを対象とする「Sheet〇〇」イベント
- 「入力規則」機能でリストから選択する
- ボタンや図形にマクロを登録する
- 「Rows.Count」で行数を取得する
- 「Offset」で入力先を移動する
- 変数を宣言する位置とクセ
- 「Exit Sub」でマクロを抜ける
- Array関数でリストを作成する時の注意点
- 作業グループを対象に繰り返し処理
- 他のブックを開いた際には「アクティブなブック」の変更に注意
- パスの調べ方
- FormulaR1C1プロパティで相対的な式を入力する
- テーブル範囲の作成と名前
- EndステートメントExit Subステートメント
- Optionalキーワードとユーザー定義関数
- 大量のワークシートの一覧表示と選択
古川順平(著)
SBクリエイティブ