実現したいこと
エクセルマクロブック(.xlsm)を元ブックにして複数サブフォルダ内画像を貼り付けてサブフォルダ名を付けて保存する複数ブックを作成したいが、前ブックの上書きの形式でブックが作成されてしまう(画像が上乗せされていくので前実行の画像が見えてしまう)。
vba
1ThisWorkbook.SaveCopyAs Filename:=picFolderPath2 & pic_split(2) & "xlsx" '参考, FileFormat:=xlOpenXMLWorkbook
やってみたこと
saveAsメソッドではなく上記のようにsaveCopyAsメソッドを使う。
ただ、保存されますが開くことは出来ず(ファイル形式、ファイル拡張子が正しくないmsgboxが立ち上がる)、上書きされているのか確認出来ません。
"xlsx"を元ブックと同じ"xlsm"に換えるとエクセルアイコンが白紙の「名前.xlsm」ファイルになり開けません。
何か良い方法はありませんか?
それともworkbookを新規に作成するところから始めないといけないでしょうか?
よろしくお願いします。
追記
"xlsm"のドットが抜けていて".xlsm"で正常にコピー保存されました。但し、コピーの内容もsaveAsと変わらず上書きされています。そこで
vba
1Set a_sheet = Thisworkbook.Worksheets(1) 2 3中略 4 5ThisWorkbook.SaveCopyAs Filename:=picFolderPath2 & pic_split(2) & ".xlsm"
vba
1ThisWorkbook.SaveAs filename:=picFolderPath2 & pic_split(2), FileFormat:=xlOpenXMLWorkbook 2Set FSO = CreateObject("Scripting.FileSystemObject") 3Set folderObject = FSO.getfolder(picFolderPath2) 4For Each new_wbs In FSO.getfolder(folderObject).Files 5set new_wb = Workbooks.Open(new_wbs) 6if new_wb.Name = pic_split(2) then 'ここはざっくりです、試す環境にないので' 7Set a_sheet = new_wb.Worksheets(1) 8 9中略 10 11new_wb.save
こんな感じでテンプブックシートを直に開かずに一旦先に保存してから画像転記を実行したらよいのでは?
と考えました。

回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。