1.7Kпросмотров
30 января 2025 г.
📷 ФотоScore: 1.9K
В прошлом посте, примера ради, подцепил на ПБД макрос на очистку книги Excel от стандартных стилей и создание собственных. У очень уважаемого мной подписчика он вызвал интерес, поэтому вот его история: ⏳
Даже если вы экселист-перфекциониста в вашем стартовом XLTM-шаблоне в идеальный порядок: настроены стили, листы, колонтитулы и вообще, полный рай - никудышеньки нам не деться от чужих файлов, так еще и придется сталкиваться с генерируемыми софтом таблицами (z.B. извлечение данных AutoCAD).
О пользе настроенных стилей думаю рассказывать не стоит, предмет целой лекции... Границы ячейки, выравнивание, шрифт и размер, разрядность, а самое главное - единицы измерения отображаемые форматом числа, позволяющие помножить |1000 руб.| на |30 шт.| и получить |30 000 р.|, а не «#ЗНАЧ!»/ При не сложных манипуляциях можно при тех же условиях получить 10 000 р. и пять лет лишения..😁
Копировать листы в свой файл не всегда целесообразно, а вот в один клик прокачать xls-файл своими стилями, предварительно подчистив от стандартной бесполезнейшей пестрятины - весьма заманчиво.
Сразу оговорюсь, что снести стили «Обычный» и «Ввод» этим макросом не получится (видимо программное ограничение, чтобы оставалось по одному стили в каждой группе). Ну и ладно, мне лично не принципиально.
Снос стандартных стилей чреват тем, что если чужая таблица была настроена при помощи стилей, отличных от «обычный», то форматирование слетит. Как правило, ничего страшного не происходит и оформить таблицу имея на борту свои стили труда не составляет.
Тем не менее, добавил в макрос предупреждалку, которая запускает макрос только при нажатии ОК.
Сам основной макрос разбит на основной и два приватных (скрытых для списка в окне макрос, которые можно запустить только другим макросом или из разработки) Sub Styles() Аns = MsgBox("Удалить все существующие стили? ", vbYesNo + vbCritical, "Внимание!") If Аns = vbYes Then Call KillAllStyles Else: End If 'On Error resume Next
Call Create_Styles If Err.Number <> 0 Then MsgBox ("Стили с совпадающими именами перезаписаны")
End If
End Sub Как говорится:
Отвергая - предлагай, Удаляя - добавляй (с) [Ai] Макрос на добавление стилей записан рекордером, оттого очень громоздкий, на столько, что полный текст я уберу в комментарий (для неравнодушных - прикрепил в комменте сразу BAS-файл с макросом). Даже если не знаком с VBA, не составит труда выявить закономерность и дополнить макрос собственными, необходимыми для работы стилями. Из интересных - стиль на преобразование числа в пикетаж (37,25 → ПК0+37,25) - очень полезно, при оформлении ведомостей подсчета объемов работ.
Жаль, что кодировка текста макроса не позволяет использовать символ для обозначения квадратного и кубического метра (м² и м³) - приходится донастраивать стиль уже в самом Excel.