我在VBA的范围内运行Gnuplot,效果出奇的好.我可以使用GNUPLOT和Word VBA生成一本大约一百个图表的书.(使用Excel图表,我可能得到大约四个)
有一个小问题 - 在VBA下运行时,STDERR会消失,或者没有被创建.没有诊断.
鉴于以下小型GNUPLOT脚本,
set key bmargin left horizontal Right noreverse enhanced autotitle box lt black linewidth 1.000 dashtype solid
set samples 800, 800
set title "Simple Plots"
set title font ",20" norotate
DEBUG_TERM_HTIC = 119
DEBUG_TERM_VTIC = 119
plot [-30:20] sin(x*20)*atan(x)
Run Code Online (Sandbox Code Playgroud)
我的VBA代码将其写入临时文件并尝试运行它.VBA生成
"C:\temp\Gnuplot\bin\gnuplot.exe" C:\Users\VVKOZLOV\AppData\Local\Temp\gnuA5E0.txt 2>"C:\Users\VVKOZLOV\AppData\Local\Temp\gnuA5E2.err"
Run Code Online (Sandbox Code Playgroud)
然后使用Windows Shell运行它,如下所示调用:
Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Run Code Online (Sandbox Code Playgroud)
然后
wsh.Run x, 0, True ' x contains the generated GNUPLOT expression
Run Code Online (Sandbox Code Playgroud)
GNUPLOT执行完美.
在GNUPLOT表达式中,第一项是GNUPLOT程序的位置,在我的系统上恰好是"C:\temp\Gnuplot\bin\gnuplot.exe"
.第二个文件是在Microsoft官方位置生成的临时文件C:\Users\VVKOZLOV\AppData\Local\Temp\gnuA5E0.txt
.最后是STDERR的位置,2>"C:\Users\VVKOZLOV\AppData\Local\Temp\gnuA5E2.err"
其中2>表示这是STDERR,而不是正常输出STDOUT.
现在假设我在GNUPLOT源中引入了一个故意的错误,我希望写一个包含类似内容的错误文件
scooby …
Run Code Online (Sandbox Code Playgroud)