This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Want to learn VBA for Microstation, Online Coarse or book, or VB scripting.

I want to learn to make program using VBA for Microstation. I would prefer to learn VBA not MDL since I would use that language or Excel or any other windows programs. I found a college coarse for Introductory to VBA. Which is not geared to any one windows program like Microstation. I assume this is not the best coarse to teach me how to program for Microstation. Any advise what kind of coarse I should be looking for, maybe VB scripting?  I am not quite clear what is the difference between VBA vs VB scripting.  Maybe some kind of training book instead?

 I want to automate some routine task we do in Microstation. I have learned to program from a book before, with AutoLisp (autocad), which I greatly enjoyed. So I have some experience in programming. I am hoping to ideally spend 40hours learning VBA through a coarse or book, not sure if that is realistic. Any advise of what kind of coarse or book. If VBA scrip is the way for me, where can I find a coarse or which tutorial book would you recommend. Thanks.

Parents
  • Hello lbbss,
    There is a pretty good guide delivered with MicroStation located in the
    MicroStationVBA.chm file.

    Don't know of any VBA for MicroStation classes but there is a good book for
    learning:

    Learning MicroStation VBA by Jerry Winters published by Bentley Institute
    Press

    You can order it from Amazon or Bentley for about $90

    > I want to learn to make program using VBA for Microstation. I would
    > prefer to learn VBA not MDL since I would use that language or Excel
    > or any other windows programs. I found a college coarse for
    > Introductory to VBA. Which is not geared to any one windows program
    > like Microstation. I assume this is not the best coarse to teach me
    > how to program for Microstation. Any advise what kind of coarse I
    > should be looking for, maybe VB scripting? I am not quite clear what
    > is the difference between VBA vs VB scripting. Maybe some kind of
    > training book instead?
    >
    > I want to automate some routine task we do in Microstation. I have
    > learned to program from a book before, with AutoLisp (autocad), which
    > I greatly enjoyed. So I have some experience in programming. I am
    > hoping to ideally spend 40hours learning VBA through a coarse or book,
    > not sure if that is realistic. Any advise of what kind of coarse or
    > book. If VBA scrip is the way for me, where can I find a coarse or
    > which tutorial book would you recommend. Thanks.
    >
  • Actually, there are onDemand eLearning courses for MicroStation VBA -- those can be found starting on http://www.bentley.com/en-US/Training/Products/Resources/Books/

    More details on the "Learning MicroStation VBA" Bentley Institute book mentioned can be found on http://www.bentley.com/en-US/Training/Products/Resources/Books/Learning+MicroStation+VBA.htm

      

  • wow, that was quick.   Ok I found your email, will send you my info.  tx

  • I recently bought the book By Gerry Winters (learning MicroStation VBA) and I am really disappointed, I have very little VBA skills and I was hoping to improve them by purchasing this book. Everything went smoothly until chapter 5. I followed all the instructions in Chapter 5, Modules, Forms and Class Modules. I discovered that there are some steps left out in his instruction or else he did not properly review this part. He does not properly explain the steps to get this exercise working. If you have to try and follow this exercise step by step you will discover that it is absolute gibberish to a beginner.

  • Microsoft VBA is derived from Microsoft Visual Basic (VB).  Microsoft provide a VBA Toolkit so other parties, such as Bentley Systems, can incorporate VBA into their products.  As a result, MicroStation VBA is similar to other VBAs.

    Features common to all VBAs include the Interactive Development Environment (IDE), the various module types (Modules, Forms and Class Modules) and the language syntax.  The way the various VBAs differ is in the extensions they offer for a specific application.  For example, Word VBA offers ways to handle paragraphs of text; Excel VBA provides ways to handle data in a worksheet; MicroStation VBA provides ways to manipulate graphic elements in a DGN model.

    Look at other VBAs

    If you're struggling with MicroStation VBA, take a look at the way other vendors do it.  While there's only the one book about MicroStation VBA, there are plenty of others that provide sound advice for Word VBA, Excel VBA, etc.  There are also plenty of websites that deal with VB/VBA.

    I find that when one viewpoint doesn't help me understand a technical issue, often another viewpoint approaches the subject in a different way.  That different approach may illuminate a topic and lead you to that Bingo! moment.  Get hold of  a book about Excel VBA, and see if that discusses Modules, Forms and Class Modules in a way that is more enlightening for you.

     
    Regards, Jon Summers
    LA Solutions

  • Unknown said:
    I followed all the instructions in Chapter 5, Modules, Forms and Class Modules. I discovered that there are some steps left out in his instruction or else he did not properly review this part.

    I am not only new to Microstation vba but also vba in general. I agree, is difficult to follow the book. I did manage to get chapter 5 to work with the class module. First off I did not have my class module named clsTarget as the instructions said. Second, on page 53 the screenshot does not match the code listed at the bottom of the page at the part where it reads "And here is the code as it should be typed:" eventhough they are supposed to be the same. My code did not match the screenchot(which is correct) I typed my code to match the bottom of the page. The difference between the codes is the first line after the "Public" statements:

    Sub Draw(X as Double, Y as Double, Z as Double)

    The screenshot just shows Sub Draw()

    After removing the "Double" statements the program ran fine. I pulled my hair out trying to figure this out!

    I am currently using Microsoft's site for a learning vba tutorial for a better understanding of vba before moving forward with Microstation vba.

    Microstation CONNECT - 10.17.2.61

    ORD - 2021 R1 10.10.1.3

    ORD 2022 R1.1 - 10.11.3.2

    ORD 2022 R3 -  10.12.2.4

    Microstation v8i SS 10 - 08.11.09.919

    Power InRoads v8i - 08.11.09.615

    ProjectWise - 10.0.3.453

  • Bliksem,

    I have to agree with you. For a $90 book to have mistakes like this is unconscionable. It is difficult enough to learn a new programming language without having to fight with code that obviously has not been proofread. I looked online for a least an errata sheet but apparently none exists. Bentley is obviously aware that this book has errors. Come on Bentley, how about a simple errata sheet?

