Accessing VSTO Workbook Methods

E

Ed White

I'm using VSTO with VB in VS 2008 and Excel 2007, and trying to understand
something basic. I've written some public methods in ThisWorkbook.vb, which
is the class created by VSTO with "Public Class ThisWorkbook". Suppose one
method I've writtine in the workbook is Public TestMethod. If I am writing
code in a worksheet, e.g. Sheet1.vb, and I want to access TestMethod, how do
I do it? TestMethod is under the ThisWorkbook class, and is not a shared
method. If I write ThisWorkbook.TestMethod, it says it's a non-shared member
and requires an object reference. Do I create an new instance of
ThisWorkbook in Sheet1, or will this confuse VSTO/Excel?
 
E

Ed White

To clarify and expand on the above, generally speaking, when I have methods
(i.e. subs) in ThisWorkbook and in different sheets, how do I call a method
in one sheet (or ThisWorkbook) from another sheet? If I make the subs
Shared, it works, except when I try to use "Me." in a shared method, it says
"'Me' is valid only within an instance method". So do I create instances of
all the sheets and the workbooks? It seems creating instances is strange in
VSTO.
 
E

Ed White

I found the answer myself. For example, to access TestMethod in Sheet4, you
use
Globals.Sheet4.TestMethod

To access TestMethod in ThisWorkbook,
Globals.ThisWorkbook.TestMethod
 

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

Top