VBA中級者が業務マクロ設計を学ぶための13章ロードマップ

VBA中級者が業務マクロ設計を学ぶための13章ロードマップ

Copyright © 2026 LWP 山中 一弘

本資料は、出典を明記いただければ、商用・非商用を問わず、ご自由に複製・改変・再配布していただけます。なお、著作権表示は改変せず、そのまま記載してご利用くださいますようお願いいたします。

記事要約

VBAを2〜3年使っていると、文法や小さな自動化には慣れてきます。ところが、実務で使う業務マクロを作ろうとすると、急に難しくなります。

その理由は、業務マクロでは「コードが書けること」だけでは足りないからです。誰が使うのか、何を入力するのか、何を出力するのか、例外をどう扱うのか、どこまでを自動化し、どこからを人間が確認するのか。そうした設計判断が必要になります。

この記事では、「現代VBA構造化設計」という詳細目次案をもとに、VBA中級者が業務マクロ設計を学ぶための13章ロードマップを整理します。これは文法書の目次ではありません。業務ヒアリング、要件整理、全体構成図、DFD、データ設計、処理方式設計、関数分割、テスト、AI支援までを一続きに学ぶための地図です。

本記事の対象

この記事は、次のような人を対象にしています。

  • VBAの基本文法や記録マクロは分かる

  • 単発の処理や小さな便利マクロは作れる

  • しかし、業務全体を任されると設計の進め方が分からなくなる

  • セル番地中心のマクロが大きくなり、後から直しにくくなった経験がある

  • Power Query、スピル数式、LAMBDA、AI支援も含めて、現代のExcel実務でどう使い分けるかを考えたい

VBAの細かい文法を増やす記事ではありません。すでにある程度コードを書ける人が、業務に耐えるマクロを設計するための見取り図です。

先に結論

VBA中級者が次に学ぶべきことは、VBAの小技だけではありません。

大事なのは、業務を聞き、業務を図にし、データ構造を決め、処理方式を選び、関数へ分解し、テストと検算で正しさを確認する力です。

つまり、VBAを中心に置くのではなく、業務処理全体の中でVBAを位置づける必要があります。

このロードマップは、13章を次の5つの学習ステージに分けて考えます。

  1. 設計力の入口

  2. 業務を理解し、範囲を決める

  3. 業務を図とデータで表す

  4. 技術の役割を決め、実装へ進む

  5. 正しさを確認し、AI時代の学習へ進む

この順番で学ぶと、単なる「動くマクロ」から、「業務に耐えるマクロ」へ進みやすくなります。

なぜVBA中級者には設計力が必要なのか

初級者の段階では、「ボタンを押したら動く」「記録マクロを直して使える」「繰り返し処理を書ける」ということが大きな進歩です。これは大切な段階です。

しかし、業務マクロでは、単に処理を書くだけでは足りません。

現場の人が説明する作業手順は、そのまま仕様ではありません。画面で操作している順番と、業務として本当に必要な構造は一致しないことがあります。入力ファイル、出力帳票、マスタ、例外条件、確認者、締日、保存先、旧マクロとの突合など、コードを書く前に整理すべきものがたくさんあります。

VBA中級者が苦しくなるのは、コード力が足りないからだけではありません。むしろ、業務をどう分解すればよいか、何を図にすればよいか、どこまでをVBAで書くべきかを決める設計力が不足しやすいのです。

この目次案の良いところは、VBAを文法の集合として扱っていない点です。VBAを、業務ヒアリング、データ設計、処理方式、テストの中に置いています。ここが中級者向けの学習として重要です。

13章ロードマップの全体像

13章は、大きく見ると「業務理解から運用開始まで」の流れになっています。

最初に、中級VBA実務者に必要な設計力を確認します。次に、業務ヒアリングと要件整理で、作るものの範囲を決めます。その後、全体構成図やDFDで業務を見える化し、データ設計と機能定義へ進みます。

後半では、VBA、Power Query、スピル数式、LAMBDA、人間確認の役割を分け、関数ツリーやVBAプロジェクト構成へ落とし込みます。最後に、テスト、検算、旧業務との突合、AI時代の学習法まで扱います。

これは、次のような一本の流れです。

  1. 業務を聞く

  2. 業務の目的と範囲を決める

  3. 業務の登場物を描く

  4. データの流れを描く

  5. 機能とデータを定義する

  6. VBA、Power Query、数式の役割を分ける

  7. 関数とモジュールへ分解する

  8. テストと検算で正しさを確認する

  9. AIを設計支援として使う

この流れを持っているだけで、業務マクロの作り方はかなり変わります。

ステージ1: 設計力の入口

第1章は、「中級VBA実務者に必要な設計力」です。

ここで最初に確認すべきことは、初級者、中級者、上級者の違いです。初級者は「動くマクロ」を作ります。中級者は「業務に耐えるマクロ」を作ります。上級者は「変更に耐える構造」を作ります。

この区別はとても重要です。

VBAを学んでいると、つい文法やテクニックを増やす方向に進みがちです。もちろん文法は必要です。しかし、業務マクロで問題になるのは、文法そのものよりも、業務理解なしにコードを書き始めること、セル番地中心で考えること、処理の追加を繰り返して巨大マクロにしてしまうことです。

第1章では、VBAは古いが不要ではない、という位置づけも重要です。VBAはファイル操作、帳票出力、手続き制御に強い技術です。一方で、Power Queryやスピル数式で担当した方がよい処理もあります。

つまり、VBAを中心に置くのではなく、業務処理全体の中にVBAを置く。この考え方が、現代VBA構造化設計の入口になります。

ステージ2: 業務を理解し、範囲を決める

第2章は「業務ヒアリングの技術」、第3章は「要件定義と業務範囲の確定」です。

業務マクロは、現場から依頼を聞くところから始まります。しかし、お客様や現場担当者の話は、そのまま仕様ではありません。

「この作業を自動化したい」と言われたとき、その作業自体が本当に必要なのか、何を確認するためにやっているのか、出力結果を誰が何に使うのかを聞かなければなりません。現場説明には、省略、思い込み、例外漏れがあります。

ヒアリングで最初に聞くべきことは、意外と基本的なことです。

  • 誰が使うのか

  • いつ使うのか

  • 何を入力するのか

  • 何を出力するのか

  • 出力結果を誰が何に使うのか

  • 例外や判断基準は何か

この段階では、コードの話を急ぎすぎない方がよいです。

第3章では、業務目的、機能要件、非機能要件、制約条件、業務範囲、責任範囲を決めます。ここで大事なのは、「何を作るか」だけでなく、「何を作らないか」も決めることです。

業務範囲が曖昧なまま実装に入ると、後から機能追加、例外追加、帳票追加が続き、最終的には誰も全体を説明できないマクロになります。

中級者が学ぶべき要件整理とは、分厚い文書を作ることではありません。作るもの、作らないもの、確認すべきもの、未決のものを分け、後工程へ渡せる状態にすることです。

ステージ3: 業務を図とデータで表す

第4章から第7章までは、業務を見える形にする段階です。

第4章では、全体構成図で業務の登場物を描きます。人、部署、Excelブック、シート、CSV、PDF、帳票、外部ファイル、基幹システム、Access、Webシステム、メール、共有フォルダ、クラウドストレージなど、業務には多くの登場物があります。

全体構成図の役割は、これらを一枚の図として把握することです。

ここで境界を描くことが重要です。どこまでがマクロの責任なのか。どこからが人間の確認なのか。どこからが外部システムなのか。どのファイルが入力で、どのファイルが出力なのか。

第5章では、DFDでデータの流れと変換を描きます。

業務フローは、人の作業手順を描きやすい図です。一方、DFDはデータがどこから来て、どこで変換され、どこへ出ていくかを描きます。業務マクロを設計するなら、操作手順だけでなく、データの流れを見る必要があります。

たとえば、売上CSVを取り込み、商品マスタと突合し、請求データを作り、検算表を出すとします。このとき重要なのは、「どのボタンを押すか」よりも、どのデータが、どのルールで、どのデータへ変換されるかです。

第6章では、全体構成図やDFDから機能一覧を作ります。機能とは、業務上の意味を持つ処理の単位です。粒度が大きすぎると設計できず、小さすぎると一覧が読めなくなります。

第7章では、データ設計を扱います。ここは業務マクロの品質を大きく左右します。

実務のExcelでは、データの形が崩れやすいです。見出し行、結合セル、空白行、途中集計、メモ列、色分け、手入力補正などが混ざります。これをセル番地だけで処理しようとすると、マクロはすぐに壊れます。

データ設計では、マスタ、トランザクション、中間データを分けます。項目名、データ型、キー、変換ルール、チェックルールを決めます。ここまで決めてからコードを書くと、関数分割もテストも楽になります。

ステージ4: 技術の役割を決め、実装へ進む

第8章から第11章までは、設計を実装へつなげる段階です。

第8章の中心は、「すべてをVBAで書かない」という考え方です。

昔のExcel自動化では、VBAがほぼすべてを担当することが多くありました。しかし、現在のExcelには、Power Query、スピル数式、LAMBDAなどがあります。さらに、人間がシート上で確認した方がよい処理もあります。

処理方式設計では、処理ごとに担当技術を決めます。

  • ファイル操作、帳票出力、手続き制御はVBAに向きやすい

  • データ取り込み、整形、結合、列変換はPower Queryに向きやすい

  • シート上で見える計算や動的な集計はスピル数式に向きやすい

  • 同じ計算ロジックを名前付き関数として再利用したい場合はLAMBDAが候補になる

  • 金額確認、例外判断、最終承認は人間確認として残す方がよい場合がある

大事なのは、技術の優劣ではありません。業務上の責任に合わせて、担当技術を選ぶことです。

第9章では、Power Query、スピル数式、LAMBDAを構造化設計の中に組み込みます。これらはVBAの敵ではありません。VBAを減らすためだけの道具でもありません。業務処理全体を見たとき、適切な場所に置く部品です。

第10章では、関数分割と関数ツリーを扱います。

関数分割は、「なんとなく短くする」作業ではありません。DFDで見えているデータ変換や、機能一覧で定義した処理単位から、自然に導くべきものです。

Mainプロシージャは、業務処理全体の流れを読めるようにします。個別の関数は、入力、出力、責務、副作用、エラー条件を分けて考えます。関数仕様書を書く発想を持つと、関数の責務が曖昧になりにくくなります。

第11章では、VBA実装の構造化技法に入ります。

ここで扱うのは、モジュール構成、シート操作を端に寄せること、VBAのデータ構造の使い分け、SubとFunctionの設計、命名、コメント、エラー処理、ログ、性能です。

特に重要なのは、シート操作を処理の中心に置きすぎないことです。シートから読み取る、データ構造に変換する、処理する、シートへ出す。この境界を分けるだけで、マクロはかなり読みやすくなります。

ステージ5: 正しさを確認し、AI時代の学習へ進む

第12章は「テスト・検算・突合」です。

業務マクロでは、「エラーが出なかった」だけでは正しく動いたとは言えません。件数が合っているか、金額が合っているか、キー単位で突合できるか、入力と出力が対応しているか、中間データにおかしな値がないかを確認する必要があります。

テストデータも設計対象です。

正常系データだけでなく、異常系、境界値、空白、欠損、重複、マスタ不一致、月末、年度末、締日、大量データを考えます。旧マクロや旧業務との突合では、旧結果をそのまま正解とみなしてよいかも確認しなければなりません。

