\ 最大10%ポイントアップ! /

【初心者向け】はじめてのExcelマクロの作り方!

【当サイトはプロモーションを含んでいます】

この記事でわかること!

  • マクロとは何かがわかる。
  • マクロとVBAの違いがわかる。
  • マクロをはじめて作るときに必要な初期設定方法がわかる。
  • マクロの学習方法がわかる。
目次

マクロとは?

マクロはいくつかの処理をひとまとめにして自動実行すること、あるいはその処理のかたまりです。

Excel マクロとVBAの違い

Excelは日本語を理解できないのでわたしたちはマクロを日本語で書くことができません。マクロを表現するために用いるのがVBAというプログラミング言語です。

マクロとVBAの違い

  • マクロ
    • VBAで書かれた処理のかたまり。
  • VBA(Visual Basic for Application)
    • マクロを書くために用いるプログラミング言語。

マクロを使い始める前に必要な初期設定

ぽこがみさま

マクロは便利な反面、ユーザの知らないところで処理を自動実行するようなマクロも作ることができます。セキュリティのためにデフォルトでは無効になっています。

じょじお

マクロを使い始めるには事前に2つの設定を行いましょう。

Excel、Outlook、Power pointなどで共通の設定です。

マクロの設定

VBAを使い始めるには2つの設定が必要

  1. セキュリティ設定を変更する。
  2. 開発タブを表示させる。

(STEP1)マクロのセキュリティ設定を変更する手順(マクロの設定)

ExcelやOutlookではデフォルトではセキュリティのためにマクロが無効になっています。マクロには「マクロの設定」という専用のセキュリティレベルが用意されていて、トラストセンター(旧セキュリティセンター)から変更が可能です。

STEP
Excelを起動して画面左上の「ファイル」をクリックします。
Outlook VBA マクロ

▲図はOutlookになっちゃってますが、Excelもほぼ同じです。

STEP
「オプション」をクリックします。
Outlook VBA マクロ
STEP
「トラストセンター」をクリックし「トラストセンターの設定」をクリックします。
Outlook VBA マクロ
STEP
左側メニューの「マクロの設定」をクリックしセキュリティレベルを選択します。
Outlook VBA マクロ

▲トラストセンター画面が開きますので左側メニューの「マクロの設定」をクリックします。画面右側にセキュリティレベルが表示されますので、マクロが実行できるセキュリティレベルを選択しましょう。わたしの環境ですと図の4つがありました。

マクロを実行するためには下記の3つのいずれかを選択すれば良いかと思います。

マクロの設定

  • デジタル署名されたマクロに対しては警告を表示し、その他のマクロはすべて無効にする
  • 「すべてのマクロに対して警告を表示する」
  • 「すべてのマクロを有効にする」

デジタル署名はマクロに署名の発行が必要です。セキュリティは強化されますがデジタル署名の発行する手間がかかります。

すべてのマクロに対して警告を表示する」は、マクロを実行するたびに警告のポップアップが表示されます。少し煩わしいですが意図しないマクロが自動実行されてしまうリスクを軽減できます。

すべてのマクロを有効にする」は、どんなマクロも警告なしで実行できます。マクロを頻繁に活用する場合は快適ですが、警告が表示されないため意図しないマクロが自動実行されてしまうリスクがあります。

STEP
Excelを再起動します。

設定を反映させるために、Excelを一旦×ボタンで閉じて再度起動します。

(STEP2)開発タブを表示する手順

VBAは、VB Editor(VBE)にプログラムを記述していきます。VBEは「開発」タブメニューからアクセスします。しかし、デフォルトでは開発タブは非表示になっているため、開発タブを表示させましょう。

STEP
「ファイル」メニューをクリックします。
Outlook VBA マクロ
STEP
「オプション」をクリックします。
Outlook VBA マクロ
STEP
「リボンのユーザー設定」の中の「開発」タブにチェックオンします。
Outlook VBA マクロ

▲左側メニューの中の「リボンのユーザ設定」をクリックして、図の「開発」タブにチェックを入れます。チェックをいれたらOKボタンを押して「Outlookのオプション」画面を閉じます。

STEP
「開発」タブメニューが表示されます。

▲図のように開発タブが表示されたらOkです。

マクロを作成しよう。

じょじお

マクロを使い始める準備ができましたので簡単なマクロを書いてみましょう。

VBAでコードを書いてみよう。

STEP
VBEを開きます。
Outlook VBA マクロ

▲Outlookメニューの中の「開発」をクリックします。開発タブに切り替わりましたら「Visual Basic」をクリックします。

ぽこがみさま

VBEはショートカットでも開けます。その方が早いのでおすすめです!

VBEを開くショートカットAlt+F11

Outlook VBA マクロ

▲VBEが開きます。左側がモジュールを管理する「プロジェクトエクスプローラー」です。真ん中の黒い画面がコードを記述するコードペインです。

STEP
標準モジュールを追加します。
Outlook VBA マクロ

▲「挿入」メニューをクリック、「標準モジュール」をクリックします。

Outlook VBA マクロ

