
はじめて質問させて頂きます。
エクセル2013にて、100シートのものを、それぞれのシート名(B2でも構わない)で別ブックにコピーし、名前をつけて保存する作業をしています。
現在のVBAでは途中でエラーが起きてしまい、かつ出来ればブックは閉じたいとと思っています。
Sub sheetmove()
Dim i As Integer
For i = Worksheets.Count To 2 Step -1
Worksheets(i).Move
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" _
& ActiveSheet.Range("B2") & ".xls"
ThisWorkbook.Activate
Next i
End Sub
前任者の残したマクロでこれ以上触ってしまうと手に負えなくなると思います。
お詳しい方いらっしゃいましたらご教授いただけましたら幸いです。。
どうぞよろしくお願い致します。
No.3ベストアンサー
- 回答日時:
シートループさせないのであれば、VBA内の『For i = Worksheets.Count To 2 Step -1』『Next i』を外せばよいのですが
変数指定している部分『Worksheets(i).Move』も関係するため、VBAの構文自体を大幅に変更する必要性があります。
質問者gどのように利用したいのかを具体的にお伝えいただけませんか
よろしくお願いします。
No.4
- 回答日時:
恐らくメモリ不足で出来なくなった原因としては
Moveされたファイルを閉じるコードが入ってないためエラーを起こしていると思います。
生成されたファイルを閉じるコードを付けてみましたので
参考までに
Sub sheetmove()
Dim i As Integer
For i = Worksheets.Count To 2 Step -1
Worksheets(i).Move
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" _
& ActiveSheet.Range("B2") & ".xls"
Workbooks(ActiveSheet.Range("B2") & ".xls").Close ’この欄を追加してます。 『Move』で作成したファイルを閉じるコード
ThisWorkbook.Activate
Next i
End Sub
本当にありがとうございます!なぜか閉じるときに途中でエラーがおきるものの、(大体20個目くらい)
継続させると動いたので、ちゃんと最後までやり遂げることが出来ました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】同じ関数なのに、エラ...
-
「パス名が無効です」の発生原因
-
batファイルでレジストリキーの...
-
PowerShellを使って関連付けら...
-
この EXCEL VBA の意味を教えて...
-
access テキストボックスの値取得
-
gccを行ってもexeファイルが生...
-
VBでファイルが開かれているか...
-
VBから参照できないCのDLLを使...
-
エクセルマクロでエラーの原因...
-
FORTRANの実行エラーについて
-
ADOを使用してExcelファイルを...
-
ExcelVBAで既に開いてるwordを...
-
fgets関数のEOFの扱い方について
-
アクセスのクエリでコンパイル...
-
メディアプレイヤーが動かない?
-
VBScriptでエクセル VBProject
-
排他ロックが掛かっているファ...
-
EXCELのVBAでの保存方法
-
兵庫県教員採用試験の願書記入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【関数】同じ関数なのに、エラ...
-
access テキストボックスの値取得
-
「パス名が無効です」の発生原因
-
ExcelVBAで既に開いてるwordを...
-
NAS上のファイルの使用中が解除...
-
Returnに対するGoSubがありません
-
gccを行ってもexeファイルが生...
-
PowerShellを使って関連付けら...
-
batファイルでレジストリキーの...
-
アクセスのクエリでコンパイル...
-
VB6 Dir関数で52エラー発生
-
エクセルマクロでエラーの原因...
-
VBでファイルが開かれているか...
-
【COBOL】read文でエラー
-
FTPの送信結果を検知したい
-
VBから参照できないCのDLLを使...
-
fgets関数のEOFの扱い方について
-
ACCESS VBAでのインポート
-
データベースソフトのアクセス2...
-
DisplayAlertsブロパティで ”実...
おすすめ情報
早々に有難う御座います!
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" _
& ActiveSheet.Range("B2") & ".xls"
の場所でとまっており、確認してみたらファイル名がかぶってしまうためにエラーを起こしておりました!
修正してもう一度実行したらPCのメモリ不足で出来ませんでした。。。
質問が変わってしまって申し訳ないのですが、シートループしない方法をご教授いただけますでしょうか。。。
早々に有難う御座います!デバック教えてくださって有難う御座います!
確認したら、
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" _
& ActiveSheet.Range("B2") & ".xls"
の場所でとまっており、確認してみたらファイル名がかぶってしまうためにエラーを起こしておりました!
ですが、修正してもう一度実行したらPCのメモリ不足で出来ませんでした。。。
質問が変わってしまって申し訳ないのですが、シートループしない方法をご教授いただけますでしょうか。。。