上手な依頼書の作り方

ここでは<キャンペーンⅠⅠ>対象となり、経費を節約できるような「依頼書」の作り方をご指南いたします。特に、ご依頼者の大半を占める、プロ・プログラマーではないExcel/VBA初心者レベルの方々を意識して説明いたします。
急ぎの方、この道のプロの方は拾い読みしてください。なお、要点は文字をカラーにしています。

◆ 仕様書 ◆

プロの世界では、一般的にコンピューター・プログラムを手掛ける前に「仕様書(SPEC、スペック)」と呼ばれる設計書を作成いたします。家屋や機械などの設計図面と同じ役割で、プロなら設計図面さえあれば目的物を作り出すことができます。しかし、図面にミスやあいまいさが残っていればプロでも作成できません。お手上げです。

◆当校への「依頼書」は、次の【1】、【2】、【3】の「仕様書」とお考えください。
【1】 あなたが作り上げようと考えておられる作品の全体像(概要)
【2】 【1】の中の依頼したい部分の詳細
【3】 【2】と接して連動している部分、【2】を作成する為に必要な関連事柄や専門的な予備知識、注意事項など です。

以降、「依頼書」を「仕様書」と表現しますが、あなたにとっての仕様書(=依頼書)作成の意義は、次の3つです。
(1) あなたの考えの整理
(2) 不明点のあぶり出し
(3) 策の練り直しの土俵

さあ、明確な「仕様書」を作成して<キャンペーンⅠⅠ>対象になりましょう。

◆ 作品完成を実現する為の 最重要事項 ◆

プログラミングの基礎を学んで間もない、実践経験が無いか薄いあなたは、テキストや講師を通じて学んではいても、分かっているつもりで分かっていない(だろう)ことが多々あることでしょう。
その中でも、プログラム作品作り、そして、その設計を行うには欠かせない最も重要な事柄についてご説明いたします。これから述べる3つの事柄を常に頭に思い描きながら仕様書を完成に導いてください。

(1) 「始まり」と「終わり」

いかに複雑なプログラムでも、必ず始まりと終わりがあり、その間は1本のレールのみで繋がっています。そこには、プログラムが行う処理(作業)と言う1両編成の列車があり、始まりから終わりに向かってのみ走るのです。

途中、本線の脇から伸びる支線もあるでしょうが、本線との交点が支線の始まりです。終着点からまた別の支線が伸びることがあっても、本線・支線それぞれに始まりと終わりがあります。そして、いかなる場合も全ての始まりは1つ、ユーザー(≒あなた)の実行指示だと言うことを覚えておいてください。終わりは1つとは限りませんが、全ての処理が終了する時、一区切り付く時が必ずあります。それもはっきりと意識して作品の全体像を明確にしてください。

例えば、タイマー機能を用いての自動化処理の場合も、自動的に実行を開始する時が始まりで、一区切りの処理終了が終わり…と共に、Excelファイルを開いた後の、ユーザーによる最初の実行指示(これが全体の始まり)などが必要だと言うことをお忘れなく。また、自動化処理を終わらせる為の、ユーザーによる終了指示の処理なども必要だと言うこともお忘れなく。

(2) 「イン」データと「アウト」データ

仕様書フォームは各社各様ですが、必ずあるのが「イン」と「処理」と「アウト」の3つの枠

工場をイメージしてください。原料(イン)が運び込まれ、それが加工(処理)され、製品(アウト)が出荷されます。
プログラムで行なわせる処理はデータの「加工」です。データを「加工」するのですから。データが無ければできません。原料が「イン」データ「加工」した結果が「アウト」データ。「イン」と「アウト」を結び付けるのが加工にあたる「処理」となります。

当り前…とお思いでしょうが、作品の処理を細分化して思案する段階で抜け落ちるのがこれ。「イン」データが無いままにあやふやな処理で結果を「アウト」しようとしたり、処理したはいいけど、それでお仕舞いで結果がどこにも残らない作りになったり…。
意外と多いのです。ご注意ください。

