5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

VBプログラマ質問スレ(Ver.6.0 まで) part57

1 :デフォルトの名無しさん:2011/04/30(土) 01:50:27.76
ここは Visual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。

VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。

○ 質問者の心得
 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。
 二.VBScript、インストーラーなどはこのスレでOK。
 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
 四.荒らしは相手しない。

○ 回答者の心得
 一.答えられない質問は無駄に罵倒せずスルー。無理するな。
 二.代用法を強制しない。
 三.回答する上で必須ではない情報をむやみに聞き返さない。
 四.荒らしは相手しない。
 五.VB情報募集中。
 六.回答は質問者が理解できるよう具体的に。

MSDN Online Japan ホーム
 http://www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6
 http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
Google
 http://www.google.co.jp/

※「まず自分で調べる」クセを身につけよう。

2 :デフォルトの名無しさん:2011/04/30(土) 01:50:49.55
Part 1 http://piza2.2ch.net/tech/kako/968/968328471.html
Part 2 http://piza2.2ch.net/tech/kako/990/990793224.html
Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
Part 4 http://pc.2ch.net/tech/kako/1006/10069/1006922992.html
Part 5 http://pc.2ch.net/tech/kako/1010/10106/1010624646.html
Part 6 http://pc.2ch.net/tech/kako/1013/10138/1013844542.html
Part 7 http://pc.2ch.net/tech/kako/1015/10158/1015836357.html
Part 8 http://pc.2ch.net/tech/kako/1018/10187/1018794901.html
Part 9 http://pc.2ch.net/tech/kako/1020/10208/1020830472.html
Part10 http://pc.2ch.net/tech/kako/1022/10221/1022127528.html
Part11 http://pc.2ch.net/tech/kako/1024/10243/1024380249.html
Part12 http://pc3.2ch.net/tech/kako/1026/10266/1026642565.html
Part13 http://pc3.2ch.net/tech/kako/1029/10292/1029241786.html
Part14 http://pc3.2ch.net/tech/kako/1030/10309/1030947162.html
Part15 http://pc3.2ch.net/tech/kako/1032/10327/1032706491.html
Part16 http://pc3.2ch.net/tech/kako/1034/10343/1034302532.html
Part17 http://pc3.2ch.net/tech/kako/1036/10361/1036154952.html
Part18 http://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
Part19 http://pc3.2ch.net/tech/kako/1039/10398/1039859691.html
Part20 http://pc2.2ch.net/tech/kako/1041/10418/1041879465.html
Part21 http://pc2.2ch.net/tech/kako/1044/10440/1044028945.html
Part22 http://pc2.2ch.net/tech/kako/1046/10463/1046354784.html
Part23 http://pc2.2ch.net/tech/kako/1047/10477/1047743187.html
Part24 http://pc2.2ch.net/tech/kako/1050/10501/1050151126.html
Part25 http://pc2.2ch.net/tech/kako/1052/10526/1052627913.html
Part26 http://pc2.2ch.net/tech/kako/1055/10551/1055145106.html
Part27 http://pc2.2ch.net/tech/kako/1058/10586/1058674927.html
Part28 http://pc2.2ch.net/tech/kako/1061/10612/1061296197.html
Part29 http://pc2.2ch.net/tech/kako/1065/10654/1065446334.html

