Excel VBAに関する質問掲示板です。
Excel VBA 質問スレッド No.751 (解決済)
VBAで差し込み印刷
投稿者 : 困ったやん 投稿日時 : 2022/05/25(Wed) 10:58:33 OS : Windows 10 EXCEL : Excel 2021
VBA初心者です
「データ」シートにある情報を「案内」の該当セルに挿入して
差し込み印刷がしたいです。
以下で実行しようとすると
「nextで指定された変数の参照が不明です」とエラーが出ます。
先輩社員に押し付けられたもので、できないとキレられます・・・
お力添えください・・・
*******************
VBA初心者です
「データ」シートにある情報を「案内」の該当セルに挿入して
差し込み印刷がしたいです。
以下で実行しようとすると
「nextで指定された変数の参照が不明です」とエラーが出ます。
先輩社員に押し付けられたもので、できないとキレられます・・・
お力添えください・・・
*******************
Sub SSS()
Dim p, t, u
With Sheets("データ")
'差し込みたい列の選択
For Each p In .Range(.Cells(6, 2), .Cells(10, 2).End(xlUp))
For Each t In .Range(.Cells(6, 3), .Cells(10, 2).End(xlUp))
For Each u In .Range(.Cells(6, 4), .Cells(10, 2).End(xlUp))
With Sheets("案内")
.Range("a41") = p.Value
.Range("a40") = t.Value
.Range("a42") = u.Value
.PrintPreview
End With
Next p
Next t
Next u
End Sub
[返信 1] Re : VBAで差し込み印刷
投稿者 : さんこう 投稿日時 : 2022/05/25(Wed) 11:31:44
参考になれば。
https://www.google.com/search?q=next%E3%81%A7%E6%8C%87%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%9F%E5%A4%89%E6%95%B0%E3%81%AE%E5%8F%82%E7%85%A7%E3%81%8C%E4%B8%8D%E6%98%8E%E3%81%A7%E3%81%99
参考になれば。
https://www.google.com/search?q=next%E3%81%A7%E6%8C%87%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%9F%E5%A4%89%E6%95%B0%E3%81%AE%E5%8F%82%E7%85%A7%E3%81%8C%E4%B8%8D%E6%98%8E%E3%81%A7%E3%81%99
[返信 2] Re : VBAで差し込み印刷
投稿者 : てらてら 投稿日時 : 2022/05/25(Wed) 12:50:26
こんにちは。
Next p
Next t
Next u
ではなく、
Next u
Next t
Next p
でないといけません。
字下げするようにすれば、すぐに気づきますよ。
それと、withの使い方もダメです。
"案内"シートにはこの書き方は使えないので、
With Sheets("案内")はやめにして、
Sheets("案内").Range("a41") = p.Value
Sheets("案内").Range("a40") = t.Value
Sheets("案内").Range("a42") = u.Value
としましょう。
こんにちは。
Next p
Next t
Next u
ではなく、
Next u
Next t
Next p
でないといけません。
字下げするようにすれば、すぐに気づきますよ。
それと、withの使い方もダメです。
"案内"シートにはこの書き方は使えないので、
With Sheets("案内")はやめにして、
Sheets("案内").Range("a41") = p.Value
Sheets("案内").Range("a40") = t.Value
Sheets("案内").Range("a42") = u.Value
としましょう。
[返信 3] Re : VBAで差し込み印刷
投稿者 : hatena 投稿日時 : 2022/05/25(Wed) 14:49:18
Next の変数はてらてらさんの指摘どおりですね。
Forが入れ子になっている場合は、Nextの変数は内側から外側に記述する必要があります。
コードを書くときにきちんとインデント(字下げ)をつけるようにするとこのようなミスを防げます。
あと、With は入れ子にできますでの、With Sheets("案内") の書き方は間違いではないですね。
ただし、With Sheets("データ") に対応する End With がないのでそこでエラーになりますね。
Next の変数はてらてらさんの指摘どおりですね。
Forが入れ子になっている場合は、Nextの変数は内側から外側に記述する必要があります。
コードを書くときにきちんとインデント(字下げ)をつけるようにするとこのようなミスを防げます。
あと、With は入れ子にできますでの、With Sheets("案内") の書き方は間違いではないですね。
ただし、With Sheets("データ") に対応する End With がないのでそこでエラーになりますね。
Sub SSS()
Dim p, t, u
With Sheets("データ")
'差し込みたい列の選択
For Each p In .Range(.Cells(6, 2), .Cells(10, 2).End(xlUp))
For Each t In .Range(.Cells(6, 3), .Cells(10, 3).End(xlUp))
For Each u In .Range(.Cells(6, 4), .Cells(10, 4).End(xlUp))
With Sheets("案内")
.Range("a41") = p.Value
.Range("a40") = t.Value
.Range("a42") = u.Value
.PrintPreview
End With
Next u
Next t
Next p
End With
End Sub
[返信 4] Re : VBAで差し込み印刷
投稿者 : 困ったやん 投稿日時 : 2022/05/25(Wed) 15:28:35
こちらも解決いたしました!
ありがとうございます!
こちらも解決いたしました!
ありがとうございます!
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
返信入力フォーム
( 処理日時 : 2022-07-07 12:36:58 )