SlideShare a Scribd company logo
『運用屋さんのためのVBA入門』
∼ 運用方法論 運用工程設計・自動化概論 ∼
波田野 裕一
(日本UNIXユーザ会)
Shinagawa Seaside kara 2eki-me-de Meeting
2012-08-31
運用現場の諸問題
1. 高負荷
2. 属人的
3. 見えぬ費用対効果
ブラックボックス化
低付加価値化
業務が複雑化
「費用」は一定で「効果」は経年劣化する
「費用対効果」は勝手に低減していく
現場では制御不能状態
制御不能状態を加速する
運用でカバー
運用でカバー運用でカバー運用でカバー
問題解決へ
「問題を根性で解決するのは馬鹿です。
問題をエンジニアリングで解決するのが
エンジニアの仕事です」
by Yoshiori
運用を「工程」として捉える
基本
設計
Step1
運用作業を「工程」として捉える
開
始
機能
設計
Step2
詳細
設計
Step3
コーディング
Step4
テスト
Step5
完
成
サービス
工程
Step1
開
始
サービス
工程
Step2
サービス
工程
Step3
サービス
工程
Step4
サービス
工程
Step5
提
供
「前の工程の成果」を「後の工程が加工する」という点において!
プログラム開発と運用の工程は似ている
前処理inbound 本作業 後処理 outbound
「パイプでつないでいる」と考えれば極めて「UNIX的」
サービス工程(運用プロセス)のQCD
運用プロセス
(サービス工程)
D
デ
リ
バ
リ
C
コス
ト
tool
人力定常業務	

費用勘定
(人件費)
自動定常業務	

資産勘定
(減価償却)
Q サービス品質
Interface/API
inbound
から
outbound
!
(時間)
?
前提: 「運用」とはサービスデリバリである。
時間という
物性
お金という
物性
顧客満足度
という「?」
OOA的運用プロセス (仮説)
運用プロセス	

