LibreOffice Calc Basic - 範囲の値をクリアする方法
◆clearContentsメソッド
LibreOffice Basicでセルの値をクリアするには、clearContentsメソッドを使用します。
次の例では、1枚目のシートのA1からE5までのデータをクリアしています。
Sub ClearRanges Dim Flags as Long Dim oDoc as Object Dim oSheet as Object oDoc=ThisComponent oSheet=oDoc.sheets(0) oCellRange=oSheet.getCellRangeByPosition(0,0,4,4) Flags=com.sun.star.sheet.CellFlags.STRING + _ com.sun.star.sheet.CellFlags.VALUE + _ com.sun.star.sheet.CellFlags.FORMULA oCellRange.clearContents(Flags) End Sub
◆getCellRangeByName
上記のサンプルでは、セル範囲を示すオブジェクトCellRange オブジェクトをgetCellRangeByPositionを使って作成していますが、getCellRangeByName を呼び出して作成することもできます。また、シートの指定をsheets(0)ですることも可能ですが、getByNameでシート名で特定する方がわかりやすいでしょう。
上記のサンプルをgetByNameとgetCellRangeByNameを使用して書き換えると次のようになります。
Sub ClearRanges Dim Flags& Dim oDoc As Object Dim oSheets As Object Dim oSheet As Object Dim oCellRange As Object oDoc = ThisComponent oSheets = oDoc.getSheets() oSheet=oSheets.getByName("Sheet1") oCellRange = oSheet.getCellRangeByName("A1:E5") Flags=com.sun.star.sheet.CellFlags.STRING + _ com.sun.star.sheet.CellFlags.VALUE + _ com.sun.star.sheet.CellFlags.FORMULA oCellRange.clearContents(Flags) End Sub
ClearContentsで削除するデータの種類は、com.sun.star.sheet.CellFlagsに定められている定数を、フラグとして指定します。このような定数としては、以下の値が使用できます。
- VALUE - 日付や時刻として書式設定されていない数値
- DATETIME - 日付や時刻として書式設定されている数値
- STRING - 文字列
- ANNOTATION - セルにつけられたコメント
- FORMULA - 計算式
- HERDATTR - セルに直接指定した書式
- STYLE - 間接的に設定した書式
- OBJECTS - セルに配置された図形オブジェクト
- EDITTR - セル内の一部のテキストに対してのみ施された組織
clearContentsによる処理では、これらの定数を加算することにより同時に指定することが可能です。また、該当する種類のデータをまとめて削除することもできます。
▼ページトップへ