Slashdot Mirror


Professional Excel Development

r3lody (Raymond Lodato) writes "Over the years, I've read a number of books on Excel programming. Each one seemed much like the previous one, generally talking about writing macros and creating data-entry forms. Professional Excel Development takes the concept quite a bit farther. Rather than giving you the same old tired lessons, this book goes into detail on exactly how to build professional level applications. It even explains how to make your Excel-based application look as though Excel had nothing to do with it. Suffice it to say, this ain't your daddy's Excel book." Read on for the rest of Lodato's review. Professional Excel Development: The Definitive Guide to Developing Applications Using Microsoft Excel and VBA author Stephen Bullen, Rob Bovey, John Green pages 936 publisher Addison-Wesley Professional rating 10/10 reviewer Raymond Lodato (rlodato AT yahoo DOT com) ISBN 0321262506 summary A remarkably detailed 'how-to' book on creating complete applications using Excel as a base.

The authors, Stephen Bullen, Rob Bovey, and John Green, show a level of sophistication well beyond the norm. They'd rather teach you the proper way to program instead of teaching you how to use Excel. In fact, the first thing they do is distinguish five different levels of usage: Excel users, Excel power users, VBA developers, Excel developers, and professional Excel developers. The book is written for the highest level, so expect a lot of depth.

Rather than simply show how to record a macro and reuse it, they start by talking about coding practices, naming conventions and application structure. That's followed by an entire chapter on worksheet design, including names, styles, validation, formatting and controls. After a chapter on add-ins, they launch into the topic of dictator applications, that is, applications that completely take over the Excel interface and look like a regular, non-Excel program.

The following chapters go into much more detail about wringing every ounce of functionality from Excel, and then turning to the operating system and Visual Basic for more help. After discussing data manipulation with databases, they talk about using XLLs and the C API, VB.NET, and writing Help files to complete the application. The entire structure of the book builds around a time-entry application that is developed from a simple spreadsheet to a full-blown, production quality program. A CD-ROM is also included with all of the source code and multiple examples that are scattered throughout the book.

Reading Professional Excel Development is not something to be taken lightly. The authors have done a fine job putting together a cohesive methodology for using Excel as an application development platform. I know of no other book that covers this platform in such depth. At times I found myself lost in the details, but I suspect a "professional Excel developer" (which I am not) would be delighted in the depth of description and copious examples provided.

I tried to relate a lot of what Stephen, Rob, and John discussed to OpenOffice Calc, to see if it could be ported to an open source environment. I was surprised by how much actually came across. Granted, items in OpenOffice are sometimes in different places, or named differently, than their counterparts in Excel, but most of the same functionality is there. Unfortunately, most of the examples are written in VBA, which doesn't translate cleanly into OpenOffice. Still, with perseverance, you would probably be able to develop most of what is described in the book.

Professional Excel Development is an extremely well-written book that covers the use of Excel to a depth few authors have dared to tread. The text gives you the tools to build applications that are much more than automated spreadsheets. Almost any program your imagination can devise can be created using the techniques given, which is a testimony to the power of Excel. Bash Microsoft if you want, but they do sometimes come up with a winner, and Professional Excel Development allows you to take full advantage of its capabilities.

You can purchase Professional Excel Development: The Definitive Guide to Developing Applications Using Microsoft Excel and VBA from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

