Sub RenameShapesMagic()
Dim shp As Shape
Dim oldText As String
Dim newText As String
Dim changedCount As Long
' Using ChrW to safely generate Russian letters without encoding issues
' ChrW(1050) & ChrW(1086) & ChrW(1084) & ChrW(1085) & ChrW(1072) & ChrW(1090) & ChrW(1072) & ChrW(32) = "Комната "
oldText = ChrW(1050) & ChrW(1086) & ChrW(1084) & ChrW(1085) & ChrW(1072) & ChrW(1090) & ChrW(1072) & ChrW(32)
' ChrW(49) & ChrW(1055) & ChrW(1086) & ChrW(1084) & ChrW(1077) & ChrW(1097) & ChrW(1077) & ChrW(1085) & ChrW(1080) & ChrW(1077) & ChrW(32) = "1Помещение "
newText = ChrW(49) & ChrW(1055) & ChrW(1086) & ChrW(1084) & ChrW(1077) & ChrW(1097) & ChrW(1077) & ChrW(1085) & ChrW(1080) & ChrW(1077) & ChrW(32)
changedCount = 0
Application.ScreenUpdating = False
For Each shp In ActiveSheet.Shapes
If InStr(1, shp.Name, oldText, vbTextCompare) > 0 Then
shp.Name = Replace(shp.Name, oldText, newText, 1, -1, vbTextCompare)
changedCount = changedCount + 1
End If
Next shp
Application.ScreenUpdating = True
MsgBox "Magic done! Successfully renamed " & changedCount & " shapes.", vbInformation, "Success"
End Sub