電子書籍の厳選無料作品が豊富!

「回答」シートにおいて1行に1件ずつデータが入っており,I2セルからI3セルで行番号を始点,終点として指定すると「様式」シートに指定した行のデータが順番に反映され,それらを結合した状態で出力し,ファイル名はI2セルに入力した行のデータ容に則したものになるコードについて伺います。

以前,この掲示板で質問させていただいおり,そのときは「ファイル名はI2セルに入力した値のときに「様式」シートに反映される内容に則したものにしたい」という条件がなかったため,そのときに教えていただいたコードに修正を加えたものが以下のコードですがエラーで止まってしまいます。
(l = Sheets("回答").Range("N7").Value &~の部分で止まってしまいます)

どのように修正したらよいか,ご教示願います。


Sub 連続PDF作成()
Dim stK, stY, stD
Dim startN, endN, i As Long
Const AA = "A1:H40" ' ← コピー(転記)対象のセル範囲
Dim l As String ' ← 作成するPDFファイル名

Set stK = Worksheets("回答")
Set stY = Worksheets("様式")
startN = stK.Range("I2").Value
endN = stK.Range("I3").Value
If Application.CountBlank(stK.Range("I2:I3")) > 0 Or _
Not (IsNumeric(startN) And IsNumeric(endN)) Then _
MsgBox "無効な入力です": Exit Sub


Application.ScreenUpdating = False
Application.DisplayAlerts = False
stY.Copy
With ActiveWorkbook
Set stD = ActiveSheet
For i = startN To endN
stK.Range("A5").Value = stK.Cells(i + 9, 1).Value
stD.Copy after:=.Worksheets(.Worksheets.Count)
.Worksheets(.Worksheets.Count).Range(AA).Value = stY.Range(AA).Value
Next i

stD.Delete

stK.Range("A7").Value = stK.Cells(startN + 9, 1).Value
l = Sheets("回答").Range("N7").Value & "・" & Sheets("回答").Range("G7").Value & "・" & Sheets("回答").Range("D7").Value

.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\" & l & ".pdf"
.Close False
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

  • 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
  • 今の自分の気分スタンプを選ぼう!
あと4000文字

A 回答 (3件)

エラーの行について


「Sheets("回答")」の記述を「stK」
に変更するとどうですか?
    • good
    • 0

こんばんは



>l = Sheets("回答").Range("N7").Value &~の部分で止まってしまいます
通常であれば、このセンテンスでエラーになることは無いと思いますが・・

妄想を逞しくしてみるなら・・・
(以下は妄想なので、当たるも八卦です)
エラーメッセージは「インデックスが~~」だったりしませんか?

もしそうなら、
>Set stD = ActiveSheet
のActiveSheetは「回答」シートだったりしませんか?
(ご提示のコードのこの部分が何をしたいのか不明ですが・・)
更に、もしそれも当たっているなら、
>stD.Delete
でシートを削除しているので、「参照先が見つからない」というエラーですね。

作成中やデバッグ中は、
>Application.ScreenUpdating = False
>Application.DisplayAlerts = False
などは、外しておいた方が、原因等も見つけやすいと思いますよ。
    • good
    • 0

エラーで止まってしまうとのことですが


どのようなエラーですか?

Err.Number

Err.Description
の内容をここに書いていただくと答えていただく人がでてくるかもしれません
    • good
    • 0
この回答へのお礼

デバックです。「l = Sheets("回答").Range("N7").Value &~」の部分が黄色くなります。

お礼日時:2024/07/16 18:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!