▲すると「標準モジュール」の中に「Module1」が追加されます。

STEP
標準モジュールにわかりやすい名前を付けます。
Outlook VBA マクロ

▲Module1という名前だと、どんなプログラムなのかわかりにくいので名前をつけましょう。名前を変更するにはModule1を選択した状態で画面右下のプロパティウィンドウに表示された「オブジェクト名」に名前をタイプします。

モジュール名にはなるべく日本語は使わず半角英字だけで命名した方がいいです

Outlook VBA マクロ

▲わたしは「MyFirstTestProgram」というモジュール名に変更しました。

プロパティウィンドウの表示・非表示方法

プロパティウィンドウが表示されていない場合

「プロパティウィンドウ」が表示されていない場合はVBEのメニュー「表示>プロパティウィンドウ」の順にクリックすると表示できます。邪魔な場合は同じ操作で非表示にできます。

STEP
VBAコードを記述します。

▲モジュールにプログラムを書きます。プログラムコードは真ん中の黒い部分に記述します。今回はテストとして下記のコードを実行してみます。

Sub test()
    Sheet1.Cells(1, 1).Value = "Hello World!"
End Sub

▲Sub ○○() End Subはマクロを書く時のお決まりの文句です。〇〇のとこにはマクロの名前を自分なように付けます。今回はsub test()と書いたのでテストという名前のマクロであることがわかります。マクロ名も日本語を使わずに半角英字の方が良いです。

testのマクロの処理内容は「Sheet1.Cells(1, 1).Value = “Hello World!”」と書きました。

Sheet1はシート1枚目、Cells(1, 1)は1行目1列目のセルつまりA1セル、valueはセルの値を表します。まとめると「シート1枚目のA1セルの値に”Hello World!”をセットする」という意味です。

STEP
マクロを実行します。

マクロを実行してみます。マクロを実行するには2つの方法があります。VBEから実行する方法と、Excelから実行する方法です。

開発中は処理を1行書くたびにVBEから実行することが多いです。マクロが完成した後はExcelの開発タブから実行することになるかと思います。

マクロの2つの実行方法

  • VBEから実行する。
  • Excelの開発タブから実行する。

マクロを実行する方法(VBEから実行)

Outlook VBA マクロ

▲VBEから実行するにはVBEのメニューの中の「実行ボタン」をクリックします。あるいはF5キー押下でも実行できます。

マクロを実行する方法(Excel開発タブから実行)

▲Excelを開き「開発」タブをクリックし、「マクロ」をクリックします。

▲Excelファイルに保存されているマクロ一覧が開きますので先ほど作成した「test」マクロを選択して実行ボタンを押すとマクロが実行されます。

STEP
実行結果を確認します。

▲マクロを実行したらExcelの画面を見てみます。1シート目のA1セルに「Hello World!」という文字が入力されていることがわかります。

STEP

マクロを保存する方法

Excel VBA

▲マクロが正常に動作したら保存します。通常のExcel(.xlsx)ファイルにマクロを保存することはできません。マクロを保存するにはExcelマクロ有効ブック(.xlsm)を選択して保存します。もしxlsxのままファイルを閉じてしまうと作成したマクロは消えてしまうので注意してください。

マクロはExcelファイルの中に保存されます。Excelアプリケーションではありません。このため、基本的に今回作成したマクロが使えるのはこのExcelファイルだけです。(個人用マクロブック機能やExcelアドインを使う等、複数のブックで共有できるマクロを作成する方法はいくつかあります。)

コード作成補助機能(「マクロの記録」)を使ってみる。

マクロの記録とは?

Excelにはマクロの記録と呼ぶVBAコード作成補助機能があります。マクロの記録は、ユーザのExcel操作をVBAコードを自動変換してくれる機能です。

マクロの記録機能が生成するコードは可変的な処理が苦手なので、マクロの記録機能だけで完璧なマクロを作成することを期待しない方が良いでしょう。マクロの記録を使う時は、ある程度ざっくりと「マクロの記録」で作ってから、人間が細かい部分のコード修正をするというやり方が一般的かと思います。

ただし、マクロの記録はマクロの作成をショートカットできるツールではありますが、下記のようなデメリットもありますのでなるべく自分で1から作成することをおススメします。

マクロの記録のデメリット

「マクロの記録」のデメリット

  • リテラル値が頻繁に記録されてしまい可変的な処理が苦手。
  • 反復処理を自動生成できない。
  • 意図しない余分な処理が挿入されやすく冗長的になってしまいそのまま使うには人間がメンテナンスしずらい。
  • 人間の意図を完璧にくみ取ってくれない。

※リテラル値というのは固定値のことです。マクロの記録ではセルに入力された値は関数でなければリテラル値になります。A1セルに10と入力したらcells(1,1).value = 10のようになります。実際のExcel仕事の現場では固定値を使うことばかりではありません。何かの演算や判断の結果でたまたま入力値が10だっただけだとしても、10という固定値が記録されてしまうこがあるのです。このように、マクロの記録では結果に至るプロセスまでを完璧にExcelに理解してもらうのは難しいです。

