マクロ関連(使い捨てマクロ)
「*」印を探して行挿入するマクロを作成する
2006年11月4日 マクロ関連(使い捨てマクロ)
韓国ラーメン「韓韓麺」です。
私は辛いものが苦手でしたが、この店の辛さがクセになり、通っているうちに今では多少辛いものを食べても汗一つかかないくらいになりました。
まぁそんなになっても別にしょうがないんですが…
(^_^;)
麺の種類が選べるのもいいですよ。太麺(うどんみたい),韓国細麺,中華麺の3種類から選択できます。個人的には"ビビン麺"にハマってます。舌が火を噴く辛さですが、なんとも言えないウマさがあってついつい頼んでしまいます。。
o(^-^)o
゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ ゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ ゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚
さて、前回の続きです。
関数式で「*」印を5行おきにプロットし、その印がついている行に一行ずつ行挿入していくマクロを作成します。今回と次回にわたってそのようなマクロを作成したいと思います。(使い捨てマクロがどんなものかを見ていただくためにとりあえずかけ足で一つ作ってみますね。。)
(1)前回使用したファイルを開きます。保存していなかった方は、前回ご紹介した手順でまずマクロを生成してください。
(2)[ツール(T)]→[マクロ(M)]→[マクロ(M)]。
(3)「マクロ」ウィンドウのマクロ名「行挿入」を選択して「編集(E)」。
(4)「ガイドシート(手順4)」のように直接編集。追加行の意味は以下の通り。
・act=act*2:Inputboxでユーザーが入力した数値を2倍します。
・Do Until~:「Loop」の前までの処理を、gyouの数値がactの数値とイコールになるまで繰り返します。
・gyou=gyou+1:gyouの値を1増やします。
・Loop:「Do Until」と対で使用します。
当然ですが、行挿入すると、対象となる全体の行数が1つ増えま
す。もし全部の行に1行ずつ挿入すると対象となる全体の行数が
2倍になるので、念のために対象行(actの数値)を2倍しておきま
す。Activeになっている行(gyouの数値)に1ずつたしていき、gyou
の数値がactの数値とイコールになるまでこれを繰り返します。
(5)[ALT]+F11でEXCELシートに戻り、A列を範囲指定し、[挿入(I)]→[列(C)]。
(6)A1セルに「挿入Flag」と入力。次号で、この欄に「*」印を入力した行について行挿入を実施するマクロを完成させます。
今回作成したマクロでは、「Do Until ~ Loop」の間に、行を一行挿入した後、gyouの値を1増やしなさい、という命令しかしていませんので、例えばA1セルにカーソルを置いてこれを実行すると、次のようになるはずです。
まずダイアログボックスが出て来て、何行ある表なのか確認して来る。
ここで例えば「2」と入力すると、gyouの値が2*2=4になるまで行挿入を実行する。
実際には、gyouの値=actの値=4になったときには挿入終了なので、空白の行が3行挿入されるだけとなります。
次回は、このLoopの間に「If~」文を入れて「*」印を判別しながら行挿入を実行していくマクロへと進化させます。
<<ガイドシートURL>>
http://www.tcat.ne.jp/~ryu/PLE/Macro/53.pdf
マクロ編集の方法(ダイアログボックスを出してみる)
2006年11月2日 マクロ関連(使い捨てマクロ)
それではテーマを元に戻しまして、例の表について、5人ずつまとめて表示するために、5行おきに行挿入したいと思います。
大きな表にでも対応できるように、最初に ユーザーに何行分のデータがあるのかを確認して、その情報を参考にするとします。そのようなマクロを作成したい場合は、以下の手順で行います。
再掲[Sheet1]
A | B | C | |
1 | 番号 | 名前 | 生年月日 |
2 | 001 | AAさん | 1975/10/9 |
3 | 002 | ABさん | 1975/9/23 |
4 | 003 | ACさん | 1974/8/5 |
5 | 004 | ADさん | 1966/3/2 |
6 | 005 | AEさん | 1962/2/19 |
7 | 006 | AFさん | 1966/4/23 |
8 | 007 | AGさん | 1974/6/11 |
9 | 008 | AHさん | 1948/10/11 |
10 | 009 | AIさん | 1974/12/6 |
11 | 010 | AJさん | 1964/11/11 |
12 | 011 | AKさん | 1957/1/3 |
13 | 012 | ALさん | 1954/11/17 |
14 | 013 | AMさん | 1947/4/18 |
15 | 014 | ANさん | 1970/6/15 |
16 | 015 | AOさん | 1968/5/26 |
17 | 016 | APさん | 1969/4/3 |
18 | 017 | AQさん | 1963/1/9 |
19 | 018 | ARさん | 1947/11/19 |
(1)前回使用したファイルを開きます。前回保存していなかった方は、前々回ご紹介した手順でまずマクロを生成してください。
(2)[ツール(T)]→[マクロ(M)]→[マクロ(M)]。
(3)「マクロ」ウィンドウのマクロ名「行挿入」を選択して「編集(E)」。
(4)「ガイドシート(手順4)」のように直接編集。意味は以下の通り。
・Dim gyou As Integer:gyouという変数を今後整数として使用します。
・gyou = ActiveCell.Row:とりあえずカーソルのある行ナンバーを gyou という変数に入れます。例えば5行目にカーソルがあれば gyou=5 となります。
・Rows(gyou).Select:gyou行を選択します。gyou=5であれば、5行目を選択します。
・Selection.Insert Shift:=xlDown:選択されている行に一行挿入します。
ということは、行挿入したい行のどこかのセルにカーソルを置いてこのマクロを実行すれば、自動的に行挿入ができる、ということです。
(5)手順(4)までの動作を確認したら、続けて「ガイドシート(手順5)」のように編集。意味は以下の通り。
・Dim act, gyou As Integer:gyouという変数とactという変数を今後整数として使用します。
・act = InputBox("全部で何行?", "How Many Rows"):「How Many Rows」というタイトルのダイアログボックスで、「全部で何行?」という質問を表示させ、ユーザーからの回答をactという変数に入れます。
(6)[ツール(T)]→[マクロ(M)]→[マクロ(M)]として出て来る「マクロ」ウィンドウのマクロ名「行挿入」を選択して「実行(R)」。「全部で何行?」と聞いてくればOKです。ここで入力する数値は次回具体的に使用していきたいと思います。
<<ガイドシートURL>>
http://www.tcat.ne.jp/~ryu/PLE/Macro/52.pdf
作成したマクロをツールバーに登録する
2006年10月28日 マクロ関連(使い捨てマクロ)
この間会社帰りにちょっとした騒動を目にしました。
歩いていると急にサイレンの音が鳴り、まず覆面パトカーが2台来て、おまわりさんが5、6人走って出て来たと思ったら普通のパトカーが3台集結。救急車まで1台やってきました。ヤジウマも50人くらいは集まってきたでしょうか。。
テレビでは何度もこういうシーンを目にしますが、目の前でこういうのを見るのは初めてで、思わず写メを撮ってしまいました。
どうやら5vs5くらいでケンカしてた模様で、大きな罵声が響いていました。物騒な世の中ですなぁ~。
Y(>_<、)Y
゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ ゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ ゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚
さて、前回、とりあえず行を一行挿入する簡単なマクロを作成してみましたが、このマクロをツールバーに登録したい場合は、以下の手順で行います。
(1)前回使用したファイルを開きます。前回保存していなかった方は、前回ご紹介した手順でまずマクロを生成してください。
(2)[表示(V)]→[ツールバー(T)]→[ユーザー設定(C)]。
(3)「ユーザー設定」ウィンドウの「コマンド」タブ内、「分類(G)」で「マクロ」を,「コマンド(D)」で「ユーザー設定ボタン」を選択し、これをそのまま、ツールバーの空いているところにドラッグアンドドロップ。
(4)引き続き、「ユーザー設定」ウィンドウの「コマンド」タブ内、「選択したボタンの編集(M)」→「ボタンイメージの変更(B)」で好みのイメージ(ここではハートマークとする)を選択して「閉じる」ボタンを押す。
(5)ツールバー上に置いたハートマークをクリックし、出て来た「マクロの登録」ウィンドウでマクロ名「行挿入」を選択して「OK」。
前回作成したマクロは行番号「7」に行を一行挿入する、というマクロでした。ツールバー上に置いたハートマークをクリックすると、行番号「7」のところに一行挿入されましたか。されていれば登録完了です。
<<ガイドシートURL>>
http://www.tcat.ne.jp/~ryu/PLE/Macro/51.pdf