ここで重要なのは、テストを最後の確認作業として扱わないことです。業務マクロでは、検算表や突合方法も設計の一部です。

第13章は「AI時代の学習法と総合事例」です。

AIはコードを書けます。関数分割案を作ることも、Power Query手順の草案を作ることも、スピル数式の候補を出すことも、テストケースを洗い出すこともできます。

しかし、AIは業務責任を持ちません。

業務要件の確定、責任範囲の判断、お客様との合意、異常系の最終判断、金額・会計・契約に関わる処理の確認は、人間側に残ります。

だからこそ、AI時代に人間が学ぶべきことは、VBAの文法を暗記することだけではありません。業務目的、入力データ、出力データ、機能一覧、データ設計、制約条件、テスト条件をAIに渡せる形で整理する力です。

AIを使うほど、設計力の差は大きく出ます。曖昧な依頼を渡せば曖昧なコードが返ってきます。整理された業務設計を渡せば、AIはかなり有効な実装支援になります。

どの順番で学ぶべきか

この13章をすべて一気に学ぼうとすると重く見えます。そこで、最初は次の順番で学ぶのがよいと思います。

1つ目は、第1章から第3章です。ここで、業務マクロはコード前の整理が大事だと理解します。ヒアリング、目的、範囲、要件、責任範囲を学びます。

2つ目は、第4章から第7章です。全体構成図、DFD、機能一覧、データ設計を学びます。ここは、業務を図とデータに変える練習です。

3つ目は、第8章から第11章です。VBA、Power Query、数式の役割を決め、関数分割とVBA実装へ進みます。ここで初めて、設計とコードがつながります。

4つ目は、第12章です。テスト、検算、突合を学びます。業務マクロでは、正しさを説明できることが重要です。

5つ目は、第13章です。AI支援を、コード生成ではなく設計支援として使う考え方を学びます。

この順番なら、読者は「VBAをもっと書けるようになる」だけでなく、「業務マクロを任せられる人」に近づけます。

目次そのものを記事化する意味

目次は、本文ではありません。けれども、良い目次は学習地図になります。

特に今回の目次案は、VBAの文法項目を並べたものではなく、業務マクロを作るために必要な判断を順番に並べています。

VBA中級者にとって大事なのは、「次に何を学べばよいか」が見えることです。文法を増やすのか、設計を学ぶのか、データ設計を学ぶのか、テストを学ぶのか。ここが見えないと、いつまでも小さなマクロの延長で大きな業務を作ろうとしてしまいます。

この目次は、そこに対する答えになります。

業務を聞く。業務を分ける。データを定義する。処理方式を選ぶ。関数へ分ける。テストで確かめる。AIに渡せる形に整理する。

この流れを持つだけで、VBAの学び方は変わります。

まとめ

VBA中級者が次に伸ばすべき力は、単なるコード量ではありません。

業務を理解し、範囲を決め、図とデータで表し、処理方式を選び、関数へ分解し、テストと検算で正しさを確認する力です。

この13章ロードマップは、VBAを古い技術として捨てるためのものではありません。VBAを、Power Query、スピル数式、LAMBDA、AI支援と並べ、現代Excel実務の中で適切に使うためのものです。

動くマクロを作れる人は多くいます。

しかし、業務に耐えるマクロを設計できる人は、まだ多くありません。

VBA中級者がその次へ進むためには、コードを書く前の設計を学ぶ必要があります。この目次案は、そのための良い学習地図になります。

<!-- ARTICLE101_FULL_TOC_START -->

完全目次と章・節・項の説明

ここからは、元の詳細目次案を、完全目次として掲載します。

この記事前半では、13章を学習ロードマップとして説明しました。しかし、目次記事として読むなら、実際にどの章、どの節、どの項を学ぶのかが見えていないと意味が弱くなります。

ここでいう「章」は大きな学習単位、「節」は章の中で扱う論点、「項」は実際に確認する小さな学習項目です。本文そのものはここには載せません。代わりに、それぞれが何をするための目次なのかを短く添えます。

前提項目

  • 書名案: この項目は、記事群または書籍としての名前と方向性を決めるための前提です。

  • 対象読者: この項目は、誰に向けて書くのかを明確にするための前提です。

  • 想定ページ数: この項目は、扱う範囲が短い記事ではなく大きな教材規模であることを示す前提です。

  • 全体方針: この項目は、文法書ではなく業務マクロ設計の学習地図として読むための前提です。

第1章 中級VBA実務者に必要な設計力

この章は、VBA中級者が文法学習から設計学習へ進む理由を整理する入口です。

1.1 初級VBAと中級VBAの違い

この節では、初級VBAと中級VBAの違いを実務で判断できる形に整理します。

  • 1.1.1 初級者は「動くマクロ」を作る: この項では、初級者は「動くマクロ」を作るときの作成観点を確認します。

  • 1.1.2 中級者は「業務に耐えるマクロ」を作る: この項では、中級者は「業務に耐えるマクロ」を作るときの作成観点を確認します。

  • 1.1.3 上級者は「変更に耐える構造」を作る: この項では、上級者は「変更に耐える構造」を作るときの作成観点を確認します。

  • 1.1.4 中級入口で最も不足しやすいのは設計力である: この項では、中級入口で最も不足しやすいのは設計力であるという観点を具体的に確認します。

1.2 なぜコードが書けても業務マクロが作れないのか

この節では、なぜコードが書けても業務マクロが作れないのかための手順と観点を整理します。

  • 1.2.1 業務理解なしにコードを書く危険: この項では、業務理解なしにコードを書く危険を避けるための注意点を確認します。

  • 1.2.2 画面操作順と業務構造は一致しない: この項では、画面操作順と業務構造は一致しないときの作成観点を確認します。

  • 1.2.3 セル番地中心の発想が保守性を壊す: この項では、セル番地中心の発想が保守性を壊すという観点を具体的に確認します。

  • 1.2.4 処理の追加を繰り返すと巨大マクロになる: この項では、処理の追加を繰り返すと巨大マクロになるという観点を具体的に確認します。

1.3 現代ExcelにおけるVBAの位置づけ

この節では、現代ExcelにおけるVBAの位置づけを実務で判断できる形に整理します。

  • 1.3.1 VBAは古いが不要ではない: この項では、VBAは古いが不要ではないという観点を具体的に確認します。

  • 1.3.2 ファイル操作・帳票出力・手続き制御に強い: この項では、ファイル操作・帳票出力・手続き制御に強いときの作成観点を確認します。

  • 1.3.3 Power Queryやスピル数式では代替しにくい処理: この項では、Power Queryやスピル数式では代替しにくい処理という観点を具体的に確認します。

  • 1.3.4 VBAを中心に置くのではなく、業務処理全体の中に位置づける: この項では、VBAを中心に置くのではなく、業務処理全体の中に位置づけるという観点を具体的に確認します。

1.4 構造化設計とは何か

この節では、構造化設計とは何かを実務で判断できる形に整理します。

  • 1.4.1 業務をデータ構造と処理構造に分ける: この項では、業務をデータ構造と処理構造に分けるという観点を具体的に確認します。

  • 1.4.2 入力・変換・検証・集計・出力として処理を捉える: この項では、入力・変換・検証・集計・出力として処理を捉えるという観点を具体的に確認します。

  • 1.4.3 データフローと関数ツリーを対応させる: この項では、データフローと関数ツリーを対応させるという観点を具体的に確認します。

  • 1.4.4 構造化設計は古い技術ではなく、実務マクロの基礎である: この項では、構造化設計は古い技術ではなく、実務マクロの基礎であるという観点を具体的に確認します。

1.5 本書で作る設計成果物

この節では、本書で作る設計成果物ための手順と観点を整理します。

  • 1.5.1 業務ヒアリングメモ: この項では、業務ヒアリングメモという観点を具体的に確認します。

  • 1.5.2 要件定義書: この項では、要件定義書ときの作成観点を確認します。

  • 1.5.3 全体構成図: この項では、全体構成図という観点を具体的に確認します。

  • 1.5.4 DFD、データフロー図: この項では、DFD、データフロー図という観点を具体的に確認します。

  • 1.5.5 機能一覧: この項では、機能一覧という観点を具体的に確認します。

  • 1.5.6 データ設計書: この項では、データ設計書ときの作成観点を確認します。

  • 1.5.7 処理方式設計書: この項では、処理方式設計書ときの作成観点を確認します。

  • 1.5.8 関数ツリー: この項では、関数ツリーという観点を具体的に確認します。

  • 1.5.9 関数仕様書: この項では、関数仕様書ときの作成観点を確認します。

  • 1.5.10 テスト仕様書・検算表: この項では、テスト仕様書・検算表ときの作成観点を確認します。

第2章 業務ヒアリングの技術

この章は、現場の話をそのまま仕様にせず、業務構造を聞き出す方法を扱います。

2.1 お客様の話はそのまま仕様ではない

この節では、お客様の話はそのまま仕様ではないを実務で判断できる形に整理します。

  • 2.1.1 依頼内容と本当の課題は違う: この項では、依頼内容と本当の課題は違うという観点を具体的に確認します。

  • 2.1.2 「今やっている作業」と「本来必要な業務」を分ける: この項では、「今やっている作業」と「本来必要な業務」を分けるときの作成観点を確認します。

  • 2.1.3 現場説明には省略・思い込み・例外漏れがある: この項では、現場説明には省略・思い込み・例外漏れがあるという観点を具体的に確認します。

  • 2.1.4 ヒアリングの目的は仕様を聞くことではなく、業務構造を発見することである: この項では、ヒアリングの目的は仕様を聞くことではなく、業務構造を発見することであるという観点を具体的に確認します。

2.2 最初に確認すること

この節では、最初に確認することための確認観点を整理します。

  • 2.2.1 誰が使うのか: この項では、誰が使うのかという観点を具体的に確認します。

  • 2.2.2 いつ使うのか: この項では、いつ使うのかという観点を具体的に確認します。

  • 2.2.3 何を入力するのか: この項では、何を入力するのかという観点を具体的に確認します。

  • 2.2.4 何を出力するのか: この項では、何を出力するのかという観点を具体的に確認します。

  • 2.2.5 出力結果を誰が何に使うのか: この項では、出力結果を誰が何に使うのかという観点を具体的に確認します。

2.3 業務の登場物を洗い出す

この節では、業務の登場物を洗い出すを実務で判断できる形に整理します。

  • 2.3.1 人と部署: この項では、人と部署という観点を具体的に確認します。

  • 2.3.2 Excelブックとシート: この項では、Excelブックとシートという観点を具体的に確認します。

  • 2.3.3 CSV・PDF・帳票・外部ファイル: この項では、CSV・PDF・帳票・外部ファイルという観点を具体的に確認します。

  • 2.3.4 基幹システム・Access・Webシステム: この項では、基幹システム・Access・Webシステムという観点を具体的に確認します。

  • 2.3.5 メール・共有フォルダ・クラウドストレージ: この項では、メール・共有フォルダ・クラウドストレージという観点を具体的に確認します。

2.4 入力データを聞く

