
No.2ベストアンサー
- 回答日時:
こんにちは。
簡単な方法で、カタスマーバーコードのデータを出す、ユーザー定義関数を作ってみました。
ただ、
123-45671-2-3
これは違っていませんか?私のOffice の組み込みActiveX コントロールの「10-カスタマーバーコード」では、「12345671-2-3」としないと、バーコードが出てきません。
使い方は、ワークシート上で、このように入れます。
=PICKUPNUMBERS(A2,B2)
'-------------------------------------------
以下のコードの設定の仕方は、
Alt + F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。
次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、以下のコードを貼り付けて、
Alt + Q で、画面を閉じます。
-------------------------------------------
Function PickupNumbers(rng1 As Range, rng2 As Range) As String
'カスタマーバーコードを取り出すためのユーザー定義関数
Dim Matches As Object
Dim Match As Object
Dim buf As String
Dim ret As String
Dim c As Variant
With CreateObject("VBscript.RegExp")
.Pattern = "[\d\-]+" '正規表現パターン
.Global = True
For Each c In Array(rng1, rng2)
buf = StrConv(c.Value, vbNarrow)
Set Matches = .Execute(buf)
For Each Match In Matches
If ret = "" Then
ret = Replace(Match.Value, "-", "") '- ハイフンを抜く
Else
ret = ret & Match.Value
End If
Next
Next c
End With
PickupNumbers = ret
End Function
'-------------------------------------------
もし、ハイフンを抜かないでよいなら、
> If ret = "" Then
> ret = Replace(Match.Value, "-", "") '- ハイフンを抜く
> Else
> ret = ret & Match.Value
> End If
> Next
↓
ret = ret & Match.Value
Next
とします。
以前、一丁目と漢数字を取り出すものを考えたことがあるのですが、全国には、特殊な地名もありますし、単純には出来なかったような気がします。たとえば、一番町というような名称もあります。
この回答への補足
ありがとうございます。ご説明の通り C2のセルに
=PICKUPNUMBERS(A2,B2)
を入れたのですが、#NAME? と表示されうまくいきません。
何か足りない操作があるのでしょうか?
お忙しいところ申し訳ありませんアドバイスお願いいたします。
No.4
- 回答日時:
>#NAME?
となるのは、正しく、数式を入れるブックの標準モジュールに、コードが書かれなかった可能性があります。
もうひとつは、PICKUPNUMBERS のつづりが間違っていることです。
=PICKUPNUMBERS まで入れて、Ctrl + Shift -->A と入れると、数式として正しく認識されていると、引数が出てきて、=PICKUPNUMBERS(rng1,rng2)と出てきます。
No.3
- 回答日時:
No.1です!
たびたびごめんなさい。
補足を読ませてもらいました。
条件として、A列はハイフォンが入った7桁郵便番号、
B列は○○県△市□□1-2-3 とハイフォンが二つ入った5桁の文字列という大前提になりますが・・・
かなり強引な方法になります。
昨日同様、配列数式になりますので
Shift+Ctrl+Enterで確定するのは一緒です。
C2セルに
=IF(COUNTBLANK(A2:B2)>0,"",MID(A2,MATCH(TRUE,ISNUMBER(MID(A2,ROW($A$1:$A$10),1)*1),0),8)&ASC(MID(B2,MATCH(TRUE,ISNUMBER(MID(B2,ROW($A$1:$A$20),1)*1),0),5)))
として、配列数式にしてみてください。
たぶん希望に近い形になると思います。
尚、一気に一つのセルに数式を入れるより、A列を一旦数字だけに表示し、
B列も半角の文字にした物を「&」で結びつける方が判りやすいかもしれませんね。
以上、お役に立てれば幸いです。
何度も失礼しました。m(__)m
No.1
- 回答日時:
こんばんは!
参考になるかどうか判りませんが・・・
無理矢理って方法になります。
↓の画像のC2セルに配列数式を入れて、オートフィルで下へコピーしています。
=IF(B2="","",A2&MID(B2,MATCH(TRUE,ISNUMBER(MID(B2,ROW($A$1:$A$20),1)*1),0),10))
もしこの画面からExcelにセルにコピー&ペーストする場合は
単に貼り付けただけではエラーになると思いますので
貼り付け後、F2キーを押すか数式バー内で一度クリックします。
編集可能になりますので、
Shift+Ctrl+Enterキーで確定してみてください。
数式の前後に{ }マークが入り配列数式になります。
尚、画像を見てもらえば判ると思いますが、
B列の最初に出てくる数字から10文字を表示させるようにしています。
○丁目や○○アパートのように他の文字列があれば、それも拾い出してしまいます。
そして、B2セルの住所の文字数は20文字まで対応できるようにしています。
以上、参考になれば幸いですが、
他に良い方法があれば読み流してくださいね。m(__)m

この回答への補足
ありがとうございました。一応出来ましたが、もうひとつわかればおしえていただけませんか?
実際のA2セル内は ”123-4567”と”が入ってます。
B2セル内は ”神奈川県鎌倉市1-2-3”と”入ってます
B2のセルの ”は取れました。A2のセルの ”を取りたいの ですが出来るでしょうか?
もう1点B2セル内の数字が大文字になってます。これを半角数字にできないでしょうか?
昨日教わりました数式に組み込むことは出来るのでしょうか?
大変ご無理な質問で申し訳ありません。よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードの句読点が変な位置に出...
-
テキストボックスの文字列を上...
-
ワードの段落番号と文字の隙間...
-
ワードで四角形の図形の中に文...
-
ワードで,一瞬,英数になって...
-
ワード PDF化した際、背景の...
-
ワードで図の変更をすると図の...
-
ワードで「 」(カギかっこ)の...
-
ワードでページ全体に色をつけ...
-
テスト問題などにある四角い空...
-
ワードの画質の設定
-
ワードで複数ページを縦書き2...
-
ワードで4段組みで文章を書い...
-
我慢の左上に文字が表示される現象
-
ワードの読み上げ音声について ...
-
ワード(office365)のワード、...
-
国税局への申告用紙印刷
-
正の字の入力
-
文章の途中に四角い穴埋めをつ...
-
ワードで途中のページからペー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスの文字列を上...
-
ワードで四角形の図形の中に文...
-
ワードの画質の設定
-
ワードでページ全体に色をつけ...
-
ワードで「 」(カギかっこ)の...
-
我慢の左上に文字が表示される現象
-
ワードの読み上げ音声について ...
-
Office365 ワードのアイコンが...
-
ワードで4段組みで文章を書い...
-
ワード PDF化した際、背景の...
-
テスト問題などにある四角い空...
-
ワードで,一瞬,英数になって...
-
ワードで図の変更をすると図の...
-
ワードが白と黒が反転してしま...
-
ワードの段落番号と文字の隙間...
-
office ワードで段組みで分けた...
-
正の字の入力
-
文章の途中に四角い穴埋めをつ...
-
ワード(office365)のワード、...
-
同様の質問になってしまいます...
おすすめ情報