ExcelVBAを実務で使い倒す技術

ExcelVBAを実務で使い倒す技術

ExcelVBAを実務で使い倒す技術

高橋宣成(著)
秀和システム

スポンサーリンク

本の詳細

あなたが最初にVBAを学ぼうと思ったきっかけは何だったか、覚えていますか?

おそらく、多くの方は「自分の業務をさっさと終わらせたい」とか「いつもの繰り返し作業がダルすぎる」とか、ごく個人的な動機からVBAを学び始めます。
そして、入門書を片手にマクロ記録を活用しながら、ちょっとした業務をVBA化してみたら、今まで何時間もかかっていた仕事が瞬殺で終わった。なにより、自分で作ったコードが思い通りに動くのが楽しい!
そんな感動を味わうことでしょう。

すると、周りにその感動をシェアしたくなるのが心情。同僚向けにカスタマイズしてあげたり、誰でも使えるようにユーザーインターフェースを設置したり。そんなことをしていると、会社のアチコチがあなたのVBAツールの虜になっていきます。
ここまでは、良いことづくめですよね。

問題は、ここから先の展開です。

業務というものは、必ず変化を伴います。ですから、業務で使用するツールも合わせて変更を要します。また、ITリテラシーが高くないユーザーは、あなたが想定しなかった操作をしてしまうときがあります。そんな人は、それを「不具合だ」と言うでしょう。

  • 自分で書いたはずの「数百行にもなるコード」の解読に、丸一日かかってしまった
  • エラーを直しても別のエラーが発生。場当たり的にいじり過ぎて訳が分からなくなり、結局最初から書き直すはめになった
  • どうしてもエラーが解消できない!
  • やりたいことは簡単そうなのに、やってみたらとてつもなく大量のコードを書くはめになった

長々と買いていまいましたが、前述の内容に少しでも共感を持っていただけたなら、おそらくあなたのVBAレベルは「初級から抜け出せていない。中級レベルまでもう少し」といったところでしょう。

そんなあなたにまず必要なのは、高度なステートメント覚えることでもなく、大量のコードを書けるようになることでもありません。むしろ逆。それは「楽をするスキル」です。

目次

はじめに
本書を読むにあたっての注意事項

第1章 脱初級への第一歩は「道具であるVBE」を使いこなすことから

1-1 まず最初に必要なのは「楽をする」スキル

  • 初級から抜け出せていない。中級レベルまでもう少し
  • 「楽をするスキル」とは何か
  • 真っ先に取り組むべきなのは「VBE」

1-2 今すぐに見直すべきVBEの設定とは

  • VBEの設定を甘く見てはいけない
  • 楽にVBAを扱うには「見栄え」も大切
  • 自動構文チェックの無効化
  • 変数の宣言を強制する理由

1-3 コメントブロックのアクセスキーを設定する

  • コメント機能は簡単に操作できるようにする
  • VBEで独自のアクセスキーを設定する

1-4 自動メンバー表示で「打たずに打つ」

  • タイプミスを0%にすることは不可能
  • うろ覚えでも素早くミスなく入力できる
  • 自動メンバー表示が使えるようにコードを書く

1-5 マスターしておくべきVBEのショートカットキー

  • コードの量が増えてもカーソル移動に時間をかけない
  • 変数またはプロシージャの定義の表示

第2章 イミディエイトウィンドウの神髄

2-1 イミディエイトウィンドウの役割を再定義する

  • 入力画面としてのイミディエイトウィンドウの役割
  • イミディエイトウィンドウのショートカットキー

2-2 変数・プロパティの値とステートメントの結果を調べる

  • 変数やプロパティの値を調べる
  • ステートメントとその結果を評価する

2-3 イミディエイトウィンドウからプロシージャを実行する

  • イミディエイトウィンドウでのプロシージャ実行
  • 引数を渡してプロシージャを実行する
  • Functionプロシージャを検証する

第3章 バグを制するものはVBAを制する

3-1 なぜ、初級者はデバッグ作業で時間を浪費するのか

  • エラーに浪費している時間を限りなくゼロにする
  • エラーが解決できない主要因は「情報不足」

3-2 エラーメッセージは情報の宝庫、エラーは成長の糧

  • エラーをわざと発生させて「敵を知る」
  • ユーザー入力の内容によって発生するエラー

3-3 3種類のエラーと、よく見かけるエラーメッセージ

  • VBAで発生するエラーには3つの種類がある
  • コンパイルエラーと、そのよくあるパターン
  • 実行時エラーと、そのよくあるパターン

3-4 ステップ実行で手がかりを得る

  • エラーの原因も発生箇所も分からないという例
  • ステップ実行とローカルウィンドウ

3-5 ブレークポイントを設定して手がかりを得る

  • ブレークポイントで処理を中断する
  • 中断ポイントで変数・プロパティの値を調べる方法

第4章 システムの成功と失敗の分かれ目は設計にあり

4-1 成功のポイントはPCを活躍させること

  • 全ての要望を取り入れれば良いわけではない
  • PCの力を最大限に借りる

4-2 インプット・プロセス・アウトプット

  • システムはIPOの組み合わせでできている
  • インプットとアウトプットがExcelである
  • システムが大きすぎる場合は小さなIPOに細分化する

4-3 PCにやさしいフォーマットとは

  • フォーマットがプロセスの複雑さを左右する
  • PCが得意なフォーマットはテーブル形式
  • 人にやさしい形式と、PCにやさしい形式

