ダウンロード

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


メニュー
相対参照マクロとは?
問9.相対参照マクロの作成
問10.自分専用のタブを作成
問11.コマンドボタンの追加
問12.アクティブセル対象マクロ
問13.画面設定と復元のマクロ
問14.マクロの自動実行
ダウンロード(サンプルファイル)
リンクリスト
コメント参照/記入
解答を 全て展開 折り畳む

相対参照マクロとは?


絶対参照マクロ

これまでに作成したマクロは絶対参照のマクロです。
すなはち、固定された場所にしか結果が反映されません。
絶対参照で記録したマクロは、どのセルを選択してマクロを実行しても、
記録した時のセルに対してしかマクロは適用されません。

相対参照マクロ

そこで、アクティブな(Active≒選択されているて、入力を受け付ける状態)セルからの相対位置にマクロを実行させたい場合があります。
たとえば、「現在アクティブなセルの右下のセルに対してマクロを実行したい」場合など。

それを相対参照マクロと呼びます。
相対参照で記録すると、記録を開始したセルを基準としてマクロが記録され、
マクロ実行時には、アクティブなセルを基準としてマクロが実行されます。


問9.相対参照マクロの作成

相対参照マクロの作成

下図ではセルB3アクティブになっています。
そこで右下のセル(C4)を黄色で塗り潰すマクロを相対参照で記録してみましょう。




マクロ名は「右下黄色」とします。
保存場所は「作業中のブック」とします。

その後、セルC6がアクティブな状態でマクロを実行してみましょう。
同様にE10をアクティブにしてマクロを実行しましょう。

常に選択しているセルの右下のセルが黄色で塗り潰されるでしょう

手順


1)セルB3がアクティブな(選択した)状態で[開発]タブの[相対参照で記録]をクリック。
  [開発]タブの表示方法


  

2)マクロ名と保存場所を選択して「OK」をクリック。


  

3)セルC4を黄色で塗り潰す。

5)[記録終了]ボタンをクリックしてマクロの記録を終了。

6)セルC6をアクティブしてマクロを実行します。
  → セルD7が塗り潰されます。

このように、相対参照マクロは、常に、選択しているセルからの相対位置ので実行されます。


問10.自分専用のタブを作成

自分専用のタブを作って問9で作成したマクロを登録しなさい。

タブの名前は 「マイタブ」としましょう。
グループ名は「マイコマンド」、追加するマクロボタン名は「右下黄色」としましょう。

  

解答例


ツールバーの作成

1) [ファイル]タブ → オプション → リボンのユーザー設定 から挿入したい位置のタブを選択。
   選択タブの後ろに追加される。 ここでは[開発]タブの後ろに追加。
   [開発]を選択し、「新しいタブ」をクリック。


3)下のようなタブが作成される。
  タブを選択して「名前の変更」から新しいタブ名を"マイタブ"、新しいグループ名を"マイコマンド"と入力。

  

同様に、新しいグループ名も入力


  

  

ボタンの追加

4)[コマンドの選択]から「マクロ」を選択して[右下黄色]を「マイコマンド」の下にドラッグ(または[追加]ボタンクリック)。

 

5)ボタンイメージ変更
  [右下黄色]を選択して「名前の変更」からアイコン(黄色いスマイル)を選択して「OK」

  

6)ダイアログボックスを全て閉じる
  

適当なセルでボタンをクリックしてマクロを実行してみましょう。
ボタンを押すと、選択したセルの右下のセルが選択され、黄色く塗られることを確認。

問11.コマンドボタンの追加

問10で作成した「マイタブ」の「マイコマンド」グループに[書式のクリア]と[形式を選択して貼り付け]の各コマンドを追加しなさい。

コマンドの場所
 ・「書式のクリア」: 「ホーム」→「編集」→「クリア」
 ・「形式を選択して貼り付け」: 「ホーム」→「クリップボード」→「貼り付け」

   

解答例


