Excel(エクセル)マクロとは
皆さんExcelのマクロとはなにかをご存じでしょうか?ExcelのマクロとはVBA(Visual Basic for Applications)という言語を使用して作られるプログラムです。このマクロを使用することで繰り返し行われる処理など様々な処理を自動化することができます。
Excelでマクロを使用するためにはVBAという言語を使用してVBAのプログラムを作成する方法とマクロの記録機能を使用して実際の動作を記録しVBAコードに直してくれる機能があるのでそちらを使う方法があります。しかし、マクロを使用する際には動作確認とデータのバックアップをしっかりとっておくことをお勧めします。今回の記事ではExcelマクロを使用した便利ツールの一覧を実際のコードとともにご紹介していきます。
Excel(エクセル)便利なマクロ一覧
では、早速ですがExcelの便利なマクロ一覧をご紹介していきます。
Excelのマクロは、繰り返し実行する必要のある複雑なタスクを自動化することができます。この記事では、便利なExcelマクロの一覧をいくつか紹介します。これらのマクロをそれぞれVisual Basicのエディタに貼り付け実行することでマクロを実行することができます。
ファイルをPDFに変換するマクロ
このマクロは、ExcelファイルをPDFに変換することができます。PDFは、ファイルのサイズを小さくし、見た目も美しくすることができるため、特に報告書やプレゼンテーションなどで役立ちます。
Sub SaveToPDF()
Dim MyPath As String, MyFileName As String
MyPath = ThisWorkbook.Path
MyFileName = ThisWorkbook.Name
MyFileName = Left(MyFileName, InStrRev(MyFileName, ".") - 1)
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
MyPath & "" & MyFileName & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub
データを自動でソートするマクロ
このマクロは、特定のカラムを指定して、Excelのデータを自動でソートすることができます。このマクロを使うことで、大量のデータを手動でソートする手間を省くことができます。
Sub SortData()
Range("A1").Select
Selection.End(xlDown).Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B1:B" & ActiveCell.Row), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A1:C" & ActiveCell.Row)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
シートを自動で作成するマクロ
このマクロは、新しいシートを自動で作成することができます。このマクロを使うことで、大量のシートを手動で作成する手間を省くことができます。
Sub CreateSheet()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets.Add
ws.Name = "New Sheet"
End Sub
データを自動でフィルタするマクロ
このマクロは、特定のカラムを指定して、Excelのデータを自動でフィルタすることができます。このマクロを使うことで、大量のデータから必要な情報を素早く見つけることができます。
Sub FilterData()
Range("A1").Select
Selection.End(xlDown).Select
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$D$"& ActiveCell.Row), , xlYes).Name = "Table1"
ActiveSheet.Range("$A$1:$D$" & ActiveCell.Row).AutoFilter Field:=3, Criteria1:=">=100", Operator:=xlAnd
End Sub
データの重複を自動で削除するマクロ
このマクロは、Excelのデータから重複を自動で削除することができます。このマクロを使うことで、重複したデータを手動で削除する手間を省くことができます。
Sub RemoveDuplicates()
Range("A1").Select
Selection.End(xlDown).Select
Range("A1:D" & ActiveCell.Row).RemoveDuplicates Columns:=Array(1, 2, 3, 4), Header:=xlYes
End Sub
シートのプロテクトを自動で解除するマクロ
このマクロは、Excelのシートのプロテクトを自動で解除することができます。このマクロを使うことで、プロテクトされたシートを簡単に編集することができます。
Sub UnprotectSheet()
ActiveSheet.Unprotect Password:="password"
End Sub
データをピボットテーブルで集計するマクロ
このマクロは、Excelのデータをピボットテーブルで集計することができます。このマクロを使うことで、大量のデータから必要な情報を簡単に抽出することができます。
Sub PivotTable()
Dim pc As PivotCache
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim lastRow As Long
lastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Set pc = ActiveWorkbook.PivotCaches.Create(xlDatabase, "Sheet1!R1C1:R" & lastRow & "C4")
Set pt = pc.CreatePivotTable(TableDestination:=Range("F1"), TableName:="PivotTable1")
Set pf = pt.PivotFields("Region")
pf.Orientation = xlRowField
Set pf = pt.PivotFields("Product")
pf.Orientation = xlColumnField
Set pf = pt.PivotFields("Sales")
pf.Orientation = xlDataField
End Sub
以上が、便利なExcelマクロの一覧です。これらのマクロを使うことで、Excel作業の効率を向上させることができます。ただし、マクロでデータを扱う場合はデータが破損してしまう可能性もあるのでマクロを実行する前に、動作確認をしっかりと行い、必ずデータのバックアップを取るようにしてください。
この他にもマクロ機能を使用することで自分オリジナルのマクロを作成することができ、業務効率の向上に役に立ちます。
Excelの操作方法は実際に手を動かし、身につけていきましょう
今の時代、様々な仕事でExcelを使用することがあるでしょう。今回はExcel VBAのfor nextを2つ以上使用する方法をご紹介しました。このような機能を使いこなすことができれば仕事にも役に立つので、実際に手を動かし、覚えていきましょう。
WordやExcelなどのOfficeツールでは便利なショートカットキーなどがたくさんあるのでよく使う作業に関してはショートカットキーを調べてみるのも効率よく仕事を進める上で大切なことなのでこれから実践してみましょう。
コメント