とりあえずマクロを作ってみる
VBAに詳しい人が凄いマクロを作れるのは当然のこと(例外もあります)ですが、実はあまり詳しくなくても作ることが出来ます。
Excelには、「マクロ記録」という便利な機能があるので、これを使えば手軽にマクロを作ることが出来るわけです。
これは、クラリスワークスなどのマクロ記録と同じようなもんですね。
一つ大きく違うのは、ExcelではVBAという言語でマクロが作られるので、後から自由に変更できるということです。(もちろん、マクロ記録を使わなくても、一から作ることも出来る)
これは、とても有難いもんです。
例えば、似たようなマクロをいくつも作らないといけない場合、ちょっと違うだけなのに何度も同じようなことをするのは、とても面倒ですよね。「なんでちょっと違うだけやのに同じ事ばっかりせなあかんねん!」ってなもんです。
ところが、Excelでは、いくらでも編集可能なので一度記録すれば後はそれをコピーして編集すればいいだけなんです。
では、下手な文章ばかり続いても何なんで、簡単なマクロを作ってみましょうか。
単純な表を作る(マクロを記録する)
下の表を作る手順を、マクロ記録してみましょう。
あまり、実用的な表ではないですが複雑な表も基本は同じです。
この表は一郎、二郎の小遣い額を記録しておく表です。1年分(1月から12月まで)の12表を作りたいのですが、全て地道に作っていくのは面倒です。
そこで、マクロを使って表を作れるようにしてみましょう。
方法を簡単に説明します。
- 「ツール」メニューから、「マクロ」-「新しいマクロの記録」を選ぶ。
- 「マクロの記録」というダイアログが表示されますよね。ここで、マクロ名にはお好きな名前(私はMacro1としました)を入力し、保存先に「作業中のブック」を選んでから「OK」ボタンを押します。
- 何かツールバーが出てきましたよね。記録が終わる時にはこのツールバーの四角が書いてあるボタンを押しますが、今は無視しましょう。
- さあ、記録しましょう。ここで、深呼吸をして失敗のないように祈りましょう。
失敗すると、その操作も記録されてしまうので後で編集がめんどくさい。 - まず、A1のセルを選んで「小遣い」と入力します。続けて同じようにA3に「一郎」、A4に「二郎」、B2に「1月」と入力します。
- 次に枠を書きます 。
セルのA2からB4までを選んで、選択状態にして、ツールバーの罫線ボタンの下矢印をクリックして田を選びます。 - これで、表が完成しました。マクロ記録を終わります(3で少し触れた四角のボタンを押して下さい)
では、今度は今記録したマクロを実行してみましょう
- まず、新しいワークシートを開いて下さい。
- 「ツール」メニューの「マクロ」-「マクロ…」を選ぶと、「マクロ」ダイアログが表示されます。先程記録したマクロ(私の場合は、Macro1)が、一覧に表示されていますよね。これをダブルクリックしてみましょう。
- どうでしょう、新しいシートに先ほどと同じ表が出来ましたか?出来ていればマクロ記録成功です。出来ていない場合は、どこかで手順を間違えたのかも知れませんね。もう一度チャレンジしてみましょう。
さて、このマクロですが一体どこにあるのでしょうか?
マクロを記録する時に名前を入力したダイアログで、マクロの保存先に「作業中のブック」を選んだのを覚えていますか?
この「作業中のブック」とは、あなたがマクロ記録の時に「一郎」..と入力していたブック、そうそのブックです。
ですが、マクロらしきものは見えませんよね。
では見てみましょう!
1.「ツール」メニューから「マクロ」_「Visual Basic Editor」を選んで下さい。
上のようなウィンドウが表示されましたか。
ここのModule1をダブルクリックしてみましょう。
上のようなウィンドウが表示されます。
このSub Macro1()と書かれているのが先程記録したマクロです。
で、この記述に使われているのがVBAです。
それでは、参考に私が記録したマクロを紹介します。
記録したコード
最初に’と書いてある行はコメントと言って何もしない行です。
とりあえず、自分のマクロと見比べてみましょう。
今回は、内容の説明は省きます。
次回以降で少しずつVBAについて紹介していこうと思いますでこんなマクロはすぐに理解できるようになるでしょう。
さて、このマクロですが、行った操作は忠実に記述されていますが、何とも見にくいプログラムです。
ですが、VBAが分かってくれば、もう少しスマートな形に編集できます。
なあに、そんなのはすぐできるようになります。
さあ、では今度は2月から12月分もマクロを作ってみましょう。
同じようにあと11回マクロ記録しますか? そんなことやってらんないですよね。
先ほどのマクロと違うのは、「1月」の所だけなんですからもっと楽して作りましょう。
では、Sub Macro1 の行から、End Subの行までをコピーして、End Subの次の行に11回ペーストします。これで、12個のMacro1が出来ましたね。では、それぞれのMacro1の1を2から12までに、”1月” の”1”を”2”から”12”までに変更しましょう。これで完了です。 (※すべてMacro1で表を作って、あとから表の方を編集するという手もありますが、ここではあえてマクロを使いたいので忘れとくれ。)
マクロの実行の際にMacro1からMacro12までが一覧されるので、例えばMacro7を実行すれば、7月分ができるようになりました。
でも、同じようなマクロが12個もあるのも何だかなって感じですね。
では、一つで12月分作れるようにしましょう。 いや、そのへんはまた今度説明しましょう。まあ、少し御存じの方なら InputBox関数を使うなり、ワークシートを利用するなりしてより良いものにすることができるでしょう。お時間のある方は、ヘルプと格闘してみて下さい。
今回はとりあえずマクロを使ってみました。失敗を恐れずどんどん試してみましょう。
ただし、何がおきても責任はとれませんので少なくとも自分が何をやろうとしているのかを理解しながら楽しみましょう。「おっ!何かおもろいな。」と思われた方は、きっとVBAをマスタできるでしょう。
さて、次回より暫くは私の勉強法について書きたいと思います。
あまり興味ないと言う方もいる(多い?)とは思いますが、これから覚えようという方には少しは役に立つのではないか思っとりますのでよろしく。
作成:1999/2/24