マクロ関連(使い捨てマクロ)
合計欄の下に平均値を加える繰返し作業(2)
2006年12月12日 マクロ関連(使い捨てマクロ)
カゼをひいてしまいました。毎年このくらいの時期にひいてしまうので気をつけようと思っていましたが、やっぱりやられてしまいました。しかも、今年は1ヶ月くらい前にひいたカゼが治りきらずにこじらせたような形になったので、症状がキツくて参りました。。(x_x;)
のどが痛くなる→声が出なくなる→鼻が詰まる→熱が出る→タンが絡んで咳が止まらなくなる、の順番でフルメニューを体験し、3日間寝たきり状態でしたが、いまだにグジュグジュしています。皆さんも気をつけてくださいね。
(・_・;)
さて、前回の続きです。以下のような考え方で進めます。
まず、sum関数に使われている範囲をそのまま使いたいので、適当なsum関数(ここではB8セルのsum関数)を"コピー"ではなく"切り取り"で下のセルに持って来る。
持って来たsum関数のフィルハンドルをドラッグして3セル分コピペ。
そのまま置き換えで「sum」を「average」へ。
切り取って穴のあいた部分にはその隣のsum関数をコピペして穴埋め。
ここまでで1組の分は完成。同じことを、マクロのスタート地点を定めて100組分繰り返せば全部できそうですね。
再度手順を整理すると、以下の通りです。
(1)マクロのスタート地点に、IF関数で"***"マークをつける。E8セルを選択して、「=if(A8="合計","***","")」と入力。
(2)[編集(E)]→[コピー(C)]で、E1:E1000まで[貼り付け(P)]。
(3)B8セルを選択し、[編集(E)]→[切り取り(T)]とし、B9セルに[貼り付け(P)]。
(4)そのまま、D9セルまでフィルハンドルをドラッグして3セル分コピペ。
(5)罫線(上下線)を引いてFormを整える。
(6)[編集(E)]→[置換(E)]で「sum」を「average」へ置き換え。
次回以降、マクロでこれを100組分繰り返す処理を加えていきます。
<<ガイドシートURL>>
http://www.tcat.ne.jp/~ryu/PLE/Macro/55.pdf
合計欄の下に平均値を加える繰返し作業
2006年12月9日 マクロ関連(使い捨てマクロ)
例えば、以下のような表が100組まで(行数としては1000行目まで)続いているとします。
それぞれの表の合計欄の下に平均値を加えたい場合、どのような方法でやっていきますか?
B9セルに =average(B3:B7) と入れてD9セルまでコピペしますか?各組の人数が同じであれば、1組の分だけそういうふうに作っておいて、あとの組の分はそれをコピペ、コピペ、…と100回繰り返していけばなんとかなるかも知れませんが、この場合人数はそれぞれバラバラです。2組、3組…とそれぞれの範囲に対応したaverage関数を作っていると日が暮れてしまいますね。
この場合のネックは、作ろうとしているaverage関数の範囲が一定でないことです。
ところが、全部の組に共通して、sum関数による合計は正しく入っているので、このsum関数で使っている範囲をなんとかaverage関数に利用できないか考えます。
どの組のときにも汎用的に使える方法を考えて、まずは1組の平均値を加え、その作業を使い捨てマクロで繰り返して全部の組の平均値を入れていきましょう。
絶対参照と相対参照
2006年12月3日 マクロ関連(使い捨てマクロ)
K1WorldGP2006決勝戦を東京ドームまで観戦しに行って来ました!
昨年の覇者、セーム・シュルトが、なんとK1ベテラン勢のバンナ→ホースト→アーツを3連続で撃破して2年連続優勝を成し遂げました。会場ではさすがに往年のファン全員を敵にまわしたかっこうになってしまい、まわりがみんなアンチ・シュルト派になって声援を送っていましたが、あのデカさ・強さでは世代交代を認めざるを得ないですね。。
毎年この大会を見に行ってますが、これが終わるとすぐにクリスマス、大晦日がやって来て、あっという間に"今年"が終わってしまうんですよね。もう2007年ですか…、早いっすね~。。
゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ ゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ ゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚
さて、通常、[ツール(T)]→[マクロ(M)]→[新しいマクロを記録(R)]としてマクロを記録させると、絶対参照形式で記録されます。
例えば、A1セルを選択した状態で、「abc」と入力し、続いてA2セルに「def」と入力する操作をマクロで記録させて実行すると、毎回必ずA1セルとA2セルにデータが入力されます。これを絶対参照形式といいます。
これに対し、マクロを実行したときに選択されているセルから縦横に何番目かを数え、その場所を基準として処理を行うようにするには、マクロを記録したときに表示される「記録終了」ウィンドウの右側にある「相対参照」ボタンをクリックしてから操作を始めます。
上の例では、毎回必ずA1セルとA2セルにデータが入力されるのではなく、マクロを実行する直前にどのセルを選択していたかによってどこにデータが入力されるかが変わってきます。こういう形式を相対参照形式といいます。
使い捨てマクロでは、まず最初に処理開始セルを探してマーク(私は"***"をよく使います)をつけておき、その位置をアクティブセルとして相対参照形式を使って処理をさせるケースも結構ありますので、この使い分けはぜひおさえておいていただきたいと思います。
ちなみに、元の絶対参照形式に戻すには、再度同じボタンをクリックしてください。