社会不安障害:SAD、ボランティアとセカンドライフ

SADで会社を休職したが、一年で復帰し、無事定年を務めて、その後の生活とボランティアについて気ままに掲載中

エクセルのVBAで販売実績データをプログラミングする事になった(その3)

2009-07-11 08:07:07 | SADの症状と現況

エクセルのVBAで販売実績データをプログラミングする事になった(その2)の続きです。結局昨日までに実績データを作ってやる事は出来なかった。別の掲載でも述べているが、やはり、会議やその他の対応に追われ、合間でのプログラミングには無理があった。

約束を守れなかったが、当社のこれに関わった課長は、むしろ今週である必要もなく、他が忙しかったのだから全然無視すればよいと言っていたが、流石に50歳を超えてのしかも約約15年ぶりぐらいのプログラムとなる。もちろん覚悟して取り組んだ積もりであるが、余りにもギャップが大きすぎ、且つ今更ながらに甘かったと思わざるを得ない。

さて、そうは言っても大分プログラミングのコツと言うか感が戻ってきているが、エクセルのVBAで実際に仕事のプログラムを組むのは、流石に初めてでもあり、未だ不明な事だらけで、これで計画をしたのがかなり無謀だったと反省している。

今だ、どこまでが、正式なのか分からないままでプログラムしているが、その内ノウハウを提供できる様になればと思っている。不思議な話ではあるがエクセルVBAの初心者の疑問を下記に掲載しておく。いつかその答えを自分で、回答できればと思うが・・・。 ※使用しているのはOffice2000。

  1. セルの指定と言うかセルの値を取り出したり、設定する時のセルの指定方法。 Cells(行,列)だけでよい場合と、Cells(行,列).Valueまで指定しないとコンパイルエラーとなる場合があるが、これの理由が今は分からない。 もっとも正式と言う意味ではワークシートまで指定してというのが正確な表現方法だとは思うが、そうするとプログラムのリスト構造が長くなってしまい、見づらい。 
       
  2. ワークシートをまたがって、セルの操作をする時の、正式な方法 Sheets("シート名").SelectとWorksheetから直接、オブジェクトのリストをたどるのとどちらが効率的か分からないし、上記1.の混在も可能な為、どの方法が正確化分からない。 つまり、一つのシートをアクティブにして、もう一つのシートはオブジェクトのリストで指定してもうまく行くがこれが良いプログラムなのかが今だ分からない
     
  3. コメントの記述方法 行の頭で’(シングルクォテーションマーク)を使うのは当たり前だが、命令文などの途中では、これが許さる場合と許されない場合がある。 If分の条件分岐でAnd _で複数の条件を記述できるが、この後に、コメントを記述すると、どうもコンパイルエラーになる。
      
  4. セルの指定でエラーが出ない。 変数を利用して、セルをコントロールする為に、上記でも述べた様にCellsと私は良く使うが、通常はCells(行番号,列番号)だが、Cells(番号)だけでもエラーにはならない。これが、今回の致命的プログラムミスとなって,てこずっている事が、帰宅途中の電車の中で気づいた。

昔、プログラムを組んでいる時には、ロジックやバグを解決する為に、よく電車の中でその解決方法が頭に浮かぶ事が多かったが、今回も15年近くも経っているが、昔と同じようになった。つまり会社で帰宅前にプログラムのソースを印刷しておいて、電車でそのリストを見ていたら、上記4の原因がバグとなっていると気づいた。

何れにしても、うまく行かない所もうまく行く所も、やはりプログラムは面白いと思う。間違うのは必ず自分であるが、その代わり、もくろんだ通りに動いた時は、大変嬉しい。その結果次第で、効率化がかなり図れると言う事にもなるのだが・・・。

と言う事で、約束は守る事は出来なかったが、来週にはデータともう少し汎用的なプログラムに仕上げる予定であるが、何かと来週も再来週も、嫌な予感がしている。


最新の画像もっと見る

コメントを投稿