InputBox函數和MsgBox函數很常用,特別是在與使用者進行簡單的互動時經常用到。
一、InputBox函數
1、作用
顯示一個輸入框,並提示使用者在文字框中輸入文本、數字或選中某個儲存格範圍,當按下確定按鈕後返回包含文字框內容的字串。
2、文法
InputBox(Prompt[,Title][,Default][,Xpos][,Ypos][,Helpfile,Context])
參數說明:
(1) Prompt,必要參數,作為輸入框中提示資訊出現的字串,其最大長度約為1024個字元,由所使用字元的寬度決定。如果Prompt包含多個行,則可在各行之間用斷行符號符(Chr(13))、分行符號(Chr(10))或斷行符號分行符號的組合(Chr(13)&Chr(10))來分隔。
(2) Title,可選的參數,作為輸入框標題列中的字串。若省略該參數,則在標題列中顯示應用程式名稱。
(3) Default,可選的參數,作為輸入框中預設的字串,在沒有其它輸入時作為預設值。若省略該參數,則文字框為空白。
(4) Xpos,可選的參數,為數值,成對出現,指定輸入框的左邊與螢幕左邊的水平距離。若省略該參數,則輸入框在水平方向置中。
(5) Ypos,可選的參數,為數值,成對出現,指定輸入框的上邊與螢幕上邊的距離。若省略該參數,則輸入框在螢幕垂直方向距下邊約三分之一的位置。
(6) Helpfile,可選的參數,為字串,表示協助檔案,用該檔案為輸入框提供上下文相關的協助。若有Helpfile,則必須有Context。
(7) Context,可選的參數,為數值,協助檔案中某說明主題的上下文編號。若有Context,則必須有Helpfile。
3、相關說明
(1)如果同時提供了Helpfile與Context參數,可以按F1鍵來查看與Context相應的說明主題,Excel通常會在輸入框中自動添加一個協助(Help)按鈕。
(2)如果單擊確定(OK)或按下ENTER鍵,則InputBox函數返迴文本框中的內容;如果單擊取消(Cancel),則此函數返回一個長度為零的字串("")。
(3)如果要輸入多個參數並省略中間的某些參數,則必須在相應位置加入逗號分界符。
(4)InputBox函數返回的是一個字串,若需要得到數值,則需要使用Val函數將字串轉換為一個值。
二、InputBox方法
1、作用
顯示一個接收使用者輸入的對話方塊,並返回此對話方塊中輸入的資訊。運用InputBox方法可以指定需要返回的資料類型,可通過在工作表中拖放指定工作表的儲存格範圍,並能自動執行輸入有效性驗證。
2、文法
Object.InputBox(Prompt,Title,Default,Left,Top,HelpFile,HelpContextID,Type)
參數說明:
(1)Prompt,必要參數,為string型,表示在輸入框中的文本,可為字串、數字、日期或一個布爾值(Excel自動將值強制轉換為string型)。
(2)Title,可選的參數,為Variant型,輸入框視窗的標題。若省略此參數,將使用預設的標題。
(3)Default,可選的參數,為Variant型,指定在使用者沒有輸入內容時文字框的預設值。若省略此參數,文字框中的內容為空白。該值可為一個Range對象。
(4)Left,可選的參數,為Variant型。指定輸入框視窗相對於螢幕左上方的x座標。
(5)Top,可選的參數,為Variant型。指定輸入框視窗相對於螢幕左上方的y座標。
(6)HelpFile,可選的參數,為Variant型。表示此輸入框使用的協助檔案名稱。若存在HelpFile和HelpContextID參數,則輸入框中將出現一個協助按鈕。
(7)HelpContextID,可選的參數,為Variant型。表示說明主題。
(8)Type,可選的參數,為Variant型,指定返回資料的類型。若省略此參數,輸入框將返迴文本。資料類型可以是下表中的其中一個或其中幾個的和。
若使用適當代碼的和,則返回多種資料類型。若要顯示一個可以接受文本或數位輸入框,則將Type設定為3(即1和2之和,或者數字加上文本);若Type設定為8,那麼可以輸入一個儲存格或儲存格範圍,或者用滑鼠在工作表中的選擇某個儲存格範圍。
InputBox方法返回的資料類型代碼錶
代碼
說明
0
公式
1
數字
2
字串(文本)
4
邏輯值(True或False)
8
儲存格參照,為Range類型的對象
16
錯誤值,如#N/A
64
數值數值
3、相關說明
(1)使用 InputBox 可以顯示一個簡單的對話方塊,以便輸入宏所需要的的資訊。此對話方塊有一個“確定”按鈕和一個“取消”按鈕。如果選取了“確定”按鈕,則InputBox將返回對話方塊中輸入的值。如果單擊“取消”按鈕,則 InputBox 的值為False。
(2)如果Type為 0,InputBox將以文字格式設定返回輸入的公式。例如,“=2*PI()/360”。如果公式中有引用,將以 A1-樣式引用返回(用ConvertFormula方法轉換引用樣式)。
(3)如果Type為 8,InputBox將返回一個Range對象。必須用 Set 語句將結果指定給一個Range對象,如下例所示。
Set myRange = Application.InputBox(prompt := "Sample", type := 8)
如果不使用Set語句,此變數將被設為這個地區的值,而不是Range這個對象本身。
(4)如果使用 InputBox 方法要求使用者輸入公式,則必須使用FormulaLocal屬性來將此公式指定給一個Range對象。
(5)InputBox方法與InputBox函數的區別在於:InputBox方法可以對使用者的輸入自動執行輸入有效性驗證,也可用於Excel對象、誤差值、和公式的輸入。需要注意的是
Application.InputBox
調用的是InputBox方法,不帶對象識別符的
InputBox
調用的是InputBox函數。
4、樣本
(1)
提示使用者輸入數字
myNum = Application.InputBox("Enter a number")
(2)
提示使用者在Sheet1中選取一個儲存格,使用Type參數返回有效儲存格參照(一個Range對象)。
Worksheets("Sheet1").Activate
Set myCell = Application.InputBox(prompt:="Select a cell", Type:=8)