2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

excelの全てのシートを書き出しtsvで出力するvbs

Last updated at Posted at 2019-07-08

excelファイルからデータをテキストファイルにタブ区切りで取り出すスクリプトです。いろんなところの継ぎはぎでできています。
ローカルに保存しておくよりはここで供養。というかもうVB書きたくない。

使い方

読み込むexcelファイルを閉じ、最初の行に読み込むexcelファイルの名前に変えて適当な同じディレクトリに保存するか、3行目の変数に絶対パスで入れちゃってください。vbsがあるディレクトリにシート.txtの形でテキストが出力されます。終わると正常終了というダイアログが出るので、それまでそのテキストは開かないでください。
区切り文字を変えればほかの形式も可能です。
貧相なマシンでも、詰め込まれたexcelファイルでも動くように非表示にしています。動いているかどうかはタスクマネージャーを見てexcelのプロセスが仕事してるかどうかを見てください。Windows95, 98, Meという試された環境では確認できません。ごめんなさい。

ソース

吸出し.vbs
Dim ExcelFile: ExcelFile = "test.xlsx"
Dim Delimiter: Delimiter = vbTab
Dim Path: Path = CreateObject("WScript.Shell").CurrentDirectory & "\" & ExcelFile
Dim objXls, objWorkbook
Set stream = CreateObject("ADODB.Stream")
    stream.Charset = "UTF-8"
Set objXls = CreateObject("Excel.Application")
If objXls Is Nothing Then 
    WScript.Echo "起動失敗。。。終了します。"
    WScript.Quit
End If
objXls.Application.Visible = False

Set objWorkbook = objXls.Workbooks.Open(Path)
For i = 1 To objWorkbook.Sheets.Count
    stream.Open
    Set objWorksheet = objWorkbook.Sheets(i)
    If objWorksheet.Visible = False Then
        objWorksheet.Visible = True
    End If
    Set objRange = objWorksheet.UsedRange
    If Err.Number > 0 Then
        WScript.Echo "Open Error"
    Else
        For intR = 1 To objRange.Rows.Count
            For intC = 1 To objRange.Columns.Count
                stream.WriteText objRange(intR, intC).Text & Delimiter, 0
            Next
            stream.WriteText vbCrLf, 0
        Next
        stream.SaveToFile objWorksheet.Name & ".txt", 2
    End If
    stream.Close
Next
objXls.Application.DisplayAlerts = False
objWorkbook.Close
objXls.Quit
Set objWorkbook = Nothing
Set objXls = Nothing
WScript.Echo "正常終了"

2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?