脱入門者のExcel VBA 自力でプログラミングする極意を学ぶ

脱入門者のExcel VBA 自力でプログラミングする極意を学ぶ

脱入門者のExcel VBA 自力でプログラミングする極意を学ぶ

立山秀利(著)
講談社

スポンサーリンク

本の詳細

筆者は、VBAには入門→中級→上級というステップがあると考えています。そして、入門から中級へ向かうためのステップを「脱入門」と呼ぶことにします。本書では、その「脱入門」に必要なノウハウを学んでいただきます。上達への道筋を理解し、経験を積み重ねて中級者になっていく、という成長過程の第一歩を踏み出すための準備が本書です。

「脱入門」を果たして上達するためには、何を優先して学ぶべきか、いろいろなアプローチがあります。筆者は次の「3つの力」を習得していただくのがベストと考えています。

  • 複雑な処理手順でも問題点を見つけて修正する力
  • 処理が速いプログラムを書く力
  • 状況の変化に対応しやすいプログラムを書く力

いずれも、オブジェクト/プロパティ/メソッドやステートメントなどをどれだけ幅広く深く知っているかという”知識”ではなく、それらをいかに使いこなすかという”ノウハウ”に重点を置いています。

1章では最初に、先述の「3つの力」を中心に、VBAで「脱入門」を果たすために何が必要かを学びます。本書は基本的に、拙著『入門者のExcel VBA』をすでにお読みの方々を対象としていますが、それ以外の入門者レベルの方々も対象としています。そこで「入門者」のレベル確認もこの章で行います。

2章では、作例をゼロから作成し、必要となる機能をひととおり完成させます。この章では「3つの力」についての具体的な学習には取りかかりませんが、なぜそれらを身に付ける必要があるのかを実感していただきます。

3章から「脱入門」の本格的な学習に入ります。この章ではまず、「3つの力」の1つ目である「複雑な処理手順でも問題点を見つけて修正する力」について学びます。その力に欠かせないVBEの「デバッグ機能」の使い方を中心に解説します。

4章では、1つ目の力と関連が深く、「脱入門」には必須となる実行時エラーへの対処方法を学びます。

5章では、「3つの力」の2つ目の「処理が速いプログラムを書く力」と3つ目の「状況の変化に対応しやすいプログラムを書く力」について学びます。それぞれに必要な考え方、および具体的なコードの書き方を学習します。

本書の学習を終えた頃には、読者の皆さんは「3つの力」を身に付け、「脱入門」を果たせるようになることでしょう。

目次

必ずお読みください
はじめに

1章 “入門者”から“脱入門者”へステップアップするには

[1.1] Excel VBAの“入門者”ができること

  • どこまでできるのが“入門者”?
  • “入門者”が忘れてはならない大原則

[1.2] “脱入門者” へのステップアップに必要な「3つの力」

  • 本書で学べる「3つの力」とは
  • “脱入門者” レベルに到達すると、その先に何が見える?

[1.3] 本書の学習に用いる作例について(転記処理に用いるブックやデータについて)

  • 作例で自動化する処理について
  • 転記元ブックとファイル形式について
  • 転記先ブックについて
  • 本作例で作成する機能について
  • 次章以降、どのように学んでいくのか

コラム

  • CSV形式の詳細

2章 データを転記する処理を作成しよう

[2.1] 完成までの大まかな道筋を立てよう

  • 段階分けに有効な3つの切り口
  • 本書作例を段階分けしてみよう
  • 作例の準備をしよう

[2.2] ブックを開く処理を作成しよう

  • まずはSubプロシージャを用意
  • VBAでブックを開くには
  • ブックを開くコードを記述する
  • ブックの保存場所を同じフォルダーに変更
  • この先、改善すべき点の確認

[2.3] 単一のブック/ワークシートへデータを1 件転記

  • ブックをまたいでセルを扱うには
  • 日付のデータを転記しよう
  • 残りの列も転記しよう

[2.4] ワークシートの記述をまとめよう

  • オブジェクトの記述をまとめる
  • コードを整理しよう

[2.5] データの内容に応じて転記先を決める

  • エリアと営業所に応じて転記するには
  • 該当するブックとワークシートに転記されるように、コードを変更

[2.6] 複数のデータを転記しよう ~その1

  • セルをCellsに書き換えておこう
  • For…Nextステートメントによるループ化
  • データが同じ行に上書きで転記される問題
  • プログラミングにつきまとう「落とし穴」

[2.7] 複数のデータを転記しよう ~その2

  • 同じ行に上書き転記されないように記述する考え方
  • Endプロパティで「最終行」を求める
  • 転記先の行を求める処理
  • コードを修正しよう
  • ワークシートの「最終行」の番号を自動で取得

[2.8] 開くCSVファイルを選べるようにしよう

  • 「ファイルを開く」ダイアログボックスを使うには
  • コードを追加・変更してみよう
  • コードをさらに追加・変更
  • 2日目のCSVファイルを取り込むと表示されるエラー
  • エラーを回避するための修正
  • エラーの原因を効率よく調べたい

コラム

  • 練習用Subプロシージャを用いて事前に動作確認する
  • 2日分のCSVファイルを連続して取り込む

