Prevent any click event on the computer until macro has finished.

how to stop macro running when opening excel
excel vba open workbook without running macros
excel vba doevents
vba workbook open event
excel vba workbook events
excel vba application events
excel macro enabled workbook
automatic macros

Is the a way to prevent any mouse click on the computer until the end of a macro on Access VBA? The macro need a specific app to be in focus so I don't want to user to go elsewhere while the macro is running.

You can use the WinApi BlockInput function to block any input, including task switching, or anything else.

Declare PtrSafe Function BlockInput Lib "User32.dll" (ByVal fBlockIt As Boolean) As Boolean

Private Sub DoStuff()
    On Error GoTo ErrHandler
    BlockInput True
    'Do stuff here
    BlockInput False
    Exit Sub
    BlockInput False 'Important! During message boxes, error handling, etc. input will still be blocked
    'Handle error here
Exit Sub

Note that BlockInput is kind of absolute. You can't do any stuff at all, except Ctrl + Alt + Delete to get out of it.

In some security configurations, BlockInput can be disabled, but generally, it's available without needing administrator rights or anything like that.

Prevent any click event on the computer until macro has finished., You can use the WinApi BlockInput function to block any input, including task switching, or anything else. Declare PtrSafe Function BlockInput  So, I came up with the idea of making the change event wait and see if another change event gets triggered within, say, 1 second from the first. If that happens, the first change event aborts. Now this would work, and I think I would know how to code it, except that I don't know how to give the user the power to keep typing even when the first

That can't be done. You can always go to another window or the taskbar.

How Do I Stop Running on Open in Excel Spreadsheets?, Some Excel workbooks include macros that run automatically when opened. key while you click "Open," and continue holding it until the workbook finishes loading Services: Preventing Auto_open and Workbook_open Events From Running Aaron Parson has been writing about electronics, software and games since  Trigger an event on clicking “OK” on the messagebox in an access form [closed] the VBA code execution is suspended until the user clicks ok. Therefore the


I cannot be done in VBA, but there are programs than shall be able to do that. So you might have to find a workaround with the VBA-ProgramYouChoose-combination.

Here's the link:

Those are the programms they discuss:

KeyFreeze ToddlerTrap Toddler Keys Kid-Key-Lock KeyboardLock Child Lock Predator Lock Windows

You will have to test those, as you only want your mouse to be disabled I would choose the Kid-Key-Lock.

Professional Access 2013 Programming, The On Click event is probably the most used event for this control. Most computer users are familiar with clicking objects to initiate tasks, so your focus should Users will interpret this to indicate that some actions need to be completed before they Once the necessary actions are completed, you can use code or a macro  You can then check the value of the variable on your subforms and stop execution until the main form has finished loading. Separating Out Code It’s quite tempting to do everything all at once in a single event and often you can, but as stated earlier, doing certain actions in an event may cause the cascading of events that may only serve to muddy the waters and slow things down.

Excel VBA Events - An Easy (and Complete) Guide, Excel VBA Events allow you to run a macro when a specific event occurs. Below is a short visual that shows the double-click event in action. When you double-click on the UserForm (or any of the object that you add to the UserForm), it would open the code The OnTime event would continue to run until you stop it. When my application runs, I have a requirement to prevent a system from entering Standby, etc. The reason for this is that it loses connection to the remote host. So, while my application runs, I need to prevent any kind of standby event from occuring.

DoEvents in VBA: how to make Excel VBA execute asynchronously , It can allow the user to interact with the Excel spreadsheet while the macro is running of the macro to refresh the screen and execute any pending events in Excel. you can click on the Excel spreadsheet, move through the ribbon, the sheets. And anyway keep in mind that the macro could be poorly designed and use  Control is returned after the operating system has finished processing the events in its queue and all keys in the SendKeys queue have been sent. DoEvents is most useful for simple things like allowing a user to cancel a process after it has started, for example a search for a file. For long-running processes, yielding the processor is better accomplished by using a Timer or delegating the task to an ActiveX EXE component.

PC Mag, Choose File I Open, right click on any blank space in the file list box, then choose I would like to have the complete path and filename of the worksheet, but in Page Craig Slinson DATABASES Special Effects for Access Forms While writing an sheet, a macro, or Visual Basic (in the handler for the form's Load event). The second click may have no effect (for example, if the Click macro or event procedure opens a modal dialog box in response to the first Click event). To prevent the second Click macro or event procedure from running, put a CancelEvent action in the DblClick macro, or use the Cancel argument in the DblClick event procedure.

  • This could be an XY Problem. What's the other app?
  • Might be so. He told us the problem (unallowed user-interactio) and he told us the way he wants to solve it (disable mouse). So technically it's not wrong, but he seems to lack self-searching.
  • I was thinking if the other app is something like Excel then just reference it - no need to have it in focus and the user can happily browse the internet, or open another app without affecting what Access is doing.
  • Therefore we have not enough information, but I get your point. You are right. But due to the lack of information it is in a grey zone as you can only assume it, but not proof.
  • Not true. See my answer.
  • Uh! I wouldn't even check this out. I trust you.