Přejít na hlavní obsah

Excel VBA: jak nastavit oblast tisku v programu

Excel VBA (Visual Basic for Applications) je programovací jazyk, který vám umožňuje automatizovat úkoly v Excelu a zlepšit efektivitu práce s tímto programem. Jedním z výkonných nástrojů VBA je schopnost spravovat oblast tisku v Excelu, což vám umožní změnit to, co se na tisku zobrazí, a také nastavit různá nastavení a formátování.

Zadání oblasti tisku může být užitečné, když je třeba vytisknout pouze určitá data nebo nastavit určité měřítko tisku. V Excelu VBA je oblast tisku nastavena pomocí vlastnosti PrintArea, který se vztahuje na objekt Worksheets nebo Chartsheets. Například:

Worksheets("Sheet1").PrintArea = "A1:D10"

V uvedeném příkladu je oblast tisku nastavena pro list "Sheet1" a obsahuje buňky od A1 do D10. Lze použít i vlastnost Names Chcete-li nastavit oblast tisku pomocí pojmenovaného rozsahu, nebo použít kód VBA k dynamické definici oblasti tisku.

Jak nastavím oblast tisku v programu Excel VBA?

Chcete-li zadat oblast tisku pomocí kódu VBA, musíte použít vlastnost PageSetup.PrintArea . Tato vlastnost vám umožňuje určit rozsah buněk,které se budou tisknout při tisku.

Příklad použití vlastnosti PrintArea k instalaci tiskové oblasti:

Sub SetPrintArea()Dim rng As Range' Указываем диапазон ячеек для области печатиSet rng = Range("A1:D10")' Устанавливаем область печатиActiveSheet.PageSetup.PrintArea = rng.AddressEnd Sub

V tomto příkladu nastavíme rozsah buněk A1: D10 na proměnnou rng . Tento rozsah pak nastavíme ve vlastnostech PrintArea prostřednictvím vlastnosti Address objektu rng . Nyní se při tisku tiskne pouze tento rozsah.

Můžete také použít jiné způsoby, jak určit rozsah buněk, jako je ruční nastavení oblasti tisku prostřednictvím dialogového okna "Nastavit oblast tisku" nebo číst rozsah buněk z proměnného nebo statického textu.

K čištění tiskové oblasti lze také použít vlastnost PrintArea. K tomu je třeba přiřadit vlastnost prázdný řádek:

Sub ClearPrintArea()' Очищаем область печатиActiveSheet.PageSetup.PrintArea = ""End Sub

Použití VBA v Excelu tedy umožňuje softwarově nastavit oblast tisku a spravovat proces tisku pro snadnou práci uživatele.

Vytvoření vlastního dialogového okna

Excel VBA vám umožňuje vytvářet vlastní dialogová okna, která vám pomohou komunikovat s uživatelem a získávat z něj informace. V této části se podíváme na to, jak vytvořit jednoduché dialogové okno s možností zadávání textu.

K vytvoření okna se používá objekt typu UserForm. Chcete-li vytvořit nové dialogové okno, musíte postupovat podle následujících kroků:

  1. Otevřete Editor VBA stisknutím Alt + F11.
  2. Klikněte pravým tlačítkem na projekt VBA a vyberte Vložit - > UserForm.
  3. V editoru UserForm lze přidat různé ovládací prvky, jako jsou textová pole, tlačítka a štítky.
  4. Přidejte textové pole pro psaní textu a tlačítko OK.

Po přidání ovládacích prvků můžete začít psát kód, který bude zpracovávat akce uživatele. Pro tlačítko OK lze napsat následující kód:

Private Sub CommandButton1_Click()Dim inputText As StringinputText = TextBox1.TextMsgBox "Вы ввели: " & inputTextEnd Sub

V tomto příkladu kódu uložíme text zadaný do textového pole do proměnné inputText. Poté zprávu zobrazíme pomocí funkce MsgBox zobrazením zadaného textu.

Chcete-li zobrazit dialogové okno vytvořené v editoru UserForm, musíte napsat následující kód:

Sub ShowCustomDialog()UserForm1.ShowEnd Sub

Při vyvolání tohoto postupu se zobrazí uživatelské dialogové okno, které obsahuje textové pole a tlačítko OK. Po zadání textu a kliknutí na tlačítko" OK " se zobrazí zpráva se zadaným textem.

Pomocí aplikace Excel VBA je tedy možné vytvářet a používat vlastní dialogová okna k interakci s uživatelem a získávání informací z něj.

Definice oblasti tisku

V Excelu VBA je oblast tisku definována pomocí vlastnosti PrintArea objektu Worksheet . Pomocí této vlastnosti lze určit konkrétní rozsah, který bude vytištěn na každém listu. Oblast tisku lze nastavit jak ručně zadáním požadovaných souřadnic (například A1:C10 ), tak definováním proměnných.

Příklad kódu určujícího oblast tisku v Excelu VBA:

Sub SetPrintArea()Dim ws As WorksheetDim printRange As RangeSet ws = ThisWorkbook.Worksheets("Sheet1")Set printRange = ws.Range("A1:C10")ws.PageSetup.PrintArea = printRange.AddressEnd Sub

V tomto příkladu je deklarován objekt ws s typem Worksheet, který představuje list "Sheet1". Poté se vytvoří proměnná printRange s typem Range, která udává rozsah A1: C10 . Konečně vlastnost printarea objektu ws.PageSetup je nastaven na stejnou adresu printRange .

Po provedení tohoto kódu bude oblast tisku na listu "Sheet1" omezena rozsahem A1:C10 .

Vědět, jak nastavit oblast tisku v programu Excel VBA, můžete automatizovat proces vytváření a konfigurace tiskových dokumentů, což vám výrazně usnadní práci.

Zadání tiskové oblasti v kódu VBA

V aplikaci Excel VBA můžete nastavit oblast tisku pomocí objektu PageSetup. Oblast tisku určuje, které buňky nebo rozsahy budou na listu vytištěny.

Chcete-li zadat oblast tisku, musíte nejprve zadat list, na kterém chcete tisknout. To lze provést pomocí vlastnosti ActiveSheet. Například, ActiveSheet.PageSetup.

Dále pomocí nemovitosti PrintArea, lze nastavit oblast tisku. Chcete-li to provést, musíte jako parametr předat rozsah buněk nebo adresu buňky. Můžete například nastavit tisk všech buněk od A1 do F10 takto:

ActiveSheet.PageSetup.PrintArea = "A1:F10"

Můžete také nastavit oblast tisku pomocí proměnné. Chcete-li to provést, musíte nejprve vyhlásit proměnnou jako typ Range a pak jí přiřadit správný rozsah buněk. Například:

Dim rngPrintArea As RangeSet rngPrintArea = Range("A1:F10")ActiveSheet.PageSetup.PrintArea = rngPrintArea.Address

Po zadání oblasti tisku lze pomocí metody provést příkaz tisku PrintOut. Například, ActiveSheet.PrintOut. Tento příkaz vytiskne zadanou oblast na aktivní list.

Můžete také nastavit další možnosti tisku pomocí objektu PageSetup, jako je orientace, měřítko, zápatí atd. tato nastavení umožňují přizpůsobit tisk podle požadavků.

Zadání tiskové oblasti v kódu VBA umožňuje automatizovat proces tisku a zjednodušit práci s velkými objemy dat.