【Excel VBA】Excelマクロの作り方

Excel VBA マクロの作り方

VBAとマクロ

Excelでマクロを作るときには、VBA(Visual Basic for Application)というプログラミング言語を使います。

そのせいなのか、VBA = マクロ という理解をしている人もいるようですが、VBAとマクロは違うものなので気を付けましょう。

  • VBA: マクロを作るためのプログラミング言語のこと
  • マクロ: VBAで作られた機能のこと

マクロを作るためのメニュー(開発タブ)表示方法

それではVBAでマクロを作っていきましょう!

といきたいところですが、デフォルトではVBAでマクロを書くためのメニューは表示されていません。

そのため、まずはメニューを表示するところから始めます。

 

1. トップメニューの【ファイル】をクリックします。

 

2. 【オプション】をクリックします。

 

3. Excleのオプションウィンドウが開きますので、【リボンのユーザー設定】をクリックし、【開発】にチェックを付けます。

 

4. すると、トップメニューに【開発】タブが表示されます。

 

5. 開発タブをクリックして、【Visual Basic】をクリックします。

 

6. 【Microsoft Visual Basic for Applications】ウィンドウが表示されます。Microsoft Visual Basic for Applicationsウィンドウが表示

 

たけのこ

これでVBAでマクロを作るための準備は完了だよ!

VBAでマクロを作る

それでは、簡単なマクロを作ってみましょう。

これから作るマクロの内容

これから作るマクロは、「”Sheet1″のA1~A5にある数値から最大値と最小値を表示する」マクロです。

 

1. 【VBAProjectを右クリック】→ 【挿入】 → 【標準モジュール】をクリックします。

モジュール追加

 

2. 【Module1(コード)】 ウィンドウが表示されます。

 

3. 【Module1(コード)】に以下のソースコードを貼り付けます。(copyボタンを押せばコピーできます)

 

VBA: ShowMinMaxVal

copy


' "Sheet1"のA1~A5にある数値から最大値と最小値を表示する
Sub ShowMinMaxVal()
    
    ' 1.最大値と最小値を入れる箱を作る
    Dim minVal, maxVal As Long
    Dim targetRange As range
    Set targetRange = Worksheets("Sheet1").range("A1:A5")
    
    ' 2.1で作った箱に、最大値と最小値を入れる
    minVal = Application.WorksheetFunction.Min(targetRange)
    maxVal = Application.WorksheetFunction.Max(targetRange)
    
    ' 3.最大値と最小値を表示する
    MsgBox "最小値:" & minVal & ", 最大値:" & maxVal

End Sub

 

4. Excelに戻り、A1~A5に数字を入力してください。

そのあとに【マクロ】をクリックすると、【マクロ】ウィンドウが表示されます。

さきほど作成した【ShowMinMaxVal】を選択して、【実行】ボタンをクリックします。

 

5. 最小値と最大値が表示されます。

A1~A5にある数字を見ると、最小値2、最大値10であることがわかるので、マクロが正しい結果を表示していることが分かります。

マクロ実行結果

 

今回はマクロのハードルを下げるために、かなり簡単なマクロを作ってみました。

これを機に、仕事で発生している面倒なExcel処理を、マクロで実行できるようにしてみてはいかがでしょうか?