VBAマクロ

VBAマクロ

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

マクロを作成するには

マクロを作成するには、次の手順を実行します。
  1. [開発者]→[マクロを作成]に移動します
  2. 表示されたダイアログで、マクロの名前と説明を入力し、[作成]をクリックします。
  3. VBAエディターにコードを入力します。
  4. [保存]をクリックします。

すぐに使用できるマクロコードのサンプル

行の非表示と再表示

  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 = 'メールを送信' Then
  5. ThisWorkbook.HasRoutingSlip = True
  6. With ThisWorkbook.RoutingSlip
  7. .Recipients = Array('SendEmail@zoho.com') '複数の受信者にメールを送信可能
  8. .Subject = 'タスクが完了しました'
  9. .Message = 'メール本文' & 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('ワークブックを開くイベントです',-1,'おかえりなさい!')
  4. End Sub
  5. Private Sub Workbook_NewSheet(ByVal sh As Object)
  6. Msgbox('新しいシートの作成イベントです。シートが作成されました!',-1,'名前を付けてください')
  7. End Sub

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

  1. REM シートモジュール

  2. Private Sub Worksheet_Change(ByVal Target As Range)
  3. Application.EnableEvents = false
  4. On Error Goto ENEV
  5. REM 以下にコードを追加
  6. Msgbox('変更イベントです',-1,'適切に変更されました!')
  7. ENEV:
  8. Application.EnableEvents = true
  9. End Sub

マクロを記録するには

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

マクロを記録するには、次の手順を実行します。
  1. [開発者]→[マクロの記録]に移動します。 
  2. 入力項目に名前と説明を入力します。
  3. 必要に応じて、[相対参照を使用]を選択または選択解除できます。
  4. [記録]をクリックします。
  5. 記録を停止するには、停止アイコン をクリックします。
  6. 記録したマクロをVBAエディターで表示するには[コードの表示]をクリックし、表計算シート内のすべてのマクロを表示するには[マクロ一覧]をクリックします。
Notes
絶対参照 - セルは$Column_Number$Cell_Numberの形式で参照されるため、マクロは記録時に使用したものと同じセルで実行されます。
 
相対参照 - セルは「$」の制約なしで参照されるため、マクロは実行場所を基準とした相対位置のセルで実行されます。