2009年6月16日火曜日

超入門

さあ、早速、EXCELマクロ超入門です。

1)セキュリティレベルの設定

まずは、EXCELを立ち上げて、画面上部のメニューバーから、ツール→マクロ→セキュリティと辿り、セキュリティレベルを「低」にして下さい。「推奨しません」となっていますが、低にしないと、いちいち、マクロ実行時に確認メッセージが表示されます。それでもいいという方は、セキュリティレベルを中にして下さい。これは、ウィルスを仕込んだマクロがあり得るので、無防備に実行すると危険なので、その対策です。


2)VBAエディター画面


次に、ツール→マクロ→Visual Basic Editorとすると、VBAエディター画面に切り替わりますが、Alt+F11キーを押すと、EXCELシートとVBAエディター画面に、交互に切り替わります。


3)シートでのデータ入力

Alt+F11でシートに切り替えて、下図のように、データを入力して下さい。


4)マクロの作成(標準モジュールの挿入)

Alt+F11でVBAエディター画面に切り替えて、メニューバーから、挿入→標準モジュールとして下さい。標準モジュールというのは、どこからでも呼べる共通の場所と思えば良いです。

5)マクロの作成(プログラミング)

いよいよ、プログラミング開始です。標準モジュールに、下記ソースを入力して下さい。

尚、掲載しているソースは整形の為、空白は全て全角としています。

Option Explicit

Public Sub 計算()
 Dim i As Integer, wJCL数合計 As Integer, wPGM数合計 As Integer
 i = 1 'ループ(繰り返し)の開始
 Do i = i + 1
   '該当行の1列目が空白(空値)の場合
   If Cells(i, 1) = "" Then
     'ループを抜ける
     Exit Do
   End If
   wJCL数合計 = wJCL数合計 + Cells(i, 2)
   wPGM数合計 = wPGM数合計 + Cells(i, 3)
 'ループの終了
 Loop
 '最終行+1行目の1列目に「合計」という文字をセット
 Cells(i, 1) = "合計"
 '最終行+1行目の2列目にJCL数合計をセット
 Cells(i, 2) = wJCL数合計
 '最終行+1行目の3列目にPGM数合計をセット
 Cells(i, 3) = wPGM数合計
End Sub


【説明】
Option Explicit:変数の宣言を強制するオプションで、これを指定しておかないと、変数の宣言をしなくても良くなりますが、意図しない不具合が発生する場合があるので、必ず、宣言しましょう!

Public:どこからでも呼ぶ事ができる宣言です。

Sub:サブルーチンの意味で、プログラムの最小単位です。Subの後に、名前を宣言します。

Dim:変数の宣言で、後ろに名前と変数の型を指定します。

As:後ろに変数の型を指定します。

Integer:整数を表す変数の型です。

i = 1:iという整数に1をセットします。

i = i + 1:iに1を加算します。
Do ~ Loop:ループ宣言で、この間に書いたコードが繰り返されます。

If:IF文の事で、条件により処理を振り分けます。

Cells(i,1):現在のシートのi行目、1列目のセルの事です。

If Cells(i, 1) = "" Then:i行目、1列目のセルの値が何もない時という意味です。

Exit Do:Do ~ Loopを抜けます。Loop文の直後に、飛びます。

wJCL数合計 = wJCL数合計 + Cells(i, 2):wJCL数合計という変数に、i行目、2列目の内容を加算します。

Cells(i, 1) = "合計":i行目、1列目に、「合計」という文字をセットします。

End Sub:サブルーチンの終了宣言です。

という事で、このプログラム(サブルーチン)は、開いているシートの合計を計算しています。

5)マクロの実行

Alt+F11でシートに切り替えて、メニューバーから、ツール→マクロ→マクロとして、マクロ一覧の中から、計算サブルーチンを選択してから実行ボタンを押して下さい。Alt+F8でも、同じ事ができます。

ほら、合計が表示されましたよね!

後は、終了時に、このEXCELファイルを「マクロサンプル.xls」などとして、保存してください。


今回は、ここまでです。


それでは!

0 件のコメント:

コメントを投稿