Друзья, такая проблема возникла: В xlam внедрено несколько файлов. Если xlam переименовать в zip, то видно, что они находятся в папке customUI\images\ Для каждого файла в xml прописан id. Вопрос: как программно достать нужный файл и поместить в ячейку активного листа, если это текстовый файл, или поместить на листе картинку, если это графический файл, или добавить листы, если это xls-файл? Ничего подобного я не нашел. Помогите пожалуйста.
Друзья, такая проблема возникла: В xlam внедрено несколько файлов. Если xlam переименовать в zip, то видно, что они находятся в папке customUI\images\ Для каждого файла в xml прописан id. Вопрос: как программно достать нужный файл и поместить в ячейку активного листа, если это текстовый файл, или поместить на листе картинку, если это графический файл, или добавить листы, если это xls-файл? Ничего подобного я не нашел. Помогите пожалуйста.bvg7
Пройтись по листам, а в них по всем объектам и, если картинка то что-то с ней сделать.
Не совсем понятно мне, ведь эти файлы не помещались на листы. Или при внедрении файлов в xlam они размещаются на листах? Так устроено в excell? Можете привести пример кода?
Пройтись по листам, а в них по всем объектам и, если картинка то что-то с ней сделать.
Не совсем понятно мне, ведь эти файлы не помещались на листы. Или при внедрении файлов в xlam они размещаются на листах? Так устроено в excell? Можете привести пример кода?bvg7
Пройтись по листам, а в них по всем объектам и, если картинка то что-то с ней сделать.
Попробовал, как Вы сказали:
Цитата
Dim s As String s = "" For Each obj In ThisWorkbook.Sheets If obj.Type = xlWorksheet Then Dim sh As Worksheet: Set sh = obj Else GoTo Next1 End If For Each lo In sh.ListObjects Dim o As ListObject: Set o = lo s = s & sh.Name & " -- " & "; " & o.Name Next Next1: Next MsgBox s
Пройтись по листам, а в них по всем объектам и, если картинка то что-то с ней сделать.
Попробовал, как Вы сказали:
Цитата
Dim s As String s = "" For Each obj In ThisWorkbook.Sheets If obj.Type = xlWorksheet Then Dim sh As Worksheet: Set sh = obj Else GoTo Next1 End If For Each lo In sh.ListObjects Dim o As ListObject: Set o = lo s = s & sh.Name & " -- " & "; " & o.Name Next Next1: Next MsgBox s
Вы пошли не верной дорогой. Создайте в надстройке лист,назовите его файлы.Через вставить объект внедрите в лист любые файлы. Только после этого получите доступ к внедренным файлам. Для чтения этих файлов понадобится бубен шамана.
Вы пошли не верной дорогой. Создайте в надстройке лист,назовите его файлы.Через вставить объект внедрите в лист любые файлы. Только после этого получите доступ к внедренным файлам. Для чтения этих файлов понадобится бубен шамана.doober
Сообщение отредактировал doober - Пятница, 29.12.2017, 16:55
Практически бубен подсказал, как документ ворда найти.[vba]
Код
Private Sub Works() Dim shsp As Shape For Each shsp In ActiveSheet.Shapes If shsp.Type = msoEmbeddedOLEObject Then Set OLE = shsp.OLEFormat.Object If OLE.progID = "Word.Document.12" Then Set WD = OLE.Object 'Получили документ Word End If End If Next End Sub
[/vba]
Практически бубен подсказал, как документ ворда найти.[vba]
Код
Private Sub Works() Dim shsp As Shape For Each shsp In ActiveSheet.Shapes If shsp.Type = msoEmbeddedOLEObject Then Set OLE = shsp.OLEFormat.Object If OLE.progID = "Word.Document.12" Then Set WD = OLE.Object 'Получили документ Word End If End If Next End Sub