見出し画像

エクセルを使って抽出マクロを作る方法

この記事ではエクセルで抽出マクロを作る方法を紹介します。

抽出マクロはいろんな業務で使われる実務向けのマクロです。いろんな業務に応用することができるのでエクセル作業が多い方は是非チェックしてみて下さい。

抽出マクロとは

抽出マクロとは大量のデータから欲しいデータを取り出す!ということで、集計作業や統計作業などで有効なマクロになります。

私の仕事では大量の電気設備台帳から設備場所や検査日などでデータを抽出する業務があります。

例えば、

検査日が同じ設備を検索し、該当するデータを別のシートにコピペする。または該当するデータを複数の別のブックにコピペする。

というような業務が多くあります。

この記事では実際の業務でよく使われる3種類の抽出マクロについて詳しく紹介しています。

【】内のテキストを抽出するマクロ

【】内のテキストを抽出するマクロの作り方を紹介します。一覧表では【】や()というカッコ記号で補足説明がされているテキストが多くあります。

例えば、請求書(R3.10.20)という書き方のテキストがあったとして、日付だけ抽出して一覧表にしたい。というときに抽出マクロがとても便利です。

画像2

上記のように、大量のデータからでも抽出マクロを実行するだけで【】内のテキストを抽出することができます。

A列で【】が含まれるデータからテキストを抽出し、E列に表示しています。

抽出マクロの設定を少し変えるだけで、【】ではなく{}に簡単に変更することも可能なのでいろんな業務に応用することができます。

サンプルマクロ

Sub カッコテキスト抽出()
On Error Resume Next
gyo = Cells(Rows.Count, 1).End(xlUp).Row
Range(Cells(2, 5), Cells(gyo, 5)).ClearContents
For i = 2 To gyo
ds1 = InStr(Cells(i, 1), "【")
ds2 = InStr(Cells(i, 1), "】")
If ds1 <> 0 And ds2 <> 0 Then
df = Mid(Cells(i, 1), ds1 + 1, ds2 - (ds1 + 1))
Cells(i, 5) = df
Else
End If
Next
End Sub


指定するテキストが含まれる設備の数量を集計するマクロ

抽出したいテキストを入力し抽出マクロを実行すると、指定したテキストが含まれるデータを抽出し数量の集計を行います。

画像1

上図では、0001というテキストが含まれているA列のデータを全て抽出し、E列に設備名称、F列に数量を表示させています。

0001というテキストではなく、「高圧ケーブル」や「ブレーカ」というテキストに変更して抽出することもできます。

マクロの実行と同時に合計数量を表示する設定になっているので、集計作業の効率を格段にアップさせることができます。

サンプルマクロ

Sub 指定テキスト抽出()
On Error Resume Next
gyo = Cells(Rows.Count, 1).End(xlUp).Row
Dim Mo1 As String
Dim Mo2 As Long
Dim Mo3 As Long
Mo1 = Cells(2, 8)
Mo2 = Len(Mo1)
Range(Cells(2, 5), Cells(gyo, 6)).ClearContents
For i = 2 To gyo
gyo2 = Cells(Rows.Count, 5).End(xlUp).Row
Mo3 = Len(Cells(i, 1))
For j = 1 To Mo3
If Mid(Cells(i, 1), j, 1) = Left(Mo1, 1) And Mid(Cells(i, 1), j, Mo2) = Mo1 Then
Cells(gyo2 + 1, 5) = Cells(i, 1)
Cells(gyo2 + 1, 6) = Cells(i, 2)
Else
End If
Next
Next
gyo3 = Cells(Rows.Count, 6).End(xlUp).Row
Cells(gyo3 + 1, 5) = "合計"
Cells(gyo3 + 1, 5).Font.Bold = True
Cells(gyo3 + 1, 6) = Application.WorksheetFunction.Sum(Range(Cells(2, 6), Cells(gyo3, 6)))
Cells(gyo3 + 1, 6).Font.Bold = True
End Sub


検査日が同じ設備を抽出し集計するマクロ

検索欄に日付を入力し、入力した日付と一致するデータを抽出し数量の集計を行います。

画像3

入力した検査日と一致するデータをA列から抽出し、E列に設備名称、F列に数量を表示させています。

サンプルマクロ

Sub 検査日抽出()
On Error Resume Next
gyo = Cells(Rows.Count, 1).End(xlUp).Row
Range(Cells(2, 5), Cells(gyo, 6)).ClearContents
For i = 2 To gyo
gyo2 = Cells(Rows.Count, 5).End(xlUp).Row
If Cells(i, 3) = Cells(2, 8) Then
Cells(gyo2 + 1, 5) = Cells(i, 1)
Cells(gyo2 + 1, 6) = Cells(i, 2)
Else
End If
Next
gyo3 = Cells(Rows.Count, 6).End(xlUp).Row
Cells(gyo3 + 1, 5) = "合計"
Cells(gyo3 + 1, 5).Font.Bold = True
Cells(gyo3 + 1, 6) = Application.WorksheetFunction.Sum(Range(Cells(2, 6), Cells(gyo3, 6)))
Cells(gyo3 + 1, 6).Font.Bold = True
End Sub


抽出マクロの設定方法

上記で記載しているサンプルマクロの設定の方法を紹介します。

1.VBAを開く

画像4

2.標準モジュールを作成

画像5

3.標準モジュールにサンプルマクロをコピペ

画像6

4.Sheetにボタンを作成

画像7

5.ボタンにマクロを登録

画像8

以上でサンプルマクロの設定が完了です。


抽出マクロはこんな人におすすめ

抽出マクロは大量のデータを扱っていて、データを集計したり統計をとったりするエクセル業務がある方におすすめです。

私の職場では人によって集計作業の出来栄えにムラがあります。そのため、パソコン操作が得意な人がデータ量が多かったり、複雑な条件がある集計作業を行っています。

しかし、抽出マクロを使えば誰でも簡単に集計作業を行うことができます。
パソコン操作が苦手という方でも抽出マクロを利用すれば簡単に集計作業を処理することができるようになるはずです。

マクロを積極的に導入して、働き方をカイゼンしていきましょう。

今回紹介した、3種類の抽出マクロが設定されたエクセルファイルを下記の有料記事でダウンロードすることができます。使ってみたい!という方は是非記事の購入をよろしくお願いいたします。

続きをみるには

残り 181字 / 1ファイル

¥ 500

期間限定 PayPay支払いすると抽選でお得に!

この記事が気に入ったらサポートをしてみませんか?