Sub InsertPicUsingShapeAddPictureFunction() Dim profile As String On Error Resume Next Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .Filters.Clear .Filters.Add "Picture Files", "*.bmp;*.jpg;*.gif;*.png" .ButtonName = "Select" .AllowMultiSelect = False .Title = "Choose Photo" .InitialView = msoFileDialogViewDetails .Show End With With ActiveSheet.Range("D2") ActiveSheet.Shapes.AddPicture Filename:=fd.SelectedItems(1), _ LinkToFile:=msoFalse, _ SaveWithDocument:=msoCTrue, _ Left:=.Left + 2, _ Top:=.Top + 2, _ Width:=.Width, _ Height:=.Height End With End Sub
[/vba]
Так нужно?
[vba]
Код
Sub InsertPicUsingShapeAddPictureFunction() Dim profile As String On Error Resume Next Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .Filters.Clear .Filters.Add "Picture Files", "*.bmp;*.jpg;*.gif;*.png" .ButtonName = "Select" .AllowMultiSelect = False .Title = "Choose Photo" .InitialView = msoFileDialogViewDetails .Show End With With ActiveSheet.Range("D2") ActiveSheet.Shapes.AddPicture Filename:=fd.SelectedItems(1), _ LinkToFile:=msoFalse, _ SaveWithDocument:=msoCTrue, _ Left:=.Left + 2, _ Top:=.Top + 2, _ Width:=.Width, _ Height:=.Height End With End Sub
Только обратите внимание, что если несколько раз вставлять картинки, то предыдущая не удаляется и в итоге получится, что у Вас в ячейке будет куча картинок, наложенных друг на дружку Вот так попробуйте [vba]
Код
Sub InsertPicUsingShapeAddPictureFunction() Dim profile As String On Error Resume Next Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .Filters.Clear .Filters.Add "Picture Files", "*.bmp;*.jpg;*.gif;*.png" .ButtonName = "Select" .AllowMultiSelect = False .Title = "Choose Photo" .InitialView = msoFileDialogViewDetails .Show End With With ActiveSheet.Range("D2") For Each as_ In ActiveSheet.Shapes If as_.Left = .Left + 2 Then as_.Delete Exit For End If Next as_ ActiveSheet.Shapes.AddPicture Filename:=fd.SelectedItems(1), _ LinkToFile:=msoFalse, _ SaveWithDocument:=msoCTrue, _ Left:=.Left + 2, _ Top:=.Top + 2, _ Width:=.Width, _ Height:=.Height End With End Sub
[/vba]
Только обратите внимание, что если несколько раз вставлять картинки, то предыдущая не удаляется и в итоге получится, что у Вас в ячейке будет куча картинок, наложенных друг на дружку Вот так попробуйте [vba]
Код
Sub InsertPicUsingShapeAddPictureFunction() Dim profile As String On Error Resume Next Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .Filters.Clear .Filters.Add "Picture Files", "*.bmp;*.jpg;*.gif;*.png" .ButtonName = "Select" .AllowMultiSelect = False .Title = "Choose Photo" .InitialView = msoFileDialogViewDetails .Show End With With ActiveSheet.Range("D2") For Each as_ In ActiveSheet.Shapes If as_.Left = .Left + 2 Then as_.Delete Exit For End If Next as_ ActiveSheet.Shapes.AddPicture Filename:=fd.SelectedItems(1), _ LinkToFile:=msoFalse, _ SaveWithDocument:=msoCTrue, _ Left:=.Left + 2, _ Top:=.Top + 2, _ Width:=.Width, _ Height:=.Height End With End Sub
_Boroda_, Подскажите пожалуйста, если надо вставить фото в Ячеку D2 и в ячеку E2, F2, G2. Что бы выбирал ячейку и потом нажимал вставить фото и фотка вставлялась в выбранную ячейку. Как это реализовать ?
_Boroda_, Подскажите пожалуйста, если надо вставить фото в Ячеку D2 и в ячеку E2, F2, G2. Что бы выбирал ячейку и потом нажимал вставить фото и фотка вставлялась в выбранную ячейку. Как это реализовать ?Gopronotmore
_Boroda_, да спасибо болошьшое. А у меня вопрос. Мы прописываем строгий диапазон ячеек. А можно как-то от него отойти ? Или всегда нужно будет его прописывать ?
_Boroda_, да спасибо болошьшое. А у меня вопрос. Мы прописываем строгий диапазон ячеек. А можно как-то от него отойти ? Или всегда нужно будет его прописывать ?Gopronotmore
надо вставить фото в Ячеку D2 и в ячеку E2, F2, G2
А теперь отойти нужно Держите. Кстати, теперь можно выделять несколько ячеек, вставлять картинку будет в левую верхнюю И да, в предыдущем файле (если будете им пользоваться) раскомментируйте строку [vba]
надо вставить фото в Ячеку D2 и в ячеку E2, F2, G2
А теперь отойти нужно Держите. Кстати, теперь можно выделять несколько ячеек, вставлять картинку будет в левую верхнюю И да, в предыдущем файле (если будете им пользоваться) раскомментируйте строку [vba]
_Boroda_, спасибо большое. Просто я думал, запросив в выбранную ячейку, смогу исправить код, что бы в каждую вмещалась картинка. Но нет не получилось! Спасибо большое!
_Boroda_, спасибо большое. Просто я думал, запросив в выбранную ячейку, смогу исправить код, что бы в каждую вмещалась картинка. Но нет не получилось! Спасибо большое!Gopronotmore