3 :デフォルトの名無しさん:2011/04/30(土) 01:51:19.26
Part30 http://pc2.2ch.net/test/read.cgi/tech/1069160036/
Part31 http://pc2.2ch.net/test/read.cgi/tech/1073732636/
Part32 http://pc5.2ch.net/test/read.cgi/tech/1077216109/
Part33 http://pc5.2ch.net/test/read.cgi/tech/1080606445/
Part34 http://pc5.2ch.net/test/read.cgi/tech/1084544243/
Part35 http://pc5.2ch.net/test/read.cgi/tech/1087519251/
Part36 http://pc5.2ch.net/test/read.cgi/tech/1092906058/
Part37 http://pc5.2ch.net/test/read.cgi/tech/1090286450/
Part38 http://pc5.2ch.net/test/read.cgi/tech/1095673000/
Part39 http://pc5.2ch.net/test/read.cgi/tech/1099737063/
Part40 http://pc5.2ch.net/test/read.cgi/tech/1106748775/
Part41 http://pc8.2ch.net/test/read.cgi/tech/1112414085/
Part42 http://pc8.2ch.net/test/read.cgi/tech/1116924129/
Part43 http://pc8.2ch.net/test/read.cgi/tech/1123952677/
Part44 http://pc8.2ch.net/test/read.cgi/tech/1130231657/
Part45 http://pc8.2ch.net/test/read.cgi/tech/1133977286/
Part46 http://pc8.2ch.net/test/read.cgi/tech/1138975113/
Part47 http://pc8.2ch.net/test/read.cgi/tech/1141320612/
Part48 http://pc8.2ch.net/test/read.cgi/tech/1146678926/
Part49 http://pc8.2ch.net/test/read.cgi/tech/1152667953/
Part50 http://pc10.2ch.net/test/read.cgi/tech/1161517193/
Part51 http://pc11.2ch.net/test/read.cgi/tech/1169949451/
Part52 http://pc11.2ch.net/test/read.cgi/tech/1179563617/
Part53 http://pc11.2ch.net/test/read.cgi/tech/1187667616/
Part54 http://pc11.2ch.net/test/read.cgi/tech/1204552981/
Part55 http://pc12.2ch.net/test/read.cgi/tech/1247487156/
Part56 http://hibari.2ch.net/test/read.cgi/tech/1275397597/

4 :デフォルトの名無しさん:2011/04/30(土) 01:52:22.06
クラス間の依存性は減るけど、XMLへの依存が強いってことは何の問題もないの?

5 :デフォルトの名無しさん:2011/04/30(土) 01:53:44.88
素人は黙ってネンネしなさい

6 :デフォルトの名無しさん:2011/04/30(土) 01:57:13.01
>>1000
だからDIはそれを使いやすくフレームワークに
まとめた仕組みのことを言うんだよ。

具体的にはオブジェクトの生成部分を
コード内に書かないでフレームワークに任せる。

多態を使ってても、オブジェクトの生成は
コードに書いてしまうだろ。それじゃだめだってこと。

7 :デフォルトの名無しさん:2011/04/30(土) 02:02:05.11
>>4
依存をなくすのではなくて依存を分離するのが目的。
クラスから依存が減る。それはなくなるという意味ではなく
XMLに分離するということ。

あなたの言っていることは問題ではなくて、
そもそもそういうふうにしたい事、つまり目的だよ。

8 :デフォルトの名無しさん:2011/04/30(土) 02:09:57.79
なるほどね

9 :デフォルトの名無しさん:2011/04/30(土) 02:17:09.59
こういう感じのとは違うん?

Private Sub Command1_Click()
Dim fso As Object
Dim objname$, pth$
objname = "Scripting.FileSystemObject"
Set fso = CreateObject(objname)
pth = CallByName(fso, "BuildPath", VbMethod, "c:\windows", "test.ini")
Debug.Print pth
End Sub



10 :デフォルトの名無しさん:2011/04/30(土) 02:28:44.10
>>9
やってることはそれに近いけど、それでは
それは普通のやり方よりコードが増えて、面倒になってる。
そういう面倒事をやってくれるのがDIコンテナ

public fso As IFileSystemObject
Private Sub Command1_Click()
pth = fso.BuildPath("c:\windows", "test.ini")
Debug.Print pth
End Sub

これだけじゃ動かない? たしかにfsoがNothingだからね。
でこれを動くようにしてくれるのがDIコンテナ。

11 :デフォルトの名無しさん:2011/04/30(土) 02:35:52.78
コンパイラがDIコンテナを使うってことか

12 :デフォルトの名無しさん:2011/04/30(土) 02:39:04.11
>>11
なんかとんでもない勘違いをしてるぞw

