■ はじめに覚えることは
表作成の考え方
一覧表作成(セル選択)
一覧表作成(書式設定)
一覧表作成(罫線)
一覧表作成(表示形式)
一覧表作成(数式と関数)
一覧表作成(データ操作)
■ 一覧表作成(マクロ)
一覧表作成(条件付書式)


一覧表の作り方

[11]マクロ
 マクロとは、Excelの操作手順を記録したもので、Excelを自動実行させることができます。
 マクロには2通りの記録方法があます。1つは、人が行う操作をExcelが自動的に記録する方法です。2つ目は、人がExcelに対し作動手順を記述する方法です。Excelが自動記録したものに、人が手を加えることも可能です。人が記述したものに、Excelが自動修正することはありません。記録も記述も一度行えば、2度目からはExcelが記述どおりに自動実行します。
 このように、自動実行するよう記録(記述)したものをマクロと言います。


●マクロの記録

 抽出と並べ替えを例に、マクロの記録、記述の修正、マクロの実行について解説します。
 下図は、マクロの記録ダイアログ ボックスの表示方法です。



Excel2003は、メニューバーのツールからマクロ、新しいマクロの記録と進みます。


マクロの記録は、途中で操作を間違えると修正がききません。
マクロの記録を取り消して、再作成することになります。

Excel2007は、リボンの開発タブからマクロの記録を選択します。

開発タブは、Excelのオプションで表示設定します。

 下図は、フィルタ オプションで説明したマクロの記録です。


マクロのダイアログボックスでOKを押します。
Macro1というマクロ名を、分かり易い名前に変更するのも良いでしょう。

OKを押すと、記録モードに入ります。以降、全ての操作が記録されます。

余分な操作や間違えを訂正すると、そのとおりに記録されるるので、間違えたら、始めからやり直します。



見出しの任意の項目(学籍)を左クリックします。



フィルタ オプション ダイアログボックスを開きます。

リストの範囲と、検索条件の範囲を確認したらOKを押して抽出します。

範囲が違っていたら、正しい範囲を再選択します。


抽出が完了したら、記録終了コマンドをクリックします。

Excel2003の記録終了。




Excel2007の記録終了コマンド


●マクロの記録の使いかた



Excel2003では、メニューバーのツールからマクロ、更にマクロと進みます。

表示された、マクロ ダイアログ ボックスからMacro1(名前を変えると、変更した名称が表示されます)を選択し、実行を押すと、マクロどおりに処理されます。

左図は、検索条件の学年に3を指定して実行した結果です。


すべて表示で、抽出解除します。


Excel2007では、リボンの開発タブからマクロを選びます。

表示された、マクロ ダイアログ ボックスの使い方は2003と同じです。

抽出する学年を変更し、マクロを実行すると抽出データが変わります。


クリアで抽出解除。全データを表示します。


●並べ替えをマクロに記録



3学年で抽出したデータを、クラス、番号に並べ替える操作をマクロに登録するところです。(Excel2003)

データを抽出した状態で、並べ替えています。




2学年を抽出し、上図で登録したマクロ(Macro2)を実行したところです。

2年生で抽出したデータは、クラス番号に並び変わりました。(Excel2003)




3学年で抽出したデータを、クラス、番号に並べ替える操作をマクロに登録するところです。(Excel2007)

2003と同様に、データを抽出した状態で、並べ替えています。



2学年を抽出し、上図で登録したマクロ(Macro2)を実行したところです。

2年生で抽出したデータは、クラス番号に並び変わりません。(Excel2007)

2003で並べ替えられたデータが、2007では替りません。



マクロ ダイアログ ボックスから、編集をクリックすると、自動記録された記述を見ることができます。

下図は、2003と2007のマクロの記述です。
Range("B5:L89").Sort の赤枠は、並べ替えるデータの範囲が B5〜L98 であることを示しています。

2007では、Range("B7:L35")となっています。並べ替えるデータの範囲が B7〜L35 と抽出範囲を示しています。

Excel2003のマクロの記述


Excel2007のマクロの記述


 マクロは、記述された内容通り実行されるので、2007の記述では並べ替えるデータ範囲はB7〜L35になります。これは、3年生のデータ範囲なので1、2年生のデータを抽出した時は、正しく並び変わらないという結果になります。

左図は、マクロの記述の、B7:L35をB5:L89に変更して実行したものです。
正しく並び変わりました。

Excel2007でマクロを記録する場合、データを抽出せずに、すべて表示状態で並び変えなければなりません。


●ボタンにマクロを登録

※マクロは、図形に登録することで、ダイアログ ボックスを開かなくとも実行できます。


マクロを登録するボタンは、コントロール ツールボックス、フォーム、図形描画から作成します。

Excel2003では、メニューバーの表示からツールバーを選択します。コントロール ツールボックスや、フォームにある部品は、入力操作を充実させることができます。

ボタンやコマンドボタンもその中の1つですが、オートシェイプと少し違うのは、塗りつぶしができない点です。

Excel2003のフォーム ツールバーから、ボタンを選択し、描いたところです。。


Excel2007では、開発タブから挿入コマンドに入り、コントロール部品を選択します。


