• ベストアンサー

カスタマバーコードにするには2

昨日ご質問させていただきました件のご回答ありがとうございました。 ご指示の通り行いまして、かなりいいところまで出来ましたが、 *郵便番号         住所(郵便番号と住所は違うセルです) (1)123-4567      神奈川県鎌倉市鎌倉1-2-3 1234567123 と 123-4567123にしかなりません。 12345671-2-3 にしたいのですが、再度アドバイスお願いしたいのですが?宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

おそらく、どこかに思い違いがどこかにあるはずです。 ただ、良く間違える部分を、カバーするために、作り直してみました。 良く、関数名で入力で間違える人が多いようです。本来は、そういうのは問題外です。ただ、標準モジュールで、個人用マクロブックに入れる人がいますが、それは、ここではしないでください。余計な負担が多くなります。 郵便番号と住所の順序を逆にしても、同じようになります。 '------------------------------------------- Function Bar10(rng As Range) As String 'カスタマーバーコードを取り出すためのユーザー定義関数 Dim Matches As Object Dim Match As Object Dim buf As String Dim c As Variant Dim First As String, Second As String Set rng = rng.Resize(, 2) With CreateObject("VBscript.RegExp")  .Pattern = "[\d\-]+"  .Global = True  For Each c In rng.Cells   buf = StrConv(c.Value, vbNarrow)   Set Matches = .Execute(buf)   For Each Match In Matches    If Len(Match.Value) = 8 And 8 - Len(Replace(Match.Value, "-", "")) = 1 Then     First = Replace(Match.Value, "-", "", , , 1)    Else     Second = Match.Value    End If   Next  Next c End With  Bar10 = First & Second End Function

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 =PICKUPNUMBERS(A2,B2) >1234567123 と 123-4567123にしかなりません。 それは、おそらく、順序が逆ではないでしょうか? = PICKUPNUMBERS(rng1 As Range, rng2 As Range) rng1 は、ハイフン(-) を抜きます。 rng2 は、ハイフン(-) を抜きません。 前回の文章の中で、 >12345671-2-3 にしたいのですが、 というなら、以下の文章は不要です。そのままのコードで可能です。 >>もし、ハイフンを抜かないでよいなら、 >>>   If ret = "" Then

onagadai
質問者

補足

たびたびご迷惑おかけします。いろいろ行ったのですがうまくいきません。12345671-2-3したい関数を今一度送って頂けないでしょうか? 本当に無学で申し訳ありません。よろしくお願いいたします。

関連するQ&A