Příkaz na "automatický Enter" nelze stejně jako "automaticky Esc". Ostatní klávesy mají emulaci funkce makrem. To je dáno koncepcí přednastavení entru (také ESC) v dialozích obecně. Tlačítko nastavené na výchozí podléhá Entru. Představte si, když by někdo přiřadil vlastnost ESC = ENTR - máte vir jako vyšitý. Proto je to znemožněno. Lze to obejít :
Pokud postavíte nějakou kontrolu tak se tomu dá zabránit. Ta kontrola jde makrem, podmíněným formátem, nebo také automatickým dokončováním.
1. - Příklad kontroly makrem : Do nějaké buňky (řekněme A10) dáme vzorec "ISTEXT(A3)", nebo například dotaz zda je to číslo, datum ap. Vzorec "ISTEXT(A3)" vrací "true"(1), nebo "False"(0). Podobně dotazy typu IF. Potom postavíme na začátek makra dotaz :
'...deklarace buňky A10 (Cell)
IF Cell.Value = 1 Then
'...Makro se rozeběhne - nic se nezobrazí
Else
MsgBox("Chyba - data nejsou zadána správně. Nyní program skončí." & _
" Chybu opravte a akci zopakujte.",64,"CHYBA ZADÁNÍ".)
Exit Sub
End If
2. - Na ten samý systém postavíme podmíněný formát podle vzorce (pro buňku A3) podmínka : A10=0. Z toho pak buňka s chybou získá vlastnosti přednastavené - například žlutý podklad a červené písmo aby to bylo vidět na první pohled.
3. - Někdy to lze zajistit automatickým dokončováním (opravami). To zase souvisí s tím, že makro musí nastartovat přesunem kurzoru (snadno nahratelné makro - UNO). Nahrané makro si uložíme například jako "krok" a hned za deklaraci subroutine zapíšeme :
Sub Main
krok
'...vlastní kód makra - toho vašeho původního
End Sub
Když je to makrem, tak makro obsahuje většinou všechny potřebné věci jako "runtime" funkce, nebo příkazy. Ale obejdeme se snadno i bez nich - například :
'...deklarace buňky - 1. list, buňka A1
oCell = thisComponent.Sheets.getByIndex(0).getCellByPosition(0,0)
'...vložíme do buňky vzorec COUNT
oCell.Formula = "=COUNT(B1:B1000)"
'...dříve deklarovanou proměnnou iVar as integer naplníme obsahem buňky A1
iVar = oCell.value
'...nyní buňku A1 vymažeme - zůstane prázdná. Zato iVar = COUNT
oCell.String = ""
Editoval neutr (16. 4. 2014 08:37:22)
Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