アプリ作成で学ぶ Excel VBAプログラミング ユーザーフォーム&コントロール

概 要

実際に売上管理システムを作成しながら、Excel VBAプログラミングを覚える入門書です。Excel VBAはExcel上で動作するプログラミング言語であり、Excelがあればだれでも使用できるすぐれた言語です。本書では、プログラミング初心者を対象に、Excel VBAのユーザーフォームとコントロールの作り方に焦点をあてて解説します。実際に売上管理システムをVBAで作成しながら、フォームを使ってユーザーにExcelを意識させることなく操作しやすい環境を提供し、また入力ミスを減らすためのチェック機能を実現するためのテクニックがわかります。本書で作成する「売上管理システム」完成版のダウンロードサービス付き。姉妹書、『知識ゼロから学ぶ Excel VBA プログラミング ユーザーフォーム&コントロール』もあわせて読むとさらに効果的です。

著者 横山達大
価格 本体2700円(税別)
ISBN 978-4-7980-3295-5
発売日 2012/3/17
判型 B5変
色数 2色
ページ数 448
CD/DVD
対象読者 初級
シリーズ
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

Chapter1 売上管理システムの概要

1-1 全体像をイメージしよう

売上管理システムとは

全体像をイメージしよう

必要な項目を列挙しよう

売上情報とは何か

情報をグループ化しよう

顧客の住所や電話番号、FAXは必要?

顧客情報として管理するもの

商品情報として管理するもの

売上情報は、マスタ情報をうまく使うといい

1-2 完成品を確認しよう

メニューフォームを用意する

商品マスタの登録画面

商品マスタの修正/削除画面

顧客マスタの登録画面

顧客マスタの修正/削除画面

売上情報の登録画面

明細行の修正画面

売上情報の検索画面

売上情報の修正画面

請求書の指定画面

請求書の確認画面

会社情報の登録/修正画面

1-3 情報の格納方法を設計しよう

Excelを起動して、ファイルを保存しよう

顧客マスタ情報を保存するシートを用意しよう

商品マスタ情報を保存するシートを用意しよう

レコードとフィールドと主キー

売上情報を保存するシートを用意しよう

伝票ごとの情報をシートに保存しよう

1-4 今後の制作の準備をしよう

作業用のシートを用意しよう

開発タブを表示しよう

Chapter2 「商品マスタ」の登録画面を作ろう

2-1 Visual Basic Editorを起動しよう

VBAはこのVisual Basic Editor上で作業する

Visual Basic EditorからExcel画面への切り替え

Excelを保存すると一緒に保存される

2-2 ユーザーフォームを作成しよう

ユーザーフォームを作成しよう

ツールボックス

プロジェクトエクスプローラ

ユーザーフォームの名前

ユーザーフォームはいくつでも作成できる

ユーザーフォームの作成

ユーザーフォームの確認

ユーザーフォームを削除してみよう

ユーザーフォームの削除

2-3 コントロールを追加しよう

コントロールの追加方法は、こんなにも簡単

「テキストボックス」の配置

ツールボックスにはコントロールがたくさん用意されている

よく使うコントロールを追加してみよう

テキストボックスの追加

ラベルの追加

ラベルの編集

コントロールを削除してみよう

コントロールをコピーしてみよう

複数のコントロールを選択しよう

2-4 コントロールを見栄えよく配置しよう

使いやすいように整然と配置しよう

整然と配置するための方法

2-5 コントロールの設定をしよう

Visual Basic Editorから表示してみよう

フォームを表示する

フォームを閉じてみよう

表示したフォームに入力してみよう

コントロールの設定はプロパティを使う

コントロール名をきちんとつけよう

コントロールの名前はオブジェクト名に設定する

フォームの大きさを設定しよう

ラベルの表示文字列を変更しよう

ラベルの大きさを自動調整

テキストボックスの名前を変更しよう

コントロールのIMEモードを設定しよう

入力をコントロールできると便利

テキストボックスの幅を設定しよう

単位のラベルとテキストボックスを追加しよう

コンボボックスを追加しよう

タイトル部分を作成しよう

ラベルで図形風に

ラベルのプロパティ設定

直線をラベルコントロールで作成しよう

ラベルのプロパティ設定

リストボックスを追加しよう

コマンドボタンを追加しよう

残りのラベルを追加しよう

カーソルの遷移の順番を設定しよう

ここまでのまとめ

Chapter3 プログラムを書いてみよう

3-1 フォームを閉じてみよう

ボタンをクリックしたらフォームを閉じる

プロシージャのルールを確認しよう

コードの解説

フォーム画面とコード画面は表裏一体

3-2 フォームを表示してみよう

Excel上からフォームを表示できるようにしよう

標準モジュールに書くことがポイント

シート上にボタンを追加しよう

コードの解説