(サービス工程)
Interface/API
前提: 「運用」とはサービスデリバリである。
inbound
outbound
作業 (処理)
Queue (チケット)
datamethod
処理内容自体
は外部から隠 化
(カプセル化)
外部とのメッセージ
の定型化
外部とのメッセージ
の定型化
類似業務の統合に
よる(疑似)多態化
標準業務(クラス)から
類似派生業務への継承
サービス運用全体の流れ
inbound チケット outbound の繰り返し
各組織
運用プロセス = サービス工程
inbound
outbound
作業 (処理)
D
デ
リ
バ
リ
C
コス
ト
tool
Q サービス品質
Interface/API
Queue (チケット)
datamethod
工
程
設
計
運用を「エンジニアリング」で問
題解決&改善していく
運用をエンジニアリングする
作業の手順化
手順の抽象化
手順の自動化
とにかく手順を書
いてみる
レベル3: 脱属人化
レベル2: 客観化
レベル1: 整理
類型化された
各工程モデルを
コード化する
「書く」という作業により、
主観的に「整理」されていく
「抽象化」することにより、業務に詳しくない第三者
でも概要の理解が容易となり、「客観化」されていく
「自動化」により作業ロジックが明確になり、時
と空間を超えて「業務仕様」が共有されていく
工程に分割し各
工程を類型化して
みる
運用をエンジニアリングする
作業の手順化
手順の抽象化
手順の自動化
とにかく手順を書
いてみる
工程に分割し各
工程を類型化して
みる
類型化された
各工程モデルを
コード化する
プログラミング言語
レベル3: 脱属人化
レベル2: 客観化
レベル1: 整理
+ actdiag
+ actdiag
運用をエンジニアリングする
プログラミング言語
VBA2012年初までずーっと避けてきたのですが、諸般の事情により最近VBAに手を染めています。
実際さわってみると、運用現場の改善に大きく貢献しそうなポイントが見えてきたので、運用業務にVBAをどう活かすかについてここ
にまとめてみたいと思います。
このネタの対象者
‣ プログラミングの基礎知識は持っている。
‣ 業務でWindows/Office利用の比率が高い。
‣ 提出書類の多くが、PowerPoint/Excel だ。
Out of Scope
• 業務におけるマクロ利用が禁止されている人。(ごめんなさい)
• PowerPoint/Excelでのレポートを作らない人。(Shell Scriptがいいと思われ)
• 自分達でサーバ/クラウドリソースの確保および利用が自由にできる現場。
(Office以外で実現した方が幸せかと:-)
• .NET や VB や PowerShell でWindowsの処理を何でも書ける&引き継げる相手
が周囲にいる人。(VBAよりたぶん楽です)
Let'sVBA
なぜVBAか?
1. Windows環境であれば、たいていExcel入っている。
(一般の人が使える唯一?のインタプリタ)
2. Mac でも動く。
(Office for Mac 2010)
3. ユーザが多い。
引き継ぎ相手がいる可能性が高くなる。
VBAのメリット
• 普及
◦ MS Office の普及率が高く、たいていの運用現場で利用されている。
◦ MS Office がインストールされていれば、開発/実行環境は含まれている。
◦ Windows系の運用現場では引き継ぎがしやすい。受け入れられやすい。
• 集計・分析の自動化 (Excel)
• Web操作の自動化 (Excel & IE)
◦ JavaScript の知識が無くても DOMを利用したWeb操作の自動化が容易に実現できる。(IEモジュール利用:
Windowsのみ)
• レポート作成の自動化 (Execl & PowerPoint)
◦ PowerPoint での定期定型レポート提出について自動化がしやすい。
• メール受信トリガーによる自動作業 (Outlook & Excel -> PowerPoint & IE)
◦ 手でやらなくても良い作業を簡単に自動化できる。
• 作業トリガーによるメール自動送信 (Excel -> PowerPoint + IE -> Outlook)
◦ 手でやらなくても良い作業を簡単に自動化できる。
• Webに情報が豊富にあるため、コーディング時の参考にしやすい。
• 媒体がファイルであるため、修正や機能強化が容易にできる。
VBAのデメリット
• ソースコードがバイナリ内部に存在し、バージョン管理が難しい。(回避可能)
• ソースコードがバイナリ内部に存在し、ドキュメントからの参照引用が難しい。(回避可能)
• モジュール共有と保守の同期が難しい。(回避可能)
• 好きなエディタでソースコード編集ができない。(回避可能)
• 正規表現が利用できない (Windowsの場合は外部ライブラリにより利用可能)
• バージョンが変わると動かなくなることがある。
• 媒体がファイルであるため、複数存在する場合に、どのファイルが真正のファイルかわからなくなってしまう。更
に更新が分岐しやすい。
• 媒体がファイルであるため、置き場に永続性がなく、失なわれやすい。
• テスト駆動開発に関する知見がほとんどみあたらない。
救世主 登場!!
拡張してみました!!
' 1. 手動リロード関数(reloadModule)を追加	

' 2. Mac版Office でも動作するようにした。 (backslash の扱いが安定しないので chr(92)で指定)	

' 3. ライブラリリストについて、 ../ を使った相対指定(例: ../common/hoge.bas)への対応を追加	

' 4. ライブラリリストについて、パス区切りなしの指定(例: hoge.bas)への対応を追加	

' 5. ライブラリリストについて、絶対指定("C:" & chr(92), chr(92) & chr(92) & "server" & chr(92), /hoge, :hoge)への対応を追加	

' 6. ライブラリリストで使うパス区切り文字について、Windowns(chr(92))/Mac(:)/UNIX(/) のどれを使っても良いように
した。	

' 7. ライブラリリストの改行コードが Cr(Mac) でも CrLf(Windows) でも良いようにした。	

' 8. 定数 ENABLE_WORKBOOK_OPEN の値でファイルオープン時の挙動をON/OFFできるようにした	

' 9. このソース自体をexportする関数(exportThisWorkbook)を作成した。	

