Vložit vlastní počet řádků v aplikaci Excel pomocí tohoto jednoduchého makra

Photo of author

By etechblogcz

Aplikace sady MS Office jsou navrženy s velkou dávkou inteligence, což není pouze můj subjektivní názor, ale fakt potvrzený jejich efektivitou. Před nedávnem jsme se věnovali tématu vkládání videí z YouTube do Office 2013 a zdůraznili jsme, že v MS Excel tato možnost chybí záměrně, protože není v tomto kontextu relevantní. Právě toto chování je příkladem zmiňované inteligence – rozpoznání, které funkce jsou pro daný typ aplikace skutečně klíčové. Výsledkem je čisté a relevantní uživatelské rozhraní bez zbytečných prvků.

Proto mě poněkud překvapilo, že Excel sice umožňuje vkládání více řádků najednou, ale neumožňuje uživateli explicitně definovat počet vkládaných řádků. Pro dosažení tohoto cíle se nabízí několik alternativních postupů. Můžete například vybrat určitý počet existujících řádků a následně je vložit, nebo opakovaně vkládat jeden řádek po druhém, dokud nedosáhnete požadovaného počtu. Nicméně, pokud jste ochotni obětovat pár minut, existuje elegantnější řešení v podobě malého makra, které tuto činnost automatizuje.

Protože budeme pracovat s makrem, je nutné dokument uložit jako sešit Excel s povolenými makry. V dialogovém okně „Uložit jako“ zvolte v rozevíracím seznamu „Uložit jako typ“ možnost „Sešit Excel s podporou maker (*xlsm)“.

Nyní přichází čas na samotné makro. Přejděte na kartu Zobrazení a kliknutím na tlačítko „Makra“ vytvořte nové. Pojmenujte makro dle svého uvážení a stiskněte „Vytvořit“. Automaticky se otevře okno editoru Visual Basic for Applications (VBA).

Zde jsou klíčové řádky `Sub` a `End Sub`. Řádek `Sub` obsahuje název vašeho makra, zatímco `End Sub` označuje konec bloku příkazů makra. Mezi těmito řádky by neměl být žádný jiný kód, pokud jste makro právě vytvořili. Právě mezi tyto dva řádky vložte následující kód:

Dim CurrentSheet As Object
	
    ' Procházení vybraných listů.
    For Each CurrentSheet In ActiveWindow.SelectedSheets
        ' Vložení 5 řádků na začátek každého listu.
        CurrentSheet.Range("a1:a5").EntireRow.Insert
    Next CurrentSheet

Tento kód vloží pět řádků od začátku listu, což je v kódu definováno odkazem na buňky A1 až A5. Pro přizpůsobení kódu vašim specifickým požadavkům je nutné upravit právě tento rozsah. První hodnota (A1) definuje referenční bod, od kterého se řádky vkládají. Například změna na A100 způsobí, že se řádky vloží až za prvních devadesát devět řádků. Po definování referenčního bodu je nutné zadat počet vkládaných řádků.

Počet řádků je určen rozsahem buněk, v našem případě A1:A5, což odpovídá vložení pěti řádků. Chcete-li vložit jiný počet řádků, musíte rozsah upravit. Například pro vložení 25 řádků od buňky A99 musíte k referenčnímu bodu (A99) přičíst počet řádků (25) a odečíst jednu buňku. Tj. A99 + 25 – 1 = A123. Protože se jedná o vkládání řádků, nikoli sloupců, mění se pouze číselná část adresy buněk. Toto makro je nutné aktualizovat při každém požadavku na vložení většího množství řádků, nicméně se jedná o drobnou úpravu a jeho efektivita z něj dělá cenný nástroj.

Makro prostřednictvím podpory společnosti Microsoft