この節では、入力データを聞くを実務で判断できる形に整理します。

  • 2.4.1 データはどこから来るか: この項では、データはどこから来るかという観点を具体的に確認します。

  • 2.4.2 誰が作るか: この項では、誰が作るかときの作成観点を確認します。

  • 2.4.3 いつ更新されるか: この項では、いつ更新されるかという観点を具体的に確認します。

  • 2.4.4 列名や形式は安定しているか: この項では、列名や形式は安定しているかという観点を具体的に確認します。

  • 2.4.5 過去データと現在データで形式が違わないか: この項では、過去データと現在データで形式が違わないかという観点を具体的に確認します。

2.5 出力物を聞く

この節では、出力物を聞くを実務で判断できる形に整理します。

  • 2.5.1 帳票なのか、CSVなのか、貼り付け用データなのか: この項では、帳票なのか、CSVなのか、貼り付け用データなのかという観点を具体的に確認します。

  • 2.5.2 人が読む出力か、システムが読む出力か: この項では、人が読む出力か、システムが読む出力かという観点を具体的に確認します。

  • 2.5.3 出力後に手作業があるか: この項では、出力後に手作業があるかときの作成観点を確認します。

  • 2.5.4 出力結果の正しさを誰が確認するか: この項では、出力結果の正しさを誰が確認するかための確認観点を整理します。

  • 2.5.5 保存先・ファイル名・締切を確認する: この項では、保存先・ファイル名・締切を確認するための確認観点を整理します。

2.6 判断基準と例外処理を聞く

この節では、判断基準と例外処理を聞くを実務で判断できる形に整理します。

  • 2.6.1 通常処理だけでは業務は分からない: この項では、通常処理だけでは業務は分からないという観点を具体的に確認します。

  • 2.6.2 例外データの扱い: この項では、例外データの扱いという観点を具体的に確認します。

  • 2.6.3 判断が人に依存している箇所: この項では、判断が人に依存している箇所を判断材料として整理します。

  • 2.6.4 差戻し・再実行・修正の流れ: この項では、差戻し・再実行・修正の流れという観点を具体的に確認します。

  • 2.6.5 月末・年度末・締日処理: この項では、月末・年度末・締日処理という観点を具体的に確認します。

2.7 ヒアリングでやってはいけないこと

この節では、ヒアリングでやってはいけないことを避けるための判断材料を整理します。

  • 2.7.1 最初からVBAの実装方法を聞かない: この項では、最初からVBAの実装方法を聞かないという観点を具体的に確認します。

  • 2.7.2 現行Excelの形をそのまま正解だと思わない: この項では、現行Excelの形をそのまま正解だと思わないという観点を具体的に確認します。

  • 2.7.3 例外を後回しにしない: この項では、例外を後回しにしないという観点を具体的に確認します。

  • 2.7.4 「できます」と即答しない: この項では、「できます」と即答しないという観点を具体的に確認します。

  • 2.7.5 作業手順だけを聞いて満足しない: この項では、作業手順だけを聞いて満足しないときの作成観点を確認します。

2.8 ヒアリングメモを設計材料に変換する

この節では、ヒアリングメモを設計材料に変換するを実務で判断できる形に整理します。

  • 2.8.1 発言をそのまま残す部分: この項では、発言をそのまま残す部分という観点を具体的に確認します。

  • 2.8.2 設計情報として整理する部分: この項では、設計情報として整理する部分という観点を具体的に確認します。

  • 2.8.3 未確認事項を分ける: この項では、未確認事項を分けるための確認観点を整理します。

  • 2.8.4 業務用語を定義する: この項では、業務用語を定義するするために必要な観点を確認します。

  • 2.8.5 次回確認事項を作る: この項では、次回確認事項を作るときの作成観点を確認します。

第3章 要件定義と業務範囲の確定

この章は、作るもの、作らないもの、責任範囲を決めるための要件整理を扱います。

3.1 要件定義とは何を決める作業か

この節では、要件定義とは何を決める作業かための手順と観点を整理します。

  • 3.1.1 要件定義は要望一覧ではない: この項では、要件定義は要望一覧ではないするために必要な観点を確認します。

  • 3.1.2 業務上必要な成果を定義する: この項では、業務上必要な成果を定義するするために必要な観点を確認します。

  • 3.1.3 マクロが担当する範囲を決める: この項では、マクロが担当する範囲を決めるという観点を具体的に確認します。

  • 3.1.4 やらないことを決める: この項では、やらないことを決めるという観点を具体的に確認します。

3.2 業務目的を定義する

この節では、業務目的を定義するし、後工程で迷わない状態にします。

  • 3.2.1 何を改善するのか: この項では、何を改善するのかという観点を具体的に確認します。

  • 3.2.2 時間短縮なのか、ミス削減なのか、標準化なのか: この項では、時間短縮なのか、ミス削減なのか、標準化なのかという観点を具体的に確認します。

  • 3.2.3 現場作業の代替か、確認作業の支援か: この項では、現場作業の代替か、確認作業の支援かときの作成観点を確認します。

  • 3.2.4 成果をどのように測るか: この項では、成果をどのように測るかという観点を具体的に確認します。

3.3 機能要件を定義する

この節では、機能要件を定義するし、後工程で迷わない状態にします。

  • 3.3.1 入力機能: この項では、入力機能という観点を具体的に確認します。

  • 3.3.2 変換機能: この項では、変換機能という観点を具体的に確認します。

  • 3.3.3 検証機能: この項では、検証機能という観点を具体的に確認します。

  • 3.3.4 集計機能: この項では、集計機能という観点を具体的に確認します。

  • 3.3.5 出力機能: この項では、出力機能という観点を具体的に確認します。

  • 3.3.6 ログ・エラー出力機能: この項では、ログ・エラー出力機能という観点を具体的に確認します。

3.4 非機能要件を定義する

この節では、非機能要件を定義するし、後工程で迷わない状態にします。

  • 3.4.1 処理時間: この項では、処理時間という観点を具体的に確認します。

  • 3.4.2 操作の分かりやすさ: この項では、操作の分かりやすさときの作成観点を確認します。

  • 3.4.3 保守性: この項では、保守性という観点を具体的に確認します。

  • 3.4.4 再実行性: この項では、再実行性という観点を具体的に確認します。

  • 3.4.5 ファイル保存・バックアップ: この項では、ファイル保存・バックアップという観点を具体的に確認します。

  • 3.4.6 Excelバージョン・実行環境: この項では、Excelバージョン・実行環境という観点を具体的に確認します。

3.5 制約条件を定義する

この節では、制約条件を定義するし、後工程で迷わない状態にします。

  • 3.5.1 変更できない帳票: この項では、変更できない帳票という観点を具体的に確認します。

  • 3.5.2 変更できない入力フォーマット: この項では、変更できない入力フォーマットという観点を具体的に確認します。

  • 3.5.3 社内ルール・締切・承認手順: この項では、社内ルール・締切・承認手順という観点を具体的に確認します。

  • 3.5.4 外部システムとの制約: この項では、外部システムとの制約という観点を具体的に確認します。

  • 3.5.5 担当者のスキル制約: この項では、担当者のスキル制約という観点を具体的に確認します。

3.6 業務範囲と責任範囲を切る

この節では、業務範囲と責任範囲を切るを実務で判断できる形に整理します。

  • 3.6.1 マクロの前工程: この項では、マクロの前工程という観点を具体的に確認します。

  • 3.6.2 マクロの後工程: この項では、マクロの後工程という観点を具体的に確認します。

  • 3.6.3 人間が確認する部分: この項では、人間が確認する部分ための確認観点を整理します。

  • 3.6.4 自動化してはいけない部分: この項では、自動化してはいけない部分という観点を具体的に確認します。

  • 3.6.5 責任境界を曖昧にしない: この項では、責任境界を曖昧にしないという観点を具体的に確認します。

3.7 要件定義書の構成

この節では、要件定義書の構成ための手順と観点を整理します。

  • 3.7.1 目的: この項では、目的という観点を具体的に確認します。

  • 3.7.2 対象業務: この項では、対象業務という観点を具体的に確認します。

  • 3.7.3 対象データ: この項では、対象データという観点を具体的に確認します。

  • 3.7.4 機能一覧: この項では、機能一覧という観点を具体的に確認します。

  • 3.7.5 制約条件: この項では、制約条件という観点を具体的に確認します。

  • 3.7.6 未決事項: この項では、未決事項という観点を具体的に確認します。

  • 3.7.7 確認事項: この項では、確認事項ための確認観点を整理します。

第4章 全体構成図で業務の登場物を描く

この章は、人、ファイル、システム、保存先などの登場物を全体構成図として描く章です。

4.1 全体構成図の目的

この節では、全体構成図の目的を実務で判断できる形に整理します。

  • 4.1.1 業務の登場物を一枚で見る: この項では、業務の登場物を一枚で見るという観点を具体的に確認します。

  • 4.1.2 VBAマクロの位置を明確にする: この項では、VBAマクロの位置を明確にするという観点を具体的に確認します。

  • 4.1.3 人・ファイル・システムの関係を整理する: この項では、人・ファイル・システムの関係を整理するという観点を具体的に確認します。

  • 4.1.4 お客様と認識を合わせる: この項では、お客様と認識を合わせるという観点を具体的に確認します。

4.2 全体構成図に描くもの

この節では、全体構成図に描くものための手順と観点を整理します。

  • 4.2.1 担当者・部署: この項では、担当者・部署という観点を具体的に確認します。

  • 4.2.2 Excelブック: この項では、Excelブックという観点を具体的に確認します。

  • 4.2.3 入力ファイル: この項では、入力ファイルという観点を具体的に確認します。

  • 4.2.4 出力ファイル: この項では、出力ファイルという観点を具体的に確認します。

  • 4.2.5 外部システム: この項では、外部システムという観点を具体的に確認します。

  • 4.2.6 共有フォルダ・保存先: この項では、共有フォルダ・保存先という観点を具体的に確認します。

  • 4.2.7 帳票・確認資料: この項では、帳票・確認資料ための確認観点を整理します。

4.3 境界を描く

この節では、境界を描くための手順と観点を整理します。

  • 4.3.1 人間作業と自動処理の境界: この項では、人間作業と自動処理の境界ときの作成観点を確認します。

  • 4.3.2 Excel内部と外部システムの境界: この項では、Excel内部と外部システムの境界という観点を具体的に確認します。

  • 4.3.3 VBAが担当する範囲: この項では、VBAが担当する範囲という観点を具体的に確認します。

  • 4.3.4 Power Queryが担当する範囲: この項では、Power Queryが担当する範囲という観点を具体的に確認します。

  • 4.3.5 数式が担当する範囲: この項では、数式が担当する範囲という観点を具体的に確認します。

  • 4.3.6 手作業として残す範囲: この項では、手作業として残す範囲ときの作成観点を確認します。

4.4 全体構成図からリスクを見つける

この節では、全体構成図からリスクを見つけるを避けるための判断材料を整理します。

  • 4.4.1 入力元が複数あるリスク: この項では、入力元が複数あるリスクという観点を具体的に確認します。

  • 4.4.2 手作業が途中に入るリスク: この項では、手作業が途中に入るリスクときの作成観点を確認します。

  • 4.4.3 同じデータが複数ファイルに存在するリスク: この項では、同じデータが複数ファイルに存在するリスクという観点を具体的に確認します。

  • 4.4.4 保存先が曖昧なリスク: この項では、保存先が曖昧なリスクという観点を具体的に確認します。

  • 4.4.5 担当者依存のリスク: この項では、担当者依存のリスクという観点を具体的に確認します。

