アプリ作成をしながらExcelVBAとユーザーフォームを勉強する本

アプリ作成をしながらExcelVBAとユーザーフォームを勉強する本

7冊めの本を書かせていただきました!

本書は、Excelのユーザーフォームとコントロールの操作にフォーカスした本です。VBAの書き方、フォームやコントロールを作成する基礎的な部分から始まり、最終的にはオリジナルの販売管理システムを完成させるところまで詳細に解説しています。

付属CD-ROMには各章の解説前・解説後のサンプルファイルを収録しており、APPENDIXでは完成サンプルのクオリティをさらに向上させるテクニックも紹介しています。

情報

  • 発売日: 2020/8/28
  • ページ数: 424ページ
  • 定価: 本体2780円+税
  • 出版: 技術評論社

概要

ちょこっと中身を覗きながら、どんな内容なのかご紹介します。

CHAPTER1 アプリケーションの解説

まずは、本書で作成するアプリケーションがどんな見た目でどんな機能を持っているのかということを解説して、これから作るもののイメージを固めます。マスター編集、販売処理、伝票作成と、大きく分類して3つの機能があるアプリケーションを目指します。

ちなみに、今回も挿絵の図解はすべて自分で描かせてもらっております!(*´∀`*)

CHAPTER2 フォームの作成

この章では、ユーザーフォームとはなにか? コントロールとは? という基礎部分の解説を行っています。あわせて、VBE(編集ツール)の使い方、フォーム作成の仕方、命名規則の重要性を学び、作成したフォームをVBAで表示させます。

CHAPTER3 フォームの操作

フォーム上の「コマンドボタンをクリックしたとき」に自動的に実行する「イベントプロシージャ」について学び、フォーム上から別のフォームを開く、自身のフォームを閉じる、などの基本的な動きを実装します。

CHAPTER4 シートからフォームへ

サンプルには、あらかじめ完成システムに使用するための各種データが記載されたシートが存在しています。この中にある各種マスター情報を、開いたフォームに読み込む動作を実装します。

CHAPTER5 フォームからシートへ

CHAPTER4とは逆に、フォーム上に入力したデータをシートに書き込んだり、該当のデータを削除する動作を実装します。データを編集する前にユーザーに確認メッセージを表示したり、入力されている値をチェックする機能なども盛り込みます。

CHAPTER6 フォーム間連携

CHAPTER5までは1件ごとのデータの読み書きまで実装してきましたが、ここで配列を使ってデータの一覧を表示させるフォームを別に作ります。一覧の中からデータを1つ選び、それをCHAPTER5のフォームと連携させます。また、一覧表示には検索で結果を絞り込める機能も実装します。ここまでで、「マスター編集」の機能が完成します。

CHAPTER7 見積一覧フォーム

ここからは「販売処理」の機能を実装します。この章では先に一覧を表示させるフォームを作りますが、マスター情報を参照して「ID」の代わりに「名称」を表示したり、コンボボックス(ドロップダウンリスト)にマスター情報を読み込んだり、実用的なテクニックを盛り込みながら実装していきます。

CHAPTER8 見積情報編集フォーム

販売でよく見られる「1対多」の形をフォームで実装します。シートとフォーム間のデータの読み書きに加え、Changeイベントを使って「ID」を選択すると「名称」などが自動入力されたり、内容が変更されるたびに小計や合計を再計算する機能も盛り込みます。ここまでで、「販売処理」の機能が完成します。

CHAPTER9 プレビューフォームと受注フォーム

CHAPTER8までで作成してきた見積情報を元に、見積書のプレビューを経てPDFファイルを出力する機能を実装します。また、プレビュー画面を出す前にデータが変更されていないかチェックする機能や、見積に対して受注を確定する機能も追加します。

CHAPTER10 伝票出力

確定した受注に対して「売上伝票」「納品書」「請求書」の3つの伝票をプレビュー→PDF出力する機能を実装します。CHAPTER8で作成した見積書発行のフォームを拡張して、これらの伝票発行にも対応させるカスタマイズを行います。ここまでで、「伝票出力」の機能が完成します。

CHAPTER11 アプリケーションの品質向上

最後に、3つの機能の玄関となる「メニュー」をもっと使いやすくする方法を考えます。シートをメニューとして使う方法、データ保護のためメニュー以外のシートを非表示にする方法、Excel画面を非表示にしてフォームのみを表示させる方法など、いくつかのテクニックを紹介しています。

APPENDIX さらに完成度を高めるテクニック

ここまで作ったサンプルへの+αとして、いくつかの改良案を紹介しています。背景に画像を使う・フォントを変更するなどの比較的容易なものから、クラスモジュールやSQLを使って処理のクオリティを上げる難易度の高い内容まで解説しました。

ひとこと

この本の「はじめに」には、以下のように書きました。

Excel VBA の学びはじめは、まずは「手動でできる操作を自動化する」というところからスタートする人が多いのではないでしょうか。そこでは、「ワークシート」や「セル」を対象にして値を取得したり加工したりして操作を行うはずです。Excelは表計算ソフトなので、その使い方は王道だと筆者は考えています。むしろ、はじめてプログラミングを学ぶのにはとてもおすすめだと思っています。

(中略)

とはいえ、ワークシートのインターフェースはご存じのとおり「表」です。基本的には表形式に沿った形しか作成できないため、もっと自由度の高い入出力画面が必要になる場面もあるかもしれません。

そんなときに使えるのが、本書で紹介するExcelの「ユーザーフォーム」です。これは、ワークシートとはまったく別の「入出力画面」を自由に作成することができるため、Excel でありながら「独自アプリケーション」のように見せることができ、利便性向上にもつながります。

Excelのユーザーフォームは、必ずしも無くてはならないものではありません。シートと標準モジュールだけでも十分に業務をこなすことは可能です。しかし、シートだけでは表現が難しい場合、ユーザーにストレスなく操作してもらいたい場合、入力時間を短縮したい場合など、ユーザーフォームを活用することで利便性が向上する可能性は大いに考えられます。

ワークシートの処理を知ったうえで、加えてユーザーフォームの知識があれば、提案できる選択肢が広がり、より実務に活かせるスキルとなるのでは、そんな想いで本書を執筆させていただきました。

本書がVBA活用のステップアップへのお役に立てたら光栄です。