LoginSignup
0
1

More than 1 year has passed since last update.

【VBAによる業務効率化】 ~基本データからExcelシートを自動生成~

Last updated at Posted at 2022-05-15

はじめに

このシリーズからExcelでの単純作業を少しでも楽にするためのアイデアを発信していきます。Excel自動化にはpythonライブラリのopenpyxl等を使用することも可能ですが、基本的にはVBAによる自動化について書いていきます。
また、より業務効率化のイメージを持ってもらうためにシチュエーションを想定して説明したいと思います。

置かれている状況と今回やること

あなたはとあるクラスの先生です。
全員の成績を集約したExcelシート(基本データ)をもとに、生徒の氏名が入ったシートを作成し各シートに成績を転記したいと考えています。
しかし、生徒が50人いるので(画像では25人までしか見えていないですが)手作業で入力するのは時間がかかりそうです。
基本データ.png
そこで、まずは生徒の氏名が入ったシートを自動で作成していきます。

コードの記述

以下のようにコードを記述します。

氏名シートの作成
Sub create_newsheet()
    
    '変数の定義
    Dim i As Long
    Dim lastRow As Long
    
    '氏名列の最終行を取得して変数に代入
    lastRow = Sheets("基本データ").Range("B2").End(xlDown).Row
    
    '基本データから氏名を取得してi番目のシート名にする
    For i = 1 To lastRow - 1
        Sheets.Add(after:=Sheets(i)).Name = Sheets("基本データ").Cells(i + 1, "B").Value
    Next i
    
   '基本データに戻る
    Sheets("基本データ").Activate

End Sub

実行結果

今回は「シート作成」というボタンを作成し実行してみます。(F5キー等で実行しても大丈夫です)
実行前.png後.png
全員分の氏名が入ったシートを作成することができました!
今の段階では各シートには何も書かれていないので、次の記事で成績の転記方法について説明したいと思います。

次の記事はこちら

参考文献

本記事を書くにあたっては以下の情報を参考にしました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1