• ベストアンサー
  • 困ってます

Shell関数を使って、ファイル名を指定して開くこ

オフィス2003です。 Sub サンプル1() Dim strExcelPath As String strExcelPath = "C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE" Shell strExcelPath, 1 End Sub なら空のエクセルアプリケーションが開けます。 でも、 Sub サンプル2() Dim strExcelPath As String strExcelPath = "D:\ファイル.xls" Shell strExcelPath, 1 End Sub だと、 “プロシージャの呼び出し、または引数が不正です。“ と言うエラーになります。 Shell関数を使って、ファイル名を指定して開くことはできないのでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1057
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.2
  • okormazd
  • ベストアンサー率50% (1224/2411)

"ファイル.xls"は実行ファイルではなく、データファイルなので、Shellでは開けません。 Excelで開くなら、引数にこのファイルを当てて、 strExcelPath = "C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE D:\ファイル.xls" Shell strExcelPath, 1 でしょう。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。

関連するQ&A

  • vba pdfを手前に開きたい  Shell

    Sub Sample() Dim myFile As String myFile = "C: \test.pdf" Shell """C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe"" " & myFile End Sub vbaからこれでPDFファイルを開くことができるのですが アクセスの後ろで開いてしまいます。 このコードを実行したら、開いたPDFファイルを画面の手前に表示したいので 何を付け足せばいいのでしょうか?

  • 開いたときの位置を指定する事は可能ですか?

    Sub Sample() Dim myFile As String myFile = "C:\Program Files (x86)\" Shell "C:\Windows\Explorer.exe " & myFile, vbNormalFocus End Sub これでフォルダを起動させているのですが 開いたときの位置を指定する事は可能ですか? TOP=0 など、IE操作の様に画面に対する位置を指定したいのですが どうすればいいでしょうか?

  • 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

その他の回答 (1)

  • 回答No.1
  • notnot
  • ベストアンサー率47% (4677/9836)

strExcelPath = "cmd.exe /c start D:\ファイル.xls" でどうでしょうか。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。

関連するQ&A

  • pdfをvbaで開いて、さらにサイズを指定する

    pdfをvbaで開いて、さらにサイズを指定することは可能ですか? Sub Sample() Dim myFile As String myFile = "C:\\問い合わせ.pdf" Shell """C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe"" " & myFile End Sub これでPDFを開くことは出来るのですが 縦横、高さ、幅を指定したいのですが、可能ですか?

  • shell関数を使ってる事になりますか?

    Function test() Dim objsample As Object Set objsample = CreateObject("Shell.Application") objsample.FindFiles '検索画面を表示させます。 Set objsample = Nothing '開放します End Function このサンプルは、shell関数を使ってる事になりますか? 「Shell.Application」がshell関数なのか教えてください。

  • 実行時エラー 5 ファイル名の書き出し

    これはどういう意味のエラーなのでしょう? Const FolderName As String = "C:\Users" Sub ファイル名を書き出す() Dim myFile As String myFile = Dir(FolderName & "\*.*", vbDirectory) Do While myFile <> "" Debug.Print myFile myFile = Dir Loop End Sub このようにしてフォルダの中のファイル名を書き出していますが ある特定のファイル名になると、myFile = Dirの部分で、 実行時エラー 5 プロシージャーの呼び出し、または引数が不正 が発生します。 ファイル名をただ読み込んでるだけなのに、どうしてエラーが発生するのでしょうか?

  • レジストリエディタを起動させて手前に表示させたい

    VBE画面から Sub test() Dim i As Long i = Shell("C:\WINDOWS\regedit.exe") End Sub を実行するとレジストリエディタを起動できるのですがアクティブ(前画面)になりません。 Sub test() Dim i As Long i = Shell("C:\WINDOWS\regedit.exe") AppActivate i End Sub これにしたも同じく全画面になりません。 ただ、一度起動した後に再度このコードを実行すると、 プロシージャの呼び出し、または引数が不正です。(Error 5) と言うエラーになりますが、1回目に開いたレジストリエディタがアクティブになります。 vbaコードで起動だけではなく、手前に表示させるにはどうすればいいですか?

  • Excel2003 VBA Shell関数について

    AフォルダにあるZipファイルを検索し、そのファイルを解凍ソフトで開きBフォルダに解凍するマクロを作成中です。解凍ソフト自体に保存先フォルダを設定していますので、Bフォルダは関係ありません。 ---------------------------- Sub AAA Dim ksDir As String Dim ktExe As String Dim fName As String Dim i As Long  Const KTS As String = ".zip"  ksDir = "\\xxx.xxx.xxx.xxx\A\"  fName = Dir (ksDir & "*" KTS , vbNormal)   Do While fName = <> ""   Shell "\\xxx.xxx.xxx.xxx\C\解凍ソフト.exe ktDir & fName"    i = i + 1    nName = Dir Loop End Sub -------------------------- 「Shell "\\xxx.xxx.xxx.xxx\C\解凍ソフト.exe ktDir & fName"」の”ktDir & fName”の部分に実在する ファイルのパスを入れるとうまくいきますが、変数を入れて処理するとうまくいきません。 どこか間違いがある、又は他によい記述のしかたがあれば教えてください。 よろしくお願いします。

  • エクセルVBAでPDFを開く

    以下のような記述でアクロバットリーダーは立ち上がるのですが、 「この文書を開くときにエラーが発生しました。このファイルが見つかりません」 と出てきてしまいます。 どのようにしたら開いてくれるのでしょうか? Sub test3() Dim P As String P = "\\C:\AAA\sample.PDF" Shell "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe" & " " & P, vbNormalFocus End Sub

  • EXCEL VBA で他のアプリケーションを開く方法について

    EXCEL VBAで他のアプリケーションを開く方法について教えていただきたいことがあります。 現在開いているエクセルのブックと同じフォルダにある、"AAA"という名称のsqc形式のファイル(EAST社のSkyLink Ver9.0のコマンドファイルです)をVBAで開く。 SHELL関数で開くと思っていたのですが、 Sub Test() Dim MyPath As String, MyTask As Double MyPath = ActiveWorkbook.Path & "\" MyTask = Shell(MyPath & "AAA.sqc") SendKeys "%FO", True End Sub とすると 「プロシージャの呼び出し、または引数が不正です」 というメッセージが出てしまいます。 如何せんSHELL関数を使うのが初めてでして、色々調べても どうしても解決策にたどり着きません。 どうぞよろしくお願いいたします。

  • 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.net2005を使っているのですが 関数の引数に変数をセットして、別関数で 引数に対してデータをセットすることは可能でしょうか? C言語でいうところのポインタを引数に渡し ポインタアドレスに書き込むような処理はVB.netでは 可能なんでしょうか? 下記のような事は試したのですが、うまく出来ませんでした(。。; public sub test1() dim mojiretu as string test2( mojiretu ) msgbox(mojiretu) end sub public sub test2( str as string) str = "文字列" end sub

  • ¥(パスセパレーター)について

    vbaでフォルダを開くコードを作ってるのですが、 パスの最後の¥(パスセパレーター)はあってもなくてもいいのでしょうか? Sub test() Dim myFile As String myFile = "C:\Program Files (x86)\" Shell "C:\Windows\Explorer.exe " & myFile, vbNormalFocus End Sub これでも、 myFile = "C:\Program Files (x86)" でも問題なく開けます。 myFile = "C:\" でも myFile = "C:" でもエラーにならないし、フォルダが開けました。 ¥がない場合は、自動でvbaが付けてくれてるのでしょうか? そもそもフォルダのパスを指定する際は、¥は要らないのでしょうか?