目次
- はじめに 「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
第1章 3日かかった作業が1秒で終わる衝撃
毎日同じ作業に2時間かけていた若手社員の悲劇と感動
- その作業,本当に時間をかける必要はありますか?
- たった1クリックで処理が終わる感動
時間がかかる作業は「なぜ」時間がかかるのか
- 反復性 ~何度も同じことを繰り返す
- 複雑性 ~手順が多く複雑
まずはExcel作業を自動化する「手順書」を読んでみよう
- 「面倒なExcel作業を瞬殺する仕組みを自分で作る」という発想
- 日本語に訳せば処理がわかる
最初にやっておくべき設定
- ファイルの保存形式を変更する
- リボンに[開発]タブを表示させる
- 手順書を作成するツールの重要な設定
いきなり自動化してみる超クイックガイド
- 死ぬほど仕事を楽にするための基本 ~プロシージャとは
- Excelの自動化の手順書はどこに書くのか ~標準モジュール
- Excel自動化の最初の一歩
- 最初に必ず書く1行を書いてみよう
- 実行させたい処理を書く
- プロシージャを実行する方法
Excel自動化のために最初に一度だけやっておくべき設定の「理由」
- 「せっかく書いたプロシージャが消えてしまった!」を防止するためにExcelの保存形式の変更を
- これをしておけば作業が快適に ~VBEの「自動構文チェックの無効化」と「変数宣言の強制」
第2章 基本にして最重要 ~「表作成」の自動化で仕事は劇的に速くなる
まずは超基本から ~セルへデータ・数式・関数を入力する
- 1回だけなら手作業で済ませることができるけど……
- わかる人は処理をどう読み解いているか
- セルにデータを入力するには
- 数値を入力するには
- 文字列を入力するには
- セルに値が入る様子を見てみる
- 数式の入力方法と注意点
- VLOOKUP関数はそのままじゃ使えない ~Excel作業の自動化で関数を使う際の注意点
- IF関数の代わりに使うものとは
- サンドイッチ構文の2つのポイント
Excel作業に時間がかかる原因を解消してくれる最強の呪文 ~「反復」のFor Next構文
- コピペやオートフィルをそのまま書かない
- 指定するセルの行数を次々に変化させる ~変数
- 入力するセルの行数を次々に変えることで関数を連続入力させる
- コラム 【Enter】で空白を空けたくない場合は
- どのような仕事がされているかを1つずつ確かめながら進めていこう ~ステップイン実行
- 処理するデータの数は毎回変わる,その変化に臨機応変に対応できなければ意味がない
セルは「どのシートのセルか」まで指定する ~シートの指定方法
- シートを指定する最も基本的な方法
- シートの一括指定で書くのも理解するのもラクに ~With構文
- 【演習】ひととおりプログラムを書いて実行してみましょう
わかりやすくするために押さえておきたいこと
- なぜ,【Tab】で段落をつけるのか ~インデントの重要性を理解する
- 「そんな昔のことなど覚えていない……」とならないためのメモの残し方 ~コメント
第3章 複雑な問題も,小さく分解すれば,1つずつのシンプルな要素にすぎなくなる
処理を自動化する知識を身につけるために押さえておきたいこと
- セルに対しておこなう処理にはどのようなものがあるか
- 処理をきちんと日本語訳して理解する
- 「その処理がおこなわれたらExcelはどのように動くか?」をイメージする
見やすい表を作るための作業をラクにする ~セルの書式設定
- 書式設定の6つの種類
- セルに入力されているフォントを太字にする
- セルのフォントの色を設定する
- セルのフォントのサイズを変える
- セルを塗りつぶす
- セルに罫線をつける
- 処理の文型をおさらいすると
セルを自在に操るには
- セルの値を消去する
- 表へのデータの入力時,既存データが入力されていたら,まずそれを消してから入力する ~初期化の重要性
- セルの範囲指定をおこなう方法 ~CurrentRegionとOffsetを使いこなす
- セルのコピペ作業を自動化する
- セルを削除する
- データを並べ替える
- 【実務事例】データ処理の定番「不要な行の削除」を自動化するには
シートの処理を自動化するには
- シートを追加する処理の書き方
- 追加したシートに名前をつける
- シートを削除する
- シートをコピーする
入力の練習をしてみよう
- 並べ替えを自動化する
- オートフィルターで不要なデータを抽出して削除する
- 自動化ツールをシート上のボタンクリックで動かせるようにする
- まとめ:処理の文型はたった2つしかない
第4章 どんな仕事も計画の「実行」と「検証」ができればうまくいく
問題の原因はいつも似通っている ~問題解決をスムーズにする着眼点
- 仕事を成功させるための考え方はプログラミングで学べる
- ピリオドはつなぐもの,カンマは区切るもの
- 「始まりと終わり」の枠組みを作ってから中身を入れる
- 開発中の入力ミスにはこうして気づける
- テスト実行は必ず保存してから! しかし忘れてしまう……その対策とは
問題をあぶり出す技術 ~「試行錯誤」はむやみにやればいいというものではない
- 実行中にエラーメッセ―ジが出て処理が止まった時の正しい対処法
- ある時点までは一気に実行,それ以降は1つずつ処理結果を確認する
無用な手間をなくす大切なリスクヘッジ ~変数宣言の必要性を理解する
- 変数の名前は意味がわかりやすいものにする
- わざわざ宣言しなくても変数が使えてしまうことで起きる問題とは
- 入力ミスをしてしまったとしても,即座に特定できれば問題ない
わからないことの調べ方 ~マクロの記録を使いこなす
- マクロの記録に対する大いなる誤解
- マクロの記録から書き方を理解する
第5章 面倒なルーティンワークを自動化するための具体的プロセス
「その都度入手するブックに対して毎回同じ処理をおこなう」場合の考え方
- カギとなるのは「別のブックを開く」という処理
- まずは基本から ~既存ブックを開く処理の基本構文
- 「そんなやり方じゃ実務では使いものにならない」理由
- 自動化ツール一式をまとめるフォルダ構成を整える
- 固定的な保存場所を使わず,その都度「取得」する書き方
- いちいち開きたいブックの名前の指定などしていられない
Excel作業自動化ツールの超具体的な作成手順
- 具体的な作業手順を日本語で書き出して整理する
- 自動化ツール一式をそろえる手順
- 「操作対象ブックフォルダ」「処理済ブックフォルダ」を用意する
第6章 大量のフォルダやファイルの処理も瞬殺する自動化ツールの作り方
大量のブックを開いて閉じての繰り返し……という作業も1クリックで片づける方法
- 某社人事総務部でおこなわれていた勤怠データの集約作業
- 大量のブックを処理するための設計のコツ
- 最初にフォルダを1つ作る
- フォルダの中に自動化に必要なブックやフォルダを配置していく
- フォルダの中にあるブック名の一覧表をシート上に書き出す
- ファイル名一覧表の名前のファイルを次々に開いては処理して閉じる
- 1クリックですべて完了できるボタンを設置する
「毎月同じようなファイルを何個も作る単純作業がもういやだ!」 ~ファイルの大量作成を自動化する
- 全社員用の勤怠管理ファイルを自動生成するには
- ブックの大量複製=1つ雛形シートを作っておき,そのシートを別ブックとしてコピーする処理を繰り返すという発想
7章 大量の書類を一括して処理する
請求書の作成を自動化するには
- 処理を手作業でやるとどうなるか
- 作業を自動化するプロシージャを解読する
- 各シートを連続で印刷する
- 各シートをPDFで保存する
シートを削除するロジックの考え方
- 不要なものの削除は「順番」が大事
- ステップインでおかしくなってしまう原因を確認する
- デバッグや動作確認で「イミディエイトウィンドウ」を使いこなす
- 「変数の値はどのように変わっていくのか」を把握する
- 「実験と確認」がイミディエイトウィンドウを使う目的
- 値の確認はイミディエイトウィンドウならすぐできる
- コラム なぜ,ThisWorkbook.Pathと入力しても何も出てこないのか
- 動作の確認もイミディエイトウィンドウならすぐできる
- 【応用】全シートでA1セルを表示・選択かつ1枚めのシートを選択状態にする
第8章 顧客情報の入力がしづらい,見づらい……を解決する ~ユーザーフォームの基本
なぜ,顧客データExcelは管理しづらくなるのか?
- 「入力しづらいシート」はこんなもの
- データを「入力する場所」と「保存する場所」は分ける
自作の入力フォームをかんたんにつくる具体的手順
- 入力用パーツを配置するための土台をつくる
- 各コントロールには必ず「名前」をつけていく
- オブジェクト名をつける際のちょっとしたコツ
- 作った入力フォームを立ち上げるには
- クリックボタンを配置する
- コントロールの位置やサイズを調整する方法
チェックボックスやプルダウンメニューも自由自在に
- ラベル ~コントロールの項目名や説明を表示する
- テキストボックス ~文字や数値を入力する
- コンボボックス ~選択肢から入力できるようにする
- リストボックス ~選択肢から複数を入力できるようにする
- チェックボックス ~該当するものをすべて選んで指定する
- オプションボタン ~複数の選択肢から1つだけを選ばせる
入力内容をシートへ転記する
- シートの何行めにデータを入力するかを決める
- チェックボックスのチェックの有無の判定とセルへの転記をおこなうには
- テキストボックス,コンボボックスの内容をセルに転記するには
- リストボックスの値をセルに転記するには
- オプションボタンの選択をシート転記するには
- OKボタンをクリックしたらユーザーフォームを閉じるには
- 続けて入力できるようにするには
- 入力フォームへ情報を呼び出して修正や確認ができるようにする
入力項目の数が非常に多くて大変な場合はどうするか
- 項目名のセルに「名前の定義」機能で名前をつけ,その名前はセルの値をそのまま使う
- コラム セルにつける名前の規則
- 各コントロールの内容はシートの何列めに転記すればいいのかを自動設定する
- データは「入力」と「蓄積」と「出力」で場所を分ける
第9章 「保存せずにファイルを閉じちゃった……!」という悲劇をなくす ~イベント処理
うっかりミスを防ぐ仕組みの作り方
- ボタンをクリックしなくても自動的に動き出すマクロも作れる
- 保存してない場合はファイルを閉じれないようにするには
- 特定のシートが選択されたら確認メッセージを出すには
かゆいところに手が届く処理のポイント
- セルをダブルクリックしたら色がつくようにするには
- セルの値を変更したら何かが起こるようにするには
- ブックを開いたら自動的に何かが起こるようにするには
第10章 全体像の整理とこれからのために知っておきたいこと
実際に読み書きするVBAという言語の全体像
- 単語の4分類
- 値(あたい)
- 「処理」の文型の3種類
- 6つのサンドイッチ構文
- いろいろな記号
本文で解説していない2つのサンドイッチ構文
- For Each構文
- Select Case構文
変数について理解を深める
- 変数の「型」とは ~宣言してもいいけど,面倒ならしなくてもいい
- 変数の型の指定はしなくていい,ただ意味はわかったほうがいい
- 複数の値を入れられる変数「配列」
Excel VBAにおいて生成AIはどう活用できるか
- サンプルコードを書いてもらう
- 既存のコードを読ませて解説してもらう
- エラーの原因を相談してみる
なんでもかんでもExcelで済ませようとしない
- 「脱Excel」を視野に入れる
- 業務によっては専用ソフトやシステムを使うほうが効率的