!-- メイン -->

LibreOffice Calc Basic - 検索と置換を行う方法



このページは、LibreOffice Calc でマクロを使って検索と置換を行う方法について記載しています。

次の例は、アクティブなワークシートで「SearchString」という文字列を検索し、ワークシートにあれば「ReplaceString」という文字列に置換します。

Sub ReplaceInUsedRange
       oDocument = ThisComponent
       oSheets = oDocument.Sheets
       oSheet = oSheets.getByIndex(0)
       oCellCursor = oSheet.createCursor()

       oCellCursor.gotoStartOfUsedArea( False )
       nFirstRow = oCellCursor.getRangeAddress().StartRow
       nFirstCol = oCellCursor.getRangeAddress().StartColumn

       oCellCursor.gotoEndOfUsedArea( False )
       nLastRow = oCellCursor.getRangeAddress().EndRow
       nLastCol = oCellCursor.getRangeAddress().EndColumn

       oRange = oSheet.getCellRangeByPosition(nFirstCol,nFirstRow,nLastCol,nLastRow)
       vDescriptor = oRange.createReplaceDescriptor()
       With vDescriptor
          .SearchString = "SearchString"
          .ReplaceString = "ReplaceString"
          .SearchWords = False
          .SearchCaseSensitive = False
       End With
       nReplaced = oRange.replaceAll( vDescriptor )
       MsgBox "Replaced " & nReplaced & " times."
End Sub

◆すべてのワークシートで検索と置換を行う
次の例は、すべてのワークシートで「SearchString」という文字列を検索し、ワークシートにあれば「ReplaceString」という文字列に置換します。

Sub SerachReplaceAllSheets
    Dim oDoc As Object
    Dim oSheet As Object
    Dim oReplaceDescriptor As Object
    Dim i%
    
    oDoc = ThisComponent
    oSheet = oDoc.Sheets(0)
    ReplaceDescriptor = oSheet.createReplaceDescriptor()
    ReplaceDescriptor.SearchString = "SearchString"
    ReplaceDescriptor.ReplaceString = "ReplaceString"
    For i = 0 to oDoc.Sheets.Count - 1
        oSheet = oDoc.Sheets(i)
        oSheet.ReplaceAll(ReplaceDescriptor)
    Next i
End Sub
▼ページトップへ