- ベストアンサー
ACCESSで他のアプリケーションを開く
今日、三度目の質問です。(^^; ACCESS2000で、例えばコマンドAというボタンをクリックすると、C:\hirake.xls を開く方法は、ありますか? よろしく、お願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Call Shell("C:\Program Files\Microsoft Office\Office10EXCEL.EXE C:\hirake.xls", 3) EXCEL.EXEが存在するファイルはOSやソフトによって違いそうなので検索して探してください。
その他の回答 (3)
- ryuu001
- ベストアンサー率61% (46/75)
コマンドのプロパティに書式があります。 そこのハイパーリンクアドレスに C:\hirake.xls と設定します。 なぜか皆さんは この回答に不満を持ちますが、 一番簡単で良いと思うのですが???
お礼
>なぜか皆さんは この回答に不満を持ちますが、 拡張性がないからでしょうか??? ありがとうございました。
> 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 が返ります。
お礼
ありがとうございました。何かありましたら、またよろしくお願いします。
- onp
- ベストアンサー率23% (70/301)
Shell関数で、まず、EXCEL自身、続けて対象となるファイルを同じくフルパスで指定します。 RET_VAL = Shell("C:\Program Files\Microsoft Office\Office\excel.exe -r " & Me![パス], 1) Me![パス]に私のPGではファイル名がフルパスで入ってきます。 専門サイトに行けば、サンプル沢山ありますよ。 私は下記サイトをよく利用しています。
- 参考URL:
- http://www.accessclub.jp/
お礼
ご推奨のサイトに行ってみました。「お気に入り」に入れて、これから参考にします。 ありがとうございました。
お礼
大変助かりました。 ありがとうございました。