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
手離れの良いExcel VBA / non-personalized-excel-vba
Search
tunemage
June 28, 2023
1
86
手離れの良いExcel VBA / non-personalized-excel-vba
tunemage
June 28, 2023
Tweet
Share
More Decks by tunemage
See All by tunemage
IPO準備プロジェクトにエンジニアとして参加した話 / IPO preparation project
tunemage
1
94
『データモデリングでドメインを駆動する』で繋がる体験 / Drive domain with data modeling
tunemage
0
120
Vueによる自作簡易DSL / Simple DSL with Vue
tunemage
1
120
本を年100冊読むためにしている事 / my-way-to-read-100-books-a-year
tunemage
1
650
システム監査についての学びと今後の課題 / learning-about-system-auditing
tunemage
1
1.4k
システム内製の原則 / principles-of-in-house-system-development
tunemage
3
2.1k
業務システムの概要とその選択肢_公開用_.pdf/Overview of business system
tunemage
2
1.1k
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Gamification - CAS2011
davidbonilla
80
5k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Statistics for Hackers
jakevdp
796
220k
The Pragmatic Product Professional
lauravandoore
31
6.3k
The Language of Interfaces
destraynor
154
24k
4 Signs Your Business is Dying
shpigford
180
21k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Building Applications with DynamoDB
mza
90
6.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Transcript
手離れの良いExcel VBA @tunemage
自己紹介 • つねまげ(@tunemage) • 現職、SaaSベンダー勤務(SRE ->ユーザーサポート) • 主業務の傍らkintoneやPowerAutomateも触る • 今でも現役の社内SEと言い張ってる
• 前職、製造業企業に勤務( 情報システム) • 同僚の休職により一時「ひとり情シス」状態に • 主業務の合間に、経理部門や事業部門の依頼でExcel VBA開発 • 販売管理システム開発・IPOプロジェクト・ セキュリティ・AD管理・各種SaaS管理・PC等の 発注・購買etc • それ以前(SE/プログラマー) • ERP開発・ 教育システム開発・スマホアプリetc • フリーランスも少し
【Web版補足】 情シスの主業務の傍ら、経理や事業部門の依 頼でVBAを開発してきました。手離れの良い (属人化しにくい)VBAの設計についてお話 します。そこで学んだ個人的知見を共有しま す ※LT時は口頭で話した内容です
まず結論。手離れの良いVBAは(私見) • ユーザーの自由度は極力広く • ソースコードは極力薄く →ユーザーが能動的に判断できる設計
例1. VBA以外の方法も検討 • 色付けは条件付き書式に • 集計はピボットテーブルに • 単にセル参照だけで事足りる場合も • 基幹システムの機能でできないか?
→「マクロで」と依頼されても、先入観を持 たず仕様検討
例2. パラメータや変換表はシートに持つ →可変的な要素を見極めて、ユーザー自身が メンテしやすいように
例3. Excelシートは業務に寄せる • 例えば、原価計算なら原価計算表 • 勤怠業務なら勤怠表 • ユーザーが目検で検算できるように • 開発者もユーザー業務を理解して
→最悪、トラブル時は手計算に切り替えられ るように
例4. セルを直接更新しない • 元シートのセル値を直接更新しない • 処理の結果は別シート/別ファイルで出力 • 処理過程もシートに出力する →冪等性を考慮した設計で、ユーザーも開発 者も楽になる
まとめ • ユーザーの自由度を広く • ソースコードは極力薄く →これでユーザーとのコミュニケーションも スムーズに 皆さんのご意見もお聞かせください
【おまけ】おすすめ書籍 • パーフェクト Excel VBA(高橋 宣成 ) →Excel VBAのオブジェクトや文法について体系的に学ぶには本書が 最高
• 会計ソフトのすき間を埋める 経理のExcel仕事術(羽毛田 睦土 ) →経理業務のユースケースが学べる • いちばんやさしいPowerPoint VBAの教本(伊藤潔人 ) →数少ない、パワポVBAの書籍