Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
mironov_gotovye_makrosy_v_vba_excel.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.41 Mб
Скачать

Просмотр информации о дисках компьютера

Sub DrivesInfo()

Dim objFileSysObject As Object ' Объект для работы _

с файловой системой

Dim objDrive As Object ' Анализируемый диск

Dim intRow As Integer ' Заполняемая строка листа

' Создание объекта для работы с файловой системой

Set objFileSysObject = CreateObject("Scripting.FileSystemObject")

' Очистка листа

Cells.Clear

' Запись с первой строки

intRow = 1

' Запись на лист информации о дисках компьютера

On Error Resume Next

For Each objDrive In objFileSysObject.Drives

' Буква диска

Cells(intRow, 1) = objDrive.DriveLetter

' Готовность

Cells(intRow, 2) = objDrive.IsReady

' Тип диска

Select Case objDrive.DriveType

Case 0

Cells(intRow, 3) = "Неизвестно"

Case 1

Cells(intRow, 3) = "Съемный"

Case 2

Cells(intRow, 3) = "Жесткий"

Case 3

Cells(intRow, 3) = "Сетевой"

Case 4

Cells(intRow, 3) = "CD-ROM"

Case 5

Cells(intRow, 3) = "RAM"

End Select

' Метка диска

Cells(intRow, 4) = objDrive.VolumeName

' Общий размер

Cells(intRow, 5) = objDrive.TotalSize

' Свободное место

Cells(intRow, 6) = objDrive.AvailableSpace

intRow = intRow + 1

Next

End Sub

Глава . Юзерформы

Мне кажется, наилучшим решениям для передачи данных штрихкода будет не TextBox, а Label, в него уже точно ничего руками не введешь По поводу выполнения макросов по кнопке, Юрий вам уже пример макроса показал, как прявязать к конкертной кнопке, примерно так:

Private Sub TextBox10_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) if keyAscii = 27 then Call Macros1'выполнеие нужной процедуры по F1 end sub номера обозначения кнопок можно посмотреть по процедуре Private Sub TextBox10_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) msgbox keyAscii end sub

проверить введенное значение на соотвествие и пропустить или поставить дефолтное значение Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If Val(TextBox1) > 10 And Val(TextBox1) < 10000 Then Else TextBox1 = 20 ' default value End If End Sub

Разрешенные символы Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii > 47 And KeyAscii < 58 Or KeyAscii = 44 Or KeyAscii = 45 Or KeyAscii = 8 Then Else KeyAscii = 0 End Sub ‘ 44 Это запятая ‘ 46 точка

Автоматическая замена точки на запятую Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Chr(KeyAscii) = "," Then KeyAscii = Asc(".") End Sub Если нужно заблокировать ввод запятой, то: ... Then KeyAscii = 0

Ввод в TextBox только цифр Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii < Asc(0) Or KeyAscii > Asc(9) Then KeyAscii = 0 Beep ' звуковой сигнал при ошибке End If End Sub

при использовании события change брать последний введенный символ. Елси подходит оставлять его, если нет - присваивать полю последнее значение Private Sub TextBox1_Change() lc = Right(TextBox1, 1) If lc < "0" And lc "9") Then TextBox1 = Left(TextBox1, Len(TextBox1) - 1) End Sub при таком методе фсякие знаки, кроме цифр, в поле ввода даже не появляюцца! :)

Ввод только цифр

If Not IsNumeric(Me.TextBox1) Then Me.Hide MsgBox "Значение должно быть числом!" Me.Show End If Далее текст самой программы exit sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]