• ベストアンサー

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

  • Accessのマクロについて教えてください。

    WinXP Access2002です。 現在Accessのあるフォームにコマンドボタンを貼り付けこのボタンをクリック時にマクロでアプリケーションの実行を指定しExcelのファイルを開いています。具体的には c:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE10\EXCEL.EXE D:\EXCEL\AAAY\BBB.XLS です。D:\以下はExcelで作ったファイルの格納場所です。現在これでうまくいっています。 この場合BBB.xlsしか立ちあがりません。これはこれでBBB.xlsだけで用が足りているので何ら問題ないのですがやろうとしていることは¥AAAのホルダーに入っている複数のCCC.xls、DDD.xls・・・・・・等をマクロの途中ダイアログボックス等で仮に今ほしいファイルがXXX.XLSだったとしたら目的のXXX.xlsを指定し開く方法がありますでしょうか。 又これが駄目ならマクロで¥AAAのホルダーまで開く方法はあるのでしょうか。何せAccessのマクロでExcelは立ちあがりますが沢山のホルダーがあるので一歩でも自動で近づきたいのです。方法がありましたらよろしく教えてください。

  • アクセスVBAでエクセルを操作するのは不可能でしょうか?

    アクセスVBAでエクセルを操作するのは不可能でしょうか? テスト.xlsのシート1の1行目コピーして テーブルに追加するということがしたいのですがどういうコードを書けばいいのか分かりません。 テスト.xlsは開いている状態です。 アクセス側のユーザーフォーム上のコマンドボタンをクリックしたらこの動作を実行するコード。。。 というのは不可能でしょうか?よろしくお願い致します。

  • ACCESS2000でファイルを削除

    こんにちは。 よろしくお願いいたします。 ACCESS2000のVBAを使って、例えば、コマンドボタンAというボタンを押すと、C:\SAKUZYO.csvというファイルを削除する方法ってありますか? おわかりの方がいらっしゃりましたら、ご教授願います。

  • Access VBA 他アプリケーション

    Accessのフォームから他アプリケーションを起動するボタンをつくります。 起動したアプリケーションの入力フォームへ、Accessのフォームのテキストボックスの内容を書き込む事はできないでしょうか? 例えば、Accessのフォームに『OKWave』と入力されたテキストボックスと、ブラウザが開くボタンが配置されているとします。ボタンをクリックするとブラウザが起動し、起動したら任意の検索サイトが表示され、そのサイトのフォームに、Accessのフォームのテキストボックスにかかれている、『OKWave』が自動的に入力するようなVBAを書きたいと思います。 よろしくお願いします。

  • ACCESS2000でファイルをコピー

    こんにちは。 よろしくお願いいたします。 コマンドAボタンをクリックすると、c:\faileA\copy.csvをc:\faileBにコピーまたは、移動をする方法はありますでしょうか? どうかご教授ください。

  • アクセスと起動する。

    フォームにコマンドボタンを配置しクリックすることによって オフィスのアクセスの「A」と言うデーターベースを起動し同時にVisual Basicで作成した(コマンドボタンを配置した)フォームを最小化にしたいのです。 宜しくお願い致します。

  • ACCESS フォームについて

    お世話になっております。 ACCESSのフォームについてのご質問ですが、 2つのフォーム『fm_A』と『fm_B』があり、 fm_A・・・テキストボックス・コマンドボタン fm_B・・・テキストボックス・コマンドボタン グローバル変数一つ があります。 fm_Aのコマンドボタンをクリックすると、fm_Bが開き、fm_Bが開いているときはfm_Aに戻れなくしようとしております。 fm_Bのテキストボックスへ文字をいれ、fm_Bのコマンドボタンをクリックするとグローバル変数へその内容を保存。 保存後fm_Bが閉じてそのグローバル変数をfm_Aのテキストボックスへ入れる。 上記の作業をしようとおもったのですが、どうすればいいのかわかりません。 VB6の場合はform.showを使ってオプションで固定を使えば出来たのですが・・・ よろしくお願いします。

  • ACCESSからEXCELの特定のファイル呼び出し

    ACCESSのメインフォームからコマンドボタンとマクロを使ってEXCELの特定のファイル(デスクトップ上にある顧客情報.xls)を参照したいのですが、EXCELを起動するところまでは出来ますが、このファイルが開けません。マクロのコマンドラインの記述がわかっていないようです。素人ですのでどなたか教えてください。 現在、コマンドラインには下記のように記述しています。 c:\Program Files\Microsoft Office\Office10\excel.exe \顧客情報.xls 記述のどこが違っているのでしょうか?ちなみに、顧客情報.xlsは C:\Documents and Settings\Administrator\デスクトップ  にあるとファイルには書いてありますが、この記述を全て書いてもエラーが出ます。 WINDOWS XP  ACCESS2002 EXCEL2002 を使用しております。 どなたかお教えください。よろしくお願い致します。

  • Access2010エクスポートしたい

    Microsoft Access2010 選択クエリデータをEXCEL2010にエクスポートしたいMicrosoft Access2010は高齢者で初心者なので分かりやすい表現で教えて下さい、フォーム上にコマンドボタンを設置しています、コマンドボタンクリック時、EXCEL2010 sheet1 A4を起点にエクスポートしたい 宜しくお願い致します。

  • Accessで簡単なアプリケーションを作っています。

    Accessで簡単なアプリケーションを作っています。 サブフォーム内のコントロールをダブルクリックした時に、フォームAを表示し、 入力した条件で別のフォームBを表示するというものです。 判らないのが、フォームAを表示した時に、フォームAにフォーカスが移らない(Activeにならない) ということです。 サブフォームをダブルクリックした時のイベントに DoCmd.OpenForm "フォームA" Forms!フォームA.フィールドY = Forms!元フォーム.フィールドX としていますが、その最後に、 DoCmd.SelectObject acForm, "フォームA" や Forms!フォームA!フィールドY.SetFocus などと追加してみたりしましたが、同じです。 ためしに、ダブルクリックでなく、クリックイベントにしてみると、フォーカスが移ります。 つまり、一旦移ったフォーカスがダブルクリックの2度目のクリックで、元のフォームに 移っているという当たり前といえば当たり前の動作のようです。 クリックでは都合が悪いので、ファンクションキーに割り当てればOKなのでしょうが、 これは仕方のないものなのでしょうか? (以前のAccessはこんな動作をしなかったような気がするのですが、CPUが早くなったせい なのでしょうか?)

このQ&Aのポイント
  • インクを交換しても、青色が出ないというトラブルについて相談します。
  • お使いのブラザー製品(DCP-J572N)のインクを交換したのですが、青色が出ない問題が発生しています。
  • パソコンやスマートフォンのOSや接続方法など、お使いの環境についても詳しく教えてください。
回答を見る

専門家に質問してみよう