「エクセルファイルの新規作成 → 保存」操作を完全自動化するマクロ

Left Caption

疑問がある人

「必要な情報を新規ブックに転記し、名前をつけて保存する」処理を自動化したい!

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

結論から言うと、「ブックを新規作成するVBA」、「別のブックに情報を転記するVBA」、「名前を付けて保存するVBA」の3つを組み合わせたマクロを作成する!です。

 

私の仕事では以下のような処理が必要なエクセル業務があります。

 

ありとあらゆる情報が記載された設備一覧から一部の情報を別のブックに取り出して編集する業務

 

Right Caption

悩んでる人

単純作業で簡単だけどボリュームが多くて大変。編集ミスを発生させてしまうこともある。

こんな問題を解決するために開発したのが、必要な情報を新規ブックに転記し、名前をつけて保存するマクロです。

この記事では、必要な情報を新規ブックに転記し、名前をつけて保存するマクロの特徴、導入方法、使われているVBAについて詳しくご紹介しています。

同じような作業を自動化したい!と考えている方は是非参考にいてみてください。

 

必要な情報を新規ブックに転記し、名前をつけて保存するマクロとは

「必要な情報を新規ブックに転記し、名前をつけて保存するマクロ」は、新規ブックに情報を転記して決められた場所に保存する!というエクセル作業の効率をアップさせることが可能です。

Left Caption

ひらめく人

新規ブックに転記する情報は自由に増やすことや減らすことが可能です。

ブックに付ける名前は自由に編集可能です。サンプルではファイル名に年月日と時間を含めることで、ファイル名が被ってしまう事態を防ぐことができます。

 

サンプル事例

紹介するサンプル事例は実際の仕事で行っていたエクセル業務を参考にしています。

サンプル事例の処理内容

 

  1. ありとあらゆる設備情報が記載されている「設備台帳」から「設備場所」「品名」「取付日」の3項目の情報を新規ブックに転記
  2. 情報が転記されたブックに名前をつけて(データ管理+年月日+時間)デスクトップに保存

ブック名の付け方が、(「データ管理」+年月日時刻)なので同じ名前のファイル名になる心配がありません

「名前をつけて保存する」VBAを設定するときは「年月日時刻」を入れることがおすすめです。

 

導入方法

1.データ一覧表を作成する

シート名を「一覧表」にします。

 

2.VBAを開く

 

3.標準モジュールを作成する

 

4.標準モジュールにVBAコードを記入する

 

5.サンプルVBAコード

Sub 新規作成()
    Dim Ash As Worksheet
    Set Ash = ThisWorkbook.Worksheets("一覧表")
    ga = Ash.Cells(Rows.Count, 1).End(xlUp).Row
    Dim Bbo As Workbook
    Set Bbo = Workbooks.Add
    gb = Bbo.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row
    Bbo.Worksheets(1).Cells(1, 1) = Ash.Cells(1, 2)
    Bbo.Worksheets(1).Cells(1, 2) = Ash.Cells(1, 5)
    Bbo.Worksheets(1).Cells(1, 3) = Ash.Cells(1, 9)
    For i = 3 To ga Step 3
    Bbo.Worksheets(1).Cells((i / 3) + 1, 1) = Ash.Cells(i, 2)
    Bbo.Worksheets(1).Cells((i / 3) + 1, 2) = Ash.Cells(i, 5)
    Bbo.Worksheets(1).Cells((i / 3) + 1, 3) = Ash.Cells(i, 9)
    Bbo.Worksheets(1).Cells((i / 3) + 1, 3).NumberFormatLocal = "yyyy年m月d日"
    Next
    Application.DisplayAlerts = False
    Dim Filename As String
    Filename = "C:\Users\〇〇〇\Desktop\データ管理" & Format(Now, "yyyymmdd_hhmmss") & ".xlsx"
    Bbo.SaveAs Filename
    Application.DisplayAlerts = True
    Bbo.Close
End Sub

サンプルコードはコピペして使うことができます。

19行目のブックの保存場所をお使いのパソコンのデスクトップのアドレスに変更してからお使いください。

 

下記のサイトでは、サンプルマクロが設定されたエクセルファイルをダウンロードしてすぐに利用することができます。

必要な情報を新規ブックに転記し、名前をつけて保存するマクロをすぐに使ってみたい!マクロをアレンジして業務に応用したい!と考えている方は参考にしてみてください。

>> 必要な情報を新規ブックに転記し、名前をつけて保存するマクロのダウンロードはこちら

 

 

必要な情報を新規ブックに転記し、名前をつけて保存するマクロのメリット

必要な情報を新規ブックに転記し、名前をつけて保存するマクロを導入することで以下のようなメリットを得ることができます。

 

  • いちいち開かずに新規ブックを作成できる
  • 転記編集ミスが発生する心配がない
  • バックアップ保存用マクロとしても利用可能

仕事ではエクセルのブック毎にいろんなデータを管理しているので、このマクロを導入してから作業効率を格段にアップさせることができました。

 

1つのブック内で、シート毎にいろんなデータを管理している!という方には以下の記事で紹介しているマクロがおすすめです。

 

 

記事では、複数あるブックを一つのブックにまとめるVBAについて紹介されています。

