• ベストアンサー

OpenOfficeのCalcのマクロで質問です

OpenOffice のCalc のマクロで、シート間の列コピーをしたいのです。 同一シートなら、 http://19xx-s-rank.seesaa.net/article/164054962.html の様なサンプルがあるのですが、これをシート間に拡張するにはどうしたらよいでしょうか? また、別のインプリメントでも結構ですので、シート間操作のサンプルが有ったら、 教えて頂けないでしょうか? 以上、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんばんわ。 >の様なサンプルがあるのですが、これをシート間に拡張するにはどうしたらよいでしょうか? => DataをCopy( Move )するMacro Codeとしては提示URLにて紹介している様に   ・ com.sun.star.table.CellRangeAddress   ・ com.sun.star.table.CellAddress を使う方法もありますが、Sheet1のData(A1~C100)のDataをSheet2にCopyするならば、下記Codeの方がSimpleと思います。 ******* [ Sample Code ] ********* Sub oCopyData Dim oDoc as Object Dim oSheet1, oSheet2 as Object Dim oCopyData as Object Dim oCopyRange as Object Dim oPasteRange as Object Dim sCol, eCol as Long Dim sRow, eRow as Long oDoc = ThisComponent oSheet1 = oDoc.getSheets().getByIndex(0) oSheet2 = oDoc.getSheets().getByIndex(1) sCol = 0 eCol = 10 sRow = 0 eRow = 100 oCopyRange = oSheet1.getCellRangeByPosition(sCol, sRow, eCol, eRow) oPasteRange = oSheet2.getCellRangeByPosition(sCol, sRow, eCol, eRow) oCopyData = oCopyRange.getData() oPasteRange.setData(oCopyData) End Sub **************************************** Copy元(先)のSheetをSheet名で設定したければ上記CodeのSheet1(2)の設定を以下の様にすればOKです。 oSheet1 = oDoc.getSheets().getByIndex(0)  => oSheet1 = oDoc.getSheets().getByName("Sheet1") >また、別のインプリメントでも結構ですので、シート間操作のサンプル・・・ => Sheet操作に関するSample Codeは下記URLの 「4.Macroの杜(Sample Macro)」 => 「OpenOffice.org / LibreOffice Basic編」 => 「Calc(表計算)」 => 「Sheet操作」 で分ると思います。 URL : http://openoffice3.web.fc2.com/ 参考までに。

Silmaril
質問者

お礼

ありがとうございます。明日、出社後、早速試してみます。

関連するQ&A

専門家に質問してみよう