No.2ベストアンサー
- 回答日時:
一応、作ってみましたが、以下は、自分用に作ったものですから、あえて、
「c:\a01.xls を c:\csv01.csv にする、」
という規則には従いませんでした。もし、必要でしたら、以下のコード直してください。確か、全角空白は、エラーの原因になるという話を聞いたことがありますので、入れていません。
この使い方は、エキスプローラ等から、Excelのファイルをこのファイル(.vbs)にドラッグ&ドロップすると、シート番号を聞いてきますので、入れてください。
ファイル名は、例えば、「c:\a01.xls」でしたら、最初は、「c:\a01.csv」となり、同じものを、ドラッグ&ドロップすると、c:\a011.csv → c:\a012.csv となっていきます。
'ExcelCsvOut.vbs
'05/05/04
Dim objFso
Dim Fname
Dim myBaseName
Dim NewMyBaseName
Dim myPath
Set objFso = CreateObject("Scripting.FileSystemObject")
Fname = WScript.Arguments.Item(0)
If objFso.GetExtensionName(Fname) <> "xls" Then
MsgBox "Excelのファイルではないようです", 64
Wscript.Quit
End If
ShNum = InputBox ("シート番号","シート番号の入力")
If ShNum =0 or ShNum ="" Then
Msgbox "入力が間違っています。",16
Wscript.Quit
End if
'
myPath = objFso.GetParentFolderName(Fname)
myBaseName = objFso.GetBaseName(Fname)
NewMyBaseName = myBaseName
'
Do
flg =objFso.FileExists(myPath & "\" & NewMyBaseName & ".csv")
If flg = True Then
NewMyBaseName = myBaseName & i
Else
Exit Do
End if
i = Clng(i) + 1
Loop
Set objExcel = Wscript.CreateObject("Excel.Application")
On Error Resume Next
With objExcel
.WorkBooks.Open Fname
With .ActiveWorkbook
If .Sheets.Count <= Clng(ShNum) Then
MsgBox ShNum &" は、シートインデックスには見つかりません。",16
Else
.Sheets(Clng(ShNum)).Select
.SaveAs NewMyBaseName & ".csv", 6
.Close False
End If
End wiTh
End With
If Err.Number = 0 Then
MsgBox myPath & NewMyBaseName &".csv" &" を出力しました。"
Else
MsgBox Err.Description
End if
Set objExcel = Nothing
Set objFso = Nothing
みなさんの 回答を 参考に
このような感じで 作成しました。
////////////////////////////////////////////
rem エクセルデータ を CSVで 保存
Dim para
Dim xlApp
Dim sheet
rem パラメータ セット
rem 0: エクセルファイル
rem 1: 出力シート名
rem 2: 出力ファイル名
Set para = WScript.Arguments
Set xlApp = CreateObject( "Excel.Application" )
xlApp.DisplayAlerts = False
xlApp.Workbooks.Open ( para.item( 0 ) )
Set sheet = xlApp.ActiveWorkBook.Worksheets( para.item( 1 ) )
rem カンマ区切り 6 タブ 3
sheet.SaveAs para.item( 2 ), 6
xlApp.ActiveWorkBook.Close
Set xlApp = Nothing
/////////////////////////////////////////////
No.1
- 回答日時:
const xlCSV = 6
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = false
objExcel.Workbooks.Open("c:\a01.xls")
objExcel.Sheets("Sheet2").Select
objExcel.ActiveWorkbook.SaveAs "c:\csv01.csv", xlCSV
objExcel.ActiveWorkbook.Close false
objExcel.Workbooks.Close
Set objExcel = nothing
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで出力したCSVファイルの先頭にカンマを挿入したい 5 2022/10/14 12:20
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Visual Basic(VBA) vbaマクロについて 【シート2】をもとに【シート1】に有るものを「有り.csv」としてデスクトップ 3 2023/05/07 22:30
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- Visual Basic(VBA) エクセルVBA 既存エクセルを開きその中のシートとしてCSVファイルを開く 3 2023/05/31 13:11
- Excel(エクセル) マクロ作成初心者です。CSVファイルの日付データについて 3 2022/12/14 06:02
- Excel(エクセル) Excel 売上管理シートに入力した売上データを、日報に自動反映させたいと考えています。 売上管理シ 3 2023/04/29 18:08
- Excel(エクセル) Excelで日報を自動で作成したい 売上管理シートに入力した売上データを、日報に自動反映させたいと考 1 2023/04/29 18:07
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでcsvファイルもシートもあ...
-
Excelマクロ 空白セルを無視し...
-
ダブルコーテーション付きでCSV...
-
VBAで複数のCSVからレコードセ...
-
ファイル名を変数で書きこむfwr...
-
【ExcelVBA】300万件越えCSVか...
-
エクセルの任意のシートをcs...
-
VB.netでShellExecuteがしたい
-
EXCEL→CSV保存時のダブルクォー...
-
CSVデータの文字列置換
-
複数連番付きCSVデータの文...
-
CSVで余計な空行が入る
-
iPhoneアプリ開発 ファイル書き...
-
StringGridの中身をCSV形式で保...
-
CSVファイルの比較と結果の取得...
-
fortranでNAのあるデータを読み...
-
バッチ処理 特定の文字以降を...
-
[コンパイルエラー 修飾子が不...
-
verilog HDLについての質問です...
-
SQLファイルの読み込み
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ExcelVBA】300万件越えCSVか...
-
Excelマクロ 空白セルを無視し...
-
ダブルコーテーション付きでCSV...
-
VBAでcsvファイルもシートもあ...
-
ファイル名を変数で書きこむfwr...
-
VB.netでShellExecuteがしたい
-
EXCEL→CSV保存時のダブルクォー...
-
複数のファイルをまたぐエクセ...
-
【C#】 csvファイルをバイナリ...
-
pythonでリストをCSVに出力する...
-
VBAで複数のCSVからレコードセ...
-
rubyを用いたCSVファイルの分割...
-
CSVデータの文字列置換
-
エクセルVBA Application.GetSa...
-
パイソン文法で ファイルオープ...
-
Rubyを使用してcsvファイルを処...
-
vbaマクロについて 次のような...
-
CSVファイルの比較と結果の取得...
-
fortranでデータの抜き出しをし...
-
pythonのこのエラーがわかりません
おすすめ情報