4.5 全体構成図の粒度

この節では、全体構成図の粒度を実務で判断できる形に整理します。

  • 4.5.1 細かすぎる図は読まれない: この項では、細かすぎる図は読まれないという観点を具体的に確認します。

  • 4.5.2 粗すぎる図は設計に使えない: この項では、粗すぎる図は設計に使えないという観点を具体的に確認します。

  • 4.5.3 初回ヒアリング後の粗い図: この項では、初回ヒアリング後の粗い図という観点を具体的に確認します。

  • 4.5.4 設計確定時の詳細図: この項では、設計確定時の詳細図という観点を具体的に確認します。

  • 4.5.5 保守用の最終図: この項では、保守用の最終図という観点を具体的に確認します。

4.6 全体構成図を機能定義につなげる

この節では、全体構成図を機能定義につなげるし、後工程で迷わない状態にします。

  • 4.6.1 図上の操作を機能候補として見る: この項では、図上の操作を機能候補として見るときの作成観点を確認します。

  • 4.6.2 ファイル間の移動を処理候補として見る: この項では、ファイル間の移動を処理候補として見るという観点を具体的に確認します。

  • 4.6.3 人間判断の位置を確認する: この項では、人間判断の位置を確認するための確認観点を整理します。

  • 4.6.4 自動化可能な箇所を確認する: この項では、自動化可能な箇所を確認するための確認観点を整理します。

  • 4.6.5 DFDへ進む準備をする: この項では、DFDへ進む準備をするという観点を具体的に確認します。

第5章 DFDでデータの流れと変換を描く

この章は、業務を操作手順ではなくデータの流れと変換として見るためのDFDを扱います。

5.1 DFDの目的

この節では、DFDの目的を実務で判断できる形に整理します。

  • 5.1.1 データがどこから来てどこへ行くかを描く: この項では、データがどこから来てどこへ行くかを描くときの作成観点を確認します。

  • 5.1.2 作業順ではなくデータ変換を描く: この項では、作業順ではなくデータ変換を描くときの作成観点を確認します。

  • 5.1.3 業務説明をプログラム設計に近づける: この項では、業務説明をプログラム設計に近づけるという観点を具体的に確認します。

  • 5.1.4 機能分解の土台を作る: この項では、機能分解の土台を作るときの作成観点を確認します。

5.2 DFDの基本要素

この節では、DFDの基本要素を実務で判断できる形に整理します。

  • 5.2.1 外部実体: この項では、外部実体という観点を具体的に確認します。

  • 5.2.2 プロセス: この項では、プロセスという観点を具体的に確認します。

  • 5.2.3 データストア: この項では、データストアという観点を具体的に確認します。

  • 5.2.4 データフロー: この項では、データフローという観点を具体的に確認します。

  • 5.2.5 Excel実務に合わせた簡略表記: この項では、Excel実務に合わせた簡略表記という観点を具体的に確認します。

5.3 レベル0 DFDを作る

この節では、レベル0 DFDを作るための手順と観点を整理します。

  • 5.3.1 業務全体を一つの処理として見る: この項では、業務全体を一つの処理として見るという観点を具体的に確認します。

  • 5.3.2 主要な入力と出力を描く: この項では、主要な入力と出力を描くときの作成観点を確認します。

  • 5.3.3 外部システムと担当者を描く: この項では、外部システムと担当者を描くときの作成観点を確認します。

  • 5.3.4 データストアを描く: この項では、データストアを描くときの作成観点を確認します。

  • 5.3.5 レベル0で細部を書きすぎない: この項では、レベル0で細部を書きすぎないときの作成観点を確認します。

5.4 レベル1 DFDに詳細化する

この節では、レベル1 DFDに詳細化するを実務で判断できる形に整理します。

  • 5.4.1 入力取得: この項では、入力取得という観点を具体的に確認します。

  • 5.4.2 標準化: この項では、標準化という観点を具体的に確認します。

  • 5.4.3 検証: この項では、検証という観点を具体的に確認します。

  • 5.4.4 集計: この項では、集計という観点を具体的に確認します。

  • 5.4.5 出力生成: この項では、出力生成という観点を具体的に確認します。

  • 5.4.6 エラー出力: この項では、エラー出力という観点を具体的に確認します。

5.5 DFDと業務フローの違い

この節では、DFDと業務フローの違いを実務で判断できる形に整理します。

  • 5.5.1 業務フローは人と作業の流れを描く: この項では、業務フローは人と作業の流れを描くときの作成観点を確認します。

  • 5.5.2 DFDはデータの流れを描く: この項では、DFDはデータの流れを描くときの作成観点を確認します。

  • 5.5.3 業務フローだけでは関数分割できない: この項では、業務フローだけでは関数分割できないという観点を具体的に確認します。

  • 5.5.4 DFDだけでは現場運用は分からない: この項では、DFDだけでは現場運用は分からないという観点を具体的に確認します。

  • 5.5.5 両方を使い分ける: この項では、両方を使い分けるという観点を具体的に確認します。

5.6 DFDから処理候補を取り出す

この節では、DFDから処理候補を取り出すを実務で判断できる形に整理します。

  • 5.6.1 プロセスは機能候補である: この項では、プロセスは機能候補であるという観点を具体的に確認します。

  • 5.6.2 データフローは関数の入出力候補である: この項では、データフローは関数の入出力候補であるという観点を具体的に確認します。

  • 5.6.3 データストアはデータ設計の候補である: この項では、データストアはデータ設計の候補であるという観点を具体的に確認します。

  • 5.6.4 外部実体は責任境界である: この項では、外部実体は責任境界であるという観点を具体的に確認します。

  • 5.6.5 DFDを関数ツリーに変換する準備: この項では、DFDを関数ツリーに変換する準備という観点を具体的に確認します。

5.7 DFDでやってはいけないこと

この節では、DFDでやってはいけないことを避けるための判断材料を整理します。

  • 5.7.1 処理手順を細かく書きすぎる: この項では、処理手順を細かく書きすぎるときの作成観点を確認します。

  • 5.7.2 画面操作を書いてしまう: この項では、画面操作を書いてしまうときの作成観点を確認します。

  • 5.7.3 データ名が曖昧なままにする: この項では、データ名が曖昧なままにするという観点を具体的に確認します。

  • 5.7.4 例外系を後回しにする: この項では、例外系を後回しにするという観点を具体的に確認します。

  • 5.7.5 すべてを一枚に詰め込む: この項では、すべてを一枚に詰め込むという観点を具体的に確認します。

第6章 機能定義と機能一覧

この章は、図で見えた処理候補を機能として定義し、後工程へ渡す章です。

6.1 機能とは何か

この節では、機能とは何かを実務で判断できる形に整理します。

  • 6.1.1 機能はボタン名ではない: この項では、機能はボタン名ではないという観点を具体的に確認します。

  • 6.1.2 機能は画面操作ではない: この項では、機能は画面操作ではないときの作成観点を確認します。

  • 6.1.3 機能はデータを業務上意味のある形に変える処理である: この項では、機能はデータを業務上意味のある形に変える処理であるという観点を具体的に確認します。

  • 6.1.4 機能は入力・処理・出力で定義する: この項では、機能は入力・処理・出力で定義するするために必要な観点を確認します。

6.2 全体構成図上の機能

この節では、全体構成図上の機能を実務で判断できる形に整理します。

  • 6.2.1 登場物の間にある操作を見る: この項では、登場物の間にある操作を見るときの作成観点を確認します。

  • 6.2.2 人間作業と自動処理を分ける: この項では、人間作業と自動処理を分けるときの作成観点を確認します。

  • 6.2.3 マクロ化する操作を特定する: この項では、マクロ化する操作を特定するときの作成観点を確認します。

  • 6.2.4 外部システムとの受け渡しを機能として定義する: この項では、外部システムとの受け渡しを機能として定義するするために必要な観点を確認します。

6.3 DFD上の機能

この節では、DFD上の機能を実務で判断できる形に整理します。

  • 6.3.1 プロセスを機能候補として見る: この項では、プロセスを機能候補として見るという観点を具体的に確認します。

  • 6.3.2 変換前データと変換後データを明確にする: この項では、変換前データと変換後データを明確にするという観点を具体的に確認します。

  • 6.3.3 データストアを参照する機能: この項では、データストアを参照する機能という観点を具体的に確認します。

  • 6.3.4 出力を生成する機能: この項では、出力を生成する機能という観点を具体的に確認します。

  • 6.3.5 エラーを生成する機能: この項では、エラーを生成する機能という観点を具体的に確認します。

6.4 機能の粒度をそろえる

この節では、機能の粒度をそろえるを実務で判断できる形に整理します。

  • 6.4.1 大きすぎる機能: この項では、大きすぎる機能という観点を具体的に確認します。

  • 6.4.2 小さすぎる機能: この項では、小さすぎる機能という観点を具体的に確認します。

  • 6.4.3 上位機能と下位機能: この項では、上位機能と下位機能という観点を具体的に確認します。

  • 6.4.4 業務機能と内部処理機能: この項では、業務機能と内部処理機能という観点を具体的に確認します。

  • 6.4.5 機能階層を作る: この項では、機能階層を作るときの作成観点を確認します。

6.5 機能一覧の作り方

この節では、機能一覧の作り方ための手順と観点を整理します。

  • 6.5.1 機能ID: この項では、機能IDという観点を具体的に確認します。

  • 6.5.2 機能名: この項では、機能名という観点を具体的に確認します。

  • 6.5.3 目的: この項では、目的という観点を具体的に確認します。

  • 6.5.4 入力: この項では、入力という観点を具体的に確認します。

  • 6.5.5 出力: この項では、出力という観点を具体的に確認します。

  • 6.5.6 処理概要: この項では、処理概要という観点を具体的に確認します。

  • 6.5.7 利用技術候補: この項では、利用技術候補という観点を具体的に確認します。

  • 6.5.8 未決事項: この項では、未決事項という観点を具体的に確認します。

6.6 機能定義の失敗例

この節では、機能定義の失敗例を避けるための判断材料を整理します。

  • 6.6.1 「データ処理」のような曖昧な機能名: この項では、「データ処理」のような曖昧な機能名という観点を具体的に確認します。

  • 6.6.2 画面上のボタンをそのまま機能にする: この項では、画面上のボタンをそのまま機能にするという観点を具体的に確認します。

  • 6.6.3 入力と出力が分からない: この項では、入力と出力が分からないという観点を具体的に確認します。

  • 6.6.4 複数の責務が混ざっている: この項では、複数の責務が混ざっているという観点を具体的に確認します。

  • 6.6.5 業務上の意味が説明できない: この項では、業務上の意味が説明できないという観点を具体的に確認します。

6.7 機能定義から後工程へ進む

この節では、機能定義から後工程へ進むし、後工程で迷わない状態にします。

  • 6.7.1 データ設計へつなげる: この項では、データ設計へつなげるという観点を具体的に確認します。

  • 6.7.2 処理方式選択へつなげる: この項では、処理方式選択へつなげるという観点を具体的に確認します。

  • 6.7.3 関数分割へつなげる: この項では、関数分割へつなげるという観点を具体的に確認します。

  • 6.7.4 テスト設計へつなげる: この項では、テスト設計へつなげるという観点を具体的に確認します。

