- 1 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 00:22:23.67 ID:Fd224klc0.net]
- !extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける ExcelのVBAに関する質問スレです コード書き込みや作成依頼もOK ※前スレ Excel VBA 質問スレ Part68 https://mevius.5ch.net/test/read.cgi/tech/1598756127/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
- 968 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 10:59:16.82 ID:AkcuhhXSr.net]
- 変数にABCなんてのを使ってる時点でセンスゼロ
後で見て全くわからないバグの温床にしかならない
- 969 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 11:12:33.58 ID:QeKL1gNm0.net]
- LBound UBound使えよ
- 970 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 11:56:37.23 ID:KXbC8pO1H.net]
- >>965
お手本見せて >>966 データ数は変数に入れたから改めて調べる必要ないという判断
- 971 名前:デフォルトの名無しさん [2021/03/17(水) 12:13:35.08 ID:YH/YYkmR0.net]
- クソコード
- 972 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 12:27:17.82 ID:rAxKrtcHF.net]
- うんコード
- 973 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 13:20:25.46 ID:4HdAS7ns0.net]
- 変数名に対する識者の見解
https://mevius.5ch.net/test/read.cgi/bsoft/1608362765/253n
- 974 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 14:37:09.94 ID:rwSgtXuJ0.net]
- 口だけで何もしない(できない)奴はスルーでいいよ
- 975 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 15:25:09.30 ID:vF0LuwhE0.net]
- >>964
うーん 頭ごなしに糞というつもりはないけど そうだね、もし改善点を挙げるとすれば・・・ まぁ聞き流して良いけどね。 ・変数名は一貫性を持たせて、一見して何を意味しているのか分かるようにすること。 例えば頭の1文字が大文字だったり小文字しているのをキャメル形式に統一するとか。 ・ActiveSheetは極力使わない。 キチンとした意味を持っているならそれでいいけど、フォームやツールバーから呼ばれることやそのように改修される可能性も考慮してどのシートを使うか明示的に指定する方が良い。 もちろんその際はシート名が変更されてしまうことを考慮して シート名ではなくシートオブジェクト名を使用する。 ・単一責任原則を踏襲する。 一つの関数またはメソッドに、一つの役割のみ持たせて一つの関数またはメソッドが増長になることを防ぐ。 とは言ってもこれは何を一つの役割とするかを決めるセンスが必要で、 これを上手く作れれば「糞」からひとつ脱却出来る。 後は趣味の問題だけど ・Withを使わないことに慣れる。 VBA → VB.Net → C#に移行したとき、Withが無いから慣れておくとちょっと楽。 ・CreateObjectは使い所を考える。 CreateObjectはバージョンを考慮せずに済んだりする反面、 メソッドやプロパティのインテリセンスが効かなくなるため、タイプミスをし易くなるという欠点がある。 参照で繋ぐか、CreateObjectで作成するかは 一考した方が良い。 尚、本来Variant型は何でも入ってしまう危険な型なので 使わない方がいいと言いたいところだけど EXCELのRangeオブジェクトとあまりに相性が良いから使うなとは言えない。
- 976 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 16:55:51.25 ID:ttYMdvTCd.net]
- ワロタ
- 977 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 19:15:40.71 ID:2RS2aA5zM.net]
- メガネをクイってしながら凄い早口で言ってそう
- 978 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 19:24:46.18 ID:lGPcjQzL0.net]
- >>967
940が一番何をしてるのか分かりやすい これにシート銘柄をしっかり記述すればよいのでは?
- 979 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 19:25:19.68 ID:lGPcjQzL0.net]
- 銘柄w
シート名ね
- 980 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 19:38:30.30 ID:vF0LuwhE0.net]
- >>964
ついでにもう一つ言っておくと、 ディクショナリやコレクションの要素数は1バイトで扱える数、つまり1から数えて256まで。 着眼点は良かったけど、3000行を考慮すると オーバーフローで落ちる可能性があるよ。
- 981 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 19:56:32.92 ID:lKwA7qQn0.net]
- >>956
ちがう 金星(まぁず)ちゃんというDQNネームがあった
- 982 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 19:57:39.75 ID:lGPcjQzL0.net]
- ディクショナリは重複確認用で3000データをまるまる格納する訳じゃないだろ
- 983 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 20:01:06.73 ID:cHLiD5SO0.net]
- >>977
>ディクショナリやコレクションの要素数は1バイトで扱える数、つまり1から数えて256まで。 初耳
- 984 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 20:20:25.27 ID:lKwA7qQn0.net]
- >>977
嘘を言うな
- 985 名前:デフォルトの名無しさん [2021/03/17(水) 21:15:41.95 ID:X8ZT7dpP0.net]
- 256ページの辞書なんて存在するの?
- 986 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 21:56:14.59 ID:2ghuU9if0.net]
- ウィンドウ上の制限
- 987 名前:デフォルトの名無しさん [2021/03/17(水) 23:33:51.91 ID:YH/YYkmR0.net]
- 経験からくる誤った思い込みだろうね。
1バイト単位の区切りというのは、8ビットパソコン時代からExcelが存在していれば、可能性としてあるが、16ビットパソコンから作っているのに1バイトという制限はありえない。
- 988 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 23:42:58.65 ID:n+mEYgox0.net]
- ディクショナリとかコレクションとかが、具体的に何を指してるかにもよるんだが
まあ255個とかいう制限のディクショナリやコレクションは思いつかないが EXCELに限れば、上限255とか256とかいう制限のものは今ですらちょこちょこあるんだぜ https://support.microsoft.com/ja-jp/office/excel-%E3%81%AE%E4%BB%95%E6%A7%98%E3%81%A8%E5%88%B6%E9%99%90-1672b34d-7043-467e-8e27-269d656771c3#ID0EBABAAA=%E6%96%B0%E3%81%97%E3%81%84%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3
- 989 名前:デフォルトの名無しさん [2021/03/18(木) 00:01:49.93 ID:7fQvPjcg0.net]
- >>985
論点ずらしだな。単純に初期のExcelの時代だとメモリ節約で1バイトにしただけで、足りないと判断されたものは、のちに2バイト、4バイト単位に変更されている。
- 990 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 00:28:15.06 ID:POZoiR5o0.net]
- 改善点とか言って挙げてる内容は偏ってて微妙だし知識も無いのに態度だけ上からだし昔の人はすごいなぁ
- 991 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 02:36:30.62 ID:Z7yNcrmt0.net]
- >>985
例えば列の幅が255文字なのは別に1バイトで管理してるわけじゃなくて上限を設定してるだけだろ そう言うのはExcelに限った話じゃないよ
- 992 名前:941 mailto:sage [2021/03/18(木) 13:11:04.06 ID:VjRMlHUp0.net]
- >>941
11111,A子 11112,B子 Ruby で、こういうCSV ファイルを処理した場合、 辞書は、こうなる。 値のtrue に意味はない {"11111"=>{"A子"=>true}, "11112"=>{"B子"=>true}, "11113"=>{"C子"=>true, "D子"=>true, "E子"=>true}, "11114"=>{"F子"=>true}, "11115"=>{"E子"=>true}} F子は、重複しない
- 993 名前:941 mailto:sage [2021/03/18(木) 13:17:05.45 ID:VjRMlHUp0.net]
- ただし、このファイルを、1パスでは処理できない
11113,C子 11113,D子 11113,E子 "11113"=>{"C子"=>true, "D子"=>true, "E子"=>true}, C子 を読み込んだ時点で、その行よりも後ろにある、 D子・E子 の情報を取得できないから だから、>>941 では、データ配列を2回読んでいる
- 994 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 13:36:31.16 ID:pzBF2kYz0.net]
- >>964
64bit版の時はlonglongで宣言するようにしないとエラーになる可能性があるよ
- 995 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 14:11:19.12 ID:Z7yNcrmt0.net]
- >>991
3,000行ぐらいなのに?
- 996 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 14:55:42.20 ID:pzBF2kYz0.net]
- そんな考えならプログラミングやめたほうが良いんじゃない
- 997 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 15:38:13.36 ID:Z7yNcrmt0.net]
- 何でもかんでもLongLong使うのが正解だとでも思ってるの?
- 998 名前:デフォルトの名無しさん [2021/03/18(木) 15:58:28.07 ID:7fQvPjcg0.net]
- >>993 はデタラメを言っているな。妄想なのかな。
- 999 名前:デフォルトの名無しさん [2021/03/18(木) 16:01:58.30 ID:7fQvPjcg0.net]
- 他の言語や環境の仕様とごっちゃになってるんだろうな。
Excel VBAで32ビットと64ビットで、よく使われるデータ型に大きい違いがあるなんて聞いたことがない。
- 1000 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 17:13:11.58 ID:Z7yNcrmt0.net]
- LongLong は 64bit 環境でないとサポートされないとか LongPtr のビットサイズやバリアント型の文字列の付加サイズが 32bit と 64bit 環境で違うとかはあるけどまあ些細といえば些細な話だわな
そもそも現状最大行数が Long 型で扱えるのに >>991 が何を心配してるのか興味ある
- 1001 名前:デフォルトの名無しさん [2021/03/18(木) 17:39:14.84 ID:7fQvPjcg0.net]
- 64ビットというのも何の組み合わせを言っているのかもわからない。
それにしてもここはマイクロソフトのサポートの人がいないか? この中途半端さが日本マイクロソフト風なんだが。
- 1002 名前:デフォルトの名無しさん [2021/03/18(木) 18:16:57.50 ID:d7pvjDlRM.net]
- サポートの人が256個なんて言わないだろ
- 1003 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 19:19:46.38 ID:Z7yNcrmt0.net]
- 組み合わせ?
単に64bit Excelかどうかだけじゃね?
- 1004 名前:1001 [Over 1000 Thread.net]
- このスレッドは1000を超えました。
新しいスレッドを立ててください。 life time: 95日 18時間 57分 23秒
- 1005 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|