LoginSignup
12
11

More than 5 years have passed since last update.

エクセル実務:リストからマスタに含まれる文字列を返す

Last updated at Posted at 2014-08-04

業務で関数でできないかと思ったらうまくできなかったので本めくりながらVBAをかいてみたのでメモ。
ちょっと応用してやれば最近の業務上けっこう使えそう。

やりたいこと

リストAにぐちゃぐちゃに入った文字列から、マスタBに一致するものを抜き出す。
つまりこういうデータがあって、
スクリーンショット 2014-08-04 20.08.02.png

マスタには「リンゴ」とか「バナナ」とか「ミカン」とか入っている状態。
(もちろん業務ではそんなかわいくないけどね!っていうかデータベースにベタの文字列が入ってるのとか同じ内容が別のフィールドに入ってるのほんとやめてほしい)

コード

Sub 市町村名抜出()

Dim name As String
imasta = 4
idata = 2

'最終行を取得
datalast = Worksheets("listA").UsedRange.Rows.Count
mastalast = Worksheets("masta").UsedRange.Rows.Count

'マスタの最終行まで繰り返す
Do While idata <= datalast

    'マスタの最終行まで繰り返す
    Do While imasta <= mastalast
        'マスタのimasta行目の名称をnameに格納
        name = Worksheets("masta").Cells(imasta, 3).Value

        'データシートのidata行目にnameが入っていないか確認
        '入っていた場合nameをデータシートのidata行目に格納
        If Not Worksheets("listA").Cells(idata, 37).Find(name) Is Nothing Then
            Worksheets("listA").Cells(idata, 39) = name
            Exit Do'見つかったらループ抜ける            
        '入っていなかった場合にはマスタの次の行へ
        Else
                imasta = imasta + 1
        End If
    Loop
    'マスタの最終行までいったらimastaをリセットし、データシートの次の行へ
    imasta = 4
    idata = idata + 1
    name = ""
Loop

12
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11