Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2015, 13:42   #1
Romario371
Пользователь
 
Аватар для Romario371
 
Регистрация: 12.03.2015
Сообщений: 15
Восклицание Внедрение OLE объекта с выпадающим окном выбора файла

Проблема в том что с помощью макроса получается записать только вставку OLE объекта только по указанию адреса:
Sub Макрос1()
ActiveSheet.OLEObjects.Add(Filename := _
"C:\Users\ChernohlebovRV\Desktop\DS C_0047.jpg", Link:=False, DisplayAsIcon _
:=True, IconFileName:= _
"C:\Program Files (x86)\Internet Explorer\iexplore.exe", IconIndex:=0, _
IconLabel:="C:\Users\ChernohlebovRV \Desktop\DSC_0047.jpg").Select
End Sub
Подскажите, пожалуйста, как сделать чтобы по кнопке выпадало окно для выбора файла?
Romario371 вне форума Ответить с цитированием
Старый 12.03.2015, 13:56   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Application.FileDialog(msoFileDialogFilePicker).show
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 12.03.2015, 14:55   #3
Romario371
Пользователь
 
Аватар для Romario371
 
Регистрация: 12.03.2015
Сообщений: 15
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Код:
Application.FileDialog(msoFileDialogFilePicker).show
Егор, спасибо большое за ответ. Только вот при использовании данного кода макрос выдает "вставка объекта неосуществима" не подскажете что может припятствовать?
Макрос выглядит так:
Sub Макрос2()
'
' Макрос2 Макрос
'

'
ActiveSheet.OLEObjects.Add(Applicat ion.FileDialog(msoFileDialogFilePic ker).Show, Link:=False, _
DisplayAsIcon:=True, IconFileName:="C:\Windows\system32\ packager.dll", _
IconIndex:=0, IconLabel:="").Select
End Sub

Последний раз редактировалось Romario371; 12.03.2015 в 15:25.
Romario371 вне форума Ответить с цитированием
Старый 12.03.2015, 15:31   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

препятствовать может то, что
Код:
Application.FileDialog(msoFileDialogFilePicker).Show
возвращает -1 или 0, которые Вы пытаетесь впихнуть в коллекцию ОЛЕ-обьектов активного листа

посмотрите в справке как пользоваться
Код:
Application.FileDialog(msoFileDialogFilePicker)
, там все понятно написано
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 12.03.2015, 15:36   #5
Romario371
Пользователь
 
Аватар для Romario371
 
Регистрация: 12.03.2015
Сообщений: 15
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
препятствовать может то, что
Код:
Application.FileDialog(msoFileDialogFilePicker).Show
возвращает -1 или 0, которые Вы пытаетесь впихнуть в коллекцию ОЛЕ-обьектов активного листа

посмотрите в справке как пользоваться
Код:
Application.FileDialog(msoFileDialogFilePicker)
, там все понятно написано
Спасибо) В справке на нашем форуме?
Romario371 вне форума Ответить с цитированием
Старый 12.03.2015, 15:42   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

в редакторе ВБА, есть поле куда можно вписать вопрос, достаточно этого:
msoFileDialogFilePicker

удачи!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 12.03.2015, 16:12   #7
Romario371
Пользователь
 
Аватар для Romario371
 
Регистрация: 12.03.2015
Сообщений: 15
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
в редакторе ВБА, есть поле куда можно вписать вопрос, достаточно этого:
msoFileDialogFilePicker

удачи!
Егор, я походу тупой. Скажите, пожалуйста, есть возможность сделать макрос для выбора файла, который можно внедрить как Оле-объект?

Я не очень силен в программировании((
Romario371 вне форума Ответить с цитированием
Старый 12.03.2015, 16:29   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Function ChoiceFile() As String
  With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = False
'    .Filters.Add "ÎáüåìÏðîäàæ", "*.xls*", 1:  .FilterIndex = 1
    .Title = "Это заголовок окна"
'    .InitialFileName = ThisWorkbook.Path
    If .Show = -1 Then
      ChoiceFile = .SelectedItems(1)
    End If
  End With
End Function

sub Test
  msgbox ChoiceFile
end sub
ChoiceFile - вернет полное имя файла или пустую строку (если ничего не выбрать)
имя файла получили - используйте как вам нужно
например
Код:
ActiveSheet.OLEObjects.Add(Filename := ChoiceFile, Link:=False, ....
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 12.03.2015, 16:40   #9
Romario371
Пользователь
 
Аватар для Romario371
 
Регистрация: 12.03.2015
Сообщений: 15
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Код:
Function ChoiceFile() As String
  With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = False
'    .Filters.Add "ÎáüåìÏðîäàæ", "*.xls*", 1:  .FilterIndex = 1
    .Title = "Это заголовок окна"
'    .InitialFileName = ThisWorkbook.Path
    If .Show = -1 Then
      ChoiceFile = .SelectedItems(1)
    End If
  End With
End Function

sub Test
  msgbox ChoiceFile
end sub
ChoiceFile - вернет полное имя файла или пустую строку (если ничего не выбрать)
имя файла получили - используйте как вам нужно
например
Код:
ActiveSheet.OLEObjects.Add(Filename := ChoiceFile, Link:=False, ....
Ого го, спасибо)) wm ru работает?
Romario371 вне форума Ответить с цитированием
Старый 12.03.2015, 17:14   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

да, работает)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заливка цветом с выпадающим окном staniiislav Microsoft Office Excel 4 05.10.2011 12:48
Тип вывода OLE объекта: значек или содержимое gg9 Microsoft Office Access 1 17.09.2011 22:59
Scrolling Ole объекта Рик Компоненты Delphi 0 14.03.2011 12:19
Как узнать тип (класс) OLE Automation объекта? Stilet Win Api 2 02.07.2010 09:07
Прокрутка Ole объекта Gagens Общие вопросы Delphi 0 16.04.2010 10:39