ExcelVBA Programing Excel Microsoft Office

【ExcelVBA】試験合格者だけに合格証を発行する

※ページのリンクに一部広告が含まれています。




今回は、条件に応じてシートを作成するマクロを紹介します。

その1例として、試験合格者だけに合格証を発行するマクロを作りましたのでで良かったら参考にしてください。

この記事を真似するだけで簡単に作ることができます


実行イメージ

試験合格者だけに合格証を発行するマクロ

関連記事【ExcelVBA】入力した文字列をシート名にする簡単マクロ

関連記事【ExcelVBA】一覧表からシート名をまとめて作成する方法

関連記事【ExcelVBA】案内文書をまとめて編集・シート作成するマクロ


今回の記事に関してご不明な点があれば、問合せフォームからご連絡ください。

<動作確認環境>

  • Windows 10 Home(バージョン22H2)
  • Microsoft Office Professional Plus 2019





この記事を書いたひと
筆者のRYO。MOSマスター資格者。Excel操作テクニックやマクロVBA知識が豊富。本業で日々Excelを使い倒しており、現場に近いExcelの悩み解決が得意。

筆者のRYOはMOSマスター資格を取得しており、毎日のようにExcelを使い倒しているので、Excel操作に関する知識が豊富。


今回やりたいこと

「受講者一覧」シートには、受講者と点数の一覧があります。そして、点数が80点以上なら合格証を作成するというシーンです。

合格証は「合格証書」シートにひな形があり、中央部分に合格者の名前が入るようになっています。

合格証書を人数分作ろうと思うと、とても大変です。今回は、この作業を自動化します。

受講者一覧シート
合格証書シート


マクロコード

コード入力画面


▼マクロコード(コピペ用)

コード解説

変数の定義

コード入力画面

今回登場する2種類のシートをそれぞれ変数に格納します。

変数の名前は何でもいいですが、ws(ワークシートの略)としました。型はワークシート型で。

カッコの中のワークシート名は間違えないように。

また、送付先一覧シートのデータが何行あるか不明確な場合を考慮し、B列の最終行を取得します。(B列のIDが必ず入力されていること前提)
取得した最終行番号は、のちほど使うため、変数に格納しておきます。

コード入力画面

ちなみに、今回B列の最終行番号は 「26」になります。


「For Next」ステートメントで繰り返し処理

コード入力画面

For Nextステートメントは、繰り返し処理を行うステートメントの1つです。

For から next i までの中に記述されたコードが指定回数だけ実行され、指定回数を過ぎるとFor Nextから抜けることになります。

指定回数は「3 TO LastRow」の部分です。

今回、LastRowの変数には22が格納されているので、2から22までの数字が変数 i の中に格納されながら処理が行われ、22になったときにFor文から抜けます。

IF Then ~End If で条件分岐

IF分で80点以上の場合だけ、合格証を発行するようにします。

『If ws1.Cells(i, "D") >= 80 Then』 で80点以上の場合 という意味になります。

コード入力画面


Copyメソッドでシート追加

コード入力画面

シートをコピーする時は、Copyメソッドを使います。

『ws2.Copy after:=Worksheets(Worksheets.Count) 』で、一番最後のシートにコピーするという意味になります。

Withステートメント

Withで1度だけ書いたオブジェクトは、End With と書かれているところまでは省略して書くことができます。

今回の場合 With の後ろに書かれている「Worksheets(Worksheets.Count)」 の記述が省略できます。

Name プロパティ

コード入力画面

Excel VBAでシート名取得するには、 「Name プロパティ」を使用します。

.Name = ws1.Cells(i, "B").Value の部分で、受講者一覧シートのB列の2行目から22行目までの文字列をシート名にしています。

シート名に使えない文字があるので注意ください。
使えない文字を使用した場合は、マクロがエラーになります。

シート名に使用できない文字一覧

  1. コロン (:)
  2. バックスラッシュ ()
  3. スラッシュ (/)
  4. クエスチョンマーク (?)
  5. アスタリスク (*)
  6. ブラケット ([], {})
  7. シングルクォート (')
  8. ダブルクォート (")
  9. グレーターサイン (>)
  10. レスサイン (<)
  11. ピリオド (.)
  12. セミコロン (;)
  13. バーティカルバー (|)



実行時エラーが表示された場合は、「終了」ボタンをクリックしてから、 これらの使えない文字を含まないセルを選ぶか、使えない文字を削除後、マクロを再実行しましょう。

合格証に名前入力

コード入力画面

最後に、ws2(合格証書シート)のA5セルに、ws1(受講者一覧シート)を転記する処理を書いたら完了です!

完成実行イメージ



今回の解説は以上です!

条件に応じてシートを追加したり、本文を編集する業務には、今回のマクロを応用できるかと思います。ぜひ参考にしてみてください。

記事に関する質問やお問い合わせがあれば、問い合わせフォームからご連絡ください。




教える人
初心者におすすめのExcel関連書籍




  • この記事を書いた人
  • 最新記事

RYO

30代サラリーマンです。誰かの行動のヒントになる「IT×Tips」や「学び」を日々発信。 【保有資格】MOS マスター/ITパス/統計スペシャリスト/VecotrWorks技能/ロジオペ2級など

-ExcelVBA, Programing, Excel, Microsoft Office
-, ,