見出し画像

第1章 Excel VBA(マクロ)を始めるために事前の準備をする

この投稿はkindle出版している書籍の内容です。
0章、1章、6章まとめについては全て読むことができます。


1-1.VBAを書くために必要な準備をしましょう【VBEの立ち上げ方】

それでは、VBAを書くための準備をしていきましょう。すでに「開発」タブがある人は、次に進んでもらって構いません。「開発」タブがないよ、という方は、このまま進めてください。

VBAを書くためには、まずVBAを書く場所が必要で、Excelをインストールしただけでは、実はVBAを書くことができません。

「開発」タブというものが必要なので、Excelをまずは起動してください。

Excelを立ち上げたら、下記の設定をします。
1.「ファイル」→「その他」→「オプション」を開きます。
※Excelのバージョンによってはそのまま、オプションと出ている場合がありますので、そちらをクリックしてください。
2.「リボンのユーザー設定」→右下の「開発」タブにチェック
※「開発」のチェックが基本的に外れています。

VBAを書くための準備

この設定をすると、「表示」と「ヘルプ」の間に「開発」タブが出て、この「開発」タブを表示させることで初めて、マクロ関係の機能を使うことができます。

ここから専門用語がいくつか出てきますが、この節の最後でまとめているので、ざっと読んでいただき、わからないところはあとからご確認いただければ大丈夫です。

続いてマクロ(Excelをルールに従って動かす機能)を使うためには、VBA(Visual Basic for Applications)というコードを書く必要があります。

このVBAを書く場所としては、VBE(Visual Basic Editor)と呼ばれるVBAを書くためのソフトが必要です。

VBEを開くには、「開発」タブにある左側の「Visual Basic」ボタン、もしくは、「コードの表示」ボタン、いずれかのボタンを押していきます。

Visual Basicボタン、コードの表示ボタン

これを押すことで表示されるのがVBEとなり、この画面を使って、コードを書いていきます。

VBE(Visual Basic Editor)の画面

このVBEには様々なウィンドウを表示することができますが、最低限必要なのは、左にある「プロジェクトウィンドウ」、そして、右側の「コードウィンドウ」です。

「プロジェクトウィンドウ」は名前の通り、作業をするためのデータの一覧と考えてください。最初はシート名などが並んでいます。そして、「コードウィンドウ」は実際にこれからVBAを記載するための場所になります。

左上の「プロジェクトウィンドウ」で、例えば、Sheet1をダブルクリックすると、少しわかりづらいですが、上にシート名が書かれて、そのシートの中にコードを書くことができます。

これを、シートのモジュール(Module)と呼び、先ほどの「コードウィンドウ」にコードを書けば、そのシートで動くマクロを作成することができるようになります。

このモジュールですが、シートのモジュールにコードを書くと「シート」内でしか動きません。

これから様々なマクロのコードを書きますが、1つのシートだけでなく、複数シートにまたがってマクロを動かすことが出てきます。

そのため、最初のうちは「標準モジュール」と呼ばれる、どのシートであっても動かすことができるモジュールに書くことをお勧めしています。

私自身もほとんどがこの「標準モジュール」にコードを書き、「シートモジュール」の利用は限定的です。シートモジュールでしか動かないものを除き、ほとんど使うことはありませんので、まずは「標準モジュール」の使い方を押さえていきましょう。

「標準モジュール」は、VBEを立ち上げただけでは表示されておらず、自分で作成をする必要があります。

【標準モジュールの追加方法】

1.「プロジェクトウィンドウ」で右クリック
2.「挿入」→「標準モジュール」

標準モジュールの挿入方法

上記の動作を行うと、初めに「Module1」というのが出てきます。

2回、3回と行うとModule2、Module3と作られますが、今回は1つで十分なので、Module1を使用します。

左上の「プロジェクトウィンドウ」を見ると「Module1」と出ていることがわかります。これが「標準モジュール」の「Module1」となり、右側の「コードウィンドウ」にVBAを書けば、マクロを作成することができます。

【まとめ】

マクロを始めるには、開発タブを表示し、標準モジュールを追加する。

【この節で出来たこと】

☑マクロを作成するために必要な「開発」タブを表示できる
☑マクロを書くためのVBE(Visual Basic Editor)を立ち上げることができる
☑新しいModuleを追加できる

【出てきたワード】

マクロ:Excelをルールに従って動かす機能

VBA:マクロを組むためのプログラム言語
※なおVBAが集合したものを本書では「コード」と記載しています。

