エクセル作業を自動化するマクロを作りたい方必見【実務で役立つエクセルマクロの参考書】

豆父ちゃん

エクセル作業を自動化するマクロを作りたい。初心者でもわかるくらい簡単な内容の参考書を教えてほしい。

こんな要望にお応えします。

この記事では、エクセルマクロの存在を全く知らない状態から仕事でいくつもの自動化マクロを導入できるようになった私が役に立ったと感じるエクセルマクロの参考書を紹介します。

注意点として、エクセルVBAについて深く勉強をしたい!という方向けの内容の参考書ではありません。あくまで、初心者の方が仕事で使えるマクロを作成できるようになるための参考書を紹介しています。

マクロを作成するにあたり変数や引数といった難しいプログラムを扱うことになりますが、これらを100%理解せずともマクロは作れます。

この記事では、VBAを深く勉強をするための教科書ではなく、仕事でエクセル業務を自動化するためのマクロを作成できるようにる参考書を紹介しています。

仕事でエクセルをよく扱う方、仕事の効率を上げたいと考えている方におすすめの参考書になっています。

 

広告

マクロに触れたことのない初心者の方におすすめの参考書

エクセルVBAってなに?エクセル作業の自動化なんてできるの?というようなエクセルVBA初心者の方にピッタリの参考書をご紹介します。

Excel VBAの絵本はエクセルVBAに触るのが初めて!という初心者の方におすすめです。変数や演算子といったような初心者の方に難しいとされる分野を絵や図形を用いてわかりやすく説明されています。

2ページで1つの話を完結させる!という構造になっているので、ページをいったりきたりさせるストレスが全くありません。難しいプログラムの理解を深めるというよりも、イメージでVBAの勉強をすることができる!という参考書です。

日頃エクセルは扱っているけど、VBAなんて開いたことも見たこともない!という方がほとんどだと思います。エクセルVBAはパソコンにエクセルソフトが入っていれば誰でもすぐに始められるプログラミングです。

仕事の効率を上げたい!キャリアアップしたい!と考えている方はエクセルVBAを勉強してみてはいかがでしょうか。

 

複雑なマクロを作りたい方におすすめの参考書

エクセルVBAで簡単なマクロは作成できるようになった。さらに便利なマクロを開発できるようになりたい!というような方にピッタリの参考書をご紹介します。

Excel VBA コードレシピ集は、簡単なマクロを自分で作成できる!という方におすすめの参考書です。VBAの勉強をしているほとんどの方がある程度簡単なマクロを作成できるようになると、さらに便利で役立つマクロを開発したい!という思うはずです。そんなときに読んで欲しいのが、Excel VBA コードレシピ集です。

この本の特徴は、エクセルVBAの基礎だけを勉強しても気づくことができないテクニックがいっぱい紹介されているということです。「〇〇したい」という要望を解決するマクロを紹介していく構成になっています。

この参考書で紹介されている「〇〇したい」を誰しも一度は自動化できたらいいのにと感じたことがある項目ばかりのはずです。

私は毎日エクセルを操作しなければならない仕事をしていて、参考書で紹介されている以下の「〇〇したい」を応用して作業効率アップに繋がるマクロを職場に導入しました。

 

  • 日付から年月日や時分秒の値を取り出したい
  • 指定日が休日かどうかを判定したい
  • 指定セルが画面左上に来るようスクロールさせたい

ほかにも作業効率アップに繋がるような凄いテクニックが数多く紹介されています。今よりも1ステップ上のマクロを開発したい!という方におすすめの参考書です。

 

エクセル作業で毎日マクロの編集を行う方におすすめの参考書

毎日マクロを使って仕事をしている方にピッタリの参考書をご紹介します。

即効! 仕事に役立つマクロは仕事ですぐに役立つ!をコンセプトに作られている参考書です。マクロの作成に必要な基本事項が初めに記載されていて、後半は仕事で必要とされるエクセル操作に関するマクロの書き方を中心に紹介されています。

 

  • セルの操作
  • テキストの操作
  • 罫線の操作
  • 列・行の操作
  • ワークシートとワークブックの操作
  • 作成したマクロの実行方法

この参考書があれば、だいたいのエクセル作業の自動化をマクロを使って行うことができるようになります。

「あのマクロの書き方忘れちゃった」、「この処理に必要なマクロなんだっけ?」というような、ちょっとした調べものをするときにとても便利、さらに今まで考えもしなかった発想がこの参考書から得られるはず。

仕事で役立つマクロをどんどん導入していきたい!と考えている方におすすめの参考書です。

 

参考書のネットの情報だけで作成した自動化マクロ

私は上記で紹介している参考書とネットの情報でエクセルVBAについて勉強をしています。今では作業効率アップに繋がるエクセルマクロをいくつも開発できるまでに上達しました。職場に導入して好評だったエクセルマクロがどういうものなのかいくつか紹介します。

写真を自動で貼り付けるエクセルマクロ

フォルダ内に保存されている写真データをエクセルに貼り付けるマクロです。貼り付ける際、写真の大きさと表示位置を自動で調整してくれるので編集の手間がいりません。

