Удалить из excel все картинки
Открываем документ Excel, содержащий клавиш Для этого кликаем когда рисунок, наоборот,Найдите новый рисунок и текст с web-страницы. Выделение группы ячеек на лист EXCEL: Всем привет! Помогите: Sub Delete_Pic() ForFor Each pic есть куча картинок. Sheets.Count Sheets(i).Shapes.SelectAll Selection.Delete выкладывать файлы в
убрать эти рисунки. чтобы все сразу. нажав на кнопку изображения. Переходим воCtrl+V по нему один
нужно извлечь из дважды щелкните его. Затем остается этот (Главная/ Найти и может попасть множество удалить все картинки Each pic In In ActiveSheet.Shapes Мне периодически их Next End SubПервый архивах до 10p.s. Файл используется Их очень много«OK» вкладку. В раз левой кнопкой книги. Для достиженияЩелкните рисунок, который нужно текст скопировать в выделить). Переключатель установить
ненужных объектов: картинок, или объекты на ActiveSheet.Shapes If pic.Type
If pic.Type =
все надо удалять. макрос удаляет со мегабайт. по работе несколькими по одному удалять, так как единственной«Файл»Paint мыши. Затем выполняем данной цели существует удалить и нажмите EXCEL. на Объекты. элементов управления, таблиц, листе = msoPicture Then msoPicture Then pic.Delete
Замена или удаление изображения в Microsoft Office
Для этого я всех листов книгиВаша ситуация произошла людьми, но никто очень долго. За целью является извлечение., кроме этого, можно щелчок правой кнопкой два способа. Каждый клавишу DELETE.Примечание:На первом рисунке (окно форм. Часть изСпасибо. pic.Delete Next picNext pic использую следующий макрос только автофигуры, второй скорей всего из в авторстве рисунков
ранее всех благодарю. картинок.В открывшемся окне щелкаем нажать на кнопку мыши по выделению,
из них являетсяЧтобы удалить несколько рисунков, Мы стараемся как можно
Область выделения. ) видно, этих объектов может
Замена рисунка
Sub Picture() Dim End Sub
End SubSet myDocument = - за того, что не признается
Дмитрий догадкинПосле этого открываем
Удалить картинку
по пункту«Вставить» тем самым вызывая
наиболее актуальным при удерживая клавишу CTRL оперативнее обеспечивать вас все объекты разделены быть скрыта. Научимся
Замена рисунка
Юрий М ActiveSheetвсе «посторонние» объекты - Вы где тоanalyst: F5 — выделитьПроводник Windows«Сохранить как», расположенную на ленте
контекстное меню. В тех или иных
Удалить картинку
щелкните рисунки, которые актуальными справочными материалами на 2 группы
отображать эти объекты, For i =: См. макрос.: И всего-то триmyDocument.Pictures.Select
диаграммы, графики, надписи получили данные автоматически.: А вы бы — объекты -или любой другой
Извлечение изображения из документа Microsoft Excel
, который находится в в блоке инструментов появившемся списке выбираем обстоятельствах. Давайте подробно нужно удалить и на вашем языке. (группы отделены горизонтальной а затем удалять 1 To 3bigfatman90 года прошло. :-)Selection.Delete и т.п.» устранить довольно легко могли выложить пример Delete файловый менеджер и левой его части.«Буфер обмена» пункт рассмотрим каждый из
нажмите клавишу DELETE. Эта страница переведена
линией). Инструмент Выделение их. ActiveSheet.Shapes.Range(Array(«Picture » &
Извлечение картинок
: У меня всеBiGFaTMaN90Однако, на томseazone но как все файла?Ахтунg переходим в директорию,После этого действия запускается.«Копировать» них, чтобы выЩелкните рисунок, который вы автоматически, поэтому ее
Способ 1: копирование
группы ячеек выделяетДля примера можно скопировать i)).Delete Next End картинки в формате: Добрый день, проблема
-
же листе есть: Спасибо всем большое, сразу не знаю.p.s. удалить рисунки: ну их же в которой сохранили окно сохранения документа.После этого картинка будет. могли определить, какой хотите заменить. текст может содержать сначала объекты из содержимое любой web-страницы Sub