VBE:VBAを書くためのソフト
プロジェクトウィンドウ:作業しているモジュール(プログラムの一つの塊)をまとめている場所

コードウィンドウ:VBAを記載する場所

プロパティウィンドウ:詳細を設定することができる場所

標準モジュール:シート間をまたがったプログラムを書くための場所


1-2.VBAを書く前に覚えておくと便利なこと【便利なショートカットキー】

これから「標準モジュール」にVBAを記載していきますが、記載していく上で、ショートカットキーを覚えておくと効率的にVBAを書くことができます。

ここでは通常、他のWordやPowerPointなどでも使える「切り取り」「コピー」「貼り付け」「上書き保存」「元に戻す」の5つのショートカットキーの説明、そして、「シートのコピー」、プログラムを作る上で使う2つの機能(「ステップイン」、「ブレイクポイント」)のショートカットキーについて、お伝えをします。

既にご存知の方は次に進んでもらって構いません。

最初にご覧いただいたマクロのコードのように、同じようなコードを書くことがあります。

その場合には「コピー」&「ペースト(貼り付け)」、もしくは移動させたい場合には「カット(切り取り)」&「ペースト(貼り付け)」の操作を行います。

さらには間違えたので「元に戻す」操作をする機会が多くなります。
ここで、ぜひ覚えてほしいのがショートカットキーです。

「切り取り」「コピー」「貼り付け」については、Excel以外でもよく使う機能のため、覚えておくと非常に便利です。

ショートカットキーを使うには、Ctrlボタンを押しながら、それぞれの機能に対応するキーを押していきます。

それぞれに対応するキーは「切り取り(X)」「コピー(C)」「貼り付け(V)」の3つですが、キーボードの左下に固まっています。

さらに、Ctrlボタンについても左下と右下にあり、右手よりも、左手で左下のボタンを使うのが、それぞれのキーに近いです。

使い方としては、Ctrlボタンを押しながら、Xを押すと「切り取り」、同様にVを押すと「貼り付け」になります。

XをCに変えてあげるとコピー&ペーストができます。

コードの移動や、同じコードのコピーをして、一部修正して利用するなど、様々な面で使用しますので、ぜひ覚えておきましょう。

そして、コードを書いていくと、途中でデータが消えてしまわないように、上書き保存をこまめにしておくことが必要です。

「上書き保存」はCtrlを押しながら「S」で、XCVの真上ぐらいにあります。

さらに「元に戻る」はCtrlを押しながら「Z」でCtrlボタンのすぐ横ぐらいにあります。

ぜひ、この5つについては覚えておいてください。

ショートカットキー

さらに覚えておくと便利なものとして3つ挙げますが「シートのコピー」については、Ctrlボタンを押しながらシートを選択し、「シートをドラッグ」すると、シートマークに「+」マークがつくので、それが出た状態で、ドラックをはなすとシートがコピーされます。

また、VBAを利用する上で、覚えておくと便利な機能として、1行ずつコードを動作させる「ステップイン」という機能と、途中までコードを動作させたい時に動作させる「ブレイクポイント」という機能があります。

具体的な使用方法については、実際に使うときに説明をしますが、「ステップイン」はF8ボタン、「ブレイクポイント」はF9ボタンで使うことができます。

ステップイン、ブレイクポイント

今回ご説明した8つのショートカットキーについては、非常に便利なので覚えておきましょう。

【まとめ】

これからマクロを組んでいく上で、ショートカットキーは覚えておくと便利。
Ctrl + X:切り取り
Ctrl + C:コピー
Ctrl + V:貼り付け
Ctrl + S:上書き保存
Ctrl + Z:元に戻す
シートを選択しながらドラッグ:シートのコピー
1行ずつコードの実行:ステップイン F8
指定した行までコードの実行:ブレイクポイント F9


1-3.VBAプログラムの基本的な事項を学びましょう【Sub~End Subのプロシージャー】

改めて、マクロは「Excelをルールに従って動かす機能」とお伝えしましたが、ルールに従って動くといっても、パソコンは機械なので、そのルールについて、指示を与えないといけません。

その指示を与えるためのプログラム言語をVBA(Visual Basic for Applications)と呼びますが、この言語を使って、「このように動いてほしい!」という指示を出します。

VBAのコードを書く場所は先ほどご説明した「標準モジュール」のモジュールに書いていきます。
マクロの書き始めには、決まった言葉があり、「Sub マクロ名() 〜 End Sub」このかたまりを書いていきます。なお、この一つのかたまりのことを「プロシージャー」と呼びます。

