The Road to EXCELER ~エクセラーへの道~
ブログ
  • HOME »
  • ブログ »
  • マクロ関連(使い捨てマクロ)

マクロ関連(使い捨てマクロ)

マクロ編集の方法(ダイアログボックスを出してみる)

それではテーマを元に戻しまして、例の表について、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

作成したマクロをツールバーに登録する

この間会社帰りにちょっとした騒動を目にしました。


歩いていると急にサイレンの音が鳴り、まず覆面パトカーが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

行挿入の手順を自動化するマクロを作成する

例えば、

[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

という表があったとき、5人ずつまとめて表示するために、5行おきに行挿入したいとします。

まずはマクロ編 第1回目として、行を挿入するマクロを作成してみます。
マクロの自動記録は、以下の手順で行います。

(1)[ツール(T)]→[マクロ(M)]→[新しいマクロの記録(R)]。

(2)「マクロの記録」ウィンドウの「マクロ名(M)」に今回作成するマクロの名前「行挿入」と入力し、「OK」。

(3)引き続き、記録させたい動作を実行します。ここでは「行の挿入」を実行させたいので、仮に行番号「7」を指定し、[挿入(I)]→[行(R)]。

(4)行が挿入されたことを確認し、「記録終了」ボタンを押す。

ここまでの手順で、行番号「7」に行を一行挿入する、というマクロが自動的に作成されました。どのようなプログラムが作成されたのか、次の手順で確認してみましょう。

(5)[ツール(T)]→[マクロ(M)]→[マクロ(M)]として出て来る「マクロ」ウィンドウの、マクロ名「行挿入」を選択して「編集(E)」。

(6)「Sub」と「End Sub」に挟まれて、行を挿入するためのマクロが記述されています。「Sub」と「End Sub」の間に記述するのが一つのルールになっています。また、緑色の文章は単なる説明文で、「’」の後に続けて記述されます。次の「Rows」から始まる2行がメインプログラムで、「行番号「7」を選択して(1行目)、一行挿入しなさい(2行目)」という意味になります。

このように、ある程度のところまではプログラムを自動作成しておいて、後から思い通りに編集し直していけば、比較的簡単にマクロが作成できます。これを超~簡単にやってしまおうというのが「使い捨てマクロ」です。

(ここで使用したファイルは今後も使っていきますので、できれば保存しておいてくださいね。)

<<ガイドシートURL>>
http://www.tcat.ne.jp/~ryu/PLE/Macro/50.pdf

Page 33 / 34«323334

アーカイブ

  • facebook
  • twitter
PAGETOP