シートの自動作成
このマクロを実行すると、「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