13 :デフォルトの名無しさん:2011/04/30(土) 02:43:07.62
眠いので頭が正常に働いてないのかも
明日昼間もういちど前スレから読み直してみる
ありがと

14 :デフォルトの名無しさん:2011/04/30(土) 02:54:27.75
実際には、FileSystemObjectはIFileSystemObjectインターフェースを
継承してないから、fsoにFileSystemObjectそのものを入れることはできない。
入れることができるようにした「FileSystemObjectっぽいもの」を作る必要がある。
でもそれは既存のクラスの問題であって、自分で作るクラスには関係ない話。

重要なのは、このコードには new FileSystemObjectっぽいもの というコードが入ってないから
fsoには「FileSystemObjectっぽいもの」だけではなく、たとえば
テスト用のFileSystemObjectを入れたり、ネットワーク対応のFileSystemObjectを入れたりできる。
実際に入れる作業をするのはDIコンテナだけどね。

特にテスト用のFileSystemObjectを入れられるところが重要で、
FileSystemObjectを使わずに単体テストができる
それでいてコードが前と殆ど変わってないところも注目するところ。

で、最初の質問に答えると、VB6用のDIコンテナは知らないが(多分ないと思う)
DIコンテナを作ることは可能

15 :デフォルトの名無しさん:2011/04/30(土) 02:59:09.66
Windows Script Host Object Model (wshom.ocx)
Microsoft Sripting Runtime (scrrun.dll)
の両方にFileSystemObjectあるけど未だに違いがわからん

16 :デフォルトの名無しさん:2011/04/30(土) 03:02:52.11
むしろ、継承はないがインターフェースはあるVB6には
DIはぴったりだと思うな。

DIが出てきた背景には(昔の)EJBの継承を強要するやり方は
複雑でテストしにくい。POJO(継承使ってない単純なオブジェクト)を
使いましょう。ってのがあるし。

VBはもともと継承が使えない。

17 :デフォルトの名無しさん:2011/04/30(土) 03:05:08.26
VB6での新規案件なんかあるのか?

18 :デフォルトの名無しさん:2011/04/30(土) 03:10:07.03
ああ、コンパイラじゃなくて
別のとこでfsoに代入するコードが書かれてるってことか


19 :デフォルトの名無しさん:2011/04/30(土) 03:18:52.07
>>18
そう。書かれてる。

ただしDIコンテナというフレームワークが
やってくれるところだから見るべきところではない。
勝手に入れてくれるという認識でOK

ただし、VB6用のDIコンテはないw

20 :デフォルトの名無しさん:2011/04/30(土) 03:22:28.04
よくわかった

21 :デフォルトの名無しさん:2011/04/30(土) 08:47:23.24
一応、開発にはimplements使ってる。
ListViewとかTreeViewへの表示にはimplementsしたクラスを
利用してる。これだけでもだいぶ助かるけど…

Javaだとインターフェースはインターフェースだけで
その場でインターフェースをnewして、しかもその場で
実装を書くことが可能。

VB6やってて不便に思うのは…
引数付きコンストラクタが無い事と、インターフェースのnew実装か。

22 :デフォルトの名無しさん:2011/04/30(土) 11:45:40.71
インターフェースをnewするって意味が分からないけど・・・

引数付きコンストラクタは、適当な関数でも作ればいいと思う。
newして引数を設定する関数でも、newしてクラスのメソッドを呼び出す関数でも。

23 :デフォルトの名無しさん:2011/04/30(土) 11:47:30.26
> Javaだとインターフェースはインターフェースだけで
> その場でインターフェースをnewして、しかもその場で
> 実装を書くことが可能。

あ、無名クラスのことか。
正確にはインターフェースをnewしてるんじゃなくて
名前がないクラス作ってるんだけどな。


24 :デフォルトの名無しさん:2011/04/30(土) 12:34:59.22
VBの場合インターフェース無くても同名のメソッドあれば参照できるんじゃなかったっけ?



