VBA内でコマンドプロンプトを開いたときにmsgが機能しなくなることがありますが、cmd.exeまたは "コマンドプロンプト"窓から。次のようにVBAからcommand.comまたはcmd.exeを実行するとMSGコマンドに問題が発生する
私のVBAコードは次のとおりです。
Sub test()
Dim str_to_pass As String
str_to_pass = "msg"
Call Shell("cmd.exe /s /k " & str_to_pass, vbNormalFocus)
End Sub
コマンドプロンプトの内部からの私の結果:「『MSG』が、内部または外部コマンドとして認識されていません...」
しかし、もしIコマンドプロンプトを開くか、ウィンドウからcmd.exeを最初に入力し、 "msg"とタイプします。msgの使い方の構文が表示されます。
このように、vbaからのコマンドプロンプトのこの使い勝手にアクセスするにはどうすればよいのですか。また、cmd.exeの起動方法によってコマンドが異なるのはなぜですか?
混乱を追加して、私はバッチファイルを作成するために、コードのセクションを作成しましたshellコマンドを実行してから、batファイルを実行してください。バッチファイルを作成し、バッチファイルはVBA外から開くと動作しますが、バグをプログラムでVBAから開くと、前と同じ結果になります。 – user4467707
コマンドプロンプトで 'where msg'と入力し、' str_to_pass'を印刷するフルパス名に変更します。 –
Windows \ System32にある可能性があります。それが私の所であり、.exeへの完全なパスを入力すると、同じエラーメッセージが生成されます。 (私は上司が私に実際の仕事をさせたのは怒っていました。これは私が今日取り組んでいたものですから!)これは本当に良い質問です。 – Tim