マクロの記録の使い方は?

STEP
開発タブのマクロの記録をクリックします。
Excel VBA
STEP
マクロ名前と保存先を選択してOKをクリックします。
Excel VBA

▲マクロの名前を入力し、保存先を作業中のブックにしてOKボタンを押します。今回はMacro2という名前のマクロにしました。

STEP
操作の記録モードになります。(レコード)
Excel VBA

▲先ほど「マクロの記録」ボタンがあったところが「記録終了」ボタンに切り替わります。この状態はレコード中を表します。この状態になるユーザのすべての操作を記録します。

STEP
目的の操作を行います。
Excel VBA

▲Excel操作を行います。テストとして下記のようにExcel操作を行いました。

  • A1セル => 1
  • B1セル => 1
  • C1セル => =A1+B1(表示結果は2)
STEP
操作の記録を終了します。
Excel VBA

▲「記録終了」ボタンをクリックします。

STEP
Excel VBA

▲先ほど手作業で入力したセルの値をすべて削除してからマクロを使ってみたいと思います。開発タブの「マクロ」をクリックします。

Excel VBA

▲先ほどマクロの記録で作成した「Macro2」があるのでクリックします。

実行すると削除したはずのセルのデータがマクロによって入力されて復元できるかと思います。

STEP
マクロのコードを確認してみます。
Excel VBA

▲マクロを選択して「編集」ボタンをクリックします。

Excel VBA

▲これがマクロの記録によって自動記録されたコードです。

たった、3つのセルへの入力なのに10行近いコードになってしまっています。ユーザのちょっとしたウィンドウ操作を拾ってしまって無駄なコードも挿入されていたり、冗長的な書き方になっているためです。

例えばA1セルへ値を入力するのに下記のように2行使っています。

Range("A1").Select
ActiveCell.FormulaR1C1 = "1"

Range("A1").value = 1と書けば1行で済むのに2行使っているのです。これが人間が読みづらくメンテナンスしにくいコードといった理由です。

マクロの記録が生成したコードはここで自分で修正できます。自動生成したコードはそのまま使わずに手直しして使った方がいいでしょう。

Excel VBAを学ぶ方法は?

公式ドキュメントを見ましょう。

まずは下記の公式ドキュメントをみましょう。

Excel VBA リファレンス

Excel VBA

▲リファレンスを開くと左側のメニューのExcelのカテゴリの中に3つのメニューがあります。まずは「概要」と「概念」の箇所を読めばいいかなと思います。「オブジェクトモデル」は、VBAで使えるクラス・メソッドのマニュアルなので困ったときに参照する感じが良いかと思います。

じょじお

このリファレンスは、他のプログラム言語でのプログラム経験がある人向けに書かれている(と思われる)ため、このリファレンスを理解することが難しく感じる方も多いと思います。

ぽこがみさま

そんな方には次で紹介する初心者向けのVBA本や動画講座を持っておくと良いかと思います。

Excel VBAおすすめの本。

下記で紹介している「Excel VBAの教科書」が初心者の方の一冊目におすすめです。

Excel時短・VBAのおすすめ書籍

Excel・Wordの基本的な使い方についての初心者向けの解説書です。かなり細かく丁寧に解説されています。著者の方のYouTubeチャンネルも併せて観るとより理解が深まるかと思います。

▲「Excel作業を自動化したいけどVBAはよくわからない・・・」という方でもPower Automate for Desktop(PAD)なら簡単に自動化できるかもしれません。PADは、Windows11にも公式搭載されたMicrosoftのRPAソフトウェアです。本書はPADでExcelなどのパソコン操作全般の自動化の基本がわかりやすく解説されています。

▲「Excel VBAの教科書」というとおりVBAの開き方から解説してるのですが網羅度が半端なくて満足感が高いです。(クラスモジュール・ユーザーフォーム・外部データ取り込み・JSON・Power Queryなど)。JSONやPower Queryは最近のExcelでの使用頻度高いかと思うので個人的にポイント高かったです。網羅度が高いゆえに分厚いです。個人的にVBA書でイチオシ。


Excel VBA マクロが難しくてわからない時は?

ココナラ(Coconala)で発注してみる。

ココナラでExcel・VBAを発注する方法。

VBAが難しくてどうしても自分で解決できなかったり、VBAを書く時間がなかったりする場合は、プロにお願いするという手段もあります。VBAの作成をお願いするならココナラも選択肢のひとつとしてオススメです。システム会社に発注することと比較すれば安いですし気楽に無料の見積もり相談ができます。

ココナラでExcelマクロの作成の見積もりをするには、まずはココナラに無料アカウントを作成します。

無料登録はこちら

▲ココナラでの受注経験をもとに失敗しないための見積もり方法についてまとめました。

\ 登録・見積り無料、スマホからでもOK!/

まとめ

じょじお

以上、VBAマクロの作り方についてご紹介しました。

お役に立てたらシェアお願いします!
  • URLをコピーしました!
  • URLをコピーしました!
目次