質問 |
||
QNo.2825570 | EXCELのVBAのコマンドボタンの動作について | |
---|---|---|
質問者:9_chan |
EXCELのVBAでコマンドボタンを押したとき、あるテキストを、単にテキストとして開く為に、以下のコーディングをしました。 しかし、「shell」コマンドは実行形式でないといけないようで、うまく行きません。どなたか、判る方いらっしゃいますか? --------------------------------------------- wk_path = ThisWorkbook.Path & "\memo1.txt" wk_rc = Shell(wk_path, vbNormalFocus) --------------------------------------------- (エラーコード:メッセージ) 5:プロシジャーの呼び出し、または引数が不正です。 |
|
困り度:
|
||
質問投稿日時: 07/03/12 10:12 |
回答 |
|
ANo.6 | createobject("shell.application").shellexecute "C:\Documents and Settings\All Users\Documents\desktop.ini" とかでも |
---|---|
回答者:nicotinism | |
種類:回答 どんな人:一般人 自信:参考意見 |
|
回答日時: 07/03/15 00:59 |
|
| |
この回答への補足 | 有難うございます、しかし、 notepadがでて来てしまいます |
この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答良回答20pt |
|
ANo.5 | なるほど。 Chr(34) で囲まなければならない場合は wk_rc = Shell("CMD /C START " Chr(34) & Chr(34) & " " & Chr(34) & wk_path & Chr(34)) という感じでしょうか。 |
---|---|
回答者:tsukasa-12r | |
種類:アドバイス どんな人:一般人 自信:参考意見 |
|
回答日時: 07/03/14 21:52 |
|
| |
この回答へのお礼 | うまく行きました wk_rc = Shell("CMD /C START " & Chr(34) & Chr(34) & " " & Chr(34) & wk_path & Chr(34)) ※但し、"CMD /C START " & Chr(34)・・・&を追加しました 有難うございました |
回答 |
|
ANo.4 | なるほど。 >>wk_rc = Shell("CMD /C START " & Chr(34) & wk_path & Chr(34)) chr(34) で囲ってしまうとダメですね。 Shell("CMD /C START " & wk_path) でないと。原因はコマンドプロンプトでSTART /? をやってみてください。 " で囲うとタイトルと見なされてしまうようです。 |
---|---|
回答者:driverII | |
種類:アドバイス どんな人:一般人 自信:参考意見 |
|
回答日時: 07/03/13 20:08 |
|
| |
この回答への補足 | driverII様、度々ありがとうございます。 詳しくないので定かでないですけど、 C:\Documents and Settings\xxx のようにパスにSPACEがあるためか、パスを指定するときは、Chr(34) ["] でくくらないと、だめだと思うのですけど・・・ START /? やりましたけど・・・どうすれば、良いのでしょう? |
この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
ANo.3 | お手軽な方法として、Windows XP/2000/NT の場合 ( Vista は未確認です。) wk_rc = Shell("CMD /C START " & wk_path ) という手もあります。 ( Windows 95/98/ME の場合は CMD の代わりに COMMAND になると思いますが未確認です。) |
---|---|
回答者:tsukasa-12r | |
種類:アドバイス どんな人:一般人 自信:参考意見 |
|
回答日時: 07/03/13 00:16 |
|
| |
この回答への補足 | あれ? wk_rc = Shell("CMD /C START " & Chr(34) & wk_path & Chr(34)) コマンド画面が出てくるだけですけど・・・ 因みにxpです |
この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
ANo.2 | では、ちょっと高度になりますが、 Win32API の FindExecutable を使えば、出来なくはありません。 [Win32API の使い方] http://www.ne.jp/asahi/hishidama/home/tech/excel/dll.html また、レジストリを見るという方法もあるようです。 |
---|---|
回答者:driverII | |
種類:アドバイス どんな人:一般人 自信:参考意見 |
|
回答日時: 07/03/12 14:16 |
|
| |
参考URL: | http://dobon.net/vb/dotnet/system/findassociatedexe.html |
この回答へのお礼 | なんか、難しそうですね あとで、トライしてみます 有難うございました。 |
回答良回答10pt |
|
ANo.1 | "notepad " & wk_path でいけませんか? |
---|---|
回答者:driverII | |
種類:アドバイス どんな人:一般人 自信:参考意見 |
|
回答日時: 07/03/12 10:16 |
|
| |
この回答へのお礼 | あっ!行きました。 ありがとうございます。 でも、出来れば、”.txt" に対応した、アプリがだしたいなあ・・・ |