Я хотел бы иметь немодальную пользовательскую форму, которая при загрузке отображает уменьшенное изображение на основе имени файла, найденного в данном столбце активной строки электронной таблицы. Основным мотивом для меня является возможность просматривать сканы отдельных марок в моей коллекции марок, которые я каталогизировал в книге Excel и которые хранятся в папке на моем компьютере.
Я искал решения здесь и на других веб-сайтах и пришел к следующему образцу кода, который делает более или менее то, что я хочу, но он немного неуклюжий, и я надеялся на некоторые предложения по его улучшению. Следующее должно работать при вставке в окно кода пользовательской формы, содержащей командную кнопку и элемент управления изображением в стандартной макрокоманде Excel, при условии, что вы измените имя файла моего изображения на действительное имя файла изображения на компьютере, который вы используете для запустите это:
Private Sub UserForm_Initialize()
Image1.Visible = False
Me.Picture = LoadPicture("C:\Users\Geoff\Documents\stamps\images\US_1207_37862.jpg")
End Sub
Private Sub CommandButton1_Click()
With Image1
.AutoSize = False
.Picture = LoadPicture("C:\Users\Geoff\Documents\stamps\images\US_1207_37862.jpg")
.AutoSize = True
UserForm1.Height = (.Height / 2)
UserForm1.Width = (.Width / 2)
.Picture = Nothing
End With
UserForm1.PictureSizeMode = fmPictureSizeModeZoom
UserForm1.PictureAlignment = fmPictureAlignmentCenter
End Sub
Когда вы запускаете форму, скажем, набрав «userform1.show» в ближайшем окне, изображение отображает то, что когда-либо случайная часть вписывается в любой случайный размер, который вы создали форму. Когда вы нажимаете командную кнопку, код использует элемент управления изображением, чтобы определить ширину и высоту изображения, обрезает эти значения пополам и соответственно изменяет размеры формы, а также использует два свойства, перечисленных выше, чтобы масштабировать и центрировать изображение, чтобы оно соответствовало размеру. форма. Пример кода события CommandButton1_Click - это то, что я предполагаю добавить в событие Worksheet_SelectionChange моей электронной таблицы, содержащей мой каталог марок и список имен файлов, а также условие для обхода кода, если форма не видна, и т. Д. Спасибо, что нашли время для Посмотрите на это и для любых комментариев, которые вы можете предложить мне.