トップページ > プログラム > 2014年09月07日 > tzy47GW2

書き込み順位&時間帯一覧

21 位/199 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000010010013



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
VBAなんでも質問スレ

書き込みレス一覧

VBAなんでも質問スレ
780 :デフォルトの名無しさん[]:2014/09/07(日) 17:32:00.80 ID:tzy47GW2
id 名前 年齢 のような表があって、
それに何かしらの処理をプログラムがあるとします。

そのプログラムは以下のように列がベタ打ちになっています。
range("A" & i).value

列を以下のように挿入したとき
id 苗字 名前 年齢
プログラムのベタ打ち部分を変更しなくてはなりませんが、
これを自動で認識してくれるようなベストプラクティスはありませんでしょうか?
VBAなんでも質問スレ
784 :デフォルトの名無しさん[]:2014/09/07(日) 20:12:39.88 ID:tzy47GW2
>>781
いやいや、range("B" & i) を
cells(i, 2)にしたところで何も変っておらんでしょw
VBAなんでも質問スレ
788 :デフォルトの名無しさん[]:2014/09/07(日) 23:17:03.39 ID:tzy47GW2
>>786,786
回答ありがとうございます。

constはそれなりに有用だと思いますけど、
ベタ打ちの1元管理に過ぎず、あまり好きな手法じゃありません。
列を削除した時など、A列とかで指定でされているため
そのまま動作し、バグの温床ともなりそうです。

個人的には、786の手法がベストだと思いました。

しかし、ここで問題点がもう1つ。
range("名前")ですが、例えば、他のexcelファイルから
本体のexcelファイルを操作している時など、
activeworkbookが自身であるか不確実な状況だと誤動作する可能性がありますよね。

thisworkbook.range("名前")とできればいいんですが、
シートオブジェクトじゃないと駄目だし、
worksheet(1).range("名前")とかだとせっかく名前定義してんのになんでシートの指定が必要なの?
って感じだし、なんでrangeを自分自身じゃなくてactiveworkbookに実行するんだマイクロソフトォォォって感じなんですが、
こんなときスマートな方法があれば教えてもらいたいです。
あらかじめ、activateしておくぐらいですかね?


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。