(3) 処理させる「順番」

プログラムの命令一つひとつが小さな「処理」です。(1)でお伝えしたようにレールは1本。列車は一方向にしか進みません。繰り返し命令とてぐるぐる回っている方向は一方向だけです。だから順序立てて整理すれば、大半は難しくなく、処理させる「順番」を決めることができるのです。しかし、たった一つの順番を間違えただけで、とんでもない結果となることも多々あります。

ご飯を食べる手順をイメージしてみてください。
①箸を右手で持つ。
②ご飯を盛った茶碗を左手で持つ。
③箸でご飯をつまむ。
④箸を口に運ぶ。
…①と②は逆でも問題ありませんが、③と④が逆だったら…。①より先に③をしたら…。………
これらの動作をロボットにプログラムすることを考えてみてください。
この例えなら笑えるかもしれませんが、医療機器や航空管制のプログラムなら、僅かなプログラム・ミスが命を奪う事態を引き起こしかねないのです。

処理させる「順番」は、一つひとつの命令の順番と言った微細なことから、複数の処理の固まり(工程)同士の前後関係まで、十分に気を付ける必要があります

◆ 全体像の明確化 : 概要仕様書 ◆

概要仕様は、概要としての説明です。
ご依頼の部分も含めての、あなたの作品全体を大枠としてイメージ的に把握するためのものです。

(1) 枝葉末節は省き、主要な事柄のみをまず10~100字程度の文章にまとめます。

(2) 次に、大枠としてのイメージをつかみ易くするための事柄を箇条書きにして補足説明します。同時に、関係する全てのシート・レイアウトを各名称と共に記すか、添付資料として用意します。その際、どこが全体の「イン」で、どこが全体「アウト」かを分かるようにします。

(3) サンプル・データなどを作成、添付します。具体的理解を促すには非常に効果的です。実行指示(始まり)直前の「イン」側のサンプル・データ、そして、処理終了(終わり)直後の「アウト」側のサンプル・データを、手作りになるでしょうが作成して添付します。その際、この「イン」データなら、この「アウト」データになる…ように辻褄(つじつま)を合わせます。場合によっては様々なパターンがあるでしょうが、まずは概要ですので主要な1つ2つのパターンでよいでしょう。
また、アニメーション制御やブラウザの制御であれば、表示イメージをキャプチャーした画像を張り付けたり、添付資料にするのも方法です。
要は、より短時間で全体像を把握できるように作り上げることです。
なお、イン&アウトのサンプル・データ作りの作業を通して、見逃していた問題点を発見したり、問題解決の考案にも役立ちます。手間は掛かるでしょうが、ぜひ行ってください。

(4) 次の「工程別仕様書」に登場する区切られた「工程」一覧と共に、それらの「順番」を記します

◆ 作業の細分化 : 工程別仕様書 ◆

(1) 区切り方

「工程」とは一区切りの処理を指します。
どこからどこまでを一区切りにするかは十人十色ですが、目安の1つは「イン」と「アウト」。ある処理の「アウト」データが次の処理の「イン」データとなるなら、そこで一区切りの工程にすべきです。そして、2つ目の目安は「順番」です。
例えば、

AファイルのBシートから数千セルの表形式データを読み込み、小計・中計・総計を求め、それら小・中・総計に表題や付属する事柄を加えて編集し、新規のCファイルのDシートに出力する。

このような処理を考えてみましょう。
VBA中級レベル以上の方ならイメージできるでしょうが、上記「~~~」の文中には、VBAを埋め込んだExcel本体のファイルが登場していません。これをEファイルと名付けましょう。Aファイルからデータを転記する先がEファイルのシートです。この処理を実現する方法は幾つかありますが、およそ一般的には次のようになるでしょう。

