質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

1回答

2417閲覧

送付状個別自動作成について

0120_sy

総合スコア3

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2021/05/07 13:53

生年月日と名前を1つのフォーマッドに個別に作成

送付状作成の為、名前と生年月日を送付状の原本(フォーマッド)に沿って
名前別にシートを作成したいです。
やりたい事
・フォームボタンをクリック後、データシート上の名前と生年月日が転記された送付状(原本)のフォーマッドに入力され、シートが個別で作成されるように自動化したい
・フォームボタンでシートが削除され、元の状態(データシートと送付状原本のみ)になる
・名前をシート名にする

以上3点です。
データシートはA行に名前、B行に生年月日を入力しています。
今までWordの差し込み印刷で対応してきましたが、内容書類が個々に異なる為、
Excelで個別にシート作成を行い、マクロ展開後、個別シートにて内容の変更を
行いたいです。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

Option Explicit

Sub リストから連続シート作成1()
Dim 名前 As Range
For Each 名前 In Worksheets("リスト").Range("A2:A100")
Worksheets("送付状原本").Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = 名前.Value
ActiveSheet.Range("B9") = 名前.Value
Next 名前
End Sub
Sub リストから連続シート作成2()
Dim 名前 As Range
For Each 名前 In Worksheets("リスト").Range("A2:A100")
Worksheets("送付状原本").Copy After:=Worksheets(Worksheets.Count)
With ActiveSheet
.Name = 名前.Value
.Range("B9") = 名前.Value
End With
Next 名前
End Sub

試したこと

ここまで作成し、シート名(名前)・名前ごとにシート作成まではできています。
生年月日も同時に入力できるようにするコードの書き方と
フォームボタンの作成方法等ご教授頂きたいです。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんな感じでどうでしょうか。

VBA

1Sub リストから連続シート作成() 2 Dim 名前 As Range 3 For Each 名前 In Worksheets("リスト").Range("A2:A100") 4 Worksheets("送付状原本").Copy After:=Worksheets(Worksheets.Count) 5 With ActiveSheet 6 .Name = 名前.Value 7 .Range("B9") = 名前.Value 8 .Range("B10") = 名前.Offset(, 1).Value 9 End With 10 Next 名前 11End Sub 12 13Sub リストから連続シート削除() 14 Dim i As Long 15 Application.DisplayAlerts = False 16 For i = Worksheets.Count To 3 Step -1 17 Worksheets(i).Delete 18 Next i 19 Application.DisplayAlerts = True 20End Sub 21

投稿2021/05/07 16:00

jinoji

総合スコア4585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0120_sy

2021/05/08 13:15

ありがとうございます。 勉強になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問