English

# How To: Calculate X, Y, and Z values in an attribute table using Field Calculator

## Summary

```Note:
These instructions are for ArcGIS 8.x and 9.x only. ArcGIS version 10.0 is the last version of ArcGIS to support Microsoft Visual Basic for Applications VBA).```

Instructions provided describe how to calculate X, Y, and Z values in an attribute table using the Field Calculator and Visual Basic for Applications (VBA).

```Note:
These code examples return a value of type 'double', so use them to calculate either an existing field of type 'double' or a new field of type 'double' that has been added to the table.```

## Procedure

This procedure can be used with new or existing fields in an attribute table. If it is necessary to add new fields to the attribute table, see the ArcGIS Desktop Help topic 'Adding and deleting fields in a table'.

1. Add the point layer to ArcMap.
2. Start Editing.
1. Select Editor Toolbar from the Tools menu, if the Editor Toolbar is not already open.
2. Click Editor and select Start Editing from the pop-up menu.
3. Select the data layer for the list box, and click OK if prompted by the Start Editing dialog box.
4. Set the Target drop-down list to the layer to edit.
3. Right-click the layer and select Open Attribute Table.
4. Right-click the field to modify, and select Calculate Values.
5. Check Advanced. Two empty text entry boxes are present.
6. Paste the following code into the Pre-Logic VBA Script Code text box.
```Code:
Dim Output As Double
Dim pPoint As IPoint
Set pPoint = [Shape]
Output = pPoint.X ```
1. In the Expression line, the small, one line area below the Pre-Logic box, type Output and click OK to calculate the field.
```Note:
The units of the calculated values are the units that the features are stored in, not the map units or display units of the data frame  currently worked on.
```
```Note:
If the data is stored in feet, the calculated values appear in feet. To allow calculated data to be in different units, other than the data's units, do one of the following:
Add a conversion into the calculation expression.
Project the data into a coordinate system that uses the units the values should be in, and then perform the calculation. ```
1. Use the procedure described above for the Y and Z fields by changing the Output value.
To calculate for Y:
```Code:
Output = pPoint.Y```
To calculate for Z:
```Code:
Output = pPoint.Z```
```Note:
A 3D Analyst license is not required to extract Z values from the shape field of an existing 3D layer.```