質問: true then chdir createobject("wscript.shell").specialfolders("desktop") & "\" workbooks.add.saveas filename:="分析_" & worksheets(i).name & ".xlsx" wb1.worksheets(i).copy before:=workbooks("分析_" & worksheets(i).name & ".xlsx").worksheets(1) ・・・1 'シートを保存して閉じる activeworkbook.close savechanges:=true end if マクロを実行すると新しいworkbook作成迄は実行されますが、その後のコピペ(1の箇所)でエラーとなります。 どの様に変更すれば良いか教えて頂けないでしょうか。 併せて「シートを保存して閉じる」際に「リンクの自動更新を無効」にしたまま保存する様にしたいと考えています。 良いお知恵をお貸しください。 宜しくお願いします。
回答: こんにちは 少し整理してみました。 >「リンクの自動更新を無効」にしたまま もとのブックにリンクが存在するということでしょうか? 個々に処理をするのが面倒だったので、まとめて「値をペースト」形式にしてしまっています。 (ですので、シート内リンクや関数式も値に変換されちゃいます) きちんと「リンクの自動更新を無効」をなさりたい場合は、breaklinkで処理してください。 https://docs.microsoft.com/ja-jp/office/vba/api/excel.workbook.breaklink ※ 既存のファイル名をチェックしていませんので、同名のファイルが存在する場合には上書きの確認メッセージが表示されます。 ※ シート数が多く画面がチラつくような場合は、screenupdatingをfalseにするとよいでしょう。 sub sample_11700270() dim spath as string, sh as worksheet spath = createobject("wscript.shell").specialfolders("desktop") & "\分析_" for each sh in worksheets sh.copy activesheet.usedrange.value = activesheet.usedrange.value activeworkbook.saveas filename:=spath & sh.name & ".xlsx" activeworkbook.close savechanges:=false next sh end sub