第7章 データ設計

この章は、マクロの品質を左右するデータ構造、項目、キー、中間データを扱います。

7.1 データ設計がマクロの品質を決める

この節では、データ設計がマクロの品質を決めるを実務で判断できる形に整理します。

  • 7.1.1 処理より先にデータを見る: この項では、処理より先にデータを見るという観点を具体的に確認します。

  • 7.1.2 セル番地をデータ構造にしない: この項では、セル番地をデータ構造にしないという観点を具体的に確認します。

  • 7.1.3 データの形が決まれば処理は決まりやすい: この項では、データの形が決まれば処理は決まりやすいという観点を具体的に確認します。

  • 7.1.4 保守できるマクロは中間データが明確である: この項では、保守できるマクロは中間データが明確であるという観点を具体的に確認します。

7.2 データの種類を分ける

この節では、データの種類を分けるを実務で判断できる形に整理します。

  • 7.2.1 入力データ: この項では、入力データという観点を具体的に確認します。

  • 7.2.2 Rawデータ: この項では、Rawデータという観点を具体的に確認します。

  • 7.2.3 標準化済みデータ: この項では、標準化済みデータという観点を具体的に確認します。

  • 7.2.4 検証済みデータ: この項では、検証済みデータという観点を具体的に確認します。

  • 7.2.5 集計対象データ: この項では、集計対象データという観点を具体的に確認します。

  • 7.2.6 出力データ: この項では、出力データという観点を具体的に確認します。

  • 7.2.7 エラーデータ: この項では、エラーデータという観点を具体的に確認します。

7.3 Excel実務におけるデータ構造

この節では、Excel実務におけるデータ構造を実務で判断できる形に整理します。

  • 7.3.1 シート: この項では、シートという観点を具体的に確認します。

  • 7.3.2 Excelテーブル: この項では、Excelテーブルという観点を具体的に確認します。

  • 7.3.3 セル範囲: この項では、セル範囲という観点を具体的に確認します。

  • 7.3.4 二次元配列: この項では、二次元配列という観点を具体的に確認します。

  • 7.3.5 Dictionary: この項では、Dictionaryという観点を具体的に確認します。

  • 7.3.6 Collection: この項では、Collectionという観点を具体的に確認します。

  • 7.3.7 ユーザー定義型: この項では、ユーザー定義型するために必要な観点を確認します。

  • 7.3.8 クラスモジュール: この項では、クラスモジュールという観点を具体的に確認します。

7.4 データ項目を定義する

この節では、データ項目を定義するし、後工程で迷わない状態にします。

  • 7.4.1 項目名: この項では、項目名という観点を具体的に確認します。

  • 7.4.2 型: この項では、型という観点を具体的に確認します。

  • 7.4.3 必須・任意: この項では、必須・任意という観点を具体的に確認します。

  • 7.4.4 桁数・形式: この項では、桁数・形式という観点を具体的に確認します。

  • 7.4.5 キー: この項では、キーという観点を具体的に確認します。

  • 7.4.6 コード値: この項では、コード値という観点を具体的に確認します。

  • 7.4.7 初期値: この項では、初期値という観点を具体的に確認します。

  • 7.4.8 変換ルール: この項では、変換ルールという観点を具体的に確認します。

7.5 マスタとトランザクション

この節では、マスタとトランザクションを実務で判断できる形に整理します。

  • 7.5.1 マスタとは何か: この項では、マスタとは何かの意味と範囲を確認します。

  • 7.5.2 トランザクションとは何か: この項では、トランザクションとは何かの意味と範囲を確認します。

  • 7.5.3 マスタ参照の設計: この項では、マスタ参照の設計という観点を具体的に確認します。

  • 7.5.4 キーの設計: この項では、キーの設計という観点を具体的に確認します。

  • 7.5.5 マスタ不一致時の扱い: この項では、マスタ不一致時の扱いという観点を具体的に確認します。

  • 7.5.6 Excelマスタの危険性: この項では、Excelマスタの危険性を避けるための注意点を確認します。

7.6 中間データを設計する

この節では、中間データを設計するを実務で判断できる形に整理します。

  • 7.6.1 中間データを作る理由: この項では、中間データを作る理由ときの作成観点を確認します。

  • 7.6.2 処理段階ごとにデータを分ける: この項では、処理段階ごとにデータを分けるという観点を具体的に確認します。

  • 7.6.3 配列で持つか、シートで持つか: この項では、配列で持つか、シートで持つかという観点を具体的に確認します。

  • 7.6.4 Dictionaryで集計するか、表で集計するか: この項では、Dictionaryで集計するか、表で集計するかという観点を具体的に確認します。

  • 7.6.5 中間データを確認可能にする: この項では、中間データを確認可能にするための確認観点を整理します。

7.7 データ設計書を書く

この節では、データ設計書を書くための手順と観点を整理します。

  • 7.7.1 データ一覧: この項では、データ一覧という観点を具体的に確認します。

  • 7.7.2 項目定義: この項では、項目定義するために必要な観点を確認します。

  • 7.7.3 キー定義: この項では、キー定義するために必要な観点を確認します。

  • 7.7.4 変換ルール: この項では、変換ルールという観点を具体的に確認します。

  • 7.7.5 チェックルール: この項では、チェックルールという観点を具体的に確認します。

  • 7.7.6 利用箇所: この項では、利用箇所という観点を具体的に確認します。

第8章 現代Excelにおける処理方式設計

この章は、VBA、Power Query、数式、人間確認のどれに処理を担当させるかを決める章です。

8.1 すべてをVBAで書かない

この節では、すべてをVBAで書かないための手順と観点を整理します。

  • 8.1.1 VBA万能主義の限界: この項では、VBA万能主義の限界という観点を具体的に確認します。

  • 8.1.2 Power Queryに任せるべき処理: この項では、Power Queryに任せるべき処理という観点を具体的に確認します。

  • 8.1.3 スピル数式に任せるべき処理: この項では、スピル数式に任せるべき処理という観点を具体的に確認します。

  • 8.1.4 LAMBDAに任せるべき処理: この項では、LAMBDAに任せるべき処理という観点を具体的に確認します。

  • 8.1.5 VBAに残すべき処理: この項では、VBAに残すべき処理という観点を具体的に確認します。

8.2 処理方式を決める基準

この節では、処理方式を決める基準を実務で判断できる形に整理します。

  • 8.2.1 再実行性: この項では、再実行性という観点を具体的に確認します。

  • 8.2.2 処理速度: この項では、処理速度という観点を具体的に確認します。

  • 8.2.3 保守性: この項では、保守性という観点を具体的に確認します。

  • 8.2.4 利用者の理解しやすさ: この項では、利用者の理解しやすさという観点を具体的に確認します。

  • 8.2.5 確認可能性: この項では、確認可能性ための確認観点を整理します。

  • 8.2.6 変更頻度: この項では、変更頻度という観点を具体的に確認します。

  • 8.2.7 エラー処理の必要性: この項では、エラー処理の必要性という観点を具体的に確認します。

8.3 VBAに向く処理

この節では、VBAに向く処理を実務で判断できる形に整理します。

  • 8.3.1 ファイル操作: この項では、ファイル操作ときの作成観点を確認します。

  • 8.3.2 複数ブック処理: この項では、複数ブック処理という観点を具体的に確認します。

  • 8.3.3 帳票出力: この項では、帳票出力という観点を具体的に確認します。

  • 8.3.4 ボタン実行と手続き制御: この項では、ボタン実行と手続き制御という観点を具体的に確認します。

  • 8.3.5 複雑な分岐と例外処理: この項では、複雑な分岐と例外処理という観点を具体的に確認します。

  • 8.3.6 ログ出力: この項では、ログ出力という観点を具体的に確認します。

  • 8.3.7 外部アプリケーション操作: この項では、外部アプリケーション操作ときの作成観点を確認します。

8.4 Power Queryに向く処理

この節では、Power Queryに向く処理を実務で判断できる形に整理します。

  • 8.4.1 取込処理: この項では、取込処理という観点を具体的に確認します。

  • 8.4.2 列の整形: この項では、列の整形という観点を具体的に確認します。

  • 8.4.3 型変換: この項では、型変換という観点を具体的に確認します。

  • 8.4.4 結合: この項では、結合という観点を具体的に確認します。

  • 8.4.5 ピボット・アンピボット: この項では、ピボット・アンピボットという観点を具体的に確認します。

  • 8.4.6 定型的な前処理: この項では、定型的な前処理という観点を具体的に確認します。

  • 8.4.7 更新可能なデータ加工: この項では、更新可能なデータ加工という観点を具体的に確認します。

8.5 スピル数式・LAMBDAに向く処理

この節では、スピル数式・LAMBDAに向く処理を実務で判断できる形に整理します。

  • 8.5.1 動的一覧: この項では、動的一覧という観点を具体的に確認します。

  • 8.5.2 抽出: この項では、抽出という観点を具体的に確認します。

  • 8.5.3 並べ替え: この項では、並べ替えという観点を具体的に確認します。

  • 8.5.4 ユニーク化: この項では、ユニーク化という観点を具体的に確認します。

  • 8.5.5 小規模な変換: この項では、小規模な変換という観点を具体的に確認します。

  • 8.5.6 再利用可能なシート関数化: この項では、再利用可能なシート関数化という観点を具体的に確認します。

  • 8.5.7 確認用・検算用の計算: この項では、確認用・検算用の計算ための確認観点を整理します。

8.6 人間がシートで確認する処理

この節では、人間がシートで確認する処理ための確認観点を整理します。

  • 8.6.1 完全自動化しない方がよい処理: この項では、完全自動化しない方がよい処理という観点を具体的に確認します。

  • 8.6.2 判断を残すべき処理: この項では、判断を残すべき処理を判断材料として整理します。

  • 8.6.3 確認表として見せる処理: この項では、確認表として見せる処理ための確認観点を整理します。

  • 8.6.4 手修正を許す場合の設計: この項では、手修正を許す場合の設計という観点を具体的に確認します。

  • 8.6.5 手修正を禁止する場合の設計: この項では、手修正を禁止する場合の設計という観点を具体的に確認します。

8.7 処理方式設計書を書く

この節では、処理方式設計書を書くための手順と観点を整理します。

  • 8.7.1 機能ごとの担当技術: この項では、機能ごとの担当技術という観点を具体的に確認します。

  • 8.7.2 VBA・Power Query・数式の責任分界点: この項では、VBA・Power Query・数式の責任分界点という観点を具体的に確認します。

  • 8.7.3 データ受け渡し方法: この項では、データ受け渡し方法という観点を具体的に確認します。

  • 8.7.4 更新手順: この項では、更新手順という観点を具体的に確認します。

  • 8.7.5 障害時の切り分け方法: この項では、障害時の切り分け方法という観点を具体的に確認します。

第9章 Power Query・スピル数式・LAMBDAの実務設計

この章は、Power Query、スピル数式、LAMBDAを構造化設計の部品として組み込む章です。

9.1 Power Queryを構造化設計に組み込む

