According to [MSDN](http://msdn.microsoft.com/en-us/library/ms234766.aspx), this function is already implemented:

<!-- lang: lang-vb -->

    ' Code from MSDN
    '
    Dim myString As String = "ABCDE" 
    Dim myChar As Char 
    ' The value of myChar is "D".
    myChar = myString.Chars(3)

<hr>
**A review of your code**

- Please indent your code.
- I would choose another, more meaningful name for your function: `getCharAt` or `getByteFromString`. It is now clear that the function operates on a string.
- I would use the clearer parameter name `str` instead of `s`.
- "Compress":
      
        place = place + 1
        getbyte = Mid(s, place, 1)

        ' change to
        getbyte = Mid(s, place + 1, 1)

  The first version is definitely not wrong or ugly, but why use an extra line if we could express the same logic in the same clear manner?

- You could use [`If`](https://stackoverflow.com/a/576466/603003) to shorten your code:

        Private Function getbyte(str As String, ByVal place As Integer) As String
          getbyte = If(place < Len(str), Mid(str, place + 1, 1), "")
        End Function