まとめられる情報はシート毎に名前を付けて保存されるので、どのブックの情報がどのシートに集約されたかをすぐに確認することができます。

Left Caption

ひらめく人

詳しくは上記リンクから記事をチェックしてみてください。

 

必要な情報を新規ブックに転記し、名前をつけて保存するマクロに使われているVBA

必要な情報を新規ブックに転記し、名前をつけて保存するマクロに使われている3種類のVBAについてご紹介します。

 

ブックを新規作成するVBA

VBAでブックを新規作成するには、Workbooks.Addメソッドを利用します。

基本構造

 

Dim Bbo As Workbook

Set Bbo = Workbooks.Add

 

「Bbo」という名称を宣言した後にWorkbook.Addでブックを新規作成します。

上記サンプルVBAコードでは、5、6行目がブック新規作成コードにあたります。

 

別のブックに情報を転記するVBA

別のブックに情報を転記するVBAを設定するのは、「ブックの区別」と「シートの区別」をする必要があります。

基本構造

 

Dim Ash As Worksheet

Set Ash = ThisWorkbook.Worksheets(“一覧表")

Dim Bbo As Workbook

Set Bbo = Workbooks.Add

Bbo.Worksheets(1).Cells(1, 1) = Ash.Cells(1, 2)

 

上記基本構造の内容は、

「Bbo」という新規作成したブックのA1セルに一覧表シートのB1セルの情報を転記する

という内容です。

最初に「ブックの区別」と「シートの区別」をしていることがわかります。

この2つを宣言したあとは、ひたすら情報を転記するコードを記載していけば別のブックに情報を転記するVBAの完成です。

この転記VBAはいろんなエクセル業務に応用することができるテクニックなので是非使い方をマスターしましょう。

 

名前を付けて保存するVBA

「名前を付けて保存」するには、SaveAsメソッドを利用します。

基本構造

 

Dim Filename As String

Filename = “C:\Users\〇〇〇\Desktop\データ管理" & Format(Now, “yyyymmdd_hhmmss") & “.xlsx"

Bbo.SaveAs Filename

 

上記基本構造の内容は、

「Filename」という変数にファイルの保存場所(サンプルではデスクトップ) + 「データ管理(年月日時刻)」を格納し、ファイルを保存する

という内容です。

Format関数を使って、ファイル名に年月日時刻を記入することで、ファイル名が被ってしまうという問題を解決することができます。

VBAを使ってファイルの保存を自動化するときにはとても便利なテクニックなので自由に扱えるようにしましょう。

 

エクセルを使うことが多い業種ではVBAの導入がおすすめ

エクセルを使って膨大な量のデータ管理を行っている業種では、VBAの導入が絶対におすすめです。

そもそもデータ管理業というのは、単純作業の繰り返しであることがほとんどです。VBAはそんな単純作業の繰り返しを完全自動化することができます。

私は、働きながらプログラミングの知識0からVBAスキルを身に着けることができました。

その方法はというと、初心者用のVBA参考書とオンラインプログラミング学習【1st Step】の2つを利用するです。

仕事でVBA導入に関する課題を入手し、参考書と【1st Step】を使って課題解決!こんな勉強法を繰り返していると自然とVBAスキルを身に着けることができました。

 

おすすめのVBA参考書

たった1秒で仕事が片付くExcel自動化の教科書

VBAの勉強を開始するために私が最初に購入した参考書です。エクセル業務を効率化したい!と考えていたときにこの参考書を見つけました。

この参考書には以下のようなVBAの使い方がやさしく紹介されています。

 

  • 大量のフォルダやファイルの操作を一瞬で行うVBA
  • 繰り返し処理で大量のデータを一瞬で編集するVBA
  • 仕事で使える関数やテクニックの使い方

基礎的なことから実用的なことまで優しく紹介されているので、VBAを始めようとしている方仕事にVBAの導入を考えている方におすすめです。

 

Left Caption

ガッツポーズの人

実用的なVBAが数多く記載されていたので即購入しました。

 

オンラインプログラミング学習【1st Step】


【1st Step】はプログラミング未経験者のためのオンライン学習サービスです。

プログラミンの勉強を始めるには何から手掛ければいいのか!難しくて途中で挫折したらどうしよう!このように考える初心者に優しいカリキュラムになっています。オンライン型の学習サービスということで、自分の好きなタイミングと場所で勉強することができます。

プロのエンジニアが行う実務紹介というサービスがあります。これは、オンライン上で定期的に行われる講演会を視聴することで身に着けたプログラミングがどのように仕事で使われているのかを知ることができる!というものです。

以下の4つのコースを選ぶことができます。

 

  • C言語 基礎コース \44,800
  • java 基礎コース \44,800
  • VBA 基礎コース \44,800
  • 基礎コンプリートコース \79,800

基礎コンプリートコースは、C言語、java,VBA全ての基礎コースが集約されたものです。最終的に3つのプログラミングを勉強してエンジニアになる!という方におすすめです。

お好きなコースの申し込み完了後はテキスト、オンライン動画、講師への質問チャットの機能を使って勉強していくことになります。自分のタイミングで自分のペースで勉強を進めることができて、わからないことが出てくればプロの講師に質問できるという最高の環境でプログラミング学習を進めることができます。

>>オンラインプログラミング学習【1st Step】公式ホームページはこちら