Я знаю, что подобные вопросы часто возникают, но я почти на месте, просто не хватает некоторых дополнительных функций.
Описание идеи -
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
Это многообещающе, но оно только помещает изображение в рабочий лист. Нет предварительного просмотра в пользовательской форме, ни возможность изменить его / удалить его вообще. Любая помощь?