Reply
  • Bliksem,

    I have to agree with you. For a $90 book to have mistakes like this is unconscionable. It is difficult enough to learn a new programming language without having to fight with code that obviously has not been proofread. I looked online for a least an errata sheet but apparently none exists. Bentley is obviously aware that this book has errors. Come on Bentley, how about a simple errata sheet?

Children
  • Jonathan Martin said:

    Come on Bentley, how about a simple errata sheet?

    If you have any specific for instances, we will certainly look into them. TIA

      

  • Let me start with two in Chapter 5 that would be helpful,

    First, as Bliksem mentioned, the code on page 53 (towards the bottom of the page) has:

    Sub Draw (X As Double, Y As Double, Z As Double)

    That code will cause the program to fail. The correct code should be:

    Sub Draw()

    If you'll notice, the screen shot on the same page has the correct code.

    Another thing that would be useful (particularly to new programmers) is if somewhere in the text it mentions that the coding in Chapter 5 should be done using the design file called "Nothing.dgn." I started entering code using one of my blank design files and couldn't get the code to work. After just a bit of snooping, it occurred to me that the call to "nothing" wasn't a VBA call or variable, it was just the name of the design file. Might be nice if Jerry had mentioned that somewhere.

    I'll post any other problems as I come to them. I'm going to let the typos side (at least three in Chapter 5 and 6) because, after all, it is a technical book and grammar has no place in technology.

  • Got another one for you that I ran into today.

    In Chapter 10 we start in with the user interface on Page 167. A new form is created, a bunch code is added. You get to page 173 and a three line code is added which starts up the form. The code is:

    Sub DoCellInsertion()

      frmCellInsertion.Show vbModeless

    End Sub

    Great. The problem is, no where did it say to rename the form to "frmCellInsertion". So, if you are new to VB and you see that call, you probably aren't going to realize that it is calling the form by its name. It should be mentioned on page 168 when you are building the form that the name of the form needs to be changed.

  • I should get paid for this.

    Page 174, the Point List Reader. Thing is, it doesn't seem to work. Not by keying the code from the book or running the code from the CD.

    In the subroutine btnRead, the debugger doesn't seem to like the line:

    Open txtPointFile.Text For Input As #FFile

    Soooo... I'll try to brute force this one to figure out why it doesn't work, but, you know, an errata sheet... just sayin

  • Thanks... we will look into these things.