この節では、Power Queryを構造化設計に組み込むを実務で判断できる形に整理します。

  • 9.1.1 Power Queryは前処理装置である: この項では、Power Queryは前処理装置であるという観点を具体的に確認します。

  • 9.1.2 取込元を安定させる: この項では、取込元を安定させるという観点を具体的に確認します。

  • 9.1.3 ステップ名を設計情報にする: この項では、ステップ名を設計情報にするという観点を具体的に確認します。

  • 9.1.4 列追加・列削除・型変換を明示する: この項では、列追加・列削除・型変換を明示するという観点を具体的に確認します。

  • 9.1.5 更新順序を管理する: この項では、更新順序を管理するという観点を具体的に確認します。

9.2 Power Queryの設計上の注意点

この節では、Power Queryの設計上の注意点を実務で判断できる形に整理します。

  • 9.2.1 処理がブラックボックス化しやすい: この項では、処理がブラックボックス化しやすいという観点を具体的に確認します。

  • 9.2.2 利用者が直せない可能性がある: この項では、利用者が直せない可能性があるという観点を具体的に確認します。

  • 9.2.3 外部ファイルパスに依存する: この項では、外部ファイルパスに依存するという観点を具体的に確認します。

  • 9.2.4 エラー行の扱いを設計する: この項では、エラー行の扱いを設計するという観点を具体的に確認します。

  • 9.2.5 VBAとの連携点を明確にする: この項では、VBAとの連携点を明確にするという観点を具体的に確認します。

9.3 スピル数式を構造化設計に組み込む

この節では、スピル数式を構造化設計に組み込むを実務で判断できる形に整理します。

  • 9.3.1 スピルは動的な中間表を作る技術である: この項では、スピルは動的な中間表を作る技術であるときの作成観点を確認します。

  • 9.3.2 FILTER、SORT、UNIQUE、CHOOSECOLSの位置づけ: この項では、FILTER、SORT、UNIQUE、CHOOSECOLSの位置づけという観点を具体的に確認します。

  • 9.3.3 数式による検算表: この項では、数式による検算表ための確認観点を整理します。

  • 9.3.4 数式による確認用ビュー: この項では、数式による確認用ビューための確認観点を整理します。

  • 9.3.5 スピル範囲をVBAで扱う場合の注意: この項では、スピル範囲をVBAで扱う場合の注意という観点を具体的に確認します。

9.4 LAMBDAを実務で使う

この節では、LAMBDAを実務で使うを実務で判断できる形に整理します。

  • 9.4.1 LAMBDAは小さな業務関数を作る技術である: この項では、LAMBDAは小さな業務関数を作る技術であるときの作成観点を確認します。

  • 9.4.2 名前付き関数として管理する: この項では、名前付き関数として管理するという観点を具体的に確認します。

  • 9.4.3 VBA関数とLAMBDA関数の使い分け: この項では、VBA関数とLAMBDA関数の使い分けという観点を具体的に確認します。

  • 9.4.4 複雑なLAMBDAを作りすぎない: この項では、複雑なLAMBDAを作りすぎないときの作成観点を確認します。

  • 9.4.5 業務ルールをシート側に残すかVBA側に持つか: この項では、業務ルールをシート側に残すかVBA側に持つかという観点を具体的に確認します。

9.5 VBA・Power Query・数式の連携パターン

この節では、VBA・Power Query・数式の連携パターンを実務で判断できる形に整理します。

  • 9.5.1 Power Queryで取込、VBAで出力: この項では、Power Queryで取込、VBAで出力という観点を具体的に確認します。

  • 9.5.2 Power Queryで整形、スピル数式で確認: この項では、Power Queryで整形、スピル数式で確認ための確認観点を整理します。

  • 9.5.3 VBAでファイル制御、Power Queryで変換: この項では、VBAでファイル制御、Power Queryで変換という観点を具体的に確認します。

  • 9.5.4 VBAで帳票化、数式で検算: この項では、VBAで帳票化、数式で検算ための確認観点を整理します。

  • 9.5.5 シートを中間インターフェースにする設計: この項では、シートを中間インターフェースにする設計という観点を具体的に確認します。

9.6 混在設計のリスク

この節では、混在設計のリスクを避けるための判断材料を整理します。

  • 9.6.1 どこで処理しているか分からなくなる: この項では、どこで処理しているか分からなくなるという観点を具体的に確認します。

  • 9.6.2 更新順序が壊れる: この項では、更新順序が壊れるという観点を具体的に確認します。

  • 9.6.3 数式破損に気づきにくい: この項では、数式破損に気づきにくいという観点を具体的に確認します。

  • 9.6.4 Power Queryのステップ変更に弱い: この項では、Power Queryのステップ変更に弱いという観点を具体的に確認します。

  • 9.6.5 VBAとシート処理の責任が混ざる: この項では、VBAとシート処理の責任が混ざるという観点を具体的に確認します。

第10章 関数分割と関数ツリー

この章は、DFDや機能定義から関数分割と関数ツリーへ進む章です。

10.1 関数分割の本質

この節では、関数分割の本質を実務で判断できる形に整理します。

  • 10.1.1 長いコードを短く切ることではない: この項では、長いコードを短く切ることではないという観点を具体的に確認します。

  • 10.1.2 データ変換の節目で分ける: この項では、データ変換の節目で分けるという観点を具体的に確認します。

  • 10.1.3 業務概念の節目で分ける: この項では、業務概念の節目で分けるという観点を具体的に確認します。

  • 10.1.4 副作用の境界で分ける: この項では、副作用の境界で分けるときの作成観点を確認します。

  • 10.1.5 詳細を隠すために分ける: この項では、詳細を隠すために分けるという観点を具体的に確認します。

10.2 DFDから関数ツリーへ

この節では、DFDから関数ツリーへを実務で判断できる形に整理します。

  • 10.2.1 DFDのプロセスを上位関数候補にする: この項では、DFDのプロセスを上位関数候補にするという観点を具体的に確認します。

  • 10.2.2 データフローを関数の入出力として見る: この項では、データフローを関数の入出力として見るという観点を具体的に確認します。

  • 10.2.3 データストア参照を関数仕様に反映する: この項では、データストア参照を関数仕様に反映するという観点を具体的に確認します。

  • 10.2.4 例外フローを別処理として設計する: この項では、例外フローを別処理として設計するという観点を具体的に確認します。

10.3 縦方向と横方向の分解

この節では、縦方向と横方向の分解を実務で判断できる形に整理します。

  • 10.3.1 縦方向はデータフローに沿った処理系列である: この項では、縦方向はデータフローに沿った処理系列であるという観点を具体的に確認します。

  • 10.3.2 横方向は各変換点の詳細化である: この項では、横方向は各変換点の詳細化であるという観点を具体的に確認します。

  • 10.3.3 縦と横を同じ階層に混ぜない: この項では、縦と横を同じ階層に混ぜないという観点を具体的に確認します。

  • 10.3.4 Mainには縦方向だけを書く: この項では、Mainには縦方向だけを書くときの作成観点を確認します。

  • 10.3.5 下位関数に横方向の詳細を閉じ込める: この項では、下位関数に横方向の詳細を閉じ込めるという観点を具体的に確認します。

10.4 Mainプロシージャの設計

この節では、Mainプロシージャの設計を実務で判断できる形に整理します。

  • 10.4.1 Mainは業務フローを書く場所である: この項では、Mainは業務フローを書く場所であるときの作成観点を確認します。

  • 10.4.2 入力、変換、検証、集計、出力の順に並べる: この項では、入力、変換、検証、集計、出力の順に並べるという観点を具体的に確認します。

  • 10.4.3 細かい判定をMainに書かない: この項では、細かい判定をMainに書かないときの作成観点を確認します。

  • 10.4.4 シート操作をMainに書きすぎない: この項では、シート操作をMainに書きすぎないときの作成観点を確認します。

  • 10.4.5 Mainを読めば業務全体が分かる状態にする: この項では、Mainを読めば業務全体が分かる状態にするという観点を具体的に確認します。

10.5 関数仕様書を書く

この節では、関数仕様書を書くための手順と観点を整理します。

  • 10.5.1 関数名: この項では、関数名という観点を具体的に確認します。

  • 10.5.2 責務: この項では、責務という観点を具体的に確認します。

  • 10.5.3 入力: この項では、入力という観点を具体的に確認します。

  • 10.5.4 出力: この項では、出力という観点を具体的に確認します。

  • 10.5.5 事前条件: この項では、事前条件という観点を具体的に確認します。

  • 10.5.6 事後条件: この項では、事後条件という観点を具体的に確認します。

  • 10.5.7 副作用: この項では、副作用ときの作成観点を確認します。

  • 10.5.8 エラー条件: この項では、エラー条件という観点を具体的に確認します。

  • 10.5.9 呼び出し元・呼び出し先: この項では、呼び出し元・呼び出し先という観点を具体的に確認します。

10.6 悪い関数分割

この節では、悪い関数分割を実務で判断できる形に整理します。

  • 10.6.1 処理順に何となく切る: この項では、処理順に何となく切るという観点を具体的に確認します。

  • 10.6.2 共通化しすぎる: この項では、共通化しすぎるという観点を具体的に確認します。

  • 10.6.3 関数名が曖昧である: この項では、関数名が曖昧であるという観点を具体的に確認します。

  • 10.6.4 一つの関数に複数責務がある: この項では、一つの関数に複数責務があるという観点を具体的に確認します。

  • 10.6.5 戻り値と副作用が混在している: この項では、戻り値と副作用が混在しているときの作成観点を確認します。

第11章 VBA実装の構造化技法

この章は、設計結果を保守しやすいVBAプロジェクト構造へ落とす章です。

11.1 VBAプロジェクトの構成

この節では、VBAプロジェクトの構成を実務で判断できる形に整理します。

  • 11.1.1 標準モジュール: この項では、標準モジュールという観点を具体的に確認します。

  • 11.1.2 シートモジュール: この項では、シートモジュールという観点を具体的に確認します。

  • 11.1.3 ThisWorkbook: この項では、ThisWorkbookという観点を具体的に確認します。

  • 11.1.4 クラスモジュール: この項では、クラスモジュールという観点を具体的に確認します。

  • 11.1.5 ユーザーフォーム: この項では、ユーザーフォームという観点を具体的に確認します。

  • 11.1.6 共通関数モジュール: この項では、共通関数モジュールという観点を具体的に確認します。

  • 11.1.7 定数・型定義モジュール: この項では、定数・型定義モジュールするために必要な観点を確認します。

11.2 シート操作を端に寄せる

この節では、シート操作を端に寄せるための手順と観点を整理します。

  • 11.2.1 シートは入力元または出力先である: この項では、シートは入力元または出力先であるという観点を具体的に確認します。

  • 11.2.2 Rangeを直接処理し続けない: この項では、Rangeを直接処理し続けないという観点を具体的に確認します。

  • 11.2.3 配列に読み込んで処理する: この項では、配列に読み込んで処理するという観点を具体的に確認します。

  • 11.2.4 出力直前にシートへ戻す: この項では、出力直前にシートへ戻すという観点を具体的に確認します。

  • 11.2.5 シート依存を局所化する: この項では、シート依存を局所化するという観点を具体的に確認します。

11.3 VBAのデータ構造を使い分ける

この節では、VBAのデータ構造を使い分けるを実務で判断できる形に整理します。

  • 11.3.1 二次元配列: この項では、二次元配列という観点を具体的に確認します。

  • 11.3.2 Dictionary: この項では、Dictionaryという観点を具体的に確認します。

  • 11.3.3 Collection: この項では、Collectionという観点を具体的に確認します。

  • 11.3.4 ユーザー定義型: この項では、ユーザー定義型するために必要な観点を確認します。

  • 11.3.5 クラスモジュール: この項では、クラスモジュールという観点を具体的に確認します。

  • 11.3.6 どれを使うかの判断基準: この項では、どれを使うかの判断基準を判断材料として整理します。

