Excel VBAで業務効率を上げる簡単なプログラム10選

目次

シートの自動作成 セルの自動入力 日付の自動入力 セルの重複値をハイライト セル範囲のデータを自動フィルター 行の自動削除 メールの自動送信 グラフの自動作成 シートのプロテクト セルの値に基づく条件付き書式

VBA

EXCEL VBAについて 基本構文について 変数と演算子について セル操作について シート操作について ブック操作について For文について IF文について Case文について トップへ戻る

シートの自動作成

このマクロを実行すると、「Sheet1」から「Sheet5」までの5つの新しいシートが作成されます。
Sub CreateSheets()
    Dim sheetName As String
    For i = 1 To 5
        sheetName = "Sheet" & i
        Sheets.Add(After:=Sheets(Sheets.Count)).Name = sheetName
    Next i
End Sub
                

セルの自動入力

このマクロを実行すると、セルA1からA10に1から10までの連番が入力されます。
Sub AutoFillCells()
    Dim i As Integer
    For i = 1 To 10
        Cells(i, 1).Value = i
    Next i
End Sub
                

日付の自動入力

このマクロを実行すると、今日の日付がセルA1に入力されます。
Sub InsertTodayDate()
    Range("A1").Value = Date
End Sub
                

セルの重複値をハイライト

このマクロを実行すると、セルA1からA10内の重複値が赤色でハイライトされます。
Sub HighlightDuplicates()
    Dim cell As Range, rng As Range
    Set rng = Range("A1:A10")
    For Each cell In rng
        If Application.WorksheetFunction.CountIf(rng, cell.Value) > 1 Then
            cell.Interior.Color = RGB(255, 0, 0) ' 赤色でハイライト
        End If
    Next cell
End Sub
                

セル範囲のデータを自動フィルター

このマクロを実行すると、セル範囲A1:B10内で、A列の値が50より大きい行のみが表示されます。
Sub AutoFilterData()
    Range("A1:B10").AutoFilter Field:=1, Criteria1:=">50"
End Sub
                

行の自動削除

このマクロを実行すると、A列の値が50未満の行がすべて削除されます。
Sub DeleteRows()
    Dim i As Integer
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
        If Cells(i, 1).Value < 50 Then
            Rows(i).Delete
        End If
    Next i
End Sub
                

メールの自動送信

このマクロを実行すると、Outlookを使用してメールが自動的に送信されます。
Sub SendEmail()
    Dim outlookApp As Object
    Dim outlookMail As Object
    Set outlookApp = CreateObject("Outlook.Application")
    Set outlookMail = outlookApp.CreateItem(0)
    With outlookMail
        .To = "recipient@example.com"
        .Subject = "Test Email"
        .Body = "This is a test email sent from VBA."
        .Send
    End With
End Sub
                

グラフの自動作成

このマクロを実行すると、セル範囲A1:B10のデータを基にした折れ線グラフが作成されます。
Sub CreateChart()
    Dim chartObj As ChartObject
    Set chartObj = ActiveSheet.ChartObjects.Add(Left:=100, Width:=375, Top:=50, Height:=225)
    With chartObj.Chart
        .SetSourceData Source:=Range("A1:B10")
        .ChartType = xlLine
    End With
End Sub
                

シートのプロテクト

このマクロを実行すると、アクティブシートがパスワード「password」で保護されます。
Sub ProtectSheet()
    ActiveSheet.Protect Password:="password"
End Sub
                

セルの値に基づく条件付き書式

このマクロを実行すると、セル範囲A1:A10内で値が50を超えるセルが緑色でハイライトされます。
Sub ConditionalFormatting()
    Dim rng As Range
    Set rng = Range("A1:A10")
    With rng.FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreater, Formula1:="50")
        .Interior.Color = RGB(0, 255, 0) ' 緑色でハイライト
    End With
End Sub