ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Accessing VSTO Workbook Methods (https://www.excelbanter.com/excel-programming/414824-accessing-vsto-workbook-methods.html)

Ed White

Accessing VSTO Workbook Methods
 
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?

--
Ed

Ed White

Accessing VSTO Workbook Methods
 
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.
--
Ed


"Ed White" wrote:

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?

--
Ed


Ed White

Accessing VSTO Workbook Methods
 
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
--
Ed


"Ed White" wrote:

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.
--
Ed


"Ed White" wrote:

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?

--
Ed



All times are GMT +1. The time now is 03:35 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com