GEN MUTO'S HOMEPAGE  エクセル大事典  世間の誤ったエクセルのべからず集

エクセルExcel大事典 エクセル大事典TOPページへ
 ■ 世間の誤ったエクセルのべからず集
  エクセルのマクロでシステム開発するな!
 
■ さらにゲームを作るなんてとんでもないぞ!
 
エクセルでシステムを開発する。とういうと眉間にしわを寄せる人がいます。それもそのはず、エクセルは単なる表計算ソフトであって開発ツールではない。というのが世間一般の認識です。
でも、その人たちはエクセルのVBA機能をあまり詳しく知りません。マクロとVBAの違いもよくわかっていません。

マクロ機能とはあるアプリケーションに一連の自動実行させる機能を追加するためにユーザーが任意にデザインできる自動実行機能です。
Excelの場合、ツール>マクロ>マクロの記録によって記録される内容が、あなたが自動実行させたいマクロの部分になります。この内容は後から何度でも任意に呼び出せ、何回でも決められた定型処理をエクセルに実行させることができます。

VBAは言語の名前です。正しくはVisualBasic for Applicationsの略で、あのVisualBasic(ver6.0まで)と同じ文法を持つ由緒正しきプログラミング開発言語です。(以下VB=VisualBasic6.0)
しかもVBにできてVBAにできない機能はほとんどなく、工夫次第ではVBと全く遜色のない機能を提供できます。

たとえば、以下のプログラムはExcelゲームクリエイターの第一人者、「谷孝一氏」が作成したExcelで動作するシューティングゲーム「Super Excelon」です。

谷孝一氏公式サイト「猫とエクセル
これほどのゲームがExcelVBAで開発できるのです。 業務システムが開発できないと本気で思いますか?

実際、ExcelVBAはVBで可能なほとんどの処理を行うことができます。
詳しくはこの後の、「エクセルでVBA編」で述べますが、基幹システムを丸ごとExcelで開発することだって可能です。
ただし、そのためにはやはり守らなければならないルールと手法が存在します。
 
データベースはできるだけ外に持つ
一番最初に一番肝心なことを言いますと、エクセルの中に巨大なデータベースを持つことはあまりお勧めできません。
エクセルのワークシートは基本的に表であって、簡易データベース的な使い方はできますが膨大なデータを扱う場合はRDBMSという専門のリレーショナルデータベース管理システムを別に用意したほうが無難です。
どうしてもワークシートにデータベースを持つ必要がある場合は、実行系のブックとデータベースのブックを分けて構成することではるかに安全性が高めることができます。

それでもやはり、RDBMSのもつあの排他制御とトランザクション管理、ログファイルからのデータ復帰などは魅力的です。条件さえ許せば、RDBMSを使ったシステム構築をぜひ検討してみてください。

ところでExcelからでもVBと全く同じように、さまざまなデータベースに接続できます。
SQL文を使用してレコードセットも取得できます。データベースの操作系文法はまったく同じです。
ちなみにRDBMSってどんなものがあるのでしょう?
有名なところではオラクル社の「Oracle」マイクロソフト社の「MicrosoftSQL Server」、お手軽なものなら「OfficeAccess」のMDBファイルでも簡易データベースになります。
またデータベース領域が4GBという制限があるものの、SQL Server2005 ExpressEditionという無償のRDBMSがMicrosoft社より提供されています。
http://www.microsoft.com/japan/sql/editions/express/default.mspx

 
 
・なぜエクセルでシステム開発することに拒否反応があるのか?

ExcelVBAの最大の長所はなんといっても無料(ただ)で提供される開発環境にあります。
Excelはただじゃないぞ!
おっしゃるとおりですが、Excelを開発目的に購入される方はほとんどいないでしょうから、付属される開発環境についてはやはりただ同然です。

そしてExcelVBAの魅力の一つに、強力なマクロの自動記述機能があります。
ユーザーが行うほとんどのExcel上の操作をVBAにして自動記述します。これほど強力な自動記述機能をもったマクロを私は他に見たことがありません。
そしてコンパイル不要なコードのステップ実行。(正確には実行時にP言語という中間言語にコンパイルされているのですが、)
実行中にいつでも中断させてステップ実行させコードの検証を行うことができます。

実はこれらの便利機能は全て諸刃の剣になります。
無料で提供される開発環境はエンドユーザーの開発への参入を容易にします。逆に言うとExcel VBA開発者には大量の初級者が混ざることになります。
マクロの自動記述も便利ですが、これを組み合わせてエラー処理の一つもないものをシステムと称して各部署に配布した場合など、どのような結果になるか火を見るより明らかです。
コードのステップ実行は確かに便利ですが、VBAの実行をいつでも止められるというのは危険です。大量のバッチ処理の最中にエンドユーザーの誤操作によって処理が中断してしまう。まさに目を覆いたくなる状況です。

どうもExcelで開発するシステムに拒否反応を抱く人たちの中にはこの手の経験を過去に体験した人が多いように見受けられます。
冗談じゃありません。
悪いのはExcelではないのです。中途半端なExcelシステムを作って配布した人たちが悪いのです。

繰り返しになりますが、Excelはなにも問題はありません。同じようなシステムはVBで作ろうがJAVAで作ろうが必ず問題を引き起こします。
ましてや自分の不勉強を棚に上げ、「これはExcel特有のバグだから…」などと言い訳しようものなら…これはもう切腹ものです。

きちんとした作法に則って開発をすればいいのです。ただそれだけのことなのです。
我流でプログラミングしていても、あまりテクニックの上達は見込めません。これはどの開発言語でも同じことがいえるでしょう。
必ず基礎を学んでください。あなたのExcelプログラミングは見違えるほどに上達します。

 

