Excelにあるデータをテキストファイルにコピーし保存するマクロを作成しました。
Public Sub テキストファイルへ貼り付け()
Dim a As String
Dim maxrow As Integer
'プログラムを新しいブックへコピーする
maxrow = Cells(Rows.Count, 10).End(xlUp).Row
ThisWorkbook.Worksheets(1).Range("J2:J" & maxrow).Copy
Sheets.Add
ActiveWorkbook.Sheets(1).Range("A1").PasteSpecial Paste:=xlPasteValues
'保存するブックの名前を作成
a = ThisWorkbook.Path & "\データ.txt"
'新しく作成したブックを名前を付けて保存
ActiveWorkbook.SaveAs Filename:=a, FileFormat:=xlCurrentPlatformText
ActiveWorkbook.Close
End Sub
ですがこれを実行させると、添付画像のような画面になってしまいます。
これを、マクロを実行させたファイルの画面にさせたいのですが、どのようにすれば良いでしょうか?
よろしければ教えていただきたいです。
No.3ベストアンサー
- 回答日時:
"ActiveWorkbook" という記述ほどミスが起きやすいものはない、と思ってます。
その時々でアクティブなブックが入れ替わってしまうため、プログラマーもしくは利用者が期待しているブックが ActiveWorkbook かどうか保証できないからです。
WorkBook、WorkSheet などを変数で参照してあげればコードも短くなりますし、狙いを外されることもありません。
Dim destBook As Workbook
Set destBook = Workbooks.Add
Dim destSheet As Worksheet
Set destSheet = destBook.Worksheets(1)
destSheet.Range("a1").PasteSpecial xlPasteValues
destBook.SaveAs ~
destBook.Close
みたいな
No.1
- 回答日時:
この行で、今開いているブックを閉じているからですよ。
>ActiveWorkbook.Close
下のコメントがありますが、実際には新しいブックを作成するコードがありません。
>'プログラムを新しいブックへコピーする
>'新しく作成したブックを名前を付けて保存
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAが途中で止まります
-
VBA シートをコピーする際に Co...
-
VBA コードを実行すると画面が...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBS Bookを閉じるコード
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
【VBA】全シートの計算式を全て...
-
VBAで別ブックのシートを指定し...
-
Excelマクロ 該当する値の行番...
-
【ExcelVBA】インデックスが有...
-
vbaでvbaProjectのパスワード解...
-
複数のエクセルブックをひとつ...
-
VBA 実行時エラー 2147024893
-
別ブックの列同士の値が一致し...
-
Excelファイルを開くとき、読み...
-
VBAで複数のブックを開かずに処...
-
エクセルのマクロについて教え...
-
エクセルマクロで、他ブックか...
-
【前回の続き続きです、ご教示...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
【ExcelVBA】インデックスが有...
-
ワイルドカード「*」を使うとう...
-
【ExcelVBA】VBA実行でダイアロ...
-
ExcelのVBAです。フォルダ内の...
-
フォルダ内の全てのファイルに...
-
VBA コードを実行すると画面が...
-
VBA 別ブックからコピペしたい...
-
VBAで別ブックのシートを指定し...
-
VBS Bookを閉じるコード
-
vbaでvbaProjectのパスワード解...
-
【VBA】全シートの計算式を全て...
-
VBA シート名が一致した場合の...
-
【ExcelVBA】zip圧縮されたCSV...
-
複数のエクセルブックをひとつ...
-
VBSでExcelのオープン確認
-
VBAで別のブックにシートをコピ...
-
【Excel VBA】書き込み先ブック...
おすすめ情報