11.4 SubとFunctionの設計

この節では、SubとFunctionの設計を実務で判断できる形に整理します。

  • 11.4.1 Subは手続きを表す: この項では、Subは手続きを表すという観点を具体的に確認します。

  • 11.4.2 Functionは変換を表す: この項では、Functionは変換を表すという観点を具体的に確認します。

  • 11.4.3 戻り値で返すか、引数を書き換えるか: この項では、戻り値で返すか、引数を書き換えるかときの作成観点を確認します。

  • 11.4.4 ByValとByRef: この項では、ByValとByRefという観点を具体的に確認します。

  • 11.4.5 引数を増やしすぎない: この項では、引数を増やしすぎないという観点を具体的に確認します。

11.5 命名とコメント

この節では、命名とコメントを実務で判断できる形に整理します。

  • 11.5.1 関数名は責務を表す: この項では、関数名は責務を表すという観点を具体的に確認します。

  • 11.5.2 変数名はデータの意味を表す: この項では、変数名はデータの意味を表すという観点を具体的に確認します。

  • 11.5.3 処理内容ではなく意図を書く: この項では、処理内容ではなく意図を書くときの作成観点を確認します。

  • 11.5.4 コメントで仕様をごまかさない: この項では、コメントで仕様をごまかさないという観点を具体的に確認します。

  • 11.5.5 命名規則を設計書と合わせる: この項では、命名規則を設計書と合わせるときの作成観点を確認します。

11.6 エラー処理とログ

この節では、エラー処理とログを実務で判断できる形に整理します。

  • 11.6.1 業務エラーと実行時エラーを分ける: この項では、業務エラーと実行時エラーを分けるという観点を具体的に確認します。

  • 11.6.2 入力エラーを一覧化する: この項では、入力エラーを一覧化するという観点を具体的に確認します。

  • 11.6.3 処理停止すべきエラー: この項では、処理停止すべきエラーという観点を具体的に確認します。

  • 11.6.4 処理継続できるエラー: この項では、処理継続できるエラーという観点を具体的に確認します。

  • 11.6.5 ログに残す情報: この項では、ログに残す情報という観点を具体的に確認します。

  • 11.6.6 On Errorの使い方: この項では、On Errorの使い方という観点を具体的に確認します。

11.7 性能を考慮した実装

この節では、性能を考慮した実装を実務で判断できる形に整理します。

  • 11.7.1 セルアクセスを減らす: この項では、セルアクセスを減らすという観点を具体的に確認します。

  • 11.7.2 画面更新を止める: この項では、画面更新を止めるという観点を具体的に確認します。

  • 11.7.3 再計算を制御する: この項では、再計算を制御するという観点を具体的に確認します。

  • 11.7.4 Dictionaryで検索する: この項では、Dictionaryで検索するという観点を具体的に確認します。

  • 11.7.5 処理時間を測る: この項では、処理時間を測るという観点を具体的に確認します。

  • 11.7.6 高速化と可読性のバランス: この項では、高速化と可読性のバランスという観点を具体的に確認します。

第12章 テスト・検算・突合

この章は、業務マクロの正しさをテスト、検算、突合で説明する章です。

12.1 業務マクロにおけるテストの考え方

この節では、業務マクロにおけるテストの考え方を実務で判断できる形に整理します。

  • 12.1.1 動いたことと正しいことは違う: この項では、動いたことと正しいことは違うの意味と範囲を確認します。

  • 12.1.2 業務上の正しさを確認する: この項では、業務上の正しさを確認するための確認観点を整理します。

  • 12.1.3 テストは設計段階から考える: この項では、テストは設計段階から考えるという観点を具体的に確認します。

  • 12.1.4 お客様が確認できる形にする: この項では、お客様が確認できる形にするための確認観点を整理します。

12.2 テスト対象を分ける

この節では、テスト対象を分けるを実務で判断できる形に整理します。

  • 12.2.1 入力テスト: この項では、入力テストという観点を具体的に確認します。

  • 12.2.2 変換テスト: この項では、変換テストという観点を具体的に確認します。

  • 12.2.3 検証テスト: この項では、検証テストという観点を具体的に確認します。

  • 12.2.4 集計テスト: この項では、集計テストという観点を具体的に確認します。

  • 12.2.5 出力テスト: この項では、出力テストという観点を具体的に確認します。

  • 12.2.6 再実行テスト: この項では、再実行テストという観点を具体的に確認します。

12.3 テストデータを設計する

この節では、テストデータを設計するを実務で判断できる形に整理します。

  • 12.3.1 正常系データ: この項では、正常系データという観点を具体的に確認します。

  • 12.3.2 異常系データ: この項では、異常系データという観点を具体的に確認します。

  • 12.3.3 境界値: この項では、境界値という観点を具体的に確認します。

  • 12.3.4 空白・欠損: この項では、空白・欠損という観点を具体的に確認します。

  • 12.3.5 重複: この項では、重複という観点を具体的に確認します。

  • 12.3.6 マスタ不一致: この項では、マスタ不一致という観点を具体的に確認します。

  • 12.3.7 月末・年度末・締日: この項では、月末・年度末・締日という観点を具体的に確認します。

  • 12.3.8 大量データ: この項では、大量データという観点を具体的に確認します。

12.4 検算を設計する

この節では、検算を設計するための確認観点を整理します。

  • 12.4.1 件数検算: この項では、件数検算ための確認観点を整理します。

  • 12.4.2 金額検算: この項では、金額検算ための確認観点を整理します。

  • 12.4.3 キー単位検算: この項では、キー単位検算ための確認観点を整理します。

  • 12.4.4 入力と出力の突合: この項では、入力と出力の突合ための確認観点を整理します。

  • 12.4.5 中間データの確認: この項では、中間データの確認ための確認観点を整理します。

  • 12.4.6 検算表を作る: この項では、検算表を作るときの作成観点を確認します。

12.5 旧マクロ・旧業務との突合

この節では、旧マクロ・旧業務との突合ための確認観点を整理します。

  • 12.5.1 旧結果を正解とみなしてよいか: この項では、旧結果を正解とみなしてよいかという観点を具体的に確認します。

  • 12.5.2 差分一覧を作る: この項では、差分一覧を作るときの作成観点を確認します。

  • 12.5.3 差分原因を分類する: この項では、差分原因を分類するという観点を具体的に確認します。

  • 12.5.4 仕様差分とバグ差分を分ける: この項では、仕様差分とバグ差分を分けるという観点を具体的に確認します。

  • 12.5.5 並行稼働で確認する: この項では、並行稼働で確認するための確認観点を整理します。

12.6 受入テストと運用開始

この節では、受入テストと運用開始を実務で判断できる形に整理します。

  • 12.6.1 受入条件: この項では、受入条件という観点を具体的に確認します。

  • 12.6.2 操作手順書: この項では、操作手順書ときの作成観点を確認します。

  • 12.6.3 エラー時の対応: この項では、エラー時の対応という観点を具体的に確認します。

  • 12.6.4 初回運用の立会い: この項では、初回運用の立会いという観点を具体的に確認します。

  • 12.6.5 運用開始後の修正管理: この項では、運用開始後の修正管理という観点を具体的に確認します。

第13章 AI時代の学習法と総合事例

この章は、AIを実装支援として使いながら、人間が持つべき設計責任を整理する章です。

13.1 AI時代に人間が学ぶべきこと

この節では、AI時代に人間が学ぶべきことを実務で判断できる形に整理します。

  • 13.1.1 AIはコードを書くが、業務責任は持たない: この項では、AIはコードを書くが、業務責任は持たないときの作成観点を確認します。

  • 13.1.2 AIに丸投げできない理由: この項では、AIに丸投げできない理由という観点を具体的に確認します。

  • 13.1.3 人間が持つべき業務理解: この項では、人間が持つべき業務理解という観点を具体的に確認します。

  • 13.1.4 人間が持つべき設計判断: この項では、人間が持つべき設計判断を判断材料として整理します。

  • 13.1.5 人間が持つべきレビュー能力: この項では、人間が持つべきレビュー能力という観点を具体的に確認します。

13.2 AIに渡す情報

この節では、AIに渡す情報を実務で判断できる形に整理します。

  • 13.2.1 業務目的: この項では、業務目的という観点を具体的に確認します。

  • 13.2.2 入力データ: この項では、入力データという観点を具体的に確認します。

  • 13.2.3 出力データ: この項では、出力データという観点を具体的に確認します。

  • 13.2.4 機能一覧: この項では、機能一覧という観点を具体的に確認します。

  • 13.2.5 データ設計: この項では、データ設計という観点を具体的に確認します。

  • 13.2.6 制約条件: この項では、制約条件という観点を具体的に確認します。

  • 13.2.7 テスト条件: この項では、テスト条件という観点を具体的に確認します。

13.3 AIに任せやすい作業

この節では、AIに任せやすい作業ための手順と観点を整理します。

  • 13.3.1 関数分割案の作成: この項では、関数分割案の作成ときの作成観点を確認します。

  • 13.3.2 VBAコード草案の作成: この項では、VBAコード草案の作成ときの作成観点を確認します。

  • 13.3.3 Power Query手順の草案: この項では、Power Query手順の草案という観点を具体的に確認します。

  • 13.3.4 スピル数式の候補作成: この項では、スピル数式の候補作成ときの作成観点を確認します。

  • 13.3.5 テストケースの洗い出し: この項では、テストケースの洗い出しという観点を具体的に確認します。

  • 13.3.6 レビュー観点の作成: この項では、レビュー観点の作成ときの作成観点を確認します。

13.4 AIに任せると危険な作業

この節では、AIに任せると危険な作業を避けるための判断材料を整理します。

  • 13.4.1 業務要件の確定: この項では、業務要件の確定という観点を具体的に確認します。

  • 13.4.2 責任範囲の判断: この項では、責任範囲の判断を判断材料として整理します。

  • 13.4.3 お客様との合意: この項では、お客様との合意という観点を具体的に確認します。

  • 13.4.4 異常系の最終判断: この項では、異常系の最終判断を判断材料として整理します。

  • 13.4.5 金額・会計・契約に関わる処理の無確認実装: この項では、金額・会計・契約に関わる処理の無確認実装ための確認観点を整理します。

13.5 総合事例の前提

この節では、総合事例の前提を実務で判断できる形に整理します。

  • 13.5.1 売上データ集計・請求データ作成業務: この項では、売上データ集計・請求データ作成業務ときの作成観点を確認します。

  • 13.5.2 入力ファイル: この項では、入力ファイルという観点を具体的に確認します。

  • 13.5.3 マスタ: この項では、マスタという観点を具体的に確認します。

  • 13.5.4 出力帳票: この項では、出力帳票という観点を具体的に確認します。

  • 13.5.5 検算表: この項では、検算表ための確認観点を整理します。

  • 13.5.6 運用条件: この項では、運用条件という観点を具体的に確認します。

13.6 総合事例:ヒアリングから要件定義へ

