Excelによる知識の集約」と題してVBAを使ったExcelの活用について解説しています。本稿では,そこで掲載した内容をさらに活用していただくため,Excel活用のためのVBAの基礎知識について解説します。2003などでも同様なことができますので,ご自身のオフィス環境に合わせて適宜読み換えてください。Vol.49のDRY特集では,VBAを使ってExcel仕様書を操作すればDRY原則が守れる,という趣旨の解説をしました。それは,本誌の読者の大半は,「⁠Excel......ケッ」という感じでの付き合いしかしていないのではないか,当然,JavaとPOIで操作はしても,VBAで操作できたりそれなりのIDEが組み込まれていたりすることは知っていても触ったこともないのではないか,という想定があったからです。した方にもVBAによるExcel操作について理解していただくため,ここではExcelのマクロ言語であるVBAとはどういうプログラミング言語かを説明します。VBAとは何かまず,用語の整理ですが,Microsoftのプロダクトで,現在,普通に利用できるVBには次の4種類があります。Explorerの制御,ASP(ASP.NETではなく)の制御に利用できるスクリプト言語で,ActiveScript仕様に基づいたCOMのコンポーネントです。VBScriptは,ビジネスシーンで,IEの制御用として良く利用されています。そのため当面フェードアウトはしないとは思いますが,レガシーです。6.0(VB6)のサブセットです。VB6一応,まだ現役のコンパイラ言語です。言語仕様としては,ほぼ後述するVBAと同等です。完全にレガシーな存在です。VBと言った場合,VB6を指すことがあるくらい,完成度と普及度を誇ります。VB7以降(VB.NET)現在,本来であれば「VB」という言葉が示すプログラミング言語ですが,いまだに単にVBと言うとVB6の意味になるところが問題です。Language;中間言語)を出力するコンパイラ言語です。調べるとわかりますが,よくできたプログラミング言語です。新しい機能を取り入れて変化を続けるC#の陰に隠れて,実際の利用状況などはよくわかりません。筆者の勤め先でも,C#は利用していますが,VBを使った開発というのは(VB6のメンテナンスは別として)見かけません。話で聞く分には,.NETへ移行した企業の大半はVBを使っているらしいです。Officeに統合されているマクロ言語です。言語仕様としてはVB6に相当します。EUC(エンドユーザコンピューティング)に広く深く使われているという話は聞きますが,意外なほどエンジニアは無視することが多いようです。実際,筆者も5年前くらいまでは,Rubyで操作することはあってもVBAを使うという発想は持っていませんでした。この記事を書きたくなるくらい,現在ではまずVBAでできないかを考えるように宗旨替えをしました。ExcelをCOMサーバとして利用できるのは,これらすべてのVBですが,Excelが組み込み言語として利用できるのはVBAだけです。VBAであれば,オフィス文書に統合できるため,配布の問題を考えなくても済みます。セキュリティ制約には抵触するかもしれません。DRY原則と知識の獲得ここまで読んで,「⁠いや待て」と思った方も,おられるのではないでしょうか。私はJavaのエキスパートで,最近Rubyも使えるようになった。Java,Ruby,VBといったALGOL系のプログラミング言語は,基本的な制御構造などは,どれもほとんど同じですので,学習といっても大したことはないということは別にしても,あまり,自分の使う技術については枠は作らないほうがよいと思います。DRY原則を,「⁠知識集約」という言葉だけで理解すると,1つのプログラミング言語に専念したほうが原則的に正しく感じるかもしれません。それは勘違いというものです。知識を集約すべきは,あくまでも「システム内」です。エンジニアの脳内は別の話です。書籍『達人プログラマー』では最初の章(まだDRY原則について言及する前です)で,「⁠知識ポートフォリオという観点からプログラマーが持っている,コンピュータ,仕事をしているアプリケーション領域,すべての経験について考えていくことにしましょう」と書いています。ポートフォリオという言葉が示すように,技術習得は,投資なのです。その観点から,まだ当分Excelを利用する可能性があるのなら(たぶん,あると考えたほうがよいでしょう⁠)⁠,Excelに投資するのはまったく正しいことです。成長株というわけではないので,メニューのあらゆる項目から,すべての設定方法まで,イルカのように知り尽くすまで投資するのは,控えたほうがよいとは思います。Excel著者プロフィールartonartonは,垂直統合型システムベンダーに勤務するソフトウェアエンジニアです。最近,名刺の肩書が「コンサルタント」になって、ちょっと混乱しています。Officeで好きなツールはPowerPoint,嫌いなツールは校正ありに設定したOffice:macのWord,2007では大好きなカイル君の不在が嘆きの種ですが,リボンのおかげでExcelがそれなりに使えるようになったのでまあいいかな,というところです。言うは易く行うは難し。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。