続きはそんなに大したことではないが、明細行の行コピーの手順としてはまず前提が大事になってくる。
TextBoxをひたすら配置するときに、Webでよく使われている手法として行カウントのNoを含めるという名前付けを行う。
これをVBでも行いloop処理で書くプログラム数を減らすというものだ。
例えば 1行目の商品CDのTextBoxには
SYOHIN01
という具合。もちろん2行目はSYOHIN02 ・・・
そこでドラッグアンドドロップをするときに使う文字としてSYOHIN02を使用するわけだ。
Right関数で右2列を使用すれば現在の行数がわかるのでその同じ行のすべての情報を取得すればよい。
そこで1行がまた大量の場合SYOHINなどの名前をつけてしまうと各名称をタイプしなければならないのでお勧めする名称は
Column0101
とすると良いだろう。
1行の全項目を取得する場合にもLoopが使えるのでソースが激減する。
また名称で判別したい場合は、関数にしてしまうのも手だ。
Public Function SYOHIN()
SYOHIN = "01"
End Sub
個別に処理をしたい場合に書いたソースの項目名がすべて数字だと何が何だか解らなくなってしまうのを防ぐためだ。
これでコントロール名称を動的に取得すればよい。
使い分けとしてまとめると
●項目を単体で制御する場合は関数名を使い動的にコントロール名で行う。
●項目全体を一度に行う場合はコントロール名称をそそまま使用しLoop制御で一気にたたみかける。
次回はその使用例を覚書としてまとめようと思う。
0 件のコメント:
コメントを投稿