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▼ページトップへ