VBAマクロ

VBAマクロ

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

マクロの作成方法

マクロを作成するには、次の操作を行います:
  1. [Developer] > [Create Macro] に移動します。
  2. 表示されたダイアログで、マクロの名前と説明を入力し、[Create] をクリックします。
  3. VBA エディタでコードを入力します。
  4. [Save] をクリックします。

はじめに使えるマクロコードの例:

行の非表示/再表示

  1. Sub HideUnhideRowColumn()
  2. Sheets('Sheet1').Columns('A:E').Hidden = True
  3. Sheets('Sheet1').Columns('C:D').Hidden = False
  4. Sheets('Sheet1').Rows('11:15').Hidden = True
  5. Sheets('Sheet1').Rows('12:13').Hidden = False
  6. End Sub

行の切り取り、コピー、貼り付け

  1. Private Sub CopyCutRow()
  2. WorkSheets('Sheet1').Rows(2).Copy WorkSheets('Sheet1').Rows(4) //2 行目をコピーして 4 行目に貼り付け
  3. WorkSheets('Sheet2').Rows(2).Cut WorkSheets('Sheet1').Rows(4)//2 行目を切り取り、4 行目に貼り付け
  4. End Sub

セルの値の変更に基づいてメールを送信する

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Set watchRange = Range('B1:B100') '監視するセル範囲を想定
  3. If Not Intersect(Target,watchRange) Is Nothing Then
  4. If Target.Value = 'Send Mail' Then
  5. ThisWorkbook.HasRoutingSlip = True
  6. With ThisWorkbook.RoutingSlip
  7. .Recipients = Array('SendEmail@zoho.com') '複数の宛先にメールを送信可能
  8. .Subject = 'Task completed'
  9. .Message = 'Mail content' & Target.Row 'セルの値をメールで送信
  10. .AttachWorkbook = True
  11. '既定ではファイルがメールに添付されます。不要な場合は次のように設定します
  12.         ' .AttachWorkbook を false に設定。
  13. End With
  14. ThisWorkbook.Route
  15. End If
  16. End If
  17. End Sub
   

ブックを開いたときのイベントと新しいシート作成イベント
   

  1. REM ThisWorkbook タブ

  2. Private Sub Workbook_Open()
  3. Msgbox('I am an open event ',-1,'Welcome back!')
  4. End Sub
  5. Private Sub Workbook_NewSheet(ByVal sh As Object)
  6. Msgbox('I am a new sheet event, You have created a sheet! ',-1,' Name it ')
  7. End Sub

ワークシート変更イベント
   

  1. REM Sheet タブ

  2. Private Sub Worksheet_Change(ByVal Target As Range)
  3. Application.EnableEvents = false
  4. On Error Goto ENEV
  5. REM add your code below
  6. Msgbox(' I am a change event ',-1,'OH that's a good change!')
  7. ENEV:
  8. Application.EnableEvents = true
  9. End Sub

マクロの記録方法

マクロを使用すると、日常的な作業を自動化できます。毎日同じ書式設定を適用している場合は、その操作をマクロとして記録できます。

マクロを記録するには、次の操作を行います:
  1. [開発者] > [データマクロ] に移動します。 
  2. 入力フィールドに名前と説明を入力します。
  3. 必要に応じて、[相対参照を使用] をオンまたはオフにします。
  4. [データ] をクリックします。
  5. 記録を停止するには、停止アイコンをクリックします。
  6. [コードの表示] をクリックすると、記録されたマクロを VBA エディターで確認できます。[マクロ一覧] をクリックすると、スプレッドシート内のすべてのマクロを表示できます。
Notes
絶対参照 - セルは $列番号$セル番号 の形式で参照され、マクロは記録時と同じセルで実行されます。
 
相対参照 - セルは「$」の制約なしで参照され、マクロは実行開始位置からの相対的なセルに対して実行されます。