61 of 318 comments (clear)

  1. Professional Excel Development by ShaniaTwain · · Score: 4, Funny

    Isn't this like painting a house with tomato paste?

    you could do it, but why?

    1. Re: Professional Excel Development by Just+Some+Guy · · Score: 3, Insightful
      I'm with you. "Because you can" is a poor excuse for attempting something like that. There are plenty of F/OSS and proprietary development environments that are infinitely more suitable for application development than a scripted spreadsheet ever could be.

      Put another way, I don't do accounting in Python - why would I want to write applications in Excel? Spreadsheets are the right tool for quite a few jobs, but this isn't one of them.

      --
      Dewey, what part of this looks like authorities should be involved?
    2. Re: Professional Excel Development by Otter · · Score: 4, Insightful
      Excel is a fantastically powerful, flexible tool, and also has a portability advantage when working with people who have Office installed, but not Perl or Python (i.e. pretty much everyone). The fact that people here don't know how to do anything more complicated than adding column A to column B doesn't change that.

      Now, if they'd only let me use a Mac at work, instead of making me run Excel on this hideous OS...

      Obligatory link to the god of Excel programming...

    3. Re: Professional Excel Development by Anonymous Coward · · Score: 5, Insightful

      If you are using spreadsheets to do your accounting it sounds like maybe you still need to work on this "right tool for the job" thing (unless you've just written a fantastic double-entry system in VB for Excel).

      And I can think of lots of reasons to write applications in Excel. The best one being that you probably already have it on your machine (no need to purchase a development environment). Another good one being that probably most of your users will have the "platform" to run your application. What else? How about an insanely good function library, including some amazing graphing tools?

      I try to stay away from MS in general, but you can do a lot worse than developing in Excel.

    4. Re: Professional Excel Development by blincoln · · Score: 3, Insightful

      Excel is a fantastically powerful, flexible tool, and also has a portability advantage when working with people who have Office installed, but not Perl or Python (i.e. pretty much everyone). The fact that people here don't know how to do anything more complicated than adding column A to column B doesn't change that.

      I'll give you that. You can do some cool stuff with Excel.

      But why use it as essentially an application runtime when you could be using .NET, or Java, or C/C++?

      If the advantage is supposed to be that it gives you a basis for storing data, my response would be that spreadsheets are not databases (as much as office workers like to pretend they are), and trusting production data to an XLS or CSV file is unwise.

      The idea of developing "professional" application in Excel seems to me like ricing out a base model Civic and pretending it's a real race car. You can do it, and the Civic will go pretty fast, but why not get an actual sports car instead of putting a ton of time and effort into working around the limitations that come from starting with a family vehicle?

      Years ago I worked at an internal corporate help desk, and I saw way too many people spending way too much time doing wack-ass shit in Excel when they could have used Access and done it all with a single SELECT statement.

      This is even more extreme: developers tying themselves to what is not only a proprietary platform, but one that will almost certainly break their app as soon as MS releases the next version.

      --
      "...always new atoms but always doing the same dance, remembering what the dance was yesterday." -Richard Feynman
    5. Re: Professional Excel Development by Otter · · Score: 3, Informative
      You make me laugh. Excel is MORE PORTABLE than Perl or Python?

      Yeah, God forbid you should bother to read all the way to the end of that sentence.

      Excel is more portable than a Perl script in the sense that nobody (to a reasonable approximation of nobody) has Perl installed, or would know what to do with it if they had it. (Yes, I'm sure some way to generate freestanding, cross-platform Perl executables exists. I was about to tell flamers not to bother, but, come to think of it, I'd love to see a link.)

    6. Re: Professional Excel Development by foobsr · · Score: 3, Insightful

      Put another way, I don't do accounting in Python - why would I want to write applications in Excel?

      The client is willing to sign a cheque.

      CC.

      --
      TaijiQuan (Huang, 5 loosenings)
    7. Re: Professional Excel Development by ConceptJunkie · · Score: 2, Insightful

      Yes, use a Microsoft tool because everyone has it. This is /., right?

      Excel is a very good tool (unlike Access which has no redeeming qualities), but based on my experience, any time you try to develop an application on anything but a real application development system, your app will be difficult to create, difficult to debug and look like crap.

      This includes Excel, Access, and as far as the looking like crap part, Java.

      --
      You are in a maze of twisty little passages, all alike.
    8. Re: Professional Excel Development by slantyyz · · Score: 5, Insightful

      A lot of people don't realize that Excel is sometimes a political choice for software development.

      The very fact that Excel is considered a desktop application allows departments to get away (not necessarily rightly so) with creating applications in Excel without having to go through as many approval channels.

      The fact that Excel has an IDE that lets you do many of the things you can do in VB allows you to do sophisticated application programming that can slip under the nose of some bureaucrats.

      I spent a couple of years doing Excel programming after doing "Enterprise" development. It paid the same as my previous work, and for my client, Excel was the platform of choice, simply because the development effort didn't require the involvement of the IT department and its associated red tape. Once I got accustomed to the fact that I could do anything that I could do in a normal development platform, I quickly got over the fact that I was doing Excel work. I used to snicker at the thought of doing Excel and Access work before. But business logic is business logic, so I guess it doesn't really matter what platform you're working on.

      Obviously Excel isn't the programmer's first choice, but it is a capable platform. The business reasons for using Excel as a development platform may be misguided, but it doesn't mean you shouldn't use the same practices that you would use to write anything in any other dev platform. I would think that the goal of the reviewed book is to ensure that.

    9. Re: Professional Excel Development by belroth · · Score: 2, Interesting
      Yes, use a Microsoft tool because everyone has it
      Where I develop on Excel is at work, so yes everybody has excel. I mainly use excel for process automation type stuff on an application server actually - I can use perl and lots of other FOSS on my workstation, but getting approval to use it on a production server is another thing entirely.
      The reason I use excel is because I can do just about anything I want (using a nice library of API function wrappers I've written) and it doesn't cost anything - they won't buy me a full copy of VB6 so I can get away from the stupidity of using a spreadsheet to 'host' an application...

      Excel is a very good tool (unlike Access which has no redeeming qualities)
      Not that I'm a big fan of Access but I use that in preference to excel now for one reason - you can pass parameters using the cli. Excel is very weird from this p.o.v - you can sort of pass a parameter from the cli but only if it's exactly 4 chars! At least that's what I found with excel97 and I haven't bothered checking since I found that Access is more useful - well if you don't mind having to parse your command line parameters in a macro (not VBA) and then calling a VBA function to handle the paramters. I didn't say it wasn't ugly, I just said it worked.

      I just wish they'd let me use perl or Java/JNI - I'd give common lisp a shot too if I could work out how to access the win32 api. .Notice that they're all free - I know I won't get a budget.

      --
      I hereby inform you that I have NOT been required to provide any decryption keys.
    10. Re: Professional Excel Development by Idou · · Score: 2, Interesting

      "Years ago I worked at an internal corporate help desk, and I saw way too many people spending way too much time doing wack-ass shit in Excel when they could have used Access and done it all with a single SELECT statement."

      This is only so true . . . this is also why I believe OpenOffice has the potential to really improve productivity in this area (drag 'n drop database creation integrated into the spreadsheet).

      --
      Sdelat' Ameriku velikoy Snova!
    11. Re: Professional Excel Development by Stephen+Bullen · · Score: 4, Insightful

      That's exactly what drove us to write the book. Over and over again, we've been called in to fix such Excel applications. Rather than say "Don't do that", we recognised that a great many people *do* develop business-critical applications using Excel, but don't have the toolset and mindset to write code that is robust, maintainable, etc. This book attempts to teach much of the discipline and techniques that that we'd expect in 'proper' development environments.

      Regards

      Stephen Bullen

    12. Re: Professional Excel Development by Stephen+Bullen · · Score: 2, Informative

      The business reasons for using Excel as a development platform may be misguided, but it doesn't mean you shouldn't use the same practices that you would use to write anything in any other dev platform. I would think that the goal of the reviewed book is to ensure that. Exactly that. And realising that in some cases, the business reasons are quite valid too, such as your application having an almost entirely user-configurable UI.

    13. Re: Professional Excel Development by hazem · · Score: 2, Insightful

      "Excel" and "development" don't belong in the same sentence.

      What... can't hack it?

      Let's put it this way. As an analyst (someone else here said that too), Excel is an indespensible part of my job. A lof of work I do is tedious and repititive. So, I write small macros to automate some of those tasks. The next thing I know, I've put a front-end on it and made an application out of it.

      I can't re-write it in some other development system because:
      1) I'm an analyst. And while I can program pretty well in a variety of languages, there is no budgetary justification for buying an IDE in some other language system

      2) Excel with VBA gets the job done quickly and well-enough

      3) I only intend to stay in this job for a year or two. The next person can use my app or leave it... but either way, they still have to manipulate the data on the spreadsheet.

      4) Ultimately, (tied to #3), it's the data and not the application that's important. Other people need to use the data in the spreadsheet, and I'll be damned if I waste a lot of time writing an application that inticipates everything they'll want to do with the data. They know how to use Excel to manipulate it they way they want.

      Uncommented coding in any language is a hardship, but it's also not exclusive to Excel and VBA. Lack of comments and poor programming practices are a symptom of a bad programmer, not a bad environment. And to be truthful, the VBA portion of Excel does, in fact, provide a decent development environment for a small-scale project. There are all kinds of facilities for structured programming - comments, functions/procedures, variables with scope and visbility.

      Really, it's not so bad. As somone else said, Excel is probably one of Microsoft's best products.

    14. Re: Professional Excel Development by GCP · · Score: 5, Informative

      When did Excel become a development environment?

      It became a development environment in version 1.0.

      Can I use Excel to compile my C++, Java and C# apps?

      It sounds as though you're confused about what software development really is.

      None of the Lisp or Scheme dev systems I use are capable of compiling your C++, Java, and C# apps. Likewise for my copy of Mathematica. Or the IBM mainframe I started out with or my current favorite Python/IDE combo. It sounds as though you don't realize that software development is a lot broader, with a much wider diversity of styles and tools, than your limited experience has acquainted you with.

      Excel is analogous to a scripting language in some ways, with easy scripting of powerful built-in functionality but certain semantics are represented visually instead of textually.

      It is also a functional programming platform that those with experience in functional programming immediately recognize and know how to exploit to great advantage. This is not an accident. Early spreadsheet engine designers were more familiar with functional paradigms than are most "C++, Java, and C#" programmers these days, so today's newbie programmers often don't even recognize the nature of the platform they're looking at.

      Excel is not a "platform". Excel is an application that you can control through Automation.

      Sure, sure. And Oracle isn't a platform, is it? Or Mathematica, or Matlab, etc. They're just big applications that you control through automation.

      Ah, I can tell you have limited development experience with _real_ applications that don't use Excel or Access as a "back-end".

      Oh, the irony is rich....

      Of course Excel is a platform, and an excellent one for certain types of work. I've used it for sophisticated and flexible financial modeling, nuclear effects data analysis, and genealogical data organization, among other things.

      I do agree with you about the quality of the built-in functions, though. I think the poster you were responding to may not realize how poorly implemented some of those built in functions are, from a numerical methods perspective. I tend to write my own implementations, using Excel primitives, instead of using Excel's fancier functions (e.g., random num generation, internal rate of return, etc.), and there are times when I'll prototype in Excel but end up doing the production implementation partially in C. The same can be said for Python, though. It doesn't mean that Excel and Python aren't real platforms.

      --
      "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
    15. Re: Professional Excel Development by Stephen+Bullen · · Score: 2, Informative

      Part of my confusion about the premise for this book is (like I said) what it's supposed to buy you.

      A great many applications start in Excel for no better reason than that's what's on the desk of the business user (i.e. not a trained IT developer) starting out recording and writing VBA code to make their main job easier. As their knowledge of VBA increases, they do more and more complex and involved things, but typically don't think about many of the topics 'professional' developers would consider - such as whether the solution is scalable, maintainable, robust, secure, etc.

      It's not until people realise that their application has become business-critical that they start to think about the risks, and might even ask the IT Dept to help in managing it. The first time IT see the application, it's a mess of unstructured, uncommented, undocumented code.

      The premise for the book, then, is to try to get those 'developers' to think about the bigger issues early on, and provide the techniques and mindset for them to approach their development in a manner that will (hopefully) result in their Excel-based applications being much higher quality and easier for IT to adopt, if that need arises.

    16. Re: Professional Excel Development by ConceptJunkie · · Score: 2, Interesting

      Access allows you to distribute a relational database, a user interface, and reporting capabilities in one file.

      I can too, with PKZip. ;-)

      You've got a point, but my boss has a Project Management System written in Access 2000 by a friend of his, and it is my opinion that it would be easier to rewrite the app with Visual C++ rather than make the changes and improvements we need. It would take a little longer up front, but save huge amounts of time in the long run. Of course, I'm far from an expert in Access, but it's a big hassle to use and for something written in 2000, it looks like a state-of-the-art GUI from say, 1990.

      As with any tool by Microsoft (including MFC), if you stick to the narrow domain of functionality it supports, it's an easy too to generate a GUI, but the moment you want to do something a little off the path, you'll find yourself completely lost in the weeds.

      --
      You are in a maze of twisty little passages, all alike.
  2. Professional Excel Development? by Shant3030 · · Score: 5, Funny

    Sounds like an oxymoron to me.

    --
    100% Insightful
    1. Re:Professional Excel Development? by Mikkeles · · Score: 2, Funny
      'Excel: n.
      Something people use to run their business.'

      You misspelt 'ruin'.

      (No, I'm not bitter that I didn't get in first with the oxymoron comment.)

      --
      Great minds think alike; fools seldom differ.
  3. limits by vinnythenose · · Score: 2, Interesting

    So as long as the spreadsheet it's based on never has more than 65536 entries.... or has that limitation finally been removed?

    --
    --- I used to moderate, then I read the -1 articles and decided having to filter through them was not worth it.
    1. Re:limits by steve6534 · · Score: 2, Informative

      Nope.. It's still there in Office 2003

    2. Re:limits by seatbelt123 · · Score: 3, Insightful

      That is the limit for displaying rows of data. Most users probably don't want or need to see that many records. You can use a pivot table to connect to an external datasource (oracle, text, xml, etc) without any limitations.

    3. Re:limits by klubar · · Score: 2, Informative

      Actually those limits are per sheet. A workbook can have (I think) 256 sheets, so the total is 65000 * 256 * 256. That said, for some applications excel is a reasonable compromise. Use the built-in functions to let people enter and manipulate the data, add a few macros to do some magic and you've got a slick application in a hurry. Users trust excel and feel comfortable with the spreadsheet look. Duplicating the look and feel with some other application is a lot of work for not much benefit. k

  4. Experience helps too by chris09876 · · Score: 3, Interesting

    Although it's necessary to get a good idea of how the tool (any tool) works, you really can't replace good experience working with a spreadsheet.

    Knowing how the technology works is one thing, but knowing how to set up your tables and the data they contain is key. Depending on your use of the spreadsheet, and what you hope to get out of it, there are different ways you can organize worksheets/data. ...without doing things a number of times and thinking through how the system you're going to be building will be used, you'll likely end up with something inferior. Only experience can help you out there. coding practices, naming conventions and application structure are a good start, but that's about it.

  5. excel?! by petermgreen · · Score: 2, Insightful

    hmm excel? isn't that what everyone here complains about leading to a huge mess of macros backed onto a spreadsheet that was never intended for it.

    if you think something will grow beyond a triviality a database is a much better idea

    --
    note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
  6. Programming? by daeley · · Score: 4, Funny

    My daddy didn't need Excel to make grocery lists, nor PowerPoint to give a speech, nor Word to send a letter.

    My daddy also called "spreadsheet programming" "math" and did it in his head or with a slide rule. ;D

    --
    I watched C-beams glitter in the dark near the Tannhauser gate.
    1. Re:Programming? by Anne_Nonymous · · Score: 2, Insightful

      I have spreadsheets that do more math in a second than your daddy could do in an entire day. That's what makes them useful.

  7. This better be for Office 2003 by MrAnnoyanceToYou · · Score: 3, Informative

    My advice is to not build huge applications in Office unless you have absolutely up-to-date versions. There are certain points in Office 97 / 2000 where you get to a critical load area of your code and suddenly die. Function calls are in the help but don't quite work properly. Old products aren't supported. I'm buying this book because I need it, but building an app with older tools - something many office users are relegated to - is not that great an idea.

    Note: this could all change in Office 2003.

    1. Re:This better be for Office 2003 by Decaff · · Score: 2, Insightful

      My advice is to not build huge applications in Office unless you have absolutely up-to-date versions.

      My advice is not to build any huge applications in Pffice, as sooner or later your versions won't be up-to-date, and porting this kind of thing between different versions of Office has been a huge and messy exercise in the past, and there is no guarantee it won't be in the future. There is a place for large amounts of code, and it is not tied to Office-type calculations. It should be in libraries which can then be accessed by any application. This is why Windows allows COM/ActiveX development.

  8. Amateur Access Development by Anonymous Coward · · Score: 2, Funny

    I fear that becoming pro will render my qualification for the upcoming Computer olympics void.

    Damn that Olympic committee!

    1. Re:Amateur Access Development by devoss · · Score: 2, Funny

      Excel development might actually be part of the special olympics, I'll check on that.

  9. God help us by oniony · · Score: 3, Informative

    Heaven forbid any of the traders in the investment bank I work in get a hold of a copy of this. It's bad enough as it is trying to get them to move over to the manageable, scalable applications we build for them without encouraging them to build more spreadsheet solutions.

    --

    Powered by onion juice.

  10. all hail the ignorant masses! by Jailbrekr · · Score: 4, Insightful

    To quote the first two:

    "Professional Excel Development? Isn't that an oxymoron?"

    "Professional Excel Development is like painting a house with tomatoe paste"

    The entire financial sector bases its existance on Excel. Brokers, bankers, and virtually every banking or stock related position has a deep dependance on Excel. Laugh all you like at the thought of a professional excel developer, but I highly doubt that these firms will simply drop Excel in favour of some smelly nerds coding in C#.

    --
    Feed the need: Digitaladdiction.net
    1. Re:all hail the ignorant masses! by Arker · · Score: 3, Insightful

      Umm no. The financial sector uses mainframes, minicomputers, serious database applications... and in many cases even the clients are on OS/2. You may see excel on the desktop of some mid-level folks in the sector, but claiming that 'the entire financial sector bases it's existance[sic] on Excel' is ludicrous in the extreme.


      The stereotype/gratuitous insult about 'smelly nerds' just adds confirmation - you haven't a clue what you're talking about.



      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    2. Re:all hail the ignorant masses! by Gailin · · Score: 2, Informative

      I personally work for an S&P 500 company whose primary role is as a bank, and providing financial services to other companies.

      I whole-heartedly agree that excel is used a lot when it comes to sharing data amongst colleagues or when providing reports.

      But the serious number crunching, the real work and administration is done mostly with Mainframes and Oracle databases, which are accessed by Delphi, J2EE, and proprietary C++ apps.

      Not that my experiences invalidate your assertion. I just figured I would toss in my own anectdote.

      Gailin

      --
      I wish there was a fscking blue pill
    3. Re:all hail the ignorant masses! by Uber+Banker · · Score: 2, Informative

      Are you serious?

      bFinance house:

      Back office: Provide accounting and valuation methods. Typically work off a c-tree database system. Little reason to reinvent the wheel in this role, the scope of back office has been covered by 20 years+ by existing systems.

      Middle office: Provide performance and risk analysis. This may be abstract benchmarking to defined verification of back office. Work tends to be more 'ad-hoc' than back office, may use a variety of systems, often likely to include linking to a (several) 3rd party databases and importing that data to a flexible ad-hoc environmeny for analytical manipulation: Excel VBA + 3rd party database APIs are an ideal fit.

      Front office: Make the investment decisions. Based of a variety of models. Usually involves quant. I question: What can a mainframe do that a 3GHz P4 with data/filtered data loaded in memory can't do? 5-10 years it was a different question. Desktops today, with the investment manager using Excel, Matlab, SAS, whatever, are able to do what they want. Manipulating 5 million database entries takes seconds with decent code. What is a mainframe needed for other than promote incredably inefficiient databse lookups?

      The serious database apps used tend not to be that serious. Back office do things on 30 year old tech which is audited and trusted. Front office use constantly changing models hacked together with whatever whim the imvestment mnager has, middle office tie in front to back office.

      There is no fantastic use of mainframes or serious databse applications. Analytical databases used tend to be 3rd party (Bloomberg, Datastream, Reuters). The only serious in-house database I have experience with was set up by the IT department: 1 million ish records, 3 years late, 2 million USD over budget. That's a joke. A modern desktop can perform a huge amount of calculations on the fly. A good aspect of the increase in calculation power these days has led to the use of computing power as a commodity and people are paying much more attention to the specification and interpretation of financial models. Screw mainframes, they're defunct, cheap computer power fuels interpretation/analytics of stats.

  11. Papa? by blueadept1 · · Score: 3, Funny

    Suffice it to say, this ain't your daddy's Excel book. You know what, it's generalizations like this that make me sick. My father is a professional Excel developer, and he would be VERY disgusted to hear this comment.

  12. I know where they use excel by Mantorp · · Score: 3, Insightful

    It's called the real world, based on the ridiculous comments thus far I suggest a visit.

  13. but what I really want by Soong · · Score: 2, Interesting

    Is a light weight Free/free spreadsheet either written in Java or otherwise ported to MacOS X. I specifiy "light weight" because OO.org seems just as bulky and bloated as M$-ware.

    --
    Start Running Better Polls
  14. Yes people develop excel, no not with VBA by geekoid · · Score: 2, Interesting

    it's called VSTO. You can creat a full expandable, scalable application with it.
    I know, I am doing it now.
    It doesn't use macros, or VBA. You can write clean OO code.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  15. Re:Programming by poot_rootbeer · · Score: 3, Insightful

    Please don't let your students use basic or visual basic, it will destroy any chance of learning to write real code.

    Malarkey. I started programming in Tandy BASIC in the early 1980's, and it didn't instill in me any bad habits that I was unable to shake once I moved on to Pascal, C, C++, Perl, Java, etc. "GOTO Considered Harmful"? In modern high level languages, yes, we have more elegant syntaxes for branching. But in assembly, what is a JMP instruction anyway but a GOTO?

    Visual Basic, I have no experience with and do not wish to gain any.

  16. Re:Uh, yeah.. by ScentCone · · Score: 5, Insightful

    But it's certainly possible to approach the range of things that Excel can do (which are substantial, especially when you use ODBC, etc., to patch into huge databases, etc) with a professional set of skills and business sensibilities.

    A well-conceived Excel file can carry with it everything you need for a pretty elaborate bunch of data crunching and presentation, and that can hop from machine to machine very easily. Sales people in the field working up quotes, or managers chewing on inventory info before making a buying decision at a meeting - certainly they could just "use" a spreadsheet to do all of that, but having a purpose-specific UI sitting on top of it (without having to drag around other runtimes, etc) can really help when you're dealing with non-power-users.

    "Professional level" can also refer to presentation sensibilities. For example, wise use of font families and graphs can make the tool's output more useful in a wider variety of settings. A pro knows how to wrap it all up in a smooth package, even if some of the logic is very simple. But a huge, complex, what-if business plan package friendly to investor-type users... that's a very cool type of app, with Excel running under the hood.

    --
    Don't disappoint your bird dog. Go to the range.
  17. Excel - geeky clever stuff by datafr0g · · Score: 2, Interesting

    I've seen a hell of a lot of spreadsheets but these ones are brilliant. Space Invaders and Pacman coded in Excel.
    Each cell represents a pixel.

    --
    "Who says nothing is impossible? Some people do it every day!" - Alfred E. Neuman
  18. Productivity with VBA(R) scripting by ion_ · · Score: 2, Insightful

    With some Excel(R) scripting, you can create sophisticated applications that really boost your productivity.

    Here are some programs I use daily:

  19. Re:Uh, yeah.. by ALeavitt · · Score: 4, Interesting

    I'll bite: I'm masochistic enough to write complex apps in Excel. I'm pretty well-versed in Visual Basic, having used it since the 3.1 days, and I work in your typical cube farm. Everyone here "knows how to use Excel" but they often forget how to do those really complex things, like summing a column, or cutting and pasting. It got to the point where I was sick of dealing with inane help calls, so I started programming. Originally it was just going to be a few buttons to make everyone's life easier, but the project ballooned into a number of full-fledged programs that sit on top of Excel and hold the idiot-users' hands. I didn't initially set out to write a complex app in Excel, but I ended up doing it because it was the only way that many of the simpletons would accept and use the program... or even know how to run it.

    --
    This sig has been stolen. Return it to its original user for a reward.
  20. Kind of reminds me... by Evil+Butters · · Score: 2, Funny

    Kind of reminds me of that time Kif programmed that Holo-Shed program in just 4 million lines of BASIC.

    --
    Homer no function beer well without.
  21. Re:Is excel really for development? by Rude+Turnip · · Score: 2, Interesting

    I'm probably on the Excel crack pipe more than most people here and I would never call anything I do with it "development." I'm just building different types of models for financial analysis. The most complicated stuff I do involves linking to the Bloomberg DDE server to download closed end fund data and running Crystal Ball (a commercial Excel add-in) now and then for Monte Carlo simulations. Furthermore, I only use Excel to store limited types of data, such as weekly dumps of closed end fund data.

  22. Re:Is excel really for development? by Anonymous Coward · · Score: 3, Informative
    Do people really "develop" in Excel?
    As far as I'm concerned, if an environment is rich enough to implement pacman then, yes, you can "develop" in it.
  23. He picked the wrong title by InstBrad · · Score: 5, Insightful
    Had the book been called "Professional OpenOffice Development", this crowd would have fallen all over themselves praising it.

    It gets real tiring listening to all the folks that couldn't say a nice word about a MS product if you paid them. Guess what folks... there are millions and millions of people that use Excel in very sophisticated ways. Why? Because it works well enough. With the help of this book, maybe it will work even better.

    There are many ways to skin a cat. You haven't got a lock on God's One True Programming Language.

  24. Hmmm... by Bozdune · · Score: 2, Insightful

    You complain that your customers -- financial analysts all -- are building stuff in Excel. According to you this is bad. I kinda line up on their side of the fence on this one, sorry. You'll have to rip Excel out of their cold, dead fingers, or replace it with something much, much better. And that ain't Calc, which is a me-too, not an evolutionary step.

    I would think you'd be happy at seeing someone try to help these people build manageable Excel models and simple Excel apps. Let's face it:

    1) They will continue to do this, it's fundamental to doing their job. If they need to analyze something quickly, they can't wait for a bunch of quiche-eating Java weenies to argue about the object model for the next six months.
    2) There's nothing you can do to stop them.
    3) Really. Nothing.
    4) So you might as well help them to do what they do, only do it better.

    Reminds me of a Steven Seagal movie:

    "Well, if I can't control you, I might as well use you, right, son?"
    "That's affirmative, sir."

    But that's probably too practical a viewpoint for this forum.

    1. Re:Hmmm... by New+Breeze · · Score: 2, Informative

      Yup, people do it, you just can't stop them.

      Last month I worked on a solution that automated the production of analysis spreadsheets that had previously taken 1 person 20+ hours a week to enter data into. We're talking monsters that have 30000+ formulas in them, you have no choice but to turn automatic recalculation off. They're now done automatically and waiting for them when the users come in now.

      What did the customer do? Grin from ear to ear, and start building more spreadsheets that will need to be automated... Number crunchers are funny people, but they sign the checks.

  25. excel separates geeks from non-geeks by aurelian · · Score: 2, Insightful
    who is masochistic enough to even attempt writing a complex app in Excel?

    The mechanical engineers where I work for starters. Drives me nuts the ridiculous things they do with Excel when they should be using a programming language or something like Matlab..

    You see, because they don't know any better, they assume that there aren't any better ways of doing ANY calculation or programming task other than writing an excel macro. And so they create all kinds of mind-numbingly complicated spreadsheets doing things like Simpson's rule integration and finite-element modelling, and are proud of them.

    These guys are not stupid; they just have a massively greater tolerance for tedious & repetitive tasks than your average geek. In fact it's one of the main things that differentiaites geeks from non geeks, almost a sort of laziness, that means we would rather spend a day learning how to automate something with the proper tools, in a reusable fashion, than one hour doing it by hand each time.

  26. Cheaper at Amazon by Arkham79 · · Score: 3, Informative

    This book is $32.99 on the Amazon site - save yourself $17 and get it there instead. Here's the link (no value add for myself)

    --
    https://comerford.net
  27. Excel is a great "Swiss Army Knife" by Anonymous Coward · · Score: 3, Interesting

    Excel is reasonably powerful, very customizable, and, most importantly, very accessible to the normal user.

    Case in point - I served as a Mormon missionary for two years in South America. Five months of that was in the mission office making sure things ran smoothly (running logistics, renting apartments, materials, mail, etc.). The mission consisted of roughly 200 people.

    It didn't take long for me to realize that our office of four people was overstaffed and that two of us could be replaced if we used our technology resources more efficiently. Due to the widely different conditions missions around the world operate in (it's impossible to run 300+ units in more than 100 countries the same way), the church does not provide much in the way of standardized software - missions are left on their own.

    I was charged with creating programs to track inventory and missionary statistics (baptisms, contacts, etc.). I COULD have written the whole thing in C or C++ (only languages I knew at the time), but I opted for Excel and Visual Basic for Applications because I knew that it was very unlikely that there would be a steady stream of missionaries in years to come that could code in C or modify things if necessary. But, I was able to teach myself enough VBA in 24 hours to create programs that could do everything I wanted them to do, and they're still used today. They also turned out to be flexible enough to be used elsewhere - I hear that four other missions are using variants of the software I created almost 3 years ago. In the end, our office staff was cut down to two, and even those without great technical knowledge can be used to fill the jobs.

    Excel really is like a Swiss Army Knife - not really the best at anything, but versatile and easy enough for anybody to use.

  28. Re:SQL? by Lemmeoutada+Collecti · · Score: 4, Interesting

    I've been reading all the whines about this language or that language. Here is a challenge for you:

    1) You have the following data sources: Oracle, Access, CSV Files, Microsoft SQL, and IBM DBase
    2) You need to generate a set of reports for a management group (more than three PHB's involved)
    3) One of these PHB's is the one who approves your paychecks
    4) You have at your disposal the following tools:A full development environment with IDE for C++, 5) Visual Basic, Java, and (X)HTML, Microsoft Office Pro XP
    5) The report has to be viewable by anyone at the company, all systems will have Office installed
    6) The workstations are locked down, and installing is not an option on the user end
    7) Some data will need to be gathered from other departments to complete the reports
    8) The reports must be in a form that can be put into a Powerpoint, because the PHB says so
    9) It is not 6:30 a.m. ***The meeting starts at 10:00 a.m.*** THIS MUST BE DONE IN TIME!

    What tool and approach would you use?

    I don't know about you, but I find that pumping data into Excel from Access using a bunch of linked tables and queries and doing the calculations and presentation in Excel to be a rapid way to keep receiving my paycheck. As much as I would love to have time to develop fully tested, object oriented, language of the day applications, I rarely have that option. Once I do develop something, it will change tomorrow. I am a data analyst. My job is not to build applications, it is to crunch numbers as rapidly as possible, analyze them, and explain in plain English what those numbers mean (sometimes in PHB English).

    I am going to use the tools that help me accomplish my job most effectively. Given the constraints, none of the programming languages to date allow me to do the analysis as rapidly as Excel. And yes, I do write Excel code, macros, and complex formulas. I also reuse the same ones again and again. They are objects in my environment.

    So if you have the time to leisurely tell your PHB that sure, the report he needs in three hours will take you six months to develop a solution for, we can certainly trade jobs!

    --

    You can have it fast, accurate, or pretty. Pick any 2.
  29. Programming is too hard... by cmacb · · Score: 3, Insightful
    1. Programming is too hard. Why can't I do simple things without writing a program?
    2. Let's come up with something to do ordinary math, tables, reports and so forth.
    3. Let's add higher math function, trigonometry, just in case people need those too.
    4. Oh, a macro language would be nice for repetitive tasks, and fancy formatting, multi-page printing, multi-dimensions.
    5. That macro language doesn't handle all the new features very well, let's model it after a real programming language,
    6. and put API calls in so it can be called from outside, or call to outside,
    7. or interface with a DBMS, or web pages, or any I/O device.
    8. That macro language needs to be compiled, and have object orientation.
    9. Programming is too hard.
  30. Excel's relevance to the real world. by avsed · · Score: 2, Interesting

    So many (frankly) BS comments about Excel's relevance to development....

    Where I work we have a team of ten people working with Excel directly supporting about double that number of traders (more than that if you look at our strategic projects). Every other software development group in our firm has more developers than traders paying for developers. We use Excel because it provides a UI that is unrivaled (and because of its rather good - but still not quite good enough for us - recalc engine). We're not idiots, we are the type of people who run multiple boxes and OSes at home, and our Excel development projects are almost psychotic in the way they push the boundaries of what is possible. We started with Life, then Tetris, then someone had to go and write an non-VBA Excel raytracer(!); more seriously we have written a macro meta-language for Excel and sophisticated profiling tools - as a firm we run distributed computing out of Excel, and I've worked with a single spreadsheet (dev time about 4 man months) that did everything (and then some) that an entire system (dev time 6 man years) did at a fund management firm I had worked at previously. That's what is possible with Excel and why it remains a popular choice in business.

    It's easy to be really very bad in Excel whilst thinking you're an expert. I've lost count of the number of people I've interviewed who call themselves experts but have no idea about what a volatile function is, or how to use maps/dictionaries in Excel VBA (if you don't know these, and think you're good - you're not!). You need to be a good coder, good designer, and have an appreciation for user interface design in order to be of any real use - just like when using a "real" language, except possibly more so, because it's so easy to do things really wrong in Excel. In short, don't underestimate the value of books like these.

    Best regards,
    Daniel

  31. Excel is not a DB by wiredlogic · · Score: 2, Insightful

    Repeat after me. Excel is not a database. Anybody with that many rows of data is likely not using Excel as a spreadsheet (performing calculations).

    If you do need to perform calculations on a dataset this large then either use a true database for storage and do the calculating in the client code or get a specialist tool like Matlab that can be used for numeric analysis.

    --
    I am becoming gerund, destroyer of verbs.
  32. The facts of life by Stephen+Bullen · · Score: 3, Informative

    Firstly, thanks for the review!

    Lots of the comments here have been about whether or not it is 'right' to develop applications based around Excel. As one of the authors of this book, I think that misses the point. The simple fact is that in the real world, there are lots of people who do develop such applications and really need to know some techniques that can make their programs much more robust, maintainable, etc.

    When teaching our children about the facts of life, we can lecture them about abstinence, let them know about lifestyle choices that might or might not be relevant, or we can teach them how to be prepared (physically and emotionally), safe, considerate and responsible. The latter is the attitude we've taken towards Excel development, while also teaching some advanced techniques that might help their activities.

    FWIW, more information about the book and a few sample chapters are available from my web site at http://www.oaltd.co.uk/ProExcelDev.

  33. Re:SQL? by Stephen+Bullen · · Score: 2, Informative

    What about making a real professional job using a [Postgre|My]SQL database instead and a web server? Instead of something that will just break by itself with time?

    FWIW, Chapter 23 explains how to do exactly that - using Excel as the fun, friendly and flexible front-end that all your users know well for the client-side data-entry and presentation, but communicating (2-way) with a web service for remote access to the data. The web service then stores the data in any format you like.

  34. Re:Excel is an OUTPUT format by HaydnH · · Score: 2, Interesting

    I'm currently working on an Excel/Access contract - not by choice, but I can't exactly install a PHP/PostgreSQL system as they have nobody that has ever heard of PHP let alone would know how to make a change to it.

    Access would cost a load to install on all the machines where as they already have Excel. Due to this we're creating the questionnaires in Excel which each member of staff can access and make changes to. The Access database then grabs the data from each completed questionnaire where statistical reports are generated.

    I hate Excel but it does have it's uses. I especially wish there were less bugs in it, for example: Try inserting an Active-X combo box in to an Excel 2000 worksheet and assign its ListFillRange to assign its options - then save the file, reopen and try to close it again and you always get prompted "do you wish to save?" even if you make no changes - even setting .saved to true in an onOpen event doesn't fix the problem - it's bloody annoying!

    Haydn.

    --
    Time is an illusion. Lunchtime doubly so. - Douglas Adams