【エクセル】プログラミング知識ゼロでも簡単に自動化できるExcelマクロ

ExcelVBA

エクセルに悩む人「Excelで自動化したいけどマクロって何?」「VBAとは違うの?」

今回はこんな疑問に答えたいと思います。

こんにちは、Fujiya(@fujiya_xyz)です。

ExcelVBAに比べて、「マクロ」の方が一般的に認知されているとは思うのですが説明できる人って多くない印象です。マクロ=VBAだと思っている人もたくさんいるんですよね。

実際、以前に転職の面接を僕が受けた時の話なのですが、「VBAツールの作成などが出来ます」という僕の発言に対して『あ~、あのマクロのやつですね』みたいな返答をいただいたことがあります。「ホントにわかってますか?」と心の中では思いましたが、面接だったので否定はしませんでした。

多くの人が面接官と一緒で、名前は聞いたことがあっても正しく理解をしている人は多くないと思います。

記事の内容

  • マクロとVBAの違い
  • マクロとは何か?
  • 【デモ】自動印刷のマクロを作成
  • マクロの設定とセキュリティ

マクロとVBAは違う

  • マクロ・・・・操作を自動化するための技術。コードが必要ない。操作を録画できる。
  • VBA・・・・「VisualBasicforApplications」の略、プログラミング言語。これでマクロを作成。

「マクロ」は面倒な作業を自動化、一瞬で終わらせることが出来る技術のことなんです。特に凄いと思うのが、動画を撮影するように操作手順をマクロに記録できるところ。何も知らなくても操作を1度記録することで、次回からは自動化できてしまうという優れものです。

一方「VBA」はマクロを実行するために構成されるプログラミングコード言語です。”プログラミング”と言われるとおりに、知らない人には訳の分からない文字の羅列になりなります。
参考:【エクセル】vbaとは何ですか?に答えます

これでわかっていただけたと思うのですが、「マクロ」と「VBA」は全然別モノなのです。

エクセルは1つ1つのセルに毎日毎回手打ちで入力していくのって大変ですし、人間なので間違いも起こりやすくなります。この技術と言語を使うことで、そんな作業をボタン1つで終わらせられるようにすることが出来てしまうんですね。

僕の職場でも毎日表計算する業務があり、作業が終わるまでに長いときは半日費やすこともありました。現在はVBAを導入したことによって数分で完了します。ホントに神です。

少し本題からズレますが、この経験から僕が読者さんに一番わかって欲しいのは「エクセルを使いこなせるか使いこなせないかで時間効率や成果が大きく変わること」を知ってもらいたいと思っています。

マクロはVBAを誰にでも使えるようにしたもの

『VBAはマクロを実行するためのコード』と言いましたが、このプログラミング言語を使えるようになると、たくさんのコードを組み、自分の思った作業ツールを作ることができます。しかし、VBAを使うには専門的な知識が必要になります。僕の経験上、通常のエクセル操作のように感覚的に覚えていくことは難しいです。

これに対し、マクロ操作を使うと簡単に自動化ツールを作ることができます。操作は「記録開始」⇒「実際に作業する」⇒「記録終了」という”作業を録画”するような流れになっており超簡単です。実際には録画動作によってエクセルが勝手にVBAコードを作成している状態になるので専門的な知識も必要ないというワケです。

ここで出てくる疑問なのですが「エクセルが自動で作成してくれるなら全部マクロで良いのでは?」という人もいるでしょう。答えは、それでもOKです。

ただマクロ機能は、複雑な操作が多くなってくると自動作成が難しかったり、必要以上にたくさんのコードが作成されがちなります。僕もマクロだけでは限界を感じてVBAを勉強したということがあります。それほど複雑なマクロ操作が必要なければそれまでですが、エクセルで超効率化を目指すのであれば今後VBAの知識は身につけていく必要があると思います。

興味のある人は、僕の経験を基に作成したVBAを学べるロードマップ記事のリンクを下に貼っておきますので参考にしてください。

参考リンク

マクロでできること【実例】

ここでは僕が実際にマクロで行なったことを挙げてみたいと思います。

  • フィルターから自動で抽出
  • 自動保存
  • 自動印刷

「フィルターから自動で抽出」は、よく使うフィルターをマクロに記録をしてボタンを押せば一発で抽出できるという感じにしてました。「自動保存と印刷」は、ボタンを押すと一発で印刷できるという感じにしたり、保存と印刷を同時に行なったりという感じですね。

