Как экспортировать изображение из imagebox в пользовательской форме в ячейку (и очистить его при необходимости) - PullRequest
0 голосов
/ 05 июля 2019

Я знаю, что подобные вопросы часто возникают, но я почти на месте, просто не хватает некоторых дополнительных функций.

Описание идеи -

1: пользователь выбирает файл изображения через пользовательскую форму, нажимая кнопку CommandButton. Изображение заполняет поле изображения в пользовательской форме, поэтому у пользователя есть предварительный просмотр изображения, которое они помещают.

2: в случае ошибки пользователь может стереть этот файл и загрузить новый (для стирания есть еще одна кнопка CommnadButton)

3: при нажатии третьей кнопки изображение экспортируется на активный лист вместе с остальными вставленными данными.

Что у меня сейчас:

Sub ChangeImage()
With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = False
    .ButtonName = "Submit"
    .Title = "Select an image file"
    .Filters.Clear
    .Filters.Add "JPG", "*.JPG"
    .Filters.Add "JPEG File Interchange Format", "*.JPEG"
    .Filters.Add "Graphics Interchange Format", "*.GIF"
    .Filters.Add "Portable Network Graphics", "*.PNG"
    .Filters.Add "Tag Image File Format", "*.TIFF"
    .Filters.Add "All Pictures", "*.*"

    If .Show = -1 Then
        Dim img As Object
        Set img = ActiveSheet.Pictures.Insert(.SelectedItems(1))

        'Scale image size
        'img.ShapeRange.ScaleWidth 0.75, msoFalse, msoScaleFromTopLeft
        'img.ShapeRange.ScaleHeight 0.75, msoFalse, msoScaleFromTopLeft

        'Position Image
        img.Left = 50
        img.Top = 50

        'Set image sizes in points (72 point per inch)
        img.Width = 150
        img.Height = 150
    Else
        MsgBox ("Cancelled.")
    End If
End with
End sub

Это многообещающе, но оно только помещает изображение в рабочий лист. Нет предварительного просмотра в пользовательской форме, ни возможность изменить его / удалить его вообще. Любая помощь?

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