Я создаю пользовательскую форму vba в Word. Теперь я работаю над функцией, которая позволяет пользователю просматривать файл изображения, загружать его в элемент управления Image в пользовательской форме и отображать путь к файлу в текстовом поле (вид функции предварительного просмотра изображения, который также позволяет пользователю напрямую изменять файл на редактирование текстового поля). С помощью я понял, код, необходимый для одной кнопки «Browse» следующим образом:Вставка изображения в пользовательскую форму в VBA
Private Sub btnBrowse1_Click()
Dim fd As FileDialog
Dim strPicPath1 As String
Dim vrtSelected As Variant
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.AllowMultiSelect = False
If .Show = -1 Then
For Each vrtSelected In .SelectedItems
AutoReport.txtboxPicPath1.Text = vrtSelected
strPicPath1 = vrtSelected
AutoReport.Image1.Picture = LoadPicture(strPicPath1)
Next vrtSelected
Else: Exit Sub
End If
End With
End Sub
Однако, как я около 8 из этих кнопок Обзора, я хочу «обобщать» процесс, написав процедуру так что я могу просто назвать это вместо того, чтобы писать ту же структуру, в 8 раз, что-то вроде этого:
Sub FormLoadPicture(TxtboxToFill As TextBox, ImageBox As Image, objForm As Object)
Dim fd As FileDialog
Dim vrtSelected As Variant
Dim PicPath As String
Dim i As Long
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.AllowMultiSelect = False
If .Show = -1 Then
For Each vrtSelected In .SelectedItems
objForm.TxtboxToFill.Text = vrtSelected
PicPath = vrtSelected
objForm.ImageBox.Picture = LoadPicture(PicPath)
Next vrtSelected
Else: Exit Sub
End If
End With
End If
Next i
End Sub
Когда я называю его (т.е. FormLoadPicture (txtboxPicPath2, Image2, меня), он дал мне «Синтаксическая ошибка». Я подозреваю, что я пишу код для ссылки на неправильный контроль формы, но я не знаю, что должно быть правильно.
Спасибо @KeKuSemau. Я новичок-самоучка, поэтому в настоящий момент это пробная версия и ошибка. Я думал, что ссылки на элементы управления формами будут такими же, как и для закладок в документе. Это прояснило это для меня, спасибо снова –