Slide 1

Slide 1 text

手離れの良いExcel VBA @tunemage

Slide 2

Slide 2 text

自己紹介 • つねまげ(@tunemage) • 現職、SaaSベンダー勤務(SRE ->ユーザーサポート) • 主業務の傍らkintoneやPowerAutomateも触る • 今でも現役の社内SEと言い張ってる • 前職、製造業企業に勤務( 情報システム) • 同僚の休職により一時「ひとり情シス」状態に • 主業務の合間に、経理部門や事業部門の依頼でExcel VBA開発 • 販売管理システム開発・IPOプロジェクト・ セキュリティ・AD管理・各種SaaS管理・PC等の 発注・購買etc • それ以前(SE/プログラマー) • ERP開発・ 教育システム開発・スマホアプリetc • フリーランスも少し

Slide 3

Slide 3 text

【Web版補足】 情シスの主業務の傍ら、経理や事業部門の依 頼でVBAを開発してきました。手離れの良い (属人化しにくい)VBAの設計についてお話 します。そこで学んだ個人的知見を共有しま す ※LT時は口頭で話した内容です

Slide 4

Slide 4 text

まず結論。手離れの良いVBAは(私見) • ユーザーの自由度は極力広く • ソースコードは極力薄く →ユーザーが能動的に判断できる設計

Slide 5

Slide 5 text

例1. VBA以外の方法も検討 • 色付けは条件付き書式に • 集計はピボットテーブルに • 単にセル参照だけで事足りる場合も • 基幹システムの機能でできないか? →「マクロで」と依頼されても、先入観を持 たず仕様検討

Slide 6

Slide 6 text

例2. パラメータや変換表はシートに持つ →可変的な要素を見極めて、ユーザー自身が メンテしやすいように

Slide 7

Slide 7 text

例3. Excelシートは業務に寄せる • 例えば、原価計算なら原価計算表 • 勤怠業務なら勤怠表 • ユーザーが目検で検算できるように • 開発者もユーザー業務を理解して →最悪、トラブル時は手計算に切り替えられ るように

Slide 8

Slide 8 text

例4. セルを直接更新しない • 元シートのセル値を直接更新しない • 処理の結果は別シート/別ファイルで出力 • 処理過程もシートに出力する →冪等性を考慮した設計で、ユーザーも開発 者も楽になる

Slide 9

Slide 9 text

まとめ • ユーザーの自由度を広く • ソースコードは極力薄く →これでユーザーとのコミュニケーションも スムーズに 皆さんのご意見もお聞かせください

Slide 10

Slide 10 text

【おまけ】おすすめ書籍 • パーフェクト Excel VBA(高橋 宣成 ) →Excel VBAのオブジェクトや文法について体系的に学ぶには本書が 最高 • 会計ソフトのすき間を埋める 経理のExcel仕事術(羽毛田 睦土 ) →経理業務のユースケースが学べる • いちばんやさしいPowerPoint VBAの教本(伊藤潔人 ) →数少ない、パワポVBAの書籍