ExcelVBAへの道
 
2.マクロ

マクロはエクセルのワークシート上でした作業をそのまま記録して、コードに自動的に変換してくれる機能です。あくまで、自動的に記録してくれるのがミソなのです。しかし、自動的にコードに変換してくれるのは良い点なのですが、自分が欲しい機能のコード以外の余計なコードまで自動で作成されるのが弱点です。また、自動で自分の欲しいコードが記録することができない場合が多くある点です。自分のして欲しいことは自動でコード化されない。だから、手動でコードを書かなければならない。

それが、VBAなのです。

VBAとはプログラミングコードなのです。

VBAがプログラミングならVBのようなより色々な機能のソフトを開発できる開発プログラムでソフトを作成するほうがいいんじゃない?と思いませんか。

はい、其のとおりです。何でもできるプログラム開発言語によるソフト作成がいいのは決っています。しかし、プログラム開発言語を勉強するには時間がかかります。また、勉強してもソフトを作成するのにも時間がかかります。つまり、時間と手間をかけられる人はプログラム開発言語を選択するでしょう。そんな、時間も面倒な手間もかけたくない人はどうするか?

それがエクセルによるVBAでのソフト制作でしょう。エクセルという土台に縛られる代わりに、すでにあるエクセルの機能を利用して簡単に短時間で目的の機能を持ったソフトを作成したいときに便利なのがエクセルVBAです。

エクセルの機能+VBのプログラミング機能をドッキングしたVBAを利用しようというのです。

また、いつも使っているエクセルなら使えるし、新たに別のソフトの操作を習うのが面倒な人にもいいでしょう。

エクセルで自分独自のソフトを作成したいと思うなら次の手順で学習することをお勧めします。

  1. マクロについて学習する。
  2. VBAについて学習する。
  3. シート上のVBAについて学習する。

この手順で学習することをお勧めします。
マクロは請求書などの連続印刷などのように繰り返し行う処理を自動化するのに適しています。マクロは操作そのものを記録してくれるのでとても簡単に誰でも使える機能です。

  • マクロの記録の仕方

メニューのツール>マクロ>新しいマクロの記録>マクロの停止ボタンが表示されれば記録開始の準備ができました。(Macro1

つぎは、繰り返し行いたい処理を実際に1度行います。

印刷範囲を範囲選択>ツールバーの印刷ボタンをクリック>マクロ記録停止ボタンをクリックしてマクロの記録を終了します。

以上でマクロの記録は終わりです。簡単です。

3、今記録したマクロを実行します。

メニューのツール>マクロ>マクロ>マクロダイアログボックスの表示>マクロ名を選択(Macro1)実行ボタンをクリックすると自動的に範囲選択して印刷がされます。

これがマクロです。簡単ですね。

    記録終了ツールバーが表示されない場合には次の手順で表示してください。

1、メニューの表示>ツールバー>記録終了をクリックします。

でも、これだとメニューから操作するのが面倒です。

そこで、ワークシート上にボタンを作成して、そのボタンをクリックすると記録したマクロが実行されるようにしましょう。

手順は

  1. メニューの表示>ツールバー>フォーム>でフォームツールバーを表示します。

  2. フォームツールバーの中のボタンをクリックしてマウスポインタが+の形になったら、ワークシート上をクリックしてそのまま右下に少しドラッグしてください。

  3. ボタンが作成されます。

  4. ボタンが作成されたら、マクロの登録ダイアログボックスが自動的に表示されるのでマクロ名をクリックして選択後、実行ボタンをクリックします。

以上でワークシート上のボタンにマクロが登録されました。

これでボタンをクリックするとマクロが実行されるように関連付けられたのです。

この要領で色々なマクロを作成できます。

試しに、セルに色を付けるマクロを作成してみてください。

手順

  1. ワークシート上の1つのセルをクリックしておく。

  2. メニューのツール>マクロ>新しいマクロの記録>マクロの停止ボタンが表示される。

  3. 書式設定ツールバーの塗りつぶしボタンをクリックして任意の色でセルを塗ります。

  4. マクロの停止ボタンをクリックしてマクロ記録を終了します。

  5. これで2つ目のマクロが作成されました。

  6. フォームツールバーのボタンをクリックして2個目のボタンをワークシート上に作成して、マクロ登録ダイアログボックスからマクロ2(色で塗りつぶすマクロ)を選択して実行ボタンをクリックしてマクロを登録してください。

ちゃんと色で塗りつぶすマクロが実行されるか確かめて見ましょう。

色の付いていないワークシート上の任意のセルをクリックした後、2個目のボタンをクリックしてください。どうですか?無事にセルが色で塗り潰されましたか?

多分、ちゃんと色が付いたと思いますが、失敗した人は再度新しいマクロの記録から行ったください。でも、今度はマクロ名はマクロ3ですからお間違いのないようにしてください。

  • 失敗のケース1

同じセルにしか色が付かない人は、新しいマクロの記録の操作をした後で、セルをクリックして選択したからです。マクロの記録をする前にワークシート上の1つのセルをクリックしておかないと、特定のセルを選択した後で色を付けるマクロとして記録されてしまうので、特定のセルにしか色が付かないのです。

  • 失敗のケース2

記録終了ボタンが表示されていないので、マクロの記録が続いている。この場合にはメニューのツール>マクロ>記録終了をクリックしてマクロの記録を終了します。

マクロのコード

マクロのコードはどこに記録されるのでしょうか?
標準モジュールのMoculeに記録されます。

コードの表示の仕方

  1. メニューのツール>マクロ>マクロダイアログボックス>マクロ名選択>編集ボタン>Visual Basic Editorが起動して自動的に選択したマクロ名のコードが表示されます。

  2. Visual Basicツールバーを表示しておいてVisual Basic EditorボタンをクリックしてVisual Basic Editorを起動して左側に表示されるプロジェクトウィンドウのModuleをダブルクリックしてマクロのコードを表示する。

Sub Macro1( )

' Macro1 Macro

'マクロ記録日 : 2003/12/14 ユーザー名 : nikoniko
   With Selection.Interior

       .ColorIndex = 6

       .Pattern = xlSolid

   End With

End Sub

Sub Macro1( )部分がマクロ名です。

以下がコメント部分です。実行コードではありません。もちろん、無くてもチャンと動きます。行の先頭に が付いているのはコードではなくコメント(説明)という意味です。

' Macro1 Macro
'マクロ記録日 : 2003/12/14 ユーザー名 : nikoniko
'

'

コメント部分の次からの行が実際の動作を命令するコード部分です。

   With Selection.Interior

       .ColorIndex = 6

       .Pattern = xlSolid

   End With

End SubSub 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つにコードをまとめます。

Module1Module2Module3Module4の実行部のコードをコピーした後、不要なModule2Module3Module4を削除します。

Moduleの削除はModule名の上で右クリックしてModuleの開放をクリックします。エクスポートするかどうか尋ねてきますが、保存しないので「いいえ」をクリックします。まとめられたコードはそのままVBAコードとして使えます。


標準モジュールの挿入

  1. メニューの挿入>標準モジュール

  2. 標準モジュールの中にModule1が作成されています。

  3. Module1をダブルクリックして新しいコードウィンドウを開きます。

    ショートカットキー
    Ctrlキー+アルファベット
    Ctrl+c   のように小文字を指定するとキーボードのCtrlキーを押しながらCキーを押してマクロを実行する。
    Ctrl+C   のように大文字を指定するとキーボードのCtrl+Shift+Cキーの3個のキーを押してマクロを実行する。