25 :デフォルトの名無しさん:2011/04/30(土) 12:52:17.30
Dim c1 As New Class1 'Public Sub Hoge() を持ってる
Dim c2 As New Class2 'Implements Class1 をして Hoge()をオーバーライド
Dim c3 As New Class3 'Public Sub Hoge() を持ってるClass1とは別物
Dim c4 As New Class4 'Implements Class1 してる且つ独自にPublic Sub Hoge()を持ってる
Dim obj As Object
Dim ic1 As Class1

Set obj = c1: obj.Hoge 'OK
'Set obj = c2: obj.Hoge 'Error (Class1_Hogeは呼ばれない)
Set obj = c3: obj.Hoge 'OK
Set obj = c4: obj.Hoge 'OK 自前Hogeが呼ばれる
Set ic1 = c1: ic1.Hoge 'OK
Set ic1 = c2: ic1.Hoge 'OK
'Set ic1 = c3: ic1.Hoge 'Error (クラスが別物で代入できない)
Set ic1 = c4: ic1.Hoge 'OK Class1_Hogeが呼ばれる

26 :デフォルトの名無しさん:2011/04/30(土) 22:42:11.86
インターフェースなくても同名メソッド使えるっていうのは嫌だな。
かといって、インターフェースかぶせても、

インターフェース名_メソッド名

が、メソッド名になるのも、はっきりいってうっとおしい。

27 :デフォルトの名無しさん:2011/05/01(日) 02:54:20.11
引数の型をObjectやVariantにせず、ちゃんとインターフェース用のクラスの型を設定すればいいし
Javaとかだとインターフェース無しでインターフェース用のメソッドにアクセスできるんだっけか?
interface Class1 { void hoge(); }
class Class2 implements Class1 { public void hoge(){} }

Class2 c2 = new Class2; c2.hoge();ができちゃうけど
VBだとちゃんとインターフェースかまさなきゃhogeできないのは優秀なんじゃね?

28 :デフォルトの名無しさん:2011/05/01(日) 02:56:19.90
どうでもいいことだけど、些細なミスnew Class2();ね

29 :デフォルトの名無しさん:2011/05/01(日) 04:16:08.27
>>26
> インターフェースなくても同名メソッド使えるっていうのは嫌だな。
そういう言語は他にもあるし(例 JavaScript、Perl)

> インターフェース名_メソッド名
インターフェース名::メソッド名 や インターフェース名.メソッド名
と大差ない

まだまだ経験が足りないようだなw

30 :デフォルトの名無しさん:2011/05/01(日) 04:22:24.58
Javaって
インターフェース名_メソッド名 に
ならないから、
複数のインターフェースで同名のメソッドがあった場合に
困るんだっけ?count()とかありがちなメソッド

31 :デフォルトの名無しさん:2011/05/01(日) 04:38:54.04
vbは優秀だな

32 :デフォルトの名無しさん:2011/05/01(日) 14:16:00.62
まあVB6はともかく、VB.NETのインターフェイスの仕組みは良くできてる。
こればっかりはC#より良い。

33 :デフォルトの名無しさん:2011/05/01(日) 15:20:47.28
VB6のインターフェイスはCOM相互運用のための機能だからああゆう形になるのは仕方が無いね。
VB6のインターフェイスの宣言は中身(実装)の無いクラスを使うことが多いけど、
IDLも使えるあたりもろにCOM相互運用のためのものと分かる。
>>32
VB.NETのインターフェイスは実装のときに
C#の明示的実装のような書き方になるのであんまり好きじゃないけど、
良くできてると思うのはなぜ?

34 :デフォルトの名無しさん:2011/05/01(日) 15:47:40.04
>>33
例えばC#の場合、インターフェイスのメンバーを、

(1) 同じ名前のシグネチャのメソッドとして実装した場合、どれがインターフェイスを
実装したメソッドか明示的に分からない。(これは個人的に気持ち悪い)

