「Excel を使っているけど、マクロはやったことがない」という人が、マクロを作れるようになるにはどうしたら良いでしょうか?
- マクロの記録を使って、マクロを作る。
- マクロを実行する。
- マクロの記録でコードが、どのように書かれているかを見てみる。
- マクロの記録を修正して、自分にあったものにする。
- 修正したマクロが正しく動くかどうかを確認する。
- マクロを保存する。
というように、覚えていくのが良いと思います。
マクロの記録の使い方
たとえば、次のようなエクセルの操作を、VBAのコードで書いてマクロを作る場合で考えてみます。
- セルB2を選択します。
- セルB2に”5”を入力します。
たった、これだけのことでもマクロで書く場合、はじめての人には何をどう書いたら良いかわからないと思います。
しかし、「マクロの記録」を使えば次のようなコードになることがわかります。
Sub Macro1() ' ' Macro1 Macro ' Range("B2").Select ActiveCell.FormulaR1C1 = "5" End Sub
「マクロの記録」を使うには、むずかしい操作はいりません。
また、VBAの用語もほとんど必要ありません。
「マクロの記録」を使うとエクセルの操作が記録されるので、コードがわからなくてもマクロを作ることができます。
マクロ記録の作成手順
エクセルの機能にある「マクロの記録」を使って、次のような簡単なマクロを作ります。
次に、作成したマクロの「実行」と「保存」の方法を説明します。
1.エクセルのシートを新しく開きます。
現在のシートはSheet1です。
2.開発タブの「マクロの記録」をクリックします。
3.「マクロの記録」ダイアログになります。
「マクロ名」は変更することができます。
「OK」をクリックします。
4.「マクロの記録」が始まります。
セルB2を選択します。
セルB2に「こんにちは!はじめてのマクロです。」と入力します。
5.セルA1を選択します。
マクロの記録の「記録終了」をクリックします。
これで、マクロが完成しました。
マクロのコードを見る方法
「マクロの記録」のコードが、どのようになっているかを見ることができますので紹介します。
1.開発タブの「Visual Basic」のボタンをクリックします。
2.VBE(Visual Basic Editor)の画面が開きます。
標準モジュールにあるプラス(+)をクリックします。
2.「Module1」を「Wクリック」します。
右側にコードが表示されます。
3.セルB2に「こんにちは!はじめてのマクロです。」と表示するマクロのコードです。
Sub Macro1() ' ' Macro1 Macro ' Range("B2").Select ActiveCell.FormulaR1C1 = "こんにちは!はじめてのマクロです。" Range("A1").Select End Sub
マクロの記録でワークシートを追加する方法
1.エクセル画面を開き、ワークシートタブを「右クリック」します。
メニューの「挿入」をクリックします。
2.ワークシートのダイアログが開きますので、必要なものを選択して「OK」をクリックします。
3.ワークシートを選択してクリックすると、「Sheet4」が追加されました。
■ マクロの記録でワークシートの追加をする方法
上記の手動のエクセルの操作を「マクロの記録」を使って、ワークシートを追加するには次の操作をします。
- エクセル画面の「開発」>「マクロの記録」から、マクロの記録を開始します。
- マクロ名(シート追加)を入力します。
- Sheet1のタブを「右クリック」します。
- メニューの「挿入」をクリックします。
- ダイアログでワークシートが選択されているのを確認します。
- 「OK」をクリックします。
- 「マクロの記録」を終了します。
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
このマクロを実行すると、次のように横方向に「月名」が入力されます。
■関連記事■ 開発タブを表示する方法
■関連記事■ マクロのセキュリティの設定方法
■関連記事■ マクロの実行方法
■関連記事■ VBAマクロを1行ずつ実行する方法
■関連記事■ マクロの実行ボタンを作る方法
■関連記事■ マクロの保存方法
■関連記事■ 不要なマクロを削除する方法
■関連記事■ セルのデータ、書式を元に戻すマクロ
■関連記事■ マクロの記録のボタンはどこにある?
■関連記事■ マクロの記録の作成手順と使い方
以上で「マクロの記録の作成手順と使い方」の説明を終わります。