+ Reply to Thread
Results 1 to 6 of 6

Combined VBA line syntax

  1. #1
    Neal Zimm
    Guest

    Combined VBA line syntax

    Being mostly self taught in VBA I tried to combine lines a and b into c,
    using line d as an example from recording a macro.

    compiler did not like line c.

    How do you know when "combining" lines will work and when it will not?
    thanks.

    Cells(x, y).Borders(xlEdgeLeft).LineStyle = xlContinuous '' a
    Cells(x, y).Borders(xlEdgeLeft).Weight = xlThick '' b

    Cells(x, y).Borders(xlEdgeLeft) LineStyle:=xlContinuous, Weight:=xlThick '' c

    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    '' d


    --
    Neal Z

  2. #2
    Tom Ogilvy
    Guest

    Re: Combined VBA line syntax

    LineStyle and Weight are two separate properties of the Border object. You
    would select border in the Object browser and see if it had a method that
    supported an argument for setting lineStyle and Weight.

    As far as I know, there is no such method. the closest thing that does is
    BorderAround, but that would put a border all the way around the cell and,
    while it has LineStyle and Weight arguments the help says:

    You can specify either LineStyle or Weight, but not both. If you don't
    specify either argument, Microsoft Excel uses the default line style and
    weight.

    --
    Regards,
    Tom Ogilvy

    "Neal Zimm" <[email protected]> wrote in message
    news:[email protected]...
    > Being mostly self taught in VBA I tried to combine lines a and b into c,
    > using line d as an example from recording a macro.
    >
    > compiler did not like line c.
    >
    > How do you know when "combining" lines will work and when it will not?
    > thanks.
    >
    > Cells(x, y).Borders(xlEdgeLeft).LineStyle = xlContinuous '' a
    > Cells(x, y).Borders(xlEdgeLeft).Weight = xlThick '' b
    >
    > Cells(x, y).Borders(xlEdgeLeft) LineStyle:=xlContinuous, Weight:=xlThick

    '' c
    >
    > ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    > '' d
    >
    >
    > --
    > Neal Z




  3. #3
    Charlie
    Guest

    RE: Combined VBA line syntax

    I think it's because .Linestyle and .Weight are properties that are set to
    values, while .Protect is a method, which is like a subroutine that accepts
    arguments. Someone more advanced please correct me if I'm mistaken!

    "Neal Zimm" wrote:

    > Being mostly self taught in VBA I tried to combine lines a and b into c,
    > using line d as an example from recording a macro.
    >
    > compiler did not like line c.
    >
    > How do you know when "combining" lines will work and when it will not?
    > thanks.
    >
    > Cells(x, y).Borders(xlEdgeLeft).LineStyle = xlContinuous '' a
    > Cells(x, y).Borders(xlEdgeLeft).Weight = xlThick '' b
    >
    > Cells(x, y).Borders(xlEdgeLeft) LineStyle:=xlContinuous, Weight:=xlThick '' c
    >
    > ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    > '' d
    >
    >
    > --
    > Neal Z


  4. #4
    Charlie
    Guest

    RE: Combined VBA line syntax

    Let me be a little more explicit on the language syntax the compiler is
    expecting. Properties are used to set or get values:

    Object.Property = Value
    Value = Object.Property

    Methods are functions that are passed values as arguments

    Object.Method Arg1, Arg2, Arg3, etc.
    e.g.
    Worksheet.Protect "ABC123", True, True

    The arguments must be entered in the order the method is expecting them, and
    missing (optional) arguments must have commas as placeholders (except for
    missing arguments at the end.)

    Object.Method Arg1, , Arg3, , Arg5

    If you only want to supply specific arguments then you use the argument name
    in the following syntax (and the order is not critical)

    Worksheet.Protect Password:=”ABC123”, AllowFormattingCells:=True

    In your example you removed the dot between

    Cells(x, y).Borders(xlEdgeLeft)

    and

    LineStyle

    Effectively telling the compiler you wanted to call an unnamed method using
    two arguments, LineStyle and Weight

    Cells(x, y).Borders(xlEdgeLeft) LineStyle:=xlContinuous, Weight:=xlThick
    (no method name).....................^

    Clear as mud?

    "Charlie" wrote:

    > I think it's because .Linestyle and .Weight are properties that are set to
    > values, while .Protect is a method, which is like a subroutine that accepts
    > arguments. Someone more advanced please correct me if I'm mistaken!
    >
    > "Neal Zimm" wrote:
    >
    > > Being mostly self taught in VBA I tried to combine lines a and b into c,
    > > using line d as an example from recording a macro.
    > >
    > > compiler did not like line c.
    > >
    > > How do you know when "combining" lines will work and when it will not?
    > > thanks.
    > >
    > > Cells(x, y).Borders(xlEdgeLeft).LineStyle = xlContinuous '' a
    > > Cells(x, y).Borders(xlEdgeLeft).Weight = xlThick '' b
    > >
    > > Cells(x, y).Borders(xlEdgeLeft) LineStyle:=xlContinuous, Weight:=xlThick '' c
    > >
    > > ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    > > '' d
    > >
    > >
    > > --
    > > Neal Z


  5. #5
    Neal Zimm
    Guest

    Re: Combined VBA line syntax

    Thanks. will do. was just trying to save a little coding time.
    Neal


    "Tom Ogilvy" wrote:

    > LineStyle and Weight are two separate properties of the Border object. You
    > would select border in the Object browser and see if it had a method that
    > supported an argument for setting lineStyle and Weight.
    >
    > As far as I know, there is no such method. the closest thing that does is
    > BorderAround, but that would put a border all the way around the cell and,
    > while it has LineStyle and Weight arguments the help says:
    >
    > You can specify either LineStyle or Weight, but not both. If you don't
    > specify either argument, Microsoft Excel uses the default line style and
    > weight.
    >
    > --
    > Regards,
    > Tom Ogilvy
    >
    > "Neal Zimm" <[email protected]> wrote in message
    > news:[email protected]...
    > > Being mostly self taught in VBA I tried to combine lines a and b into c,
    > > using line d as an example from recording a macro.
    > >
    > > compiler did not like line c.
    > >
    > > How do you know when "combining" lines will work and when it will not?
    > > thanks.
    > >
    > > Cells(x, y).Borders(xlEdgeLeft).LineStyle = xlContinuous '' a
    > > Cells(x, y).Borders(xlEdgeLeft).Weight = xlThick '' b
    > >
    > > Cells(x, y).Borders(xlEdgeLeft) LineStyle:=xlContinuous, Weight:=xlThick

    > '' c
    > >
    > > ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    > > '' d
    > >
    > >
    > > --
    > > Neal Z

    >
    >
    >


  6. #6
    Neal Zimm
    Guest

    RE: Combined VBA line syntax

    Charlie -
    Clearer than mud, sure. the 'method' terminology clears it up. I've
    just got to learn more about that. I left the blank on purpose trying to
    emulate the protection method without realizing the import of what I did.
    Live and Learn.
    thanks,
    Neal


    "Charlie" wrote:

    > Let me be a little more explicit on the language syntax the compiler is
    > expecting. Properties are used to set or get values:
    >
    > Object.Property = Value
    > Value = Object.Property
    >
    > Methods are functions that are passed values as arguments
    >
    > Object.Method Arg1, Arg2, Arg3, etc.
    > e.g.
    > Worksheet.Protect "ABC123", True, True
    >
    > The arguments must be entered in the order the method is expecting them, and
    > missing (optional) arguments must have commas as placeholders (except for
    > missing arguments at the end.)
    >
    > Object.Method Arg1, , Arg3, , Arg5
    >
    > If you only want to supply specific arguments then you use the argument name
    > in the following syntax (and the order is not critical)
    >
    > Worksheet.Protect Password:=”ABC123”, AllowFormattingCells:=True
    >
    > In your example you removed the dot between
    >
    > Cells(x, y).Borders(xlEdgeLeft)
    >
    > and
    >
    > LineStyle
    >
    > Effectively telling the compiler you wanted to call an unnamed method using
    > two arguments, LineStyle and Weight
    >
    > Cells(x, y).Borders(xlEdgeLeft) LineStyle:=xlContinuous, Weight:=xlThick
    > (no method name).....................^
    >
    > Clear as mud?
    >
    > "Charlie" wrote:
    >
    > > I think it's because .Linestyle and .Weight are properties that are set to
    > > values, while .Protect is a method, which is like a subroutine that accepts
    > > arguments. Someone more advanced please correct me if I'm mistaken!
    > >
    > > "Neal Zimm" wrote:
    > >
    > > > Being mostly self taught in VBA I tried to combine lines a and b into c,
    > > > using line d as an example from recording a macro.
    > > >
    > > > compiler did not like line c.
    > > >
    > > > How do you know when "combining" lines will work and when it will not?
    > > > thanks.
    > > >
    > > > Cells(x, y).Borders(xlEdgeLeft).LineStyle = xlContinuous '' a
    > > > Cells(x, y).Borders(xlEdgeLeft).Weight = xlThick '' b
    > > >
    > > > Cells(x, y).Borders(xlEdgeLeft) LineStyle:=xlContinuous, Weight:=xlThick '' c
    > > >
    > > > ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    > > > '' d
    > > >
    > > >
    > > > --
    > > > Neal Z


+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1