質問: 文字列の数抽出、行挿入マクロ 急きょ下記処理を実施することになったのですが、本やネットで下記処理ができるような マクロを色々探していもなかなか見つからず...。(t_t) どなたか詳しい方がいらっしゃいましたら教えていただけませんでしょうか? ・a列に特定の文字列(;)があった場合、その列をコピー。 ・その列の下に文字列(;)の数と同数の行を挿入。 ・挿入した行のaセルに、文字列(;)のすぐ後ろの1ケタを貼り付け。 ・(挿入行が2行の場合) さらに下に挿入した行のaセルに、左から2つ目の文字列(;)の すぐ後ろの1ケタを貼り付け。 なお、a列の行数は、現時点で500行ほどあり、今後増える可能性もあります。 【処理する前】 a列 b列 c列 1行目 1;32 555 aaa 2行目 29;1;4 222 ggg 3行目 600 111 fff 【マクロ実行後】 a列 b列 c列 1行目 1 555 aaa 2行目 32 555 aaa 3行目 29 222 ggg 4行目 1 222 ggg 5行目 4 222 ggg 6行目 600 111 fff どうぞよろしくお願いいたします。
回答: こんにちは! 数値とセミコロンは半角としています。 (全角の場合はうまく動作してくれないと思います) 一例です sub test() dim i as long i = 1 do until cells(i, 1) = "" if cells(i, 1) like "*" & ";" & "*" then rows(i + 1).insert with cells(i + 1, 1) .value = mid(cells(i, 1), worksheetfunction.find(";", cells(i, 1)) + 1, _ len(cells(i, 1)) - worksheetfunction.find(";", cells(i, 1))) .offset(, 1) = cells(i, 2) .offset(, 2) = cells(i, 3) .offset(-1) = replace(cells(i, 1), ";" & cells(i + 1, 1), "") end with end if i = i + 1 loop end sub こんな感じではどうでしょうか?m(__)m