AfraLisp Blog

The AutoLisp/Visual Lisp/VBA Resource Website

AfraLisp Blog

Home Newsletter Utter Rubbish Coding Tips AutoCAD Tips Contact Downloads WAUN

Page I. Page II. Page III. Home.

VBA Primer - Page IV.

To populate our list box we need to first find a list of all the layers in our drawing. Double click on the form. (The form, not a control.)
The code window will open. From the Event Procedure drop-down list box in the right hand corner of the code window choose 'Initiliaze'.
Now add the following code to this event procedure: 

Private Sub UserForm_Initialize()
Dim AllLayers As Object
Dim Layer As Object
'declare local variables


Set AllLayers = ThisDrawing.Layers
'get the layers from the layers collection

For Each Layer In AllLayers
'for every layer listed

    ListBox1.AddItem Layer.Name
    'add the layer name to the list box
    
    Next
    'carry on looping
    
End Sub 

A list of all the layers in any drawing are kept in the Layers collection.
This coding is telling Visual Basic that when the form is initialized, get all of the layer names from the layers collection, and add them to the list box.
Run the program again. Your dialogue should now look like this :

Change Layer Dialogue

Now let's look at the coding for the OK button event procedure.
Double click the OK button and enter the following code under the click event procedure of the button : 

Private Sub CommandButton1_Click()

Dim Entity As Object
'declare variable as local

Me.Hide
'hide the dialogue box

Set ss = ThisDrawing.SelectionSets.Add("NEWSS")
'create a selection set reference

ss.SelectOnScreen
'select the objects to change

For Each Entity In ss
'for every entity in the selection set

    Entity.Layer = ListBox1.Text
    'change the layer to the layer name
    'selected in the list box
    
Next
'process the next entity

End
'end the programme

End Sub 

Now run the programme again. Select a layer from the list box and then select
some objects on your drawing. They should change to your selected layer. 
Well I hope this has given you a bit more of an idea what VBA is all about.
The application is far from perfect. There is no error checking and the items
in the list box have not been sorted. Maybe that is something that you could
work on now that you have had a taste of VBA. Have a look at the other sample
applications in this section. They cover large areas of VBA and all come complete with source coding. All the best and good luck with VBA...... 

If you would like to download this VBA Primer, stand on your head, say 'Yes Please' in French, place your mouse here and Click. Enjoy.......

Page I. Page II. Page III. Home.
 
The AutoLisp/Visual Lisp/VBA Resource Website

Copyright 1999-Perpetuity by AfraLisp

All rights reserved.
Information in this document is subject to change without notice.
Site created and maintained by Kenny Ramage

The AutoLisp/Visual Lisp/VBA Resource Website