① Aファイルを開き、Bシート・データが揃っていることを確認する。
② Bシート・データを読み込みつつ、小計・中計・総計を求め、それらの合計結果などをEファイル・シートに出力する。
③ Eファイル・シート上で、表題や付属する事柄を加えて編集する。
④ Eファイル・シート・データを新規のCファイル・Dシートに転記し、出力する。

②と③はひとまとめにして「3工程」でもかまいませんが、もし②の結果がないと③の編集ができないのであれば、②と③は分けて、①、②、③、④の「4工程」とする方が、理解し易い(=読み手には分かり易い)です。
ここで、各々のインとアウトを整理してみましょう。

①〔イン〕  Bシート・データ
↓
①〔アウト〕 OK(全データが揃っている)かNG(不備あり)かの判定結果
       ↑これは必須です。忘れてはいけません。

★ NGの場合に備えて、次の処理も作らねばなりません。
⑤ エラーメッセージを表示して②以降はパスし、処理終了する。
②〔イン〕  Bシート・データ
↓
②〔アウト〕 Eファイル・シート
       ↑この詳細レイアウトが必要です。
③〔イン〕  Eファイル・シート・データ
 〔イン〕  表題データ、付属する事柄データなど
↓      ↑これらを忘れてはいけません。
↓
③〔アウト〕 Eファイル・シート
       ↑この詳細レイアウトが必要です。
④〔イン〕  Eファイル・シート・データ
↓
④〔アウト〕 Cファイル・Dシート
       ↑インをそのままアウトに転記するので、詳細レイアウトは不必要です。

どうですか…
・ ①~④を読まれた時に、⑤の処理を思い付かれましたか?
・ 表題や付属する事柄も、③より前に、用意しておかなければならないことに気が付かれましたか?

仕様書を作成することは、同時に整理することなのです。
すると、隠れた問題点があぶり出されます

◆なお、ファイルを開いたら、必ず閉じる(クローズ)する必要がありますが、その辺りは心得ております。仕様書…依頼書に記されていなくても問題ありません。ただ、続きの処理を自作するなどの為に開きっぱなしにしてほしいのであれば、その旨を記した方がよいです。判断に迷う時には依頼書送付前のメールにてお尋ねください。

(2) 一工程分の書き方

基本は、「イン」と「処理」と「アウト」を明確に切り分けて、記することです。
そして、「始まり」と「終わり」「処理の順番」=実行する順番を明確にしながら書き進めることです。

単純な転記など、ワンパターンの処理は、文章化するより図解する方が一目で分かり、見落としや間違いを見付け易くなります。
一方、条件によって処理が異なる場合や複雑に込み入っている処理などは、きめ細かい説明を記しておきます。

流れ図(フロー・チャート)」を用いるのも悪くはありませんが、込み入った処理の場合は適していません。
ややこしい判断や、その結果が多岐に分かれるような処理を整理するには、「デシジョン・テーブル」があります。ご興味のある方はクリック/タップしてご覧ください。

さて、工程別仕様書を書き上げる要点は既に述べましたが、ここで、再度、前項(1)の事例(4工程の場合)で、全体の流れ、そして、始まりと終わりを見てみましょう。

VBA起動ボタン… ①→◇→②→③→④ …④が〔全体の終わり〕
クリック       |
〔全体の始まり〕   ┗→⑤     …⑤も〔全体の終わり〕

図解すれば簡単で、一応のところ基本に則ってはいても、良作とは言えません。
意図的に複数の終わりを設ける、設けざるを得ない場合もありますが、このケースでは終わりも1つにして閉じる流れにする方が好都合でしょう。
次のように、始まりと終わりが1つずつ。これが一番シンプルで、メンテナンスやリフォームなどの時、理解し易く、ミス修正し難くなります。

①→◇→②→③→④→⑥ …⑥の終わりが〔全体の終わり〕
  |       ↑
  ┗→⑤─────┛ …①で始まり⑥で終わる。