プロシージャーとは

普段マクロを組む上では「プロシージャー」という名称はあまり意識をしませんが、あなたがこれからVBAについて、学ぶ際にインターネットや書籍などによく出てくるので、「Sub〜End Sub」のことなんだな、と思い出してください。

このSub〜End Subに挟まれた部分にコードを書いていくと、その内容が順番に動いていきます。

SubのSや、EndのEは大文字になりますが、入力する際には「小文字入力」で大丈夫です。

この大文字になる部分については、記載内容があっていれば自動的に大文字になります。反対に言えば、間違って記載をすると大文字になりませんので、コードに間違胃がないかは、そこで判断することができます。

今後、さまざまなマクロを作る中でコードが大文字になる部分、小文字になる部分というのは、わかってくるようになるので、最初から覚えなくても大丈夫です。

間違えていた場合にはエラーメッセージと共に赤い文字になるので、赤い文字になった時には、アルファベットの並びが間違えていないかなどエラーの原因の確認をしてみてください。

【マクロの名前】

マクロを組むにあたり、一番初めに「マクロの名前」を決める必要があり、ルールに従えば、自分で決めることができます。

マクロの名前を決めるためには、下記のルールを満たす必要があります。

●使用できるもの
 ・ 英文字
 ・ ひらがな
 ・ カタカナ
 ・ 漢字
 ・ アンダースコア(_) ※一般的にはアンダーバー

例えば、listmake、list_make、表作成、などの名前を付けることができます。

マクロの名前を考えるときには、あなたが作成したマクロがどのような内容なのか、マクロに合わせてわかりやすい名前にしてあげましょう。さらに次の注意点に気をつける必要があります。

●注意点
・冒頭には、数字、アンダースコアは書けません。
NG _listmake 001listmake

・スペースを入れることはできません。
NG list make

・同一モジュール内ではマクロ名の重複はできません。
Module1の中で同じ名前は作成できません。

この3点に注意をしましょう。

【マクロ理解度チェックリスト】

☑︎Sub~End Subのかたまりでコードが書ける
☑︎マクロの名前を設定することができる


1-4.プログラムの流れの考え方と今回のプログラム内容【ケーススタディの説明】

ここまでで、Sub〜End Subにコードを書くこと、マクロの名前のつけ方について、ご説明をしました。

あとはメインの間に入れるコードですが、VBAの記載方法の基本は2つあります。

1つ目は「Excelの動作の一つ一つの流れを考える」ことです。

例えば、B列とD列を削除する、そして、C列の中で「○」がついたデータだけを残す。

このような動作の流れを実際に考えていきます。

これは頭で考えていただいてもいいですし、コード内にコメントとして記載をしても大丈夫です。

そして、頭考えた内容や、コメントとして書いた内容に対して、その動作に対応するVBAを書く、という流れを繰り返していくことで、一つのマクロを作ることができます。

今回は基礎を学んでいただくために、マクロを実際に組んでいただきますが、この本を読んだ後に、あなたにやっていただきたいことは「自分のやりたいことをまず書いて、それをマクロにする」ということです。

もちろん、知らないコードがあり、全てがすぐに実現できるわけではないです。

ただ、この流れは非常に重要で、自分に関係あることであれば、やる気も出て、身につきやすいですが、あまり作業で使わないものだとなかなか覚えることができません。

必要ない部分まで覚えようとすると、VBAが嫌になってしまって、そこで、VBAを作ることを諦めてしまいます。

必要なのは、VBAで色々なことができることを知り、少しずつ、その知識を増やしていくことです。

少し話がそれましたが、基本的にはやりたいことを考える、そして、それをコメントで記載する、その上で、そのVBAのコードを考えるということです。

そして、大枠で考えた内容をExcelの実際の動作にまで、落とし込んで考えることが必要です。

【プログラムを考える流れ】

 1.やりたいことを考える
 2.上記を実現するためのExcelの動作を考える
 3.2のプログラムを考える

いきなりご自身のマクロを作りましょう、というのは難しいので、まずは私と一緒にひとつのマクロを1から作成してみましょう。

今回、行いたい内容としては、下記の通りです。

【ケーススタディ】

1.システムからcsvファイルをダウンロードしてくる
2.そのファイルには不要なデータがあるため、削除する
3.この作業には毎日30分、手作業で行っており、最後に印刷が必要
4.この作業を自動化したいと考えている

