アプリ版:「スタンプのみでお礼する」機能のリリースについて

マクロ設定について教えてください。 あるファイルのシート2に下記のマクロ式を設定してます。 「Sub Macroの保存2() Dim mainB As Workbook Set mainB = ThisWorkbook Call シートをコピー2(mainB) End Sub Sub シートをコピー2(MB As Workbook) Dim WB As Workbook Dim WS As Worksheet MB.Sheets(2).Columns("A:I").Copy Workbooks.Add Set WB = ActiveWorkbook Set WS = WB.Sheets(1) With WS .Range("A1").Select ActiveSheet.Paste .Range("A1:I46").Copy .Range("A1").PasteSpecial Paste:=xlPasteValues .Rows("49:136").Delete End With With Application.Dialogs(xlDialogSaveAs) .Show Arg1:=MB.Sheets(2).Range("P1").Value End With End Sub」 このマクロは 印刷範囲を「A1:I46」に設定し、マクロを実行するとこの範囲のみがセル「P1」に表示される物件名+担当者名のファイル名で保存されるように設定しております。 セル「AとI」とは変更ありませんが、「46の行」が表の構成で、その都度変更になります。例えば「A1:I40」「A1:I60」等々に印刷範囲に変更。 この変更に対応できるマクロに修正、追加をしたいのですが可能でしょうか。 可能であれば、教えてください。 よろしくお願いいたします。

A 回答 (2件)

#1タイプミスごめんなさいLastRow = ActiveSheet.Cells(Rows.Count, "I").End(xlU

p).Row
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございました。
お陰様で、上手くいきました。
感謝いたします。

お礼日時:2021/10/29 16:03

こんにちは、示されているコードでご質問の処理を実施する為には、I列の最終行を取得して代入すれば良いと思います。

下記のような感じでどうでしょう。Sub Macroの保存2()Dim mainB As Workbook Set mainB = ThisWorkbook Call シートをコピー2(mainB) End Sub Sub シートをコピー2(MB As Workbook) Dim WB As Workbook Dim WS As Worksheet Dim LastRow As Long MB.Sheets(2).Columns("A:I").Copy Workbooks.Add Set WB = ActiveWorkbook Set WS = WB.Sheets(1) With WS .Range("A1").Select LastRow = ActiveSheet.Cells(rouw.Count, "I").End(xlUp).Row ActiveSheet.Paste .Range("A1:I" & LastRow).Copy .Range("A1").PasteSpecial Paste:=xlPasteValues .Rows("49:136").Delete End With With Application.Dialogs(xlDialogSaveAs) .Show Arg1:=MB.Sheets(2).Range("P1").Value End With End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2021/11/01 15:36

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