Excel2003のツールバーからオートシェイプを選び、基本図形を選択したところです。図形は塗りつぶしが可能です。


2003と2007を比べると、図形の種類は2007のほうが多少多くなっています。


2003で「額縁」を選択し、描いたところです。
図形の描き方は、図形選択後、起点(赤丸)を左クリックし、左ボタンを押したまま矢印の位置までマウスを斜めにスライドします。

2007は、リボンの挿入タブから図形コマンドを選択します。


 2007は、挿入タブから図形を選び、描くと  書式タブが表示されます。

 マクロの登録は2003、2007共同じ操作です。
 ダイアログボックスでマクロの登録。
 図形を右クリックするとダイアログ ボックスが表示されます。マクロの登録をクリックします。

 マクロ名を選択し、OKを押します。
 先ほど作ったMacro1が現れたら名前をクリックします。
 OKを押すと図形にマクロが登録されます。











 完成した健康カード一覧表。

 図形にマクロを登録しすると、図形の上にポインタを当てたとき指型になります。





 抽出後の最表示は、メニュー(又はリボン)のフィルタからすべて表示にし、学籍(B5セル)クリック後、昇順に並べ替えコマンドを選択します。
  ●健康カード一覧表にマクロを登録します。

 健康カード一覧表の操作性を良くするために、データの抽出と並べ替えをマクロを使って自動化します。

【マクロを使った抽出条件】
 ・学年と年次が一致している行を抽出します。
 ・抽出データは、学年、クラス、番号で並べ替えます。
 ・上記以外の条件で抽出するときは、オートフィルタを使用。

          図1 抽出ボタンにマクロを登録

 図1のように、抽出ボタンにマクロを登録し、ボタンを押すと抽出と並べ替えを連続実行するようにします。抽出ボタンは、年次を隠すように配置しています。
 抽出条件の入力は、学年〜性別(D3〜G3セル)までです。年次は、常に学年と同じものを表示するよう、学年(D3)セルを参照しています。年次の使用目的は、フィルタ オプションの抽出条件だけですから、操作を惑わすものを隠すことにします。

@はじめに、フィルタ オプションを使った抽出と、並べ替えのマクロをつくります。図2のように、任意の見出し項目(B5セル)を左クリックし、マクロの記録コマンドを選択します。



          図2 Exce2003(上)とl2007(下)マクロの記録

Aフィルタオプション ダイアログ ボックスを表示します。
 リスト範囲と、検索条件範囲を確認し、OKを押します。

          図3 フィルタ オプション ダイアログボックス

B図4のように、マクロの記録を終了します。



          図4 Excel2003(上)と2007(下)マクロの記録終了。

C図5のように、抽出したデータをすべて表示にします。



          図5 抽出したデータをすべて表示。

D再び@に戻り、マクロの記録コマンドを選択します。

E図6のように、並べ変えダイアログ ボックスで、学年、クラス、番号順に並べます。



          図6 Excel2003(上)と2007(下)並べ替えダ。

Fマクロの記録を終了します。B参照。

G図7のように、マクロ ダイアログ ボックスの編集から記録された、マクロの記述を表示します。




 図7 マクロ ダイアログ ボックス
編集をクリックし、下記のマクロの記述を表示します。
図8はExcel2003のマクロ記述。図9はExcel2007のマクロ記述。


          図8 Excel2003マクロ記述


          図9 Ecel2007マクロ記述

H記録されたマクロは、抽出と並べ替えの2つあります。抽出ボタンを押すと、抽出と並べ替えを続けて実行するように、水色部分を消して2つのマクロを1つにまとめます。

 健康カード一覧表は、年度ごとに生徒数が変動しますので、データ件数も変わります。マクロの記述を見るとB5〜L89とデータ範囲が明記されています。これでは、データが89行を超えると正しく作動しません。
 見出しの5行目は変わりませんから、データ最終行の89を大きな数に変更します。


          図10 Excel2003マクロ記述の変更

          図11 Excel2007マクロ記述の変更

※Excel2003と2007とは、記述が異なるので変更箇所も変わります。
赤枠内を見ると、L89をL5000に変えています。
2007では、Key:=Range(・・・も2003に合わせるように変更しています。

IExcel2003はオートシェイプから、2007では挿入タブの図形から、額縁を選択し、シートの上に描きます。
 図形を右クリックし、ダイアログ ボックスからオートシェイプの書式設定(Excel2007では、図形の書式設定)を選択します。

          図12 Excel2003オートシェイプの書式設定


          図13 図形の書式設定

J図形に立体感をつけるため、をグラデーションで塗りつぶします。

Excel2003では、塗りつぶし効果からグラデーション。2色使用。




2007では、分岐点を使って分け、きめ細かい設定が可能。2

分岐点1が白。分岐点2は黄色。


線なしにして完了。(2003)

図形の移動

2007の線なし設定。

 図形の上で左クリックしたままマウスを移動。

図形の変形

偏心ハンドルにポインタを当て、左クリックしたままマウスを移動。

図形に文字を表示するのは、図形の上で右クリックし、ダイアログボックスを表示します。テキストの追加(又は編集)を選択してから「抽出」と入力。
 抽出と表示します。
図形の大きさに合わせて、フォントサイズを調整します。