Dim fd as FileDialog
Set fd = Application.FileDialog (mso FileDialogSaveAs)
If fd.Show = -1 then
Fd.Execute
End Sub.
Пошук файлів
Властивість FileSearch об'єкта Application повертає об'єкт FileSearch, який інкапсулює і собі властивості і методи, що реалізують пошук специфікованого файлу на диску. Перелічимо основні властивості об'єкта FileSearch:
- властивість LookIn повертає або встановлює каталог, в якому проводиться пошук.
- властивість FileType повертає або встановлює тип шуканого файлу. Його допустимим значенням може бути одна з наступних констант:
msoFileTypeAllFiles
msoFileTypeCalendarItems
msoFileTypeCustom
msoFileTypeDataConnectionFiles
msoFileTypeDocumentImagingFiles
msoFileTypeJournaItem
msoFileTypeNoteItems
msoFileTypeOutLookItems
msoFileTypePowerPoint
msoFileTypeTemplates
msoFileTypeWebPages
msoFileTypeBindere
msoFileTypeContactItems
msoFileTypeDataBases
msoFileTypeMailItems
msoFileTypeOfficeFile
msoFileTypeTarkItems
msoFileTypeVisioItems
msoFileTypeWordDocuments
- властивість FoundFile повертає об'єкт FoundFiles, що представляє собою список імен всіх знайдених протягом пошуку файлів.
Метод Execute об'єкта Application виробляє безпосередній поск. Він повертає ціле число, причому, якщо воно дорівнює 0, то жодного файлу не було знайдено, а якщо позитивне, те знайдений, принаймні, один файл.
Лістинг 6. Пошук робочих книг в кореневому каталозі диска С
With Application. FileSearch
. LookIN = "C: "
. FileType = msoFileTypeExcelWordBooks
If.Execute (SortByFileName._
Sortorder: msosoftorderabcending)> 0 Then
Dim str As string
Str = "Знайдено" &. FoundFile.Count & "
Dim I as integer
Int = I to FoundItem.Count
Str = str &. FoundFile (i) & vthcr
Next
MsgBox str
Else
MsgBox "Робочі книги не знайдені"
End if
End with
В
Симулювання комірок робочого аркуша
Метод Evaluate дозволяє симулювати роботу з осередками або діапазонами робочого листа без реального втілення цих дій на робочому листі.
Лістинг 7. Симулювання введення даних в осередки і зчитування з них значень
Public Sub Simur ()
Evaluate ("A1"). Value = 25
Evaluate ("A2"). Formula = "A1 ^ 2"
MsgBox Evaluate ("A2"). Value
End Sub
Лістинг 8 Симулювання осередків
Public Sub stimulirovanie ()
Dim firstCell As Range
Dim secondCell As Range
Set firstCell = Evaluate ("A1")
Set secondCell = Evaluate ("A2")
firstCell.Value = 25
secondCell.Formula = "A1 ^ 2"
MsgBox secondCell.Value
End Sub
Електронні годинник у клітинці робочого аркуша
Метод дозволяє створити електронний годинник. Для цього достатньо рекурсивно викликати процедуру, в якої зчитується поточний час. Потім воно виводиться у комірку робочого аркуша, знайдене час збільшується на секунду, і вже для обчисленого нового часу встановлюється рекурсивний виклик процедури. br/>
Лістинг 9. Електронний годинник у клітинці робочого аркуша. Стандартний модуль
Sub DemoClock ()
DemoOnTime p> End Sub
Sub DemoOnTime ()
Dim newHour, newMinute, newSecond, newTime
Cells (1, 1). Value = Now
newHour = Hour (Now)
newMinute = Minute (Now)
newSecond = Second (Now)
newTime = TimeSerial (newHour, newMinute, newSecond)
Application.OnTime EarliesTime: = newTime, Procedure: = "DemoOnTime"
End Sub
Доступ до окремих осередків діапазону
Властивість Cells об'єкта Range, використане без індексів, повертає всі комірки діапазону, а з індексів-конкретну комірку, специфіковані або її номером (один параметр), або місцем розташування (два параметри).
Наприклад, в наступному коді в діапазоні В1: С3 всі позитивні значення замінюються на 1, а негативні на -1.
Лістинг 10. Усі клітинки діапазону
Dim a as Range
For Each a in Range (В1: С3). Cells
If a.Value> 0 Then
a.Value = 1
Else if a.Value <0 then
a.Value = -1
End if
Next
Лістинг 11
Dim i As Integer Dim j As Integer
For i = +1 To Range ("B1: C3В»). Columns.Count For j = 1 To Range ("Bl: C3"). Columns.Count
If Range ("B1: C3")-Cells (i, j). Value> 0 Then
Range ("Bl: C3"). Cells (i, j). Value = 1 Elself Range ("B1: C3")-Cells (i, j). Value <0 Then
Range ("B1...