
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 12:54
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/02 11:48
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
exeファイルの中身を見ることは...
-
jlbという拡張子のファイルを開...
-
windowsでpkgファイルを開きた...
-
既存のプログラムで拡張子HPGの...
-
拡張子 .lhdはどのようなソフト...
-
Docuworksで文書の一括回転操作...
-
ALB⇒JPEGへの変換
-
重複したファイルを検索、削除...
-
デジタルカメラで撮影した写真...
-
mdsファイルを開くにはどうすれ...
-
ファイル検索ソフトEverything ...
-
txtファイルから特定の文字列が...
-
数個のWord、Excelファイルを上...
-
動画ファイルの詳細
-
監視ツールを入れさせられまし...
-
二つの.wavを同時再生するよう...
-
「pdf_as」というフリーソフト...
-
覚えが無く怪しい動きのSandboxie
-
ボイスチェンジャーのソフト 削除
-
類似ファイル名の抽出
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
exeファイルの中身を見ることは...
-
jlbという拡張子のファイルを開...
-
windowsでpkgファイルを開きた...
-
拡張子 .lhdはどのようなソフト...
-
inddという拡張子ファイルを開...
-
Docuworksで文書の一括回転操作...
-
リンク先のファイルを一括ダウ...
-
BOX(ファイル共有)でエクセル...
-
ファイル検索ソフトEverything ...
-
拡張子 「LPD」って なにで編...
-
txtファイルから特定の文字列が...
-
Win10でショートカットファイル...
-
FileVisorは今でも使えますか?
-
拡張子がpxd開きたい
-
動画ファイルにパスワードをつ...
-
数個のWord、Excelファイルを上...
-
mdsファイルを開くにはどうすれ...
-
TSファイルを劣化無くMPEG4にす...
-
拡張子.hocのファイルを見る方法
-
CDのimgからcue作成
おすすめ情報