pickup

 

目次

SCHOOL OF VBA そのあとに その2

こんにちは。伊川(@naonaoke)です。


今回はこの記事の続きになります。

前回は、フリーソフトに取込むための下準備をしました。

今回は、CSVファイル手前までを解説します。

その前に、動画では、説明が上手くできなくて、申し訳ありません。

ActivecellをRangeで指定する。



東京をRange(“D1”)に変更しました。

では、この東京をどのように入力するのか?

必要な情報は、基本、お客様に入力してもらう。


Excelを起動すると、ユーザーフォームが起動するようになっています。

ユーザーフォームをExcel起動時に表示するコード


競馬場を選択しないとレースIDを作成することができません。

つまり、お客様は必ず競馬場を選択します。

もし選択をしなかった場合は先に進むことができないように仕掛けをします。

この記事を参考にしてください。

ACCESSでも、Excelでも、入力漏れがあった場合は、必ず、誰かが、リカバリをしなければなりません。

責任をもって、一番初めて入力する人が、完璧に入力するれば、いいのです。

できなければ、させるのです。


作成者は、エンドユーザーを信用してはいけません。

この入力漏れのコードを知っているだけで、かなりの時間が節約できます。

このコードを利用することで、Range(“D1”)には、必ず競馬場が入力される仕掛けになっています。

セルに入力できる数字は、15桁の制限がある

Microsoft Excel では、セルに 15 桁を超える数字を入力すると、15 桁目より下位のすべての桁がゼロに変更されます。

JRAが作為的に16桁以上の数字を使っているとしか思えませんでした。

16桁以上の数字を表示させるには、セルをあらかじめ、文字列に変更しなければなりません。


Worksheets(2).Range(“A:C”).NumberFormatLocal = “@”

レースIDを作成する


前回のブログで紹介しましたが、上の図がレースIDの構成です。


レース番号と、ゼッケン番号以外は、ユーザーフォームで作成できます。


レースID
TextBox1⇒西暦
TextBox2⇒月
TextBox3⇒日
ComboBox1⇒馬場コード(競馬場に応じて変化)
TextBox4⇒回次
TextBox5⇒日次

もっとカンタンな書き方もあると思いますが、WithステートメントとIF構文で記載しました。

コラボ指数を転記する

Worksheets(1).Range(“D1”) = ComboBox1 & “1R”


このようにして、メルクマールとなる文字を作成します。


東京と、東京が一致したら、指数を転記する。

なぜこんな面倒なことをするのかというと、一年で、11Rしかない日があるからです。

競馬をしない人はわからないと思いますが、一緒くたに12Rにしてしますと、

まったく違う競馬場の指数を転記する可能性があるからです。

コードなのですが12R分を記載しました。

ループできませんでした。

レース番号を転記する



ActiveCellは、Cells(41,3)です。

ActiveCell.Rowは、41を表します。


このActivecell.Row(41)から5個飛ばしで、ループさせます。

このコードの書き方は非常に重要です。


5個飛ばしで取得した値を、WorkSheet2へ転記します。

まとめ

次回は、自動でCSVファイルに加工してデスクトップに保存する方法を紹介します。

説明が下手くそで申し訳ありません。

 

スポンサーリンク

Twitterでフォローしよう

おすすめの記事