◆⑥の処理や必要な繋ぎなど、この辺りは、当校で考慮いたします。①~⑤の各処理が明確であれば、当校で適切だろう流れと付随する処理を作成させて頂きます。

この項の最後に2つ追記。
非常に複雑な処理であれば、該当する工程1つの始まりと終わりの状態を、インとアウトのサンプル・データを作りましょう。ご自身の考えを整理できます。
記述は、「△△時は〇〇にある◎◎を□□して◇◇に出力」のような紋切り型表現で十分です。矢印(「→」など)を用いる方法もお勧めです(一般的に使われない記号は避けましょう)。そして、「~です」「~ます」調は返って煩わしいので避けた方がよいでしょう。

(3) VBAの起動(実行指示)方法

「工程別仕様書」ご指南は概ねここまでです。

ここでは、VBAの起動…すなわち「始まり」の仕方はワンパターンでないことを知って頂きたいために設けました。

VBA上級レベルの方ならご存知でしょうが、VBA起動方法はボタン・クリックだけではありません。
あるセルにデータを入力した、あるセルのデータが関数により変化した、あるシートを手前に表示した、Excelファイルを開いた…などを切っ掛けとして、特定のVBA処理を実行させることができます。

◆この説明を切っ掛けに、ご自身の作品の作りを変えることができるかも…、もっと楽に、効率的・効果的な処理にできるかも…と、思い始められた方は、依頼書送付前にメールでお尋ねください。

◆ 全体の見直し : 問題点の解決、仕様書修正、補記 ◆

細分化した細かい処理(作業)を考えていると、全体像がぼやけてしまいます。
葉っぱ一枚々々を見ていたら森全体が見えなくなるのと同じです。

工程別仕様書を作り終えたら、再度、全体を眺めてみましょう。
全ての細かな処理内容が頭に残っているうちに、あなたの作りたい作品全体の動きを脳内アニメーションにしてイメージしてください。インがどうならアウトはどうなるか…。あなた自身がプログラムになり切り、考えられる様々なパターンでシミュレーションしてください。
言わば、ご自分で考え出した作品の荒探しの段階です。とことんチャチャ入れてください。いかなるチャチャにも耐えられたら(つまり、思っているような結果になれば)合格です。一つも問題が見付からなければそれで完了です。
…が、「ん?待てよ…」の際は、頭の記憶に頼ってはいけません。「必ず」工程別仕様書とにらめっこしながら、問題のヶ所をあぶり出してください。良いですか…必ず工程別仕様書の記述と照らし合わせてください。問題があり、回避策を講じたら、当然ですが工程別仕様書の(、場合によっては概要仕様書も)記述を修正します。場合によっては概要仕様書も修正します。併せて、注意・留意点、勘違いし易い点などを箇条書きコメントにして末尾などに追記しておきます。

実際、この全体見直し段階で致命的欠陥をも発見する事があります。非常に大事な段階です。軽々しく扱わないように、十分に時間を割いて行ってください。

処理内容から目線を離して、もう一度、仕様書の書き方をチェックしましょう。
・ 「始まり」と「終わり」が明記されているか?
・ 「イン」データと「アウト」データが明記されているか?
・ 必要なサンプル・データは揃っているか?
・ 「順番」を示す番号等に間違いがないか?
・ 読者が迷い、勘違いするような表現、表記をしていないか?

◆ここでは<キャンペーンⅠⅠ>対象となるようにご指南させて頂きましたが、次作は100%自力でチャレンジして頂きたい。その際、ここで述べたことが役立つはずです。どうぞ、ご活用ください。

完全な仕様書が出来上がれば道半ば…
後は、行け行けドンドン、完成向けてまっしぐら!

続きには <所在> <ポリシー> <ご同意> を

お確かめ頂くのもよろしいかと…

さあ、お問合せしてみましょう。何事もチャレンジ ⇒ お問い合わせ

\(@+1)/ アットプラスワン  【先頭へ】

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