VS 2017 Ribbon a odkazy na makra v Excelu   otázka

Visual Studio, .NET

Dobrý den. Kdysi jsem si vytvořil osobní Pas karet pro Excel 2010. Mám v něm odkazy na makra a další. Tentokrát jsem si to samé vytvořit ve Visual Studiu, ale nemohu se dostat přes spouštění maker ve Visual Studiu. Jak spustím tento příkaz ve Studiu?

Application.Run("Personal_2007.xlam!MyForms.PomHudba")

.

Personal_2007.xlam je sešit, kde mám všechny formuláře a makra

MyForms je jeden z modulů

PomHudba je spouštěný formulář

Zrovna tak se mi nedaří spouštět vestavěné dialogy jako např.

Application.Dialogs(xlDialogPrinterSetup).Show

Děkuji za případnou pomoc.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nevím jistě, ale chcete-li ovládat excel z visual studia,

pak místo Application budete muset volat instanci excelu.

Např.:

Dim ExcelType As Type = Type.GetTypeFromProgID("Excel.Application")
Dim Excel As Object = Activator.CreateInstance(ExcelType)
Excel.Visible = True

V závislosti je-li doplněk zaveden v excelu či ne, měl by tuším být

v kolekci AddIns a ještě taky vlastnost Instaled nebo snad taky lze

otevřít pomocí metody Open jako každý jiný sešit a pak s ním teprve

bude možné pracovat a spouštět v něm obsažená makra či formuláře.

Lze také získat již běžící instanci, kde už ten doplněk zrovna běží.

Případně lze vytvořit .Net knihovnu, přidat na ni referenci z excelu

a potom volat funkce z této knihovny ve VBA pomocí tlačítek ribbonu,

který máte vytvořený v excelu.

Máte-li ribbon ve visual studiu, tak to bude chtít rozvést, ale třeba

celý záměr někdo správně pochopí a poradí Vám lépe.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Děkuji za odpověď. Já jsem si kdysi vytvořil v editoru UI (Custom UI Editor) svoje vlastní karty pomocí XML příkazů. A protože jsem nechtěl neustále vyhledávat ve všech kartách příkazy (měl jsem nový Office 2007), tak jsem to nejčastěji používané dal na tuhle kartu (Open, Save, Save As a další). Později jsem tam přidával i svoje formuláře atd. To stále běhá, ale já jsem si to chtěl zkusit ve VS a tam jsem narazil. Abych se přiznal, tak mně už docházejí síly. Snad to nějak splichtím. Tady je kousek kódu z toho editoru UI.

<group id="grBoxy" label="Dialogová okna" >
				<splitButton id="cbBoxy" size="large" >
					<button id="cbMoznostiZobrazeni"
						label="Možnosti zobrazení"
						supertip="Možnosti zobrazení bu&#328;ky a objektu"
						onAction="dbMoznostiZobrazeni"
						imageMso="ReviewShareWorkbook" />
					<menu id="mnBoxy" imageMso="PageMenu" >
						<button id="cbPrejitNa"
							label="P&#345;ejít na ..."
							supertip="P&#345;ejít na - jinak"
							onAction="dbPrejitNa"
							imageMso="LeftArrow2" />
						<button id="cbZarovnaniBunek"
							label="Zarovnání bun&#283;k"
							supertip="Zobrazí dialogové okno zarovnání bun&#283;k"
							onAction="dbZarovnaniBunek"
							imageMso="TableColumnsInsertLeft" />
						<button id="cbStylBunky"
							label="Styl bu&#328;ky"
							supertip="Zobrazí dialogové okno stylu bu&#328;ky"
							onAction="dbStylBunky"
							imageMso="WhatIfAnalysisMenu" />
						<button id="cbOhraniceniBunek"
							label="Ohrani&#269;ení bun&#283;k"
							supertip="Zobrazí dialogové okno ohrani&#269;ení bun&#283;ek"
							onAction="dbOhraniceniBunek"
							imageMso="BorderInside" />

Když se podíváte na ten poslední button, tak onAction je příkaz "dbOhraniceniBunek". To je modul v projektu Personal_2007.xlam. Tady je kód:


'Callback for cbOhraniceniBunek onAction
Sub dbOhraniceniBunek(control As IRibbonControl)
  Application.Run ("Personal_2007.xlam!vbDialogBoxy.OhraniceniBunek")
End Sub

Je to jenom výřez, aby jste věděl o co mně jde. Potom si ještě nevím rady s použitím vestavěných dialogů. Já vím, že toho chci moc, ale stejně děkuji

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Dle ukázek chápu, že máte vlastní ribbon v excelu a voláte makra pro vlastní tlačítka,

ale stále nevím, co máte vlastně ve visual studiu, dost možná máte VSTO, což je visual

studio pro office, ale s tím vám neporadím, neměl jsem bohužel možnost s VSTO pracovat.

VSTO bude nejspíš k dispozici při plné verzi VS ?

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback