目次
複数のシートでコピーをする
こんにちは。伊川(@naonaoke)です。
今回は、上の記事の続きになります。
SCHOOL OF VBAでも紹介したのですが、端から端までを理解するとVBAの知識が深まります。
今回はVBAを利用して、実際にコピーをします。
MATCH関数と変数を利用してコピー
この手法は、Cellsと変数は相性が良いという事を利用して作成します。
Rangeも便利なのですが、大量のデータを扱うときは、Cellsを使いましょう。
みなさんの周りに、もし、VBAを使える人がいたら、きっと、RangeよりもCellsを利用しています。
範囲を変数で指定してコピー 作業手順 その1 コードを解説
コメントに記載している通りなのです。
ここで重要なのが、変数retの意味合いです。
イミテイトウィンドウで確認すると、retは、3の化身であることがわかります。
このretは、Rangeではそのまま利用することができないので、Cellsを利用するのです。
複勝のコピーも同じです。
サンプルファイルに記載がありますので、ここでは、割愛します。
これで、同一シート内のコピぺをVBAを使ってすることができました。
範囲を変数で指定してコピー 作業手順 その2 データベース確認
これは、ダービーのオッズです。
G1レース(強い馬が出走するレース)は、前売りがあります。
つまり、9:30近辺のオッズが2回登場します。
前日のオッズはいらないのに、困りました。
JRAはどこまでも意地悪なのです。
範囲を変数で指定してコピー 作業手順 その3 不要なオッズを消すコード
注目すべきは、赤丸の180という数字です。
つまり、retという変数に180を加算しています。
retは、3の化身といいましたが、その3に180を加えた、183という事になります。
範囲を変数で指定してコピー 作業手順 その4 完成のコード
上のWithステートメントは、念のためどの列から抽出したのかを確認するために装飾しています。
正確に、オッズを抽出することができました。
ここがポイント
今回、みなさんに紹介した技は、パーツを組み合わせる感覚を理解してほしいのです。
複雑なことは、パーツ事に考えると、意外にカンタンなのです。
まとめ
次回は、VBAの覚えるコツをみなさんに紹介します。
最終回は、そのあとのお楽しみです。
今回のサンプルファイルは、No141です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。