書式のクリア:「ホーム」→「編集」→「クリア」から「書式のクリア」をドラッグ(または「追加」ボタン)

  

同様に、
  形式を選択して貼り付け: 「ホーム」→「クリップボード」→「貼り付け」から「形式を選択して貼り付け」をドラッグ(または…)

   

作成されたマイタブ

   

問12.アクティブセル対象マクロ

セル範囲B3:E17を外枠を青色太罫線、内側が実線の青色罫線を引き、セル範囲B3:E3を「ベージュ」の塗りつぶしに設定するマクロを相対参照で作成して下さい。
マクロ名は「表マクロ」として作業中のブックに保存して下さい。色の場所

現在のアクティブセルがどこかが重要です!

問11で作成したタブに、作成した「表マクロ」をボタンとして登録しましょう(アイコンは既定)。

下の表(7月分)に対してマクロを実行して下さい。



   

解答例



マクロ記録

1.[開発]タブを選択
2.「相対参照による記録」ボタンを押下
3.セルB3を選択 ← 記録開始前に選択しておくことが重要!ここが起点となる。
4.「マクロの記録」をクリック

5.〜 書式設定 〜
6.「記録終了」をクリック

ユーザーメニューのへの登録

・「ファイル」メニューの「オプション」をクリック。
・「コマンドの選択」から「マクロ」を選択し、[表マクロ]を[形式を選択して貼り付け]の下にドラッグ(または追加)

。    

マクロの実行

・セルB22を選択して、[表マクロ]ボタンをクリックする。
 下図のように書式が設定されればOK。


   



問13.画面設定と復元のマクロ

下記の2つのマクロを記録し、ボタンに登録して実行しなさい。

マクロ名:「画面設定

・枠線、行列番号、シート見出し、水平スクロールバー、垂直スクロールバーを表示しない。
・背景に 「パブリックピクチャー」フォルダにある任意の写真を設定する。

マクロ名:「画面復元
・上記を表示して背景を削除する(すなわち、元の状態に戻す)。

   

解答例



問10と同じようにして、画面設定と画面復元のマクロを記録し、コマンドをタブに追加します。

画面設定の方法

・背景の設定
   

 背景の削除

   


・枠線、見出し(行列番号)
   

・水平/垂直スクロールバー、シート見出し
   


設定と解除が正しく行われることを確認

問14.マクロの自動実行

マクロの自動実行

問13で作成したマクロ「画面設定」をこのシートがアクティブになったら自動的に画面設定されるようにしてみましょう。

また、このシートの任意のセルをダブルクリックしたら「画面復元」が起動され、元の状態に戻るようにしてみましょう。

万一正常に動作しなかった時に備えて左のボタンにもマクロを登録しておきましょう。

動作確認:


1)シート見出し「問13」を選択後、「問14」を選択する。
  →画面の各オプションが設定され、背景画が表示されるはず。

2)シートの任意の部分をダブルクリックする。
  →画面の設定が元の状態に戻る。

解答例



1)[開発]タブの[Visual Basic]をクリックする。

   

2)下のような画面が表示されるので、
  「Sheet13(問14)」を選択(ダブルクリック)する。

3)左側のドロップダウンリストから「 Worksheet 」を選択、
  右側のリストから「 Activate 」を選択する。
   

4) Private Sub Worksheet_Activate() の下に、Call 画面設定 を入力
   WorkSheet_Selection Change 以下の3行は不要なので消去しておきます。(残しておいても問題は無し)
   

5) 同様に「 BeforeDoubleClick 」を選択して、「Call 画面復元」と入力する。
   



Private Sub Worksheet_Activate
 シートが<アクティブ(≒入力できる状態になった)ときに呼ばれる。
Private Sub Worksheet_BeforeDoubleClick
 セルをダブルクリックして、エクセル既定の処理が開始される前にに呼ばれる。


別のシートに切り替え、再度、「問14」シートに切り替えたら画面設定が行われ、
任意のセルをダブルクリックすると、元の状態に戻ることを確認。




×
PageTop