Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
201221 小さな工夫で効率化をもっと効率的に 佐野千紘さん
Search
comucal
PRO
December 21, 2020
1.2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
201221 小さな工夫で効率化をもっと効率的に 佐野千紘さん
comucal
PRO
December 21, 2020
More Decks by comucal
See All by comucal
「駆動」って言葉、なんかカッコイイ_Mitz
comucal
PRO
0
210
2025年 コミュニティ×ビジネスのリアル_Mitz
comucal
PRO
0
230
コミュニティが仕事になった人間の意識|娯楽志向か情報志向か
comucal
PRO
0
92
生成AI情報2025.3.21
comucal
PRO
0
120
テック系コミュニティの参加者を徹底分析_株式会社コミュカル Mitz
comucal
PRO
0
190
AppSheet タスク管理アプリ 中級編
comucal
PRO
0
640
参加人数が多ければ正解?
comucal
PRO
0
400
交流会のコツ 自己紹介編~コミュ学~
comucal
PRO
0
210
コミュニティ運営勉強会OP
comucal
PRO
0
160
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
630
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
Building Applications with DynamoDB
mza
96
7.1k
Paper Plane
katiecoart
PRO
1
52k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
250
Building Adaptive Systems
keathley
44
3.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Tell your own story through comics
letsgokoyo
1
980
Scaling GitHub
holman
464
140k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
310
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
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があれば、 まねしてみて くだサイ