重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

EXCEL VBAでBOOKを開くと、メモ帳を起動するには、
Private Sub Workbook_Open()
Dim rc As Long
rc = Shell("notepad.exe", vbMaximizedFocus)
End Sub
のようにbookを開くイベントでshell関数からNotepadを起動できますが、
notepad起動により、EXCELを立ち上げたいのですが、方法が解りません。
多分、メモ帳起動をWindowsがイベント検出する事でEXCELを起動するのでしょうが、
WindowsのAPIを勉強し始めたばかりなので、解決の糸口がつかめません。
ずるいようですが、
1)実行ステートメントを知りたい。(即、動かしたい。)
2)本格的に、自力で理解してステートメントを書くための勉強法を教えて欲しい。
例えば、参考書名などお教えいただけると助かります。
EXCEL VBAは昨年夏から勉強し始めて、今年に入ってからWin APIの勉強中です。
作業環境は、Windows10、EXCEL2016を使ってます。

質問者からの補足コメント

  • 早速の回答いただきありがとうございます。
    頂いたコメントが理解できていないのかと思いますが、
    notepad.exe test.txtとするとtest.txtファイルが開きます。
    指定のファイルを開くのでなく、デフォルトの無題 メモ帳が開いて、同時にEXCELを起動する方法が解りません。
    「メモ帳トラッパー」がVectorに出ているのはnotepadの代わりに別のエデタを起動するフリーソフトのようなのですが、調べてみます。
    これで、別のエデタを起動でなくEXCELが起動すればいいのですが、、、

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/01/14 15:25

A 回答 (2件)

こんにちは。



実用に足るかどうかは分かりませんが、Microsoft Application Compatibility Tool Kits (ACT)の中に、一般のアプリに、ラッパーさせて他の機能を持たせるツールがありますね。早い話が、アプリの改造なのですが、特に、Resource Hacker などとは違い本体を改造させない所がミソだったりします。いわゆるハッキングをしたいとおっしゃっているようですが、それなりの書籍は、三省堂の本店などにも出ていた記憶があります。でも、VBAからの延長では話にならないと思います。私は、見よう見まねで、教わったものだけは可能にしていますが、それ以外は、うまく使えません。以下の場合は、なぜか、機能落ちしてしまいます。

http://www.atmarkit.co.jp/fwin2k/tutor/wcompat02 …
私は、このツールを今ひとつ使いこなせずに、成功していません。

Win APIで、WindowEvent にフックさせて起動させるっていうのは、SetWindowsEventHook でしょうけれども、それは使ったことはありませんね。
https://msdn.microsoft.com/en-us/library/windows …

>デフォルトの無題 メモ帳が開いて、同時にEXCELを起動する方法が解りません。
具体的には、#1さんの話とまったく同じなのですが……。
実際、そういうお話なら、怖い話ですが、WScript で偽装させてしまえば済みます。他人の環境なら、アンチウィルスに引っかかってしまうとは思いますが。WScript の怖さっていうのは、その万能性です。単に、Script だけで治まってはいないのです。

しかし、あまり本気にはしないでほしいのですが、自分でメモ帳を作る方法もありますね。(^^;
プログラムの勉強の一つに、メモ帳の作成というものがありますし。
    • good
    • 0
この回答へのお礼

助かりました

別の言い方をすると、「NotePadで操作・書き込んだ内容をEXCELに取り込んで、その内容次第で、次のアプリ起動につなげたい。」と考え、なんとか形にするために勉強と思って悪戦苦闘しています。<<ハッキング>>とは、意識していなかったのですが、下手するとそのような行為につながるのでしょうか、あくまで変な機能であるが勉強の題材として考えていました。
技術レベルアップを目的に、自PCなら壊れても良いのでSetWindowsEventHookを調べてみます。頂いた情報に深入りしてみます。
このテーマで、しばらく継続研究してみます。情報をありがとうございました。
最初にneko_deuxさんからコメントいただき、理解できない内容で自分の勉強不足を感じていましたので、一層知識を高めてゆきます。
コメント頂きました皆様に感謝し、本件をいったん終了(解決済)といたします。

お礼日時:2017/01/15 20:51

例えば、


・notepad.exeを別名のexeにしとく。
・自作のnotepad.exeで、
 -起動時に上のexeを起動して引数を渡す。
 -並行してExcelを起動。
とか。

メモ帳が呼び出されると、任意のエディタを起動する「メモ帳トラッパー」とか、以前は良くありました。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!