Электронная библиотека » Алексей Гладкий » » онлайн чтение - страница 13

Текст книги "Excel. Трюки и эффекты"


  • Текст добавлен: 22 ноября 2013, 19:01


Автор книги: Алексей Гладкий


Жанр: Программы, Компьютеры


сообщить о неприемлемом содержимом

Текущая страница: 13 (всего у книги 22 страниц)

Шрифт:
- 100% +
Определение количества ячеек в диапазоне и суммы их значений

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

Листинг 3.26. Сумма данных диапазона

Sub CalculateSum()

Dim i As Integer

Dim intSum As Integer

' Расчет суммы ячеек столбца "A" (с первой по пятую)

For i = 1 To 5

intSum = intSum + Cells(i, 1)

Next

MsgBox "Сумма ячеек: " & intSum

End Sub

В подобном случае будет рассчитана сумма диапазона ячеек с 1 по 5, которые расположены в столбце А. Результат работы данного макроса представлен на рис. 3.7.

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

Рис. 3.7. Рассчитанная сумма диапазона ячеек

Листинг 3.27. Сумма ячеек с числовыми значениями

Sub CalculateSum()

Dim i As Integer

Dim intSum As Integer

' Расчет суммы ячеек столбца "A" (с первой по пятую)

For i = 1 To 5

If IsNumeric(Cells(i, 1)) Then

intSum = intSum + Cells(i, 1)

End If

Next

MsgBox "Сумма ячеек: " & intSum

End Sub

После запуска данного макроса будет рассчитана сумма диапазона ячеек с 1 по 5, расположенных в столбце А, при этом ячейки с нечисловыми значениями будут проигнорированы.

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

Листинг 3.28. Подсчет количества ячеек

Sub CountOfCells()

MsgBox (Range(«A1:A20, D1:D20»).Count)

End Sub

После выполнения данного макроса на экране отобразится окно, в котором будет указано общее количество ячеек в диапазонах А1:А20 и D1:D20.

Подсчет именованных объектов

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

Листинг 3.29. Количество именованных объектов

Sub CountNames()

Dim intNamesCount As Integer

' Получаем и отображаем количество имен в активной _

рабочей книге

intNamesCount = ActiveWorkbook.Names.Count

If intNamesCount = 0 Then

MsgBox «Имен нет»

Else

MsgBox "Имен: " & intNamesCount & « шт.»

End If

End Sub

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

Рис. 3.8. Подсчет количества имен


При необходимости можно подсчитать количество имен рабочей книги. Соответствующий макрос выглядит так (листинг 3.30).

Листинг 3.30. Количество имен рабочей книги

Sub CountNames()

Dim intNamesCount As Integer

' Получаем и отображаем количество имен на активном _

листе рабочей книги

intNamesCount = Names.Count

If intNamesCount = 0 Then

MsgBox «Имен нет»

Else

MsgBox "Имен: " & intNamesCount & « шт.»

End If

End Sub

Быстрый поиск курсора

Для быстрого поиска активной ячейки можно воспользоваться таким макросом (листинг 3.31).

Листинг 3.31. Поиск активной ячейки

Sub FindActiveCell()

' Выводим адрес активной ячейки

MsgBox ActiveCell.Address

End Sub

Результат поиска выводится в информационном окне, пример которого представлен на рис. 3.9.

Рис. 3.9. Адрес активной ячейки


Чтобы убрать значение абсолютной ссылки на строку и столбец, можно использовать следующий код:

MsgBox ActiveCell.Address(RowAbsolute:=False, ColumnAbsolute:=False)

Поиск начала и окончания диапазона, содержащего данные

Аналогичным образом можно быстро определить диапазон листа, в котором содержатся какие-либо данные. Этот трюк удобно применять, например, когда данные разбросаны по всему листу и точно не известно, где они начинаются и где заканчиваются (а вручную просматривать весь лист долго и неудобно). Для решения подобной задачи можно применить следующий макрос (листинг 3.32).

Листинг 3.32. Поиск данных

Sub FindSheetData()

' Выводим диапазон используемых ячеек листа

MsgBox ActiveSheet.UsedRange.Address

End Sub

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

Если же необходимо определить не весь диапазон с данными, а найти лишь его начало, то можно воспользоваться макросом, код которого приведен в листинге 3.33.

Листинг 3.33. Поиск начала данных

Sub FindStartOfData()

With ActiveSheet

' Заносим текст в ячейку, являющуюся левой верхней _

ячейкой используемого диапазона

.Cells(.UsedRange.Row, .UsedRange.Column).Value = _

