エクセルでセルの文字列に例えば
あいうえお
といった複数の書式が設定されている場合に「検索と置換」の置換すると、全ての書式が消えてしまいました。何か設定があるのかと探しましたが見つけられません。誰か知ってたら教えてください……
そこで書式はそのまま、文字を置換する方法を調べてみました。今回、私の目的だったセルの文字列の一部を削除(空文字で置換)は下のコードでいけました。なお、確認したのは2016のみです。
Dim rng As Range Dim pos As Integer For Each rng In Selection pos = InStr(rng.Text, "あい") If pos > 0 Then rng.Characters(pos, 2).Delete '「あい」が見つかった位置から2文字削除 'rng.Characters(2, 0).Insert ("かき") '1文字目の書式で「かき」が挿入され「あかきいうえお」 'rng.Characters(2, 1).Insert ("かき") '2文字目の書式で「い」を「かき」が上書きし「あかきうえお」 'rng.Characters(2, 2).Insert ("かき") '2文字目の書式で「いう」を「かき」が上書きし「あかきえお」 'rng.Characters(1, 1).Text = "か" '「あ」を「か」で上書きし「かいうえお」 'rng.Characters(1, 2).Text = "か" '「あい」を「か」で上書きし「かうえお」 End If Next
色々と手抜きですが、置換したいセル(範囲)を選択して実行したら、書式はそのままに「あい」が削除されます。(セルに複数「あい」がある場合は最初のだけ削除されます。)
コメントになってるとこは、試してみたメソッド、プロパティです。その他は下記のページをご覧ください。