(2) 明示的実装を使った場合は、そのメソッドはインターフェイスを通してしか
呼び出せない。

という問題があるけど、VBの場合はこれがない。
一つのメソッドが普通のクラスメンバでありつつ、同時にインターフェースの
明示的な実装でもありうる。

http://www.atmarkit.co.jp/fdotnet/onepoint/onepoint01/onepoint01_02.html

35 :デフォルトの名無しさん:2011/05/02(月) 00:04:56.75
なんか珍しくオブジェクト指向っぽいスレの流れになってるので
この流れで質問させてほしい。

マイクロソフト系言語には、プロパティつうものの存在があって
プロパティ用のアクセッサの書き方があるけど、

普通にゲッタとセッタで実装できそうなのに、なんでプロパティ用の
アクセッサの書き方があるの?

36 :デフォルトの名無しさん:2011/05/02(月) 00:34:33.44
一つはプロパティという概念を導入した方がクラスの構造がわかりやすくなるから。
変数名などa, b, c, ....でも「実装できそうなのに」分かり易い名前を付けるのと同じ動機。

もう一つはプロパティとメソッドが機械から区別できた方がいい事があるから。
例えばVB6でも.NETでもGUIアプリのデザインをデザイナでデザインできるのはこのため。

37 :デフォルトの名無しさん:2011/05/02(月) 05:27:47.95
>>35
メソッドと同じ書式でいちいちゲッタセッタを書くのが面倒だから。
プロパティならとりあえず変数として宣言しておいて、
あとで気が変わったときにゲッタセッタ(プロパティ)を書けば済む。

38 :デフォルトの名無しさん:2011/05/02(月) 13:55:12.47
>>37
答えになってないでしょ。
何故Bが必要かと聞いているのに、何時でもAはBに変更できるからってそれ何だよ。

39 :デフォルトの名無しさん:2011/05/03(火) 15:41:07.99
レスキュー花ちゃんはありがたいね

40 :デフォルトの名無しさん:2011/05/03(火) 15:51:32.83
わざわざ上げてまで今それを言う理由が理解できない。

あそこは今でも一部tipsは有料でやってるのかな。
そりゃ人がどんな商売しようと自由だけど、個人的にはケツの穴が小さいなと思わずにいられない。

41 :デフォルトの名無しさん:2011/05/05(木) 16:01:42.55
コマンドライン引数で日本語パス・ファイル名を受け付けないソフトって諦めるしかない?
渡すファイルを、一旦、日本語を使わないパス・ファイル名にコピーしてから渡す回避策はあるけれど

42 :デフォルトの名無しさん:2011/05/05(木) 19:21:33.46
>>35
> 普通にゲッタとセッタで実装できそうなのに、なんでプロパティ用の
> アクセッサの書き方があるの?

人間の感覚だろうなぁ。

プログラム言語とは関係ないUMLだって、
メソッドとは別に属性(プロパティ)というものがある。

だけど、これ、ゲッタ、セッタで置き換え可能。
つまり実装するにあたって属性というものは必要ないということになるが、
やっぱり属性ってのは、メソッドとは別ものと人間は考えてしまうようだ。


43 :デフォルトの名無しさん:2011/05/05(木) 22:11:51.68
>>35
オブジェクト指向の話になるとオブジェクト指向論と
オブジェクト指向言語の実装についての話がごっちゃになるんだが
メッセージパッシングをメソッド呼び出しで実装したと考えれば
外部公開属性はやっぱ別にしたい


44 :デフォルトの名無しさん:2011/05/07(土) 02:18:50.27
ゲッタ・セッタでは

object.property++ なんて書き方ができない

object.setProperty(object.getProperty()+1) こうなる。

45 :デフォルトの名無しさん:2011/05/07(土) 03:06:00.34
VB6にインクリメントの演算子なんてあったっけ?

46 :デフォルトの名無しさん:2011/05/07(土) 15:30:58.47
>>44
>object.property++ なんて書き方ができない