«Начало данных»

End With

End Sub

После выполнения данного макроса в левой верхней ячейке диапазона, содержащего данные, отобразится текст Начало данных (этот текст можно изменять по своему усмотрению). Подобный трюк удобно применять при работе с большими объемами данных, когда они разбросаны по всему рабочему листу и трудно определить точное место их начала (особенно если первые данные диапазона находятся, например, в ячейке Т350).

Трюки с примечаниями

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

Подсчет примечаний

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

Листинг 3.34. Подсчет примечаний

Sub CountOfComment()

Dim intCommentCount As Integer

' Получение и отображение количества примечаний _

на текущем листе

intCommentCount = ActiveSheet.Comments.Count

If intCommentCount = 0 Then

MsgBox «Примечаний нет»

Else

MsgBox "Примечаний: " & intCommentCount & « шт.»

End If

End Sub

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

Вывод на экран всех примечаний рабочего листа

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

Листинг 3.35. Список примечаний

Sub ShowComments()

Dim cell As Range

Dim rgCells As Range

' Получение всех ячеек с примечаниями

Set rgCells = Selection.SpecialCells(xlComments)

If rgCells Is Nothing Then

' Примечаний нет

Exit Sub

End If

' Проходим по всем ячейкам диапазона

For Each cell In rgCells

' Вывод примечаний в соседнюю ячейку

cell.Next.Value = cell.Comment.Text

Next

End Sub

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

Примечание

Если рабочий лист защищен, то данный макрос работать не будет.

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

Листинг 3.36. Список примечаний защищенных листов

Sub ShowComments1()

Dim cell As Range

Dim strFirstAddress As String

Dim strComments As String

' Получаем все ячейки выделения, в которых есть комментарий

Set cell = Selection.Find("*", LookIn:=xlComments)

If Not cell Is Nothing Then

' Сохранение адреса первой найденной ячейки _

(для предотвращения зацикливания поиска)

strFirstAddress = cell.Address

Do

' Добавление текста примечания в выходную строку

strComments = strComments & "Комментарий: " & _

cell.Comment.Text & Chr(13)

' Продолжение поиска

Set cell = Selection.FindNext(cell)

Loop While Not cell Is Nothing And _

cell.Address <> strFirstAddress

End If

If strComments <> "" Then

' Отображение окна с текстом примечаний

MsgBox strComments

Else

MsgBox «В выделенной ячейке/ячейках комментариев нет»

End If

End Sub

Данный макрос работает только с предварительно выделенным диапазоном рабочего листа.

Создание списка примечаний рабочего листа

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

Листинг 3.37. Перечень примечаний в отдельном списке (вариант 1)

Sub ListOfComments()

Dim cell As Range

Dim rgCells As Range

Dim intRow As Integer

' Получение всех ячеек с примечаниями

On Error Resume Next

Set rgCells = Selection.SpecialCells(xlComments)

If rgCells Is Nothing Then

' Примечаний нет

Exit Sub

End If

' Проходим по всем ячейкам диапазона

For Each cell In rgCells

' Вывод примечаний в ячейку столбца "C"

intRow = intRow + 1

Cells(intRow, 3) = cell.Comment.Text

Next

End Sub

К аналогичному результату (вывод примечаний в виде списка в столбце С) приведет написание и использование такого макроса (листинг 3.38).

Листинг 3.38. Перечень примечаний в отдельном списке (вариант 2)

Sub ListOfComments1()

Dim cell As Range

Dim strFirstAddress As String

Dim intRow As Integer

' Получение всех ячеек выделения, в которых есть примечания

Set cell = Cells.Find("*", LookIn:=xlComments)

If Not cell Is Nothing Then

' Сохранение адреса первой найденной ячейки _

(для предотвращения зацикливания поиска)

strFirstAddress = cell.Address

Do

' Вывод текста в столбец "C"

intRow = intRow + 1

Cells(intRow, 3) = cell.Comment.Text

' Продолжение поиска

Set cell = Cells.FindNext(cell)

Loop While Not cell Is Nothing And _

cell.Address <> strFirstAddress

End If

End Sub

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

Несколько трюков в одном примере

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

В первую очередь необходимо написать код, который приведен в листинге 3.39, и поместить его в редакторе VBA в стандартный модуль.

Листинг 3.39. Операции с примечаниями

Sub CountOfComments()

Dim intCommentCount As Integer

' Получение и отображение количества примечаний

intCommentCount = ActiveSheet.Comments.Count

If intCommentCount = 0 Then

MsgBox «Текущая рабочая книга не содержит примечаний.», _