ぶっちゃけると、そんなに多くはないです。理由は統計業務を行う中でマクロだけではすぐに頭打ちになってしまいVBAを導入したからです。と言っても、簡易作業であればマクロの方が全然楽。作業を記録する数秒間でプログラムを作成できるので時間効率は圧倒的にマクロの方が良いです。

【デモ】マクロを使って自動で印刷をしてみる

マクロを使ってデモを紹介します。

調べてみると他の紹介サイトでは、特定のセルに文字を入力したり、フォントの色や大きさを変更していることが多いのかなと思います。『実際これいつ使うの?』って感じなことが多かったので、ここでは「自動印刷」についてマクロで操作してみたいと思います。

以下のような封筒に印刷するExcelシートを例とします。

Excelマクロで印刷デモ

シートの印刷ボタンをクリックすることで、自動印刷が開始されるマクロです。実は以前に作成した『【VBAで印刷】エクセル作業をボタン1つで楽にするプログラム』でVBAを使った同じような記事を書いているのですが、今回はマクロなのでさらに簡単なやり方です。

まずは開発タブの表示

『マクロの作業メニュー』はデフォルトでは表示されません。それには「開発タブ」を表示する必要があります。

開発タブ

開発タブの表示流れ

  1. 「ファイル」を選び、「オプション」⇒「リボンのユーザー設定」
  2. 「開発」のチェックボックスにチェックを入れる(下画像)
  3. 「OK」をクリック

開発タブの表示

開発タブの表示方法は『VBE(VisualBasicEditor)の起動方法』でも解説していますので参考にしてください。

ボタン(図形)を作成する

まずボタンとなる図形を挿入して、テキスト編集で『印刷』と入力します。図形の形や色は何でもOKです。

図形挿入の手順(下に画像あり)

  1. 挿入タブをクリック
  2. 「図」から「図形」をクリック
  3. 好きな図形を選ぶ

Excelシートに画像を挿入する

図形を挿入してテキスト編集

このまま印刷すると図形も印刷されてしまうので「オブジェクトは印刷しない」設定をします。

図形を印刷しないようにする手順(画像あり)

  1. 図形を右クリック
  2. 図形の書式設定を選択
  3. 図形オプションの「サイズとプロパティ」をクリック
  4. 「プロパティ」の『オブジェクトを印刷する』のチェックを外す

プロパティからオブジェクトを印刷しない設定をする

これで完了です。

今回はVBAコードが必要のないボタンですが、VBAを使ってボタンを作成する場合には『シートにボタンを作成して作業を効率化する』で説明しているのでご参考あれ。

マクロの記録

いよいよ作業開始です。開発タブのメニューから「マクロの記録」をクリックします。

マクロの記録をクリック

マクロ名や説明を入力するフォームが表示されるので、今回はわかりやすく「印刷」とします。

マクロ名や説明のフォーム

OKをクリックすると作業の記録が開始されますので、通常の印刷作業します。印刷が完了したら、『記録終了』をクリックします。これでマクロ登録が完了です。超簡単。

マクロをボタンに登録する

作成したマクロをボタン(図形)に登録します。これをすることでボタン(図形)をクリックしたら自動的に印刷が開始されるようになります。

図形(ボタン)を選択し、右クリックします。次に『マクロの登録』をクリックし、「印刷」を選択し「OK」で登録完了です。

マクロの登録

これでボタン(図形)をクリックすると印刷されるはずです。

マクロ作成した際の保存方法「マクロ有効ブック」

最後になりますが、今後マクロを使用するにあたって必須なのが「マクロ有効ブックで保存」です。これは難しいことではなく、通常の保存方法とほぼ同一です。ファイルの種類から選択するだけです。

マクロ有効ブックでの保存方法

  1. 「ファイル」から「名前をつけて保存」を選択
  2. ファイルの種類を「Excelマクロ有効ブック」を選択し保存

おそらく普通に保存を使用するとエラーメッセージが表示されるので強制的にマクロ有効ブックで保存することになると思います。また、コンテンツの有効化や保護解除設定が必要な場合がありますが不明なことがありましたら@fujiya_xyzまでDMをいただけると幸いです。

今回の記事は以上になります。
最後まで読んでいただきありがとうございました。