この節では、総合事例:ヒアリングから要件定義へし、後工程で迷わない状態にします。

  • 13.6.1 ヒアリングメモ: この項では、ヒアリングメモという観点を具体的に確認します。

  • 13.6.2 業務目的: この項では、業務目的という観点を具体的に確認します。

  • 13.6.3 対象範囲: この項では、対象範囲という観点を具体的に確認します。

  • 13.6.4 機能要件: この項では、機能要件という観点を具体的に確認します。

  • 13.6.5 非機能要件: この項では、非機能要件という観点を具体的に確認します。

  • 13.6.6 未決事項: この項では、未決事項という観点を具体的に確認します。

13.7 総合事例:設計図を作る

この節では、総合事例:設計図を作るための手順と観点を整理します。

  • 13.7.1 全体構成図: この項では、全体構成図という観点を具体的に確認します。

  • 13.7.2 レベル0 DFD: この項では、レベル0 DFDという観点を具体的に確認します。

  • 13.7.3 レベル1 DFD: この項では、レベル1 DFDという観点を具体的に確認します。

  • 13.7.4 機能一覧: この項では、機能一覧という観点を具体的に確認します。

  • 13.7.5 データ設計書: この項では、データ設計書ときの作成観点を確認します。

  • 13.7.6 処理方式設計書: この項では、処理方式設計書ときの作成観点を確認します。

13.8 総合事例:実装設計へ進む

この節では、総合事例:実装設計へ進むを実務で判断できる形に整理します。

  • 13.8.1 VBA・Power Query・数式の役割分担: この項では、VBA・Power Query・数式の役割分担という観点を具体的に確認します。

  • 13.8.2 関数ツリー: この項では、関数ツリーという観点を具体的に確認します。

  • 13.8.3 関数仕様書: この項では、関数仕様書ときの作成観点を確認します。

  • 13.8.4 モジュール構成: この項では、モジュール構成という観点を具体的に確認します。

  • 13.8.5 エラー処理とログ: この項では、エラー処理とログという観点を具体的に確認します。

13.9 総合事例:テストと運用へ進む

この節では、総合事例:テストと運用へ進むを実務で判断できる形に整理します。

  • 13.9.1 テスト仕様書: この項では、テスト仕様書ときの作成観点を確認します。

  • 13.9.2 テストデータ: この項では、テストデータという観点を具体的に確認します。

  • 13.9.3 検算表: この項では、検算表ための確認観点を整理します。

  • 13.9.4 旧結果との突合: この項では、旧結果との突合ための確認観点を整理します。

  • 13.9.5 受入確認: この項では、受入確認ための確認観点を整理します。

  • 13.9.6 運用開始後の保守: この項では、運用開始後の保守という観点を具体的に確認します。

13.10 中級者が今後積むべき経験

この節では、中級者が今後積むべき経験を実務で判断できる形に整理します。

  • 13.10.1 既存マクロの読解: この項では、既存マクロの読解という観点を具体的に確認します。

  • 13.10.2 業務ヒアリングへの同行: この項では、業務ヒアリングへの同行という観点を具体的に確認します。

  • 13.10.3 DFD作成演習: この項では、DFD作成演習ときの作成観点を確認します。

  • 13.10.4 データ設計演習: この項では、データ設計演習という観点を具体的に確認します。

  • 13.10.5 関数分割レビュー: この項では、関数分割レビューという観点を具体的に確認します。

  • 13.10.6 テストデータ作成: この項では、テストデータ作成ときの作成観点を確認します。

  • 13.10.7 旧マクロ改修: この項では、旧マクロ改修という観点を具体的に確認します。

  • 13.10.8 小規模案件の一人設計: この項では、小規模案件の一人設計という観点を具体的に確認します。

付録A 業務ヒアリングシート

この付録は、業務ヒアリングシートを実務で使えるテンプレートとして用意する部分です。

  • A.1 基本情報: この項では、基本情報をテンプレート上の具体項目として確認します。

  • A.2 入力データ確認欄: この項では、入力データ確認欄をテンプレート上の具体項目として確認します。

  • A.3 出力物確認欄: この項では、出力物確認欄をテンプレート上の具体項目として確認します。

  • A.4 例外処理確認欄: この項では、例外処理確認欄をテンプレート上の具体項目として確認します。

  • A.5 未決事項確認欄: この項では、未決事項確認欄をテンプレート上の具体項目として確認します。

付録B 要件定義書テンプレート

この付録は、要件定義書テンプレートを実務で使えるテンプレートとして用意する部分です。

  • B.1 目的: この項では、目的をテンプレート上の具体項目として確認します。

  • B.2 対象範囲: この項では、対象範囲をテンプレート上の具体項目として確認します。

  • B.3 機能要件: この項では、機能要件をテンプレート上の具体項目として確認します。

  • B.4 非機能要件: この項では、非機能要件をテンプレート上の具体項目として確認します。

  • B.5 制約条件: この項では、制約条件をテンプレート上の具体項目として確認します。

  • B.6 未決事項: この項では、未決事項をテンプレート上の具体項目として確認します。

付録C 全体構成図テンプレート

この付録は、全体構成図テンプレートを実務で使えるテンプレートとして用意する部分です。

  • C.1 登場物一覧: この項では、登場物一覧をテンプレート上の具体項目として確認します。

  • C.2 人間作業: この項では、人間作業をテンプレート上の具体項目として確認します。

  • C.3 自動処理: この項では、自動処理をテンプレート上の具体項目として確認します。

  • C.4 外部システム: この項では、外部システムをテンプレート上の具体項目として確認します。

  • C.5 保存先: この項では、保存先をテンプレート上の具体項目として確認します。

付録D DFDテンプレート

この付録は、DFDテンプレートを実務で使えるテンプレートとして用意する部分です。

  • D.1 レベル0 DFD: この項では、レベル0 DFDをテンプレート上の具体項目として確認します。

  • D.2 レベル1 DFD: この項では、レベル1 DFDをテンプレート上の具体項目として確認します。

  • D.3 プロセス定義: この項では、プロセス定義をテンプレート上の具体項目として確認します。

  • D.4 データフロー定義: この項では、データフロー定義をテンプレート上の具体項目として確認します。

  • D.5 データストア定義: この項では、データストア定義をテンプレート上の具体項目として確認します。

付録E 機能一覧テンプレート

この付録は、機能一覧テンプレートを実務で使えるテンプレートとして用意する部分です。

  • E.1 機能ID: この項では、機能IDをテンプレート上の具体項目として確認します。

  • E.2 機能名: この項では、機能名をテンプレート上の具体項目として確認します。

  • E.3 目的: この項では、目的をテンプレート上の具体項目として確認します。

  • E.4 入力: この項では、入力をテンプレート上の具体項目として確認します。

  • E.5 出力: この項では、出力をテンプレート上の具体項目として確認します。

  • E.6 処理概要: この項では、処理概要をテンプレート上の具体項目として確認します。

  • E.7 担当技術: この項では、担当技術をテンプレート上の具体項目として確認します。

付録F データ設計書テンプレート

この付録は、データ設計書テンプレートを実務で使えるテンプレートとして用意する部分です。

  • F.1 データ一覧: この項では、データ一覧をテンプレート上の具体項目として確認します。

  • F.2 項目定義: この項では、項目定義をテンプレート上の具体項目として確認します。

  • F.3 キー定義: この項では、キー定義をテンプレート上の具体項目として確認します。

  • F.4 変換ルール: この項では、変換ルールをテンプレート上の具体項目として確認します。

  • F.5 チェックルール: この項では、チェックルールをテンプレート上の具体項目として確認します。

付録G 処理方式設計書テンプレート

この付録は、処理方式設計書テンプレートを実務で使えるテンプレートとして用意する部分です。

  • G.1 機能別担当技術: この項では、機能別担当技術をテンプレート上の具体項目として確認します。

  • G.2 VBA担当範囲: この項では、VBA担当範囲をテンプレート上の具体項目として確認します。

  • G.3 Power Query担当範囲: この項では、Power Query担当範囲をテンプレート上の具体項目として確認します。

  • G.4 数式担当範囲: この項では、数式担当範囲をテンプレート上の具体項目として確認します。

  • G.5 人間確認範囲: この項では、人間確認範囲をテンプレート上の具体項目として確認します。

付録H 関数仕様書テンプレート

この付録は、関数仕様書テンプレートを実務で使えるテンプレートとして用意する部分です。

  • H.1 関数名: この項では、関数名をテンプレート上の具体項目として確認します。

  • H.2 責務: この項では、責務をテンプレート上の具体項目として確認します。

  • H.3 入力: この項では、入力をテンプレート上の具体項目として確認します。

  • H.4 出力: この項では、出力をテンプレート上の具体項目として確認します。

  • H.5 事前条件: この項では、事前条件をテンプレート上の具体項目として確認します。

  • H.6 事後条件: この項では、事後条件をテンプレート上の具体項目として確認します。

  • H.7 副作用: この項では、副作用をテンプレート上の具体項目として確認します。

  • H.8 エラー条件: この項では、エラー条件をテンプレート上の具体項目として確認します。

付録I テスト仕様書テンプレート

この付録は、テスト仕様書テンプレートを実務で使えるテンプレートとして用意する部分です。

  • I.1 テスト観点: この項では、テスト観点をテンプレート上の具体項目として確認します。

  • I.2 テストデータ: この項では、テストデータをテンプレート上の具体項目として確認します。

  • I.3 期待結果: この項では、期待結果をテンプレート上の具体項目として確認します。

  • I.4 確認方法: この項では、確認方法をテンプレート上の具体項目として確認します。

  • I.5 結果記録: この項では、結果記録をテンプレート上の具体項目として確認します。

付録J AI支援プロンプト例

この付録は、AI支援プロンプト例を実務で使えるテンプレートとして用意する部分です。

  • J.1 業務ヒアリングメモ整理プロンプト: この項では、業務ヒアリングメモ整理プロンプトをテンプレート上の具体項目として確認します。

  • J.2 DFD作成支援プロンプト: この項では、DFD作成支援プロンプトをテンプレート上の具体項目として確認します。

  • J.3 機能一覧作成支援プロンプト: この項では、機能一覧作成支援プロンプトをテンプレート上の具体項目として確認します。

  • J.4 関数分割案作成プロンプト: この項では、関数分割案作成プロンプトをテンプレート上の具体項目として確認します。

  • J.5 VBAコードレビュー用プロンプト: この項では、VBAコードレビュー用プロンプトをテンプレート上の具体項目として確認します。

  • J.6 テストケース作成プロンプト: この項では、テストケース作成プロンプトをテンプレート上の具体項目として確認します。

<!-- ARTICLE101_FULL_TOC_END -->

出典・素材メモ

この記事は、次のMarkdown資料をもとに、公開記事向けに再構成したものです。

  • C:\Users\hoehoe\Downloads\vba_structured_design_toc_13chapters.md

  • 資料名: 現代VBA構造化設計 中級実務者向け 詳細目次案

  • 取得・確認日: 2026-06-11

元資料は詳細目次案であり、この記事では章立てをそのまま全文転載するのではなく、読者向けの学習ロードマップとして整理し直しました。

著作権・ライセンス

Copyright © 2026 LWP 山中 一弘

本資料は、出典を明記いただければ、商用・非商用を問わず、ご自由に複製・改変・再配布していただけます。なお、著作権表示は改変せず、そのまま記載してご利用くださいますようお願いいたします。