• ベストアンサー

ACCESSで他のアプリケーションを開く

今日、三度目の質問です。(^^; ACCESS2000で、例えばコマンドAというボタンをクリックすると、C:\hirake.xls を開く方法は、ありますか? よろしく、お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#7099
noname#7099
回答No.3

Call Shell("C:\Program Files\Microsoft Office\Office10EXCEL.EXE C:\hirake.xls", 3) EXCEL.EXEが存在するファイルはOSやソフトによって違いそうなので検索して探してください。

Fujjy
質問者

お礼

大変助かりました。 ありがとうございました。

その他の回答 (3)

  • ryuu001
  • ベストアンサー率61% (46/75)
回答No.4

コマンドのプロパティに書式があります。 そこのハイパーリンクアドレスに C:\hirake.xls と設定します。 なぜか皆さんは この回答に不満を持ちますが、 一番簡単で良いと思うのですが???

Fujjy
質問者

お礼

>なぜか皆さんは この回答に不満を持ちますが、 拡張性がないからでしょうか??? ありがとうございました。

noname#4564
noname#4564
回答No.2

> ACCESS2000で、例えばコマンドAというボタンをクリックすると、C:\hirake.xls を開く方法は、ありますか? (1) Shell関数 (2) Win32APIのShellExecute のどちらかを使います。 (1)の使い方は下記の要領です。   Dim strCmd As String      strCmd = ""      If Len(Environ("OS")) <> 0 Then     'NT系の場合     strCmd = Environ("ComSpec") & " /C START"   Else     '9x系の場合     strCmd = "START"   End If      strCmd = strCmd & " Excel ""C:\hirake.xls"""      Call Shell(strCmd, vbHide) (2)の使い方は下記の要領です。 Option Explicit '拡張子に関連付けられたプログラムを実行 Declare Function ShellExecute Lib "SHELL32" _          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 Public Const SW_HIDE      As Long = 0   'vbHide       0  フォーカスを持ち、非表示にされるウィンドウ Public Const SW_SHOWNORMAL   As Long = 1   'vbNormalFocus   1  フォーカスを持ち、元のサイズと位置に復元されるウィンドウ Public Const SW_SHOWMINIMIZED  As Long = 2   'vbMinimizedFocus  2  フォーカスを持ち、最小化表示されるウィンドウ Public Const SW_SHOWMAXIMIZED  As Long = 3   'vbMaximizedFocus  3  フォーカスを持ち、最大化表示されるウィンドウ Public Const SW_MAXIMIZE    As Long = 3   'SW_SHOWMAXIMIZEDと同じ Public Const SW_SHOWNOACTIVATE As Long = 4   'vbNormalNoFocus  4  最後にウィンドウを閉じたときのサイズと位置に復元されるフォーカスを持たないウィンドウ。現在アクティブなウィンドウは、アクティブのままです。 Public Const SW_SHOW      As Long = 5   ' Public Const SW_MINIMIZE    As Long = 6   ' Public Const SW_SHOWMINNOACTIVE As Long = 7   'vbMinimizedNoFocus 6  最小化表示されるフォーカスを持たないウィンドウ。現在アクティブなウィンドウは、アクティブのままです。 Public Const SW_SHOWNA     As Long = 8   ' Public Const SW_RESTORE     As Long = 9   'SW_SHOWNORMALと同じ Public Const SW_SHOWDEFAULT   As Long = 10   Dim lngRet As Long      lngRet = ShellExecute(Application.hWndAccessApp, _              "open", _              "C:\hirake.xls", _              vbNullString, _              CurDir$, _              SW_SHOWMAXIMIZED) ShellExecuteの実行に失敗(関連付けられたアプリケーションがない場合)すると、0x1F が返ります。

Fujjy
質問者

お礼

ありがとうございました。何かありましたら、またよろしくお願いします。

  • onp
  • ベストアンサー率23% (70/301)
回答No.1

Shell関数で、まず、EXCEL自身、続けて対象となるファイルを同じくフルパスで指定します。 RET_VAL = Shell("C:\Program Files\Microsoft Office\Office\excel.exe -r " & Me![パス], 1) Me![パス]に私のPGではファイル名がフルパスで入ってきます。 専門サイトに行けば、サンプル沢山ありますよ。 私は下記サイトをよく利用しています。

参考URL:
http://www.accessclub.jp/
Fujjy
質問者

お礼

ご推奨のサイトに行ってみました。「お気に入り」に入れて、これから参考にします。 ありがとうございました。

関連するQ&A