自動集計マクロの基礎 − GoGoマクロ!のWebサイト

HOME > レッスン > 自動集計マクロの基礎

自動集計マクロの基礎(1)


マクロで誰にでも簡単にできる「自動集計」に入ります。
エクセルワーカなら誰しも、 データを自動集計したいという場面には 頻繁に出くわす ことだろうと思いますが、 関数(VLOOKUPなど)使う場合だと どうしてもごちゃごちゃに なってしまうような集計は やはり マクロでやった方が良いですし、断然にマクロが楽ですね。

マクロで「自動集計」とは、すなわち繰り返し処理を行うプログラムを組むということに他なりません。 マクロで・・というと、どうしても難しく感じる方も多いとは思いますが、案外と 関数より簡単にできるという場合も、複雑な集計になればなるほど 多いものです。

以前にもお話ししましたが、 "ループ処理 を制する者が エクセルマクロを制す" といっても過言ではありませんので、特にこの「自動集計」の節は、 はりきって勉強していきましょう!



1)
まず今回は、その繰り返し処理を行うプログラムの元となる
マクロ作りから始めます。
――――――――――――――――――――――――――+
1.エクセルを起動させます。(空のエクセルを立ち上げてください)

2.まずは、いつものようにマクロの記録を開始します。
 [開発]タブの[コード]で [マクロの記録] をクリック →
「マクロの記録」画面が出るので、そのまま[OK]をクリック。

3.B1のセルを選択し、とりあえず 111 と打ってください。

4.打ち終わったら一度[Enter]キーを押してから、
 [開発]タブの[コード]で [■記録終了] をクリックして、
 マクロの記録を終了させます。
――――――――――――――――――――――――――+



2)
それでは、いま作ったマクロプログラムの中身をのぞいてみましょう。
――――――――――――――――――――――――――+
1.[開発]タブの[コード]で [Visual Basic]をクリック。
 すると、もう見なれたマクロプログラム用の画面が表示された
 と思います。

2.この画面の左上半分の[+標準モジュール]という所の+の部分
 をクリックすると、そのすぐ下に[Module1]と表示されるので、
 その[Module1]をダブルクリックします。
――――――――――――――――――――――――――+


++++++++++++++++++++++―
Sub Macro1()
'
' Macro1 Macro
'

'
  Range("B1").Select
  ActiveCell.FormulaR1C1 = "111"
  Range("B2").Select
End Sub
++++++++++++++++++++++―


これを元に、ループ処理の基本形を使って簡単なプログラムを作っていきます。



3)
それでは、このプログラムにちょっと手を加えてみたいと思います。
――――――――――――――――――――――――――+
1.このプログラムの「 ActiveCell.FormulaR1C1 = "111" 」の行を、
 For文を使った次のような繰り返しの処理にします。

  For i = 1 To 10
    ActiveCell.FormulaR1C1 = "111"
  Next i

2.次に、この「 ActiveCell.FormulaR1C1 = "111" 」の行の前に
    a = ActiveCell.Value
 を、後ろに
    ActiveCell.Offset(1, 0).Activate
 をそれぞれ1行づつ追加します。

3.最後に、「 ActiveCell.FormulaR1C1 = "111" 」の"111"の部分
 を修正して
    ActiveCell.FormulaR1C1 = a * -1
 にします。
――――――――――――――――――――――――――+


変更した後のプログラムはつぎの様になります。


++++++++++++++++++++++―
Sub Macro1()
'
' Macro1 Macro
'

'
  Range("B1").Select
  For i = 1 To 10
    a = ActiveCell.Value
    ActiveCell.FormulaR1C1 = a * -1
    ActiveCell.Offset(1, 0).Activate
  Next i
  Range("B2").Select
End Sub
++++++++++++++++++++++―


今行った程度の変更内容については、もうみなさんお解かりかと思いますが、 念のために順に説明しておきますと、

For i = 1 To 10
  「ある処理」
Next i

これは、ループ処理の基本形です。

このループの中の「ある処理」にあたる部分の3行は、おのおの

 a = ActiveCell.Value・・・セルの値を変数 a に入れる。
 ActiveCell.FormulaR1C1 = a * -1・・・a に-1を掛けた値をセルに表示する。
 ActiveCell.Offset(1, 0).Activate・・・セル位置を1つ下にずらす。

という意味です。
これをループで10回繰り返すことになります。



4)
それでは、確認のために実行してみましょう。
――――――――――――――――――――――――――+
1.エクセルの画面に戻って、(シートは[Sheet1]のまま)

2.まずは、B2のセルからB10のセルまで何か適当に数字を打って
 いきます。
(数字なら何でも良いですので、縦に9つの数字を打ってください)

3.打ち終わったら一度[Enter]キーを押してから、
 [開発]タブの[コード]で [マクロ] をクリック → 「マクロ」
 画面が出るのでそのまま[実行]をクリック。

4.そうしたら、このままもう一度実行してみます。
 [開発]タブの[コード]で [マクロ] をクリック → 「マクロ」
 画面が出るのでそのまま[実行]をクリック。
――――――――――――――――――――――――――+


こうして何度も実行してみると分るように、このプログラムは単純に「数字の プラス/マイナスを切り替えるためのマクロ」というものです。



今回はこれで終了です。

今日のところは、もうみなさんには非常に簡単な(!?)この程度のものですが、 次回からは、この簡単なプログラムをベースにして「自動集計」するための 簡単マクロ作りについて勉強していきます。


今日作ったマクロプログラムは 次回のこの続き でまた使いますので、いつもの ようにマクロ有効ブックにて、大切に保管しておいてください。 (ファイルの種類: Excelマクロ有効ブック 、ファイル名 "gogo33.xlsm" )



NEXT >>
自動集計の基礎(2) -最後の行まで自動集計する方法-
自動印刷するマクロの作り方



 

読者数1万人達成しました!

エクセルで 最大級の
メールマガジン。
まぐまぐ殿堂入り

最新号は 今すぐ ↓↓↓ 登録

メールアドレス:

Powered by
まぐまぐ

完全まぐまぐ配信なので登録安心です!


エクセルマクロの検定のページ