[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『SaveAs使用時のエラーについて』(初心者)
皆様
いつもお力添え有難うございます。
VBAを初めたてて試行錯誤している状態です。
現在、原本ブック内にある「新規作成ボタン」を押すと、新ブックが作成され原本ブック内のシートが全て新ブックへコピーされるコードを作成しています。
そして、複製した新ブックは原本ブックと同じフォルダへ保存したいと思っております。
下記コードを作成し、原本ブックのフルパスを取得しSaveasにて名前を付けて保存しようとするコードを書くも「コンパイルエラー」となり動きません。
いろいろと調べるも原因が分からず、ご教授頂きたくお願い致します。
Sub 初期設定()
Dim wbActive As Workbook
Set wbActive = ActiveWorkbook
Dim Newbook As Workbook
Set Newbook = Workbooks.Add
wbActive.Worksheets().Copy
After:=Newbook.Worksheets(Newbook.Worksheets.Count)
Application.DisplayAlerts = False '//アラート非表示
Newbook.Worksheets("Sheet1").Delete '//新ブックsheet1削除
Application.DisplayAlerts = True '//アラート表示
Newbook SaveAs Filename := wbActive.Path & "\請負.xlsm"
Application.DisplayAlerts = False '//アラート非表示
wbActive.Close '//コピー元ブックを閉じる
Application.DisplayAlerts = True '//アラート表示
End Sub
< 使用 Excel:Microsoft365、使用 OS:Windows10 >
やりたいことはたぶんこれで大丈夫だと思うけど、もう少し基本学んでもいいかもしれない・・・
Sub 初期設定()
Dim CopyBookPath As String
Dim wbCopyBook As Workbook
'コピー先のパスを取得
CopyBookPath = ThisWorkbook.Path & "\請負.xlsm"
'このブックのコピーを↑のパスに保存
ThisWorkbook.SaveCopyAs CopyBookPath
'↑でコピーしたブックを開く
Set wbCopyBook = Workbooks.Open(CopyBookPath)
'このブックを閉じる
ThisWorkbook.Close False
End Sub
>wbActive.Worksheets().Copy >After:=Newbook.Worksheets(Newbook.Worksheets.Count) 引数を2行に分けて記載する場合は、アンダーバーを入れる wbActive.Worksheets().Copy _ After:=Newbook.Worksheets(Newbook.Worksheets.Count)
>Newbook SaveAs Filename := wbActive.Path & "\請負.xlsm"
↑
NewBookのメソッド(この場合SaveAsを指す)なので、「.SaveAs」じゃないとだめ
(稲葉) 2023/04/25(火) 18:54:58
コメントありがとうございます。
まずは書いてみないとという思いから、
コードが汚く見にくくて申し訳ありません。
ご返信ありがとうございました。
(初心者) 2023/04/25(火) 19:54:06
コメント有難うございます。
実はお恥ずかしながら3ヵ月程度VBA教科書を手に1ページずつ勉強しておりまして、
知人よりコードは実際書いてみないと成長できないとの助言より書いてみると
このような様になってしまいました。
記載いただいておりました内容を行うと、
私のやりたいことが出来ました。有難うございます。
(初心者) 2023/04/25(火) 20:37:18
一番勉強になるのは、ここに入り浸って回答者になると覚えられるようになりますよ。 (稲葉) 2023/04/25(火) 22:04:57
度々ご返信有難うございます。
がんばります!
(初心者) 2023/04/26(水) 09:39:47
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.