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.1
- 回答日時:
ありがとうございます。
教えていただいたURLで基本的なことを勉強します。昨日一晩かけて一応調べたのですが、どうも基本的なことが理解できていないみたいで堂々巡りでした。
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.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はキーボードの割付も多く、オートメーションを想定しているソフトだと思うのですが、自分がエクセルとアクセス以外の知識については極端に乏しくて困っておりました。
教えていただいたコードをこれから色々いじくってみて勉強します。
また何かありましたらよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
exeファイルの中身を見ることは...
-
jlbという拡張子のファイルを開...
-
windowsでpkgファイルを開きた...
-
拡張子 .lhdはどのようなソフト...
-
BOX(ファイル共有)でエクセル...
-
mdsファイルを開くにはどうすれ...
-
Docuworksで文書の一括回転操作...
-
ビューワー(ファイル閲覧ソフ...
-
拡張子.hocのファイルを見る方法
-
ボイスチェンジャーのソフト 削除
-
拡張子がpxd開きたい
-
相手先の方がPDFを開けません
-
動画ファイルにパスワードをつ...
-
MIYONさん作のファイル比...
-
ISOファイルとMDSファイ...
-
数個のWord、Excelファイルを上...
-
2つのBMPファイルを1つに纏め...
-
拡張子.binの画像ファイルの開...
-
ファイル検索ソフトEverything ...
-
irvineの連番機能とは
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
exeファイルの中身を見ることは...
-
jlbという拡張子のファイルを開...
-
windowsでpkgファイルを開きた...
-
拡張子 .lhdはどのようなソフト...
-
BOX(ファイル共有)でエクセル...
-
mdsファイルを開くにはどうすれ...
-
txtファイルから特定の文字列が...
-
inddという拡張子ファイルを開...
-
相手先の方がPDFを開けません
-
ファイル検索ソフトEverything ...
-
FileVisorは今でも使えますか?
-
Docuworksで文書の一括回転操作...
-
拡張子 「LPD」って なにで編...
-
Win10でショートカットファイル...
-
動画ファイルにパスワードをつ...
-
拡張子arcを開く
-
拡張子がpxd開きたい
-
リンク先のファイルを一括ダウ...
-
拡張子.hocのファイルを見る方法
-
ISOファイルとMDSファイ...
おすすめ情報