Een bericht weergeven op de Excel-statusbalk met VBA

Anonim

De statusbalk in Excel kan worden gebruikt als codemonitor. Wanneer uw VBA-code lang is en u verschillende taken uitvoert met VBA, schakelt u vaak de schermupdate uit zodat u dat scherm niet ziet flikkeren. Maar hierdoor kom je niet te weten wat er in je code gebeurt.

Als u niet weet waar de statusbalk in Excel is, is deze hier:

U kunt een statusbalk van Excel gebruiken om informatie uit Excel te halen zonder de uitvoering van code te verstoren. U kunt stadia van uw Marco weergeven op de statusbalk of gebruiken als voortgangsbalk.

VBA-code om berichten op de statusbalk van Excel weer te geven

Application.StatusBar = "Bericht"

StatusBar is een eigenschap van het Application-object dat tekst als invoer gebruikt.

In dit voorbeeld laat ik alleen zien welke functie wordt uitgevoerd …

Sub DisplayMessageOnStatusBar() Application.ScreenUpdating = False Application.StatusBar = "Functie één aanroepen " ' call function_1 Application.Wait (Now + TimeValue("00:00:2")) Application.StatusBar = "Functie twee aanroepen" 'Call function_2 Application.Wait (Now + TimeValue ("00:00:2")) Application.StatusBar = "Aanroepfunctie Drie" 'Bel function_3 Application.Wait (Now + TimeValue("00:00:2")) Application.StatusBar = "" Application.ScreenUpdating = True End Sub 

In dit voorbeeld is de schermupdate in het begin ingesteld op False.

Nu, voordat ik functie_1 aanroep, geef ik een bericht weer dat functie één aanroept.

Application.Wait (Now + TimeValue ("00:00:2")) deze regel code is alleen om een ​​lange functieaanroep te faken, zodat ik 2 seconden krijg om dit op mijn statusbalk te zien.

Ik deed het vóór alle functieaanroepen en uiteindelijk heb ik de statusbalk op leeg ("") gezet.

De statusbalkberichten zijn best handig om berichten weer te geven tijdens het werken met lange code. Wanneer uw code meerdere fasen doorloopt of een lange lus doorloopt, kunt u dat op de statusbalk laten zien, zodat de gebruiker weet dat de code wordt uitgevoerd. Anders kan de gebruiker denken dat het systeem is vastgelopen of zoiets.

Nu kunt u slim informatie krijgen over de statusbalk met behulp van VBA van Excel 2016, 2013, 2010 en 2007 met behulp van deze one-liner.

OUDE POST

Het duurt lang voordat bepaalde vba-macro's / codes worden uitgevoerd of de vereiste acties worden uitgevoerd. Als u het bijwerken van het scherm hebt uitgeschakeld met behulp van de regel Application.ScreenUpdating = False aan het begin van uw code, en als een gebruiker de code uitvoert, weet hij niet wat er aan de hand is en denkt hij dat het computersysteem niet reageert. U kunt de code vragen om een ​​statusbericht op de statusbalk weer te geven, zodat de gebruiker op de hoogte is van de huidige status van de code.

Hier is een eenvoudige code die een berichtvenster geeft met de waarden in kolom A vanaf rij 2 tot de laatste rij. De statusbalk toont het bericht "Macro wordt uitgevoerd" terwijl de code wordt uitgevoerd, en zodra de code is voltooid, wordt "Gereed" weergegeven, een van de standaard Excel-berichten.

Optie Explicit Sub macro1() Dim i As Long, lrow As Long Application.ScreenUpdating = False Application.DisplayAlerts = False Application.DisplayStatusBar = True With Worksheets ("Sheet1") lrow = .Range ("A" & .Rows.Count) .End(xlUp).Row For i = 2 to lrow Application.StatusBar = "Macro actief" Msgbox .Range ("A" &i).Value Volgende i Eindig met Application.StatusBar = "" Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub 

Om de bovenstaande code naar uw bestand te kopiëren,

  • Druk op Alt + F11 op het toetsenbord.
  • Aan de linkerkant ziet u Microsoft Excel-objecten.
  • Klik met de rechtermuisknop en selecteer Invoegen.
  • Klik vervolgens op Module.
  • Kopieer de code naar het codevenster aan de rechterkant.

U kunt de code zien die in de onderstaande module is gepost -

Laten we nu begrijpen wat elke regel van de code doet -

Dus eerst zetten we DISPLAYSTATUSBAR op true en daarna stellen we het bericht voor de statusbalk in. Zodra we gebruiken Toepassing.StatusBar = “” aan het einde van de code keert het terug naar het standaard Excel-bericht dat KLAAR is.

Hier is een foto van de statusbalk terwijl de macro actief is.

Nadat de macro is voltooid, wordt de statusbalk als volgt weergegeven:

Op dezelfde manier kunt u de statusbalk in verschillende delen van de code bijwerken, zodat de gebruiker weet wat er gebeurt terwijl de macro wordt uitgevoerd. Soms kunnen er een of meer macro's zijn die meerdere processen dekken en deze statusbalk is handig om te weten bij welk proces de macro is aangekomen.

Als je onze blogs leuk vond, deel deze dan met je vrienden op Facebook. En je kunt ons ook volgen op Twitter en Facebook.
We horen graag van je, laat ons weten hoe we ons werk kunnen verbeteren, aanvullen of vernieuwen en het voor jou beter kunnen maken. Schrijf ons op de e-mailsite

Populaire artikels:

50 Excel-snelkoppelingen om uw productiviteit te verhogen

Hoe de VERT.ZOEKEN-functie in Excel te gebruiken?

Hoe de AANTAL.ALS-functie in Excel te gebruiken?

Hoe de SUMIF-functie in Excel te gebruiken?