Как в программу VB вставить код записанный из VBA Excel?

Узнай цену своей работы

Формулировка задачи:

Всем доброе время суток. Я начинаю изучать программирование на Visual Basic, и столкнулся с таким вопросом, каким образом код макроса, записанный в Microsoft Excel можно вставить в программу. Задача следующая: программа запускает файл (*.xls), через каждые две минуты повторяет ряд действий с возможностью остановки таймера. При закрытии программы книга Excel сохраняется и закрывается. Также хочется, чтоб программа работала только на моем рабочем компьютере, для чего необходимо произвести проверку системы. Код и саму программу прилагаю. Всем буду благодарен за помощь.
Листинг программы
  1. Option Explicit
  2. Dim Ex As Excel.Application
  3. Dim Tr As Long
  4. Private Sub Command1_Click()
  5. On Error Resume Next
  6. Screen.MousePointer = vbHourglass
  7. 'Провера пользователя в общих свойствах системы
  8. 'например номер 17929-723-5873987-55698
  9. 'После чего программа работает дальше
  10. 'В противном случае закрывается
  11. Ex.Workbooks.Open App.Path & "\ME.xls"
  12. If Ex Is Nothing Then
  13. Set Ex = CreateObject("Excel.Application") 'Запускаем Excel
  14. Ex.Workbooks.Open App.Path & "\ME.xls"
  15. End If
  16. Ex.WindowState = xlMinimized
  17. Ex.Visible = True
  18. Command2.Enabled = True
  19. Command4.Enabled = True
  20. Command1.Enabled = False
  21. Screen.MousePointer = vbDefault
  22. End Sub
  23. Private Sub Command2_Click() 'Включает таймер
  24. Timer1.Interval = 1000
  25. Tr = Val(2) * 60
  26. Command3.Enabled = True
  27. Command2.Enabled = False
  28. End Sub
  29. Private Sub Timer1_Timer()
  30. 'If Tr = 0 Then Cop
  31. 'Tr = Tr - 1
  32. End Sub
  33. Private Sub Command3_Click()
  34. 'Выключает таймер и выполнение "макроса"
  35. Command2.Enabled = True
  36. Command3.Enabled = False
  37. End Sub
  38. Private Sub Command4_Click() 'Сохранение и закрыттие Excel, выход из программы
  39. Screen.MousePointer = vbHourglass
  40. Ex.Workbooks(1).Save
  41. Ex.Application.Quit
  42. Set Ex = Nothing
  43. Command1.Enabled = True
  44. Command2.Enabled = False
  45. Command3.Enabled = False
  46. Command4.Enabled = False
  47. Screen.MousePointer = vbDefault
  48. End
  49. End Sub
  50. Private Sub Cop()
  51. '-----------------------------------------
  52. 'Как правильно написать код из макроса VBA
  53. '-----------------------------------------
  54. Screen.MousePointer = vbHourglass
  55. 'Windows("ME.xls").Activate
  56. 'Range("B2").Select
  57. 'Selection.Copy
  58. 'Range("B1").Select
  59. 'ActiveSheet.Paste
  60. 'Range("B3").Select
  61. 'Application.CutCopyMode = False
  62. 'Selection.Copy
  63. 'Range("B2").Select
  64. 'ActiveSheet.Paste
  65. 'Range("B4").Select
  66. 'Application.CutCopyMode = False
  67. 'Selection.Copy
  68. 'Range("B3").Select
  69. 'Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  70. ' :=False, Transpose:=False
  71. 'Range("C1").Select
  72. 'Application.CutCopyMode = False
  73. Screen.MousePointer = vbDefault
  74. End Sub
Excel.rar

Решение задачи: «Как в программу VB вставить код записанный из VBA Excel?»

textual
Листинг программы
  1. Private Const MAX_COMPUTERNAME_LENGTH As Long = 31
  2. Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
  3. Private Sub Form_Load()
  4.     Dim dwLen As Long
  5.     Dim strString As String
  6.     'создаем буфер
  7.    dwLen = MAX_COMPUTERNAME_LENGTH + 1
  8.     strString = String(dwLen, "X")
  9.     'получаем имя компьютера
  10.    GetComputerName strString, dwLen
  11.     'get only the actual data
  12.    strString = Left(strString, dwLen)
  13.     'показываем имя компьютера
  14.    MsgBox strString
  15. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.625 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы