Page 1 of 1

วิธีสร้างข้อความคำอธิบาย Fuction ที่เราสร้าง ทำอย่างไรครับ

Posted: Fri Jan 06, 2012 1:43 pm
by ChoBkuN
วิธีสร้างข้อความคำอธิบาย Fuction ที่เราสร้าง ทำอย่างไรครับ
ตัวอย่างเช่น ถ้าเราพิมพ์ =sum มันจะมีคำอธิบายว่าใช้อย่างไร "add all numbers in a range of cells"

ถ้าเราสร้างฟังก๋ชั่นขึ้นใช้เอง แล้วอยากให้มีคำอธิบายอย่างนี้บ้าง ทำอย่างไรครับ ?

Re: วิธีสร้างข้อความคำอธิบาย Fuction ที่เราสร้าง ทำอย่างไรคร

Posted: Fri Jan 06, 2012 3:41 pm
by snasui
:D การแสดงคำอธิบายของฟังก์ชั่นเหมือนกับ Build-in Function ต้องใช้ VBA เข้ามาช่วยครับซึ่งเป็น New Feature ของ Excel ที่มากับ Excel 2010 ต้องใช้ MacroOption method ช่วยในการแสดงผล

ดูคำอธิบายเพิ่มเติมที่นี่ครับ http://msdn.microsoft.com/en-us/library/ff838997.aspx

ตัวอย่างการใช้งานจากหนังสือ Excel 2010 Power Programming with VBA ของ John Walkenbach หน้าที่ 316

Code: Select all

Sub DescribeFunction()
    Dim FuncName As String
    Dim FuncDesc As String
    Dim FuncCat As Long
    Dim Arg1Desc As String, Arg2Desc As String
    FuncName = "DrawOne"
    FuncDesc = "Displays the contents of a random cell from a range"
    FuncCat = 5 'Lookup & Reference
    Arg1Desc = "The range that contains the values"
    Arg2Desc = "(Optional) If False or missing, a new cell is not "
    Arg2Desc = Arg2Desc & "selected when recalculated. If True, a "
    Arg2Desc = Arg2Desc & "new cell is selected when recalculated."
    Application.MacroOptions _
        Macro:=FuncName, _
        Description:=FuncDesc, _
        Category:=FuncCat, _
        ArgumentDescriptions:=Array(Arg1Desc, Arg2Desc)
End Sub

Re: วิธีสร้างข้อความคำอธิบาย Fuction ที่เราสร้าง ทำอย่างไรคร

Posted: Fri Jan 06, 2012 4:07 pm
by ChoBkuN
ขอบคุณครับ

ไม่ค่อยเข้าใจซักเท่าไหร่

ผมใช้ 2007 อยู่ ทำได้เหมือนกันหรือเปล่าครับ ?

ตอนแรกนึกว่าเป็นสูตรง่ายๆ แค่

FunctionDesc = ตัวfunction ที่อยากให้มี Desc = "ใส่ Desc" ลงไป

แต่อันนี้ยาวมากมาย

แล้วก็ยังไม่ค่อยรู้จัก Function VBA มากเท่าไหร่นักครับ

Re: วิธีสร้างข้อความคำอธิบาย Fuction ที่เราสร้าง ทำอย่างไรคร

Posted: Fri Jan 06, 2012 4:22 pm
by snasui
ChoBkuN wrote:ผมใช้ 2007 อยู่ ทำได้เหมือนกันหรือเปล่าครับ ?
คงจะไม่ได้ครับตามที่ตอบไว้แล้ว
snasui wrote:ซึ่งเป็น New Feature ของ Excel ที่มากับ Excel 2010