3章 VBEのデバッグ機能を使いこなそう

[3.1] デバッグとは

  • コードをチェックする2つのポイント
  • デバッグ機能を使う準備をしよう

[3.2] デバッグ機能で「処理の流れ」をチェックする

  • 途中で中断し、1行ずつ実行できる
  • ブレークポイントを設定しよう
  • ステップインで1行ずつ実行しよう
  • ステップインを繰り返して最後までチェックする

[3.3] 「ポップアップ」で変数の値をチェックする

  • 「ポップアップ」とはどんな機能か
  • ポップアップ機能でチェックしよう
  • ポップアップ機能を使ううえで覚えておきたいこと

[3.4] 「ウォッチウィンドウ」で変数やプロパティなどの値をチェックする

  • 「ウォッチウィンドウ」とはどんな機能か
  • ウォッチウィンドウに変数やプロパティを登録する
  • ウォッチウィンドウで値をチェックしよう

[3.5] 実際にデバッグしてみよう(ケーススタディ1)

  • デバッグ機能で誤りの原因を「見える化」する
  • あえて誤りを設ける
  • デバックの進め方〜(1)問題の箇所を探る
  • デバックの進め方〜(2)原因を探る
  • コードを修正する

[3.6] 実際にデバッグしてみよう(ケーススタディ2)

  • あえて誤りを設ける
  • デバックの進め方〜(1)問題の箇所を探る
  • デバックの進め方〜(2)原因を探る
  • コードを修正する
  • デバッグ機能はプログラミングの上達に欠かせない

コラム

  • ブレークポイントの設定に関して
  • デバッグの実行中にウィンドウを切り替える
  • 実行時エラー
  • デバッグにおいて覚えておきたい操作方法
  • この他の変数やプロパティなどの値をチェックする機能
  • デバッグ機能は、自分以外の人が作ったプログラムの解析にも役立つ

4章 実行時エラーが表示されないように対処する

[4.1] 実行時エラーについて知ろう

  • 実行時エラーの問題
  • 実行時エラーは大きく分けて2タイプある

[4.2] 発生を把握できる実行時エラーへの対処例

  • ユーザーが選択する操作次第で発生するエラーを防ぐ
  • 分岐の処理をデバッグ機能で追ってみよう

[4.3] 発生を把握できない/把握できても発生してしまう実行時エラーへの対処例

  • On Errorステートメントによる、エラー発生後の対処
  • On Errorステートメントを使ってみよう
  • プログラムの問題点を見つけて修正する経験を積んでいこう

コラム

  • On Errorステートメントだけで対処はできるが‥‥

5章 処理が速く、あとで変更しやすいプログラムを実現する

[5.1] 「処理が速いプログラム」を実現する記述方法を学ぶ

  • 「処理が速いプログラム」を書くのに必要な2つの視点
  • 命令文の実行回数を必要最小限にする
  • より速い命令文を使う
  • 2つの視点で「処理が速いプログラム」となるようにチェックする

[5.2] 変更しやすいプログラムに欠かせない「コメント」

  • プログラムにコメントを入れる目的
  • コメントの記述方法
  • コードを変更したら、あわせてコメントも更新する

[5.3] 処理対象の数や名前の変更に対応できる記述

  • 「処理対象が変更されても対応できる記述」とは
  • 数や名前を用いて直接記述する箇所にはどのようなものがあるか
  • 作例のプログラムで修正できる箇所をチェックする
  • ブックの名前が変更されても対応できる記述にする
  • ブック数の変更に対応できる記述にする
  • Withステートメントで見やすくする
  • 数や名前を直接記述している箇所を極力減らす

[5.4] セル範囲の位置変更や列の順番入れ替えに対応しやすくする記述

  • セルに関する記述が多い分、数を直接記述する箇所を極力減らす必要がある
  • 前節で修正した「数で直接記述する箇所」と今回のケースの違い
  • ユーザー定義定数の基本
  • ユーザー定義定数に置き換えられる箇所をチェックする
  • ユーザー定義定数を宣言する
  • 数で直接記述している箇所をユーザー定義定数で置き換える
  • ユーザー定義定数に置き換えたあとの動作確認
  • 定数の定義に定数を用いて列を相対的に指定
  • ユーザー定義定数を用いて「変更しやすいプログラム」を実現

コラム

  • 「処理が速いプログラム」を実感できる場面
  • より速い命令文について、その他の情報
  • 空の行を入れてプログラム全体を見やすくする
  • すでに処理対象の変更に対応できるように記述されている箇所
  • 同じ変数名を異なる目的で使用するのは避けよう
  • 「同じ記述をまとめる」の他の方法
  • 定数と変数の違い
  • 定数名のつけ方について
  • コードを大きく変更する前はバックアップしよう
  • 列方向、行方向に移動が生じた場合の変更箇所
  • 文字列も定数化できる

おわりに
作例のブック一式のダウンロードについて

巻末付録

  • CSVファイルを開かずにデータを読み込む
  • Excel VBA基本書式一覧

さくいん

 
脱入門者のExcel VBA 自力でプログラミングする極意を学ぶ

脱入門者のExcel VBA 自力でプログラミングする極意を学ぶ

立山秀利(著)
講談社

タイトルとURLをコピーしました