皆さんは普段の業務でエクセルのマクロ機能を使用されますでしょうか?私は技術系の職業にずっと携わってきたので、使いそうなものなのですが、実際のところほとんど使用しません。
転職前後のどちらの職場も、配置ローテーションを基本としたキャリア形成を前提としていたので、3~5年おきに部署異動がありました。
マクロのように一部の人が開発できるようなツールでシステムを構築してしまうと、その担当者がいなくなった際にトラブル対応ができなくなるといった理由で、「可能な限り数式機能で作成しなさい」といった指導を受けてきました。
明確な規定とかはないのですが、過去のトラブルを踏まえてそのような運用としているといった感じです。全国転勤が前提の総合職や社員数の多い大企業では似たような風潮があるのではないでしょうか。
そのような中でも、どうしても業務を効率化するのに自動化したいが、なかなか数式では実現が難しいといった時があると思います。そんな際に有効な、マウス操作だけでできるマクロの作成方法を紹介します。
マクロ作成の下準備、『開発』リボンの出し方
普段マクロを使われない方や、パソコンの更新を行った方はマクロを作成するための『開発』のリボンが表示されていないかもしれません。その際はメニュータブの『ファイル』をクリックし一番下にある『オプション』をクリックしします。

出てきた『Excalのオプション』のダイアログボックスから『リボンのユーザー設定』を選択します。右側にリボンのユーザー設定があると思いますのでプルダウン(▼マーク)から『メインタブ』を選択し、その中にある『開発』にチェックを入れます。

チェックをいれてOKをクリックすると元のエクセルシートに戻ります。メインタブを見て『開発』のリボンが追加されていればマクロを作成する準備は完了です。

『リボンのユーザー設定』はメインタブの適当なメニューの上にマウスカーソルを合わせて、右クリックすることでショートカット的に出すことができます。

マウス操作でマクロを作成する方法
今回マクロ化する操作の例
エクセルにはいろんな種類の関数が用意されておりますので、組み合わせることで「こんなことできないかなー」と思うことは大体でできます。しかしながら中には関数では対応が難しい処理もあります。
今回は関数での表現が難しい例として、表の一部(下の例では消費税8%の食品)を抜き出して、空白を詰めて、昇順に並べ替える以下の処理をマクロで作成してみます。

上の例のF列の『食品』には『=IF(D3=8,E3,””)』という関数が入れられており、食品のみ抜き出す作業は関数で済ませることとしました。上の数式の意味は「もしD列の消費税が『8』だったら、E列の税込みを表示し、『8』じゃなければ空白セル『””』にしなさい」という意味です。

マクロの記録
マウス操作だけでマクロを作成するにはメインタブの『開発』から、『マクロの記録』をクリックします。『マクロの記録』のダイアログボックスが出てきたら、区別できるようにマクロに名前をつけて、OKをクリックします。
この操作が今回の記事の一番のポイントで、この『マウスの記録』のOKをクリックすると録画モードのようにそれ以降のエクセル操作が全てマクロ操作として記録されます。

マクロ化する操作例の詳細
録画モードになったら、通常のエクセル操作を行います。
今回の例であれば、まず、表全体もしくは食品の列(F列)ドラッグして選択し、メインタブの『データ』から『フィルター』を選択します。
するとプルダウンからフィルターがかけられるようになるので、プルダウンをクリックし、リストの一番下にある『空白のセル』のチェックマーク☑を外します。
OKを押すと食品の列(F列)が空白セルになっている行は非表示になります。

次に、表全体がドラッグにより選択された状態で、メインタブの『データ』から『並べ替え』を選択します。並べ替えのダイアログボックスが出てきたら、『優先されるキー』のプルダウンから『食品』を選択し、『順序』のプルダウンから『昇順』を選択します。
OKをクリックしてボックスを閉じると、食品の列(F列)の値が小さい順に並びます。

昇順、降順という表現に聞き馴染みがない方もいるかと思います。昇順は階段を上るように小さい数から大きい数の順(小さい順)に並びます。反対に、降順は階段を降りるように大きい数から小さい数の順(大きい順)に並びます。
記録の終了
ここまで出来て、マクロの記録を終了させたいとなった際には、メインタブの『開発』から『記録終了』をクリックして終わらせます。

マクロの実行
記録したマクロを実行するには、『開発』タブの『マクロ』をクリックします。出てきたマクロのダイアログボックスの中から、目的のマクロ名を選択し『実行』をクリックします。すると先ほど記録した操作が自動で実行されます。

ちなみに『マクロ』のダイアログボックスの『編集』をクリックすると、マクロの中身であるVBAの記載が見られます。VBAの記述ができる方であれば、ここから編集することが可能です。
VBAがほとんどわからない人にとっても、中身を見ると、「この操作はこんな風に記載するんだ~」と参考になります。マクロの記録によってどんなVBAが書き起こされたかをチェックすることで実践的に勉強できるかと思います。

マクロ実行ボタンを使ってみる
マクロの実行はボタン機能を使えば、あなたが作ったマクロファイルを他の人が使う時に、「あ、マクロで作ってあるんだ」と分かってもらうことができ、簡単に操作に誘導することができます。
まず、『開発』タブの『挿入』から『ボタン(フォームコントロール)』を選択します。

シートの上にマウスポインターが+マークになるのでドラッグしてボタンのサイズを調整します。

ドラッグを離すと『マクロの登録』というダイアログボックスが出てきます。『マクロ名』のところが、デフォルトでは『ボタン1_Click』のような表記になっていると思うので、下の選択欄にある既存マクロから先ほど作った『並べ替えマクロ』を選択してOKを押します。

OKを押したら、ボタンができますが、デフォルトのままのテキストではわかりづらいので、好みのテキストに書き換えます。このテキストはメインタブの『ファイル』からフォントサイズやフォントの種類を変更できます。

テキストまで変更できたら、一度、シートの空白部分をクリックするか『Escキー』を押して、テキストの編集モードを終了します。もう一度テキストを編集したい時はボタンを右クリックして『テキストの編集』を選択すればできます。
ここまで来たらボタンは完成です。ボタンの上にマウスポインタ―をあわせると、指マークになると思います。そのままクリックすると、登録されたマクロが実行されます。

このマクロボタンを移動させる場合、一般的な図形のように左クリックでは、マクロが実行されるので移動できません。代わりに右クリックのドラッグをして移動させます。

マクロファイルを保存する
エクセルファイル内でマクロを作成しましたら、マクロに対応したファイル形式で保存しないと、動作しません。通常のエクセルファイルで保存すると『Excel ブック』という形式で保存され拡張子(ファイル名の語尾につくアルファベットの文字列)は『.xlsx』となっていると思います。これを『名前を付けて保存』する際に『Excel マクロ有効ブック』(拡張子は .xlsm)で保存します。

さいごに
わたしも新入社員の頃、先輩に教えられて感銘を受けた記憶があります。『みんなが使える』という点が一番重要だと思っており、この内容はプログラミング知識がなくても誰でも作成して、使うことができます。今回はなるべくわかりやすくなればと思い操作例を示しましたが、皆さんの工夫次第で、いろいろな効率化ができると思います。
皆さんのお仕事に少しでも役立てれば幸いです。ではまたノシ
コメント