○第42回目 エクセルのファイルを分析する(その5:ちょっと寄道)
だいたい出来ていたので、先駆けて、機能アップを考えました。
それは、シートの目次のシートの内容を基にして、シートをソートすることです。
目次を見ていると、これを、こうちょっことこのうしろに動かしてみたいな、など、
シートをこういう風に並べ変えてみたいな、という気が起こります。
その際、目次のシート一覧を操作して、シートが動いたらいいのではないかと思っって、プログラムを考えてみました。
すると、いつものようにバグがでてきました。だいぶ時間がかかりました。原因は、変数名にちょっとしたタイプミスがあったのです。見るのは主にロジックであるため、こんなところに間違いがあるとは、思いません。
いつまでたってもわからないのです。
結果的に、結構な時間を費やしてしまいました。
ということで、これを機に変数の定義を必須とすることにしました。
毎度毎度のことですが、今回はいい機会と思って、その対応をきっちりするようにすることとしました。
寄道とは、変数の事前宣言に関するものです。
モジュールの先頭に、変数定義の必須を宣言すればいいのです。
するとコンパイラがチェックしてくれます。
そのおまじないは、 Option Explicit と書くことです。
モジュール上は、一番上から
Option Explicit
Sub xxxx()
:
となります。
今回のテーマは、変数の抜き出しを自動化してしまえないかということです。
プログラムを作った後に、変数を抜き出し、それをもとに変数の定義を作るというものです。
仕組みを考えてみました。
Sub文やコメント文は関係ありません。それを削除してしまいます。
ifとかforとかnextなどは変数ではありません。削除しましょう。
ということで、削除すべき(ヌルに変換すべき)項目などをきめて、QXエディタの複数変換マクロを動かすのです。
その後で変数を取り出し、重複をなくして、変数名を取得して、Dim文に付けてるというものです。
途中で、空行の削除のマクロも使います。
変換表は、次々に追加していけばいいのです。削除してみて、残っているものをどんどん追加していけばいいのです。原理的にも作業的にも簡単でした。
これは、QXエディターのマクロとなります。
2007年9月15日土曜日
登録:
コメントの投稿 (Atom)

0 件のコメント:
コメントを投稿