GoGoマクロのブログ

初心者向けマクロ講座「Go!Go!マクロ」の筆者三太郎の公式ブログです。

GoGoマクロ

エクセル仕事の自動化が誰でもできる本

入力欄から一ヶ月の入庫集計表を作るマクロの作り方

2007-06-27 11:21:39 | マクロ作成のコツ
にほんブログ村 IT技術ブログへ

Lesson 76      --- 「リクエスト特集」第3弾 ---
 テーマ:入力欄から一ヶ月の入庫集計表を作るマクロ(その1)


◆リクエスト紹介

「リクエスト特集」第3弾の2つ目となる今回は、sumiさんからいただいた
下記のリクエストをご紹介します。


 >ある品物40種など多数の一ヶ月の仕入れ集計を作りたいと思っています。
 >
 >何日にある品物が何個入庫した、とわかりやすいように、
 >たとえば行に日付、列に品目を入れて一ヶ月31日分の一覧表を作ります。
 >(A欄)
 >
 >同じシート内に、日付、品種、数量を入れる欄をそれぞれ作ります。
 >(B欄)
 >
 >B欄に入力すれば、自動的にA欄に入力されるようにしたいのですが
 >できますか?


sumiさん、リクエストありがとうございます。
今回のリクエストは、これだけですとあまり意味のないマクロのように思える
かも知れませんが(直接A欄へ入力していけばよいだけなので)、これをちょ
っと拡張していけば応用範囲は実に広く、例えば在庫管理やExcelデータ
ベースの様なことにも使えますので、今回のリクエストは、とてもタメになる
内容になるだろうと思っています。



◆今日の講座


今回のリクエストでは、下記の例のような表を想定したマクロを作っていくこ
ととします。(例はお寿司屋さんのネタの仕入表です。)


H19年6月
日付   品目   数量(kg)
 27   かつお   10     ←入力欄(B欄)


品目/日付   1   2   3 ・・・
まぐろ    25   20   23
かつお    10   9   12     ←一覧表(A欄)
はまち    12   10   14
 ・
 ・
 ・



1)
それではまず、いつもの通りマクロの記録を使ってその基となるプログラム
作りから始めます。
――――――――――――――――――――――――――――+
1.エクセルを起動させます。(空のエクセルを立ち上げてください)

2.まず、マクロの記録を開始します。
 [ツール(T)] → [マクロ(M)] → [●新しいマクロの記録(R)...]
 → マクロの記録画面が出るのでそのまま[OK]をクリック。

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

4.同様にB3のセルを選択し、 222 と打ってください。

5.同様にC3のセルを選択し、 333 と打ってください。

6.同様にB6のセルを選択し、 444 と打ってください。

7.打ち終わったら一度[Enter]キーを押してから、
 [ツール(T)] → [マクロ(M)] → [■記録終了(R)]とやって、マクロの記録
 を終了させます。(小っさな画面の■をクリックしても同じです)
――――――――――――――――――――――――――――+



2)
それでは、いま作ったプログラムの中身をのぞいてみましょう。
――――――――――――――――――――――――――――+
1.[ツール(T)] → [マクロ(M)] → [Visual Basic Editor(V)]
 すると、もう見なれたマクロプログラム用の画面が表示されたと思います。

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

++++++++++++++++++++++++++++―
Sub Macro1()
'
Range("A3").Select
ActiveCell.FormulaR1C1 = "111"
Range("B3").Select
ActiveCell.FormulaR1C1 = "222"
Range("C3").Select
ActiveCell.FormulaR1C1 = "333"
Range("B6").Select
ActiveCell.FormulaR1C1 = "444"
Range("B7").Select
End Sub
++++++++++++++++++++++++++++―

いま、自動記録して作成したこのプログラムは、仮の文字(数字の111とか222
とか)を読み書きをするセルの目印とするためのものです。



