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

以前も質問させていただきました、再度、質問いたします。
目的:ファイルに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
エラーが出てしまい、実行できませんでした。
申し訳ありません、解決方法を教えてください。

質問者からの補足コメント

  • ありがとうございます。「半角スペース」を入れるとうまくいきました。
    更に質問ですが、マクロを実行した時に「物件名+担当者名」で保存は出来たのですが、
    別に「ブック1」「ブック2」のファイルが出来、保存を聞いてきます。
    この「ブック1」「ブック2」の保存を聞いてこないようにしたいのですが。
    できますでしょうか。
    何度も申し訳ありません。
    よろしくお願いいたします。
    現状のマクロ設定は
    「Macroの保存」
    「Sub Macroの保存()
    '
    '保存 Macro
    '

    '
    Call A1セルをファイル名に
    Call シートのコピーと保存
    Call シートをコピー

    Range("P1").Select
    End Sub
    です。
    よろしくお願いいたします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2021/10/14 11:10

A 回答 (4件)

#2です


>別に「ブック1」「ブック2」のファイルが出来、保存を聞いてきます。
この「ブック1」「ブック2」の保存を聞いてこないようにしたいのですが。
できますでしょうか

出来ます。

決して意地悪をするつもりはありませんが、
その前に皆さんのご指摘を参考に調べてみてください。
記録マクロなどを駆使してここまで作れるようになっているので

何処で保存を聞いてくるのか、ダイアログを使用しないで保存するためにはどうすれば良いのか、さらに現在の記録マクロの不要部分の検証と削除などを踏まえての添削、、

ここは慌てずじっくり取り組む状況かと、そうすれば今後のスキルが大きく変わると思いますので頑張ってみてはいかがでしょう。

本ご質問文と違う場所ですので、このような回答でご理解を
    • good
    • 0
この回答へのお礼

ありがとうございます。
頑張ってみます。

お礼日時:2021/10/14 12:12

おはようございます。



マクロの記録で作成されたものと思いますが、不要なコードが多いので、
先ずは、不要な部分は削除しましょう。
ActiveWindow.SmallScroll Down ← 画面スクロール:マクロでは不要。
また、それぞれのコードの意味を調べると、何をしているかが分かってくると思うので、少しずつアレンジすると、良いかと思いますが。

>エラーが出てしまい、実行できませんでした。
 → どの部分で、エラーになったのでしょうか?
エラーが出ると、黄色で表示されるので、そのコードと、その前のデータ
などで、原因は分からないでしょうか?

>現状のマクロ設定では「2、シートのコピーと保存」を実行し、更に「3、シートをコピー」を実行しなければ「物件名+担当者名」で保存出来ません。「私の知識ではここまでしかできませんでした」
 → マクロの記録で、別名で保存ではダメなのでしょうか? それだと、不要な部分も保存されてしまう?

物件名+担当者名の取得で、例えば下記で、変数に文字が入ります。

Dim Bukkennmei As String
Bukkennmei = Range("P1").value
 これで、変数:Bukkennmeiに、物件名+担当者名 が取得できるかと。

マクロの記録で、名前を付けて保存するでできたコードに、上記の変数で
指定すると、その名前で保存できるかと思います。
拡張子(.xlsx)や、ファイルの保存するパスの指定は必要だと思いますが。

パス & Bukkennmei & ".xslx" で、保存するパスとファイル名の文字

検索で、 Excel VBA やりたい事 で、色々と参考になるコードが出て
来ると思います。 それらを参考にして、不明な点をもう一度質問されたら
良いかと思います。
    • good
    • 0
この回答へのお礼

詳しい説明をありがとうございました。
参考にさせて頂きます。

お礼日時:2021/10/14 11:10

こんにちは


Sub Macroの保存()
CallA1セルをファイル名に など のCallの後に半角スペースで開けてみて
この回答への補足あり
    • good
    • 1

解決方法?



ステップ実行は知ってますか?
エラーの調べ方は知ってますか?
単純にプログラミング知識が足りてないだけかと。

なので、ソースをください、と言った方が早いです。
    • good
    • 1
この回答へのお礼

解りました、ありがとうございます。

お礼日時:2021/10/14 11:11

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