お世話になります。
下記は、アルファベット「T」と、それに続く通し番号を一つのパターンとして
抽出するマクロです。
temp = "T10T11PT12T13"
の中の、「PT12」を抽出しないようにしたいのですが、この場合、正規表現のパターンを
どのように記載すれば良いでしょうか。
※現状は、「PT12」も「T12」として抽出してしまいます。
Sub test() Dim myReg As RegExp Dim mc As Object Dim temp As String Dim buf() As String Dim i As Integer Dim j As Integer temp = "T10T11PT12T13" ' Microsoft VBScript Regular Expansions 5.5 を参照設定済み。 Set myReg = New RegExp With myReg .Pattern = "T\d*" .Global = True Set mc = .Execute(temp) If .test(temp) Then For j = 0 To mc.Count - 1 ReDim Preserve buf(i) buf(i) = mc(j) i = i + 1 Next End If MsgBox Join(buf, vbCrLf) End With End Sub
参考:
本プログラムは更にアレンジして、工作機械の加工プログラム(Gコード)編集に使用する予定です。
「T」は「ツール=刃物」を指していて、例えば「T10」は「10番目の刃物」ということになります。
Tの前にどのようなアルファベットや記号、数字が来ても意味が変わることはないのですが、唯一
PT
のときにだけ、「PTネジ」というネジの種類を指す言葉になります。そのため、加工プログラムの
コメント文に書かれた「PT1/8」を「T1」と見なしてしまう現象が発生し、苦慮しております。
ご教示のほど、宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/23 01:16