私はOCamlで非常に単純にコーディングUbuntu
しました:ml.ml
let () = print_string "hello world, in OCaml\n"
そして単純なc.c
C:
#include <stdio.h>
main() {
printf("hello world, in C\n");
return 0; }
ocamlc -o mlexe.exe ml.ml
次に、 andでコンパイルしましたgcc -o cexe.exe c.c
。mlexe.exe
またはcexe.exe
のターミナルで起動するとUbuntu
、文字列が返されます。
ここで、VBA コードから呼び出したいと思います。Windows を起動し、Microsoft Excel ファイルと VBA エディターを開き、次のように入力します。
Sub run()
Dim ProcID As Integer
ProcID = Shell("C:\Windows\system32\calc.exe", 1)
Dim Result As Variant
Result = Shell("C:\test\cexe.exe",1)
'Result = Shell("C:\test\mlexe.exe",1)
'Result = Shell("C:\test\cexe.exe")
'Result = Shell("C:\test\mlexe.exe")
End Sub
Result
文字列 (またはあまり良くない場合は終了コード) を取得することを期待しますhello world...
。マクロを実行すると電卓が起動しますが、自分の実行可能ファイルをRun-time error '5': Invalid procedure call or argument
含む他の 4 つのエラーが表示されます。Shell
目的は、VBA コードから別の言語で自分でコンパイルした実行可能ファイルを呼び出すことです。
誰が何が悪いのか教えてもらえますか?