3)
それでは、このプログラムにちょっと手を加えていきます。
――――――――――――――――――――――――――――+
1.まず、
  ActiveCell.FormulaR1C1 = "111"
 と書いてある行を
   a = ActiveCell.Value
 と書き改めてください。

2.続けて、
   ActiveCell.FormulaR1C1 = "222"
 と書いてある行を
   b = ActiveCell.Value
 と書き改めます。

3.最後に、
   ActiveCell.FormulaR1C1 = "333"
 と書いてある行を
   c = ActiveCell.Value
 と書き改めます。
――――――――――――――――――――――――――――+

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

++++++++++++++++++++++++++++―
Sub Macro1()
'
Range("A3").Select
a = ActiveCell.Value
Range("B3").Select
b = ActiveCell.Value
Range("C3").Select
c = ActiveCell.Value
Range("B6").Select
ActiveCell.FormulaR1C1 = "444"
Range("B7").Select
End Sub
++++++++++++++++++++++++++++―

いま行なった修正は、書き込む行を読み込む行へと変更しただけのものです。
いま修正したプログラムに出てきた変数のa,b,cというのがおのおの、日付、
品目、数量の各入力データを格納するための変数にあたります。



4)
更にもう少し、プログラムに手を加えていきます。
――――――――――――――――――――――――――――+
1.まず、
  ActiveCell.FormulaR1C1 = "444"
 と書いてある行の上に、次の1行を追加します。
   d = ActiveCell.Value

2.次に、
   ActiveCell.FormulaR1C1 = "444"
 と書いてある行を
   ActiveCell.FormulaR1C1 = d + c
 と書き改めます。
――――――――――――――――――――――――――――+

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

++++++++++++++++++++++++++++―
Sub Macro1()
'
Range("A3").Select
a = ActiveCell.Value
Range("B3").Select
b = ActiveCell.Value
Range("C3").Select
c = ActiveCell.Value
Range("B6").Select
d = ActiveCell.Value
ActiveCell.FormulaR1C1 = d + c
Range("B7").Select
End Sub
++++++++++++++++++++++++++++―

いま行なった修正は、現在の数量に入力した数量を足して、同じセル位置に書
き戻すといった意味になります。



5)
それでは、実行してみましょう。
――――――――――――――――――――――――――――+
1.エクセルの画面に戻って、

2.実行します。
 [ツール(T)] → [マクロ(M)] → [マクロ(M)...] → マクロ画面が出るので
 そのまま[実行]をクリック。
――――――――――――――――――――――――――――+

実行した結果、B6のセルが 777 と表示されればOKです。
( 333 + 444 = 777 の意味です。)



6)
確認のため、続けてもう一度実行してみます。
――――――――――――――――――――――――――――+
1.現在開いているシートのままで、
 いま 333 となっているC3のセルの値に -77 と打ち直してください。

2.打ち終わったら一度[Enter]キーを押してから、実行します。
 [ツール(T)] → [マクロ(M)] → [マクロ(M)...] → マクロ画面が出るので
 そのまま[実行]をクリック。
――――――――――――――――――――――――――――+

実行した結果、B6のセルが 700 と表示されればOKです。
( 777 - 77 = 700 の意味です。)

至って簡単ではありますが、実はこれが在庫管理などのプログラムではよく見
られる「現在数に増減の数を加えて数量を変更していくやり方の基本」とも言
えるものです。


今回はこれで終了です。
今日作ったマクロプログラムは次回もこの続きでまた使いますので、大切に
保管しておいてください。(ファイル名 "gogo76.xls" )

無料メルマガの登録は、▼こちらから▼
「Go! Go! エクセルマクロをはじめよう!」





エクセル書籍

コメント (1)

生涯学習

2007-06-22 08:30:49 | よもやまな話
にほんブログ村 IT技術ブログへ


先日、大阪の梅田で開催した初心者セミナーでは、

遠くは三重県から、上は72歳の男性まで、