>> 次の話にすすむ


サイト内検索ができます

Microsoft Most Valuable Professional

Microsoft MVP Excel
武藤 玄 プロフィール
 

■■■ 執筆した書籍 ■■■
 

EXCEL VBA 業務自動化
 

Excel VBA を5日でマスターする本
 

仕事を速くする Excel VBA 入門
 

Excel VBAと業務改善のポイントがわかる本
 

Access VBA ベーシック スタンダード
 

Excel VBA アクションゲーム作成入門
 

■■■ 連載中の記事 ■■■
 

Excel VBAで業務改善!
 

実務で使うExcel VBA
 


TOPページ


■ エクセルVBA超入門

 ・9ステップで"Hello World!"
  からオブジェクト指向まで!
  1."Hello World!"を表示しよう
  2.基本はデータの入出力
  3.繰り返し処理
  4.シートで簡易データベース
  5.名前をつけよう
  6.構造化プログラムに挑戦
  7.構造体を使ってみよう
  8.フォームを使ってみよう
  9.オブジェクト指向に挑戦

■ エクセルVBA中級編

 ・VBAでいろんなテクニック
  変数・関数のスコープ
  引数の参照方法を明示
  配列の中身を一気に複写
  識別子がよいコードを作る
  データ定義型をもっと知ろう
  定数と列挙型を活用しよう
  エラー処理の重要性1
  エラー処理の重要性2
  いろいろな条件分岐
  いろいろな繰り返し処理
  演算子について知ろう
  文字列操作 連結 変換 置換
  文字列操作 検索 比較 書式
  日付操作関数を知ろう
  数値操作・評価・その他関数
  並び替えソートをマスター
  いろいろな検索をマスター
  VBEditorを使いこなそう
  マクロの記録を活用しよう1
  マクロの記録を活用しよう2
  VBAからVBEを操作しよう1
  VBAからVBEを操作しよう2
  VBAからVBEを操作しよう3
 ・ワークシートを使いこなす
  セルの参照をマスターしよう
  セルの選択をマスターしよう
  セルの操作をマスターしよう
  セルの書式設定をマスターしよう
  行・列の操作をマスターしよう
  シートの参照をマスターしよう
  シートの操作をマスターしよう
  ブックの操作をマスターしよう
  ウィンドウの操作をマスターしよう
  イベントプロシージャを活用しよう
  ワークシートを印刷しよう1
  ワークシートを印刷しよう2
  音声(読み上げ)機能を操作しよう
  グラフを操作しよう
 ・ユーザーフォームを使いこなす
  ユーザーフォームを使おう
  UserFormsオブジェクト
  Labelコントロール
  TextBoxコントロール
  ComboBoxコントロール
  ListBoxコントロール
  CheckBoxコントロール
  OptionButtonコントロール
  ToggleButtonコントロール
  CommandButtonコントロール
  ScrollBarコントロール
  SpinButtonコントロール
 ・VBA関数の一覧
  Aから始まる関数の一覧
  Cから始まる関数の一覧
  Dから始まる関数の一覧
  Eから始まる関数の一覧
  Fから始まる関数の一覧
  Gから始まる関数の一覧
 
■ エクセルVBAを極める
 VBAスーパーテクニック
 
 ・データベースへ接続してみよう!
  CSVファイルへの接続
  ワークシートへの接続
  mdbファイルへの接続
  SQL Serverへの接続
  ADOレコードセットの操作1
  ADOレコードセットの操作2
 ・ファイルを操作してみよう!
  FileSystemObjectの操作
  Drive File Folderの操作
  TextStream ダイアログ
  ステートメントでファイル操作1
  ステートメントでファイル操作2
 ・他アプリと連携してみよう!
  ActiveXオートメーションの操作
 ・ゲーム技でマクロを超える
  エクセルで音を鳴らす1
  エクセルで音を鳴らす2  
  スクリーン座標を取得
  様々なイベント取得
  リボンUIを制御しよう1
  リボンUIを制御しよう2
  シート上でアニメを動かそう
 
■ 一歩上行くエクセル
 基本操作の完全マスター!

 
 ・あなたはいったい
  エクセルで何をしたいのか?
  エクセルで業務効率化
  エクセル関数を使いこなす
  エクセルの便利技
  エクセルは最高の帳票ツール
 ・エクセル基本操作上級編!
  セル選択、コメント、シリアル値
  オート機能を使いこなそう!
  参照、条件付書式、入力規則
  関数をもっと理解しよう!
  配列数式を有効利用しよう!
  データの正規化をしよう!
  ショートカットキーを利用しよう1
  ショートカットキーを利用しよう2
  Office用アプリを作成しよう!
  PowerPivotとExcelで簡単BI!
 ・世間の誤ったエクセルの
  べからず集
  エクセルで文章を書くべからず
  エクセルで図形を描くべからず
  エクセルでシステムをつくるな
 
■ エクセル関連その他

 ・エクセルコミニュティにあなたも
  参加しませんか?
  Excel関連リンク・コミニュティ
 ・VBの理解がVBAをマスターする
  最短距離!
  VB関連の老舗・大家サイト
 ・エクセルExcel大事典掲示板
 ・プライバシーポリシー

2000アイテムを超えるラベルを販売
送料無料、即納対応の優良ショップ
今買っているラベルより確実に安い!
OAラベルの販売専科グラフトラベル




エクセルExcel大事典ははリンクフリーです エクセル大事典Excel大事典
お問い合わせはこちら gengengen@yahoo.co.jp

Copyright© Gen Muto 武藤 玄 All Rights Reserved,