<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VBA%2FExcel%2FAccess%2FWord%2FLanguage_Basics%2FFunction</id>
		<title>VBA/Excel/Access/Word/Language Basics/Function - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VBA%2FExcel%2FAccess%2FWord%2FLanguage_Basics%2FFunction"/>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Language_Basics/Function&amp;action=history"/>
		<updated>2026-04-05T08:06:55Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Language_Basics/Function&amp;diff=1116&amp;oldid=prev</id>
		<title> в 16:33, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Language_Basics/Function&amp;diff=1116&amp;oldid=prev"/>
				<updated>2010-05-26T16:33:00Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 16:33, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Language_Basics/Function&amp;diff=1117&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Language_Basics/Function&amp;diff=1117&amp;oldid=prev"/>
				<updated>2010-05-26T12:46:22Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==A function returns a value to whomever called it.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub useaFunction()&lt;br /&gt;
   MsgBox concatF()&lt;br /&gt;
End Sub&lt;br /&gt;
Function concatF() As String&lt;br /&gt;
    Dim strFirstname As String&lt;br /&gt;
    Dim strLastName As String&lt;br /&gt;
    Dim strFullName As String&lt;br /&gt;
    strFirstname = &amp;quot;John&amp;quot;&lt;br /&gt;
    strLastName = &amp;quot;Smith&amp;quot;&lt;br /&gt;
    strFullName = strFirstname &amp;amp; &amp;quot; &amp;quot; &amp;amp; strLastName&lt;br /&gt;
    concatF = strFullName&lt;br /&gt;
End Function&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==A function returns a value to whomever called it. We can recast the previous sub into a function as follows:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Function concat() As String&lt;br /&gt;
    Dim strFirstname As String&lt;br /&gt;
    Dim strLastName As String&lt;br /&gt;
    Dim strFullName As String&lt;br /&gt;
    strFirstname = &amp;quot;John&amp;quot;&lt;br /&gt;
    strLastName = &amp;quot;Smith&amp;quot;&lt;br /&gt;
    strFullName = strFirstname &amp;amp; &amp;quot; &amp;quot; &amp;amp; strLastName&lt;br /&gt;
    concat = strFullName&lt;br /&gt;
End Function&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==A function with one argument==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
  Function Commission(Sales)&lt;br /&gt;
  &amp;quot;   Calculates sales commissions&lt;br /&gt;
      Dim Tier1 As Double, Tier2 As Double&lt;br /&gt;
      Dim Tier3 As Double, Tier4 As Double&lt;br /&gt;
      Tier1 = 0.08&lt;br /&gt;
      Tier2 = 0.105&lt;br /&gt;
      Tier3 = 0.12&lt;br /&gt;
      Tier4 = 0.14&lt;br /&gt;
      Select Case Sales&lt;br /&gt;
          Case 0 To 9999.99: Commission = Sales * Tier1&lt;br /&gt;
          Case 10000 To 19999.99: Commission = Sales * Tier2&lt;br /&gt;
          Case 20000 To 39999.99: Commission = Sales * Tier3&lt;br /&gt;
          Case Is &amp;gt;= 40000: Commission = Sales * Tier4&lt;br /&gt;
      End Select&lt;br /&gt;
      Commission = Round(Commission, 2)&lt;br /&gt;
  End Function&lt;br /&gt;
  =Commission(25000)&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Call user-defined function in MsgBox==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Function CtoF(Centigrade)&lt;br /&gt;
   CtoF = Centigrade * 9 / 5 + 32&lt;br /&gt;
End Function&lt;br /&gt;
Sub Main()&lt;br /&gt;
    MsgBox CtoF(100)&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Convert Fahrenheit To Celsius==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub TestFahrenheitToCelsius()&lt;br /&gt;
  Debug.Print FahrenheitToCelsius(32)&lt;br /&gt;
  If (FahrenheitToCelsius(32) &amp;lt;&amp;gt; 0) Then&lt;br /&gt;
    Debug.Print &amp;quot;TestFahrenheitToCelsius: Failed&amp;quot;&lt;br /&gt;
    Debug.Assert False&lt;br /&gt;
  Else&lt;br /&gt;
    Debug.Print &amp;quot;TestFahrenheitToCelsius: Passed&amp;quot;&lt;br /&gt;
  End If&lt;br /&gt;