3-3 コントロールの値をシートに書き込もう

シートの確認をしよう

テキストボックスとコンボボックスの値をシートに書き込む

コードの解説

3-4 とにかく変数を使ってみよう

商品情報を追加できるようにしよう

追加すべき行を自動的に取得しよう

コードの解説

3-5 条件分岐を体験しよう

入力チェックをしよう

コードの解説

3-6 リストボックスを制御しよう

登録済みのデータを表示してみよう

リストボックスにデータを表示しよう

コードの解説

リストボックスの構造を理解しよう

登録直後のリストボックスを更新しよう

データを追加してみよう

Chapter4 メニュー画面を作ろう

4-1 コントロールを配置しよう

フォームを新規作成しよう

タイトル部分をラベルで作成しよう

フレームを2つ配置しよう

エリアとしてのラベルを追加しよう

コマンドボタンを配置しよう

Excelからフォームを表示してみよう

終了ボタンで閉じてみよう

シート上のボタンの文字列を変更しよう

4-2 フォームからフォームを起動する

ボタンクリックでフォームを表示してみよう

4-3 日付と時刻を表示しよう

日付の関数を使ってみよう

コードの解説

4-4 ファイルを開いた時にフォームを表示しよう

ファイルを開くときには、Workbook_Openイベントが発生する

コードの解説

コメントアウトを覚えよう

終了ボタンでExcelを終了してみよう

コードの解説

終了処理をコメントアウトしよう

ファイルを開くとフォームだけが表示されるようにしよう

コードの解説

Chapter5 プログラムの基礎を確認しよう

5-1 オブジェクト、プロパティ、メソッド

オブジェクトとは

オブジェクトは階層構造を持つ

プロパティは、オブジェクトの性質を表す

プロパティを設定するには

プロパティを取得するには

メソッドは、動詞のようなもの

引数を必要とするメソッドがある

では、Worksheets.Add Worksheets(1)とは?

5-2 変数と定数

変数とは

変数にはデータ型がある

変数の命名上の注意

定数とは

変数の適用範囲(スコープ)

変数の有効期間

配列変数について

変数を宣言しないと使用できないようにする方法

5-3 繰り返し処理は、プログラミングの花形スター

もし、繰り返し構文を使わずに書くとすれば

繰り返し構文を使えば簡単に解決できる

For...Nextステートメントの解説

For Each...Nextステートメントの解説

5-4 条件分岐を覚えよう

プログラムの処理は、わずか3つに大別される

条件分岐にはいくつかのタイプがある

比較演算子を確認しよう

条件式の意味を確認しよう

Not演算子は否定を表す

5-5 デバッグを覚えよう

エラーが発生したときの対処方法

デバッグを活用しよう

ブレークポイントを使おう

5-6 関数を使いこなそう

予め用意されている関数を活用しよう

オリジナル関数を作ってみよう

値渡しと参照渡し

Chapter6 「商品マスタ」の修正/削除フォームを作ろう

6-1 コントロールを配置しよう

ユーザーフォームを新規作成しよう

コピーを活用してコントロールを追加しよう

6-2 データを修正する処理を書こう

処理の流れを確認しよう

フォームの表示時にリストボックスに商品情報を表示する

「閉じる」ボタンでフォームを閉じよう

リストボックスのデータをテキストボックスに表示しよう

With構文を使ってみよう

コードの解説

データの修正時に、商品IDを変更できないようにしよう

Enabledプロパティを使う

Lockedプロパティを使う

6-3 メッセージボックスを有効活用しよう

MsgBox関数を使ってみよう

コードの解説

条件分岐を使って、処理を分けよう

リストボックスのデータを修正しよう

コードの解説

シートの情報を書き換えよう

コードの解説

各コントロールの値をクリアする

6-4 「削除」ボタンの処理を書こう

削除の処理の流れを確認しよう

削除の確認用メッセージボックスを表示しよう

コードの解説

削除の処理を書こう

コードの解説

表示した時点では、ボタンを無効にしておこう

リストボックス内のデータを選択したらボタンを有効にしよう

削除したデータをリストボックスに読み込まないようにしよう

Chapter7 「顧客マスタ」の登録フォームを作ろう

7-1 コントロールを配置しよう

フォームを追加しよう

コントロールを追加しよう

7-2 読み込み時の設定をしよう

既に登録されている顧客情報をリストボックスに表示しよう

コードの解説

7-3 「登録」ボタンの処理を書こう

処理の内容を確認しよう

コードを書こう

コードの解説

「閉じる」ボタンの処理を書こう

メニューフォームのボタンからこのフォームを表示しよう

シート上のデータをテキストファイルにエクスポートする

Chapter8 「顧客マスタ」の修正/削除フォームを作ろう

8-1 コントロールを配置しよう

フォームを追加しよう