' 10. このExcelファイル自体のUNITテスト用関数を追加してみた。(試験的)
http://rsh.csh.sh/tmp/excel-text-template.tar.gz
VBAのデメリット(再)
• ソースコードがバイナリ内部に存在し、バージョン管理が難しい。(回避可能)
• ソースコードがバイナリ内部に存在し、ドキュメントからの参照引用が難しい。(回避可能)
• モジュール共有と保守の同期が難しい。(回避可能)
• 好きなエディタでソースコード編集ができない。(回避可能)
• 正規表現が利用できない (Windowsの場合は外部ライブラリにより利用可能)
• バージョンが変わると動かなくなることがある。
• 媒体がファイルであるため、複数存在する場合に、どのファイルが真正のファイルかわからなくなってしまう。更
に更新が分岐しやすい。
• 媒体がファイルであるため、置き場に永続性がなく、失なわれやすい。
• テスト駆動開発に関する知見がほとんどみあたらない。
VBA利用における視点
‣ 視点1. 業務プロセス分析/自動化の1ツールと考える
‣ 視点2. 暫定的かつ気軽な自動化ツールと考える
‣ 視点3. 肥大化させない。(管理不能になる案件多数)
To Be Continue
VBA
Let's enjoy

More Related Content

PDF
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
PDF
2015-03-27 ザ・運用 ~ 運用とは何か、運用とはどのようであるべきか
PDF
2014-01-28 Operation in the future
PDF
2015-10-31 クラウドネイティヴ時代の運用を考える 〜 ドキュメント駆動運用へ
PDF
運用現場の過去、現在、未来
PDF
運用ドキュメントの構造化(案)
PDF
2014-12-17 #ssmjp 運用現場における"品質"とは
PDF
「運用改善」を考える 〜「自動化」を考える前に
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
2015-03-27 ザ・運用 ~ 運用とは何か、運用とはどのようであるべきか
2014-01-28 Operation in the future
2015-10-31 クラウドネイティヴ時代の運用を考える 〜 ドキュメント駆動運用へ
運用現場の過去、現在、未来
運用ドキュメントの構造化(案)
2014-12-17 #ssmjp 運用現場における"品質"とは
「運用改善」を考える 〜「自動化」を考える前に

What's hot (20)

PPT
運用設計の必要性と5年後のIT部門の姿について
PDF
20110827 restudy-pyconjp2011
PDF
企業システムにアジャイルは必要か
PPTX
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
PDF
GP4エンジニアリング・ソリューションのご紹介
PDF
JaSST'12 Kansai
PDF
システム運用 (インフラ編)
PDF
5分で分かるアジャイルムーブメントの歴史 拡大版
PDF
リーン開発の本質 公開用
PDF
Portfolio for JIRA で"全体計画にコミット"し続けるべし
PDF
Red Hat の日本でできるグローバルな働き方
PDF
エンタープライズアジャイル内製プロジェクトを立ち上げる前に考慮すべき3つのこと
PDF
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
PDF
XP祭り2014「アジャイルを手放して得られたこと」
PPTX
製造業向け量子コンピュータ時代のDXセミナー_生産計画最適化_20220323.pptx
PDF
ソフトウェアレビュー品質向上の7つのポイント ver.3
PDF
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan
PDF
なぜアジャイルなのですか?改めて考察するウォーターフォールとの違い
PDF
チケット駆動で加速する顧客と協業するプロジェクトマネジメント
PDF
[Red Hat Forum 2017] Ansible Towerの実践!!エンタープライズのInfrastructure as Codeの現在(イマ)
運用設計の必要性と5年後のIT部門の姿について
20110827 restudy-pyconjp2011
企業システムにアジャイルは必要か
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
GP4エンジニアリング・ソリューションのご紹介
JaSST'12 Kansai
システム運用 (インフラ編)
5分で分かるアジャイルムーブメントの歴史 拡大版
リーン開発の本質 公開用
Portfolio for JIRA で"全体計画にコミット"し続けるべし
Red Hat の日本でできるグローバルな働き方
エンタープライズアジャイル内製プロジェクトを立ち上げる前に考慮すべき3つのこと
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
XP祭り2014「アジャイルを手放して得られたこと」
製造業向け量子コンピュータ時代のDXセミナー_生産計画最適化_20220323.pptx
ソフトウェアレビュー品質向上の7つのポイント ver.3
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan
なぜアジャイルなのですか?改めて考察するウォーターフォールとの違い
チケット駆動で加速する顧客と協業するプロジェクトマネジメント
[Red Hat Forum 2017] Ansible Towerの実践!!エンタープライズのInfrastructure as Codeの現在(イマ)
Ad

Viewers also liked (14)

