Как в программу VB вставить код записанный из VBA Excel?
Формулировка задачи:
Всем доброе время суток. Я начинаю изучать программирование на Visual Basic, и столкнулся с таким вопросом, каким образом код макроса, записанный в Microsoft Excel можно вставить в программу. Задача следующая: программа запускает файл (*.xls), через каждые две минуты повторяет ряд действий с возможностью остановки таймера. При закрытии программы книга Excel сохраняется и закрывается. Также хочется, чтоб программа работала только на моем рабочем компьютере, для чего необходимо произвести проверку системы. Код и саму программу прилагаю. Всем буду благодарен за помощь.
Excel.rar
Листинг программы
- Option Explicit
- Dim Ex As Excel.Application
- Dim Tr As Long
- Private Sub Command1_Click()
- On Error Resume Next
- Screen.MousePointer = vbHourglass
- 'Провера пользователя в общих свойствах системы
- 'например номер 17929-723-5873987-55698
- 'После чего программа работает дальше
- 'В противном случае закрывается
- Ex.Workbooks.Open App.Path & "\ME.xls"
- If Ex Is Nothing Then
- Set Ex = CreateObject("Excel.Application") 'Запускаем Excel
- Ex.Workbooks.Open App.Path & "\ME.xls"
- End If
- Ex.WindowState = xlMinimized
- Ex.Visible = True
- Command2.Enabled = True
- Command4.Enabled = True
- Command1.Enabled = False
- Screen.MousePointer = vbDefault
- End Sub
- Private Sub Command2_Click() 'Включает таймер
- Timer1.Interval = 1000
- Tr = Val(2) * 60
- Command3.Enabled = True
- Command2.Enabled = False
- End Sub
- Private Sub Timer1_Timer()
- 'If Tr = 0 Then Cop
- 'Tr = Tr - 1
- End Sub
- Private Sub Command3_Click()
- 'Выключает таймер и выполнение "макроса"
- Command2.Enabled = True
- Command3.Enabled = False
- End Sub
- Private Sub Command4_Click() 'Сохранение и закрыттие Excel, выход из программы
- Screen.MousePointer = vbHourglass
- Ex.Workbooks(1).Save
- Ex.Application.Quit
- Set Ex = Nothing
- Command1.Enabled = True
- Command2.Enabled = False
- Command3.Enabled = False
- Command4.Enabled = False
- Screen.MousePointer = vbDefault
- End
- End Sub
- Private Sub Cop()
- '-----------------------------------------
- 'Как правильно написать код из макроса VBA
- '-----------------------------------------
- Screen.MousePointer = vbHourglass
- 'Windows("ME.xls").Activate
- 'Range("B2").Select
- 'Selection.Copy
- 'Range("B1").Select
- 'ActiveSheet.Paste
- 'Range("B3").Select
- 'Application.CutCopyMode = False
- 'Selection.Copy
- 'Range("B2").Select
- 'ActiveSheet.Paste
- 'Range("B4").Select
- 'Application.CutCopyMode = False
- 'Selection.Copy
- 'Range("B3").Select
- 'Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
- ' :=False, Transpose:=False
- 'Range("C1").Select
- 'Application.CutCopyMode = False
- Screen.MousePointer = vbDefault
- End Sub
Решение задачи: «Как в программу VB вставить код записанный из VBA Excel?»
textual
Листинг программы
- Private Const MAX_COMPUTERNAME_LENGTH As Long = 31
- Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
- Private Sub Form_Load()
- Dim dwLen As Long
- Dim strString As String
- 'создаем буфер
- dwLen = MAX_COMPUTERNAME_LENGTH + 1
- strString = String(dwLen, "X")
- 'получаем имя компьютера
- GetComputerName strString, dwLen
- 'get only the actual data
- strString = Left(strString, dwLen)
- 'показываем имя компьютера
- MsgBox strString
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д