Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
201221 小さな工夫で効率化をもっと効率的に 佐野千紘さん
comucal
PRO
December 21, 2020
0
590
201221 小さな工夫で効率化をもっと効率的に 佐野千紘さん
comucal
PRO
December 21, 2020
Tweet
Share
More Decks by comucal
See All by comucal
comucal
PRO
0
3
comucal
PRO
0
64
comucal
PRO
0
82
comucal
PRO
0
65
comucal
PRO
0
63
comucal
PRO
0
63
comucal
PRO
0
64
comucal
PRO
0
4.2k
comucal
PRO
0
160
Featured
See All Featured
edds
56
9.4k
productmarketing
6
720
lauravandoore
10
1.6k
colly
66
3k
sachag
446
36k
stephaniewalter
260
11k
chriscoyier
498
130k
wjessup
339
16k
jrom
116
7.2k
addyosmani
1346
190k
imathis
479
150k
philhawksworth
192
8.8k
Transcript
小さな工夫で 効率化をもっと 効率的に オートメーション・エニウェア・ジャパン 佐野千紘
自己紹介 $ 名前 $ 佐野千紘 $ 出身 $ 山梨県 $
趣味 $ 小説を書くこと $ 2020年最大のニュース $ 第19回えほん大賞(ストーリー部門) にて、作品『犀の背中』が優秀賞に 選ばれました!
生産性とは? 刈り取れる 成果 投入する 資源 - 売上・顧客満足・契約継続率 - 働きがい・仕事の楽しさ -
よりよい世の中・夢・希望 - 人・時間・お金・設備 - 現状維持 - 効率化 - 効率化ツールの保守
① 処理の意味単位の明確化 処理の意味単位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行目に入れる・・・
① 処理の意味単位の明確化 ただ処理を 並べて書くだけ よりも……
① 処理の意味単位の明確化 小さな箱に入れて 整理すれば スッキリ!
② データとプログラムの独立
② データとプログラムの独立 F列に値があれば -入院のラジオボタンを選択 -入院日をF列から入力 -G列に値があれば 退院日をG列から入力 -G列に値がなければ 退院日をB列から入力 H列に値があれば
-通院のラジオボタンを選択 -通院日をH列から入力
② データとプログラムの独立 F列って何が 入ってるん だっけ…… F列に値があれば -入院のラジオボタンを選択 -入院日をF列から入力 -G列に値があれば 退院日をG列から入力
-G列に値がなければ 退院日をB列から入力 H列に値があれば -通院のラジオボタンを選択 -通院日をH列から入力
② データとプログラムの独立 まったく同じ処 理だけど、断然 わかりやすい! ⇒ こうするためには…… 入院日に値があれば -入院のラジオボタンを選択 -入院日をF列から入力
-退院日に値があれば 退院日をG列から入力 -G列に値がなければ 退院日をB列から入力 通院日に値があれば -通院のラジオボタンを選択 -通院日をH列から入力
② データとプログラムの独立 ループ(Bot)の途中で使うExcelの値を ループ(Bot)の先頭で変数に入れておく
② データとプログラムの独立 ループ(Bot)の途中で使うExcelの値を ループ(Bot)の先頭で変数に入れておく メリット1 処理の途中でExcelの番地を 意識する必要がなくなり、 処理の意味だけに集中できる メリット2 Excelの番地が変わっても
影響を極小化できる ここに郵便番号が入った場合 先頭で変数に入れておけば…… → Excelから変数に入れる部分 だけを修正すればOK! をやらないと…… → Excelの値を使っている箇所を 全部調査して修正 orz 保守 効率 ◎ 保守 効率 ×
③ 変数のネーミングルール 原則 a. 一見して変数の目的や中身が伝わるように b. 決まったルールに沿って整った形になるように c.「保守性」「可読性」を高める 具体的には? -
大文字/小文字のルールを統一しておくといいよ! - 変数の先頭(プレフィックス)に型を明示しておくといいよ! ……などなど、諸説ありますが…… Prefix 型 例 b Boolean (真/偽) bHasAddress n Number (数値) nTotalAmount s String (文字列) sCustomerName ルールはあくまでも原則を実現するため のものなので、自分たちの組織に合った ものを、話し合って納得した上で取り入 れることの方がずっと大切! 目的 手段
③ 変数のネーミングルール ??? KokyakuJuusho という変数名はダサい…… ??? → ダサいかどうかよりも、 同じ会社のメンバーがすぐに理解できるかの方がずっと大事! CustomerAddress
/ KokyakuJuusho TotalAmount / GoukeiKingaku | ZeikomiGoukei | ZeinukiGoukei PatientName / KanjaMei → ローマ字の変数名を使う場合は、 あらかじめ表記ルールを統一すると◎ (検索性UP) じゅう → juu / ju / jyuu / jyu しょ → sho / syo
③ 変数のネーミングルール ☆ 個人的に気に入っているTips ☆ Prefix(変数の先頭)のネーミングルール Prefix 意味 詳細 i
input(入力) Botが外部(親Bot、人の入力)から受け取る値。 処理の中では変更しない(変更する場合はvariableに渡してから)。 例)iFolderPath c constant(定数) アクセスするWebサイトのアドレスなど、 処理によって変更する必要のない値。当然、処理の中では変更しない。 例)cCompanyWebsiteAddress v variable(変数) 処理の中で中身が変わっていく値。 (ループのたびに変わる、条件によって変わる) 例)vGoukeiKingaku ループのたびに値が増えていく o output(出力) Botが外部(親Bot、画面)に出力する値。 処理途中では上記i,v,cの変数を使い、 処理の最後に値を受け取る。 例)oGoukeiKingaku ループ処理をすべて終えた 最終的な値だけが入る
Thank you 使えそうな Tipsがあれば、 まねしてみて くだサイ