[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAで複数のシートをそれぞれCSVに出力するプログラムの途中、元ファイルが出力したCSVになってします。』(KAZ)
現在、VBAで複数のシートをそれぞれCSVに出力するプログラムを作っています。
問題は、SaveAsで、セーブした瞬間に、何故か制御がCSVファイルの方に移ってしまい、その後、元のBOOKに記してあるプログラムに飛べなくなってしまい、
そこでストップしてしまう自称があります。
色々WorkbookやWorksheetなどをsaveasの前にセットしておいて、
SaveAsの後、戻ろうとしてもActiveSheetがCSVファイルのままになっていて、
悩んでいます。
Private Sub CSV_OUT(ByVal sheetnm As String)
Path = ActiveWorkbook.Path + "\CSV\"
Application.DisplayAlerts = False
filen = Path + sheetnm + ".csv"
Sheets(sheetnm).Select Selection.Copy
With ActiveWorkbook .SaveAs Filename:=filen, FileFormat:=xlCSV, CreateBackup:=False End With ==>この瞬間から元のExcelファイルではなく出力したCSVファイルになってしまい、元ファイルの違うプログラムの処理が行えない。
同じ様な質問は色々捜したのですが、これといった方法がなく悩んでいます。
よろしくご教授ください。
< 使用 Excel:Excel2016、使用 OS:Windows7 >
対策は、いちいちSelectせず、対象シートをWorkSheetオブジェクトにでも代入しておいて、これを操作しましょう。
アクティブなシートを操作するコードを動かしていると、途中で他のブックをクリックした場合なんかに誤動作する元です。
または、手っ取り早く解決したいなら、対象としたいシートをSelectまたはActivateし直しましょう。お薦めの解決方法ではありませんが。
(???) 2017/05/18(木) 09:17
(KAZ) 2017/05/18(木) 12:04
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.