• 締切済み

Excelで他のプログラムから戻りたい

Shellの前に(Web画面&為替取引会社の取引画面)に切り替えるにはVBAでどのようにすればいいですか Shell("c:\UWSC44\UWSC.exe c:\UWSC44\test.UWS") この後でExcelに戻るにはVBAでどのように記載すれば良いですか? VBA初心者ですよろしくお願いします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

補足: >Shellの前に(Web画面&為替取引会社の取引画面)に切り替えるにはVBAでどのようにすればいいですか こちらは忘れていました。ただ、全体的に、見直す必要があるような気がしますね。 基本的に、Shellで、立ち上げたものの制御というと、VBAでは、あまり得意ではないので、UWSC ならUWSCで、一本で制御していくような形のほうがやりやすいのではないかと思います。 VBAの場合は、画面自体はあまり重要ではありません。オブジェクトを取得して、そのオブジェクトの中のデータを取り出すという方法をしますが、かなりVBAが慣れていないと、そんなに簡単にはできません。 //IE をアクティベートする IEID = GETID("Internet Explorer") Ifb IEID > 0 then   CtrlWin(IEID, ACTIVATE) //IE画面をアクティベートする endif

saab8743
質問者

お礼

UWSCはあまり判りませんので勉強します。 早々ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 VBAでは、  AppActivate Application.Caption とかすればよいのですが、 >Shell("c:\UWSC44\UWSC.exe c:\UWSC44\test.UWS") としているなら、test.UWS でも可能なはずです。 UWSC のヘルプは分かりやすいので、良く読めば出てきます。以下のように、UWSスクリプトに加えれば、Excel側に戻ります。 なかなか、このUWSCは、良く出来ていますね。 XLID = GETID("Microsoft Excel") Ifb XLID < 0 then   Fukidasi("Excelは起動されていません", 50, 50, 1, 9, "MS 明朝")   Sleep(5)   Fukidasi() Else   CtrlWin(XLID, ACTIVATE) //Excel画面をアクティベートする endif