4-4 IDとマスタ・入力規則で表記の揺らぎを防ぐ

  • 表記の揺らぎはPCの天敵
  • IDとマスタにより表記の揺らぎを防ぐ
  • 入力規則で指定した値のみ許容する

第5章 できる担当者のコーディングは発想からして違う

5-1 脱初級を阻害するコーディングのクセを取り除く

  • 初級者に染みつきやすいコーディングのクセとは
  • 正しく理解してコーディングをするには設計が不可欠
  • 「コードを理解する」を定義する

5-2 VBAコードにする前に、日本語でプロセスを分解する

  • コーディングは「分解」と「翻訳」である
  • プロセスの分解は日本語で
  • プログラムの構成要素は3種類しかない

5-3 欲しい情報を効果的に調べ上げる高速検索術

  • 情報源の特性を知り、効果的に情報を手に入れる
  • 検索内容によって検索方法を使い分ける
  • 特定のサイトにしぼってGoogle検索をする
  • VBA検索に役立つサイト

5-4 お決まりフレーズはストック&ペースト

  • マクロ記録と他人のコードはおすすめしない
  • 自分のコードを資産として再利用する
  • ストックコード集

5-5 小さく細かくコーディングとテストを進める

  • コードを書いた端からテストを進めるべき理由
  • テストの範囲をできる限り絞る
  • まずテスト用のコードDebug.Printで出力する

第6章 リーダブルコードでVBAを資産化する

6-1 なぜ、リーダブルコードが必要なのか

  • 優れたコードとは何か
  • 書いたコードを負債とせず資産にすべき

6-2 読みやすいコードとは何か

  • 「リーダブルコード」を定義する
  • シンプルなコードは読みやすい
  • 「単位」に対して適切なボリューム
  • コードが持つ情報の密度を高める

6-3 ブロックとインデントでコードのフォルムを美しく

  • フォルムに情報を持たせる
  • Withでコードを美しく書く
  • ネストはできる限り浅く
  • 縦のラインを揃えて書く

6-4 プロシージャはどのように分割すべきか

  • プロシージャの基本単位は「1画面」
  • プロシージャを分割する条件

6-5 変数はどこでどのように宣言すべきか

  • その変数は使うべきかどうか
  • 暗黙の型は避ける
  • 変数のスコープを絞る

6-6 ネーミングが情報の密度を上げる

  • 変数やプロシージャに意味を持たせる
  • キャメル記法とスネーク記法
  • Boolean型を表現する名前
  • 短いネーミングと日本語のネーミング

6-7 コードにない情報をコメントで伝える

  • コードにない情報を最小限の文字数で伝える
  • どのようなコメントを残すべきか
  • プロシージャとその構造を表すコメント

6-8 徹底してコードに一貫性を持たせる

  • 条件式の左辺と右辺の配置
  • Boolean型の条件式
  • 一貫性のある書き方を徹底する

第7章 「変化」への耐久性を持たせるためのVBAの作法

7-1 「変化」は必ずやってきてVBAを劣化させる

  • ちょっとした改修でも高くつくことがある
  • 「変化」はシステムの劣化を招く
  • 未来の変化に備える2つのアプローチ

7-2 同じコードを書いてはいけない

  • 繰り返しで同じコードを1行にまとめる
  • 同じ処理をプロシージャ化する

7-3 定数・列挙型でマジックナンバーを避ける

  • マジックナンバーには定数を使う
  • 文字列の定数化で楽にVBAの運用をする
  • 列挙型でグループにまとめて数値を割り当てる

7-4 ユーザー操作によるシステム干渉に耐えるVBAを作る

  • ExcelVBAでのユーザー操作による干渉
  • 行数、列数の変更への対策
  • シートの変更への対策
  • ワークブックとシートを明示する

7-5 変化する「集合」にはコレクションを使う

  • コレクションとFor Each文
  • 独自のコレクションを作る

7-6 膨らんでいくデータ量をどう取り扱えば良いのか

  • データ量も意識すべき「変化」である
  • データ量を抑えるためにすべきこと

7-7 マクロの実行時間を短縮するためのテクニック

  • 繰り返しに注目して計算回数を減らす
  • マクロ実行時の自動計算をオフにする
  • 画面表示の更新とイベントの発生をオフにする
  • セル範囲を配列に格納してから計算をする

第8章 VBAは個人作業のみならず「チーム」にも革命をもたらす

8-1 VBAはチームの資産にするべき

  • あなたのチームを最大に苦しめ得るリスク
  • VBAをチームで維持管理するための2つの方針

8-2 チームで情報を蓄積・共有して、強力なライブラリを作る

  • チームの情報を蓄積して共有する
  • 更新性の高さで情報管理に濃淡をつける
  • 階層的に情報をリンクでつなぐ
  • 集合知はチームの強力な武器になる

8-3 Gitでソースコードとそのバージョンを楽に管理する

  • ファイル名でのバージョン管理の限界
  • Gitバージョン管理でできること
  • Gitを使ってバージョン管理を複数人で共有する

8-4 リファクタリングでチームのコードに一貫性を持たせる

  • チームでコーディングルールを統一する
  • リファクタリングとは
  • 安全にリファクタリングを進める

8-5 技術ブログで情報を公開することで、新たな価値を生み出す

  • 蓄積した情報を世界に向けて発信する
  • 情報を公開することではじめて得られるもの

おわりに
索引
著者紹介

 
ExcelVBAを実務で使い倒す技術

ExcelVBAを実務で使い倒す技術

高橋宣成(著)
秀和システム

タイトルとURLをコピーしました