O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

20121103 #odstudy できる! VBAマクロ

1.767 visualizações

Publicada em

2012/11/03 #odstudy 発表資料

Publicada em: Tecnologia
  • Seja o primeiro a comentar

20121103 #odstudy できる! VBAマクロ

  1. 1. できる! VBAマクロ
  2. 2. 自己紹介• 板谷郷司 a.k.a. 東雲翡陽• @H_Shinonome• hiyou@shinono.me• http://blog.shinono.me/• #qpstudy 派生勉強会 #nwstudy 主宰• 忍者ツールズの裏のインフラエンジニア。not 忍者 but 黒子• #qpstudy系専属(?)Ustreamer
  3. 3. VBAを使うといえば?
  4. 4. 我らがExcel
  5. 5. 簡易DBの代表格 Access
  6. 6. ネットに情報沢山あります。
  7. 7. 皆さんにお聞きします。
  8. 8. Access / Excel でVBAを使ったことがある
  9. 9. Access / Excel 以外でVBAを使ったことがある
  10. 10. Access / Excel 以外でVBAを使えることは 知っている
  11. 11. Access / Excel 以外でVBAを使えるソフトが 何かを知っている
  12. 12. Access
  13. 13. Access Excel
  14. 14. Access Excel Word
  15. 15. Access Excel Word PowerPoint
  16. 16. Access Excel Word PowerPoint Outlook
  17. 17. Access Excel Word PowerPoint OutlookVisio
  18. 18. Access Excel Word PowerPoint OutlookVisio Publisher
  19. 19. Access Excel Word PowerPoint OutlookVisio Publisher OneNote
  20. 20. Access Excel Word PowerPoint OutlookVisio Publisher OneNote InfoPath
  21. 21. Access Excel Word PowerPoint OutlookVisio Publisher OneNote InfoPath Project
  22. 22. でも、VBAメニューなんて見たこと無い…
  23. 23. 基本的に Alt + F11 ちなみに、これはVisio
  24. 24. 基本的に Alt + F11 ちなみに、これはPowerPoint
  25. 25. • Officeアプリケーションの連携が可能• データのやり取りだけでなく、アプリ ケーション操作もできる• Office自動化の強い味方!
  26. 26. VBAを使うと業務の自動化が進められる!
  27. 27. とあるNW系SIerにて• 某社ネットワーク運用業務 • リソース管理 • 運用監視保守
  28. 28. リソース管理• ネットワークリソースの管理 • お客様の求めに応じリソースを払い出す • IPアドレス、SWポート、IP電話 等 • チケットはメールベース • 月一でお客様にサマリを報告 • お客様の求めに応じて内容の詳細を提出 • チーム3-6人で内容別に9-10チームほど+統括チーム
  29. 29. 使えるリソース• Microsoft Office Professional• Windows XP Pro の社内標準PC
  30. 30. システム要件• 同時に各チームで複数人が使えること• 報告書出力ができること• 誰がいつ何をやったかを、各チーム内 で共有して、統括が追跡できること• 使えるものだけでどうにかできること
  31. 31. システム要件• 同時に各チームで複数人が使えること• 報告書出力ができること• 誰がいつ何をやったかを、各チーム内 で共有して、統括が追跡できること• 使えるものだけでどうにかできること
  32. 32. 使えるサーバーはWindows XP Pro CIFS同時接続数は10に制限されてる
  33. 33. 使う人数は 約50人同時接続数10で、賄えるはずない
  34. 34. 選ばれたのはAccess でした
  35. 35. 通常の作りかた• Access内にテーブルを作成、フォームから操作でき るようにフォームとマクロを組んでいく• VBAだけじゃなく、Access専用マクロも使える (イベントドリブンが簡単)• 一つのファイルにデータストアとフロントが共存す る状態になる• 作成されたファイルを同時にアクセスして使用する
  36. 36. 通常の作りかた• Access内にテーブルを作成、フォームから操作でき るようにフォームとマクロを組んでいく• VBAだけじゃなく、Access専用マクロも使える (イベントドリブンが簡単)• 一つのファイルにデータストアとフロントが共存す る状態になる• 作成されたファイルを同時にアクセスして使用する
  37. 37. \(^o^)/オワタだから同時接続数10なんだって
  38. 38. でも、諦めたくない…
  39. 39. って、上司に言われた…
  40. 40. それまでの業務• 各チーム毎の共有Excelブック• 共有ファイルサーバーのTXTファイル• 進 管理用Excelブック• 報告用Wordファイル• 集計用Excelブック
  41. 41. それまでの業務• 各チーム毎の共有Excelブック 60MB• 共有ファイルサーバーのTXTファイル 4MB• 進 管理用Excelブック 3MB• 報告用Wordファイル 9MB• 集計用Excelブック 計算に4時間
  42. 42. 手作業の限界
  43. 43. Accessで頑張ってみた• データストアとフロントを分離• 同時接続がダメなら短時間接続で行ける ように• 集計はデータを持ってるサーバPCで行う
  44. 44. 簡易シーケンス• フロントがサーバPCにデータを読みに行く• 一覧を読み込んだら接続を切る• 一覧からデータを選択• 当該データをサーバPCに読みに行く• データにフラグを立てる(トランザクションの確保)• データを読み込んだら接続を切る• フロントでデータ編集• データをサーバPCに書き出し• データのフラグを折る• 最新の一覧を読み込む• 一覧を読み込んだら接続を切る• データがある限り繰り返す
  45. 45. なんとかなった、けど• 別ファイルの操作はVBA・SQLのみででき る。つまりAccess専用マクロは使えない• Windows XPのチューニングが必要 (CIFS 接続情報の保持期間を最小限にする)• データの不整合が起こる可能性がある• 定期的にコンパクションが必要
  46. 46. ちゃんとしたDB使いましょう。
  47. 47. そういえば、俺がいなくなってからLAMP環境のWEBシステムに移行したらしいです。
  48. 48. 運用監視保守• ZABBIXベースの監視システム • アラートメールをトリガーに障害対応を行 う業務フロー • 月一でお客様にサマリを報告 • お客様の求めに応じて内容の詳細を提出 • チーム7人の3交代制業務
  49. 49. 使えるリソース• Microsoft Office Professional• Windows XP Pro の社内標準PC
  50. 50. システム要件• できるだけ自動化する• 報告書出力ができること• 誰がいつ何をやったかを確実に記録す ること• 使えるものだけでどうにかできること
  51. 51. システム要件• できるだけ自動化する• 報告書出力ができること• 誰がいつ何をやったかを確実に記録す ること• 使えるものだけでどうにかできること
  52. 52. ですよねー (´・ω・`)
  53. 53. 選ばれたのはOfficeでした
  54. 54. • MIcrosoft Access• Microsoft Excel• Microsoft Word• Microsoft Outlook
  55. 55. • Outlookでアラートメールを受信(IMAP接続)• リアルタイムに受信したメールをOutlookマクロでパースしてAccessに保存&チケット起票• 監視クライアントでAccessを起動• Accessが起票されたチケットを読み込んで画面に表示• 保守対応要員が保守作業を行う(その間もAccessへ詳細を記録)• リカバリーメールをOutlookマクロでパースしてAccessに保存• 作業完了をAccessに記録してチケットクローズ• 日毎に管理用Accessプログラムで集計ボタンをポチッとな• Accessで集計が行われ、データが報告用Excelファイルに書き込まれる• 報告用Excelファイルが開かれるとExcelマクロによりグラフ等が更新される• 報告用Wordファイルが開かれるとWordマクロにより、報告用Excelファイルからデータが読み込ま れ、本文が更新される。• そして、PDF出力して完了。
  56. 56. ここまで自動化できます
  57. 57. みなさんもMicrosoft Officeで よい効率化を
  58. 58. VBAマクロこいつはできる奴です
  59. 59. できる! VBAマクロ
  60. 60. できる奴 VBAマクロ

×