ここから本文です

EXCEL VBAで質問です。

tad********さん

2019/3/2210:26:06

EXCEL VBAで質問です。

セルA1に入力されている
A32「鉛筆」A56「消しゴム」(使いかけ)A109未使用「定規」A190「下敷き」…
という文字列から、

A&##または###(2桁か3桁の数字)

のみ抜き出して「・」(中黒)で区切り、B1へ以下のように出力させたいです。

A32・A56・A109・A190…
どのようにコードを組めばよろしいでしょうか。

閲覧数:
82
回答数:
3

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

ina********さん

2019/3/2211:12:21

こんな感じでいかがでしょうか。


Sub test()
    Dim RegEx As Object
    Dim Matches As Object
    Dim R As Range
    Dim D As String
    Dim i As Long
    
    Set R = Range("A1")
    
    Set RegEx = CreateObject("VBScript.RegExp")
    With RegEx
        .Pattern = "A\d{2,3}"
        .IgnoreCase = True
        .Global = True
        Set Matches = .Execute(R.Value)
        For i = 0 To Matches.Count - 1
            D = D & "・" & Matches(i).Value
        Next
        D = Mid(D, 2)
    End With
    
    R.Offset(, 1).Value = D
    
    Set Matches = Nothing
    Set RegEx = Nothing
End Sub

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2019/3/26 17:12:56

ご連絡が遅くなり大変申し訳ございません。
最後に質問させて頂いたIFへ入れ込む処理は結局出来ずに諦めて他の方法で進めてしまいました。
何度も何度も返信にお付き合い頂き、勉強させて頂きました。
お世話になりありがとうございました。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

fro********さん

2019/3/2211:06:57

セル内の文字を1文字ずつ調べて、「A」がヒットした場合に抜き出します。
全角のAしかヒットしませんので、半角大文字もヒットさせたい場合は
If Mid(Range("A1").Value, i, 1) = "A" Then
ここを
If Mid(Range("A1").Value, i, 1) = "A" Or Mid(Range("A1").Value, i, 1) = "A" Then
に変更してください。

Sub test()
Dim str As String, strB As String, i As Long
For i = 1 To Len(Range("A1").Value)
If Mid(Range("A1").Value, i, 1) = "A" Then
str = Mid(Range("A1").Value, i, 4)
If Not IsNumeric(Right(str, 1)) = True Then
str = Left(str, 3)
End If

If strB = "" Then
strB = str
Else
strB = strB & "・" & str
End If
End If
Next
Range("B1").Value = strB
End Sub

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

プロフィール画像

カテゴリマスター

aka********さん

2019/3/2211:02:20

実際に このような一つのセルに連続ではいっているデーターがあるのですか?
CSVデータや テキスト形式であれば 空白や タブで 区切られていませんか?
空白や タブで 区切られているデータ―なら 区切位置の 機能で できるかも 知れません。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる