Миф excel как сделать ячейку активной

Защита ячеек от изменений в Эксель

Довольно часто в силу разных причин перед пользователями встает задача – защитить определенные элементы таблицы Эксель от возможных изменений. Например, это могут быть ячейки с формулами, или ячейки, которые участвуют в расчетах, и их содержимое нельзя корректировать. Это особенно актуально, когда доступ к таблице имеют другие лица. Ниже мы разберемся, каким образом можно справиться с поставленной задачей.

Включаем защиту ячеек

К сожалению, в Excel не предусмотрена отдельная функция, которая выполняет блокировку ячеек с целью их защиты, однако, для этих целей можно воспользоваться защитой всего листа. Сделать это можно по-разному.

Метод 1: используем меню “Файл”

Для включения защиты выполняем следующие действия:

  1. Сначала нужно выделить все содержимое листа. Для этого щелкаем по прямоугольнику на пересечении координатных панелей. Также можно нажать комбинацию клавиш Ctrl+A (один раз, если выбрана ячейка за пределами заполненной таблицы, два раза – если выбрана ячейка внутри нее).
  2. Правой кнопкой мыши щелкаем по любому месту выделенной области и в раскрывшемся списке выбираем “Формат ячеек”.
  3. В открывшемся окне форматирования ячеек во вкладке “Защита” убираем галочку напротив опции “Защищаемая ячейка”, после чего жмем OK.
  4. Теперь любым удобным способом (например, с помощью зажатой левой кнопки мыши) выделяем область ячеек, которые хотим защитить от изменений. В нашем случае – это столбец с формулами. После этого щелчком правой кнопкой мыши по выделенному диапазону вызываем контекстное меню и снова выбираем пункт “Формат ячеек”.
  5. Перейдя во вкладку “Защита” ставим галочку напротив опции “Защищаемая ячейка” и жмем OK.
  6. Теперь необходимо активировать защиту листа. После этого у нас будет возможность корректировать все ячейки листа, кроме тех, которые входят в выделенный диапазон. Для этого открываем меню “Файл”.
  7. В правой части содержимого раздела “Сведения” нажимаем кнопку “Защитить книгу”. Откроется перечень команд, среди которых нужен вариант – “Защитить текущий лист”.
  8. На экране отобразятся параметры защиты листа. Напротив опции “Защитить лист и содержимое защищаемых ячеек” обязательно должна быть установлена галочка. Остальные опции ниже выбираются согласно пожеланиям пользователя (в большинстве случаев, параметры остаются нетронутыми). Для защиты листа требуется ввести пароль в специально предназначенном для этого поле (нужен будет в дальнейшем для разблокировки), после чего можно щелкнуть OK.
  9. В следующем небольшом окошке требуется повторить ранее введенный пароль и снова нажать кнопку OK. Это мера поможет обезопасить пользователя от собственных опечаток во время установки пароля.
  10. Все готово. Теперь отредактировать содержимое ячеек, для которых мы включили защиту в параметрах форматирования, не получится. Остальные элементы листа можно менять на наше усмотрение.

Метод 2: применяем инструменты вкладки “Рецензирование”

Второй метод включения защиты ячеек предполагает использование инструментов вкладки “Рецензирование”. Вот как это делается:

  1. Выполняем шаги 1-5, описанные в методе 1, т.е. снимаем защиту со всего листа и обратно устанавливаем только для выделенных ячеек.
  2. В группе инструментов “Защита” вкладки “Рецензирование” жмем кнопку “Защитить лист”.
  3. Появится уже знакомое окно с параметрами защиты листа. Дальше выполняем те же шаги, что и при реализации описанного выше метода.

Примечание: При сжатых размерах окна программы (по горизонтали) блок инструментов “Защита” представляет собой кнопку, нажатие которой раскроет список доступных команд.

Снимаем защиту

Если мы попытаемся внести изменения в любую из защищенных ячеек, программа выдаст соответствующе информационное сообщение.

Для снятие блокировки необходимо ввести пароль:

  1. Во вкладке “Рецензирование” в группе инструментов “Защита” жмем кнопку “Снять защиту с листа”.
  2. Откроется небольшое окошко с одним полем, в котором следует ввести пароль, указанный при блокировке ячеек. Нажав кнопку OK мы снимем защиту.

Заключение

Несмотря на то, что в Excel нет специальной функции, предназначенной для защиты определенных ячеек от редактирования, сделать это можно через включение защиты всего листа, предварительно установив требуемые параметры для выбранных ячеек.

Работа с ячейками

К ячейкам Excel применимы стандартные операции копирования, перемещения, удаления. Многие действия в Excel удобнее проводить не с каждой ячейкой по отдельности, а с группой ячеек. В данном подразделе мы рассмотрим способы выделения ячеек и основные приемы работы с ними.

Выделение ячеек

Как вам уже известно, чтобы сделать активной одну ячейку, нужно поместить на нее рамку выделения. В Excel также можно делать активными группы ячеек, или, как принято говорить, диапазоны ячеек.

Чтобы выделить прямоугольный диапазон ячеек, выполните щелчок на левой верхней ячейке выделяемой области (указатель мыши при этом должен иметь стандартный для Excel вид белого крестика) и протяните рамку до нижней правой ячейки, удерживая нажатой кнопку мыши. Отпустите мышь для закрепления рамки (рис. 9, слева).

Чтобы сделать активными группу несмежных ячеек или диапазонов, удерживайте нажатой клавишу , последовательно выделяя нужные ячейки и области (рис. 9, справа).

Для выделения строки или столбца достаточно навести указатель мыши на заголовок, и когда он примет вид маленькой черной стрелочки, выполнить щелчок. Для выделения нескольких строк и столбцов нужно протянуть мышь от заголовка первого ряда к заголовку последнего (рис. 10).

Чтобы выделить все ячейки таблицы, щелкните на кнопке с треугольником , которая находится в верхнем левом углу рабочей области, или нажмите сочетание клавиш +A. Отменить любое выделение можно, выполнив щелчок на любой ячейке.

Как и любая отдельная ячейка, диапазон имеет свой уникальный адрес. В него входят адреса верхней левой и правой нижней ячеек, разделенные двоеточием, например А5:В8. Если выделенная область является строкой или столбцом, то в адресе будут присутствовать ссылки на первую и последнюю ячейку ряда, разделенные двоеточием. Значения из диапазонов ячеек могут принимать участие в расчетах. В этом случае адрес диапазона будет фигурировать в математической формуле.

Читать еще:  Как сделать ячейку шире в excel?

Перемещение и копирование ячеек

Перемещать и копировать ячейки в Excel можно несколькими способами. Простейший из них — перетаскивание.

Для перемещения выделите нужную ячейку или диапазон, подведите указатель мыши к границе рамки выделения. Когда он примет вид

В контекстном меню можно задействовать не только стандартные команды перемещения и вставки, но и команды выборочного копирования содержимого ячеек или их формата, а также особые команды, выполняющие наряду с копированием и перемещением сдвиг ячеек (они доступны только для отдельных ячеек, строк и столбцов). При обращении к любой из команд, название которой начинается со слова «Сдвинуть», в указанную ячейку (или диапазон) будет помещена или скопирована исходная ячейка (или диапазон), а данные, содержащиеся в конечных ячейках, не исчезнут, а будут смещены вправо или вниз (в зависимости от выбранной команды).

Операции копирования и перемещения ячеек также можно выполнять стандартным способом через буфер обмена. Выделите ячейку или диапазон, выполните на нем правый щелчок и задействуйте команду Вырезать или Копировать в зависимости от задачи. Затем выполните правый щелчок в ячейке вставки (для диапазона это должна быть верхняя левая ячейка) и задействуйте команду Вставить. После того как действие будет выполнено, справа внизу от вставленного фрагмента появится кнопка Параметры вставки . Щелкнув на ней, вы откроете меню, в котором можно указать дополнительные параметры вставки. Если в конечных ячейках находятся данные, они будут заменены без предупреждения.

Поместить содержимое ячеек из буфера обмена в новое место также можно с помощью кнопки Вставить, которая находится в группе Ячейки на вкладке Главная. При ее нажатии произойдет вставка ячеек из буфера обмена со сдвигом конечных ячеек вправо или вниз.

Добавление ячеек

Иногда возникает ситуация, когда к готовой таблице требуется добавить ячейки для ввода дополнительных данных. В этом случае нужно поступить следующим образом.

1. Выделите ячейку или диапазон, на место которой нужно поместить дополнительные ячейки.

2. В группе Ячейки на вкладке Главная щелкните на стрелке кнопки Вставить и выберите команду Вставить ячейки.

3. В открывшемся окне (рис. 12) укажите направление сдвига выделенных ячеек и нажмите ОК.

Чтобы добавить целую строку или столбец, выделите ячейку, находящуюся в строке, выше которой нужно поместить новую (или в столбце, левее которого будет добавлен новый), щелкните на стрелке кнопки Вставить в группе Ячейки на вкладке Главная и задействуйте команду Вставить строки на лист или Вставить столбцы на лист.

Удаление ячеек

Удаление ненужных ячеек — задача, противоположная только что рассмотренной, однако и она нередко встречается на практике. Щелкните на ячейке или диапазоне, который должен быть удален, и нажмите кнопку Удалить. При этом произойдет удаление с автоматическим сдвигом вверх содержимого нижележащих ячеек. Если вы хотите выбрать другое направление сдвига, выполните на выделенных ячейках правый щелчок, задействуйте команду Удалить, в открывшемся окне выберите вариант сдвига и нажмите ОК.

Для удаления целой строки или столбца выполните правый щелчок на заголовке и задействуйте команду Удалить контекстного меню.

Очистка ячеек

Выше мы уже говорили о том, что для удаления содержимого ячейки достаточно выделить ее и нажать . Точно так же можно поступить и с диапазоном ячеек. Однако следует иметь в виду, что при использовании клавиши удаляются только данные, а форматирование ячейки и формат чисел, установленные для данных ячеек, сохранятся. Чтобы указать системе, что именно вы хотите удалить из ячеек — только содержимое, только формат или и то и другое, выполните щелчок на стрелке кнопки Очистить в группе Редактирование на вкладке Главная и задействуйте нужную команду (рис. 13). При выборе команды Очистить все удаляется и содержимое ячеек, и формат.

Поскольку числа, введенные через точку, воспринимаются Excel как даты, то, ошибившись со знаком препинания, вы автоматически зададите для ячейки формат даты, и впоследствии даже при правильном вводе дроби она будет трансформирована в дату. С помощью кнопки Очистить вы сможете быстро избавиться от нежелательного формата даты.

Объекты Excel

Термин Объекты Excel (понимаемый в широком смысле, как объектная модель Excel) включает в себя элементы, из которых состоит любая рабочая книга Excel. Это, например, рабочие листы (Worksheets), строки (Rows), столбцы (Columns), диапазоны ячеек (Ranges) и сама рабочая книга Excel (Workbook) в том числе. Каждый объект Excel имеет набор свойств, которые являются его неотъемлемой частью.

Например, объект Worksheet (рабочий лист) имеет свойства Name (имя), Protection (защита), Visible (видимость), Scroll Area (область прокрутки) и так далее. Таким образом, если в процессе выполнения макроса требуется скрыть рабочий лист, то достаточно изменить свойство Visible этого листа.

В Excel VBA существует особый тип объектов – коллекция. Как можно догадаться из названия, коллекция ссылается на группу (или коллекцию) объектов Excel. Например, коллекция Rows – это объект, содержащий все строки рабочего листа.

Доступ ко всем основным объектам Excel может быть осуществлён (прямо или косвенно) через объект Workbooks, который является коллекцией всех открытых в данный момент рабочих книг. Каждая рабочая книга содержит объект Sheets – коллекция, которая включает в себя все рабочие листы и листы с диаграммами рабочей книги. Каждый объект Worksheet состоит из коллекции Rows – в неё входят все строки рабочего листа, и коллекции Columns – все столбцы рабочего листа, и так далее.

В следующей таблице перечислены некоторые наиболее часто используемые объекты Excel. Полный перечень объектов Excel VBA можно найти на сайте Microsoft Office Developer (на английском).

Читать еще:  Круговая диаграмма в excel как сделать

Из объекта Workbook можно получить доступ к объекту Sheets, который является коллекцией всех листов рабочей книги (рабочие листы и диаграммы), а также к объекту Worksheets, который представляет из себя коллекцию всех рабочих листов книги Excel.

Кроме этого Вы можете использовать ActiveSheet для доступа к активному в данный момент рабочему листу. Из объекта Worksheet можно получить доступ к объектам Rows и Columns, которые являются коллекцией объектов Range, ссылающихся на строки и столбцы рабочего листа. А также можно получить доступ к отдельной ячейке или к любому диапазону смежных ячеек на рабочем листе.

Доступ к диапазону, состоящему из единственной ячейки, может быть осуществлён через объект Worksheet при помощи свойства Cells, например, Worksheet.Cells(1,1).

По-другому ссылку на диапазон можно записать, указав адреса начальной и конечной ячеек. Их можно записать через двоеточие или через запятую. Например, Worksheet.Range(“A1:B10”) или Worksheet.Range(“A1”, “B10”) или Worksheet.Range(Cells(1,1), Cells(10,2)).

Обратите внимание, если в адресе Range вторая ячейка не указана (например, Worksheet.Range(“A1”) или Worksheet.Range(Cells(1,1)), то будет выбран диапазон, состоящий из единственной ячейки.

Приведённая выше таблица показывает, как выполняется доступ к объектам Excel через родительские объекты. Например, ссылку на диапазон ячеек можно записать вот так:

Присваивание объекта переменной

В Excel VBA объект может быть присвоен переменной при помощи ключевого слова Set:

Активный объект

В любой момент времени в Excel есть активный объект Workbook – это рабочая книга, открытая в этот момент. Точно так же существует активный объект Worksheet, активный объект Range и так далее.

Сослаться на активный объект Workbook или Sheet в коде VBA можно как на ActiveWorkbook или ActiveSheet, а на активный объект Range – как на Selection.

Если в коде VBA записана ссылка на рабочий лист, без указания к какой именно рабочей книге он относится, то Excel по умолчанию обращается к активной рабочей книге. Точно так же, если сослаться на диапазон, не указывая определённую рабочую книгу или лист, то Excel по умолчанию обратится к активному рабочему листу в активной рабочей книге.

Таким образом, чтобы сослаться на диапазон A1:B10 на активном рабочем листе активной книги, можно записать просто:

Смена активного объекта

Если в процессе выполнения программы требуется сделать активной другую рабочую книгу, другой рабочий лист, диапазон и так далее, то для этого нужно использовать методы Activate или Select вот таким образом:

Методы объектов, в том числе использованные только что методы Activate или Select, далее будут рассмотрены более подробно.

Свойства объектов

Каждый объект VBA имеет заданные для него свойства. Например, объект Workbook имеет свойства Name (имя), RevisionNumber (количество сохранений), Sheets (листы) и множество других. Чтобы получить доступ к свойствам объекта, нужно записать имя объекта, затем точку и далее имя свойства. Например, имя активной рабочей книги может быть доступно вот так: ActiveWorkbook.Name. Таким образом, чтобы присвоить переменной wbName имя активной рабочей книги, можно использовать вот такой код:

Ранее мы показали, как объект Workbook может быть использован для доступа к объекту Worksheet при помощи такой команды:

Это возможно потому, что коллекция Worksheets является свойством объекта Workbook.

Некоторые свойства объекта доступны только для чтения, то есть их значения пользователь изменять не может. В то же время существуют свойства, которым можно присваивать различные значения. Например, чтобы изменить название активного листа на “Мой рабочий лист“, достаточно присвоить это имя свойству Name активного листа, вот так:

Методы объектов

Объекты VBA имеют методы для выполнения определённых действий. Методы объекта – это процедуры, привязанные к объектам определённого типа. Например, объект Workbook имеет методы Activate, Close, Save и ещё множество других.

Для того, чтобы вызвать метод объекта, нужно записать имя объекта, точку и имя метода. Например, чтобы сохранить активную рабочую книгу, можно использовать вот такую строку кода:

Как и другие процедуры, методы могут иметь аргументы, которые передаются методу при его вызове. Например, метод Close объекта Workbook имеет три необязательных аргумента, которые определяют, должна ли быть сохранена рабочая книга перед закрытием и тому подобное.

Чтобы передать методу аргументы, необходимо записать после вызова метода значения этих аргументов через запятую. Например, если нужно сохранить активную рабочую книгу как файл .csv с именем “Книга2”, то нужно вызвать метод SaveAs объекта Workbook и передать аргументу Filename значение Книга2, а аргументу FileFormat – значение xlCSV:

Чтобы сделать код более читаемым, при вызове метода можно использовать именованные аргументы. В этом случае сначала записывают имя аргумента, затем оператор присваивания “:=” и после него указывают значение. Таким образом, приведённый выше пример вызова метода SaveAs объекта Workbook можно записать по-другому:

В окне Object Browser редактора Visual Basic показан список всех доступных объектов, их свойств и методов. Чтобы открыть этот список, запустите редактор Visual Basic и нажмите F2.

Рассмотрим несколько примеров

Этот отрывок кода VBA может служить иллюстрацией использования цикла For Each. В данном случае мы обратимся к нему, чтобы продемонстрировать ссылки на объект Worksheets (который по умолчанию берётся из активной рабочей книги) и ссылки на каждый объект Worksheet отдельно. Обратите внимание, что для вывода на экран имени каждого рабочего листа использовано свойство Name объекта Worksheet.

В этом примере кода VBA показано, как можно получать доступ к рабочим листам и диапазонам ячеек из других рабочих книг. Кроме этого, Вы убедитесь, что если не указана ссылка на какой-то определённый объект, то по умолчанию используются активные объекты Excel. Данный пример демонстрирует использование ключевого слова Set для присваивания объекта переменной.

В коде, приведённом ниже, для объекта Range вызывается метод PasteSpecial. Этот метод передаёт аргументу Paste значение xlPasteValues.

Читать еще:  Как сделать финансовый анализ предприятия в excel?

Следующий отрывок кода VBA показывает пример объекта (коллекции) Columns и демонстрирует, как доступ к нему осуществляется из объекта Worksheet. Кроме этого, Вы увидите, что, ссылаясь на ячейку или диапазон ячеек на активном рабочем листе, можно не указывать этот лист в ссылке. Вновь встречаем ключевое слово Set, при помощи которого объект Range присваивается переменной Col.

Данный код VBA показывает также пример доступа к свойству Value объекта Range и изменение его значения.

Как на VBA сохранить файл Excel с названием, взятым из ячейки?

Привет, сейчас мы рассмотрим ситуацию, когда у Вас возникла необходимость в Excel сохранять файл с определенным названием, которое необходимо сформировать из значения ячейки или даже нескольких. В этой заметке я приведу простой пример реализации данной задачи.

Исходные данные

Сначала давайте разберем исходные данные, которые я буду использовать в примерах. Пусть это будет некая абстракция марок автомобилей с указанием их VIN номера.

Примечание! Я использую Excel 2013.

В зависимости от конкретных требований и условий, задачу можно реализовать по-разному, хотя принцип будет один и тот же, в этой статье мы рассмотрим несколько вариаций реализации.

Начнем мы с самой простой ситуации, когда заранее известна ячейка, на основе которой будет сформировано имя файла, и адрес этой ячейки изменяться не будет.

Сохранение файла Excel с названием из ячейки — с привязкой к этой ячейке

Итак, данные у нас есть, теперь необходимо написать процедуру на VBA (макрос), которая брала бы значение из конкретной ячейки, в данном случае это будет ячейка B14, и присваивала бы это значение имени файла.

Ниже представлен код процедуры, я его подробно прокомментировал. Единственное скажу, что я во всех примерах сохраняю новые файлы без макросов (расширение .xlsx), т.е. по факту будет один файл с поддержкой макросов, а все производные — без.

Если нужно сохранять макрос в каждом файле, т.е. файлы с поддержкой макросов (расширение .xlsm), то необходимо просто указать другой тип файла при сохранении, а именно xlOpenXMLWorkbookMacroEnabled, в процедурах в комментариях я это указываю.

Открываем в Excel редактор Visual Basic, и вставляем код следующей процедуры в исходный код этой книги (ЭтаКнига, открыть двойным кликом) или в модуль, который Вы предварительно должны создать.

Примечание! Для того чтобы открыть редактор Visual Basic в Excel, необходимо перейти на вкладку «Разработчик» и нажать на кнопку «Visual Basic». Файл Excel с кодом процедуры необходимо сохранить с типом «Книга Excel с поддержкой макросов».

Код процедуры

После сохранения файла запустите макрос («Макросы -> Выполнить -> SaveFile»).

В результате в моем случае процедура успешно выполнилась, файл сохранился с названием «Марка Авто 1», данное значение взято из ячейки B14, о чем будет свидетельствовать сообщение в конце процедуры. Файл сохранен в каталоге, где и исходный файл (во всех примерах ниже прописано то же самое, т.е. сохранение рядом с исходником, но это Вы можете изменить).

Добавление кнопки в Excel для запуска макроса

Каждый раз открывать окно с макросами и выбирать нужный макрос не очень удобно, поэтому можно легко добавить кнопку где-нибудь рядом с данными и просто нажимать ее. Это делается следующим образом «Вкладка Разработчик -> Вставить -> Кнопка (элемент управления формы)».

Затем выберите место, где вставить кнопку, и нажмите туда. После этого появится окно назначения действия, т.е. нужно выбрать, какой макрос запускать при нажатии этой кнопки, выбираем наш макрос, т.е. SaveFile, и нажимаем «ОК».

В итоге появится кнопка с названием «Кнопка», это название лучше изменить, например, на «Сохранить файл». Для этого нажмите правой кнопкой мыши на кнопку и выберите настройки «Изменить текст». В итоге у Вас должно получиться что-то вроде этого.

Сохранение файла Excel с названием из ячейки — без привязки к ячейке

Теперь давайте представим, что заранее мы не можем определить, какая именно ячейка будет формировать название файла (может B14, а может и нет), поэтому мы можем немного скорректировать алгоритм таким образом, чтобы он брал значение из ячейки, которая является активной, но в этом случае Вы, конечно же, предварительно, должны выбрать ее (т.е. встать на нее).

Замените код процедуры следующим кодом, который совсем немного, но изменен.

Проверяем работу, становимся на нужную ячейку, и запускаем макрос (в процедуре я добавил проверку, если выбрана пустая ячейка, возникнет ошибка).

Как видим, все отработало.

Сохранение файла Excel с названием, которое сформировано из значений двух ячеек

Теперь представим, что нам нужно сформировать файл с названием из значений двух ячеек. Например, в нашем случае это может быть «Марка Авто – VIN Номер», в качестве разделителя я указал символ – (дефис), но им может выступать любой символ или вовсе отсутствовать.

В этом примере я покажу, как можно это реализовать с привязкой к конкретным ячейкам, в нашем случае B14 и D14.

Код процедуры в данном случае будет выглядеть следующим образом.

Все ОК, файл создан.

Если вдруг нужно реализовать без привязки к конкретным ячейкам, например, значения хранятся в определённых столбцах, но конкретная строка неизвестна Вам заранее. Например, у меня несколько строк со значениями, и какие конкретно значения взять за основу названия файла, я хочу указывать самостоятельно, непосредственно перед сохранением, но при этом не редактировать код процедуры.

Для этого мы снова внесем изменения в нашу процедуру, которая будет работать от активной ячейки (смещение от активной ячейки), только с условием того, что выбран столбец с теми значениями, которые необходимо использовать.

Код процедуры

Становитесь на любую ячейку со значением в столбце B, и запускайте макрос.

У меня на этом все, надеюсь, материал был Вам полезен, пока!

Ссылка на основную публикацию
Adblock
detector