この書き方をしたいならメンバ変数をPublicにすれば良いだけ。

>object.setProperty(object.getProperty()+1)

この方が安全といえば安全と思う。

47 :デフォルトの名無しさん:2011/05/07(土) 21:07:10.24
安全とか危険とか何意味不明なこと言ってるんだw
インクリメント演算子なんてものはないにしても、>>44の言いたいことはまあ半分は分かる。

要するに、
>object.setProperty(object.getProperty()+1)
こういうのは見難いし醜いということ。

ついでに変数をPublicにしたのでは値の取得または設定時に動作を絡ませることができない。

48 :デフォルトの名無しさん:2011/05/08(日) 00:32:37.20
インターフェースを変えることなく、
感覚通りに名前をつけられるのが
プロパティのいいところ。

49 :デフォルトの名無しさん:2011/05/08(日) 01:42:29.37
>object.setProperty(object.getProperty()+1)
こういうのは
object.addProperty(1)
を作ればいいのでは

50 :デフォルトの名無しさん:2011/05/08(日) 17:27:14.50
>>49
まあそれが妥当だろうね。

51 :デフォルトの名無しさん:2011/05/08(日) 18:03:11.90
どこが妥当だよw

属性(プロパティ)が100あったら、100ごとにセッタ、ゲッタ、>>49相当のものを
一々書くのかw

書く手間のことを言ってるんじゃない。
各属性ごとにその3つなら3つのメソッドを管理するの?
やってられるかよ。

ちなみにaddHogeでは「Hogeを足す」になってしまわないか?

52 :デフォルトの名無しさん:2011/05/08(日) 19:09:44.58
必要なメソッドは必要な時に記述

53 :デフォルトの名無しさん:2011/05/09(月) 00:15:16.20
まずプロパティが100あるっていう前提からしてアホっぽいが
>addHogeでは「Hogeを足す」
まさにそういうメソッドだろう

54 :デフォルトの名無しさん:2011/05/09(月) 00:25:56.79
いい歳こいて日本語の「てにをは」が使えないのは恥ずかしいよ。
「Hogeに足す」と「Hogeを足す」の違い分かる?

55 :デフォルトの名無しさん:2011/05/09(月) 00:37:15.56
んなもんHogeが実際なんなのかによるだろうと思うが
気にいらんかったらaddHogeValueでもaddHogeCountでも
好きに作ったらええがな

56 :デフォルトの名無しさん:2011/05/10(火) 13:59:16.81
VB2003の質問はここでよろしいでしょうか?

57 :デフォルトの名無しさん:2011/05/10(火) 15:32:38.22
ここはVB6まで

58 :デフォルトの名無しさん:2011/05/13(金) 21:57:56.25
プロパティに自由にアクセスできてしまうっていうのはどうかと思うぞ。


59 :デフォルトの名無しさん:2011/05/14(土) 01:39:31.35
>>58
それは、ゲッターとセッターの両方をつけるのと何が違うんだ?

60 :デフォルトの名無しさん:2011/05/14(土) 06:46:10.74
>>59
ゲッター/セッターなら、変な値を設定できないようにしたり、
読み出された回数数えたりできるよ。

61 :デフォルトの名無しさん:2011/05/14(土) 09:34:59.88
フレックスグリッドコントロールを使ってるんですが、
エクセルみたいにセルの下や右だけ罫線の色を変える、みたいなことはできないんですか?


62 :デフォルトの名無しさん:2011/05/14(土) 10:15:51.49
付属のMSフレックスグリッドでは出来ないけど
フレックスグリッド系コントロールの中には、それが出来るものもある
当然、無料じゃないけどな

あとはラインとかピクチャーコントロールとかに色つけて重ねて
擬似的に実装するとかな

63 :デフォルトの名無しさん:2011/05/14(土) 16:42:05.71
>>60
プロパティプロシージャでもできるやろ

64 :デフォルトの名無しさん:2011/05/14(土) 18:15:27.31
>>63
>>59

