[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『正規表現を使用しての置換』(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.