このサイトにcellの削除スクリプト例があります。
http://openoffice3.web.fc2.com/OOoBasic_Calc.html#OOoIR2d
その中で、次のコードを単に転記して実行しました。
セルの削除(列全体が左方向に移動) Sub oDeleteCell
しかし、削除にならず、単なる列挿入のようになってしまいました。
CellRangeAddressの設定、com.sun.star.sheet.CellDeleteMode.COLUMNS も役立っていないようです。
こちらのマニュアルも列全体の挿入削除だけで、Rangeを指定してその範囲を削除して詰める方法が載っていません。
http://www.ja-fukuoka.or.jp/blog/archives/2012/05/exceltocalkpdf.php
どのようにすればよろしいのでしょうか。
Libreofficeのマクロの使い方が記載されているサイトがありましたら、お教えください。
質問文にあるスクリプト例のメソッドが間違っています。
最後から2行目のinsertCellsのところを、removeRangeに、COLUMNSをLEFTに書き換えてみて下さい。
Sub oDeleteCell Dim Doc As Object Dim Sheet As Object Dim CellRangeAddress As New com.sun.star.table.CellRangeAddress Dim iStart as integer Dim iRows as integer Dim iSheetindex as integer iSheetindex = 0 iStart = 0 iRows=3 Sheet =ThisComponent.getSheets().getByIndex(iSheetindex) CellRangeAddress.Sheet = iSheetindex CellRangeAddress.StartColumn = 0 CellRangeAddress.StartRow = iStart CellRangeAddress.EndColumn = 2 CellRangeAddress.EndRow = iStart + iRows-1 Sheet.removeRange(CellRangeAddress, com.sun.star.sheet.CellDeleteMode.LEFT) End Sub