- 締切済み
VBAエクセル 文字の一部を置き換える方法
エクセル2003を使っています。 エクセルマクロで b6セルに名前が入力されています。その名前の2文字目を●に置き換えたいです。 鈴木 花子→鈴● 花子 星 光子→星● 光子 すずき はなこ→すず● はなこ ほし みつこ→ほし● みつこ (1)シートが100枚くらいありまして、シート名に”届”という文字が含まれているシートのb6セルを置き換える (2)a6に名前のかなが入力されているので、そこも3文字目、4文字目を●に置き換える というマクロを教えてください。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
回答No.1
内容的に特に難しいこと内のだが、なぜ丸投げするのかな。 Sub test01() For Each sh In Worksheets '除外シート名ならスキップのコードをここに入れる MsgBox sh.Name MsgBox sh.Range("B6") Next End Sub で小数のシートのブックでやってみてB6セルの値が表示されることを確認。 ーー B6セルの第2文字目を一定の文字で変えるのは Sub test01() For Each sh In Worksheets '除外するシート名ならIFステートメントで、スキップするためのコードをここに入れる MsgBox sh.Name x = sh.Range("B6") Mid(x, 2, 1) = "●" MsgBox x sh.Range("B6") = x Next End Sub しかし 今 花子が今●花子で良いのか。 プログラムにはこういう想像を働かせることが、必要と思うが。
補足
回答ありがとうございます。自分なりに参考にしながら考えてみました。 Sub 名前消し1() Dim s As Worksheet For Each s In Worksheets If s.Name Like "届*" Then s.Activate x = s.Range("B6") Mid(x, 2, 1) = "●" s.Range("B6") = x z = s.Range("A6") Mid(z, 3, 1) = "●" s.Range("A6") = z End If Next End Sub で、マクロも動きました。 A6でできれば3文字めだけを●ではなく 3、4文字目を●1個に置換えたいです。 ご助言よろしくお願いします