対象:プログラミングを通じて得られる能力について知りたい方 
効果:プログラミングがもたらす能力面での副産物について知ることができます。

 前回、プログラミングによって磨かれる能力に関し、システム作成の過程で研鑽した能力が、プログラミング以外でどう生かされるかについて、段取力をテーマに考えました。今回は、実際に活用しているシステムを作成した事例を元に、プログラミングが段取力向上にどう貢献するかについて考えたいと思います。

 題材とするのは、「酒肴料格納システム」です。ある組織において、職員が年末年始に出勤した場合に酒肴料として手当が支給されるのですが、このシステムは、その配分を給与明細データに格納するためのものです。これまでは、一人一人、市販の勤怠管理システムに手入力されていたのですが、少しの手続で自動格納できるようにしました。

 このシステムの作成過程を元に、前回お話しした段取りの各項目に当てはめてみます。
  ①ゴールを決める(目標、期限)
   ・データ処理作業を速く、負担少なく終わらせられるようにする
   ・酒肴料手当を勤怠管理システムに自動格納できるようにする
   ・分かりやすさと少ない操作手順を心掛ける
   ・作成期限は、1月分の給与データを作成する手前の時期まで
    (15日締め25日支払なら、1月15日まで作成)
  ②ゴールに到達するための道筋を明確にする
   ・なるべく少ない工程で作る
   ・なるべく既存のデータを活用する
   ・シンプルな操作パネルを作成する
   ・最小限の操作で行えるように設計する
   ・システムは、
     ○ データ入力シート
     ○ 勤怠管理システムのデータを貼り付けるシート
     ○ 操作するシート
    により構成する
   ・プログラム構造は、
     1.実行の確認メッセージ
     2.各シートの初期化
     3.データ検索
     4.データ格納
     5.終了条件
     6.エラーメッセージ
    により構成する
  ③その道筋をたどるための方法・目安時間を決定し実行する
   ・ツールはエクセルVBAと市販の勤怠管理システムを活用する
   ・勤怠管理システムのデータを活用する
    (個人コード、氏名などを活用)
   ・勤怠管理システムからデータをエクセル化し利用できるようにする
   ・システムは、エクセルシート3つにより作成
     具体的に、

     「酒肴料シート」
       項目:No.・個人コード・氏名・酒肴料データ
     「市販の勤怠管理システムのデータ」
       項目:個人コード・氏名・酒肴料等
       (勤怠管理システムからデータを取得しているため、不要な項目もある)
     「ボタンシート」
       ボタン:酒肴料データから勤怠システムへ格納
    により構成する
   ・プログラム構造は、
     1.実行の確認メッセージ
      「データを格納します。よろしいですか?」YesNo
     2.各シートの初期化
       酒肴料シート:酒肴料データ項目の着色を消す
       市販の勤怠管理システムのデータ:酒肴料項目の値をゼロにする、
       着色を消す
     3.データ検索
     4.データ格納
       酒肴料シートと、市販の勤怠管理システムのデータの個人コードが
       一致したら、酒肴料シートの酒肴料データ項目の値を市販の勤怠管理
       システムのデータの酒肴料項目に格納する。その際、格納したことを
       把握するため両項目に着色する。
     5.終了条件
       酒肴料シートの氏名項目が空白になった(全ての対象者が終了)時点で
       データ検索とデータ格納のループから出る
     6.エラーメッセージ
      「名前とコードが合致しない行があります。
       酒肴料データを修正し再度ボタンを押してください。」Yes
     により構成する
   ・期限から各工程の作成目安時間を逆算する
     作成期限から着手する時期を決め、各工程でどれ位の時間が必要か計算し、
     予定に従い制作を進める
 といった流れになります。

 以上のようなことから、プログラミングによるシステム作成の取り組みは、段取力、すなわち事を運ぶために順序づける能力の研鑽に繋がると考えます。