[AccessD] Run Excel From Within Access

Charlotte Foust charlotte.foust at gmail.com
Sun May 27 15:15:56 CDT 2012


CreateObject isn't intended to just open a file. There are much easier
ways. It's there for when you need to manipulate the file. I use it to open
an excel template, trigger the macro that imports an xml file into multiple
ranges, and then save the workbook as macro-free without getting into the
Excel app itself.

Charlotte Foust

On Sun, May 27, 2012 at 12:40 PM, Stuart McLachlan
<stuart at lexacorp.com.pg>wrote:

> And how many additional lines of code are required in addition to that
> line which sets the
> variable - each time you want to  open a file?
>
> The  one line ShellExecute() (plus the  once per application Declare)
> isn't meant to, and does
> not "automate" Excel..  It just *opens* any type of file which has an
> associated application.
>
> IMNSHO,  CreateObject() is absolutely the hardest way to display a file I
> have ever seen
> implemented.
>
> --
> Stuart
>
> On 27 May 2012 at 13:54, William Benson wrote:
>
> > Absolutely the hardest way to automate excel I have ever seen
> implemented!
> >
> > Just set a variable = Createobject("Excel.Application") and control Excel
> > through that.
> > On May 26, 2012 10:57 PM, "Stuart McLachlan" <stuart at lexacorp.com.pg>
> wrote:
> >
> > > I use it all the time.  It works for all office files regardless of
> what
> > > version of office is installed
> > > and whether it in on x32 or x64 Windows . Similarly,  for opening PDFs,
> > > image/media files etc
> > > because the user may have any one of many different applications as
> their
> > > default viewer.
> > >
> > > --
> > > Stuart
> > >
> > > On 26 May 2012 at 22:28, Arthur Fuller wrote:
> > >
> > > > Thanks, Stuart! ShellExecute worked like a charm.
> > > > A.
> > > >
> > > > On Sat, May 26, 2012 at 10:13 PM, Stuart McLachlan
> > > > <stuart at lexacorp.com.pg>wrote:
> > > >
> > > > > You need to quote the program path because it has spaces in it.
> > > > >
> > > > >  Application.RunQQ( "C:\Program Files (x86)\Microsoft
> > > > > Office\Office11\Excel.exe") & " "  & strFile
> > > > >
> > > > > Alternatively, use ShellExecute() and you don't need to worry
> about the
> > > > > path to Excel on the
> > > > > machine you are running on.
> > > > >
> > > > >
> > > > > Public Declare Function ShellExecute Lib "SHELL32.DLL" Alias
> > > > > "ShellExecuteA" (ByVal
> > > > > hwnd As Long, ByVal lpOperation As String, _
> > > > >       ByVal lpFile As String, ByVal lpParameters As String, ByVal
> > > > > lpDirectory As String, ByVal
> > > > > nShowCmd As Long) As Long
> > > > >
> > > > > ...
> > > > > ShellExecute Application.hWndAccessApp, "Open", strFile, "", "",
> > > > > vbNormalFocus
> > > > >
> > > > >
> > > > > --
> > > > > Stuart
> > > > >
> > > > >
> > > > >
> > > > --
> > > > AccessD mailing list
> > > > AccessD at databaseadvisors.com
> > > > http://databaseadvisors.com/mailman/listinfo/accessd
>
>
> > > > Website: http://www.databaseadvisors.com
>
>
> > > >
> > >
> > > --
> > > Stuart McLachlan
> > >
> > > Ph:    +675 340 4392
> > > Mob: +675 7100 2028
> > > Web: http://www.lexacorp.com.pg
>
>
> > >
> > > --
> > > AccessD mailing list
> > > AccessD at databaseadvisors.com
> > > http://databaseadvisors.com/mailman/listinfo/accessd
>
>
> > > Website: http://www.databaseadvisors.com
>
>
> > >
> > --
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/accessd
>
>
> > Website: http://www.databaseadvisors.com
>
>
> >
>
> --
> Stuart McLachlan
>
> Ph:    +675 340 4392
> Mob: +675 7100 2028
> Web: http://www.lexacorp.com.pg
>
>
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
>
>
> Website: http://www.databaseadvisors.com
>
>
>


More information about the AccessD mailing list