「Excel を使っているけど、マクロを使ったことがない」という人が、マクロを作れるようになるにはどうしたら良いでしょうか?
エクセルのマクロの記録を使うと、エクセルの一連の作業を自動化して記録することができます。
マクロの記録を使うと、マクロの経験が無い人でもマクロが作れます。「マクロの記録」のボタンの場所は、どこにあるか知っていますか?
マクロの記録ボタンがある場所
マクロの記録 ボタンのある場所は、開発タブのメニューの中とワークシートの左下にあります。

「マクロの記録」ボタンが表示されていない時
エクセルのワークシートのページの下端にあるステータスバーには、「マクロの記録」ボタンが表示されています。
「マクロの記録」ボタンが表示されていない時は、ステータスバーを「右クリック」します。
メニューが出るので、「マクロの記録」にチェックを入れれば、ボタンが表示されるようになります。

マクロの記録の使い方
マクロの記録を使うと、マクロの経験が無い人でもマクロが作れます。
マクロの記録の作成手順
- マクロの記録を使って、マクロを作る。
- マクロを実行する。
- マクロの記録でコードが、どのように書かれているかを見てみる。
- マクロの記録を修正して、自分にあったものにする。
- 修正したマクロが正しく動くかどうかを確認する。
- マクロを保存する。
たとえば、次のようなエクセルの操作を、VBAのコードで書いてマクロを作る場合で考えてみます。
マクロの例
- セルB2を選択します。
- セルB2に”5”を入力します。
たった、これだけのことでもマクロで書く場合、はじめての人には何をどう書いたら良いかわからないと思います。
しかし、「マクロの記録」を使えば次のようなコードになることがわかります。
Sub Macro1()
'
' Macro1 Macro
'
Range("B2").Select
ActiveCell.FormulaR1C1 = "5"
End Sub
「マクロの記録」を使うには、むずかしい操作はいりません。
また、VBAの用語もほとんど必要ありません。
「マクロの記録」を使うとエクセルの操作が記録されるので、VBAのコードがわからなくてもマクロを作ることができます。
マクロ記録の作成手順
エクセルの機能にある「マクロの記録」を使って、次のような簡単なマクロを作ります。
セルB2に「こんにちは!はじめてのマクロです。」と表示させるマクロを作ります。
次に、作成したマクロの「実行」と「保存」の方法を説明します。
エクセルのシートを新しく開きます。
現在のシートはSheet1です。

開発タブの「マクロの記録」をクリックします。

「マクロの記録」ダイアログになります。
「マクロ名」は変更することができます。
「OK」をクリックします。

「マクロの記録」が始まります。
セルB2を選択します。
セルB2に「こんにちは!はじめてのマクロです。」と入力します。

セルA1を選択します。
マクロの記録の「記録終了」をクリックします。
これで、マクロが完成しました。

マクロのコードを見る方法
「マクロの記録」のコードが、どのようになっているかを見ることができますので紹介します。
開発タブの「Visual Basic」のボタンをクリックします。

VBE(Visual Basic Editor)の画面が開きます。
標準モジュールにあるプラス(+)をクリックします。

「Module1」を「Wクリック」します。
右側にコードが表示されます。

セルB2に「こんにちは!はじめてのマクロです。」と表示するマクロのコードです。
Sub Macro1()
'
' Macro1 Macro
'
Range("B2").Select
ActiveCell.FormulaR1C1 = "こんにちは!はじめてのマクロです。"
Range("A1").Select
End Sub
マクロの記録でワークシートを追加する方法
エクセル画面を開き、ワークシートタブを「右クリック」します。
メニューの「挿入」をクリックします。

ワークシートのダイアログが開きますので、必要なものを選択して「OK」をクリックします。

ワークシートを選択してクリックすると、「Sheet4」が追加されました。

マクロの記録でワークシートの追加をする方法
上記の手動のエクセルの操作を「マクロの記録」を使って、ワークシートを追加するには次の操作をします。
マクロの記録の操作
- エクセル画面の「開発」>「マクロの記録」から、マクロの記録を開始します。
- マクロ名(シート追加)を入力します。
- Sheet1のタブを「右クリック」します。
- メニューの「挿入」をクリックします。
- ダイアログでワークシートが選択されているのを確認します。
- 「OK」をクリックします。
- 「マクロの記録」を終了します。
開発タブの「Visual Basic」を開くと、コードが見られます。
Sub シート追加()
'
' シート追加 Macro
'
Sheets("Sheet1").Select
Sheets.Add
End Sub
マクロの記録で月名を自動で入れるマクロを作る
ここで作成するマクロは、次の図のようなエクセルの「A列」に1月から12月までの月名を、自動で入力するマクロです。

マクロの記録を開始するまでの操作手順
- Excelのファイルを開きます。
- 「開発タブ」>「マクロの記録」をクリックします。
- 「マクロの記録」のダイアログが開きます。
- 名前を「月名」とします。
- 「OK」をクリックします。
- マクロの記録が「開始」されます。
エクセルの操作手順
- セルA1を選択します。
- セルA1に「1月」を入力します。
- セルA2に「2月」を入力します。
- セルA1とA2を選択します。
- 選択したままで、セルA12まで「オートフィル」します。
- セルA1を選択します。
- マクロの記録を終了します。
「開発タブ」>「Visual Basic」を開いてコードを確認すると次のようになります。
Sub 月名()
'
' 月名 Macro
'
'
Range("A1").Select
ActiveCell.FormulaR1C1 = "1月"
ActiveCell.Characters(2, 1).PhoneticCharacters = "ガツ"
Range("A2").Select
ActiveCell.FormulaR1C1 = "2月"
ActiveCell.Characters(2, 1).PhoneticCharacters = "ガツ"
Range("A1:A2").Select
Selection.AutoFill Destination:=Range("A1:A12"), Type:=xlFillDefault
Range("A1:A12").Select
Range("A1").Select
End Sub
■ コードの説明
• Range(“A1”) = “1月”
’Range(“A1”)のセルに、「1月」を代入するという意味です。
• Range(“A1:A2”).Select
’Range(“A1:A2”) A1とA2のセルを選択する。
• Selection.AutoFill Destination:=Range(“A1:A12”)
’選択したA1とA12のセルをオートフィルします。
• Destination:=Range(“A1:A12”)
’オートフィルしたものをA1からA12のセルに出力します。
■ 横方向(列)に月名を入れるマクロ
今回のマクロは、縦方向(行)に月名を入力しましたが、横方向(列)に月名を入力するマクロは、簡単に想像できると思います。
横方向(列)に月名を入力
- セルA1とB1に1月、2月を入れる。
- セルA1とB1を選択する。
- セルA1からL1までオートフィルすれば良いことになります。
マクロの記述は次のようになります。
Sub 月名入力列方向()
Range("A1") = "1月"
Range("B1") = "2月"
Range("A1:B1").Select
Selection.AutoFill Destination:=Range("A1:L1")
End Sub
このマクロを実行すると、次のように横方向に「月名」が入力されます。
