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

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

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

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

Q&A

解決済

1回答

353閲覧

マクロの動作確認は正常だが、作ったボタンを押すと正常に実行されない(エラー表示は出ない)

0727

総合スコア1

VBA

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

0グッド

0クリップ

投稿2022/07/27 01:51

編集2022/07/27 14:36

クラス人数分、個別に異なる文書を自動で印刷で出せるように
出席番号に連動したマクロを初めて組みました。

動作確認では問題なく全員分印刷されるのですが
ボタンを作成し押すと最初の1人分しか印刷されません。
どうしてなのでしょうか?
エラー表示は出ません。

以下コードです。

Sub 一括印刷処理()

Dim maxRow As Long
maxRow = Cells(Rows.Count, 1).End(xlUp).Row

Dim i As Long

For i = 1 To maxRow
Worksheets("クラス").Range("I2").Value = i
Worksheets("クラス").Copy After:=ActiveSheet
ActiveSheet.Name = "印刷用" & i
Next

Application.DisplayAlerts = False
For i = 1 To maxRow
Worksheets("印刷用" & i).PrintOut
Worksheets("印刷用" & i).Delete
Next i
Application.DisplayAlerts = True

End Sub

御指導の程、よろしくお願いします。

☆追記☆
環境がわかりずらいので追記します。
Excelで個人データをVLOOKUPで紐付けて文書を作成しています。
パソコンの動作環境はWindows 10 ProでExcel2016です。

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

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

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

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

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

guest

回答1

0

ベストアンサー

maxRow = Cells(Rows.Count, 1).End(xlUp).Row
を下記に修正したらどうなりますか。

maxRow = Worksheets("クラス").Cells(Rows.Count, 1).End(xlUp).Row

投稿2022/07/27 02:16

hatena19

総合スコア33620

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

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

0727

2022/07/27 04:04

御指導ありがとうございます。 修正したみたところ、動作確認で最初の1人分だけ印刷されるようになりました。
0727

2022/07/27 04:41

Excelでシートが①手順②クラス③データと3つ作ってあるのですが クラスシートを印刷したいので、クラスシートにマクロボタンを作成していたのですが データシートにマクロボタンを作成したところ、なぜか正常に作動しました! 説明不足で申し訳ありませんでした。
hatena19

2022/07/27 04:59

> Excelでシートが①手順②クラス③データと3つ作ってあるのですが そのような重要な情報は質問に含めておかないと、正しい回答は不可能です。
0727

2022/07/27 05:18

このような情報が重要とも分かっておらず、申し訳ございませんでした。 ご指摘ありがとうございます。
hatena19

2022/07/27 05:36

ある状況ではうまく動作して、ある状況ではうまく動作しない場合の原因としてよくあるのが、アクティブシートが異なっているということがあります。 このようなバグをなくすには、アクティブシートに依存するコードを書かない、どのシートを対象にするかきちんと指定するようにします。 maxRow = Cells(Rows.Count, 1).End(xlUp).Row はどのシートなのか指定がないです。下記のように対象シートを指定するコードにするようしましょう。 maxRow = Worksheets("データ").Cells(Rows.Count, 1).End(xlUp).Row
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問