1 名前:デフォルトの名無しさん [2013/02/15(金) 16:54:12.79 ] ここは Visual Basic 〜6.0 の質問スレです。 質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、 「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。 VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。 ○ 質問者の心得 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。 二.VBScript、インストーラーなどはこのスレでOK。 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。 四.荒らしは相手しない。 ○ 回答者の心得 一.答えられない質問は無駄に罵倒せずスルー。無理するな。 二.代用法を強制しない。 三.回答する上で必須ではない情報をむやみに聞き返さない。 四.荒らしは相手しない。 五.VB情報募集中。 六.回答は質問者が理解できるよう具体的に。 MSDN Online Japan ホーム www.microsoft.com/japan/msdn/default.asp Visual Studio 6.0 Service Pack 6 msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx Google www.google.co.jp/ 前スレ VBプログラマ質問スレ(Ver.6.0 まで) part61 toro.2ch.net/test/read.cgi/tech/1359721249/ ※「まず自分で調べる」クセを身につけよう。
513 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 16:38:29.39 ] >>510 だめ。 楽しようとしてないし、バグの元。
514 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 16:41:51.36 ] >>512 なんか頭悪い意見だね。 それが曜日の値である限り、その値を使ってライブラリ(VBの場合は言語と一体だけれども) の関数を呼び出す可能性を想定しない方がおかしい。
515 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 16:46:14.05 ] >>512 バージョンアップで使えなくなるというのなら、推奨しないと思うけど。 定義はそのままで値が変更される程度なら問題ないだろうし、定義自体なくなるのであれば できるだけ使わないようにという旨の文言がmsdnに書かれると思う。 >定数を再定義したのは自分の管理下におくというのが趣旨なのでいくつもという事態にはならんよ そんなの>>488 に全くコメントされてないし本人しかわからないこと。 いい加減独りよがりのコードはやめたほうがいいよ、パイパンw
516 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 16:53:51.52 ] 仕様の問題をコードの再利用と勘違いしているな>>509
517 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 16:54:59.00 ] >>515 >定義はそのままで値が変更される程度なら 問題あるから再定義の必要があると言ってる タオパイのコードは金曜+1=土曜という定数間の関係を前提にしているがMSDNにそんな事書いてない
518 名前:桃白白 mailto:sage [2013/04/20(土) 16:59:34.76 ] >>509 わけがわからなくなることはないだろ。桃白白の関数を使用するときは 桃白白の定数を使ってください。VBの関数を使用するときはVBの定数を 使ってください。以上。 >>515 独善という意味ではどっこいどっこいでしょ。 VBの日付関数と整合性がとれなければいけないということが 質問の前提として書かれているわけじゃないし、その辺を想像で補って VBの定数を使用するべきだって言ってんだから、そっちの考えが勇み足である 可能性もじゅうぶんにあるよ。
519 名前:デフォルトの名無しさん [2013/04/20(土) 17:02:16.23 ] vbSunday〜vbSaturdayを使うと dayIndex = dayIndex + 1 が Select Case dayIndex Case VbDayOfWeek.vbSunday dayIndex = VbDayOfWeek.vbMonday Case VbDayOfWeek.vbMonday dayIndex = VbDayOfWeek.vbTuesday (以下略) しないとだめなのかよ。こりゃめんどくさい。
520 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 17:08:59.27 ] >>513 どういうバグの元?
521 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 17:18:07.58 ] >>514 自分の気に入らないコードがあるからってむきになるなよ。 お前の意見はもうわかったから。
522 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 17:20:53.73 ] パイパンが必死になってきましたw
523 名前:517 mailto:sage [2013/04/20(土) 17:27:44.79 ] >>519 そういう事 面倒だけど必要な手間 今回タオパイがその関数使ってたら標準定数使えや派だった
524 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 17:35:42.93 ] 定数使うと、succ(土曜日)のときにラウンドさせる必要があるのか、succ(日曜日)のときにラウンドさせるのか、結局その定数の値を調べないとわからない。
525 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 17:42:13.78 ] Trueが-1でFalseが0だからTrue+1はFalseだよねとか言われてる違和感。 定義済み定数を使うなら、原則としては+1とかしちゃいけないよね。
526 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 17:48:24.24 ] (ライブラリによって)定義済みかどうかは関係がない。 列挙値の値に依存するようなコードを平気で書くようではプログラマ失格。
527 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 18:16:58.81 ] 教条主義的だなー
528 名前:デフォルトの名無しさん [2013/04/20(土) 18:53:20.23 ] 自前の定数でも定数間の関係が崩れたら動かなくなるのって よくないんだろうなっていうとさすがに教条主義か
529 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 19:09:31.15 ] 自分で定義するなら崩れないように定義しとけば良いだけで 自分で関係のある定数を定義したのにそれ崩すってことは、自分で動かなくしてることと同意なんだが
530 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 20:58:00.74 ] >>529 それが典型的なダメグラマーの発想。 その発想の問題点は、そういう約束事をプログラマは忘れないはずだという前提に立っていること。
531 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 21:57:35.07 ] VB6の入門者向けのおすすめ書籍を教えて下さい
532 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 16:59:24.91 ] 7にVB6のLearning Edition入れたのだがMCIコントロールやWinsockコントロールが何故か使えた 95やXPに入れてたときはWinsockコントロールとか使えなかったのに・・・なじぇ? WMPが糞だから自前でプレーヤー作ろうと思ってひとまずMCIコントロールを使おうと配置したんだが いまいち使い方が分からなくて調べたら、MCIコントロールはProfessional Edition以上じゃないと使えないとか書いてあって 試しに使えなかったはずのWinsockコントロールも配置してみたら普通に使えた 7に入れてからなんか挙動が変だったが、やっぱマズかったのかな、7に直接VB6を入れたのは・・・ コンポーネント追加で1回目は必ずシステムエラー出るし Common Controlsなんか何故かアイコンが2つずつになったし
533 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 17:50:36.57 ] チラシの裏にでも書いてろ
534 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 18:38:11.62 ] >>485 はワーク変数すら指定してくるくらいだから 勝手にループ用の変数とか自前定数を使ったらまずいんじゃないの? つまり先生は TBL(1, 6) = 1 TBL(1, 7) = 2 TBL(2, 1) = 3 ... みたいな直書きしろっていう課題だったんじゃ
535 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 19:14:15.38 ] よく思うんだけど先生もココ見るんじゃ
536 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 20:20:33.55 ] >>534 じゃあ問2は変数一つでソートするプログラム作れって問題なのか 解ける気しねえな つかそれだけワーク変数指定してるし、それが何のワークなのかは明示してないし はしょってるだけでカリキュラムの流れがあるんじゃないかと思うんだが
537 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 20:39:28.20 ] >>485 できたよ〜 'Answer 1 Dim TBL(6, 7), i For i = 1 To 31 TBL((i + 4) \ 7 + 1, (i + 4) Mod 7 + 1) = i Next 'Answer 2 Dim TBL2(4), WO1, i TBL2(0) = 8: TBL2(1) = 90: TBL2(2) = 20: TBL2(3) = 12: TBL2(4) = 2 For i = 0 To 24 If TBL2(i \ 5) < TBL2(i Mod 5) Then WO1 = TBL2(i \ 5): TBL2(i \ 5) = TBL2(i Mod 5): TBL2(i Mod 5) = WO1 Next 'Answer 3 Dim TBL(10, 10), i For i = 0 To 80 TBL(i \ 9 + 1, i Mod 9 + 1) = (i \ 9 + 1) * (i Mod 9 + 1) TBL(i \ 9 + 1, 10) = TBL(i \ 9 + 1, 10) + TBL(i \ 9 + 1, i Mod 9 + 1) TBL(10, i \ 9 + 1) = TBL(i \ 9 + 1, 10) Next
538 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 21:08:14.97 ] 使用メモリが最小になるコード と 処理速度が最速になるコード の 2種類はよ
539 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 22:11:27.86 ] 255未満の正数だから型を全部Byteにすれば小さくなるんじゃね
540 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 22:29:49.11 ] >>537 0オリジンと1オリジンが混ざってて気持ち悪い。
541 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 23:17:56.35 ] オリジン?
542 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 23:27:40.74 ] 弁当
543 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 23:30:57.13 ] オリジン - Wikipedia ja.wikipedia.org/wiki/%E3%82%AA%E3%83%AA%E3%82%B8%E3%83%B3
544 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 02:08:11.58 ] >>532 普通に7に入れて開発してるし問題は無いよ 最初がエラーになるのはUACのせい そこでレジストリやらシステムファイルがシャドウコピーされて2回めからはエラーにならないというオチ 7は全てがユーザー単位で分けられてる真のマルチユーザー環境だからそういう動作になる まあ、故に古いCOMなんかが意図しない動作になるんだけども あと動作が不安定で心配ってんなら互換モード使っとき これは95からVISTAまでのそれぞれのAPIと7の対応表を内部で持ってて 自動的に変換してくれるって機能だからそれなりに動くようになるよ 当然オーバーヘッドは有るけど、今時のスペックなら気になる事は無い
545 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 14:07:12.82 ] ライセンス制約突破したってレスじゃないの?
546 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 19:13:26.84 ] ライセンスと言えば、トランジスタ技術の記事によくMSCommをEXCELのVBAのIDEから 使う方法が載ってたりしたが、あれどう考えてもアウトだよなあ。
547 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 22:09:16.29 ] >>546 個人的に使うならアウトのはずないだろ アホかよ?
548 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 22:11:40.67 ] 0オリジンはインド人が発明したアルヨ
549 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 22:15:38.38 ] >>547 どんな俺様理論だよ。 VBのEULAにはそんなこと書いてない。
550 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 22:16:43.51 ] バレなきゃ問題ないって意味?
551 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 22:19:10.73 ] >>550 日本国著作権法 ○ VBのEULA ○ 2chのライセンス馬鹿 ×
552 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 22:22:37.93 ] あえてExcelを選択してる理由を考えれば当然のはずだが一応補足しておくと、 >>546 で言ってる記事はもちろんVB6の開発環境を持ってない人向けのもの。 ついでに言えば、仮にVB6の開発環境を持っていても直でVB6に付属のコンポーネントを VB6以外の開発環境で使うのは厳密に言えばアウトのはず。 ただこれも例外があって、少なくともVS2003の時代にはVS2003で使ってもいいですよと EULAか何かに書いてあった。
553 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 22:26:22.42 ] 技術情報としての記事にEULAを引き合いに出して講釈をはじめたアホがひとり
554 名前:デフォルトの名無しさん [2013/04/22(月) 22:27:34.35 ] 何でも叩きたい年頃なんでしょ?
555 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 22:37:10.08 ] >>553 馬鹿ってすぐそれだな。
556 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 22:40:57.52 ] 正義の味方にでもなったつもり 月光仮面ライセンス参上! てか?
557 名前:デフォルトの名無しさん [2013/04/22(月) 22:44:51.13 ] 今からおぼえるならC#のほうがいいですか?
558 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 22:47:27.79 ] 言語を覚える?マジか? いまだにリファレンスを見ないで書ける言語は一つもない VB6なんて特にそう ヘルプとインターネットがあってはじめて使える言語だわ C言語の時代はそんなことが無かったのだけれども 標準ライブラリの仕様、引数の順序まで覚えていた 今の言語は情報量が多すぎて覚える気がおこらない
559 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 22:48:29.42 ] ライセンス云々と書いてる人は単につぶやき程度で、こうしろとかああしろとか強制してないのに なにこのライセンス云々の内容を叩くアホはw
560 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 22:49:19.60 ] 叩かれたと思うのは本人だけでそれ以外の人はなんとも思っていない 自己紹介乙
561 名前:デフォルトの名無しさん [2013/04/22(月) 22:50:13.63 ] >>559 うわぁ…
562 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 23:59:40.15 ] >>556 ケッコウ仮面w
563 名前:デフォルトの名無しさん mailto:sage [2013/04/23(火) 13:06:49.71 ] >>558 よかった。それが普通だよな。 ネット環境が統合開発環境の補助機能がないとVBなんて使える気がしない。
564 名前:デフォルトの名無しさん mailto:sage [2013/04/23(火) 13:47:37.41 ] >>563 中には魔界の仮面なんとか氏のように、生き字引のような人がいるけどな
565 名前:デフォルトの名無しさん mailto:sage [2013/04/23(火) 13:53:32.64 ] N88あたりの時代は命令数が少ないとはいえ入力支援も無いし全部覚えるしかなかったな
566 名前:デフォルトの名無しさん mailto:sage [2013/04/23(火) 13:55:27.63 ] VBにもPEEKやPOKEがあるの?
567 名前:デフォルトの名無しさん mailto:sage [2013/04/23(火) 13:56:23.36 ] READ D$ DATA "ABCDEFG"
568 名前:デフォルトの名無しさん mailto:sage [2013/04/23(火) 13:57:44.76 ] 1010 COLOR 5 1020 PRINT "HELLO WORLD" 1030 END
569 名前:デフォルトの名無しさん mailto:sage [2013/04/23(火) 14:00:08.96 ] 100 DIM A$, B 110 A$ = "HOGEHOGE" 120 GOSUB 200 130 A$ = "UNKO" 140 GOSUB 200 150 B = 256 160 A$ = STR(B) 170 GOSUB 200 180 END 190 REM SUB 200 PRINT A$ 210 RETURN
570 名前:デフォルトの名無しさん [2013/04/23(火) 14:00:30.12 ] 1025 CLS
571 名前:デフォルトの名無しさん mailto:sage [2013/04/23(火) 14:03:17.92 ] 100 DIM I, J 110 SCREEN 3 120 CLS 2 130 FOR I=0 TO 100:FOR J=0 TO 100 140 PSET(J,I) 150 NEXT J: NEXT I 160 LOCATE 5, 6: PRINT "BASIC"
572 名前:デフォルトの名無しさん mailto:sage [2013/04/23(火) 14:05:59.36 ] 行番号がない言語はBASIC名乗っちゃいかんな
573 名前:デフォルトの名無しさん mailto:sage [2013/04/23(火) 14:14:04.81 ] そういえば、行番号つけられるんだっけな。VB6。 つけたことないけど。
574 名前:デフォルトの名無しさん mailto:sage [2013/04/23(火) 17:01:11.97 ] Quick BASIC..
575 名前:デフォルトの名無しさん mailto:sage [2013/04/23(火) 17:17:09.54 ] FORTRANを忘れないであげてください!
576 名前:デフォルトの名無しさん [2013/04/23(火) 18:07:46.01 ] 物言わぬ多数派: Visual Basic 6 が今でも成功している理由 (David Platt) ttp://msdn.microsoft.com/ja-jp/magazine/jj133828.aspx
577 名前:デフォルトの名無しさん mailto:sage [2013/04/24(水) 03:37:32.43 ] VB6でgzipファイル扱おうと思うとtar使うとかがいいの?
578 名前:デフォルトの名無しさん mailto:sage [2013/04/24(水) 03:38:35.27 ] そういやXPや7はOSが標準でzipを扱えたと思ったけどVB6からその機能使えるんかな
579 名前:デフォルトの名無しさん mailto:sage [2013/04/24(水) 04:26:49.30 ] >>578 Shell32.dllを使って一度作ってみたことあるけどイマイチ動作が不安定だった覚えがある。 「vb6 zip 圧縮」でググると結構ヒットするけど。
580 名前:デフォルトの名無しさん mailto:sage [2013/04/24(水) 14:47:30.19 ] d
581 名前:デフォルトの名無しさん mailto:sage [2013/04/24(水) 15:02:06.17 ] 場合によってはzipfldr.dllの登録が必要だったり 空のzipファイルを自前で用意せにゃならんかったり shell32から使うのはあまりスマートじゃない感じかね
582 名前:デフォルトの名無しさん mailto:sage [2013/04/24(水) 15:12:34.74 ] レジストリのzipのShellNewを見てみたらこちらもDataの値に空zipのバイナリが直で書かれててワロタ
583 名前:デフォルトの名無しさん mailto:sage [2013/04/24(水) 16:58:30.57 ] >>576 LightSwitch が紹介されてるけどあれ機能が少ない上に有料でしょ? 2chにスレもない。
584 名前:デフォルトの名無しさん mailto:sage [2013/04/25(木) 20:27:48.56 ] プロの世界は知りませんが、個人的にはへろぱ氏の偽UnZip32.dllをとても 便利に使わせてもらってます。
585 名前:デフォルトの名無しさん mailto:sage [2013/04/26(金) 09:41:12.30 ] dllうぜえ厨だけど、VBSでのZIPのコードがどこかにあったキガス。 名前空間とかいうのをうんぬんだったっけな。
586 名前:デフォルトの名無しさん mailto:sage [2013/04/26(金) 09:43:17.30 ] ZIPのコードというか、ZIPの圧縮、解凍のコード。 変数名がややわかりにくかった記憶がある。改修してこぴへよろ。
587 名前:デフォルトの名無しさん mailto:sage [2013/04/26(金) 13:29:06.95 ] ZIP.VBS www.vector.co.jp/soft/winnt/util/se355605.html これか
588 名前:デフォルトの名無しさん mailto:sage [2013/04/26(金) 19:34:45.37 ] VB6の標準のDBコントロール使うのとSQLite使うのとどっちのほうがパフォーマンスいいかな
589 名前:デフォルトの名無しさん mailto:sage [2013/04/26(金) 19:47:30.12 ] SQLiteはUTF-8使えないと無理
590 名前:デフォルトの名無しさん mailto:sage [2013/04/28(日) 03:56:45.97 ] >>483 俺とっくにマじゃないけど .netは3.5を入れればXP〜Windows8まで対応できるから十分じゃないかな。 しかも、シェルスクリプトである PowerShell から .net を利用できるからバッチのために別の言語を覚える必要とかもない。 Win7, 8 にはそれぞれ .net 4と 4.5 が入ってるけど .net 3.5 と共存できるんだよっ!! XPといってもいまどきのマシンなら .net入れても余裕で動くし。 メモリが少ない昔のマシンで動かすときとか 仮想マシン大量に使うときはちょっと重くなるだろうけど・・・
591 名前:デフォルトの名無しさん mailto:sage [2013/04/29(月) 00:44:55.94 ] 動くけどあからさまに遅くなるしな いや正確には.NET向けの仕様になってないから .NETの悪いとこばかり目立つ感じになっちゃうというか Sub Main()からフォームをshowするだけだとそのまま終わっちゃうから Application.Runとかに変えてーそうするとと後続処理が流れないから Form.Loadとかに処理移してーそしたらForm.Loadより先にText.Changedが動いてて ロード完了フラグ作って制御してーあとフォームをcloseしただけじゃ初期化されないから めんどいからDisposeしたら再ロード遅くなってしょうがないからコントロール初期化処理入れてー みたいな、もう一から設計やり直させてくれよ的な
592 名前:デフォルトの名無しさん mailto:sage [2013/04/29(月) 15:09:30.82 ] それ以上の愚痴はVB.NETスレでやってくれ。 VB6の場合、Sub Mainは非表示のトップレベルウインドウで動いてるから、 フォームから動かしているのと変わらない。
593 名前:デフォルトの名無しさん mailto:sage [2013/04/29(月) 15:59:53.81 ] へぇーありがとう それ長年気になってたヤツ まとめて解決だわ ThunderRT6Mainがいつも居る謎 MainでShowして抜けても終了しない謎
594 名前:デフォルトの名無しさん mailto:sage [2013/04/30(火) 17:31:32.65 ] Win8のストアアプリ開発しようと思ってんだけど、テキストファイルの読み込み が従来のVB.NETのようにそう簡単にはいかなくて本当困ってる・・・ 普通にテキストファイル内の文字を読み込んでボタンクリックしたらテキストブ ロックにその内容が表示されればいいだけなんだけどね・・・ 何かいい方法ないですかね?
595 名前:デフォルトの名無しさん mailto:sage [2013/04/30(火) 17:50:13.75 ] >>594 それはVB6の話か?
596 名前:デフォルトの名無しさん [2013/05/03(金) 06:05:34.17 ] VisualBasic だって捨てたものじゃない ttp://el.jibun.atmarkit.co.jp/ahf/2012/07/visualbasic-6a15.html
597 名前:デフォルトの名無しさん mailto:sage [2013/05/03(金) 06:20:31.19 ] >>596 VB.NETの話は別スレだろ。
598 名前:デフォルトの名無しさん [2013/05/03(金) 19:50:21.08 ] VB6のクリップボードオブジェクトって テキストと画像しか扱えないのな プラットフォームSDKのクリップボードのAPIを見ると色々な形式に対応してるようだけど VB6だけじゃだめなのか
599 名前:デフォルトの名無しさん mailto:sage [2013/05/03(金) 20:36:52.40 ] API使わないと自由な形式にはできない
600 名前:デフォルトの名無しさん [2013/05/08(水) 04:47:00.55 ] テキストと画像で充分でしょ クリップボードでバイナリ扱おうなんて危険
601 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 08:37:14.62 ] なぜVBは黒歴史のような扱いを受けるのでしょうか? それにもかかわらず今でも廃れた感がないのは何故?
602 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 09:23:57.52 ] 誰が誰に黒歴史という扱いしているんですか? 廃れた感?あなたがそう感じてたとして、それが何?
603 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 09:41:44.11 ] VB6先輩こえー
604 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 12:49:17.00 ] 黒歴史かどうかはしらんが、廃れた感は廃れ切ったから感じないだけだろ
605 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 22:04:55.27 ] ByRefよりByValのほうが速かった件
606 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 22:35:59.86 ] ByRef は基本的に速くするために使うものではない希ガス
607 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 22:49:13.80 ] Property Get/Let で定義したプロパティって ByRef渡しで値変更はできないのな 'Class1.cls Dim n As Integer Public Property Get Value() As Integer Value = n End Property Public Property Let Value(newValue As Integer) n = newValue End Property 'Form1.frm Sub Hoge(ByRef n As Integer) Debug.Print n n = n + 1 Debug.Print n End Sub Private Sub Command1_Click() Dim c As New Class1 Debug.Print "Before "; c.Value Call Hoge(c.Value) Debug.Print "After "; c.Value End Sub
608 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 23:25:27.89 ] 希ガスってなつかしい
609 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 00:57:19.42 ] >>607 なんかいろいろ酷い理解だなw
610 名前:桃白白 [2013/05/09(木) 01:32:20.47 ] >>607 VB.NETではできた。 コンパイラさんがこんなコードを生成してくだすってた。 コンパイラさんマジ感謝っす。 Dim s As String = Me.Value Hoge(s) Me.Value = s
611 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 01:39:23.89 ] IntegerじゃなくStringだと!?
612 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 01:48:35.42 ] 出来るんだよ、そう.NETではね
613 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 01:55:07.26 ] VB2010の無料ので試してみたけど、全然書式違うのな驚いた。ヘルプの小窓が教えてくれるし助かったというか 'Class1.vb Public Class Class1 Dim n As Integer Public Property Value() As Integer Get Value = n End Get Set(value As Integer) n = value End Set End Property End Class 'Form1.vb Public Class Form1 Public Sub Hoge(ByRef n As Integer) Debug.Print(n) n = n + 1 Debug.Print(n) End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim c As New Class1 Debug.Print("before " & c.Value) Call Hoge(c.Value) Debug.Print("after " & c.Value) End Sub End Class