Excel VBA(エクセル マクロ) そのH 検索、置換2

次は置換。
外部データの値を正式名称に変更しよう。

VLOOKUP関数で検索の操作を行ったが、今度は置換の操作を行わせる。

A列の値について、順番に他シートを検索し、値があれはセルの値を別の値に変更(置換)する。

置換といえばReplace関数を使用するが、VLOOKUP関数で代用できるので、そちらでプログラムを組んだ。

Line1 = 2
Do Until Cells(Line1, 4).Value = ""
On Error Resume Next
Cells(Line1, 15).Value = Application.WorksheetFunction.VLookup(Cells(Line1, 15).Value, Worksheets("用語").Range("O5:P47"), 2, 0)
On Error GoTo 0
Line1 = Line1 + 1
Loop


4列目の2行目から値がなくなる行まで、処理を続ける。
Do Until 〜 Loop構文を使用する。

Line1 = 2
Do Until Cells(Line1, 4).Value = ""
Line1 = Line1 + 1
Loop

VLOOKUP関数でCells(Line1, 15).Valueの値がシート:用語のO5:P47の範囲であるかどうかを検索し、あれば、2行目の値(置換後の値)をCells(Line1, 15).Valueに返す。
用語のO5:P47には、O列に検索値(元の値)、P列に置換後の値を入れておく。

VLOOKUP関数は値が見つからないとエラーで止まってしまうため、エラーにならないようにOn Error Resume Nextをつける。
VLOOKUP関数が終われば、構文にエラーがあれば止まるよう戻すため、On Error GoTo 0をつける。

以上で、シート用語O5:P47の変換テーブルにそって置換が行われる。

このやり方だと、ある列のみ置換するプログラムである。

シート全体を置換したい場合は

selection.Replace what:="りんご", replacement:="リンゴ"

というようなプログラムとなる。

ただ、シートに変換テーブルを設けて複数の置換を行うためには、前述のDo Untilでセルの値を取り出して、VLOOKUP関数で変換元の値と変換先の値を取り込む必要がある。

置換プログラムは完了。

次は、DIRによるExcelファイル名の抽出を行う。


忍者Admaxのテキスト広告で収入UP!

実践!ExcelデータベースTOP