当日は大変に暑い中、ご参加くださった感謝と共に、

皆さんの学習意欲の旺盛さには、実に頭の下がる想いです。


エクセルマクロを学習するなら、▼こちら▼
「Go! Go! エクセルマクロをはじめよう!」




コメント

マクロが組めるってほんとありがたいなぁ~

2007-06-13 15:44:08 | よもやまな話
にほんブログ村 IT技術ブログへ



今回終了したリクエストの内容はいかがだったでしょうか?

このリクエストの様に、名前などの何かのデータを照合しながら1つの表を
完成さていくようなエクセル作業ってよくあると思うんですが、

もし、今回のリクエストの順位表をマクロなしで(手作業で)作成するとなると、
名前を一つ一つ検索しつつ人数分を繰り返さなければなりませんし、
またそれが何年分もとなりますと、まぁ、せいぜい30位くらいまでのデータなら
目視でも何とか照合はできそうですが、

これが60位までとか、100位までとか、1000位までとか・・・
大量の人数となった日には、データの表を見ただけで気が遠ーく
なってしまいますよね。


そんな時にはつくづく、「マクロが組めるってほんとありがたいなぁ~」と、
おもわず感謝しまう今日この頃です。



エクセルマクロを学習するなら、▼こちら▼
「Go! Go! エクセルマクロをはじめよう!」



コメント

お役立ち度ランキング

2007-06-06 14:31:30 | マクロ作成のコツ
にほんブログ村 IT技術ブログへ



―――――――――――――――――――――――――――――――――――
◆なんでもランキング
―――――――――――――――――――――――――――――――――――

今回は、「バックナンバーお役立ち度ランキング」を発表します。(読者数の
増減ポイントによりランク付けをした結果です。)


 第1位 新しいマクロの記録機能を使って、表を作る

 第2位 色々な条件に合った数値の合計値を求める

 第3位 曜日の色分け日付入りの1ヶ月の表を作るマクロ

 第4位 繰り返し処理の方法

 第5位 条件に合った合計値を求める


エクセルマクロを学習するなら、▼こちら▼
「Go! Go! エクセルマクロをはじめよう!」






コメント

お便りランキング

2007-06-05 14:16:02 | お知らせ
にほんブログ村 IT技術ブログへ



―――――――――――――――――――――――――――――――――――
◆なんでもランキング
―――――――――――――――――――――――――――――――――――

今回は、創刊以来、これまでに読者の皆さんからお寄せ頂いた数々の
お便りを内容別に集計したランキング結果を発表します!


「お便りランキング」

 第1位 何かわかりやすい参考書ってありませんか?

 第2位 リクエスト

 第3位 こんなマクロって作れますか?



エクセルマクロを学習するなら、▼こちら▼
「Go! Go! エクセルマクロをはじめよう!」



コメント

初心者向けテキスト

2007-06-04 15:12:57 | マクロ作成のコツ
にほんブログ村 IT技術ブログへ



―――――――――――――――――――――――――――――――――――
◆お求めやすくなりました。
―――――――――――――――――――――――――――――――――――

わかりやすい!とプログラム未経験者に大人気のメルマガ
「Go! Go! エクセルマクロをはじめよう! 」から生れた入門書
「エクセルマクロ7つの鉄則」、
今月より、バックナンバーパックCDのセット価格を値下げいたしました。

お陰さまでこのところ売れ行き好調につき、発売開始以来初の
値下げを敢行いたしました!

更に只今、全国送料無料サービスも実施中です!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
テキストのご購入はこちら → http://www.wat3d.com/gogo/index2.html




―――――――――――――――――――――――――――――――――――
◆サポート会員募集を終了します。
―――――――――――――――――――――――――――――――――――

3月より募集を再開してきました個人サポートの方が定員オーバーとなりまし
たので、今回の会員募集は先月を持ちまして終了とさせていただきました。
なお、次回の募集予定時期はまだ未定です。






コメント