コントロールを追加しよう

8-2 読み込み時の設定をしよう

処理の内容を確認しよう

既に登録されている顧客情報をリストボックスに表示しよう

コードの解説

「修正」「削除」ボタンを使用不能にしておこう

8-3 選択された顧客情報をテキストボックスに表示しよう

処理の概要を確認しよう

コードを書こう

コードの解説

8-4 「修正」ボタンの処理を書こう

処理の概要を確認しよう

リストボックスとシートの値を更新するコードを書こう

コードの解説

テキストボックスの値をクリアしよう

コードの解説

8-5 「削除」ボタンの処理を書こう

処理の概要を確認しよう

コードを書こう

コードの解説

Chapter9 「売上情報」の登録フォームを作ろう

9-1 コントロールを配置しよう

フォームを追加しよう

コントロールを追加しよう

タブオーダーを設定しよう

9-2 読み込み時の設定をしよう

フォームの初期化時に行うべきことを整理しよう

「閉じる」以外のボタンを使用不能にしよう

今日の日付を表示しよう

伝票Noを表示しよう

顧客IDコンボボックスにリストを設定しよう

商品IDコンボボックスにリストを設定しよう

コードの解説

リストボックスの初期設定をしよう

顧客名ラベルに、顧客IDの選択を促すメッセージを表示しよう

明細行のコントロールを無効にしよう

9-3 コンボボックスのリストを選択したときの処理を書こう

顧客IDを選択したときの処理を確認しよう

コードを書こう

コードの解説

商品IDを選択したときの処理を確認しよう

9-4 「明細行の追加」ボタンを使用可能にするコードを書こう

処理の概要を確認しよう

コードを書こう

コードの解説

CheckEntry関数を作ろう

コードの解説

9-5 金額、消費税、税込金額を計算して表示しよう

処理の概要を確認しよう

コードを書こう

コードの解説

同じコードを何度も書かなくて済むように工夫しよう

9-6 「明細行の追加」ボタンをクリックしたときの処理を書こう

処理の概要を確認しよう

コードを書こう

コードの解説

関数GetGoukeiKingakuを作成しよう

コードの解説

引数のあるプロシージャを作成しよう

コードの解説

明細行をキーボードだけで入力できるように工夫しよう

9-7 「登録」ボタンをクリックしたときの処理を書こう

処理の概要を確認しよう

コードを書こう

コードの解説

9-8 「明細行の削除」ボタンをクリックしたときの処理を書こう

まず、「明細行の修正」「明細行の削除」ボタンを使用可能にしよう

処理の概要を確認しよう

コードを書こう

コードの解説

9-9 「明細行の修正」フォームを作成しよう

新規フォームを作成しよう

コントロールを配置しよう

コントロールのフォーカスの順序を設定しよう

フォームの初期化処理を設定しよう

商品IDの値が変更されたときの処理を書こう

単価と数量の値が更新されたときの処理を書こう

Public変数を宣言しよう

「変更を適用する」ボタンの処理を書こう

コードの解説

「キャンセル」ボタンの処理を書こう

9-10 「明細行の修正」ボタンをクリックしたときの処理を書こう

処理の概要を確認しよう

コードを書こう

コードの解説

Chapter10 「フィルタオプションの設定」を理解しよう

10-1 「フィルタオプションの設定」を使ってみよう

「フィルタオプションの設定」のメリット

「フィルタオプションの設定」の概要

「フィルタオプションの設定」の操作方法

日付の期間指定を行って抽出してみよう

さらに伝票番号を指定して抽出してみよう

10-2 重複データを省略して抽出する方法をマスターしよう

売上明細データから期間指定をして顧客名を抽出しよう

商品マスタに登録されている分類一覧を取得しよう

10-3 「マクロの記録」に挑戦しよう

「マクロの記録」とは、Excelが書いたプログラム

「マクロの記録」の操作方法

プログラムの確認をしよう

抽出用のプロシージャを作成しよう

コードの解説

10-4 並べ替えを使ってみよう

ソートを使ってみよう

ソートに対してマクロの記録を使ってみよう

プロシージャを確認しよう

コードの解説

Chapter11 「売上情報」の検索フォームを作ろう

11-1 コントロールを配置しよう

フォームを追加しよう

コントロールを配置しよう

コントロールのフォーカスの順序を設定しよう

11-2 フォームの初期化処理を設定しよう

処理の内容を確認しよう

コードを書いてみよう

コードの解説

11-3 「検索」ボタンをクリックしたときの処理を書こう

処理の内容を確認しよう

コードを書いてみよう

コードの解説

11-4 基本情報リストボックスの行を選択したときの処理を書こう

処理の内容を確認しよう

コードを書いてみよう

コードの解説

11-5 ボタンをクリックしたときの処理を書こう

