Excelのマクロに挑戦3
だんだん,マクロのおもしろさがわかってきてしまいました。(^^ゞ そこで,マクロならではの機能をつけてみたくなりました。(こんなことの繰り返しでどんどん肥満していく・・・)
児童一人一人のグラフを作る機能はできたのですが,一人一人確認しながら印刷するのでは時間の浪費です。そこで,ボタン一つで全員分の印刷ができるマクロを作ろうと思ったわけです。
元のソースは,★Let's Excel VBA★さんのものを参考にしました。
http://www.sanynet.ne.jp/~awa/excelvba/stepup.html
の124番です。
さて,出来上がったソースは・・・。
**************************
Sub オートシェイプ5_Click()
Dim TgCell As Range
Dim TgName As Range
Set TgCell = Sheets("様式1").Range("A5")
Set TgName = Sheets("様式1").Range("B5")
Sheets("グラフ").Select
Do Until TgName.Value = ""
Sheets("グラフ").Range("B2").Value = TgCell.Value
Sheets("Sheet3").PrintOut
Set TgCell = TgCell.Offset(1, 0)
Set TgName = TgName.Offset(1, 0)
Loop
End Sub
**************************
参照元のシートには,150人分のデータが入るようになっています。この番号だけをたよりにしたのでは,データが入っていないシートを何枚も印刷することになります。そこで,
Do Until ~ Loop
を使いました。上のソースでは,TgCell(参照するセル)と,TgName(参照する名前)を定義し,TgCellは一覧表の番号,TgNameは児童の名前を参照します。
グラフのシートには,その児童の番号を入力すると,グラフが表示されるので,TgCellだけでよさそうです。でも,そのままだと白紙も印刷されてしまうのです。そこで,児童の名前を参照し,名前の欄が空欄になるまで印刷することにしました。
あとは,TgCellでゲットした数字をグラフシートの番号欄に入力し,プリントアウトします。終わったら,TgCellとTgNameを一つ下に移動します。この繰り返しで,全ての児童データが印刷されます。
何となくVBAを使った気になっているHorryでした。
私のblog
mochizuki のICT活用ワンポイントに
「日本教育blog 巡り」というコンテンツを掲載しています。
「群馬県 horisawa先生」でリンクしても
よろしいでしょうか?
投稿: Y.Mochizuki | 2006-04-22 11:36
Mochizuki先生に認めていただけるとは,光栄です!先生のプロフィールを拝見して,結構似ているところを発見してしまったHorryでした。
投稿: horry | 2006-04-22 13:17
リンク追加しました。
私の方こそまだまだ勉強中ですので
先生から学ばせてください。
・・似ているところってどこでしょう?
http://mochizuki.la.coocan.jp/blog/
http://www.mochizuki.net/
投稿: Y.Mochizuki | 2006-04-23 09:44
私のPC歴を書きますね。
1985年:就職。すぐにワープロ購入
1987年:学校のPCで成績処理
1989年:PC購入(MS-DOS),MIDIを始める。
1989年:不整合をN88-Basicでアニメーション化,授業に使用。
1991年:MIDIを使った合奏指導で地元の教育論文に応募,優秀賞
1994年:日本人学校へ
1996年:インターネットと出会う
1997年:帰国,Macを購入し動画編集に目覚める
1999年:Win98ノート購入,マウスを分解して天体の位置をディスプレイ上に表す装置を製作
2001年:教育センター長期研修で教材用映像資料作成に取り組む
2003年:市の指定発表,液晶ペンタブレットを小3理科で使用
2003年度,2004年度,EPSONファミリースナップアワード「学校支援賞」連続受賞
などです。Macだったり,MIDIだったり,理科だったり・・・。似てませんか?
投稿: horry | 2006-04-23 10:50
私も毎年サウンズコンテストに応募しています。
現在は、Mac のGarageBand で
サンプリング音源を主に作成しています。
理科は専門ですから・・・。
確かにそうですね。
投稿: Y.Mochizuki | 2006-04-23 14:20