エロいの書かない期間が長いですが、そのうち…ね?
で、今回もExcelマクロのお話…というより、結論はタイトルの通りなんですけどね…!
Excelマクロを習得する近道は、結局のところ、基礎的な部分をしっかりと習得することに帰結するわけですが、その基礎的なことをしっかりと履修するためには、数をこなすことことが正義だと信じて、社内研修で講師をする時にもお伝えしています。はっきり言って、「このテキスト読めばすぐできる!」なんて言う資料に当たったことは無いです。「ためになるなぁ」とかっていう書籍はぼちぼちとあるんですけど、これって、「ある程度できるようになると、そういう覚え方、教え方もあるよね!」っていう、ある程度分かっている人目線になっちゃうんですよね。…これは良くない。
目標と目的をしっかりとたてる!
月並みなお話になりますが、漠然と数をこなしてもあんまり意味はありません。大事なことは、「マクロを作るうえでの目標と目的」をしっかりとたてるということですね。…で、全体的な話ではなくて、これから手を付けようとしている、「自分の業務をマクロ化する」中での最小単位で構いません。最小単位をいくつも作れば、たくさんマクロを作ることができますからね。
「最小単位」がどいうことかといえば、業務にもよりますが、CSVなどで出力されたデータを特定のブック・シートに集約して計算するようなマクロがわかりやすいと思います。
大まかに、「CSVをエクセルに取り込む」「データを特定のブック・シートに集約する」「計算する」という3段階が想定できそうです。この3段階を一気に作るのではなく、それぞれ別に作る方法を模索してみましょう。
先に計算処理を終わらせちゃう
作る順番は自由ですが、できるか限りシンプルに進めていきたいものです。
「手作業を無くす」が理想的ですが、「手作業を減らす」というのも重要な事項ですので、まずは、手作業で、「CSVの取り込み」「集約」を終わらせてしまいましょう。人それぞれだと思いますが、マクロを作るうえでは、同じブック・シート上のデータを計算することが一番シンプルかつ早く作れるモノだと私は信じていますw…ここでは作り方は言及しません。「作る順番と考え方」を優先的にお伝えしていきます。計算処理は、繰り返し処理と四則演算だけで実装できると思いますし、すでに取り込み済みであれば、縦方向の繰り返し回数なんかも見たままでわかると思います。泥臭い方法にはなりますが、わかる数字はバンバン活用しちゃいましょ。
CSVの取り込みを作る
計算処理ができたら「集約」…ではなく、CSVデータをエクセルに取り込む作業をしちゃいます。正直なところ、今回のマクロで肝となるのは、「計算処理が間違いなくできているか?」という部分ですので、「取り込み」とか「集約」なんかはどっちが先でも問題はありません…が、「CSVを取り込んで集約」ということであれば、取り込み部分を作ってからでないと集約はできないという結論になるので、取り込みを先に作っちゃいます。
EOFって何ぞ?
マクロ内の表現で、CSV(テキスト)データを扱う場合に出てくる「EOF」というものがあります。簡単に言えば、テキストの最終行に到達したかを判定するための記述です。マクロでのテキストファイルを開くという行為は、メモリの中にデータを格納するということで、実際の読み込みは1行ずつ実施されます。…このため、開いた時点では、最終行はどこにあるのかは不明であるため、その部分を認識するために使われるわけですね…。まぁ、テキストで読み込んだときはEOFを使うって思ってもらえれば!
CSVを取り込む?
CSVデータを取り込むといわれても、普通にエクセルを使っている場合、ファイルをダブルクリックすると、エクセルで開かれている設定になっていると思います。…そう、エクセルはCSVデータの「読み込み」に対応している優秀なソフトウェアなんですね…はい。ここで、わざわざ「読み込み」と称しているのは、色々と事情はありますが、完全対応というわけではなく、扱いを間違えるとCSVデータとして「間違ったデータ」になってしまう恐れがあるんですね。なので、データを確認する場合はほぼほぼ問題ないですが、加工してCSVとして保存する場合は、十分に注意をしましょう。
流れをつかめば実際簡単
今後も同じことを何度も書くこととなると思いますが、Excelマクロは非常に簡単なプログラミングです。エクセルというソフトウェアを動かすための仕組みを使うため、エクセルについて詳しければ詳しいほど簡単に扱うことができるようになっています。…逆にいうと、エクセルを全く知らない人が使おうと思ってもうまくいかないことが多いというのも事実でしょう。エクセルを使えるようになるためには、テキストを読むだけでなく、実際に入力して体験しないことには上達もしません。…で、Excelマクロも当然ながら、テキストを読むだけは見につかないですし、そこには発展性も皆無です。テキストを読むなとまでは言いませんが、はじめたばかりの時は、テキストを読むよりも、まずは入力をしてしまう、体験してしまうこと以上に上達する術はありません。始めようと思ったら、エクセルを起動して、Altキー+F11を押すことからしっかりとはじめましょう!