
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関数を使うのが初めてでして、色々調べても
どうしても解決策にたどり着きません。
どうぞよろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
こんにちは。
>SHELL関数で開くと思っていたのですが、
たぶん、読み違えたのだと思います。Shell でファイルを開くというのは、全部で3つの種類があります。それぞれ使い方が違います。ご質問に書かれているShell は、Excelの内部から呼び出す、つまり、Excelの配下からの呼び出しですから、ファイル名を指定しても、それを起動するソフトは分かりません。
一旦、Excelから降りてあげないといけないのですが、しかし、その方法が、通常2つの種類あります。ひとつは、Win OSからと、コマンドラインからと二種類あります。(厳密には、Win32APIなど、後二つあります。)
使いやすい方法は以下の方法ですが、拡張子が登録していることと、OS によって、その挙動が変わるはです。若干、エキスプローラからクリックしたものとは違うようです。
'-------------------------------------------
Sub TestSehll_1()
Dim objSh As Object
Dim myPath As String
Dim fn As String
'-------------------------------------------
fn = "AAA.sqc"
myPath = ActiveWorkbook.Path & "\" & fn
'-------------------------------------------
If Dir(fn) = "" Then
MsgBox "ファイルがありません。", 48
Exit Sub
End If
With CreateObject("Shell.Application")
.ShellExecute myPath
End With
''SendKeys "%FO", True 'これは、どうかな?
End Sub
なお、SkyLink というソフトの仕様を読んでみないけれども、検索すると、そのソフト名と同時に、Excel マクロという名前が出てきます。もしも、オートメーションを想定したソフトである場合は、このように外部から動かそうとはせずに、もっと確実な方法があるかもしれません。
ありがとうございます!
コードの内容はからない部分もありますが、とりあえず教えていただいた方法をそのまま使ったら動きました。
SkyLinkはキーボードの割付も多く、オートメーションを想定しているソフトだと思うのですが、自分がエクセルとアクセス以外の知識については極端に乏しくて困っておりました。
教えていただいたコードをこれから色々いじくってみて勉強します。
また何かありましたらよろしくお願いいたします。
No.2
- 回答日時:
Shellで直接指定するのはEXE形式のアプリケーションです。
ペイントで「C:\1,jpg」を開くには以下のように
Shell "アプリケーションへのフルパス+名前" "開きたいファイルのフルパス+名前"
とします。
Sub test()
Dim P As String
P = "C:\1.jpg"
Shell "C:\WINDOWS\system32\mspaint.exe" & " " & P, vbNormalFocus
End Sub
EAST社のSkyLinkのプログラム本体がどのような名前、どこに格納されているのかは、SkyLinkのショートカットのプロパティ等で確認できるかと思います。
No.1
- 回答日時:
ありがとうございます。
教えていただいたURLで基本的なことを勉強します。昨日一晩かけて一応調べたのですが、どうも基本的なことが理解できていないみたいで堂々巡りでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
exeファイルの中身を見ることは...
-
jlbという拡張子のファイルを開...
-
windowsでpkgファイルを開きた...
-
拡張子 「LPD」って なにで編...
-
拡張子 .lhdはどのようなソフト...
-
IOOファイルを ISOファイルに...
-
inddという拡張子ファイルを開...
-
Docuworksで文書の一括回転操作...
-
動画ファイルにパスワードをつ...
-
PDFファイルへ一括でヘッダ...
-
lhdは何の拡張子でしょ?
-
Win10でショートカットファイル...
-
mdsファイルを開くにはどうすれ...
-
aviutlで編集をしているのです...
-
拡張子がpxd開きたい
-
ゲームからCGを抽出
-
xdwの拡張子ファイルの開き方教...
-
リンク先のファイルを一括ダウ...
-
いきなりPDFでPDF化できない
-
2つのBMPファイルを1つに纏め...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
exeファイルの中身を見ることは...
-
jlbという拡張子のファイルを開...
-
windowsでpkgファイルを開きた...
-
拡張子 .lhdはどのようなソフト...
-
inddという拡張子ファイルを開...
-
既存のプログラムで拡張子HPGの...
-
Docuworksで文書の一括回転操作...
-
txtファイルから特定の文字列が...
-
拡張子がpxd開きたい
-
ファイル検索ソフトEverything ...
-
拡張子 「LPD」って なにで編...
-
mdsファイルを開くにはどうすれ...
-
FileVisorは今でも使えますか?
-
BOX(ファイル共有)でエクセル...
-
IOOファイルを ISOファイルに...
-
動画ファイルにパスワードをつ...
-
リンク先のファイルを一括ダウ...
-
「pdf_as」というフリーソフト...
-
数個のWord、Excelファイルを上...
-
xdwの拡張子ファイルの開き方教...
おすすめ情報