--- sc/source/ui/vba//vbaworksheet.hxx	
+++ sc/source/ui/vba//vbaworksheet.hxx
@@ -47,11 +47,12 @@
 #include <org/openoffice/excel/XOutline.hpp>
 #include <org/openoffice/excel/XChartObjects.hpp>
 
-#include "vbahelper.hxx"
+#include "vbahelperinterface.hxx"
 
-class ScVbaWorksheet : public ::cppu::WeakImplHelper2<oo::excel::XWorksheet, css::script::XInvocation > 
+typedef InheritedHelperInterfaceImpl1< oo::excel::XWorksheet >  WorksheetImpl_BASE;
+
+class ScVbaWorksheet : public WorksheetImpl_BASE
 {
-	css::uno::Reference< css::uno::XComponentContext > m_xContext;
 	css::uno::Reference< css::sheet::XSpreadsheet > mxSheet;
 	css::uno::Reference< css::frame::XModel > mxModel;
 	css::uno::Reference< oo::excel::XChartObjects > mxCharts;
@@ -60,15 +61,17 @@ class ScVbaWorksheet : public ::cppu::We
 	css::uno::Reference< oo::excel::XRange > getSheetRange() throw (css::uno::RuntimeException);
 
 	css::uno::Any getControl( const rtl::OUString& sName );
+	css::uno::Any getControlShape( const rtl::OUString& sName );
 protected:
 
 	virtual css::uno::Reference< css::frame::XModel > getModel()
 	{ return mxModel; }
 	virtual css::uno::Reference< css::sheet::XSpreadsheet > getSheet()
 	{ return mxSheet; }
-	ScVbaWorksheet( const css::uno::Reference< css::uno::XComponentContext >& xContext );
+
+	ScVbaWorksheet( const css::uno::Reference< oo::vba::XHelperInterface >& xParent,  const css::uno::Reference< css::uno::XComponentContext >& xContext );
 public:
-	ScVbaWorksheet( 
+	ScVbaWorksheet( const css::uno::Reference< oo::vba::XHelperInterface >& xParent,
 		const css::uno::Reference< css::uno::XComponentContext >& xContext,
 		const css::uno::Reference< css::sheet::XSpreadsheet >& xSheet, 
 		const css::uno::Reference< css::frame::XModel >& xModel )throw (css::uno::RuntimeException)  ;
@@ -114,6 +117,9 @@ public:
 	virtual css::uno::Any SAL_CALL PivotTables( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
 	virtual css::uno::Any SAL_CALL Comments( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
 
+	virtual css::uno::Any SAL_CALL OLEObjects( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
+	virtual css::uno::Any SAL_CALL Shapes() throw (css::uno::RuntimeException);
+
 	// XInvocation
 	virtual css::uno::Reference< css::beans::XIntrospectionAccess > SAL_CALL getIntrospection(  ) throw (css::uno::RuntimeException);
 	virtual css::uno::Any SAL_CALL invoke( const ::rtl::OUString& aFunctionName, const css::uno::Sequence< css::uno::Any >& aParams, css::uno::Sequence< ::sal_Int16 >& aOutParamIndex, css::uno::Sequence< css::uno::Any >& aOutParam ) throw (css::lang::IllegalArgumentException, css::script::CannotConvertException, css::reflection::InvocationTargetException, css::uno::RuntimeException);
@@ -121,6 +127,9 @@ public:
 	virtual css::uno::Any SAL_CALL getValue( const ::rtl::OUString& aPropertyName ) throw (css::beans::UnknownPropertyException, css::uno::RuntimeException);
 	virtual ::sal_Bool SAL_CALL hasMethod( const ::rtl::OUString& aName ) throw (css::uno::RuntimeException);
 	virtual ::sal_Bool SAL_CALL hasProperty( const ::rtl::OUString& aName ) throw (css::uno::RuntimeException);
+	// XHelperInterface
+	virtual rtl::OUString& getServiceImplName();
+	virtual css::uno::Sequence<rtl::OUString> getServiceNames();	
 };
 
 #endif /* SC_VBA_WORKSHEET_HXX */
