ツール番号の置換 の続き
昨日は、加工プログラム内のツール番号を置換する関数を作成した話を紹介しました。
何パターンか試してみて、作成した関数が問題なく動作することを確認しました。
やれやれ、これで何とかなりそうだ。
「こんな感じでどうです?」
「お~!!!・・・あれ?」
「え?」
「すみません、言ってませんでした」
「何を?」
「PT1のT1は、ツール番号(T番号)じゃないんです」
「あ・・・」
これは、私もうっかりしていました。PT1は、サイズが1インチのPTネジ(ネジの規格の名前)を意味しているため、T番号とは似て非なるもの。置換の対象から外す必要があったわけです。
複雑になってきたので、PTネジの存在を考慮して、置換除外の対象を整理します。
- T番号と思われる文字の一つ前が、Pである(PTネジなので)
- T番号と思われる文字の一つ後が、数字である(T1と思ったらT10だった、など)
これらをマクロに反映した結果が、こちらになります。
Function ReplaceToolNumber(expression_code As String, _ find_tool_number As String, _ replace_tool_number As String) As String Dim seq_origin As Variant seq_origin = Split(expression_code, find_tool_number) Dim seq_replace As Variant ReDim seq_replace(UBound(seq_origin) * 2 + 1) Dim i As Long For i = 0 To UBound(seq_origin) seq_replace(i * 2) = seq_origin(i) Next For i = 1 To UBound(seq_replace) - 1 Step 2 If IsNumeric(Left(seq_replace(i + 1), 1)) = True Then seq_replace(i) = find_tool_number ElseIf Right(seq_replace(i - 1), 1) = "P" Then seq_replace(i) = find_tool_number Else seq_replace(i) = replace_tool_number End If Next ReplaceToolNumber = Join(seq_replace, "") End Function
結果、PT1を置換対象から除外することが出来ました。これで何とかなりそうです。
「PTネジを除外できました」
「お~!!ありがとうございます・・・あ!」
「え?」
次回に続く(かもしれない)。
参考まで。