<< 話題の長財布★ルシアンペラフィ... ラフシモンズ(raf simo... >>
オープンオフィス用のcsvファイル出力用マクロ
f0044151_21465551.jpg


皆さんこんばんわ、ヴィアセナート店長の田中です。

今日は洋服の話しではなく、通販サイトの話しをいたします。


今年に入ってから入力シートなるものを作っています。

エクセルではなくオープンオフィスというフリーソフトで作っています。

少し詳しく書きますと、if文やvlookupなどの簡単な関数を使ってhtmlを作成、csvで吐き出す物です。

品番やコメントを入力すると商品ページ用のファイルが出来上がります。

改良に改良を重ねて使い勝手の良い感じの物が出来上がってきました。
もちろん自作なので、手直ししたい箇所はささっと修正や追加ができます。

もっと改良を重ねて便利にしたいと思ってます。

オープンオフィスはエクセルと比べてまだまだ情報が少ないのでもっと普及して欲しいソフトです。
エクセルより動作が軽いのが特徴です。


使う方がいるかわかりませんが、
オープンオフィス用の簡単なマクロを書いておきます。

選択した部分をcsvで出力、デスクトップに.csv形式で保存してくれます。
こちらの環境では動きますが、動かない場合は教えてください。




ここから

Sub yumecsv()

Dim oDoc, sURL, sBase, sSheetName, sFile, oPV(2) As New com.sun.star.beans.PropertyValue

oDoc = StarDesktop.CurrentComponent

On Error Goto ErrorExit
If Not oDoc.supportsService("com.sun.star.sheet.SpreadsheetDocument" ) Then Goto ErrorExit
If Not oDoc.hasLocation() Then Goto ErrorExit
sURL = oDoc.URL
If mid(sURL, Len(sURL) - 3, 1) <> "." Then Goto ErrorExit
sBase = Left(sURL, Len(sURL) - 4)
sSheetName = oDoc.CurrentController.ActiveSheet.Name
'sFile = sBase + "_" + sSheetName + ".txt"
sFile = sBase + ".txt"

oPV(0).Name = "FilterName" : oPV(0).Value = "Text - txt - csv (StarCalc)"
oPV(1).Name = "FilterOptions" : oPV(1).Value = "0,0,76,1"
oPV(2).Name = "SelectionOnly" : oPV(2).Value = true

Dim NewDoc,oDocFrame,NewDocFrame,dispatcher
NewDoc = StarDesktop.loadComponentFromURL("private:factory/scalc","_blank",0,Array())
oDocFrame = oDoc.CurrentController.Frame
NewDocFrame = NewDoc.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(oDocFrame, ".uno:Copy", "", 0, Array())
'dispatcher.executeDispatch(NewDocFrame, ".uno:PasteSpecial", "", 0, Array())
rem ----------------------------------------------------------------------
dim args5(5) as new com.sun.star.beans.PropertyValue
args5(0).Name = "Flags"
args5(0).Value = "SVDNT"
args5(1).Name = "FormulaCommand"
args5(1).Value = 0
args5(2).Name = "SkipEmptyCells"
args5(2).Value = false
args5(3).Name = "Transpose"
args5(3).Value = false
args5(4).Name = "AsLink"
args5(4).Value = false
args5(5).Name = "MoveMode"
args5(5).Value = 4
dispatcher.executeDispatch(NewDocFrame, ".uno:InsertContents", "", 0, args5())

oDoc.storeToURL(ConvertToUrl(""),args())
NewDoc.dispose
Exit Sub

ErrorExit:
On Error Goto 0


rem ----------------------------------------------------------------------
rem define variables
dim document as object
'dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///C:/Users/*****/Desktop/yume.csv"
args1(1).Name = "FilterName"
args1(1).Value = "Text - txt - csv (StarCalc)"
args1(2).Name = "FilterOptions"
args1(2).Value = "44,34,64,1"

dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())


end sub



ここまで


この部分を自分の環境に合わせて変更すればOKなはずです。
args1(0).Value = "file:///C:/Users/*****/Desktop/yume.csv"


マクロはショートカット登録ができるので、ファイルメニューの中に保存しています。
楽天用のitem.csv,select.csvなどファイル名用にマクロを登録しています。
selectとitem-catはオートフィルタを使ったマクロにしました。
こちらも一発でcsvが吐けるので大変便利です。
[PR]
by via_senato | 2012-09-01 21:55 | Diary | Comments(0)
<< 話題の長財布★ルシアンペラフィ... ラフシモンズ(raf simo... >>