Code Samples for Businesses, Schools & Developers

First Published 29 January 2023

The unicode input box was developed for use with my Access Application Translator utility which is due for release during February 2023

I created it because the standard input box only works with Latin script languages such as English, German, Spanish etc.
It cannot handle languages which use Unicode character sets such as Arabic or Bengali unless additional changes are made to locale and keyboard settings





By contrast, the unicode input box has been designed to handle text in languages that use Unicode character sets such as Japanese, Greek, Bengali etc without needing to change locale or keyboard settings. This includes right-to left languages such as Arabic and Hebrew.





NOTE: The button positions cannot be altered on either type of input box

The unicode input box uses similar code to that of the Formatted Message Box function

In both cases, the Eval function is used to achieve the desired outcome
However, in this case it does NOT cause the first line of text to become bold


Public Function UnicodeInputBox(Prompt As String, Optional Title As String = vbNullString, _
      Optional Default As String = vbNullString, Optional Xpos As Variant, Optional Ypos As Variant) As String

' Function       : UnicodeInputBox

' DateTime       : 25/01/2023
' Author            : Colin Riddington (Mendip Data Systems)
' Website          :
' Purpose          : Input box that works with unicode character set languages such as Arabic/Greek

' Copyright       : The code in the utility MAY be altered and reused in your own applications
'                             provided the copyright notice is left unchanged (including Author, Website and Copyright)

'                             You are NOT allowed to sell, resell or repost this on other sites such as online forums
'                             without permission from the author. However, links back to the above websites ARE allowed.

'                             If you find this code useful please place a link to my website on your own web site
'                             so that others may benefit as well.

' Updated       : January 2023


On Error GoTo Err_Handler

      'Also works with unicode character sets
      If IsMissing(Xpos) And IsMissing(Ypos) Then
            'position not specified - place in centre of screen
            UnicodeInputBox = Eval("InputBox(""" & Prompt & """, " & _
                  " """ & Title & """, """ & Default & """)")
            'position left at XPos, top at YPos
            UnicodeInputBox = Eval("InputBox(""" & Prompt & """, " & _
                  " """ & Title & """, """ & Default & """, " & Xpos & ", " & Ypos & ")")
      End If

      Exit Function

      MsgBox "Error " & Err.Number & " in UnicodeInputBox procedure : " & vbNewLine & " - " & Err.Description
      Resume Exit_Handler

End Function

For example:

a)   Simple input box with a prompt and title only. It will be centred on the screen

UnicodeInputBox "Enter a language ID between 1 and 109", "Enter Language ID"

b)   Input box in Italian with a prompt, title and default text. Screen position : left = 3000 twips and top = 5000 twips from top left corner

UnicodeInputBox "Seleziona un colore da questo elenco" & vbCrLf & "Rosso, blu, verde, giallo", _
      "Scegli un colore", "Inserisci un colore", 3000, 5000

c)   Input box translated into Malayalam and centred on screen

UnicodeInputBox TranslateXL("Enter a Record ID between 1 and 27", "en", "ml"), _
      TranslateXL("Select Record ID", "en", "ml"), TranslateXL("Record Number", "en", "ml")


1.   The language used for the OK / Cancel buttons is updated automatically when the default Office language is changed

2.   Clicking the "?" in the title bar opens a Microsoft help article for Access 365: Top categories
      At the time of writing this article, I have been unable to find a way of removing or changing this link

3.   As with standard input boxes, functions can also be included in the input box text.

      In this example, it is being used with a function GetDefaultLanguage:

UnicodeInputBox "The current default language is " & GetDefaultLanguage() & vbCrlf & vbCrLf & _
      "Enter the new default language (or click Cancel)" & vbCrLf, "Change Default Language?"


4.   If you want to use the Unicode input box as your default input box, just rename the function as InputBox. It will then replace the VBA InputBox function


Please use the contact form below to let me know whether you found this article interesting/useful or if you have any questions/comments.

Please also consider making a donation towards the costs of maintaining this website. Thank you

Colin Riddington             Mendip Data Systems            Last Updated 29 Jan 2023

Return to Code Samples Page

Return to Top