Поместите изображения каждой многостраничной страницы в таблицу программно - PullRequest
0 голосов
/ 29 марта 2019

У меня есть пользовательская форма Excel с многостраничным элементом управления, содержащая в настоящее время 9 страниц.Каждая страница содержит информацию о сборке для конкретного компонента с размерами, введенными пользователем.У меня есть изображение, вставленное на каждую страницу, показывающее дизайн каждого компонента и текстовые поля в верхней части изображения, которые пользователь вводит в пользовательские измерения для производственных расчетов.Все, что я хочу сделать, это создать файлы изображений на основе определенной структуры имен, которые могут быть связаны с несколькими ячейками в Excel.Например, я хотел бы, чтобы пользователь сохранял пользовательскую форму, чтобы изображения каждого многостраничного представления были названы и помещены в определенные ячейки на листе.Имена должны соответствовать уникальному идентификатору, который я использую с суффиксом, чтобы я мог переключаться между проектами на странице своего проекта, и изображения для каждого компонента будут меняться в зависимости от имени.У меня настроена страница проекта, и я могу справиться с переключателем. Мне нужна помощь в циклическом переборе многостраничных страниц, создании файлов изображений для части каждой страницы и сохранении в определенном месте.

Спасибо за помощь!

Option Explicit

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const VK_SNAPSHOT = 44
Const VK_LMENU = 164
Const KEYEVENTF_KEYUP = 2
Const KEYEVENTF_EXTENDEDKEY = 1


Private Sub CommandButton2_Click()
  Dim pdfName As String

  keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY, 0
  keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0
  keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
  keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0

  DoEvents  'Otherwise, all of screen would be pasted as if PrtScn rather than Alt+PrtScn was used for the copy.

  ThisWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count)
  ActiveSheet.PasteSpecial Format:="Bitmap", Link:=False, DisplayAsIcon:=False

  pdfName = ActiveWorkbook.Path & "\" & Me.Name & " " & Format(Now, "yyyy-mmm-dd") & ".pdf"
  'Debug.Print pdfName
  ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=pdfName, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=False, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

  Worksheets(Worksheets.Count).Delete

  Unload Me
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...