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

シートの自動作成

このマクロを実行すると、「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
タイトルとURLをコピーしました