ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

VBAの本って、ExcelからJava自動変換等で必ず使う、開発のトレンド技術について書いてない

2005-04-09 18:21:10 | Weblog
 最近、DBの構造(テーブル名と項目、型)などをExcelのシートに書いておいて、
  そこからJava(やC++)のDBアクセスメソッド、
      DBを作成するSQLを書いたDDL等を
 自動生成したりすることって、多くありませんか?
(そのやり方を知らない人は、出来たら便利だと思いませんか?)

 このブログでも、ExcelからStrutsのソース等の自動生成の試案とかについても書いてるし(ここ)JavaやPerlを使って、テストデータを自動生成する例も、こんな記事に出てる。
 日本の場合には、
  (Excelでシナリオを書くとき)DBに入れる値みたいなのをまとめておいて、
  そこからDBに入れるデータを自動生成する(insert文を自動で作る)
とかのノリも、結構あるよね(実際、自分でも、この手のプログラム、書くこと多し)

 まあ、最近のトレンドとして、さっきの記事にも出てたけど、自動化ソフトを買うんじゃなくって、Excelとか利用して、作っちゃうって言うのが多いよね。だって、お客さんが、開発ツール、テストツールのお金まで、だしてくれないんだもーん!




 さてさて、ここで。。だ!

 これらのことをやろうとしたときに、VBAで、必ずといっていいほど使い、それを知らなきゃできないっていう知識がある(逆にいえば、それさえ知ってればできる)。
 それをまとめておいくと、こんなかんじ。

1.シーケンシャルファイルの扱い方
  VBA(AccessでもExcelVBAでもおなじ)では、テキストファイルの場合、OPEN,PRINT,CLOSE,(入力はLINE INPUT)なんかを使う。

OPEN ファイルパス FOR OUTPUT AS #1 '書き出し用
PRINT #1,buf '出力する。改行してしまう
CLOSE #1

くわしくは、ウィリアムのいたずらの、ここをみよ
 ちなみに、ここは、バイナリファイルの読み方、書き方、ここはUTF-8での書き出しがまとめてあるじょ。

2.読み込み行数が分からないので、大きさが変えられる配列をとる
 Dim moji() As Stringで、読み込み時、ReDim Preserve moji(moji_su) する。
  ここ
 あれ、ReDimで2次元以上のときって、制約あった気がするけどなあ。。。
 書いてないや

3.Excelシートから値をとってくる
Sheets("シート名").Cells(行番号,桁番号)か、
Sheets("シート名").Range("セルをA1などの形式で")

例:Sheet1のB1をとってくる
Sheets("Sheet1").Cells(1,2) か、
Sheets("Sheet1").Range("B2")


4.あとは文字列操作で、出力内容に加工する
MidとかInStrとかReplaceを使って置き換える。




 でも、シーケンシャルファイルの扱い方(とくにバイナリ)とか、ReDimとか、VBAの本に、ぜーんぜん、書いてくれないんだよね。
 さらに、ファイル操作についてなんて、もっと見ない気がする。
 実際には、それ+文字列操作ばっか使ってるんだけど。。。ウィリアムのいたずらは(^^;)

 大村あつしさんとか、いっぱーい!VBAの本出しているのに、そういう、他の言語やSQL自動生成とか、Accessデータから銀行引き落としするためのデータに出力する際に必要なテクニックとか、ぜーんぜん書いてくれてない。

 なんでだろう。。

 ウィリアムのいたずらなんか、ドキュメントを作成するのと、そこからソースを自動生成することくらいしか、Excelって使わないのに。。

。。。まずい!「コピーするほど、儲かるシステム」開発日記のソフトを仕上げるためにも、使わないといけなかったぞ!忘れてた(わすれるなー!このブログの目的だじょー < 自分)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする