マカロニペンギンの健忘録

特にテーマを決めているわけじゃないが、私が気になったことを書いていく予定です。

現在、OpenOfficeのBASICと格闘中

2010年03月30日 | パソコン
我が社は現在、Microsoft社のOffice97からオープンソースのOpenOfficeに移行中です。

いままでも少しではあるがマクロを組んだりしてできるだけ事務処理が便利になるように努力をしてきた。Office97用のBasicは参考書が多く発売されていることもあって、比較的すんなりと作成することができた。

OpenOfficeには今までのマクロが使用できないので作り直す必要がある。

それは昔々「これからはC++だ」と言われた頃、私はC++を独学しようとした。しかしオブジェクト指向プログラミングという考え方につまずき、それ以来オブジェクト指向プログラミングという言葉がトラウマになっている。
NECのPC-8800やSHARPのX-1の頃のBASIC出身の私には理解できない。(当然、理解できる人もいるだろうけど・・・)あの頃は良かった・・・
Rubyならばできるかも」と期待して参考書もごっそりと買ったあげく、やはりオブジェクト指向プログラミングが壁となってしまい本棚の肥やしになっている・・・

OpenOfficeのBasicもそのオブジェクト指向プログラミングなのだ。
現在、泣きがはいっています。

とりあえず、自分の記録用に現在作成中のプログラムを載せておきます。
詳しい説明をする気はさらさらないのですが、ざっと説明するとOpenOfficeの表計算ソフトCalcのB2セルの数値を読み込み、B1セルに1から先ほど読み込んだ数になるまで1つずつ足しながらpdfを出力するというものです。

sub main
dim SearchDot as integer
GetFilename
SearchDot = instr ( GetFilename,".")
oSheet = ThisComponent.Sheets(0)
oCellMax = oSheet.getCellRangeByName("B2")
oCellCount = oSheet.getCellRangeByName("B1")
for i = 1 to oCellMax.getValue
oCellCount.value = i
PDFPrint ( left(Getfilename,SearchDot-1) + "-" + Format( i , "00" ) + ".pdf"
next
end sub


function PDFPrint (FileName As string)
rem ファイル名を指定してpdfファイルを作成する。
rem FileName ファイル名
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = FileName
args1(1).Name = "FilterName"
args1(1).Value = "calc_pdf_Export"
dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args1())
end function

function GetFilename
rem ファイル名を取得する。
Dim oUrl As String
GetFilename = StarDesktop.CurrentComponent.getURL
End function


やっぱり、無理かも・・・

最新の画像もっと見る

2 コメント

コメント日が  古い順  |   新しい順
頑張って下さい (new_OOo3)
2010-03-30 23:15:47
こんばんわ。
下記URLサイトにてOpenOffice.orgの情報収集・公開を行っているものです。
OpenOffice.org BasicについてもSample Codeを記していますので、時間がある時に覗いて見て下さい。
見て「良い」と感じられましたらご友人にサイトをご紹介頂けます様お願いします。
またOpenOffice.orgに関するサイトがありましたら、是非とも関連サイトにLinkを貼りたいのでご紹介下さい。
出来れば、感想を残してもらえると幸いです。

URL : http://openoffice3.web.fc2.com/
返信する
Re:頑張って下さい (マカロニペンギン)
2010-03-31 18:43:39
new_OOo3さん、コメントありがとうございます。
ホームページ見ました。
このマクロを作るときにnew_OOo3さんのホームページを知っていたらもう少し楽だったかも・・・
これから、もう少しOpenOfficeのBASICにのめり込んでみたいと思っているので、これからお世話になると思います。
よろしくお願いします。
返信する

コメントを投稿