DIYしよう! EXCELでDIY

Excelで競馬分析をしよう    
   Home > DIYしよう!> ExcelでDIY
お知らせ ソフトウェア 競馬研究 DIYしよう 出馬表 開催情報 BLOG リンク モバイル
 
 

■更なるステップアップを目指して 〜マクロ入門

   Excelは優れた分析ツールです。その人気はOfficeツール群の中でもダントツです。人気の秘密は、使いやすさや豊富なワークシート関数もありますが、強力なマクロ機能(Macro)を備えているのも要因のひとつではないでしょうか。Excelに装備されたマクロはVBAと呼ばれ、Microsoftの人気開発言語Visual Basicを各種アプリケーション向けに最適化したものです。  もともとはWindowsアプリケーションを開発する為のVisual Basicがベースになっているので、本格的なアプリケーションを作成するだけの潜在能力があります。そして、おそらく皆さんが最終目標としているオリジナルの電子競馬新聞(予想ソフト)の作成には、VBAの力が不欠けるになるでしょう。
注1)マクロとは面倒な反復処理や、標準では実現しにくい機能を簡易プログラミング言語によって実現するものです。Excelを始めとするMicrosoft Office製品にはVisual Basic for Application(VBA)と呼ばれるマクロが備わっています。
注2)マクロが利用できない場合は、Excelのセットアップが不完全です。VBAを含めて、再インストールしてください。

■取り合えずマクロを肌で感じてみる

 マクロは簡易とはいえ、れっきとしたプログラミング言語です。特にVBAは非常に高い潜在能力を持っている反面、とっつきにくく、多くの知識を必要とします。ベースとなっているVisual Basicに非常に近い為、Visual Basicを習得するのと同じ労力を要します(逆にいえば、多くのVisual Basic向けの書籍やVBサイトの情報が流用できます)。始めはとっつきにくいかもしれませんが、身に付けてしまえばあなたの分析力を確実にステップアップしてくれます。
 あれこれ説明するのも面倒なので、VBAを実際に体験していただきましょう。

マクロの呼び出し   マクロの記録ダイアログ

 Excelには「マクロの自動記録」機能が備わっています。メニューバーの[ツール]-[マクロ]-[新しいマクロの記録]でから呼び出す事ができます。メニューを選択するとマクロの記録場所等を聞いてきますが、構わず[OK]を押します。すると、画面の端に「■マーク」がついたダイアログボックスが表示されたと思います。ここからが、マクロの自動記録モードです。この後、ワークシートに行った全ての操作がマクロとして記録されます。
  1. A1セルを選択する
  2. 適当にドラッグ&ドロップする
  3. 選択範囲をコピーする(CTRL+C)
  4. C1セルを選択する
  5. ペーストを実行する(CTRL+V)
  6. マクロの停止ダイアログの「■マーク」をクリックする

記録するマクロの内容   記録終了ダイアログ

 これで、選択したA列のデータをC列にコピーという処理がマクロとして記録されました。試しにA列に適当な文字や数字を打ち込んでみてください。何も起こらない? そりゃそうです。マクロは実行しなければ何も起きません

マクロの実行

 メニューバーの[ツール]-[マクロ]-[マクロ]を選択してみてください。すると図のようなダイアログボックスが表示されると思うので、「Macro1」を選んで[実行]ボタンを押します。A列の内容がC列にコピーされましたか? これがマクロです。 他にもいろいろな事ができるので、自動操作でいろいろな操作を記録してみてください。

■記録されたマクロの内容を見る

 マクロは目に見える形で保存されています。先ほど行った操作が、どのような形で記録されているかを見るのも勉強のひとつです。マクロを確認するには、またまたメニューバーの[ツール]-[マクロ]-[Visual Basic Editor]を選択してください。

Visual Basic Editor(VBE)起動画面   Moduleの選択

 すると図のような見慣れないウィンドウが現れたと思います。これは「Visual Basic Editor(VBE)」といい、Excel上でVBAの編集、デバッグ(誤りを正す作業)をする為のアプリケーションです。VBEの使い方や画面の見方は次回以降に説明しますので、今は右上の「標準モジュール」と書かれた小さなフォルダをクリックしてください。次に「Module1」をダブルクリックして開きます。すると今まで白紙だったページに様々な文字列が表示されたはずです。

List1.マクロの記録で取ったコピー&ペースト
		Sub Macro1()
                '
                ' Macro1 Macro
                ' マクロ記録日 : 2001/8/2 ユーザー名 : 吉川 章

                	Range("A1:A10").Select
                	Selection.Copy
                	Range("C1").Select
                	ActiveSheet.Paste

                End Sub
 これが先ほど行ったマクロの内容です。ここにはVBAの文法で書かれたソースコード(プログラムの内容を記述した文字列の事)です。今はさっぱり分からないかもしれませんが、「分析の達人」を読み進めていくうちに分かるようになるでしょう(願望)。

■プログラミングの世界に足を踏み入れる前に

 VBAはマクロとはいえ、れっきとしたプログラミング言語です。プログラミングの世界はプロもいれば、趣味でプログラムを作るサンデープログラマーもいます。そして皆、はじめは初心者でしたが、様々な参考書や実際の作業を通して技術を身につけています。分からない事があったら、すぐ誰かに聞こう、教えてもらえばいいという考え方は捨ててください。そんな事では到底習得は無理です。まずは自分で調べて、どうしても分からない事があった場合に聞くようにしてください。あと、当たり前のことですが、教えてもらったらお礼を言うのを忘れずに(最近一方的に自分の聞きたいことだけ聞いて、お礼すら言わない人が増えてます)。
 何はともあれ、DIY(Do It Yourself)の精神を忘れずに

 

 
 

HomeMenuBackNext