エクセルのマクロの使い方って全然わからないんですよね!
どうすればいいの?
えっ! 何から教えればいいの? どうしよう!
このブログはじめたころ、ExceVBAについての最初の記事でこんな書き出しをしています
仕事でExcelを使っています。作業能率を上げるためvbaを使って効率化しています。せっかくなので自分が使っているvbaを公開していこうと思います
ExcelVBA最初の記事は下のブログカードです
ただ、web上にはvbaに関する優れた解説サイトが多数あるので今更そこに参入していくつもりはありません。解説の部分はそちらにお任せするようにします
実は勤務先から、コロナ禍による在宅勤務中に「初心者向けにマクロの使い方について情報紙を作ってもらえないか」という依頼がきたんです
それじゃあ~! 最初にエクセルのマクロに出会った時どうだったかなぁ・・・ そうだ!「マクロの記録」だ!
そういえば、「マクロの記録」を適当にやってみた記憶があります。自分が動かしたとおりのことが一瞬で終わるのを見て、「すごい!」と思ったんだよなぁ
とういうわけで、「マクロの記録」から解説していくことにします
【この記事でわかること】
・Excelで「マクロの記録」を使ったことのない方でも使い方がわかります
・「マクロの記録」で自動記録されたマクロ(VBA)の概要がわかります
・「マクロの記録」では記録されない部分があることがわかります
記事で使用したサンプルファイルはこちらのリンク先でダウンロードできます
Excelの「マクロの記録」とは
はじめに「マクロ」とは
マクロ は「大きい」「巨大な」といったような意味の語であるが、コンピュータ関係では、アプリケーションソフトウェアなどの操作などといった、プログラミング言語と比較して粒度が大きい操作をまとめて自動化したりする機能を指して良く使われる。マクロを記述するコンピュータ言語をマクロ言語と言う。
引用元:ウィキペディア
簡単に言うと、アプリにおけるマクロは「複数の操作をまとめて自動化し必要に応じて呼び出せるようにする機能」ということです。MicrosoftOffice製品に標準搭載されていて、その中のExcelでの利用が可能ということです
Excelの「マクロの記録」でできること
「マクロの記録」は、プログラムコードを書かなくてもボタンを押すだけで簡単にマクロが作成できる機能です。プログラミングの知識を持っていなくても自分の業務や作業を自動化して効率化することができます(マクロで記録される言語が VBA【Visual Basic for Application】です)
「マクロの記録」でできることは、記録開始のボタンを押してからユーザーが操作した内容がすべて「マクロ」として記録されます。そして、その記録した操作内容の「マクロ」を自動的に再現(再実行)できるようにするというすごく便利な機能です。普段マウスやキーボードなどで定型的に行っている作業を「マクロの記録」で自動化することができるというわけです
Excelの「マクロの記録」ではできないことなど
「マクロの記録」でなんでもすべてできるわけではありません。できないことなどについて少し説明しておきます
マウスとキーボードで操作出来ないものは記録されません
・「マクロの記録」はマウスとキーボードの操作でブックやシート、セルに行った処理を記録しています。だから、それ以外のものは記録に残っていません(マウスとキーボードで操作出来ないものは記録できません)
ダイアログボックスを表示する操作は記録されません
・ダイアログボックスを表示する操作は記録されません。その結果は表示されます
その他つぎのような支障があります
・記録しなくてもよいことが記録されてしまう(スクロールや移動の記録など)
・状況によって操作を変えるようなことはできません(条件によって違う処理)
・同じ操作を自動で繰り返すようなことはできません(条件に達するまで繰り返す)
Excel「マクロ記録」の使い方
「マクロ記録」の使い方についてその方法を解説していきます
「マクロの記録」はどうやってやるの?
・(開発タブがあれば)「開発」タブ→「コード」グループ→「マクロの記録」または
・「表示」タブ→「マクロ」→「マクロの記録」一番簡単(下の画像参照)
・右端の【マクロ】メニューを選択すると、マクロに関するメニューが表示されるので【マクロの記録】を選択します
- 左の「マクロの記録」ダイアログが表示されたら適当なマクロ名を入れます(画像はデフォルト表示のままです)。最後に【OK】ボタンを押下します
- 「ショートカットキー」を指定しておくと、ショートカットキーでマクロを実行できるようになります
- 「マクロの保存先」で別のブックを選択することができます
- 「説明」にはマクロ内容を記載してことができます
・【OK】ボタンを押下すると「マクロの記録」が開始されます
・マクロの記録中は左下に黒い■アイコンが表示されています
・■アイコンが表示中に実行したマウスやキーボードの操作を記録しています
・上の画像では、項目の入力と「ID」「名称」の入力を行っています
・■アイコンを押下すると、記録が中止されます
記録された「マクロ」を実行してみます
・記録されたマクロを実行させる方法は4つあります
1 Excelの「マクロ」から実行する方法
2 ショートカットキーで実行する方法(「キー」を設定しておく必要があります)
3 ボタンを作成して実行する方法(ボタンに「マクロ」を登録して実行させます)
4 VBA上で実行する方法(VBエディターで実行する。またはVBAコードの中から「マクロ」を呼び出して実行します)
Excelの「マクロ」から実行してみます
マクロメニューの「マクロの表示」からマクロ名を選択して「実行」ボタンを押下します
・右上の画像が実行後の画像です。実行開始前にデータをすべて削除してから実行しました
・実行したことがわからないくらい「一瞬」で元通りにデータが入力されました
・「マクロ」を使えば、日頃の定型的な作業がきっと効率化できます。是非試してみてください
記録された「マクロ」を確認してみましょう
・では、記録された「マクロ」はどうなっているのか確認してみましょう
「マクロ」編集からVBE(Visual Basic Editer)を表示できます
・左の画像は、先ほど「マクロ」を実行する際に表示したダイアログです
・「実行」ボタンの二つ下に「編集」ボタンがあります
・「編集」ボタンを押下します
・すると、下の画像のようなエディターが表示されます
・これがVBE(Visual Basic Editer)です
・「プロジェクト」の標準モジュールの中に「Module1」とういうものがあります
・右側の枠に表示されているのが記録された「マクロ」のコードです。VBAで書かれています
記録された「マクロ」のコードを確認してみます
・コードをそのまま貼り付けています
Sub Macro1()
'
' Macro1 Macro
'
'
Range("A1").Select
ActiveCell.FormulaR1C1 = "ID"
Range("B1").Select
ActiveCell.FormulaR1C1 = "名称"
ActiveCell.Characters(1, 2).PhoneticCharacters = "メイショウ"
Range("C1").Select
ActiveCell.FormulaR1C1 = "DATE"
Range("D1").Select
ActiveCell.FormulaR1C1 = "項目1"
ActiveCell.Characters(1, 2).PhoneticCharacters = "コウモク"
Range("E1").Select
ActiveCell.FormulaR1C1 = "項目2"
ActiveCell.Characters(1, 2).PhoneticCharacters = "コウモク"
Range("A2").Select
ActiveCell.FormulaR1C1 = "1"
Range("A3").Select
ActiveCell.FormulaR1C1 = "2"
Range("A4").Select
ActiveCell.FormulaR1C1 = "3"
Range("A5").Select
ActiveCell.FormulaR1C1 = "4"
Range("A6").Select
ActiveCell.FormulaR1C1 = "5"
Range("A7").Select
ActiveCell.FormulaR1C1 = "6"
Range("A8").Select
ActiveCell.FormulaR1C1 = "7"
Range("A9").Select
ActiveCell.FormulaR1C1 = "8"
Range("A10").Select
ActiveCell.FormulaR1C1 = "9"
Range("A11").Select
ActiveCell.FormulaR1C1 = "10"
Range("A11").Select
Selection.End(xlUp).Select
Range("B2").Select
ActiveCell.FormulaR1C1 = "aaa"
Range("B3").Select
ActiveCell.FormulaR1C1 = "bbb"
Range("B4").Select
ActiveCell.FormulaR1C1 = "abc"
Range("B5").Select
ActiveCell.FormulaR1C1 = "aab"
Range("B6").Select
ActiveCell.FormulaR1C1 = "cfd"
Range("B7").Select
ActiveCell.FormulaR1C1 = "sxb"
Range("B8").Select
ActiveCell.FormulaR1C1 = "cba"
Range("B9").Select
ActiveCell.FormulaR1C1 = "frb"
Range("B10").Select
ActiveCell.FormulaR1C1 = "eec"
Range("B11").Select
ActiveCell.FormulaR1C1 = "aad"
Range("B12").Select
Selection.End(xlUp).Select
Selection.End(xlUp).Select
End Sub
・残念ながら(^^; わりときれいなコードになっちゃってます
・「Selection.End(xlUp).Select」などショートカットを使った記録です
・ショートカットを使っていなければ、セルを移動したりスクロールしたとおりに記録されることになります
・漢字の読み仮名まで記録されています
・セルを選択「Select」してからそのセルに入力しているのがよくわかります
「マクロ」付のExcelを保存しましょう
・表示したマクロのコードとマクロ表示ダイアログを閉じてExcelを保存してください
こんなメッセージが出てきたけど、どうすればいいの?
はい!普通のExcelファイルの拡張子は「.xlsx」です。でも「マクロ」がある場合は拡張子が違うんだよ。「.xlsm」になってるんだよね!
だから、ここで「はい」を押しちゃうと、せっかくできた「マクロ」が消えちゃうので注意してね!!
「いいえ」を選んで、ファイルの種類を「マクロ有効ブック(*.xlsm)」に指定して保存してね(^^)/
・無事保存が出来たら、今回はここで終了です!
・この続きは次回記事まで少しお待ちください。・・・・ご期待くださ~い(^^)/
まとめ(おわりに)
まとめと感想など
・Excelで「マクロの記録」を使ったことのない方でもわかるように説明しました
・「マクロの記録」で自動記録されたマクロ(VBA)の概要を説明しました
・「マクロの記録」では記録されない部分があることがお判りいただけたでしょうか
・「マクロ」付のExcelの保存は、ファイルの種類を「マクロ有効ブック(*.xlsm)」に指定して保存しましょう(そうしないと「マクロ」は保存されません)
・マクロ(VBA)を実行する際は必ずバックアップを取ってから行ってください!
・マクロ(VBA)は実行後にファイルを保存すると元に戻すことはできません!
・実行後にファイルを保存せず終了すれば、実行前に戻すことができます!
★★★ ブログランキング参加中! クリックしてね(^^)/ ★★★
今後の記事について
今回の記事はいかがだったでしょうか。皆さまのお役に立てたなら幸いです(^^;
是非!サンプルファイルをダウンロード出来ますのでそのまま使ってみてください(^^)/
当面は今回の記事に続き「初心者向けマクロ」の記事を継続して書いていきます
【検討中の今後の記事内容は・・・・・】
・実務に役立つものを提供できるよう現在検討中です
・その他雑記的に「小ネタなどいろいろ」・・・・・
・今後の記事にご期待ください(^^)/