ダウンロード

マクロの記録と再生(EXCEL2007以降版)EXCEL2003以前版


メニュー
マクロとは?
開発タブの表示
問1 マクロの記録と再生
問2 オートシェイプへのマクロ登録
問3 マクロ記録 − クリア
問4 マクロ記録 − データ消去
問5 マクロ記録 − フォント変更
問6 マクロの編集 - 入力文字変更
問7.1 マクロの編集 - 書式変更
問7.2 マクロの編集 - 「弁当注文表」の改良
問8 ユーザータブとボタン作成
サンプルファイルのダウンロード
リンクリスト
コメント参照/記入
解答を 全て展開 折り畳む

マクロとは?

Excelには、操作した手順を記録し、再生する機能が付いています。
Excelでは計算やデータ整理、印刷などさまざまな作業を行いますが、決まった手順で行う操作も数多くあります。
そのような時、マクロで操作手順を記録し再生することで、作業の効率化を図ることができできます。

マクロは、プログラミング言語MicrosoftVisualBasicに変換され記録されます。
Basic言語を学習していくと、記録されたコードを編集し、さらに使い勝手よく、また、手作業ではできないようなことまで自動化することができるようになります。

マクロ(Macro):本来、コンピュータは1命令で1作業を行いますが、操作を記録することで多数の命令セットが作成されます。
この多数(大きな)の命令セットマクロ命令(言語)と呼びます。


たとえば、セルB1をクリックする操作は、
Range("B1").Select
さらに、文字の色を赤にする操作は、
    With Selection.Font
        .Color = -16776961
        .TintAndShade = 0
    End With
のように記録されます。
この中で、フォントを赤にしているのは、2行目(.Color = -16776961)の部分
3行目のTintAndShadeは文字の明るさ
  -1 (最も暗い) 〜 1 (最も明るい) の値、0 (ゼロ) が中間値。
0:既定値なので不要な行。
マクロを記録すると、不要な命令コードが数多く記録されます。
慣れてくれば、手作業で不要な行を削除できるようになります(コードが見やすくなる。)
そのままにしておいても可。
(カスタマイズしたい場合、既定値のコードがあれば、何処を変更すればよいのかがわかります。)

このように記録した操作を再生(実行)すると、
「セルB1を選択し、その文字色を赤にする」という作業を、1度の操作で実行することができます。

マクロの準備 − [開発]タブ



問1 マクロの記録と再生

下記の手順に従い、下図のように、セルを黄色で塗り、太い罫線を引くマクロ("塗りつぶし")を記録しなさい。


手順

セル範囲 B3:D6 を

  黄色で塗りつぶし
  格子の太い罫線を引く

動作をマクロに登録しなさい。
マクロ名は “塗りつぶし
保存場所は 作業中のブック すなはち この “10 マクロ(その1)”とします。

その後、 B3:D6書式を全て削除し、マクロを実行しなさい。

解答例



マクロの記録:
1)[開発]タブの[マクロの記録]をクリックする。
  記録が始まると「マクロの記録」の文字は「記録終了」に変わる。

  


2)下図の様に入力して「OK」をクリックする。
  

3)セル範囲 B3:D6 を選択して、黄色で塗りつぶし、格子の太い罫線をひく→動作が記録される。

4)[記録終了]ボタンをクリックする。
  
書式を削除
5)セル範囲を選択して、[編集]メニューの[クリア][書式]をクリックする。

マクロの実行
6)[開発]タブのの[マクロ]をクリックする。
7)「塗りつぶし」を選択して「実行」をクリックする。



問2 オートシェイプへのマクロ登録

問1で記録したマクロ“塗りつぶし”を左にあるオートシェイプ「額縁」(表題:"塗りつぶし")に登録して実行しなさい。


登録手順:

1)オートシェイプの上で右クリックする。
2)「マクロの登録」をクリックする。
3)[マクロ名]から「塗りつぶし」を選択して「OK」をクリック。

実行

4)オートシェイプをクリックするとセル範囲B3:D6が黄色で塗り潰され、太い格子の罫線が引かれるはず。

解答例




問3 マクロ記録 − クリア

セル範囲 C13:F16 と H13:I16 をクリアするマクロを登録してください。

名前は ClearData
保存先は”作業中のブック” とします。

右のボタンをクリックするとデータが復元されますので、登録したマクロ ClearData を実行させてみましょう。




作成した「ClearData」を実行 -----  「データ復元」をクリック

         



解答例



@:「開発」タブの「マクロの記録」をクリック。

  


A:以下の様に入力して「OK」をクリック

  

B:コントロールキーを押しながら、セル範囲(C13:F16H13:I16)を選択して、Deleteキーを押下

  

C:記録終了 ボタンをクリックする。

  

D:データ復元ボタンを押してデータを表示させた後、作成したマクロ ClearData を実行させます。


  


問4 マクロ記録 − データ消去

1)右のボタンにマクロ”データ消去”を登録してください。
2)次にボタンをクリックしてこのマクロを実行してください。

  

解答例



