ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Exporting embedded OLE objects to file (https://www.excelbanter.com/excel-programming/333793-exporting-embedded-ole-objects-file.html)

[email protected]

Exporting embedded OLE objects to file
 
I have an Access database embedded in my Excel spreadsheet as an OLE
(created by going to Insert Object... Create from File). How would
I now export this embedded OLE to an independent mdb file?

The process for doing it right now is to simply click on the OLE with
the mouse and copying it to clipboard in Excel. Then, I go to Windows
Explorer and click Paste. (Windows has an internal way of streaming the
copied OLE object in the clipboard to an actual file!)

Is there any macro to simulate this? Specifically, the hard part is
pasting in Windows Explorer.


[email protected]

Exporting embedded OLE objects to file
 
Extra info:

(Methods I've tried, unsucessful)

One way in which I did it was to copy the OLE to the clipboard then go
to the File Open window. Then sendkeys tab to the white file part,
sendkeys Ctrl+V to paste the file. This works, but the sendkeys is
unreliable.

Another way I tried was to copy the the OLE to clipboard then use API
on Windows Explorer. I tried running RunMenuByString (common example
function found online) but for some reason the API will not work in
Windows Explorer, it did work in Notepad (?). Is Windows Explorer
protected somehow from API calls?


okaizawa

Exporting embedded OLE objects to file
 
Hi,
Here is an exsample:

Sub Test()
'copy oleobject
ActiveSheet.OLEObjects("Object 1").Copy

'paste to activeworkbook's path
CreateObject("Shell.Application") _
.Namespace(ActiveWorkbook.Path) _
.Self.InvokeVerb "Paste"
End Sub

InvokeVerb Method
http://msdn.microsoft.com/library/en...invokeverb.asp

--
HTH
okaizawa

wrote:
Extra info:

(Methods I've tried, unsucessful)

One way in which I did it was to copy the OLE to the clipboard then go
to the File Open window. Then sendkeys tab to the white file part,
sendkeys Ctrl+V to paste the file. This works, but the sendkeys is
unreliable.

Another way I tried was to copy the the OLE to clipboard then use API
on Windows Explorer. I tried running RunMenuByString (common example
function found online) but for some reason the API will not work in
Windows Explorer, it did work in Notepad (?). Is Windows Explorer
protected somehow from API calls?


[email protected]

Exporting embedded OLE objects to file
 
What about pasting the object with a particular filename? With the code
given, the object is pasted correctly. However, by default, the
filename used in the pasting is the filename that was specified during
the Insert Object Create from File process (initial insert of the
object).

(For explicit example: If the path for Insert Object Create from
File is C:\av.mdb, the output will be always been av.mdb when I use
your code)

Is there anyway to change this default filename used in the paste?

If not, is there anyway to get the current "file source" (filename) of
an OLE object?

okaizawa wrote:
Hi,
Here is an exsample:

Sub Test()
'copy oleobject
ActiveSheet.OLEObjects("Object 1").Copy

'paste to activeworkbook's path
CreateObject("Shell.Application") _
.Namespace(ActiveWorkbook.Path) _
.Self.InvokeVerb "Paste"
End Sub

InvokeVerb Method
http://msdn.microsoft.com/library/en...invokeverb.asp

--
HTH
okaizawa

wrote:
Extra info:

(Methods I've tried, unsucessful)

One way in which I did it was to copy the OLE to the clipboard then go
to the File Open window. Then sendkeys tab to the white file part,
sendkeys Ctrl+V to paste the file. This works, but the sendkeys is
unreliable.

Another way I tried was to copy the the OLE to clipboard then use API
on Windows Explorer. I tried running RunMenuByString (common example
function found online) but for some reason the API will not work in
Windows Explorer, it did work in Notepad (?). Is Windows Explorer
protected somehow from API calls?




All times are GMT +1. The time now is 02:02 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com