【詳しくは画像もあります】
シートが二つあります。
"auc"という名前のシート内の
文字列が入っているセルを複数選択しているとします。
【1】削除
[ ]でくくられたものは、[ ]ごと削除してつめてほしいのです。
【2】置換
もう一つのシートは"置換"シートでして、そのA列1行目からaucシート内の文字列にある見出し
言葉とB列1行目からは置換後の名前が入っています。
それにしたがって、aucシート内の選択されたセル内の文章を置換してほしいのです。
一部エラーがある場合、そのまま次のセルを実行していただき、そのエラーがあったセル番地だけ「S1セルでエラーがありました」
などと最後に表示していただければ幸いです。(エラーがあったセルは何もしない)
置換シートの見出しはA列が空白になったところで終了です。
エクセルVBAでの回答の方のみにポイント対象です。
どうかよろしくお願いいたします。
こんな感じでどうでしょう。
Sub edit_data() Set Map = CreateObject("Scripting.Dictionary") Set rep_sheet = Worksheets("置換") last_row = rep_sheet.Cells(Rows.Count, 1).End(xlUp).Row For r = 1 To last_row Map.Add rep_sheet.Cells(r, 1), rep_sheet.Cells(r, 2) Next Set re = CreateObject("VBScript.RegExp") re.Pattern = "\[[^\]]*\]" re.Global = True For Each cell In Selection s = cell.Value s = re.replace(s, "") For Each Key In Map s = replace(s, Key, Map.Item(Key)) Next If cell.Value <> s Then cell.Value = s End If Next End Sub
auc シートを選択した状態で、edit_data サブルーチンを実行してください。
ありがとうございます。しっかりと動きました。ご注意点もありがとうございます。お休みの中、心より感謝します。
2017/09/17 21:56:51