- ベストアンサー
Excelのマクロで文字列の連続置換
- Excelのマクロを使用して、文字列の連続置換を行いたいです。
- 置換は部分的な完全一致で行いたいので、文字列内の特定の部分だけを置換するようにしたいです。
- マクロが苦手なので、効率的な方法があれば教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
sub macro1() dim h as range dim r1 as long, r2 as long worksheets("Sheet1").select r1 = range("A65536").end(xlup).row r2 = worksheets("Sheet2").range("A65536").end(xlup).row ’下拵え with range("C1:C" & r1) .formula = "=B1&IF(RIGHT(B1)=""\"","""",""\"")" .value = .value end with ’置換 for each h in worksheets("Sheet2").range("A1:A" & r2) range("C:C").replace what:="\" & h.value & "\", _ replacement:="\" & h.offset(0, 1).value & "\", _ lookat:=xlpart, matchcase:=true, matchbyte:=true next ’片付け with range("D1:D" & r1) .formula = "=LEFT(C1,LEN(C1)-(RIGHT(B1)<>""\""))" range("B1:B" & r1).value = .value end with range("C:D").delete shift:=xlshifttoleft end sub みたいな。 #余談 >マクロが苦手なので マクロを考える前にまずアナタが自分の手を動かして,エクセルをどうやって操れば目的を達成できるのか手順を考えてみると,マクロとかも簡単に書けます。 エクセルの動かし方とか判らないでマクロだけ頑張っても,まぁ出来ないとは言いませんが,ハマルだけです。
お礼
ありがとうございます。 やりたいことができました!! ご指定の通りマクロって手でやることの自動化ですもんね。 マクロだけでなくエクセルの使い方や考え方についても学んでいけたらと思っています。 本当に助かりました。