65 :デフォルトの名無しさん:2011/05/14(土) 18:23:24.27
>>58以降の流れはどれも何が言いたいのかさっぱり分からん。
特に>>64
個人的にはこういうのは他人がエスパーだと思ってるとしか思えん。

66 :デフォルトの名無しさん:2011/05/14(土) 18:55:36.41
理解したくなければ放置しとけば言いし、
理解したいなら「どういうこと?」って聞けばいいのに。

67 :デフォルトの名無しさん:2011/05/16(月) 13:19:30.97
ファイルサイズ取得ってこんな感じで問題ない?問題ある?

With New FileSystemObject
filesize = .GetFile(filepath).Size
End With

68 :デフォルトの名無しさん:2011/05/16(月) 13:33:41.86
実装してみて実際のファイルサイズを取得してみて合ってるならそれでいいのでは?

69 :デフォルトの名無しさん:2011/05/16(月) 13:53:05.69
okわかった。ありがと

70 :デフォルトの名無しさん:2011/05/16(月) 17:31:59.11
ちゃんと8Gオーバーくらいのサイズで試さないとね

71 :デフォルトの名無しさん:2011/05/16(月) 19:44:45.24
>>67
またWithでNewか。いいけど。

72 :デフォルトの名無しさん:2011/05/17(火) 00:06:52.59
えー、With Newって書き方は初めて見た。
これって、End Withで解放されるの?
ガーベジコレクション的にも大丈夫?

ところで皆さんはガーベジコレクションって言いますか?
ガーベッジコレクションって言いますか?

73 :デフォルトの名無しさん:2011/05/17(火) 18:55:36.37
>>72
End Withの後、アクセスしようが無くなって、たぶんメソッド抜けた時点で開放されるかな。

74 :デフォルトの名無しさん:2011/05/17(火) 22:21:37.18
そういうメモリから解放されたかどうかって知るすべあるの?

75 :デフォルトの名無しさん:2011/05/18(水) 07:15:17.07
>>74
自作クラスでやるなら、簡単だよな?

76 :デフォルトの名無しさん:2011/05/18(水) 17:14:53.76
おせーてくらさい

77 :デフォルトの名無しさん:2011/05/18(水) 19:38:30.99
>>76
terminateイベントプロシージャにDebug,Print "hoge"とでも書けば

78 :デフォルトの名無しさん:2011/05/19(木) 01:03:58.16
dd
なるほど

79 :デフォルトの名無しさん:2011/05/19(木) 01:08:41.62
'Class1
Public Sub Hoge()
Debug.Print "hoge"
End Sub
Private Sub Class_Initialize()
Debug.Print "initialize"
End Sub
Private Sub Class_Terminate()
Debug.Print "terminate"
End Sub

'Form1
Private Sub Command1_Click()
Debug.Print "click"
With New Class1
Debug.Print "call hoge"
.Hoge
Debug.Print "aftre call hoge"
End With
Debug.Print "end sub"
End Sub

'Result
click
initialize
call hoge
hoge
aftre call hoge
terminate
end sub

80 :デフォルトの名無しさん:2011/05/20(金) 15:31:26.12
VBを今のところ、ただ勉強目的で始めたいのですが、VBの何をまずダウンロードすればいいのか、わかりません。教えてください。

自宅でWindows7を使っています。インターネット接続環境はありません。そのため、ネットカフェでダウンロードして、自宅でそれをインストールしたいのですが、オフラインの自宅でインストールは可能でしょうか?

また何というものをダウンロードすればいいのですか?

いろいろ調べたら、単なる勉学者は、Express Editionとかいうのをダウンロードすればいいみたいですが、詳しくはわかりません。

以上を踏まえ、どなたか何とぞ、お教えねがいます。

81 :デフォルトの名無しさん:2011/05/20(金) 16:06:07.83
>>80
スレ違い

ダウンロード出来るのは、VBではなくVB.NET

