DIYしよう! EXCELでDIY

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

■指定したファイルをExcelに取り込んでみる

   前回「ファイルを開くダイアログボックス」で指定したCSVファイルを、Excel上に取り込む方法を簡単に紹介しました。今回は前回説明できなかった(と言うよりも、まったく説明してません…笑)読み込み処理方法と、ポイントを解説したいと思います。

List1.ファイルを開くダイアログを表示してファイルを読みこむ

		Public Sub TEST()

    			Application.Dialogs(xlDialogOpen).Show

		End Sub

1行目:Public Sub TEST()
2行目:Application.Dialogs(xlDialogOpen).Show
  • Applicationオブジェクトの中のDialogsコレクションを指定
  • Showメソッドでダイアログを表示している
  • xlDialogOpenは引数。Excelのファイルを開くダイアログを指定している
  • 現時点ではおまじないとして覚える
3行目:End Sub

 2行目の命令文が「ファイルを開く」ダイアログを開いています。2行目はいろいろ難しい事が書いてありますが、現時点ではこのように記述すれば、ダイアログが開くんだと思ってください。
 ただ、誤解をしないで欲しいのですが、2行目の"Application.Dialogs(xlDialogOpen).Show"は、単にダイアログを表示するだけです。実際のファイルの読み込み処理はExcelが行います。ExcelはTEXTファイルやCSVファイルが入力ファイルとして渡されると、それぞれのファイル形式にあった処理をしてくれます。
 CSVファイルはデータが各セルごとに分解され、TEXTの場合、下図のようなウィザードが立ち上がります。

Excelテキストファイルウィザード
図1.Excelテキストファイルウィザード

これらのファイルは自動的に新しいワークシートに読み込まれます

■読み込んだCSVファイルを活かす

 List1の手順でデータを読み込ませると、データは新しいワークシートに保存されます。実際に分析を行う際には、読み込んだデータを分析の元になるワークシートにコピーしてあげる必要があります。ここで言う分析の元になるワークシートとは、これからあなたが作ろうとしている(実際に分析処理を行う)ワークシートの事です。


図2.データ用ワークブック(コピー元)


図3.分析用ワークブック(ペースト先)

 読み込んだCSVデータを、分析用のワークシートにコピーする意味はなんでしょう? 競馬ソフトは、分析や予想をさせる処理部と分析対象のデータに分ける事が出来ます。データは出馬表であったり、成績データであったり、目的により種類は異なりますが、毎回違うデータを読み込んでくる事が多いでしょう。分析・予想処理部は、データが変わっても毎回同じ処理を繰り返す事が多いので、出来れば1度作ったものを使いまわしたほうが効率的です。Excelで分析ソフトを作る際にも同じで、読み込んだCSVデータを分析処理プログラムがあるワークシートにコピーします。

■自動的にデータを取り込んでみよう

 次に実際に指定したCSVファイルを、分析用のワークシートにデータをコピーしてみましょう。「分析用ワークブック」という名前をつけたExcelワークブックを作成し、VBEを立ち上げます。プロジェクトエクスプローラ上で右クリックし、ショートカットメニュの中から[挿入]-[標準モジュール]を選択します。追加されたModule1をダブルクリックし、コードエディタを開いてください。その中にList2を打ちこみます。

 →
図4.Moduleの追加

List2.データ用ワークブックの内容を自動的に分析シートにコピー

Public Sub TEST()

    Application.Dialogs(xlDialogOpen).Show
    
    Range("A1:E8").Select
    Selection.Copy
    Windows("分析用ワークブック").Activate
    Range("A3").Activate
    ActiveSheet.Paste

End Sub

2行目:Application.Dialogs(xlDialogOpen).Show
  • 「ファイルを開く」ダイアログを開きます
3行目:Range("A1:E8").Select
  • データ用ワークブックのA1セル〜E8セルの範囲を選択します
4行目:Selection.Copy
  • 選択範囲をコピーします
5行目:Windows("分析用ワークブック").Activate
  • 分析用ワークブックを開きます(アクティブ)
6行目:Range("A3").Select
  • 分析用ワークブックのA3セルを選択します
7行目:ActiveSheet.Paste
  • 分析用ワークブックのSheet1に、コピーしたデータ用ワークブックの内容をペーストします

 基本的には、コピー&ペースと処理を繰り返しているだけです。ここで紹介した以上の事を行いたい場合は、「マクロの自動記録機能」を利用して、コピー&ペースト動作を手動でやってみてください。そこに記録されたマクロはList2を拡張するのに参考になるはずです。尚、CSVデータが手に入らない人や、どうしても上手く動かないという人はサンプルプログラムをダウンロードして見てください。Excel97以降でご利用できます。
 尚、ワークブックの名前は「分析用ワークブック」にしないとList2はきちんと動きません。

サンプルプログラム:Excel_C05.LZH (22KB)

今回はここまで。次回はマクロ的(VBA的)に見た、Excelのワークシートの概念です

 
 

HomeMenuBackNext