
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を使ってます。
No.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 だけで治まってはいないのです。
しかし、あまり本気にはしないでほしいのですが、自分でメモ帳を作る方法もありますね。(^^;
プログラムの勉強の一つに、メモ帳の作成というものがありますし。
別の言い方をすると、「NotePadで操作・書き込んだ内容をEXCELに取り込んで、その内容次第で、次のアプリ起動につなげたい。」と考え、なんとか形にするために勉強と思って悪戦苦闘しています。<<ハッキング>>とは、意識していなかったのですが、下手するとそのような行為につながるのでしょうか、あくまで変な機能であるが勉強の題材として考えていました。
技術レベルアップを目的に、自PCなら壊れても良いのでSetWindowsEventHookを調べてみます。頂いた情報に深入りしてみます。
このテーマで、しばらく継続研究してみます。情報をありがとうございました。
最初にneko_deuxさんからコメントいただき、理解できない内容で自分の勉強不足を感じていましたので、一層知識を高めてゆきます。
コメント頂きました皆様に感謝し、本件をいったん終了(解決済)といたします。
No.1
- 回答日時:
例えば、
・notepad.exeを別名のexeにしとく。
・自作のnotepad.exeで、
-起動時に上のexeを起動して引数を渡す。
-並行してExcelを起動。
とか。
メモ帳が呼び出されると、任意のエディタを起動する「メモ帳トラッパー」とか、以前は良くありました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# 他のアプリケーションを優先...
-
アウトルックが起動しているか...
-
VBAでOutlookを終了させたい Ex...
-
Internet ExplorerをC言語プロ...
-
VBSで起動したアプリが前面表示...
-
HTMLタグの中にDLLを埋め込む事...
-
VB6.0からエクセルを起動
-
EclipseとTomcat使用時、すぐに...
-
Eclipseでjavascriptが動かない
-
VBAでSeleniumからChromeを起動...
-
64bitで作ったEXEを32bitで起動...
-
コマンドボタンをクリックする...
-
EXCEL VBAから他アプリケーショ...
-
フォームの最前面が効かない
-
windowsの連続起動時間取得
-
VC++にて_spawnlpでプロセス起動
-
意味不明の実行時エラーで困っ...
-
Designer.vbは直接コードをいじ...
-
VB6(SP5)+OO4OでCreateObjectが...
-
Visual Studio 「AnyCpu」について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでOutlookを終了させたい Ex...
-
VBSで起動したアプリが前面表示...
-
VBSから別のVBS起動するとき変...
-
アウトルックが起動しているか...
-
Process.Startで起動したアプリ...
-
Windows上のプログラム。「予め...
-
VBで実行中のEXEファイルの情報...
-
exeファイルを実行するとすぐに...
-
ACCESS VBAで別のACCESS(mdb)を...
-
WinSCPで画像のように puttyを...
-
VBAでSeleniumからChromeを起動...
-
フォームの最前面が効かない
-
VB6で呼び出し元の情報を取得す...
-
同じIEのウィンドウで、リンク...
-
gccプログラムで複数の実行ファ...
-
アプリからVB(Form)
-
VBSでExcelのUserFormをエクス...
-
VBからExcelに書き込む方法
-
Notepad起動のイベントでEXC...
-
C# 他のアプリケーションを優先...
おすすめ情報
早速の回答いただきありがとうございます。
頂いたコメントが理解できていないのかと思いますが、
notepad.exe test.txtとするとtest.txtファイルが開きます。
指定のファイルを開くのでなく、デフォルトの無題 メモ帳が開いて、同時にEXCELを起動する方法が解りません。
「メモ帳トラッパー」がVectorに出ているのはnotepadの代わりに別のエデタを起動するフリーソフトのようなのですが、調べてみます。
これで、別のエデタを起動でなくEXCELが起動すればいいのですが、、、