VB.NET質問スレ(Part36)
http://hibari.2ch.net/test/read.cgi/tech/1301828549/

82 :デフォルトの名無しさん:2011/05/20(金) 16:15:50.20
ftp://ftp.microsoft.com/softlib/
このサイトのMSLFILESにあるVB6用のサンプルプログラムってVB6やるからには見ておいたほうがいいの?

83 :デフォルトの名無しさん:2011/05/20(金) 17:55:11.04
ftp://ftp.microsoft.com/のdeveloprフォルダ

84 :デフォルトの名無しさん:2011/05/20(金) 17:58:13.02
ftp://ftp.microsoft.com/deskapps/games/public/でゲームでも探して炉

85 :デフォルトの名無しさん:2011/05/20(金) 18:06:50.49
なにがしたいんだよ

86 :デフォルトの名無しさん:2011/05/21(土) 23:03:28.32
フォーム上のコマンドボタンを押すと1行目に『ビート』、2行目に『たけし』とリストボックスに追加されるプログラムがある。【@】、【A】を埋めて完成させよ。リストボックスのオブジェクト名は『List1』とする。

Private Sub Command1_Clic()

List1.【 @ 】
List1.【 A 】

End Sub


87 :デフォルトの名無しさん:2011/05/21(土) 23:11:50.42
動的配列を使い、コマンドボックスを押すたびに配列の数が増えるプログラムを【】を埋めて完成させよ。

Private Max As Long 'データ数を保存する変数
Private Hairetu() As Long '配列


Private Sub Form_Load()
Max = 0 'データ数初期化
End Sub

Private Sub Command1_Click()

Max = Max + 1 'データ数を1つ増やす
【 】'実際に配列の範囲を変更

End Sub

88 :デフォルトの名無しさん:2011/05/21(土) 23:24:53.29
先生、コマンドボックスってなんですか?

89 :デフォルトの名無しさん:2011/05/21(土) 23:46:50.70
Redim Preserveだが…なんでこんな問題作ってんの?

90 :デフォルトの名無しさん:2011/05/22(日) 00:57:54.89
学校の宿題なんだろ

91 :デフォルトの名無しさん:2011/05/22(日) 01:13:59.00
「値を保持したまま」とは書いてないから、ReDimだけで良いのでは?
値の保持が必要ないなら、ReDim Preserveは遅いだけだし

92 :デフォルトの名無しさん:2011/05/22(日) 03:21:05.03
Hairetu()(笑)

93 :デフォルトの名無しさん:2011/05/22(日) 16:34:01.94
Haiyoru(笑)

94 :デフォルトの名無しさん:2011/05/22(日) 17:11:34.88
ググればすぐわかるような基本構文問題には答えんなよw

95 :デフォルトの名無しさん:2011/05/22(日) 20:22:20.71
>>86
先生!なに入れてもコマンドボタンが反応しません!

96 :デフォルトの名無しさん:2011/05/22(日) 21:00:12.41
確かにあれじゃ反応しないなw
なんてマのヌケた出題なんだろう…

97 :デフォルトの名無しさん:2011/05/24(火) 23:15:18.09
1つの配列の中に重複するデータが多数ある
重複するデータを抜き出したい
A,B,A,B,A,A,C,F,C....
欲しいデータは重複データなので上記の場合
A,B,Cとなります
unique以外を取得したいのです

98 :デフォルトの名無しさん:2011/05/25(水) 01:01:19.38
>>97
ソートしてから、2つ以上同一の値が連続しているものを抜粋する
Filter掛けて、戻り値のUBoundが1以上のものを列挙する
連想配列を利用する

いろいろ方法はあるので、お好きな物をどうぞ

99 :デフォルトの名無しさん:2011/05/25(水) 01:02:11.41
便利なコマンドがVB6以前に存在するのかを尋ねているのか
最速アルゴリズムを尋ねているのか

100 :デフォルトの名無しさん:2011/05/25(水) 01:30:36.51
じゃあ両方で

212 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)