ケーススタディ

このケーススタディを利用して、VBAの基本から学習をしていきましょう。


1-5.今回利用するファイルの説明

実際にどのようなマクロをこれから作成するのか、ファイルを動かしていきます。

ファイルをダウンロードいただいた方は「vba_basic」フォルダに入っている「yyyymmdd」というファイルを開いてください。

ダウンロードがまだの方は、下記からダウンロードすることが可能です。

購入者特典を受け取る【使用するExcelファイル等】

https://drive.google.com/file/d/1cRYTwOMYLqVstWWowtXZSg0GivamQMc0/view?usp=drive_link

利用ファイル(全てダミーデータです)

ご自身で準備される方については、下記のようなファイルを作成してみてください。今回行う内容としては、いくつか情報をご準備いただき、J列に○がついたファイルを作成をお願いします。

ファイルの準備ができれば、簡単にこのファイルについて、説明をします。

顧客に対し、DM(ダイレクトメール)を送付するためのリストを作りたいと考えており、DM欄に○が書いてあるもののみ抽出、印刷したいという想定です。

このデータはダミーのデータになりますので、実際の内容ではありません。

内容としては、連番、氏名、氏名(カタカナ)、性別、電話番号、郵便番号、住所、生年月日、年齢、DMです。
※DM:自社の商品の紹介、宣伝のために送るハガキ、チラシ、メールなどのこと。

1-4でお伝えした方法の流れでは、やりたいことは上記の通りなので、次にExcelでどのような動作になるかを考えることです。

【プログラムを考える流れ】

 1.やりたいことを考える
 2.上記を実現するためのExcelの動作を考える
 3.2のプログラムを考える

どのような動作になるかを考えるためには、最終的にどのようなファイルを作りたいのかを決める必要がありますが、「DMリスト」ファイルの「DMリスト」シートの内容が最後に残したい内容です。

残したい内容

DMリストの内容としては氏名、郵便番号、住所があり、郵便番号については、元々のデータと比較して、3桁と4桁に分かれていることが分かります。

それ以外の列については、削除されています。

さらに、列が削除されただけでなく、内容を見ていくと、情報が減っていて、これはDMの列が○のものだけを残しているからです。

このようにyyyymmddファイルから、このDMリストのような内容にするためには、具体的にExcelではどのような動作を行う必要があるか、VBAを実際に書きながら、お伝えをしていきます。


1-6.マクロを使用する上での注意点【Excelマクロ有効ブック保存】

VBAのコードを書くためには、VBEが必要であることはすでにお話ししました。

もうひとつ重要なこととして、マクロを搭載する場合には、ファイルをマクロ有効ブックという形式で保存する必要があります。

この形式で保存しておらず、csvファイル(csv形式)のままだったり、Excelブック(xlsx形式)の形式で保存してしまうと、マクロが全て消えてしまいます。

そのため、一番初めにファイルを、マクロ有効ブック形式で必ず保存をしてください。

これは必ず癖づけておいた方がよいです。

ある程度、いいコードが書けて、上書き保存をして終わったはずなのに、次に開けると、全てが消えていた…というのは本当にある話で、ショックが大きいです。

保存方法は普段のExcelファイルの保存と同じで「ファイル」→「名前を付けて保存」と押し、保存場所を指定します。

保存場所は好きなところで構いません。

そして、「ファイルの種類」が「yyyymmddファイル」は「csv」になっていますので、必ず、「マクロ有効ブック」という形式で保存をしてください。

選択した後は保存ボタンを押していただくと保存されます。

この操作をすれば、このファイルでマクロを作ったときは、マクロもしっかりと保存されますのでご安心ください。

 【マクロを保存するための操作】

1.「ファイル」→「名前をつけて保存」にて保存画面を開く
2.保存場所を指定し、「ファイルの種類」を「マクロ有効ブック」にして、保存する

また、インターネットからダウンロードしてきたファイルについては、「マクロを有効化しますか」もしくは、「コンテンツの有効化」ということを聞かれることがあります。

バージョンによって異なりますが、このような表示が出てきた際には、マクロを有効にする、もしくは、コンテンツを有効化する、いずれかのボタンを押してください。

また、2022年のシステムの改定により、マクロがブロックされるという事案も起きています。
この場合には私のブログもご参考ください。
https://jimove.biz/2022/09/11/マクロファイルのブロック解除する方法/

【kindle書籍】

この記事が気に入ったらサポートをしてみませんか?