@ボタンをマウスのみボタンで右クリックし、「マクロの登録」を選択します。
  

A”データの消去”を選択して「OK」ボタンをクリックする。

  

Bマクロボタンをクリックし、データが消去されることを確認。


問5 マクロ記録 − フォント変更

以下の作業を行って下さい。

1.セル範囲A4:F4を選択しなさい。

  その後、選択範囲を
・フォント:HGS創英角ゴシックUB
・サイズ :11pt
・太字、左揃え
  にするマクロを作成しなさい。
  マクロ名:タイトル書式
  保存先 :作業中のブック

2.マクロ「タイトル書式」を[額縁]のオートシェイプに登録しなさい。コマンドボタンのボタン名は「タイトル設定」とすること。

3.その後、A1に対してマクロを実行して下さい。





解答例



1.セル範囲A4:F4を選択(マクロ記録開始前に選択しておくこと!!)

2.マクロの記録開始

  


  マクロ名:タイトル書式
  保存先 :作業中のブック

  

その後、選択範囲を
・フォント:HGS創英角ゴシックUB
・サイズ :11pt
・太字、左揃えにする。
にします。

  

2.オートシェイプ[額縁]を作成し、作成したマクロ「タイトル書式」を登録。

  



マクロを登録します。

  
コマンドボタンのボタン名は「タイトル設定」とする。

 オートシェイプを右クリックし、テキストの編集をクリックしてボタン名を入力

  

3.その後、A1を選択して、ボタンをクリック


問6 マクロの編集 - 入力文字変更

マクロ[店舗名]を編集しなさい。
セル[A3]に入力する値を”木村屋”に変更すること。

また、変更後マクロを実行すること。


解答例



「開発」タブから「マクロ」をクリック。
[店舗名]を選択して、[編集]をクリック。

  

セルA3に入力するコマンドは、2行目 Range("A3") = "青木屋" なので、
"青木屋" → "木村屋" に変更する。

   

左上の「」ボタンをクリックしてエクセルシートに戻る。

マクロ「店舗名」を実行して、A3に"木村屋"が入力されることを確認

  


問7.1 マクロの編集 - 書式変更

定義されているマクロ“FormatTable”を、表の左端の文字列が

  MS ゴシック
  フォントの色を 白
  太字を斜体   に、
  表の1行目を中央揃え

になるように編集して下さい。

白色のカラー番号は 2 、
太字は Bold , 斜体は Italic をTrue にします。

コードが分からなかったらマクロの記録を利用して実際に作ってみるとよいでしょう。

変更したマクロをセルA26:F42に適用して下さい。

解答例


下図のように変更します。

  

その後、A26:F42を選択して、マクロ FormatTable を実行します。

問7.2 マクロの編集 - 「弁当注文表」の改良

「弁当注文表」を改良します。

下記のような「弁当注文表」は、使うたびに商品番号と数量を消去するのはなかなか面倒です。
そこで、A列の商品番号とD列の数量の範囲を消去する「OrderClear」という名前のマクロを作成しました。

ところが、「注文者」の列も消去しなければいけないことをマクロを作った後で気付きました。
新たにマクロを作り直すのではなく、マクロを編集して「注文者」の列も消去されるようにしなさい。

編集後、マクロを実行してA,D,F列のデータが消去されるかを確認しなさい。

  

解答例



記録されたているマクロは下のようになっています。
Sub OrderClear()
    '
    '弁当注文表 データ消去用マクロ
    '
    Range("A4:A11,D4:D11").Select
    Selection.ClearContents
End Sub
意味
 Range("A4:A11,D4:D11").Select  → 'セル範囲A4:A11とD4:D11を選択して
 Selection.ClearContents      → '選択した範囲を消去(Delete)

よって、これに、セル範囲F4:F11追加すれば注文者の列も消去されます。

ちなみに":"は連続する範囲の時、","は複数のセル範囲の時使用します。

下記のように修正(赤字が追加分)
Sub OrderClear()
    '
    '弁当注文表 データ消去用マクロ
    '
    Range("A4:A11,D4:D11,F4:F11").Select
    Selection.ClearContents
End Sub

問8 ユーザータブとボタン作成


[開発]タブの右側に[個人用マクロ]の名前で新しいタブを追加しなさい。
そのタブに、「表の書式設定」という名前でコマンドボタンを追加し、定義されているマクロ“FormatTable”を登録してください。イメージは黄色い「スマイル」とします。




解答例



1.新しいタブの追加

ファイルメニュー → オプション → リボンのユーザー設定 から [開発]を選択し、「新しいタブ」をクリックします。


2.ボタン作成

2.「新しいタブ」を選択し、「名前の変更」をクリック、「個人用マクロ」と入力します。



同様に、「新しいグループ」を選択、名前の変更をクリックします。
表の書式設定」と入力、スマイル図形を選択して「OK」ボタンをクリックします。



3.マクロの登録

コマンドの選択から「マクロ」をクリック




FormatTable を作成した「表の書式設定」の上にドラッグします。




オプションメニューを閉じると、新しいタブとボタンが追加されました。






×