ExcelVBAへの道
|
2.マクロ マクロはエクセルのワークシート上でした作業をそのまま記録して、コードに自動的に変換してくれる機能です。あくまで、自動的に記録してくれるのがミソなのです。しかし、自動的にコードに変換してくれるのは良い点なのですが、自分が欲しい機能のコード以外の余計なコードまで自動で作成されるのが弱点です。また、自動で自分の欲しいコードが記録することができない場合が多くある点です。自分のして欲しいことは自動でコード化されない。だから、手動でコードを書かなければならない。 それが、VBAなのです。 VBAとはプログラミングコードなのです。 VBAがプログラミングならVBのようなより色々な機能のソフトを開発できる開発プログラムでソフトを作成するほうがいいんじゃない?と思いませんか。 はい、其のとおりです。何でもできるプログラム開発言語によるソフト作成がいいのは決っています。しかし、プログラム開発言語を勉強するには時間がかかります。また、勉強してもソフトを作成するのにも時間がかかります。つまり、時間と手間をかけられる人はプログラム開発言語を選択するでしょう。そんな、時間も面倒な手間もかけたくない人はどうするか? それがエクセルによるVBAでのソフト制作でしょう。エクセルという土台に縛られる代わりに、すでにあるエクセルの機能を利用して簡単に短時間で目的の機能を持ったソフトを作成したいときに便利なのがエクセルVBAです。 エクセルの機能+VBのプログラミング機能をドッキングしたVBAを利用しようというのです。 また、いつも使っているエクセルなら使えるし、新たに別のソフトの操作を習うのが面倒な人にもいいでしょう。 エクセルで自分独自のソフトを作成したいと思うなら次の手順で学習することをお勧めします。
この手順で学習することをお勧めします。
メニューのツール>マクロ>新しいマクロの記録>マクロの停止ボタンが表示されれば記録開始の準備ができました。(Macro1) つぎは、繰り返し行いたい処理を実際に1度行います。 例 印刷範囲を範囲選択>ツールバーの印刷ボタンをクリック>マクロ記録停止ボタンをクリックしてマクロの記録を終了します。 以上でマクロの記録は終わりです。簡単です。 3、今記録したマクロを実行します。 例 メニューのツール>マクロ>マクロ>マクロダイアログボックスの表示>マクロ名を選択(Macro1)実行ボタンをクリックすると自動的に範囲選択して印刷がされます。 これがマクロです。簡単ですね。 ※ 記録終了ツールバーが表示されない場合には次の手順で表示してください。 1、メニューの表示>ツールバー>記録終了をクリックします。 でも、これだとメニューから操作するのが面倒です。 そこで、ワークシート上にボタンを作成して、そのボタンをクリックすると記録したマクロが実行されるようにしましょう。 手順は
以上でワークシート上のボタンにマクロが登録されました。 これでボタンをクリックするとマクロが実行されるように関連付けられたのです。 この要領で色々なマクロを作成できます。 試しに、セルに色を付けるマクロを作成してみてください。 手順
ちゃんと色で塗りつぶすマクロが実行されるか確かめて見ましょう。 色の付いていないワークシート上の任意のセルをクリックした後、2個目のボタンをクリックしてください。どうですか?無事にセルが色で塗り潰されましたか? 多分、ちゃんと色が付いたと思いますが、失敗した人は再度新しいマクロの記録から行ったください。でも、今度はマクロ名はマクロ3ですからお間違いのないようにしてください。
同じセルにしか色が付かない人は、新しいマクロの記録の操作をした後で、セルをクリックして選択したからです。マクロの記録をする前にワークシート上の1つのセルをクリックしておかないと、特定のセルを選択した後で色を付けるマクロとして記録されてしまうので、特定のセルにしか色が付かないのです。
記録終了ボタンが表示されていないので、マクロの記録が続いている。この場合にはメニューのツール>マクロ>記録終了をクリックしてマクロの記録を終了します。 マクロのコード マクロのコードはどこに記録されるのでしょうか? コードの表示の仕方
例 Sub Macro1( ) ' Macro1 Macro 'マクロ記録日 : 2003/12/14 ユーザー名 : nikoniko .ColorIndex = 6 .Pattern = xlSolid End With End Sub Sub Macro1( )部分がマクロ名です。 以下がコメント部分です。実行コードではありません。もちろん、無くてもチャンと動きます。行の先頭に
’が付いているのはコードではなくコメント(説明)という意味です。 ' コメント部分の次からの行が実際の動作を命令するコード部分です。 With Selection.Interior .ColorIndex = 6 .Pattern = xlSolid End With End SubはSub Macro1( )の結語です。 Subマクロ名( ) コメント部分 実行部分 End Sub コードはSubで始まりEnd Subで終わります。この間にあるのがコメント部分と実行部分のコードです。 最低限必要な部分は Sub Macro1( ) With Selection.Interior .ColorIndex = 6 .Pattern = xlSolid End With End Sub の部分です。 マクロはプロジェクトウィンドウの標準モジュールのModuleの中に書かれているのです。 でも、いったんエクセルを終了して再度エクセルを起動してから新しいマクロを記録するとModule2というモジュール名ができてこの中に新しいマクロコードが記録されています。つまり、一度エクセルを終了させると新しいModule名が作成されてその中にコードが記録されていくのです。 Module1 Module2 Module3 Module4 のように連番のModuleが作成されます。 いくつもModuleができると管理がしにくいので、どれか1つにコードをまとめます。 Module1にModule2、Module3、Module4の実行部のコードをコピーした後、不要なModule2、Module3、Module4を削除します。 Moduleの削除はModule名の上で右クリックしてModuleの開放をクリックします。エクスポートするかどうか尋ねてきますが、保存しないので「いいえ」をクリックします。まとめられたコードはそのままVBAコードとして使えます。 標準モジュールの挿入
|