Question: I'm trying to use a loop to shorten the last part of my VBA code. 

The current code I have is:

```
Sub InsertPics()

Dim WordApp as Object
Dim WordDoc as Object

Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.Documents.Open("Testing.docx"

WordApp.Visible = True

Dim path() as Variant
Dim i as Long
Dim Pic as Variant

path = Application.Transpose(Sheets("Selection").Range("N10:N24").Value)
For i = LBound(ppath) To UBound(ppath)
    path(i) = Sheets("Output").Range("Directory").Value & "\" & path(i) & ".jpg"
Next i

Set Pic1 = WordDoc.InlineShapes.AddPicture(path(1), False, True).ConvertToShape
Set Pic2 = WordDoc.InlineShapes.AddPicture(path(2), False, True).ConvertToShape
Set Pic3 = WordDoc.InlineShapes.AddPicture(path(3), False, True).ConvertToShape

End Sub

```

The `Set Pic()` part goes on for quite awhile so I'm looking for a way to do the same sub with a shorter code. Is there a way to loop this part?

Note: `WordDoc` refers to a specific word document, `path()` refers to a list of directory addresses that I've already defined.

Answer: 
A byte will store -128 to +127. This could help form some documentation, for example it could be used to store a percentage, e.g.

`byte pcentComplete = 99;`

However, naming the variable is far more important than deliberately limiting it.
A byte is generally uses when there is a large array or stream of 8-bit bytes. If there is only one value, I just use an `int` or a `long`. A byte might indicate a small number, but code which checks a valid range is better.

```
public void setPercent(int percent) {
    if (percent < 0 || percent > 100)
        throw new IllegalArgumentException("Invalid percent: " + percent);

```

I find a `byte` is only meaningful as a description of range is the valid value is exactly -128 to 127 or 8-bit. (Unsigned byte would be more appropriate really)