Free版Office calc Basic 正規表現でStringを検索 全リプレース関数 replace


Free版Office calc Basic 正規表現でStringを検索し見つかったものをすべて置換します

Function replaceexp(src as string,searchstr as string,replacestr as string ) as String

	Dim oTextSearch as Object
	Dim oOption as Object
	Dim searchStart as Integer
	Dim netsearchstr as string
	dim res as string
	oTextSearch = CreateUnoService("com.sun.star.util.TextSearch")
	oOption = CreateUnoStruct("com.sun.star.util.SearchOptions")

	oOption.algorithmType = com.sun.star.util.SearchAlgorithms.REGEXP
	oOption.searchFlag = com.sun.star.util.SearchFlags.REG_EXTENDED
	oOption.searchString = searchstr

	oTextSearch.setOptions(oOption)
	res=src
	searchStart=0
	do while  searchStart < Len(res)
		oResult = oTextSearch.searchForward(res,searchStart,Len(res))
  		If oResult.subRegExpressions = 1 Then
			netsearchstr =mid(res,oResult.startOffset(0) +1,oResult.EndOffset(0) -oResult.startOffset(0))
			res=replace(res,netsearchstr,replacestr)
  			searchStart = oResult.endOffset(0)  + (Len(replacestr)-Len(netsearchstr))	
    	else
			searchStart=Len(res)
  		End If
	
	loop

	replaceexp=res


end function




コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です