Upgrade to Pro — share decks privately, control downloads, hide ads and more …

201221 小さな工夫で効率化をもっと効率的に 佐野千紘さん

Avatar for comucal comucal PRO
December 21, 2020
1.1k

201221 小さな工夫で効率化をもっと効率的に 佐野千紘さん

Avatar for comucal

comucal PRO

December 21, 2020
Tweet

More Decks by comucal

Transcript

  1. 自己紹介 $ 名前 $ 佐野千紘 $ 出身 $ 山梨県 $

    趣味 $ 小説を書くこと $ 2020年最大のニュース $ 第19回えほん大賞(ストーリー部門) にて、作品『犀の背中』が優秀賞に 選ばれました!
  2. 生産性とは? 刈り取れる 成果 投入する 資源 - 売上・顧客満足・契約継続率 - 働きがい・仕事の楽しさ -

    よりよい世の中・夢・希望 - 人・時間・お金・設備 - 現状維持 - 効率化 - 効率化ツールの保守
  3. ① 処理の意味単位の明確化 処理の意味単位1-2:ヘッダー部分の取得 処理の意味単位1-1:ファイルのオープン 処理の意味単位2-1:ループの前準備 処理の意味単位2-2:データ行の転記 - 入力.xlsxを開く - 出力.xlsxを開く

    - 入力.xlsxのB2セルを変数Nameに入れる - 入力.xlsxのB8セルの値を変数Dateに入れる - 入力.xlsx C6セルの値を変数Teamに入れる - 入力.xlsxの最終行を取得する - 変数Countに0を入れる - 変数hasHenpinをFalseにする - 入力.xlsxの4行目から最終行までをループ - A列の値を変数Idに入れる - B列の値を変数Hinmeiに入れる - C列の値を変数Tankaに入れる - D列の値を変数Suryoに入れる - TankaとSuryoをかけて変数Totalに入れる - 変数Idを出力.xlsxのA列のTimes行目に入れる・・・
  4. ② データとプログラムの独立 まったく同じ処 理だけど、断然 わかりやすい! ⇒ こうするためには…… 入院日に値があれば -入院のラジオボタンを選択 -入院日をF列から入力

    -退院日に値があれば 退院日をG列から入力 -G列に値がなければ 退院日をB列から入力 通院日に値があれば -通院のラジオボタンを選択 -通院日をH列から入力
  5. ② データとプログラムの独立 ループ(Bot)の途中で使うExcelの値を ループ(Bot)の先頭で変数に入れておく メリット1 処理の途中でExcelの番地を 意識する必要がなくなり、 処理の意味だけに集中できる メリット2 Excelの番地が変わっても

    影響を極小化できる ここに郵便番号が入った場合 先頭で変数に入れておけば…… → Excelから変数に入れる部分 だけを修正すればOK! をやらないと…… → Excelの値を使っている箇所を 全部調査して修正 orz 保守 効率 ◎ 保守 効率 ×
  6. ③ 変数のネーミングルール 原則 a. 一見して変数の目的や中身が伝わるように b. 決まったルールに沿って整った形になるように c.「保守性」「可読性」を高める 具体的には? -

    大文字/小文字のルールを統一しておくといいよ! - 変数の先頭(プレフィックス)に型を明示しておくといいよ! ……などなど、諸説ありますが…… Prefix 型 例 b Boolean (真/偽) bHasAddress n Number (数値) nTotalAmount s String (文字列) sCustomerName ルールはあくまでも原則を実現するため のものなので、自分たちの組織に合った ものを、話し合って納得した上で取り入 れることの方がずっと大切! 目的 手段
  7. ③ 変数のネーミングルール ??? KokyakuJuusho という変数名はダサい…… ??? → ダサいかどうかよりも、 同じ会社のメンバーがすぐに理解できるかの方がずっと大事! CustomerAddress

    / KokyakuJuusho TotalAmount / GoukeiKingaku | ZeikomiGoukei | ZeinukiGoukei PatientName / KanjaMei → ローマ字の変数名を使う場合は、 あらかじめ表記ルールを統一すると◎ (検索性UP) じゅう → juu / ju / jyuu / jyu しょ → sho / syo
  8. ③ 変数のネーミングルール ☆ 個人的に気に入っているTips ☆ Prefix(変数の先頭)のネーミングルール Prefix 意味 詳細 i

    input(入力) Botが外部(親Bot、人の入力)から受け取る値。 処理の中では変更しない(変更する場合はvariableに渡してから)。 例)iFolderPath c constant(定数) アクセスするWebサイトのアドレスなど、 処理によって変更する必要のない値。当然、処理の中では変更しない。 例)cCompanyWebsiteAddress v variable(変数) 処理の中で中身が変わっていく値。 (ループのたびに変わる、条件によって変わる) 例)vGoukeiKingaku  ループのたびに値が増えていく o output(出力) Botが外部(親Bot、画面)に出力する値。 処理途中では上記i,v,cの変数を使い、 処理の最後に値を受け取る。 例)oGoukeiKingaku  ループ処理をすべて終えた 最終的な値だけが入る