[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『正規表現を使用しての置換』(hiro)
正規表現を使用しての置換についてご質問があります。
完成前の式や類似を完成後にに変更したいのですが、以下記のようにコードを書くとうまくいくのですが
.Replace what:="2 ", replacement:="", LookAt:=xlPart ':部分一致( LookAt:=xlPart)
この2の部分には0〜9の整数が入るため以下のようにコードを書くと、
作成したコードでは演算子の間にある「2」だけが残ってしまします。
.Replace what:="[0-9] ", replacement:="", LookAt:=xlPart ':部分一致
どのようにコードを書き直したらよいかご教示お願い致します。
変更後式
UE_PCELL_1_CONF_SCELL_DL_SA
2
UE_PCELL_2_CONF_SCELL_DL_SA
UE_PCELL_1_CONF_SCELL_DL_SA
UE_PCELL_2_CONF_SCELL_DL_SA
作成したコード
With da.Columns("O")
.Replace what:="~*", replacement:=vbLf, LookAt:=xlPart ':部分一致
.Replace what:="~?", replacement:=vbLf, LookAt:=xlPart ':部分一致
.Replace what:="+", replacement:=vbLf, LookAt:=xlPart ':部分一致
.Replace what:="+ ", replacement:=vbLf, LookAt:=xlPart ':部分一致
.Replace what:="-", replacement:=vbLf, LookAt:=xlPart ':部分一致
.Replace what:="- ", replacement:=vbLf, LookAt:=xlPart ':部分一致
.Replace what:="Sum", replacement:="", LookAt:=xlPart ':部分一致
.Replace what:="(", replacement:="", LookAt:=xlPart ':部分一致
.Replace what:=")", replacement:="", LookAt:=xlPart ':部分一致
End With
変更前式
Sum(UE_PCELL_1_CONF_SCELL_DL_SA + 2 * UE_PCELL_2_CONF_SCELL_DL_SA) / Sum(UE_PCELL_1_CONF_SCELL_DL_SA + UE_PCELL_2_CONF_SCELL_DL_SA)
完成
UE_PCELL_1_CONF_SCELL_DL_SA
UE_PCELL_2_CONF_SCELL_DL_SA
UE_PCELL_1_CONF_SCELL_DL_SA
UE_PCELL_2_CONF_SCELL_DL_SA
< 使用 Excel:Office365、使用 OS:Windows10 >
0を置換、1を置換、…と10回置換を繰り返せばどうですか。
(マナ) 2022/01/11(火) 21:06
正規表現を使う場合の参考に。
(参考) 2022/01/11(火) 21:10
.Replace what:="~ ? ", replacement:=" "
(マナ) 2022/01/11(火) 21:24
1桁から4桁の整数がはいるので、
.Replace what:="[0-9]{1,4}", replacement:="", LookAt:=xlPart ':
上記のようにコードを書き直ししたのですが、
2,3などの整数が残ってしまいます。
(hiro) 2022/01/11(火) 21:35
(γ) 2022/01/11(火) 22:37
Dim arr As Variant
For Each arr In Array("+", "-", "~*", "/", ":", "~?", "[", "]", "Sum", "(", ")")
da.Columns("O").Replace what:=arr, replacement:="", LookAt:=xlPart
Next
da.Columns("O").Replace what:="*UE_PCELL", replacement:="UE_PCELL", LookAt:=xlPart
daColumns("O").Replace what:="DL_SA*", replacement:="DL_SA", LookAt:=xlPart
では
(ピンク) 2022/01/12(水) 00:02
Function Sample(ByVal TargetStr As String, ByVal PatternStr As String) As Variant()
Dim tmp() As Variant
Dim i As Long
With CreateObject("VBScript.RegExp")
.Global = True
.IgnoreCase = False
.Pattern = PatternStr
With .Execute(TargetStr)
If .Count Then
ReDim tmp(.Count - 1)
For i = 0 To UBound(tmp)
tmp(i) = .Item(i)
Next
End If
End With
End With
Sample = tmp
End Function
Sub Test()
[A1] = Join(Sample([A1], [A2]), vbLf & vbLf)
End Sub
A1に変更前式
A2にUE_PCELL_[1-2]_CONF_SCELL_DL_SA
変更後式のパターンに法則があればこういうのでも
(きまぐれおじさん) 2022/01/12(水) 02:50
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.