• ベストアンサー

ACCESSからEXCEL起動時、パス名は短い名前でないといけないの?

yarazuの回答

  • yarazu
  • ベストアンサー率36% (4/11)
回答No.6

No.1です。APIの宣言が必要です。 Public Declare Function GetShortPathName Lib "kernel32" _ Alias "GetShortPathNameA" _ (ByVal lpszLongPath As String, _ ByVal lpszShortPath As String, _ ByVal cchBuffer As Long) As Long

nozomi300k
質問者

お礼

ありがとうございました。 この方法も簡単そうなので、また使ってみたいと思います。

関連するQ&A

  • エクセルのフルパスをvbaで取得

    当方エクセル2003で、 エクセルのフルパスは C:\Program Files\Microsoft Office\OFFICE11\ EXCEL.EXE です。 それをVBAで取得するにはどうすればいいですか? Sub サンプル() Debug.Print 'オフィスがインストールされているフォルダのパスの取得 End Sub のようにして、 C:\Program Files\Microsoft Office\OFFICE11\ EXCEL.EXE を返したいです。 VBAコードをご教示ください。

  • Access2000vbaで、shell関数で起動させたExcellを終了する方法を教えてください。

    Access2000vbaで、shell関数で起動させたExcellを終了する方法を教えてください。 以下のように、shell関数で、既存のExcelファイルを起動させました。 どうすれば、Excelファイルを終了できますか? 宜しくお願いします。 Dim fl_name As String fl_name = "C:\XE2.xls" Shell "C:\Program Files\Microsoft Office\Office\EXCEL.EXE " & fl_name, vbNormalFocus

  • VBからExcelクローズ検知

    VBで作成したaaa.exeの中でエクセルファイルbbb.xls、ccc.xlsを呼び出しています。 taskIdB = Shell("C:\Program Files\Microsoft Office\Office10\excel.exe C:\bbb.xls", vbHide) taskIdC = Shell("C:\Program Files\Microsoft Office\Office10\excel.exe C:\ccc.xls", vbHide) bbb.xls、ccc.xlsともにWorkbook_Openイベントで自動的にVBAが起動し、処理が終了すると自分自身を クローズするようになっています。 ここで問題になるのが、ccc.xls は bbb.xlsの処理完了を待ってから起動したいのですが、連続的に起動してしまう点です。 aaa.exeのなかで、bbb.xlsの終了を検知するなど、良い解決方法があればお教え下さい。 WindowsはXp pro.、VBは6.0、Excelは2002を使用しています。 よろしくお願いいたします。

  • AppActivateの使い方

    現在開いているエクセルファイルをアクティブにしたいです。 バージョンは2003です。 アクセスVBAから Sub test() Dim rc As Long rc = Shell("C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE", 1) AppActivate "aaa.xls" End Sub を実行すると、 新規にアプリケーションが開いて、空のBOOK1が表示されます。 本当は、aaa.xlsをアクティブにしたいのですがうまく出来ません。 aaa.xlsは既に開いている状態です。 aaa.xlsはデスクトップにあります。 http://officetanaka.net/excel/vba/statement/AppActivate.htm を見ながらやってみたのですがうまく出来ません。 新たなアプリケーションは立ち上げたくないけど aaa.xlsはアクティブにしたいです。

  • VBからExcelが起動しません

    Excelファイルを開くプログラムをVBで作成したのですが 1つのパソコンだけ実行時エラー5が発生してExcelを起動できません どなたかお助けください プログラムはこんなかんじです WKPATH = "D:\Program Files\Microsoft Office\Office\EXCEL.EXE " & " c:\a.xls" exl = Shell(WKPATH, 1) ちなみにエラーが発生するパソコンはNT4.0sp6です

  • Excelのハイパーリンクで絶対パスが動作しない

    こちらで同類の質問を見つけましたが解決に至っていなかったので質問させていただきます。 当方、Excel2000を使用しています。 サーバー上にある共有フォルダ(Jドライブ)の同じフォルダの中に「A.xls」とリンク参照先のファイル「B.xls」があります。 「A.xls」のセルに、「B.xls」を開くためのハイパーリンクを、絶対パス(J:\フォルダ名\B.xls)で指定しました。 しかし、「A.xls」を例えばローカルドライブ(Cドライブ)のデスクトップにコピーし、そちらを開いてハイパーリンクをクリックすると、Jドライブにある「B.xls」を開きたいのに、ハイパーリンクが相対パスに変わってしまって、デスクトップ上のB.xlsを探してしまうため「ファイルが見つかりません」と表示されてしまいます。 [ハイパーリンクの編集]で確認したところ、「ファイル名またはWebページ名」欄には絶対パス「J:\フォルダ名\B.xls」を指定したはずなのに「J:\フォルダ名\」の部分が消えてしまい、「B.xls」というファイル名しか残っていませんでした。 Microsoftサポート情報『JP418119:以前のバージョンでハイパーリンクが開けない』の原因欄に『参照元と参照先が同じドライブの場合、ファイルを保存した時点で相対パスに変更されます。』とあったので、システムの仕様なのかもしれませんが、同一フォルダ内にあるファイルでも絶対パスの情報を保持する方法はないでしょうか。 デスクトップにある「A.xls」でハイパーリンクを設定すれば、「B.xls」と別フォルダのためか絶対パスが保持されるのですが、「A.xls」は最終的には「B.xls」と同じフォルダ内に保存しておきたいので、いちいちコピーするのはなるべく避けたいため、同一フォルダ内でも絶対パスの指定を保持する方法を教えてください。

  • Accessフォームからの外部アプリ起動方法

    お世話になります。 掲題の件、Accessのフォームからボタンをクリックし、 外部アプリケーション(たとえばExcel等)を起動する ことは可能でしょうか? 起動可能であればどのようなVBA記述をしたら良いか 教えて頂けたら幸いです。 [作成環境] 起動ボタン名: 起動 Excelのパス :  C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE 以上、宜しくお願い致します。

  • エクセルでパスを含んだファイル名

    エクセルのヘッダー・フッター編集で ワードのように"パスを含んだファイル名"(またはシート名)を 自動?で挿入することはできるでしょうか。 例えば、Cドライブの「あ」と言うフォルダーに保存してある テスト.xlsの「い」と言うシート名をヘッダーに挿入したい 場合、 C:\あ\テスト.xls\い と言うようにです。 ご教授をお願いいたします。

  • セルのファイルを起動したい

    セルに入っているファイル名を開きたいと考えています。 ファイル名はパス付きで入っています。 拡張子が.docの時はワードで、.xlsの時はエクセルで、.pdfの時はアクロバットで、その他該当するアプリケーションを立ち上げてそのファイルを開き、そしてパス名だけの時はエクスプローラで該当ディレクトリを開きたいと思っています。 拡張子を見てワード、エクセル、アクロバットまでは立ち上げるVBAまでは出来ました。 エクスプローラが分かりません。 どなたか教えていただけないでしょうか。 またファイル名が入っている場合、現在は直接アプリケーションを起動するやり方をとっていますが、拡張子から自動的に適切なアプリを立ち上げることはできないでしょうか。 よろしくお願い申し上げます。 現在の方法: Sub test() Shell "C:\Program Files\Microsoft Office\OFFICE11\WinWord.exe " & _ "c:\test.doc", vbMaximizedFocus End Sub

  • バッチファイル エクセル起動

    いつも大変御世話になっております。 WindowsVISTA環境で以下バッチ【ABC.bat】が稼動します。 "ABC.bat"------------------------------------------------- "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" "F:\EXCEL_OPEN\ABC.xls" echo %ERRORLEVEL% pause "ABC.bat"------------------------------------------------- 上記バッチの構文について3点質問があります。 (1)OS等が変わった場合、EXCEL.EXEの格納パスも変更するので   当然変更しなければいけないのでしょうか? (2)上記バッチを起動する前に他のエクセルを開いていた場合(例えばDEF.xls)、  ABC.xlsとDEF.xlsを両方閉じなければバッチの後続処理が動きません。  ABC.xlsだけ閉じてバッチの後続処理を動かす事は可能なのでしょうか? (3)上記構文でエクセル(マクロ)からエラーレベルを取得できるのでしょうか?  ※上記バッチで開くエクセルは開いたら自動でマクロが動きます。 もしご存知の方がいらっしゃるようでしたら、ご教授願いますでしょうか? 以上、何卒宜しくお願い致します。