vbInformation

Else

MsgBox "В текущей рабочей книге содержится " &

intCommentCount _

& « комментариев.», vbInformation

End If

End Sub

Sub SelectComments()

' Выделение всех ячеек с примечаниями

Cells.SpecialCells(xlCellTypeComments).Select

End Sub

Sub ShowComments()

' Отображение всех примечаний

If Application.DisplayCommentIndicator =

xlCommentAndIndicator Then

Application.DisplayCommentIndicator = xlCommentIndicatorOnly

Else

Application.DisplayCommentIndicator = xlCommentAndIndicator

End If

End Sub

Sub ListOfCommentsToFile()

Dim rgCells As Range ' Ячейки с примечаниями

Dim intDefListCount As Integer ' Используется для временного _ хранения количества

листов в книге по умолчанию

Dim strSheet As String ' Имя анализируемого листа

Dim strWorkBook As String ' Имя книги с анализируемым

листом

Dim intRow As Integer

Dim cell As Range

' Получение ячеек с примечаниями

On Error Resume Next

Set rgCells = ActiveSheet.Cells.SpecialCells(xlComments)

On Error GoTo 0

' Если примечаний нет, то можно не продолжать

If rgCells Is Nothing Then

MsgBox «Текущая рабочая книга не содержит примечаний.», _

vbInformation

Exit Sub

End If

' Сохранение имен анализируемого листа и книги

strSheet = ActiveSheet.Name

strWorkBook = ActiveWorkbook.Name

' Создание отдельной книги с одним листом _

для отображения результатов

intDefListCount = Application.SheetsInNewWorkbook

Application.SheetsInNewWorkbook = 1

Workbooks.Add

Application.SheetsInNewWorkbook = intDefListCount

ActiveWorkbook.Windows(1).Caption = "Comments for " &

strSheet & _

" in " & strWorkBook

' Создание списка примечаний

Cells(1, 1) = «Адрес»

Cells(1, 2) = «Содержимое»

Cells(1, 3) = «Комментарий»

Range(Cells(1, 1), Cells(1, 3)).Font.Bold = True

intRow = 2 ' Данные начинаются со второй строки

For Each cell In rgCells

Cells(intRow, 1) = cell.Address(rowabsolute:=False, _

columnabsolute:=False)

Cells(intRow, 2) = " " & cell.Formula

Cells(intRow, 3) = cell.comment.Text

intRow = intRow + 1

Next

End Sub

Sub ChangeCommentColor()

' Автоматическое изменение цвета комментариев

Dim comment As comment

For Each comment In ActiveSheet.Comments

' Задаем случайные цвета заливки и шрифта комментариев

comment.Shape.Fill.ForeColor.SchemeColor = Int((80) * Rnd + 1)

comment.Shape.TextFrame.Characters.Font.ColorIndex =

Int((56 _

) * Rnd + 1)

Next

End Sub

В результате написания данного кода в окне выбора макросов будут доступны следующие макросы:

• ChangeCommentColor – с помощью этого макроса назначается произвольная цветовая палитра, используемая для оформления примечаний;

• CountOfComments – подсчитывает количество примечаний;

• ListOfCommentsToFile – выводит список примечаний в отдельный файл (при этом для каждой позиции списка в соответствующих столбцах отображается адрес ячейки, ее содержимое и текст примечания);

• SelectComments – выделяет ячейки с примечаниями;

• ShowComments – предназначен для быстрого отображения/скрытия одновременно всех примечаний.

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

Дополнение панели инструментов

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

Листинг 3.40. Добавление кнопки на панель инструментов

Sub AddCustomButton()

' Добавление кнопки на панель инструментов

With Application.Toolbars(1).ToolbarButtons.Add(button:=222)

.Name = «Кнопка»

.OnAction = «Макрос»

End With

End Sub

Кнопка, добавленная на стандартную панель инструментов в результате применения этого макроса, показана на рис. 3.10.

Рис. 3.10. Добавление пользовательской кнопки

Примеры создания панелей инструментов

В данном разделе мы рассмотрим несколько трюков, с помощью которых можно создавать пользовательские панели инструментов.

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

Листинг 3.41. Панель с одной кнопкой

Sub CreateCustomControlBar()

' Создание панели инструментов

With Application.CommandBars.Add(Name:="Панель",

Temporary:=True)

' Создание и настройка кнопки

With .Controls.Add(Type:=msoControlButton)

.Style = msoButtonIconAndCaption

.FaceId = 66

.Caption = «Просто кнопка»

End With

' Покажем панель

.Visible = True

End With

