- ベストアンサー
カスタマバーコードにするには2
昨日ご質問させていただきました件のご回答ありがとうございました。 ご指示の通り行いまして、かなりいいところまで出来ましたが、 *郵便番号 住所(郵便番号と住所は違うセルです) (1)123-4567 神奈川県鎌倉市鎌倉1-2-3 1234567123 と 123-4567123にしかなりません。 12345671-2-3 にしたいのですが、再度アドバイスお願いしたいのですが?宜しくお願いいたします。
- みんなの回答 (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)
こんにちは。 =PICKUPNUMBERS(A2,B2) >1234567123 と 123-4567123にしかなりません。 それは、おそらく、順序が逆ではないでしょうか? = PICKUPNUMBERS(rng1 As Range, rng2 As Range) rng1 は、ハイフン(-) を抜きます。 rng2 は、ハイフン(-) を抜きません。 前回の文章の中で、 >12345671-2-3 にしたいのですが、 というなら、以下の文章は不要です。そのままのコードで可能です。 >>もし、ハイフンを抜かないでよいなら、 >>> If ret = "" Then
補足
たびたびご迷惑おかけします。いろいろ行ったのですがうまくいきません。12345671-2-3したい関数を今一度送って頂けないでしょうか? 本当に無学で申し訳ありません。よろしくお願いいたします。