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
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
4 Signs Your Business is Dying
shpigford
180
21k
Typedesign – Prime Four
hannesfritz
40
2.4k
Automating Front-end Workflow
addyosmani
1366
200k
Become a Pro
speakerdeck
PRO
25
5k
Building Applications with DynamoDB
mza
90
6.1k
Documentation Writing (for coders)
carmenintech
65
4.4k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
How STYLIGHT went responsive
nonsquared
95
5.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
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の書籍