- ベストアンサー
OpenOfficeのCalcのマクロで質問です
OpenOffice のCalc のマクロで、シート間の列コピーをしたいのです。 同一シートなら、 http://19xx-s-rank.seesaa.net/article/164054962.html の様なサンプルがあるのですが、これをシート間に拡張するにはどうしたらよいでしょうか? また、別のインプリメントでも結構ですので、シート間操作のサンプルが有ったら、 教えて頂けないでしょうか? 以上、よろしくお願いします。
- みんなの回答 (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/ 参考までに。
お礼
ありがとうございます。明日、出社後、早速試してみます。