End Sub

Результат выполнения данного макроса представлен на рис. 3.11.

Рис. 3.11. Пользовательская панель инструментов


Обратите внимание, что в данном случае кнопка отображается со значком и подписью одновременно.

Примечание

Кнопка General на панели инструментов присутствует по умолчанию, независимо от выполненного макроса. В данном случае нас интересует лишь кнопка Просто кнопка, созданная с помощью макроса.

Теперь познакомимся с макросом, использование которого позволяет создать пользовательскую панель инструментов с двумя кнопками. Код данного макроса выглядит следующим образом (листинг 3.42).

Листинг 3.42. Панель с двумя кнопками

Sub CreateCustomControlBar()

' Создание панели инструментов

With Application.CommandBars.Add(Name:="Панель",

Temporary:=True, _

Position:=msoBarLeft)

' Создание и настройка первой кнопки

With .Controls.Add(Type:=msoControlButton)

.Style = msoButtonWrapCaption

.Caption = «Просто кнопка»

End With

' Создание и настройка второй кнопки

With .Controls.Add(Type:=msoControlButton)

.Style = msoButtonIconAndWrapCaption

.Caption = «Кнопка»

.FaceId = 225

End With

' Покажем панель

.Visible = True

End With

End Sub

После запуска макроса на вкладке Надстройки появится пользовательская панель (рис. 3.12).

Рис. 3.12. Панель в левой части интерфейса


В данном случае кнопка General также присутствует по умолчанию, наш макрос на ее появление не влияет.

Формирование пользовательского меню

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

Листинг 3.43. Создание пользовательского меню (вариант 1)

Sub AddCustomMenu()

' Добавление меню

W i t h A p p l i c a t i o n . C o m m a n d B a r s ( 1 ) . C o n t r o l s . A d d

(Type:=msoControlPopup, _

Temporary:=True)

.Caption = «Архив»

With .Controls

' Добавление и настройка первого пункта

With .Add(Type:=msoControlButton)

.FaceId = 280

.Caption = «Просмотр»

.OnAction = «Макрос1»

End With

' Добавление вложенного меню

With .Add(Type:=msoControlPopup)

.Caption = «База данных»

With .Controls

' Добавление и настройка первого пункта _

вложенного меню

With .Add(Type:=msoControlButton)

.FaceId = 1643

.Caption = «Поставщики»

.OnAction = «Макрос2»

End With

' Добавление и настройка второго пункта _

вложенного меню

With .Add(Type:=msoControlButton)

.FaceId = 1000

.Caption = «Покупатели»

.OnAction = «Макрос3»

End With

End With

End With

End With

End With

End Sub

Очевидно, что данный макрос используется в комплексе с другими макросами (Макрос 1, Макрос2 и Макрос3), которые разрабатываются отдельно.

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

Если макросы Макрос 1, Макрос2 и Макрос3 отсутствуют, то при выборе пунктов Просмотр, Поставщики и Покупатели, которые входят в состав пользовательского меню Архив, отобразится окно с сообщением, что требуемый макрос не обнаружен.

Рис. 3.13. Добавление пользовательского меню


Такое же меню (см. рис. 3.13) появится на вкладке Надстройки после применения макроса, код которого приведен в листинге 3.44.

Листинг 3.44. Создание пользовательского меню (вариант 2)

Sub AddCustomMenu1()

' Добавление меню с названием «Архив» в часть меню, _

относящуюся к рабочей книге

With MenuBars(«Worksheet»).Menus.Add(Caption:="Архив")

' Добавление кнопки

.MenuItems.Add Caption:="Просмотр", OnAction:="Макрос1"

' Добавление подменю

With .MenuItems.AddMenu(Caption:="База данных")

' Добавление пунктов подменю

MenuItems.Add Caption:="Поставщики", OnAction:="Макрос2"

.MenuItems.Add Caption:="Покупатели", OnAction:="Макрос3"

End With

End With

End Sub

К аналогичному результату приведет использование также такого макроса (листинг 3.45).

Листинг 3.45. Создание пользовательского меню (вариант 3)

Sub AddCustomMenu2()

' Добавление меню с названием «Архив» в часть меню, _

относящуюся к рабочей книге

With MenuBars(«Worksheet»).Menus.Add(Caption:="Архив")

' Добавление кнопки

.MenuItems.Add Caption:="Просмотр", OnAction:="Макрос1"

' Добавление подменю

With .MenuItems.AddMenu(Caption:="База данных")

' Добавление первого пункта подменю

With .MenuItems.Add(Caption:="Поставщики")