PDF
運用型広告市場の動向と自動化&効率化の必要性
PDF
2014-07-26 jawsug-chiba ドキュメントを書こう! 運用自動化時代のドキュメンテーション
PPTX
業務効率化のためのエクセルのアイデア 20151112
PPTX
thinkLA AdU Grad: RTB/Programmatic - Advertising Automation 101
PDF
JAWS-UG CLI #07 VPC
PDF
2015-09-01 クラウド時代の運用エンジニアは何が変わるのか
PDF
運用ドキュメントの分類と構造化
PDF
賢くツールを使って脱人海戦術駆動テスト
PPTX
July Tech Festa 2014発表資料
PPT
Excelマクロであなたも仕事の達人に!
PDF
AWSCLI AutoScaling
PDF
EXCELで効率的にシュミレーションを作る方法:EXCEL道場2
PDF
API Gateway / AWS CLI
PDF
Excelのどうでもよいtipsの紹介
運用型広告市場の動向と自動化&効率化の必要性
2014-07-26 jawsug-chiba ドキュメントを書こう! 運用自動化時代のドキュメンテーション
業務効率化のためのエクセルのアイデア 20151112
thinkLA AdU Grad: RTB/Programmatic - Advertising Automation 101
JAWS-UG CLI #07 VPC
2015-09-01 クラウド時代の運用エンジニアは何が変わるのか
運用ドキュメントの分類と構造化
賢くツールを使って脱人海戦術駆動テスト
July Tech Festa 2014発表資料
Excelマクロであなたも仕事の達人に!
AWSCLI AutoScaling
EXCELで効率的にシュミレーションを作る方法:EXCEL道場2
API Gateway / AWS CLI
Excelのどうでもよいtipsの紹介
Ad

Similar to 『運用屋さんのためのVBA入門』 ~ 運用方法論 運用工程設計・自動化概論 〜 (20)

PPTX
X dev 20121106
PPTX
Iccv2019 参加報告
PDF
VentureCafe_第2回:SIerでのキャリアパスを考える_ござ先輩発表資料 V1.0
PDF
文書中央化ソリューション ClouDoc_jap_20181206
PDF
【XPagesDy】A-2_コムチュア_20131106_公開用
PPTX
世界を変えるクラウドサインの取り組み
PDF
Information20120312
PDF
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
PDF
Agile japan2010 rakuten様プレゼン資料
PDF
ユーザー企業における標準化のあり方 : QCon Tokyo 2010
PPTX
本の紹介
 
PDF
0からのWebディレクション講座_制作編_160827
PDF
AWS Cognito makes old web apps available from anywhere
PDF
ソフトウェア開発の現場風景
PDF
20221226_TITECH_lecture_ishizaki_public.pdf
PPTX
市場動向並びに弊社製品の今後の展望について
PDF
Agile Japan 2010 「変化を受け入れるアジャイルなプロジェクトマネジメントと現場 <ツール・環境篇>」
PDF
Essentials of container
PDF
市場動向並びに弊社製品の今後の展望について
PPTX
株式会社シーイーシー_DX事例集&導入事例_企業におけるDXの進め方_20241210
X dev 20121106
Iccv2019 参加報告
VentureCafe_第2回:SIerでのキャリアパスを考える_ござ先輩発表資料 V1.0
文書中央化ソリューション ClouDoc_jap_20181206
【XPagesDy】A-2_コムチュア_20131106_公開用
世界を変えるクラウドサインの取り組み
Information20120312
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
Agile japan2010 rakuten様プレゼン資料
ユーザー企業における標準化のあり方 : QCon Tokyo 2010
本の紹介
 
0からのWebディレクション講座_制作編_160827
AWS Cognito makes old web apps available from anywhere
ソフトウェア開発の現場風景
20221226_TITECH_lecture_ishizaki_public.pdf
市場動向並びに弊社製品の今後の展望について
Agile Japan 2010 「変化を受け入れるアジャイルなプロジェクトマネジメントと現場 <ツール・環境篇>」
Essentials of container
市場動向並びに弊社製品の今後の展望について
株式会社シーイーシー_DX事例集&導入事例_企業におけるDXの進め方_20241210

『運用屋さんのためのVBA入門』 ~ 運用方法論 運用工程設計・自動化概論 〜