さらに、写真データの名前を表示する仕様になっています。

写真を貼り付けるマクロのサンプルマクロ

1 Sub 写真挿入横()
2 Dim Ash As Worksheet
3 Set Ash = Sheets(“設定")
4 Dim Csh As Worksheet
5 Set Csh = Sheets(“写真(横)")
6 Const cnsTitle = “ファイル名一覧取得"
7 Const cnsDIR = “\*.*"
8 Dim xlAPP As Application
9 Dim strPath As String
10 Dim strFilename As String
11 Dim GYO As Long
12 Dim zukei As Shape
13 Dim myFileName As String
14 Dim syasin As String
15 Dim Path As String
16 rm = Csh.Cells(Rows.Count, 25).End(xlUp).Row
17 For Each sa In Csh.Shapes
18 On Error Resume Next
19 If sa.TopLeftCell.Address >= Csh.Cells(1, 1).Address Then
20 sa.Delete
21 End If
22 If Err <> 0 Then
23 Err.Clear
24 End If
25 Next
26 For i = 3 To rm Step 21
27 Csh.Range(Csh.Cells(i, 25), Csh.Cells(i + 2, 38)).ClearContents
28 Next
29 Set xlAPP = Application
30 strPath = Ash.Cells(3, 1)
31 If Dir(strPath, vbDirectory) = “" Then
32 MsgBox “指定のフォルダは存在しません。", vbExclamation, cnsTitle
33 Exit Sub
34 End If
35 strFilename = Dir(strPath & cnsDIR, vbNormal)
36 Do While strFilename <> “"
37 GYO = GYO + 21
38 Csh.Cells(GYO – 18, 25).Value = strFilename
39 strFilename = Dir()
40 Loop
41 For i = 1 To rm Step 21
42 Csh.Cells(i + 2, 2).Select
43 syasin = Ash.Cells(3, 1) & “\" & Csh.Cells(i + 2, 25).Value
44 Csh.Pictures.Insert syasin
45 Csh.Pictures.Top = Range(Csh.Cells(i + 2, 2), Csh.Cells(i + 20, 23)).Top
46 Csh.Pictures.Left = Range(Csh.Cells(i + 2, 2), Csh.Cells(i + 20, 23)).Left
47 Csh.Pictures.Height = Range(Csh.Cells(i + 2, 2), Csh.Cells(i + 20, 23)).Height
48 Next i
49 End Sub

サンプルマクロは、実行に必要なユーザーフォームの設定やシートの設定などは記載されていません。写真を貼り付けるマクロについてもっと詳しく知りたい!という方は下記のこちらの記事を参考にしてください。

 

下記のサイトでは、写真を貼り付けるマクロをダウンロードしてお使い頂けます。このエクセルは、A4一枚に写真を3枚貼り付ける仕様になっています。様式を変更したい!貼り付ける写真を小さくして枚数を増やしたい!などの要望がありましたらお気軽にお問合せ下さい。

 

シートからシートに情報を転記するエクセルマクロ

シートからシートに情報を転記して伝票を作成するマクロです。氏名、住所など基本情報を入力するシートから伝票や領収書などのシートに必要な情報を転記する!という仕組みになっています。

このマクロは、同じ宛名や住所をいろんな種類の書類に入力する作業への導入がおすすめです。例えば、請求書、売上伝票、領収書、見積書といった書類は宛名や住所、金額がそれぞれ同じものが入力されることがほとんどです。転記マクロを使うとこのような書類をまとめて作成することができます。

複数の書類作成を手入力で行なっていれば、入力ミスやコピペミスが発生する可能性があります。

転記マクロを使えば、基本情報は手入力する必要がありますが、ほかの書類へ入力は全てマクロが自動で行なってくれます。

 

シートからシートへ情報を転記するマクロのサンプル

1 Sub 伝票転記()
2 Dim Ash As Worksheet
3 Dim Bsh As Worksheet
4 Set Ash = ThisWorkbook.Worksheets(“一覧表")
5 Set Bsh = ThisWorkbook.Worksheets(“伝票")
6 "’ユーザーフォームで入力した値を変数i,jで取得""
7 Dim i As Date
8 i = UserForm1.TextBox1.Value
9 j = UserForm1.ListBox1.Value
10 gyoa = Ash.Cells(Rows.Count, 1).End(xlUp).Row
11 gyob = Bsh.Cells(Rows.Count, 2).End(xlUp).Row
12 Bsh.Range(Cells(6, 1), Cells(6, 10)).ClearContents
13 Bsh.Range(Cells(10, 2), Cells(gyob + 1, 10)).ClearContents
14 Bsh.Range(Cells(10, 11), Cells(gyob + 1, 15)).ClearContents
15 Bsh.Range(Cells(10, 16), Cells(gyob + 1, 19)).ClearContents
16 Bsh.Range(Cells(10, 20), Cells(gyob + 1, 23)).ClearContents
17 Bsh.Range(Cells(10, 24), Cells(gyob + 1, 27)).ClearContents
18 Bsh.Range(Cells(10, 28), Cells(gyob + 1, 33)).ClearContents
19 Bsh.Range(Cells(26, 22), Cells(26, 24)).ClearContents
20 Bsh.Range(Cells(26, 14), Cells(26, 19)).ClearContents
21 Bsh.Range(Cells(26, 28), Cells(26, 33)).ClearContents
22 For k = 3 To gyoa
23 gyob = Bsh.Cells(Rows.Count, 2).End(xlUp).Row
24 If Ash.Cells(k, 1) = i And Ash.Cells(k, 2) = j Then
25 Bsh.Cells(6, 1) = j
26 Bsh.Cells(gyob + 1, 2) = Ash.Cells(k, 3)
27 Bsh.Cells(gyob + 1, 11) = Ash.Cells(k, 4)
28 Bsh.Cells(gyob + 1, 16) = Ash.Cells(k, 5)
29 Bsh.Cells(gyob + 1, 20) = Ash.Cells(k, 6)
30 Bsh.Cells(gyob + 1, 24) = Ash.Cells(k, 7)
31 Bsh.Cells(gyob + 1, 28) = Ash.Cells(k, 8)
32 Else
33 End If
34 Next
35 Bsh.Cells(26, 22) = Ash.Cells(3, 9)
36 Bsh.Cells(26, 14) = Application.WorksheetFunction.Sum(Range(Cells(10, 24), Cells(gyob, 24)))
37 Bsh.Cells(26, 28) = Bsh.Cells(26, 14) * (Bsh.Cells(26, 22) / 100 + 1)
38 End Sub

サンプルマクロは、実行に必要なユーザーフォームの設定やシートの設定などは記載されていません。写真を貼り付けるマクロについてもっと詳しく知りたい!という方はこちらの記事を参考にしてください。

下記のサイトでは、シートからシートへ情報を転記するマクロをダウンロードしてお使い頂けます。転記先の様式を変更したい!などの要望がありましたらお気軽にお問合せください。

 

複数のエクセルファイルを一つにまとめるエクセルマクロ

複数のエクセルファイルを一つにまとめるマクロです。

使い方は設定シートにコピーしたいエクセルファイルが保存されている場所を入力し、マクロを実行するだけです。

実行すると、場所を指定したエクセルファイルの情報(全てのシート)を一つのエクセルファイルに集約することができます。

仕事で、「過去10年分の請求書のデータをまとめてほしい!」と上司から指示されました。請求書のデータは年度毎に別々のエクセルファイルで作られていたので、開く→コピペ→閉じる→開くという繰り返し作業が必要になりめんどうでなりませんでした。

こんな手間と時間のかかる繰り返し作業はマクロを使って完全自動化してしまおうと考え、複数のエクセルファイルを一つにまとめるマクロを開発しました。

複数のエクセルファイルを一つにまとめるマクロのサンプル

1 Sub テスト()
2 Application.ScreenUpdating = False
3 Dim Abook As Workbook
4 Set Abook = ActiveWorkbook
5 Set Ash = Abook.Worksheets(“設定")
6 For k = 3 To 20
7 Dim exfile As String
8 If Ash.Cells(k, 2) = “" Then
9 Exit Sub
10 Else
11 exfile = Ash.Cells(k, 2)
12 End If
13 Workbooks.Open Filename:=exfile
14 If Err.Number > 0 Then
15 MsgBox “ファイルはすでに開かれています。"
16 Exit Sub
17 End If
18 Dim Bbook As Workbook
19 Set Bbook = ActiveWorkbook
20 For i = 1 To Bbook.Worksheets.Count
21 Bbook.Worksheets(i).Copy After:=Abook.ActiveSheet
22 Abook.ActiveSheet.Name = Abook.ActiveSheet.Name & “(" & Bbook.Name & “)"
23 Next i
24 Bbook.Close
25 Next k
26 End Sub

サンプルマクロの設定やシートの設定は、こちらの記事で詳しく紹介しています。ほかにも記事では、指定するフォルダ内に保存されている全てのエクセルファイルを一つにまとめるマクロも紹介されています。エクセルファイルを一つ一つ指定するのではなく、フォルダ内にあるエクセルファイルをいっきに情報を集約したい!というときに便利です。
下記のサイトでは、複数のエクセルファイルを一つにまとめるマクロをダウンロードしてお使いいただけます。情報を一つのエクセルファイルにまとめる作業に時間を費やしている方におすすめです。

 

 

参考書とネットの情報だけでこれだけのエクセルマクロを開発することができます。仕事でエクセルを操作することが多い!という方は今のうちにエクセルVBAの勉強をしてみてはいかがでしょうか。

今となっては職場にいくつもの作業効率化マクロを導入するようになりましたが、簡単なマクロしか開発できない頃は自分のパソコン内で使うエクセルにだけマクロを導入していました。

自分だけのエクセルマクロを使っていると、私のエクセル作業のスピードだけがどんどん速くなり、上司から職場の誰もが扱えるマクロを使ってくれ!とお願いされるようになりました。

エクセルVBAを扱えるようになると、多くのメリットを得ることができます。是非エクセルVBAの勉強をスタートさせましょう。