End Sub&lt;br /&gt;
Public Function FahrenheitToCelsius(ByVal TemperatureFahrenheit As Double) As Double&lt;br /&gt;
  FahrenheitToCelsius = (5 / 9 * (TemperatureFahrenheit - 32))&lt;br /&gt;
End Function&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Executing a Function Procedure from a Subroutine==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub EnterText()&lt;br /&gt;
    Dim strFirst As String, strLast As String, strFull As String&lt;br /&gt;
    strFirst = InputBox(&amp;quot;Enter your first name:&amp;quot;)&lt;br /&gt;
    strLast = InputBox(&amp;quot;Enter your last name:&amp;quot;)&lt;br /&gt;
    strFull = JoinText(strFirst, strLast)&lt;br /&gt;
    &lt;br /&gt;
    MsgBox strFull&lt;br /&gt;
End Sub&lt;br /&gt;
Function JoinText(k, o)&lt;br /&gt;
    JoinText = k + &amp;quot; &amp;quot; + o&lt;br /&gt;
End Function&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==function takes two arguments&amp;quot;s length and width&amp;quot;s and calculates the total area by multiplying them together==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     Function Area(Length, Width)&lt;br /&gt;
         Area = Length * Width&lt;br /&gt;
     End Function&lt;br /&gt;
Sub aSub()&lt;br /&gt;
     MsgBox Area(100, 50)&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==One of simplest possible custom functions==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     Function GetMyFavoriteColor()&lt;br /&gt;
        GetMyFavoriteColor = &amp;quot;Magenta&amp;quot;&lt;br /&gt;
     End Function&lt;br /&gt;
Sub mSub()&lt;br /&gt;
   MsgBox GetMyFavoriteColor()&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Select Case in a function==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Public Function AssignGrade(studScore As Single) As String&lt;br /&gt;
    Select Case studScore&lt;br /&gt;
        Case 90 To 100&lt;br /&gt;
            AssignGrade = &amp;quot;A&amp;quot;&lt;br /&gt;
        Case 80 To 89&lt;br /&gt;
            AssignGrade = &amp;quot;B&amp;quot;&lt;br /&gt;
        Case 70 To 79&lt;br /&gt;
            AssignGrade = &amp;quot;C&amp;quot;&lt;br /&gt;
        Case Else&lt;br /&gt;
            AssignGrade = &amp;quot;F&amp;quot;&lt;br /&gt;
    End Select&lt;br /&gt;
End Function&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use ElseIf in a function==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Public Function LoanCriteria(loanAmt As Single, numPayments As Integer, _&lt;br /&gt;
         moPayment As Integer, totInterest As Single) As Boolean&lt;br /&gt;
    If Abs(moPayment) &amp;gt; 400 Then&lt;br /&gt;
        LoanCriteria = False&lt;br /&gt;
    ElseIf Abs(totInterest) &amp;gt; (0.1 * loanAmt) Then&lt;br /&gt;
         LoanCriteria = False&lt;br /&gt;
    ElseIf numPayments &amp;gt; 48 Then&lt;br /&gt;
        LoanCriteria = False&lt;br /&gt;
    Else&lt;br /&gt;
        LoanCriteria = True&lt;br /&gt;
    End If&lt;br /&gt;
End Function&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Writing VBA Function Procedures==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Main2()&lt;br /&gt;
    Dim num1 As Double&lt;br /&gt;
    Dim myRoot As Double&lt;br /&gt;
    num1 = 10&lt;br /&gt;
    myRoot = SqRoot(num1)&lt;br /&gt;
    myRoot = Format(myRoot, &amp;quot;#0.00&amp;quot;)&lt;br /&gt;
    MsgBox &amp;quot;The square root of &amp;quot; &amp;amp; num1 &amp;amp; &amp;quot;is &amp;quot; &amp;amp; myRoot&lt;br /&gt;
End Sub&lt;br /&gt;
Public Function SqRoot(ByVal num1 As Double) As Double&lt;br /&gt;
    num1 = Sqr(num1)&lt;br /&gt;
    SqRoot = num1&lt;br /&gt;
End Function&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>