| 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ファイル名の抽出を行う。 |