関連するQ&A

  • Exselでパスの書き方を教えてください

    基本的な質問で申し訳ないのですがプロシージャに慣れてないのでよろしくお願いします。 ExselからUWSCを実行したいのですが C:UWSC44フォルダー置きその中に Login_AA.UWS のファイルがあります。 Private Sub Worksheet_Change(ByVal Target As Range) If Range(Target.Address).Value = 1 Then   Shell("c:\UWSC44.UWSC\Login_AA.UWS", 1) End If End Sub こうしたのですがファイルがありませんと出ますパスの入れ方はどうすればいいのでしょうか *単独ではUWSを実行するとOKです。

  • windows10 拡張子が追加できない

    https://www.ipentec.com/document/windows-registry-add-extension-relation 上記の方法でレジストリエディタから.uwsというキーを追加しました。 https://www.vector.co.jp/soft/winnt/util/se115105.html 追加したいのはuwscというwindowsの自動化ソフトです。 以下上記のURLのままですが、実際にやった手順です。 レジストリエディタを開いてHKEY_LOCAL_MACHINE\Software\Classes以下に.uws/shell/open/commandを作成し、値をUWSC.exeにしました。 値はUWSCのプロパティで確かめてるので間違いないと思います。「C:\Users\name\Desktop\UWSC.exe 」 一応再起動もしてみましたが、やはり反映されません。 何かご存知でしたらご教示ください。よろしくお願いします。

  • エクセルから 外部プログラムを起こす

    WIN8 の ディスクトップアイコンの プロパティーの記述が 以下の通りですが "C:\Program Files (x86)\MarketSpeed\MLauncher\MLauncher.exe" RSS これを、エクセルから起こしたいのですが、上手くゆきません。 rc = Shell("c:\Program Files (x86)\MarketSpeed\MLauncher\MLauncher.exe", vbMinimizedNoFocus, "RSS") RSS,EXE が ホルダーは変わりますが 存在します。これが、引数だと思うのですが エラーが出ます。引数が不一致、もしくは不正なプロパティー が出ます。 ところが、このRSSコマンドもいい加減というか ダイレクトに叩いて起動かけることも出来る様で、その利用プログラムに不自由は出ないのです じゃあ f = "c:\Program Files (x86)\MarketSpeed\MarketSpeed\RSS.exe" Shell f, vbHide  でも 同じようなエラーが出ます。 RSSを 引数にする方法が間違っているのかもしれません。 何か お気づきの点があれば よろしくどうぞ

  • ショートカットのリンク先と作業用フォルダ

    こんにちは。Windows XPのショートカットについてお教え下さい。 ショートカットを見ると「リンク先」というものと「作業用フォルダ」というものがあります。 「リンク先」は大元のファイルのパスが書かれているのはわかります。 よくわからないのが、リンク先に、 "C:\Program Files\UWSC.exe" "C:\Documents and Settings\test\デスクトップ\test.uws" "メモ帳" "おはよう<#TAB>元気してた?<#CR>" といったリンクが書かれていた場合は、何を表しているのでしょうか? また、「作業用フォルダ」も何をするところかわかりません。 平たく言うとどういったことに使うのでしょうか?

  • VBAのSHELLを用いてEXEファイルを起動したものの、微妙にうまくいかない

    エクセルのVBAのshellを用いて、exeファイルを起動させてました。 exeファイルはCを用いたシンプルなもので、テキストファイルを作成します。(ソースは下記参照) C:\testのディレクトリにエクセルファイルを作成し、 Shell "C:\test\test.exe" を実行させたところ、ファイルはC:\testのディレクトリに出来ずに、マイドキュメントに出来ました。 このexeファイルを直接ダブルクリックしたときは、C:\testのディレクトリにテキストファイルが作成されます。 ダブルクリックしたときと同じように、C:\testのディレクトリにテキストファイルを作成する方法があれが教えてください。 よろしくおねがいします。 (ソース、hello.txtというファイルをつくり、hello!を書く) main( ) { FILE *fp; /* ファイルポインタ */ fp = fopen( "hello.txt", "w"); fprintf(fp,"hello!\n"); fclose(fp); return 0; }

  • VBAでEXEファイルを動かす方法について

    エクセルのVBAをつかってC++で作ったexeファイルを起動させるプログラムを書きたいと思いますが、うまくいきません。 プログラムは下記です。 Sub Macro1() Shell ("C:\test.exe") End Sub エラーは出ないのですが、計算をしません。 ・VBEの参照設定のmicrosft scripting runtimeはクリックいれてます。 ・test.exe自体はクリックすると起動して計算します。 もし、対応策をご存知なら教えていただければ助かります。 よろしくお願いします。

  • 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関数を使うのが初めてでして、色々調べても どうしても解決策にたどり着きません。 どうぞよろしくお願いいたします。

  • VBA Shell関数 

    エクセルVBA shell関数でプログラムを立ち上げ (DOSプロンプト画面が起動) そのあとに、続けてDOSプロンプトにコマンドと"Sheet1のA1"のセルに入力してある文字を打ち込みたいのですが上手くいかなく困っています。 どのようにしたらよいのでしょうか。 以下のように記述しています。 (初心者です) ------------------------------------ Sub ShellSamp1() Dim myID As Double   myID = Shell("C:\****\*****\*****.EXE & " & cd C:\Documents and Settings & " & Range("A1").Value & """") End Sub ------------------------------------

  • ☆EXCELのVBAから他のアプリケーション起動方法☆

    初めての試みをしていまして、戸惑っています。 EXCELのマクロでLHA.EXEを呼び出したいのですが・・・ 呼び出せるかどうかもわかりません。 いろいろな参考書などを拝見しましたが、載っていませんでした。 上記が可能ならぜひとも教えていただきたくお願い致します。 できれば、VBAの記載方法などがありましたら宜しくお願い致します。

  • VBAで外部プログラムを非表示で実行するには

    VBAとVBScriptを混同しているのかもしれませんがよく分からないので教えてください。 Excel2010のVBAから、外部プログラム(test.exe)をコマンドプロンプトを非表示の状態で実行して、外部プログラムの実行が終了するのを待ってから、次の処理をさせたいのですが、test1のプログラムでは(A)の部分でエラーになってしまいます。また、test2のプログラムでは正しく実行されるのですがコマンドプロンプトのウインドウを非表示にする方法がよく分かりません。 test1のプログラムでエラーをでなくする方法、または、test2のプログラムでコマンドプロンプトのウインドウを非表示にする方法がありましたら教えてください。 ------------------------------------------------------- Sub test1()  Dim ws As Object  Dim we As Object  Dim command As String  command = "C:\test.exe"  Set ws = CreateObject("WScript.Shell")  Set we = ws.Run("%ComSpec% /c " & command, 0, False) '<===(A)  Set we = Nothing  Set ws = Nothing End Sub ------------------------------------------------------- Sub test2()  Dim ws As Object  Dim we As Object  Dim command As String  command = "C:\test.exe"  Set ws = CreateObject("WScript.Shell")  Set we = ws.exec("%ComSpec% /c " & command)  Do Until we.Status   DoEvents  Loop  Set we = Nothing  Set ws = Nothing End Sub -------------------------------------------------------

専門家に質問してみよう