以前も質問させていただきました、再度、質問いたします。
目的:ファイルに3シートがあり、一つのシートにセル「B1:F47」までを印刷指定しております、
この印刷範囲部分をマクロを使用して「物件名・担当者名」にて別のエクセルファイルとして保存したいです。
セル「P1」に物件名+担当者名」の設定があります。
現在は、3つのマクロ設定をしております「1、A1セルをファイル名」に「2、シートのコピーと保存」「3、シートをコピー」です。
それぞれのマクロ設定は「1、A1セルをファイル名に」
Sub A1セルをファイル名に()
Application.Dialogs(xlDialogSaveAs).Show Arg1:=Range("P1").Value
End Sub
「2、シートのコピーと保存」
Sub シートのコピーと保存()
'
' シートのコピーと保存 Macro
'
'
Columns("B:F").Select
Selection.Copy
Workbooks.Add
Columns("B:B").Select
ActiveSheet.Paste
Range("B1:F47").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.SmallScroll Down:=-69
Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=39
Rows("49:135").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
ActiveWindow.SmallScroll Down:=-72
ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, 811.5, 30, 69, 30.75). _
Select
Range("H5").Select
ActiveSheet.Shapes.Range(Array("Rounded Rectangle 1")).Select
Range("H5").Select
ActiveSheet.Shapes.Range(Array("Rounded Rectangle 1")).Select
Selection.OnAction = "'統一受付用紙(メーカー用)5.xlsm'!A1セルをファイル名に"
Range("H6").Select
End Sub
「3、シートをコピー」
Sub シートをコピー()
'
' シートをコピー Macro
'
'
Columns("B:F").Select
Selection.Copy
Workbooks.Add
Columns("B:B").Select
ActiveSheet.Paste
Range("B1:F47").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.SmallScroll Down:=-66
Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=33
Rows("49:136").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
ActiveWindow.SmallScroll Down:=-81
Range("B1").Select
End Sub
以上です。
現状のマクロ設定では「2、シートのコピーと保存」を実行し、更に「3、シートをコピー」を実行しなければ「物件名+担当者名」で保存出来ません。「私の知識ではここまでしかできませんでした」
出来れば一つを実行して、「「物件名+担当者名」で保存出来るようにしたいです。
マクロを総合して実行を試みたのですが、「Macroの保存」
Sub Macroの保存()
'
'保存 Macro
'
'
CallA1セルをファイル名に
Callシートのコピーと保存
Callシートをコピー
End Sub
エラーが出てしまい、実行できませんでした。
申し訳ありません、解決方法を教えてください。
No.4ベストアンサー
- 回答日時:
#2です
>別に「ブック1」「ブック2」のファイルが出来、保存を聞いてきます。
この「ブック1」「ブック2」の保存を聞いてこないようにしたいのですが。
できますでしょうか
出来ます。
決して意地悪をするつもりはありませんが、
その前に皆さんのご指摘を参考に調べてみてください。
記録マクロなどを駆使してここまで作れるようになっているので
何処で保存を聞いてくるのか、ダイアログを使用しないで保存するためにはどうすれば良いのか、さらに現在の記録マクロの不要部分の検証と削除などを踏まえての添削、、
ここは慌てずじっくり取り組む状況かと、そうすれば今後のスキルが大きく変わると思いますので頑張ってみてはいかがでしょう。
本ご質問文と違う場所ですので、このような回答でご理解を
No.3
- 回答日時:
おはようございます。
マクロの記録で作成されたものと思いますが、不要なコードが多いので、
先ずは、不要な部分は削除しましょう。
ActiveWindow.SmallScroll Down ← 画面スクロール:マクロでは不要。
また、それぞれのコードの意味を調べると、何をしているかが分かってくると思うので、少しずつアレンジすると、良いかと思いますが。
>エラーが出てしまい、実行できませんでした。
→ どの部分で、エラーになったのでしょうか?
エラーが出ると、黄色で表示されるので、そのコードと、その前のデータ
などで、原因は分からないでしょうか?
>現状のマクロ設定では「2、シートのコピーと保存」を実行し、更に「3、シートをコピー」を実行しなければ「物件名+担当者名」で保存出来ません。「私の知識ではここまでしかできませんでした」
→ マクロの記録で、別名で保存ではダメなのでしょうか? それだと、不要な部分も保存されてしまう?
物件名+担当者名の取得で、例えば下記で、変数に文字が入ります。
Dim Bukkennmei As String
Bukkennmei = Range("P1").value
これで、変数:Bukkennmeiに、物件名+担当者名 が取得できるかと。
マクロの記録で、名前を付けて保存するでできたコードに、上記の変数で
指定すると、その名前で保存できるかと思います。
拡張子(.xlsx)や、ファイルの保存するパスの指定は必要だと思いますが。
パス & Bukkennmei & ".xslx" で、保存するパスとファイル名の文字
検索で、 Excel VBA やりたい事 で、色々と参考になるコードが出て
来ると思います。 それらを参考にして、不明な点をもう一度質問されたら
良いかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Visual Basic(VBA) マクロを短くする 1 2023/01/15 00:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/06/01 14:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シートをコピーして シートに...
-
エクセルのマクロで指定条件一...
-
Excel シートを自動作成、セル...
-
Excelでシート名と最終更新日を...
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
エクセルVBAでパスの¥マークに...
-
EXCEL:同じセルへどんどん足し...
-
Excelで金銭出納帳。繰越残高を...
-
エクセルで前のシートを連続参...
-
別シート参照のセルをシート毎...
-
シートの保護のあとセルの列、...
-
EXCELで1ヶ月分の連続した日付...
-
条件に応じて特定の行を非表示...
-
VBAで条件によりフォントサイズ...
-
エクセルで、「1つ前のシート...
-
Accessのスプレッドシートエク...
-
エクセルのシート名をリスト化...
-
Excel2007で、太字にした行のみ...
-
特定のシートの削除を禁止した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのマクロで指定条件一...
-
シートをコピーして シートに...
-
Excelでシート名と最終更新日を...
-
Excel マクロ 他ブックのシート...
-
エクセルVBA 行列を一気に変換...
-
エクセル マクロ 任意のファ...
-
エクセルのマクロ設定について...
-
シートをコピー、シート名を変更
-
Excel シートを自動作成、セル...
-
Excel で選択しているセルの行...
-
エクセルのマクロ コマンドボ...
-
Excelで同じシートのコピーを一...
-
条件に応じて特定の行を非表示...
-
エクセルの複数シートの保護を...
-
Excelで金銭出納帳。繰越残高を...
-
エクセルでファイルを開いたと...
-
EXCELで1ヶ月分の連続した日付...
-
エクセルVBAでパスの¥マークに...
-
EXCEL:同じセルへどんどん足し...
-
シートの保護のあとセルの列、...
おすすめ情報
ありがとうございます。「半角スペース」を入れるとうまくいきました。
更に質問ですが、マクロを実行した時に「物件名+担当者名」で保存は出来たのですが、
別に「ブック1」「ブック2」のファイルが出来、保存を聞いてきます。
この「ブック1」「ブック2」の保存を聞いてこないようにしたいのですが。
できますでしょうか。
何度も申し訳ありません。
よろしくお願いいたします。
現状のマクロ設定は
「Macroの保存」
「Sub Macroの保存()
'
'保存 Macro
'
'
Call A1セルをファイル名に
Call シートのコピーと保存
Call シートをコピー
Range("P1").Select
End Sub
です。
よろしくお願いいたします。