- 1 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 01:07:19 ]
- 過去スレ
01 pc11.2ch.net/test/read.cgi/tech/1054356121/ 02 pc11.2ch.net/test/read.cgi/tech/1168308855/ 03 pc11.2ch.net/test/read.cgi/tech/1180192018/ 04 pc11.2ch.net/test/read.cgi/tech/1189814602/ 05 pc11.2ch.net/test/read.cgi/tech/1197448064/ 06 pc11.2ch.net/test/read.cgi/tech/1205231499/ 07 pc11.2ch.net/test/read.cgi/tech/1212587819/ 08 pc11.2ch.net/test/read.cgi/tech/1219673793/ 09 pc11.2ch.net/test/read.cgi/tech/1228372971/ 10 pc12.2ch.net/test/read.cgi/tech/1235332603/ 11 pc12.2ch.net/test/read.cgi/tech/1241885130/ 12 pc12.2ch.net/test/read.cgi/tech/1247566074/ 13 pc12.2ch.net/test/read.cgi/tech/1254281104/ 14 pc12.2ch.net/test/read.cgi/tech/1262748898/ ←New! 関連スレ Excel総合相談所 91 pc11.2ch.net/test/read.cgi/bsoft/1270542226/ Word総合相談所 pc11.2ch.net/test/read.cgi/bsoft/1263719084/ 【質問不可】Excel総合相談所スレの雑談・議論スレ2 pc11.2ch.net/test/read.cgi/bsoft/1151651536/
- 331 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 22:47:17 ]
- 普通は小文字で
- 332 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 23:08:56 ]
- 大文字にしておくと、小文字で打ったときに自動訂正してくれる
だから大文字含めた変数名にしておくと、タイプミスが少なくなる
- 333 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 23:43:45 ]
- 小文字の変数名にすると、ある型の名前を変数名にしてしまったときに
型が勝手に小文字になって困ってしまう 例えば、rangeとかdateとかを変数名にすると、全体的に型のRangeが 勝手にrangeに変わってしまう なんとかならないんだろうか
- 334 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 00:04:23 ]
- VBAはシンボルを大文字小文字で区別しないんだから気にしなけりゃいいんじゃね
あとはかぶらない名前にするか
- 335 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 05:45:44 ]
- >>332
Option Explicitとか宣言の強制使え >>333 システムで宣言済みの名前を使うな
- 336 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 07:56:22 ]
- 予約後を変数で使おうとする気持ちがよくわからない。
- 337 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 08:04:48 ]
- 特定の型の名前を予約語とは言わない。
- 338 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 08:26:09 ]
- 特定の型の名前を(ry
- 339 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 08:41:53 ]
- Javaの場合なんだが、Eclipseとかの代表的なIDEは、変数の名前補完のデフォルトが
クラスの小文字名だよ
- 340 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 12:23:32 ]
- その人の行動は「プライバシー問題に関して無頓着」で一貫しているように
見えるので理解してもらうのは難しいと思う。新しい概念を習得してもらうには 少々歳を取りすぎている。掲示板にもらった手紙の全文を掲載した時点で 気が付くべきだったのかも。 「プライバシー問題に関して無頓着」な人は親しくない相手にも平気で年齢や 職業を尋ねる傾向があるようなので注意したほうがいいです。
- 341 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 12:24:23 ]
- >>335
デバッグするまでスペルミスのリスク抱えてろってのか? タイプミスじゃなくて思い違いだったりすると、毎回変数名間違うことになる 一ヵ所ならまだしもデバッグ時に複数箇所とか煩わしすぎ 頻度の少ないコードとか気付かなかったり、確実にデバッグ出来るってわけでもないし……
- 342 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 13:47:54 ]
- 日本語最強。
Dim 氏名 As String
- 343 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 15:21:21 ]
- 2バイト表記はエラー起こす処理がMS公式であったはず
なんだか忘れたが、2バイト名関数を呼び出した時いらない参照呼び出して不具合引き起こしてたような 対応する気ない見たいだから、でっかいシステム組むのにはエラーでる覚悟はしとくべき
- 344 名前:315 mailto:sage [2010/05/18(火) 16:38:12 ]
- ・関数の引数をByValにするのかByRefにするのかは、関数の仕様による。どちらかに決めうち
するような性質のものではない。 ・空文字列とvbNullは同じものではない。VarType()してみればわかる。 ・いちいち$バージョンの関数があるかどうか調べるのはめんどくさいので使わない。 そもそもmid()とmid$()とかは別物なのか?とかいうのも調べるのがめんどい。 ・改行文字の種類も揃えたほうがいいかも <= 意味不明。vbCrLfを使いましょうってことだとしても、 別にそろえる必要性を感じない。 ・システムハンガリアンは使わない。
- 345 名前:315 mailto:sage [2010/05/18(火) 16:40:05 ]
- ちなみに、俺が昔作ったVBA用コーディング規約で、
「変数の定義はできるだけ遅くやる(使用する行/ブロックの直前でやる」 と決めたら、誰一人共感してくれなくて、驚くほどの反発があったことを思い出したよw
- 346 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 16:49:53 ]
- コーディング規約というかコーディングガイド的なものとして、こんなの提示したことあった。
・アーリーバインドをなるべく使う ・イベントプロシージャの中に処理を直接書かない ・変数は一行一個で宣言しろ ・Publicな関数はPascalCaseで ・Const使え こんな感じだったか。
- 347 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 16:51:59 ]
- あ、そうそう、俺はシステムハンガリアンも使って良い派で、使うならfrmとかを決めてた気がする。
- 348 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 19:47:42 ]
- 文字列をByValで渡した時って、先頭のポインタが値渡しされるの?
それとも、文字列全体がまるまるコピーされるの?
- 349 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 20:40:23 ]
- 参照渡し プロシジャに値を渡す時、値そのものではなく、値が格納されている
変数のアドレスを渡す 呼び出し先のプロシジャで引数として宣言している変数の値を変更する と、その引数に指定している呼び出し元の変数の値も変更される 値渡し プロシジャに値を渡す時、値そのものをコピーして渡す。 呼び出し先のプロシジャは、渡された値のコピーを受け取るだけなので 呼び出し先のプロシジャで引数として宣言している変数の値を変更して も、呼び出し元の変数は一切影響を受けない。 だったかと
- 350 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 21:15:22 ]
- >>349
で、ポインタの値渡しなの?中身の値渡しなの?
- 351 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 21:18:55 ]
- >>350
コピーされる。 ちなみにVBの文字列の型はBSTR。 先頭に文字列長、末尾にヌル文字のUTF16文字列だったかな。
- 352 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 21:27:09 ]
- 手元の本によると
プロシージャの引数の文字列がコピーされるのは以下のタイミング。 ・ByRefだと文字列定数を渡した時 ・ByValだと常時 もちろんポインタのコピーじゃなくて文字列をフルコピー。 VBの文字列はImmutableじゃない。
- 353 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 21:52:10 ]
- >>351-352
ありがとうございます。 VBAについてそこまで深く書いてある本もあるんですね
- 354 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 22:27:49 ]
- >>344
・引数にByRef|ByValを指定しなければByRefになる。 アホが引数を書き換えるとわかりづらいバグに発展する。 普通の関数であれば値渡しでいいはず。参照渡しを積極的に使う場面は少ない。 ・ごめん。vbNullじゃなくてvbNullString。 ・$・非$関数は別物。$じゃなければVariantが帰ってきている。 普通はVariantには用がないはず。作者も$の方使えって言ってる。 ・それならばvbCrLfとvbNewLineどちらを使うのか。 ・システムハンガリアンはどうでもいいや。
- 355 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 22:35:57 ]
- 作者って誰だよ
VBの作者か?
- 356 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 22:44:19 ]
- 厳密にいうとVBにIntelliSenceつけたチームの中の人だな。
- 357 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 23:13:14 ]
- VBEの自動構文チェックって邪魔にしか思えないんだが、あれが便利で使ってるって人いる?
なんであんなものがあるのか不思議でしょうがない
- 358 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 23:21:43 ]
- どっかのペインにちょこっとアクティブに表示してくれるだけなら
便利な機能だけどダイアログで出るのが最高にウザいよなw
- 359 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 11:30:50 ]
- >>354
普通の関数であれば参照渡しでいいはず。 値渡しが必要な場合にのみByValを使え。
- 360 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 11:35:47 ]
- midとmid$のパフォーマンス気にする奴が、常にByVal使えとか笑えるわ
- 361 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 11:59:22 ]
- まあそれもそうだね。
ただ、両バージョン混在してるなら$にしろって言うけどね。 参照渡しは本当に理解してないのが多い(特にCとかJavaとかの人)
- 362 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 12:00:52 ]
- 俺はかっこ悪いから$とかつけない
ByValもつけない
- 363 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 12:04:27 ]
- 変数宣言とか関数宣言だと使うよ。
いちいちAsなんて書いてられない。
- 364 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 12:11:17 ]
- 兎に角、統一してあればそれでいいや
- 365 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 12:23:27 ]
- Typename(Mid("a",1,1))ってやるとStringって言われるんだけど、
実際はVariantだってのはどこ見ればわかるのか知りたい。
- 366 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 12:25:02 ]
- 第一引数を数値にしてみたけどやっぱり戻り値はStringだなあ
?Typename(Mid(123,1)) String
- 367 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 12:34:42 ]
- そもそもTypeNameってVariant自体は表示しないでしょ
- 368 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 12:41:11 ]
- >>364
なんかネット上に書いてありそうだけど、この本見てね。 Welcome to PowerVB www.powervb.com/
- 369 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 13:11:03 ]
- midとmid$の差なんて、100万回実行して0.1〜0.2秒位の差しかないよ。
その程度の差が利いてくるほどの計算量が必要な処理なら、そもそもVBAで やるのがどうかという話もある。 まぁ一般プログラマは気にしなくて良いレベル。
- 370 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 13:20:40 ]
- Mid$()って、MS BASICあたり位からの互換性のためが主な目的な気がする。
そんな細かいことより、文字列の連結方法を教えといた方がいいよね。
- 371 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 13:21:29 ]
- 連結方法ってカッコ付ける奴かな。
- 372 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 13:34:17 ]
- >>368
何書いてあんの? 何を読ませたいの? 英語の勉強からするのも面倒だし ネットに書いてあるとか言うの教えてよ
- 373 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 13:38:34 ]
- >>371
多分このこと。 support.microsoft.com/kb/170964/ja
- 374 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 13:44:53 ]
- 別にvbCrLfとvbNewLineが混在してても気にならない。
けど、普通はどっちか一つしか使わんだろ。気分でvbCrLf/vbNewLineをごちゃまぜに使うような奴なら、プログラマ としての素質を疑うよな。 プロジェクト全体として(というほどの大きなプロジェクトがVBAで構築されることがあるのかどうかは知らないが)、 統一されてなくてもかまわんよ。 例えば、CでいちいちNULを'\0'と書けとか言われたら切れるな。0で済むところは0で書くし。 0と'\0'が混在してても気にならないし、0とNULLが混在してても気にならない。
- 375 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 14:01:05 ]
- 上で出てた参照渡しについて
引数として用意した変数に格納してから渡したほうがいい? call 処理(変数) ↓ 引数 = 変数 Call 処理(引数) 変数 = 引数
- 376 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 14:14:00 ]
- >>375
こんなレベルの奴がいるなら、基本ByValで渡せというのもうなずけるな。
- 377 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 15:17:35 ]
- なに一人で戦ってるんだ?
手を貸してやろうか?
- 378 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 16:07:10 ]
- いつもながら、誰がどの発言なのか良くわからずぐだぐだ
- 379 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 16:25:10 ]
- 俺も>>314を支持する派に転向するわw
- 380 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 16:54:16 ]
- constさえあれば良かった。
- 381 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 17:15:06 ]
- じゃあ俺も314で
- 382 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 17:31:06 ]
- >>375エスパーすると
Q: hoge1,hoge2,・・・hogeN それぞれ何度も演算したり入れ換えたりした後に関数を呼び出し 関数の中でも同じ変数名でスパゲッティ大盛り 引数のhogeA,hogeBを間違えて渡した時の修正コストが半端ない だから呼び出し前にそれぞれ変数に値を入れておけば、その部分だけ修正すればいい よって>>375ですか? A1: つ 参照 A2: つ 規約 A3: そんな時は大抵他の場所でも入れ違いがあるんじゃね
- 383 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 17:52:06 ]
- VBAコーディング規約は、こんな項目を含めるといいかも。
・Option Explicit必須 ・デフォルトコントロール名(Text1など)の使用禁止 ・伝統的なループ変数(i, j, k, ...)以外の一文字の変数名禁止 ・ByVal/ByRefの省略禁止 ・変数宣言/定義時は、Variantであっても必ず型名を付ける ・一行の「If ... Then」禁止 ・Goto/Gosub禁止 ・IIf禁止 ・Call禁止(書くな) ・While ... Wend禁止(代わりにDo ... Loopを使え) ・$付き関数がある場合はそれを使え ・「=""」「<>""」の代わりにLenBを使え
- 384 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 18:50:33 ]
- >>383
>Goto/Gosub禁止 On Error は除いてくれ Call禁止 反対 サブプロシジャ呼び出しであることを明確にしたい
- 385 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 19:16:01 ]
- >「=""」「<>""」の代わりにLenBを使え
俺普段=””使ってるわ。。。
- 386 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 19:59:17 ]
- Integerを使わずLongを使え、というのを足しても良いかもな。
- 387 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 21:25:40 ]
- 足してもいい。Integerが32bitだと思ってる厨房が多い。
- 388 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 13:53:14 ]
- VBAでオセロでも作ってみようと思うんだけど、まったく分かりません
要点としては @ゲーム開始ボタンを押した後、盤目をクリックしたら駒を描写する所 A一度置いたところにもう置けない判定 B駒を挟んでひっくり返す判定 どうかご教授ください
- 389 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 14:03:49 ]
- >>388
1. Cells(2, 2).Value = "●" 2. If Len(Cells(2, 2).Value) > 0 Then Debug.Print "おけない" End If 3. Cells(2, 2).Value = "○" つか、VBAじゃなくて他の言語でオセロ書けるのかよ?
- 390 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 21:16:48 ]
- セルの数字を文字列に変換するマクロを考えていますが、この場合は元の数字に「’」をつける
形で良いのでしょうか?それともCstr を使用した方が適当なのでしょうか?
- 391 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 22:00:31 ]
- >>385
> >「=""」「<>""」の代わりにLenBを使え > > 俺普段=””使ってるわ。。。 おいらも。こっちのがタイプ量少ないし。 LenBだといいことあるの?
- 392 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 22:01:28 ]
- >>390
セルの書式を文字列にすれば?
- 393 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 23:07:16 ]
- >>391
Len 6命令 <=> LenB 5命令 ちょっとだけお得。 これよりもうちょっとコストが付くのが空文字列の比較。 速度で言えば、LenBが最速。
- 394 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 23:20:39 ]
- >>390
Cells(2, 2).Value = Cells(2, 2).Value + ""
- 395 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 23:42:12 ]
- >>394
Cells(2, 2).Text & ""
- 396 名前:391 mailto:sage [2010/05/21(金) 00:02:51 ]
- >>393
なるほど。性能か。シビアな場合もあるのかもね。 文字列連結も+使うんじゃなくて領域確保した上でMid()使えとか。 おいらはとりあえず性能関係シビアな用途に使っていないし「= ""」 で良いや。
- 397 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 00:26:48 ]
- >>396
普段使うVBAなんて最速で書けた方が偉いからね。
- 398 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 00:46:22 ]
- 差が出るほど大規模なプログラムをVBAなんかで書くのか…
- 399 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 00:56:18 ]
- If文書いてて条件の否定を付けるために
カーソル移動するのがめんどいから Xor Trueなんて行末に書き足すのは俺だけでいい
- 400 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 01:06:42 ]
- >>398
プログラムの規模じゃなくてデータの規模が問題なんだよ。
- 401 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 10:49:32 ]
- >>383
DoUntill...Loopもだめ?
- 402 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 14:42:26 ]
- >>398
ループ内で、普通に文字列連結とかしてたら死ぬときがあるよ
- 403 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 11:52:57 ]
- 文字連結で何故死ぬの?
- 404 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 12:05:08 ]
- >>402
これ書いたのだれ?もしかしておれ?
- 405 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 13:04:22 ]
- 多分このこと。
support.microsoft.com/kb/170964/ja 文字列連結は、需要が多い上に意外と時間がかかる。 何も考えずに作ると処理が死ぬほど遅くなる。
- 406 名前:デフォルトの名無しさん [2010/05/22(土) 16:35:49 ]
- すいません、しょうもないことと承知で質問します。
xlnoneとは何をするのでしょうか?
- 407 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 17:17:17 ]
- 何もしない
ただの書式設定のプロパティ値 罫線描画を線無しにする時とかにプロパティをこれに設定する
- 408 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 21:00:46 ]
- Listviewのリストは、縦には出せないのでしょうか?
- 409 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 21:13:44 ]
- わかりづらかったですね。
Listviewは、縦スクロールにならないのでしょうか?
- 410 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 22:22:26 ]
- 変数の規約について
例えば出勤日リストの行を定義する変数名 Shukkin_row_count_ ってするより、 S_r_c_ ' Shukkin_row_count_ としたほうが、タイプミスや誤読が減って設計コスト下がるよね むしろアンダーラインなくして頭文字を大文字で対応すべきかなあ コードが長くなると変数の意味が散逸しかねないけど……
- 411 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 22:45:34 ]
- そんな意味ならコメントは日本語でよくね?
- 412 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 22:55:31 ]
- >>410
ワケ判らん変数名は付けるな 下手に短い名前なら意味が判る長い変数名の方がよぉ〜っぽど良いわ、ヴォケ
- 413 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 23:09:26 ]
- 問題は長い短いじゃなくて俺の命名センスにあるのかな
300行くらいの短いコード書いてみたが、変数名省略しなくても慣れたらすらすら書けた コメント部分が200行くらいになったが >>411 うん、コード書く時は日本語コメントは当然付ける それに追加で、省略前の変数名明示ってことで
- 414 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 23:09:28 ]
- 他の項目にS_r_o_とかあったら死ねるな。
COBOLに侵され気味な俺だと、 SHUKKINrowCountかSHUKKIN_rowCountって感じかなあ。 ベタローマ字は全て大文字というのが俺的基本法則。
- 415 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 23:22:55 ]
- 俺ならVBAとC#では気にせず変数名や関数名に日本語使う
それで可読性や開発効率が上がるなら別にいいじゃんてスタンス
- 416 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 23:30:18 ]
- >>413
その省略前の変数名という考え方がわからん s_r_c_'出金の行数 とかでいいと思ってしまう
- 417 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 00:26:49 ]
- S_r_c_と言う記号で見るのと
Shukkinn_row_count_と言う意味で見るのを比べれば、 保守する時の可読性、認識レベルが異なる だから逆に、接続を長くして意味を持たせるか、後で読み返した時の読みやすさを高めるために省略するかで迷ってる 日本語変数を使うってのが両方満たして楽なんだが……予期しないエラー引き起こすリスクもある
- 418 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 00:30:35 ]
- 母音省略でいいよ。
sknRowCnt
- 419 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 00:32:35 ]
- あれ、回答レスになってないな?
省略前って言うのは、今Shukkinn_row_count_って変数があるけど、これをS_r_c_に省略した場合 ってことで使ったんだが、↑のように保守作業時に変数の意味を理解させるって側面もある
- 420 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 01:23:02 ]
- ソースは他人が見てわかるように書くべし
そして「明日の自分は他人」 結論。好きにしろ
- 421 名前:sage [2010/05/23(日) 23:37:36 ]
- すみませんが、どなたか教えていただきたいことがあるのです。
エクセル2003でADOを用いてアクセス2003のデータを抽出したいのですが、 抽出条件で「・・・を含む」としたいのですが、上手くいきません。具体的には .Source = "SELECT * FROM テーブル1" & _ " WHERE 日時>=" & 開始日 & " AND 日時<=" & 終了日 & _ IIf(Range("B10") <> "", " AND 依頼者='" & Range("B10").Value & "'", "") & _ IIf(Range("B12") <> "", " AND 項目='" & Range("B12").Value & "'", "") となっておりまして、テーブル1というアクセスのテーブルから、日時と依頼者と項目を完全一致で抽出することはできました。 この中から依頼者と項目に関して、「・・・を含む」条件にしたいのですがLIKE演算子等入れても上手くいきません。 どなたか教えていただけますでしょうか。
- 422 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 23:40:15 ]
- >>421
SQLの問題というなら SQL質疑応答スレ 9問目 pc11.2ch.net/test/read.cgi/db/1252492296/l50 若しくは同じデータベース板のAccessスレ(あるのかどうかは知らん)へGo !
- 423 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 23:46:23 ]
- >>421
上手くいかないとき、Sourceにどんな文字列が入っているのか出力して見てはいかが?
- 424 名前:421 mailto:sage [2010/05/23(日) 23:53:16 ]
- >>422
問題はSQL何ですかね?だとすると手がつけられません。 >>423 デバックしたときに見た文字列は上手くいっていました。 ということは外部データの取り込みではLIKE演算子は無理なのでしょうか・・・
- 425 名前:デフォルトの名無しさん [2010/05/23(日) 23:54:57 ]
- むり
- 426 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 00:00:03 ]
- あれ?できなかったっけ?
- 427 名前:421 mailto:sage [2010/05/24(月) 00:05:18 ]
- たとえば
IIf(Range("B10") <> "", " AND 依頼者='" & Range("B10").Value & "'", "") & _ のところを、 IIf(Range("B10") <> "", " AND 依頼者 Like'%" & Range("B10").Value & "%", "") & _ へ変えてみても上手くいきませんでした。 もしかして書き方が間違ってますか?
- 428 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 00:14:13 ]
- >>424
デバッグで見ただけでは分かりにくいエラーは有るよ 俺はSQL文をテキストファイルに出力するプロシジャを作って 別途確認する様にしてる w
- 429 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 00:18:14 ]
- >>427
Value & "%" の%の後ろのシングルクォートは? あと一応Like演算子と文字列の間にスペースを入れようか。 それとセルの内容エスケープしてないのはわざとだよね?
- 430 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 00:25:43 ]
- マンドクセだから確認してないけど
先に抜き出す条件を文字列でSQLにぶちこんでみ それで出来ないなら構文かデータベースチェック
- 431 名前:421 mailto:sage [2010/05/24(月) 00:28:19 ]
- できました!。皆さんありがとうございます。
特に>>427さん 大変ありがとうございます。 恥ずかしながら、後ろ側のシングルクォーテーションが必要とは知りませんでした。 また、Likeの後にスペースを入れていないことも原因のひとつでした。(本当に情けない。。) >>427さん 後学のため教えていただけますか? >それとセルの内容エスケープしてないのはわざとだよね? 具体的にはどういったことでしょうか?
|

|