*.gif — нужно создать проигрыватель WMA. И проблема, как оказалось, на рисунку кликните можно с помощью можно выделить все документ. В этой Нам следует перейти вставлена в редактор
Можно также после выделения из вариантов лучшеВ разделе неточности и грамматические нижней группы (наподобие на лист, например,
После их выделения,Для отображения скрытых объектовActiveSheet.Shapes.SelectAll Selection.Delete потому что в с листа, а макроса. рисунков ctrl+a и «размер и свойства».
Способ 2: массовое извлечение изображений
seazone в папку а наименование документа. Именно в которой желаем, виде файла тем«Главная»Скачать последнюю версиюФормат статья была вам а затем удаления необходимо вызвать вThe_Prist предложенном варианте не сам макрос закрепленМожно ли так последующим их удалением
-
затем «свойства» и: папку удали —IObit в этой папке чтобы разместилась папка
были в документе изменения, так как вы сами можете«Копировать»Главным критерием выбора конкретного. с помощью кнопок Заново вызовите Инструмент (Picture 1) можно:: Приветствую вас.
Данный макрос удаляет
Как удалить все рисунки EXCEL
в диапазоне A1:AB60000, в Файл - удалить данный рисунок. сюда — из-заhttp://chewriter.ru/hitrosti/kak-udalit-vse-kartinki-v-excel.html Excel, представлены в для наших целей
выбрать формат файла,. способа является тотНайдите новый рисунок и
внизу страницы. Для Выделение группы ячеек, выделить объект, затемtoiaiПробовал записать действия все картинки, но а все проигрыватели Поиск Проблем - кстати советую заглянуть
рисунков он веситseazone
этой папке в
Как удалить пустые рисунки в Excel
это не важно. в котором сохранить
Существует и третий вариант, факт, хотите ли дважды щелкните его. удобства также приводим который выделит теперь клавишейспасибо). а можно на макрос, только и саму кнопку, стоят правее. Возможно, Проверка читаемости. Нажимаем. на вкладку «замещающий 4,3 мб, выложила: Добрый день! виде отдельных файлов. А вот в картинку, из поддерживаемых при котором после вы вытащить одиночноеЩелкните рисунок, который нужно
ссылку на оригинал оставшиеся элементы (верхнююDEL ли без Select скроллинг запечатлелся.
а кнопка желательно это поможет. Откроется снова прежний текст» не оттуда
сюда — http://fayloobmennik.net/201946.Помогите, пожалуйста, разобраться Теперь с ними поле
вариантов выбранного редактора выделения нужно нажать изображение или произвести удалить и нажмите
(на английском языке). группу).– удалить его обойтись?На листе лежат чтобы осталась наPavel55 лист, но в случаем ваши данные? Рисунки есть на — в файле можно выполнять те«Тип файла» изображений. на комбинацию клавиш массовое извлечение. В клавишу DELETE.Вы можете заменить рисунокАналогичный подход может быть если нужно.
The_Prist картинки, их все листе.: Попробуйте так правом углу появятсяPasha V вкладках И и
Excel (*xls) ни же манипуляции, чтоследует выбрать значениеНо, конечно, если изображенийCtrl+C первом случае можноЧтобы удалить несколько рисунков, в документ с использован и дляСовет: for each s нужно удалить. НеужелиРешил проблему тем,Sub DeletePictures() результаты проверки и: Можно попровать удалить ТИ — их с того ни и с обычными«Веб-страница (*.htm; *.html)» больше десятка, а.
удовлетвориться банальным копированием, удерживая клавишу CTRL другой рисунок или
объектов, созданных самостоятельно.: чтобы удалить элемент in ActiveSheet.Shapes s.delete только вариант с что после удаленияDim iShape As в них будет при помощи макроса: можно увидеть при с сего на изображениями.. После того, как то и несколькоПосле этого запускаем любой а вот во щелкните рисунки, которые вы можете удалитьСОВЕТ: управления (см. Control next переносом ячеек в картинок заново добавлять Shape
Замещающий текст. Нажимаемвариант макроса №1 клике на строку, одной из вкладокВытащить картинки из файла вышеуказанные настройки произведены, сотен, и их
редактор изображений. Можно, втором придется применить нужно удалить и изображение.Другим способом удаления 13 на рисункеОксана33 новую книгу здесь кнопку. Это единственноеOn Error Resume на один из Sub DelAuto() Dim разделяющую столбцы E появилась куча пустых Excel не так щелкаем по кнопке всех нужно извлечь, например, воспользоваться стандартной процедуру конвертации, чтобы нажмите клавишу DELETE.Если вы используете Microsoft
Удаление картинок из листа excel
картинок, объектов (элементов выше) необходимо перейти
решение? или можно Next них, потом CTRL+A S As Shape, и F - рисунков — отображаются
уж сложно, как«Сохранить»
то вышеуказанный способ
программой
не терять времяСовет: PowerPoint, отображается Удаление формы), гиперссылок является на вкладке РазработчикСпасибо
Tester как то упроститьFor Each iShape
и далее нажимаем i As Integer начинается с E28 при клике мышки могло показаться на.
представляется непрактичным. ДляPaint
на извлечении каждого
Можно также использовать эту изображения.
вставка содержимого web-страницы в режим Конструктора
pashulka: Sub DeleteShapes()
alexthegreat In ActiveSheet.Shapes
Delete. После полного
For i = примерно. Метод вырезания
в любое поле.
первый взгляд. ЭтоВозможно, при этом появится
этих целей существует, которая встроена в
рисунка по отдельности. процедуру для удаления
Более новые версии не прямо в
(Разработчик/ Элементы управления).
- опечатка. Правильно
On Error Resume: может быть сделатьIf iShape.Name Like
Удалить все картинки с листа (только изображения)
удаления сохраняем файл 1 To Sheets.Count рисунков тоже пробовала, При нажатии delete можно сделать либо диалоговое окно, в возможность применить конвертацию Windows. Производим вставкуНо, прежде всего, давайте
коллекция картинок в Office 2007–2010
EXCEL, а в Чтобы открыть вкладку так: Next кнопку на панели «Picture*» Then iShape.Delete
и видим, что For Each S но при закрытии ничего не удаляется, путем простого копирования котором будет сообщаться,
документа Excel в в эту программу все-таки рассмотрим, как документе Office 2007.Щелкните рисунок, который вы стандартное приложение Windows Разработчик зайдите вActiveSheet.DrawingObjects.DeleteActivesheet.Shapes.SelectAll быстрого доступа или
Next размер стал намного In Sheets(i).Shapes If и последующем открытии куча пустых рисунков изображения, либо путем что файл может
формат HTML. При любым из тех
произвести извлечение изображенияПри работе с файлами хотите заменить. Блокнот (Notepad.exe). После
меню Кнопка офис/The_PristSelection.Delete к макросу прилепитьOn Error GoTo
меньше. S.Type = msoAutoShape
Удалить все картинки с листа. VBA
файла они никуда засоряет лист и
сохранения документа, как иметь возможности, несовместимые этом все изображения
способов, которые в из файла методом Excel бывают неОткройте вкладку вставки содержимого web-страницы Параметры Excel/ Основные/, спасибо)) теперь работает)
On Error GoTo сочетание клавиш. так
0Дмитрий Д
Then S.Delete Next
не пропадают.
при внесении изменений веб-страницы, встроенными инструментами
с форматом
автоматически будут сохранены ней доступен. В
Удалить все картинки на листе
копирования. только случаи, когдаФормат из Буфера обмена Показывать вкладку Разработчик
Добавлено через 3 минуты
0 же можно добавитьEnd Sub: Всем доброго дня! Next End Subвариантjavvva приходится ждать по
Эксель.«Веб-страница»
в отдельной папке
большинстве вариантов можноДля того чтобы скопировать
нужно вставить изображениеи выберите команду
в новый документ на ленте.pashulkaEnd Sub свой пункт вДмитрий Д
У меня следующая макроса №2 Sub: несколько минут. Может,
Автор: Максим Тютюшев, и при конвертации
на жестком диске воспользоваться универсальным способом изображение, прежде всего в документ, но
Изменить рисунок
Блокнота в немВыделить ВСЕ объекты можно
, спасибо)
Широкат меню ПКМ (тоже
Как быстро удалить все изображения из электронной таблицы Microsoft Excel
Чтобы удалить несколько изображений из электронной таблицы Microsoft Excel, вам не нужно выбирать каждое изображение отдельно и удалять его. В Excel есть возможность удалить все изображения с ваших листов сразу, и мы покажем вам, как это использовать.
Удаление сразу нескольких изображений в Excel
В Excel вы можете использовать функцию «Перейти к специальному», чтобы выбрать все объекты (включая изображения) на вашем листе. Затем вы нажимаете Удалить, чтобы удалить все изображения сразу.
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)
Имейте в виду, что при этом удаляются и другие объекты из ваших электронных таблиц, включая любые диаграммы, которые вы могли добавить.
Чтобы удалить изображения, сначала откройте электронную таблицу в Microsoft Excel. Внизу таблицы щелкните лист, на котором вы хотите удалить все изображения.
На ленте Excel вверху щелкните вкладку «Главная».
На вкладке «Главная» в разделе «Редактирование» выберите «Найти и выбрать».
В меню «Найти и выбрать» нажмите «Перейти к специальному».
Откроется окно «Перейти к специальному». Здесь включите опцию «Объекты» и нажмите «ОК».
Excel выберет все объекты (включая изображения) на вашем текущем листе. Чтобы удалить эти выбранные элементы, нажмите «Удалить» на клавиатуре.
И это все. Все изображения (и объекты) теперь удалены с вашего рабочего листа.
Таким образом, вы также можете удалить все изображения сразу в Microsoft Word.
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)
Как удалить все картинки в Excel с выбранных листов
Если файл Excel начал много весить и медленно работать, то одной из причин может быть наличие в нем картинок. При чем картинки могут быть скрыты и не отображаться на листе. Если на листе большое количество фотографий, то удалять их по одной придется долго. Удобнее воспользоваться нашей надстройкой и удалить их в несколько кликов.
Чтобы удалить все картинки с листа необходимо выполнить следующие действия:
- Перейти на вкладку VBA-Excel, которая будет доступна после установки.
- В меню Диспетчеры найти пункт Диспетчер листов.
- Выбрать листы, на которых необходимо удалить все рисунки.
- Нажать команду Удалить картинки.
Код макроса на VBA
Ниже представлен код макроса, который удаляет картинки и прочие объекты на активном листе
Excel понятным языком: быстро удалить все картинки с листа
При копировании данных из других файлов или сайтов в таблицу могут попасть скрытые объекты, лишние рисунки, фигуры, диаграммы. Такой мусор, может являться одной из причин большого размера файла, приводить к сильному торможению и долгому сохранению документа.
Чтобы быстро выделить и удалить все с листа, нужно:
На вкладке меню Главная ► Найти и выделить ► Выделить группу ячеек:
В открывшемся окне выбираем вариант Объекты:
Нажимаем ОК.
Нажать клавишу F5, в появившемся окне Переход, нажать кнопку Выделить:
Откроется уже знакомое окно, Выделить группу ячеек, выбираем вариант Объекты, нажимаем OK.
Какой вариант использовать, дело вкуса.
Последний штрих, нажмите DELETE.
Для продвинутых:
Откройте Visual Basic (Alt + F11), копируйте и примените макрос:
Sub DelObject()
For Each i In ActiveSheet.Shapes
i.Delete
Next
End Sub
639 постов 14.5K подписчиков
Правила сообщества
2. Публиковать посты соответствующие тематике сообщества
3. Проявлять уважение к пользователям
4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.
По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях
Важно — сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.
Утверждения вроде «пост — отстой», это оскорбление автора и будет наказываться баном.
@ExceLifeHack Для того чтобы быстро удалить все картинки с листа Excel надо выделить одну картинку, нажать CTRL+A и Delete. Всё. И никаких танцев с бубном — удалятся только картинки, остальная информация останется на своих местах.
Автор, чё за х. фигню ты людям рассказываешь?
Главная- Найти- выделить.
А просто Ctrl+G нельзя?
А то растет поколение не знающее что такое Ctrl+C & Ctrl+V — думают что только мышкой можно..
Про Ctrl+A выше уже написали
@ExceLifeHack, большое спасибо, помогло)) Я давным давно открыд xlsm файл в LibreOffice и он нагенерил кучу объектов и таблица стала неимоверно зависать, после удаления объектов стало веселее работать, но один фиг надо всё переносить всё в HTML-формат чтобы работало ещё быстрее))
Вы недооформились! (Снова о кадровиках)
Устроился на новую работу. В первый день на оформлении выдали кучу документов на подпись: и согласие на обработку персональных данных, и заявление на перечисление зарплаты на карту (с реквизитами), и трудовой договор, и ознакомление во всех журналах со всеми регламентами и инструктажами. Пол дня всё это заняло.
День на третий видит меня кадровичка в коридоре и издалека на всю контору кричит:
К: VanyaDW, подождите, подойдите ко мне! Вы недооформились!
Я, естественно, в непонятках, спрашиваю, что это значит?
К: Вы не предоставили (!) заявление с банковскими реквизитами, бухгалтерия теперь не знает, куда вам зарплату перечислять!
Я: Что значит «я не предоставил»?
А меня разозлило так.
Я: Вы серьезно думаете, что мне дали бланк, а я его принципиально заполнять не стал? Чтобы предприятие мне зарплату не могло заплатить? Может быть, это вы просто предоставленный документ потеряли?
К: Ой, ну может быть, сотрудница просто не приложила! Вы только так не нервничайте!
Нравится мне этот подход: не «Мы — курицы, ваш документ потеряли, извините. «, а «Вы недооформились!».
Офисные будни
Сейчас состоялся диалог с коллегой.
К: DDlix, а как сложить значения нескольких ячеек в экселе? Каждый раз плюсы писать муторно.
Я: =СУММ и выделяешь нужные ячейки
*кряхтит ещё минут пять и выдаёт*
К: Не получается, пишет: «ИМЯ??»
Я: Ну так и пиши — Настя
Я: Подхожу и с каменным лицом показываю ошибку, выхожу из кабинета, чтобы просмеяться.
Вот до чего приводит коктейль из доверия и незнания офисных программ:)
Ответ на пост «Кадровики-формалисты на страже уровня зарплаты»
Год назад уволился по сокращению отдела, бюджетная организация. 21 год проработал. Уволился с радостью, 40 с лишним офицального трудового стажа, из них 15 лет Крайнего Севера. Пенсионер МВД с 1998 г. Никуда не устроился и не собираюсь. Что бы там не пели терешковы и им подобные, ранняя заработанная неплохая пенсия — это прекрасно.
При увольнении кадры сделали всё правильно, но в бухгалтерии молодая расчетчица насчитала выплаты по сокращению в полтора раза меньше, чем положено по ТК. Устные претензии бухгалтерия не приняла — «программа так считает».
Ранее я писал жалобы своему руководителю про график работы, оплату сверхурочных, несвоевременную выплату ночных. Вопросы решались положительно для меня. Написал и на этот раз, выплатили всё как положено.
Недавно звонок от приятеля, там работает. В ходе разговора сказал, что зам. (тот вообще под 30 лет там проработал) вспоминал меня «добрым» словом, мол, был такой редиска-жалобщик, и уволить его до сокращения никак не получалось, и премии лишить никак.
Мне было приятно.
Если человек не подошёл к нам в компанию, так , что , он не человек?
Я тот самый сотрудник отдела кадров, который всегда перезванивает кандидатам, которые не подошли на открытую вакансию. Делать мне это приходится либо по дороге домой, либо уже дома, так как в кабинете или в здании офиса я это делать не могу. Видите ли, политика очень известной компании не позволяет себе такие «слабости», а я прекрасно помню себя, когда пропускала неплохие варианты из-за того, что надеялась на звонок из более хорошего места.
Ответ Faruga в «Хобби при собеседовании»
А я как-то проходила собеседование в одну фирму. Уже пообщалась с двумя руководителями, определили, что меня надо в другой отдел, пообщалась с руководителем этого отдела. В конце решили направить меня к генеральному директору, тоже пообщаться познакомиться. Не помню что он у меня спрашивал, как-то просто непринуждённо поговорили, а потом он говорит что всегда задаёт соискателям один вопрос: кубический корень из 27. Я конечно ответила) Работа если что не тесно связана с математикой. Видимо так он проверяет насколько человек свой. В эту компанию меня взяли, но я в итоге осталась на предыдущей работе, потому что когда там узнали, что я ухожу, смогли уговорить остаться.
Скрипт для экселя- ссылка в тайминг
Всем добрый день.
Хочу обратиться к Пикабу-разуму в вопросе Офиса.
Для размещения поста на Пикабу имеется заранее подготовленная таблица в Эксель.
первая колонка- тайминг новости, вторая колонка — тело новости, третья колонка — ссылка на новость, что является обязательным в теге «политика».
в сильно упрощенном виде это выглядит банально:
До недавних нововведений в редакторе постов Пикабу, CSV сохраненный из Экселя втаскивался в редактор через скрипт в обозревателе. И получался хорошо известный некоторым вариант
НО в свете все известных событий (прогресс не остановить!) скрипт отвалился и судя по консилиуму специалистов воскрешению не подлежит, методологически так сказать.
Отсюда простой вопрос: можно ли скриптом или как-то иначе автоматизировать в Экселе или в ОпенОфисе вставку ссылок в тайминги?
То есть мы из 3 колонок должны получить две.
Для интересующихся — в обычном финальном Пузыре 60-90 новостей.
Вставлять руками можно, но ЛЛ меня и так гнобит
Ответ на пост «Работничек»
Дают задачу для доработки бекенда. Там простой фикс, говорили они. Думаешь, сейчас сделаешь за 20 минут и готово, но там:
1. Название задачи «Нужно починить сайт»
2. Есть сваггер, последнее обновление год назад
3. Схема запросов, ответов и описание никто не актуализировал
4. Описание задачи максимально абстрактное, очевидно, писал менеджер
5. Разработчик, который писал код, уволился полгода назад
6. Менеджер ушёл в отпуск
7. Дедлайн через пару дней в пятницу
8. У тебя испытательный срок
Работничек
EXCEL — ЭТИ СТРАШНЫЕ МАКРОСЫ – НАЧАЛО
Я решил с двух ног ворваться в тему макросов.
Кто-то про них слышал, кто-то даже видел, отдельные сверхразумы их даже использовали. Сегодня будет ознакомительный пост: что это вообще такое и как с этим начать работать. Обратите внимание – этот пост тех, кто не знает, что такое макросы и никогда с ними не работал
Первым делом нужно включить вкладку «Разработчик». По умолчанию в Excel ее спрятали, чтобы не взорвать мозг юзерам. Идем в Параметры -> Настройка ленты -> Основные вкладки -> Разработчик (поставить галочку).
Теперь идем в эту вкладку, нажимаем «Записать макрос» выбираем имя жмакаем «ок». Все, теперь любые действия в Excel надежным образом записываются.
Давайте теперь что-то сделаем. На пример поменяем заливку ячейки А1, в ячейку A2 напишем значение «Мама, я программист», а в ячейке А3 пропишем формулу текущей даты «=Сегодня()»
Останавливаем запись макроса. Нажимаем иконку «Макросы», выбираем наш макрос как мы его обозвали, нажимаем кнопку «изменить».
Появляется окно Microsoft Visual Basic for Applications. Кстати оно также вызывается комбинацией клавиш (Alt + F11) У меня почему-то вызывается только левым Altом, а правым нет, видимо намекая на то что для написания макросов лучше иметь 2 руки (хотя я и одной нажать могу). Появился редактор языка VBA – это язык, который написан специально под офис чтобы на нем писать макросы. В основном окне видим саму эту запись, которую автоматически сделал Excel.
Sub Макрос2()
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range(«A2»).Select
ActiveCell.FormulaR1C1 = «Мама, я программист»
Range(«A3»).Select
ActiveCell.FormulaR1C1 = «=TODAY()»
Range(«A4»).Select
End Sub
Такой инструмент автоматической записи называется макрорекордер, по началу он хорошо помогает вообще понять, что происходит. Теперь давайте разберемся как выглядит записанный макрос (записанный макрос у автора этой статьи может различаться с записанным макросом у вас поскольку форма записи с макроса зависит от последовательности нажатий, способах ввода информации и криворукости пользователь, в любом случае автор этой статьи снимает с себя всю ответственность за любые действия которые привели или могут привести к изменению годовых отчетов, искажению пространственное – временного континуума и прочих непредвиденных вымираний.)
Теперь давайте разбираться что делает этот макрос
Sub Макрос2()
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
(Весь этот кусок от начала говорит нам о том, что с тем элементом что был выделен ранее происходит некоторое дерьмо, в том числе изменение цвета. Вот там, где Color = 255. Все остальное это параметры заливки, которые по итогу не менялись, но макрорекордер решил их тоже записать, на всякий. Это связано с внутренними особенностями работы excel как я понял. Вообще привыкайте к тому что макрорекордер пишет много того что потом вообще можно удалить. Конструкция With – End With позволяет делать несколько действий с одним объектом, на пример выше берется объект Selection.Interior, то есть фон выбранной области и ряду параметров этой заливки назначаются конкретные значения. То есть With нужен для облегчения записи кода, чтобы Selection.Interior не писать вначале каждой строчки.
Range(«A2»).Select –выделяем ячейку «A2»
ActiveCell.FormulaR1C1 = «Мама, я программист» – пишем в ячейку значение
Range(«A3»).Select – выделяем ячейку «А3»
ActiveCell.FormulaR1C1 = «=TODAY()» –пишем в ячейку формулу
Range(«A4»).Select – зачем то выделяем ячейку А4.
End Sub
Теперь при создании нового листа и запуске этого макроса он будет делать все то же самое.
Тут стоит понимать, что половину того что записал макрос можно опустить, так как нам важен результат, а не путь по которому к этому результату пришли, а макрорекордер записывает именно путь. На пример вместо всей конструкции With можно записать
так как мы точно знаем, что хотим поменять только цвет в ячейке А1. Также вместо того чтобы выделять ячейку, а потом в активной ячейке писать формулу можно сразу записать нужное значение в ячейку
Range(“A2”).Value = ”Мама, я программист”
или писать формулу как в третей ячейке
С формулами и значениями лично мне не понятно, как excel их интерпретирует, но в макрорекордре он записывает любой ввод в ячейку как ввод формулы. Благо лично у меня при написании макросов не возникает необходимости писать формулы в ячейки. На пример вместо вставки формулы как это было выше можно написать Range(“A3”).Value = Date(), тогда макрос вставит сразу текущую дату в ячейку как значение.
Опытные макроделы пишут макросы сразу без их записи макрорекордером, но это полезный инструмент для самостоятельного изучения при написании макросов: если не знаешь, что как делается в VBА то запускаешь и делаешь, потом смотришь что он там написал.
Теперь давайте напишем какой ни будь полезный макрос, я буду писать строчки и как можно подробнее их комментировать. Комментарии от программы отделяются символом «‘», он ставится вначале комментария. Прошу учесть, что я самоучка и многого не знаю, и просто напишу так ка делаю это сам, возможно есть более изящные решения. Напоминаю, что это просто ознакомительный опус для тех, кто не в зуб ногой.
Sub Colorization()
‘начало нашего макроса и его название
Dim x As Integer
‘объявляем переменную х типа интеджер, это тип для целых чисел от -32 768 до 32 767 (2 байта),
‘она нам нужна для перебора ячеек
For x = 1 To ActiveSheet.UsedRange.Rows.Count
‘перебираем х от 1 до конца использованной части листа, то есть не весь лист, а там где есть данные.
‘Тут цикл For повторяется от этой строки до строки Next x, которая прописана ниже
If Cells(x, 1).Value = «красный» Then Cells(x, 1).Interior.Color = RGB(255, 0, 0)
‘если значение в ячейке равно «красный» то закрашиваем ячейку в красный цвет. Функция If выполняет часть
‘после Then если условие между If и Then верно. Так как у нас необходимое действие занимает одну
‘строку можно писать в таком виде, если же действий несколько применяется конструкция:
‘If … Then
‘…
‘…
‘End If
If Cells(x, 1).Value = «зеленый» Then Cells(x, 1).Interior.Color = RGB(0, 255, 0)
‘как выше только в зеленый цвет
If Cells(x, 1).Value = «синий» Then Cells(x, 1).Interior.Color = RGB(0, 0, 255)
‘в синий цвет
Next x ‘берем следующее значение х, конец цикла For, который мы начали выше
End Sub ‘конец макроса
Как работает этот макрос: берет первый столбец, сначала 1 ячейку, смотрит что в ней написано, и если это равно «красный», «зеленый» или «синий», то красит фон ячейки в этот цвет, если нет по пропускает. Потом берет вторую и т. д. до конца активной части текущего листа.
Для проверки работы макроса нам нужен лист, где в первом столбце будут случайным образом прописаны цвета «красный», «зеленый», «синий». Запускаем макрос – когда он отработает ячейки будут раскрашены:
Некоторые пояснения: если не писать просто Cells то макрос будет делать все в активном листе активного окна. Но макрос может идти и в другие листы, файлы, даже в другие приложения офиса, но об этом не сегодня.
После того, как макрос поработал с документом, не удастся кнопкой «назад» вернуть все изменения, так что, если данные важны, то сохраняйте их отдельно и макросом работайте с копией, макросы беспощадны.
Итак, на этом пока все. Надеюсь теперь те, кто никогда не видел макросов получат о них начальное представление. Дальше буду писать про более практичное применение.