ExcelVBA Programing Excel Microsoft Office

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

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




普段仕事をしていると、取引先やお客様、社員など、多数の人に案内文書や通知を送ることがあるかと思います。

その時、相手の会社名や名前など、特定の部分だけを変更したいなんてことはありませんか?

そんな時はExcelマクロで一発で内容変更し、複数シートを一発で作成しちゃいましょう!

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


実行イメージ

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

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


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

<動作確認環境>

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





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

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


マクロコード


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

コード解説

変数の定義

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

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

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

また、送付先一覧シートのデータが何行あるか不明確な場合を考慮し、B列の最終行を取得します。
取得した最終行番号は、のちほど使うため、変数に格納しておきます。

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


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

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

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

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

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

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行目から26行目までの文字列をシート名にしています。

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

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

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



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

定型フォーマットの所定箇所にデータ入力

ここまできたら、最後に、ws2のA5セルにデータを入力する処理を書いたら完了です!

完成実行イメージ



今回の解説は以上です!

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




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




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

RYO

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

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