パスワードを忘れた? アカウント作成
505747 journal

hylomの日記: OOoのCalcで全シートをCSVで保存するマクロ

日記 by hylom

複数のシート(ページ)が含まれる.odtファイルとか.xlsファイルの、全シートをそれぞれ.csvで保存するマクロを組んだ。あ、OOo2.0系向けですな。

Sub SaveAllSheetAsCSV
Dim oDoc As Object
 
  oDoc = ThisComponent
 
  Dim oCController as object
  oCController = oDoc.CurrentController
 
  If oDoc.supportsService( "com.sun.star.sheet.SpreadsheetDocument" ) Then
 
    Dim oSheets As Object
    oSheets = oDoc.getSheets()
 
    Dim oFolderPicker As Object
    oFolderPicker = createUnoService("com.sun.star.ui.dialogs.FolderPicker")
    oFolderPicker.execute()
 
    Dim aArgs(1) As New com.sun.star.beans.PropertyValue
    aArgs(0).Name = "FilterName"
    aArgs(0).Value = "Text - txt - csv (StarCalc)"
    aArgs(1).Name = "FilterOptions"
    aArgs(1).Value = "44,34,76"
 
    Dim SaveDir As String
    SaveDir = oFolderPicker.getDirectory()
    For i% = 0 To oSheets.getCount() - 1
 
      Dim SaveURL As String
      SaveURL = SaveDir + "/" + oSheets.getByIndex( i ).getName() + ".csv"
 
      oCController.ActiveSheet = oSheets.getByIndex( i )
      MsgBox SaveURL
 
      oDoc.storeAsURL( ConvertToURL(SaveURL), aArgs() )
 
    Next i
 
    oCController.ActiveSheet = oSheets.getByIndex( 0 )
  Else
    MsgBox "Document is not a spreadsheet."
  End If
 
End Sub

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

読み込み中...