' Настройка кнопки

.OnAction = «Макрос2»

End With

' Добавление второго пункта подменю

With .MenuItems.Add(Caption:="Покупатели")

' Настройка кнопки

.OnAction = «Макрос3»

End With

End With

End With

End Sub

Как и в первом случае, два последних макроса предусматривают использование дополнительных макросов Макрос1, Макрос2 и Макрос3.

Проверка наличия файла по указанному пути

При необходимости можно быстро проверить, существует ли файл по указанному адресу. Чаще всего для этого используется макрос, приведенный в листинге 3.46 (путь и название файла условные, взяты только для примера).

Листинг 3.46. Проверка наличия файла (вариант 1)

Sub VerifyFileLocation()

Dim strFileName As String

Dim strFileTitle As String

' Имя и путь искомого файла

strFileTitle = «primer.xls»

strFileName = «C:Документыprimer.xls»

' Проверка наличия файла (функция Dir возвращает пустую _

строку, если по указанному пути файл обнаружить не удалось)

If Dir(strFileName) <> "" Then

MsgBox "Файл " & strFileTitle & « найден»

Else

MsgBox "Файл " & strFileTitle & « не найден»

End If

End Sub

Результатом выполнения данного макроса является выводимое на экран окно, в котором сообщается, существует данный файл по указанному адресу или нет (рис. 3.14).

Рис. 3.14. Результат поиска файла


Для такой же проверки можно применить макрос, код которого приведен в листинге 3.47 (путь и название файла условны).

Листинг 3.47. Проверка наличия файла (вариант 2)

Sub VerifyFileLocation1()

Dim strFileName As String

' Имя искомого файла

strFileName = «C:Документыprimer.xls»

' Проверка наличия файла (функция Dir возвращает пустую _

строку, если по указанному пути файл обнаружить не удалось)

If Dir(strFileName) <> "" Then

MsgBox "Файл " & strFileName & « найден»

Else

MsgBox "Файл " & strFileName & « не найден»

End If

End Sub

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

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

Листинг 3.48. Поиск нужного файла

Sub FileSearch()

Dim strFileName As String

Dim strFolder As String

Dim strFullPath As String

' Задание имени папки для поиска

strFolder = InputBox(«Определите папку:»)

If strFolder = "" Then Exit Sub

' Задание имена файла для поиска

strFileName = Application.InputBox(«Введите имя файла:»)

If strFileName = "" Then Exit Sub

' При необходимости дополняем имя папки ""

If Right(strFolder, 1) <> "" Then strFolder = strFolder & ""

' Полный путь файла

strFullPath = strFolder & strFileName

' Вывод окна с отчетом о поиске средствами VBA

MsgBox «Использование команды VBA...» & vbCrLf & vbCrLf & _

dhSearchVBA(strFullPath), vbInformation, strFullPath

' Вывод окна с отчетом о поиске средствами объекта _

FileSystemObject

MsgBox «Использование объекта FileSystemObject...» & vbCrLf

& _

vbCrLf & dhSearchFileSystemObject(strFullPath), vbInformation, _

strFullPath

End Sub

Function dhSearchVBA(varFullPath As Variant) As Boolean

' Использование команды VBA

dhSearchVBA = Dir(varFullPath) <> ""

End Function

Function dhSearchFileSystemObject(varFullPath As Variant) As

Boolean

Dim objFSObject As Object

' Использование объекта FileSystemObject

Set objFSObject = CreateObject(«Scripting.FileSystemObject»)

dhSearchFileSystemObject = objFSObject.FileExists(varFullPath)

End Function

В результате запуска макроса открывается окно, в котором указывается папка для поиска, а затем (после нажатия кнопки ОК) – имя искомого файла. В данном примере для поиска файла используются два разных метода. После ввода имени папки и файла они будут применены поочередно, и в каждом случае будет показан отдельный результат: если файл обнаружен по указанному пути, то отобразится значение True, в противном случае – False.

В результате написания приведенного выше кода, помимо макроса FileSearch, будут созданы три пользовательские функции (их можно найти в категории Определенные пользователем). С помощью этих функций можно отдельно использовать каждый из методов, которые автоматически применяются при выполнении макроса. В данном случае в качестве аргументов функций указываются ячейки, содержащие путь к искомому файлу. Если файл обнаружен по указанному пути, то в активной ячейке отобразится значение ИСТИНА, в противном случае – ЛОЖЬ.


Страницы книги >> Предыдущая | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Следующая
  • 4.6 Оценок: 5

Правообладателям!

Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.


Популярные книги за неделю


Рекомендации