マクロ設定について教えてください。 あるファイルのシート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」等々に印刷範囲に変更。 この変更に対応できるマクロに修正、追加をしたいのですが可能でしょうか。 可能であれば、教えてください。 よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
#1タイプミスごめんなさいLastRow = ActiveSheet.Cells(Rows.Count, "I").End(xlU
p).RowNo.1
- 回答日時:
こんにちは、示されているコードでご質問の処理を実施する為には、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お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】毎回、ファイル名が...
-
Excel シートを自動作成、セル...
-
Excel で選択しているセルの行...
-
EXCEL:同じセルへどんどん足し...
-
Excelで同じシートのコピーを一...
-
エクセルで前のシートを連続参...
-
EXCELで1ヶ月分の連続した日付...
-
Accessのスプレッドシートエク...
-
別シート参照のセルをシート毎...
-
日報をエクセルで作成したいの...
-
VBA コピーを有効行までループ...
-
VBAでシートコピー後、シート名...
-
VBAでシート1のデータを他シー...
-
Excelで連続印刷をするマクロ
-
【Excel マクロ】 同一book内で...
-
条件に応じて特定の行を非表示...
-
エクセルVBA 串刺し計算の際、...
-
シートを配列にいれることはで...
-
特定のシートの削除を禁止した...
-
excel2007 VBA countif関数
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのマクロで指定条件一...
-
シートをコピーして シートに...
-
Excelでシート名と最終更新日を...
-
エクセルのマクロ設定について...
-
Excel マクロ 他ブックのシート...
-
Excel シートを自動作成、セル...
-
シートをコピー、シート名を変更
-
Excel で選択しているセルの行...
-
Excel VBA 検索して該当行を抽出
-
エクセル マクロの作り方
-
新しいマクロの記録でコピーし...
-
EXCELVBA データを自動で別シー...
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
エクセルVBAでパスの¥マークに...
-
条件に応じて特定の行を非表示...
-
前の(左隣の)シートを連続参...
-
Excelで金銭出納帳。繰越残高を...
-
EXCEL:同じセルへどんどん足し...
-
EXCELで1ヶ月分の連続した日付...
おすすめ情報