How can I call Fourier Analysis from a Visual Basic macro?



I recorded a macro in Excel that included using the Fourier Analysis tool
from the VBA Analysis ToolPak, but when I ran the macro, I got an error
saying the input range was not defined. When I recorded the macro, I had
entered an input range, so I examined the macro code. I didn't see my input
range in the code, but I realised I didn't know how the Fourier Analysis
application had to be called from Visual Basic anyway.

The macro recorder had inserted the line:
Application.Run "ATPVBAEN.XLA!Fourier", , , False, False
for forward Fourier transformation, and
Application.Run "ATPVBAEN.XLA!Fourier", , , True, False
for inverse Fourier transformaiton.

Can anyone who has used the Fourier Analysis tool from Visual Basic help me
by describing the syntax for calling Fourier Analysis (ATPVBAEN.XLA!Fourier)?

Many thanks.



Dave Peterson

It looks like it goes in this order:

When I recorded a macro and selected a couple of ranges, I got:

Application.Run "ATPVBAEN.XLA!Fourier", ActiveSheet.Range("$A$1:$A$8"), _
ActiveSheet.Range("$B$1:$F$7"), False, False


Thanks, Dave. That worked. In fact, I tried putting Range(...) into the two
spaces in the calling line, but the syntax I used wasn't what you put in your
reply, so it seems to matter how Range is used.



Dana DeLouis

Also note that the Fourier program only looks at the upper left corner of
the output range address.

Sub SmallDemo()
Const FFT As String = "ATPVBAEN.XLA!Fourier"
Const Forward As Boolean = False

Run FFT, [A1:A8], [B1], Forward
End Sub


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question