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による処理では、これらの定数を加算することにより同時に指定することが可能です。また、該当する種類のデータをまとめて削除することもできます。



▼ページトップへ