続 Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
概 要
Excel VBAプログラミングのツボとコツを、プログラミング初心者でもわかりやすく、かわいいカエルのイラストを使って解説したVBA入門書です。本書は、好評の既刊『Excel VBAのプログラミングのツボとコツがゼッタイにわかる本』の続編。前著で学んだことを前提に、Excel VBAそのものの知識、プログラミングのスキル、アプリケーションを作り上げるノウハウを、実際にスケジュール表の自動作成アプリケーションを作りながら、より広く実践的に学びます。Excel VBAのプログラミングの初心者から中級者へとステップアップを目指す人におすすめです! 書籍中で作成するアプリケーションファイルのダウンロードサービス付き(Excel2007/2003対応)。
| 著者 | 立山秀利 |
| 価格 | 円(税込)(本体2600円) |
| ISBN | 978-4-7980-2465-3 |
| 発売日 | 2009/12/17 |
| 判型 | B5変 |
| 色数 | 2色 |
| ページ数 | 432 |
| CD/DVD | - |
| 対象読者 | 初級 |
| シリーズ | - |
目次
第1章 Excel VBAのプログラミングをもっと深く学ぼう
1-1 Excel VBAのプログラミングに求められるもの
Excel VBAのプログラミングに必要な3つの要素とは
本書でzとxとcをステップアップ
プログラミングの“正解”は1つじゃない
1-2 サンプルアプリケーション紹介
Excel VBAを使わないとスゴク手間がかかる!
Excel VBAでラクラク自動作成
仕様はあとから補足・追加してもOK
1-3 アプリケーションの仕様の決め方
アプリケーションの仕様の決め方って?
仕様決めのツボとコツ
1-4 アプリケーションを段階的に作り上げていく
段階的に作り上げるメリット
段階的に作り上げていくためのツボとコツ
「スケジュール表自動作成」をどう段階的に作るか
第2章 「スケジュール表自動作成」の基本機能を作ろう
2-1 「スケジュール表自動作成」の制作を始めよう
「スケジュール表自動作成」の“土台”を作る
新規ブックを追加しよう
2-2 とりあえず月・日・曜日と罫線を描画してみよう
さらに細かく段階分けして制作
月・日・曜日を1つの列に描画してみよう
格子状の罫線を2列ぶん引いてみよう
2-3 月と日と曜日を別々の列に分けて描画しよう~その1:日付データを月と日と曜日に分ける
まずは罫線と列幅を仕様通りに描画
変数のより高度な使い方にチャレンジ
実際にコードを変更してみよう
2-4 月と日と曜日を別々の列に分けて描画しよう~その2:ループ化
月と日と曜日をA~C列に入力する処理をループ化しよう
2-5 コードの整理・改良と変数等の命名ルール
コードの整理・改良とは
先に変数などの命名ルールを決めておこう
2-6 コードを整理・改良しよう
何はともあれ、まずは定数化して整理
基点セルを基準に表を描画するように改良
開始/終了年月日から日数を求め、スケジュール表のセル範囲を取得するよう改良
Withステートメントでまとめよう
2-7 月の変わり目の日のみ、月と罫線を描画するように変更しよう
表の最初の行と月の変わり目の日のみ月を描画するには
A列のみ格子状の罫線を引かないよう、いったんコードを変更しよう
A列は月の変わり目のみ罫線を引くようコードを追加しよう
2-8 別の方法に書き換えてコードをシンプル化
別の方法への書き換えに挑戦してみよう
ループが回るたびに1行ずつ罫線を引くよう変更
UsedRangeプロパティで表のセル範囲を取得
2-9 指定した開始年月日と終了年月日に対応
インプットボックスで開始/終了年月日を入力可能に
スケジュール欄の列幅も指定可能にしよう
2-10 印刷範囲の自動設定機能を追加しよう
Excel VBAで印刷範囲を設定するには
2-11 スケジュール表の上に年を表示しよう
年を表示するようコードを追加
年も印刷範囲に含まれるようコード修正
第3章 VBEのデバッグ機能を使いこなそう
3-1 VBEのデバッグ機能でエラーを効率的に発見・修正
Excel VBAのエラー3種類
VBEで論理エラーをデバッグ
3-2 プログラムの処理の流れを追う
ブレークポイントを設定する
コードを好きな行数だけ実行するには
3-3 変数やプロパティや式などの中断時の値を知る
変数やプロパティや式などの値を確認してデバッグ
1つの変数や式やプロパティなどの値をポップアップで確認
関数の戻り値などをクイックウォッチで確認
ウォッチウィンドウで変数などの値を複数同時に確認
ウォッチウィンドウのもう一歩進んだ使い方
ローカルウィンドウでまとめて簡単に確認
3-4 変数やプロパティや式などの値の変化を確認
イミディエイトウィンドウで変数などの値の変化を追う
イミディエイトウィンドウでテスト用のコードを別途実行
3-5 デバッグ作業を体験してみよう
わざと論理エラーを設けて、デバッグ作業を体験
第4章 土日祝日のセル背景に色を付けよう
4-1 土日のセル背景に色を付ける
土日祝日のセル背景に色を付ける機能を段階的に作り上げよう
まずは土日のセル背景に色を付けよう
ループ内の重複する記述をまとめよう
ループを使う際はここに注意!
4-2 祝日に対応しよう
祝日はどうやって判別すればいいの?
祝日リストにまつわる仕様の補足・追加
まずは別のプロシージャで作ってからアプリ本体に合体
4-3 祝日リストのCSVファイルを開こう
CSVファイルを開く
ブックを開かずにCSVファイルを読み込む
4-4 祝日リストの中身を読み込む方法を学ぼう
Input #ステートメントの動作を確かめてみよう
Input #ステートメントで複数のデータをまとめて読み込む
4-5 祝日データを読み込もう
祝日データの格納には2次元配列が最適
2次元配列へ祝日データを読み込もう
4-6 入力した日付が祝日かどうか判定しよう
入力した日付が祝日かどうか判定するには
コードに落とし込んでみよう
配列とFor Each...Nextステートメントについて
4-7 翌年の祝日も判定できるようにしよう
翌年に対応するには、どうすればいいの?
翌年の祝日データも読み込もう
4-8 コードを整理し、ファイル名やパスに関する処理も改善しよう
読み込みのコードをループでまとめよう
同じフォルダから祝日リストを開くようにしよう
4-9 祝日判定機能を合体させよう
祝日判定機能をどう合体させる?
祝日データ読み込み処理を合体させよう
祝日判定機能を合体させよう
4-10 セル背景色を選べるようにしよう
「組み込みダイアログボックス」で色を指定
組み込みダイアログボックスから指定した色の情報を取得するには
運用でカバーするしかない!?
第5章 フォームから期間とデザインを指定可能にしよう
5-1 必要なコントロールを配置しよう
フォームから指定できるようにする
開始年月日と終了年月日のドロップダウンを配置
土日祝日のセル背景色を指定するラベルとボタンを配置
スケジュール欄の列幅設定、スピンボタンとテキストボックス、[OK]ボタンの配置
5-2 コントロールの動作をプログラミングしよう~その1:開始年月日と終了年月日のコンボボックス
開始年月日と終了年月日のコンボボックスの選択肢を設定しよう
開始年月日と終了年月日のコンボボックスの初期値を設定しよう
5-3 コントロールの動作をプログラミングしよう~その2:残りのボタン類
休日のセル色の[変更]ボタンとラベルを設定しよう
スケジュール欄の列幅のスピンボタンを設定しよう
とりあえず指定した値を[OK]ボタンでイミディエイトウィンドウに表示
5-4 アプリケーション本体とフォームを合体させよう
「スケジュール表描画」プロシージャに引数で値を渡す
フォームの[OK]ボタンが押されたら「スケジュール表描画」プロシージャを実行
プロシージャの引数や概要をコメントに記す例
5-5 ブックのイベントとActiveXコントロール
ブックを開いたらフォームを表示させよう
フォームを再表示するボタンを作ろう
5-6 開始/終了年月日のドロップダウンの幅を改善しよう
ドロップダウンの幅を設定するには
Controlsコレクションを活用して一括処理
コンボボックスだけを処理するには
フォーム上のコントロールにアクセスするテクニックあれこれ
5-7 開始/終了日のドロップダウンを月に応じた日数で初期化しよう
開始日と終了日のドロップダウンの日数を月に応じて設定
ユーザー定義関数化しておこう
5-8 開始/終了年月日のドロップダウンで、年や月を変えたら日数を更新しよう
年や月を変えたら日のドロップダウンを更新
選択肢の日数更新後の日の表示はどうする?
5-9 デバッグして実行時エラーの不具合を取り除こう
VBEのデバッグ機能でエラーの原因と箇所を調べよう
エラーはどのタイミングで起こっている?
「フラグ」の活用で問題を解決
開始年、終了年、終了月にも展開しよう
スケジュール表の列幅のテキストボックスとスピンボタンもコード修正
選択肢が2ヶ月ぶん並ぶ問題もついでに解決
第6章 エラー処理を組み込もう
6-1 ユーザーの操作によるエラーに対処
実行時エラー発生の可能性はまだまだ残っている
終了年月日を開始年月日よりも以前の日付に指定不可にする
6-2 ユーザーの運用によるエラーに対処
ユーザーの運用によっても実行時エラーは発生する
指定したファイルの有無を調べよう
ダイアログボックスでファイル名を指定しよう
[キャンセル]がクリックされたらどうする?
6-3 不適切なCSVファイルによるエラーに対処する
それでもまだ実行時エラーは起こる!?
On Error GoToステートメントでエラーに対処
エラーの内容も表示しよう
エラー発生時は新規作成したブックを閉じよう
エラートラップ関係のその他のステートメント
6-4 祝日データを格納する配列の要素数を動的に増やそう
配列の要素を動的に増やすには
変数の型を新たに定義して使う
配列「mHolidays」の要素数を動的に増やす
「スケジュール表描画」プロシージャを対応させる
サンプルアプリケーション「スケジュール表自動作成」はこれで完成!