「選択されている伝票を編集する」ボタンをクリックしたときの処理を確認しよう

コードを書いてみよう

「選択されている伝票を削除する」ボタンをクリックしたときの処理を確認しよう

コードを書いてみよう

コードの解説

「閉じる」ボタンの処理を書こう

Chapter12 「売上情報」の修正フォームを作ろう

12-1 「売上情報」登録フォームを活用しよう

登録フォームをコピーしよう

デザインの変更とタブオーダーの設定をしよう

12-2 フォームの初期化処理を設定しよう

処理の内容を確認しよう

コードを修正しよう

コードの解説

「検索」フォームの「選択されている伝票を編集する」ボタンの処理を復活させよう

動作を確認しよう

12-3 「更新」ボタンをクリックしたときの処理を修正しよう

処理の概要を確認しよう

コードを修正しよう

コードの解説

12-4 「明細行の削除」ボタンをクリックしたときの処理を修正しよう

処理の概要を確認しよう

コードを修正しよう

コードの解説

Chapter13 「会社情報」の登録/修正フォームを作ろう

13-1 コントロールを配置しよう

「設定」シートを確認しよう

フォームを追加しよう

コントロールを追加しよう

コントロールのフォーカスの順序を設定しよう

13-2 フォームの初期化処理を設定しよう

コードを書いてみよう

13-3 「登録」ボタンの処理を書いてみよう

「登録」ボタンのコードを書いてみよう

Chapter14 「請求書」の指定フォームを作ろう

14-1 コントロールを配置しよう

フォームを追加しよう

コントロールを配置しよう

コントロールのフォーカスの順序を設定しよう

14-2 フォームの初期化処理を設定しよう

処理の内容を確認しよう

コードを書いてみよう

動作確認をしよう

コードの解説

14-3 年月を指定したときの処理を書こう

処理の内容を確認しよう

コードを書いてみよう

動作を確認しよう

コードの解説

14-4 「請求書の作成」ボタンをクリックしたときの処理を書こう

リストボックスの行を選択したときにボタンを使用可能にしよう

「請求書の作成」ボタンをクリックしたときの処理の内容を確認しよう

コードを書いてみよう

コードの解説

Chapter15 「請求書」のフォームを作ろう

15-1 コントロールを配置しよう

フォームを追加しよう

コントロールを配置しよう

コントロールのフォーカスの順序を設定しよう

15-2 フォームの初期化処理を設定しよう

処理の内容を確認しよう

コードを書いてみよう

動作確認をしよう

コードの確認

15-3 「請求書印刷」シートを用意しよう

印刷の処理について確認しよう

請求書のフォーマットを作成しよう

ページ設定をしよう

15-4 「印刷」ボタンをクリックしたときの処理を書こう

処理の流れを確認しよう

コードを書こう

動作確認をしよう

コードの解説

15-5 フォームを閉じたときに発行情報をリストボックスに表示しよう

呼び出し元のフォームの情報を更新しよう

フォームを閉じるときに発生するイベントにコードを書こう

「閉じる」ボタンに先ほどのコードを記述する方法もある

Chapter16 役に立つテクニック

16-1 リストボックス内の項目を見栄えよくしよう

スペースを挿入して見た目を整えよう

見た目整形用の関数を作成しよう

FormatAddSpace関数を使ってみよう

必要に応じてスペースを削除しよう

売上情報関連のフォームのリストボックスの見栄えをよくしよう

16-2 抽出結果をソートしてリストボックスに表示しよう

frmBillOptionのリストボックスを顧客ID順にソートして表示しよう

請求書の明細行を見やすい順にソートしよう

16-3 カレンダーフォームを作成しよう

カレンダーフォームの機能を確認しよう

フォームを作成しよう

コントロールを配置しよう

フォームの初期化処理を書こう

ラベルに日付を表示するプロシージャを書こう

コードの解説

コンボボックスの値でmakeCalendarプロシージャを実行しよう

動作を確認したらスピンボタンを設定しよう

日付ラベルをクリックしたときの処理を書こう

売上情報の検索フォームでカレンダーフォームを呼び出そう

カレンダーの動作確認をしよう

16-4 「商品マスタ」登録フォームのコンボボックスの設定をしよう

処理の内容を確認しよう

動作を確認しよう

16-5 数字しか入力できないようにしよう

入力時に発生するイベントを確認しよう

数字しか入力を受け付けない関数を作成しよう

KeyPressイベントプロシージャでcheckNumを呼び出そう

16-6 効率的に複数コントロールの入力チェックをしよう

入力必須コントロールのTagプロパティを活用しよう

入力チェックの関数を作成しよう

IsEntryData関数を使って入力チェックをしよう

16-7 システムの最終設定をしよう

ユーザーからExcelシートを隠蔽しよう

シートの内容を確認する方法

最後に

PR

秀和システム