Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
array of labels
I want to modify a UserForm dynamically by adding some number of labels from
my VB/Excel program: Dim labels() as MSForms.Label : ReDim labels(NumLabels) At this point I have an array of Labels with each value set to Nothing. If I do this: Set labels(0) = New MSForms.Label I get runtime "Invalid use of New keyword" and Help says I cannot reference a class name in this context -- I need to reference a specific object name, e.g. Label1. So I tried: Dim Label1 as MSForms.Label Set labels(0) = New Label1 and I get "User-defined type not defined" I have tried other things such as Dim labels() as New MSForms.Label and I also get errors. How do I programmatically create an array of Labels so that I can place them on my UserForm? |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
array of labels
Hi
I don't think you can do what you are trying to. I would put the required number of labels on my userform and leave the caption blank, then use VBA populate the labels needed. Regards, Per "Wiley Post" skrev i meddelelsen ... I want to modify a UserForm dynamically by adding some number of labels from my VB/Excel program: Dim labels() as MSForms.Label : ReDim labels(NumLabels) At this point I have an array of Labels with each value set to Nothing. If I do this: Set labels(0) = New MSForms.Label I get runtime "Invalid use of New keyword" and Help says I cannot reference a class name in this context -- I need to reference a specific object name, e.g. Label1. So I tried: Dim Label1 as MSForms.Label Set labels(0) = New Label1 and I get "User-defined type not defined" I have tried other things such as Dim labels() as New MSForms.Label and I also get errors. How do I programmatically create an array of Labels so that I can place them on my UserForm? |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
array of labels
I was trying to make one UserForm that could be modified at run time for a
few different callers. I'm a bit surprised that it can't be done, or at least the modifications I want can't be done. WP "Per Jessen" wrote in message ... Hi I don't think you can do what you are trying to. I would put the required number of labels on my userform and leave the caption blank, then use VBA populate the labels needed. Regards, Per "Wiley Post" skrev i meddelelsen ... I want to modify a UserForm dynamically by adding some number of labels from my VB/Excel program: Dim labels() as MSForms.Label : ReDim labels(NumLabels) At this point I have an array of Labels with each value set to Nothing. If I do this: Set labels(0) = New MSForms.Label I get runtime "Invalid use of New keyword" and Help says I cannot reference a class name in this context -- I need to reference a specific object name, e.g. Label1. So I tried: Dim Label1 as MSForms.Label Set labels(0) = New Label1 and I get "User-defined type not defined" I have tried other things such as Dim labels() as New MSForms.Label and I also get errors. How do I programmatically create an array of Labels so that I can place them on my UserForm? |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
array of labels
You can add controls to a userform during runtime, but I've always found it
much, much, much easier to just add as many controls as I'll ever need--but hide the ones that I don't need right away. Then I can unhide the ones I want when I need them. It makes life a lot simpler this way. John Walkenbach shows how to create a userform on the fly. This includes adding controls to that userform: http://j-walk.com/ss/excel/tips/tip76.htm This worked ok for me: Option Explicit Private Sub CommandButton1_Click() Dim iCtr As Long For iCtr = 1 To 3 With Controls.Add(bstrprogid:="Forms.Label.1", _ Name:="LBL_" & iCtr, Visible:=True) .Left = 5 .Top = iCtr * 15 .Height = 10 .Width = 200 .Caption = "Hi from " & .Name End With Next iCtr End Sub Wiley Post wrote: I want to modify a UserForm dynamically by adding some number of labels from my VB/Excel program: Dim labels() as MSForms.Label : ReDim labels(NumLabels) At this point I have an array of Labels with each value set to Nothing. If I do this: Set labels(0) = New MSForms.Label I get runtime "Invalid use of New keyword" and Help says I cannot reference a class name in this context -- I need to reference a specific object name, e.g. Label1. So I tried: Dim Label1 as MSForms.Label Set labels(0) = New Label1 and I get "User-defined type not defined" I have tried other things such as Dim labels() as New MSForms.Label and I also get errors. How do I programmatically create an array of Labels so that I can place them on my UserForm? -- Dave Peterson |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Excel 2007 text labels in category axis - missing labels | Charts and Charting in Excel | |||
How do i create labels so, could only move and type in labels only | Excel Discussion (Misc queries) | |||
Icons __AND__ labels?! How do I get rid of toolbar LABELS! | New Users to Excel | |||
get all the labels of all forms in array | Excel Programming | |||
Excel 2003 and Labels (NOT Address Labels) | Excel Discussion (Misc queries) |