1 名前:デフォルトの名無しさん mailto:sage [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 ホーム 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/ ※「まず自分で調べる」クセを身につけよう。
2 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 01:50:49.55 ] Part 1 piza2.2ch.net/tech/kako/968/968328471.html Part 2 piza2.2ch.net/tech/kako/990/990793224.html Part 3 piza2.2ch.net/tech/kako/1000/10005/1000523122.html Part 4 pc.2ch.net/tech/kako/1006/10069/1006922992.html Part 5 pc.2ch.net/tech/kako/1010/10106/1010624646.html Part 6 pc.2ch.net/tech/kako/1013/10138/1013844542.html Part 7 pc.2ch.net/tech/kako/1015/10158/1015836357.html Part 8 pc.2ch.net/tech/kako/1018/10187/1018794901.html Part 9 pc.2ch.net/tech/kako/1020/10208/1020830472.html Part10 pc.2ch.net/tech/kako/1022/10221/1022127528.html Part11 pc.2ch.net/tech/kako/1024/10243/1024380249.html Part12 pc3.2ch.net/tech/kako/1026/10266/1026642565.html Part13 pc3.2ch.net/tech/kako/1029/10292/1029241786.html Part14 pc3.2ch.net/tech/kako/1030/10309/1030947162.html Part15 pc3.2ch.net/tech/kako/1032/10327/1032706491.html Part16 pc3.2ch.net/tech/kako/1034/10343/1034302532.html Part17 pc3.2ch.net/tech/kako/1036/10361/1036154952.html Part18 pc3.2ch.net/tech/kako/1038/10381/1038103769.html Part19 pc3.2ch.net/tech/kako/1039/10398/1039859691.html Part20 pc2.2ch.net/tech/kako/1041/10418/1041879465.html Part21 pc2.2ch.net/tech/kako/1044/10440/1044028945.html Part22 pc2.2ch.net/tech/kako/1046/10463/1046354784.html Part23 pc2.2ch.net/tech/kako/1047/10477/1047743187.html Part24 pc2.2ch.net/tech/kako/1050/10501/1050151126.html Part25 pc2.2ch.net/tech/kako/1052/10526/1052627913.html Part26 pc2.2ch.net/tech/kako/1055/10551/1055145106.html Part27 pc2.2ch.net/tech/kako/1058/10586/1058674927.html Part28 pc2.2ch.net/tech/kako/1061/10612/1061296197.html Part29 pc2.2ch.net/tech/kako/1065/10654/1065446334.html
3 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 01:51:19.26 ] Part30 pc2.2ch.net/test/read.cgi/tech/1069160036/ Part31 pc2.2ch.net/test/read.cgi/tech/1073732636/ Part32 pc5.2ch.net/test/read.cgi/tech/1077216109/ Part33 pc5.2ch.net/test/read.cgi/tech/1080606445/ Part34 pc5.2ch.net/test/read.cgi/tech/1084544243/ Part35 pc5.2ch.net/test/read.cgi/tech/1087519251/ Part36 pc5.2ch.net/test/read.cgi/tech/1092906058/ Part37 pc5.2ch.net/test/read.cgi/tech/1090286450/ Part38 pc5.2ch.net/test/read.cgi/tech/1095673000/ Part39 pc5.2ch.net/test/read.cgi/tech/1099737063/ Part40 pc5.2ch.net/test/read.cgi/tech/1106748775/ Part41 pc8.2ch.net/test/read.cgi/tech/1112414085/ Part42 pc8.2ch.net/test/read.cgi/tech/1116924129/ Part43 pc8.2ch.net/test/read.cgi/tech/1123952677/ Part44 pc8.2ch.net/test/read.cgi/tech/1130231657/ Part45 pc8.2ch.net/test/read.cgi/tech/1133977286/ Part46 pc8.2ch.net/test/read.cgi/tech/1138975113/ Part47 pc8.2ch.net/test/read.cgi/tech/1141320612/ Part48 pc8.2ch.net/test/read.cgi/tech/1146678926/ Part49 pc8.2ch.net/test/read.cgi/tech/1152667953/ Part50 pc10.2ch.net/test/read.cgi/tech/1161517193/ Part51 pc11.2ch.net/test/read.cgi/tech/1169949451/ Part52 pc11.2ch.net/test/read.cgi/tech/1179563617/ Part53 pc11.2ch.net/test/read.cgi/tech/1187667616/ Part54 pc11.2ch.net/test/read.cgi/tech/1204552981/ Part55 pc12.2ch.net/test/read.cgi/tech/1247487156/ Part56 hibari.2ch.net/test/read.cgi/tech/1275397597/
4 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 01:52:22.06 ] クラス間の依存性は減るけど、XMLへの依存が強いってことは何の問題もないの?
5 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 01:53:44.88 ] 素人は黙ってネンネしなさい
6 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 01:57:13.01 ] >>1000 だからDIはそれを使いやすくフレームワークに まとめた仕組みのことを言うんだよ。 具体的にはオブジェクトの生成部分を コード内に書かないでフレームワークに任せる。 多態を使ってても、オブジェクトの生成は コードに書いてしまうだろ。それじゃだめだってこと。
7 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 02:02:05.11 ] >>4 依存をなくすのではなくて依存を分離するのが目的。 クラスから依存が減る。それはなくなるという意味ではなく XMLに分離するということ。 あなたの言っていることは問題ではなくて、 そもそもそういうふうにしたい事、つまり目的だよ。
8 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 02:09:57.79 ] なるほどね
9 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 02:35:52.78 ] コンパイラがDIコンテナを使うってことか
12 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 02:39:04.11 ] >>11 なんかとんでもない勘違いをしてるぞw
13 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 02:43:07.62 ] 眠いので頭が正常に働いてないのかも 明日昼間もういちど前スレから読み直してみる ありがと
14 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 02:59:09.66 ] Windows Script Host Object Model (wshom.ocx) Microsoft Sripting Runtime (scrrun.dll) の両方にFileSystemObjectあるけど未だに違いがわからん
16 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 03:02:52.11 ] むしろ、継承はないがインターフェースはあるVB6には DIはぴったりだと思うな。 DIが出てきた背景には(昔の)EJBの継承を強要するやり方は 複雑でテストしにくい。POJO(継承使ってない単純なオブジェクト)を 使いましょう。ってのがあるし。 VBはもともと継承が使えない。
17 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 03:05:08.26 ] VB6での新規案件なんかあるのか?
18 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 03:10:07.03 ] ああ、コンパイラじゃなくて 別のとこでfsoに代入するコードが書かれてるってことか
19 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 03:18:52.07 ] >>18 そう。書かれてる。 ただしDIコンテナというフレームワークが やってくれるところだから見るべきところではない。 勝手に入れてくれるという認識でOK ただし、VB6用のDIコンテはないw
20 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 03:22:28.04 ] よくわかった
21 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 08:47:23.24 ] 一応、開発にはimplements使ってる。 ListViewとかTreeViewへの表示にはimplementsしたクラスを 利用してる。これだけでもだいぶ助かるけど… Javaだとインターフェースはインターフェースだけで その場でインターフェースをnewして、しかもその場で 実装を書くことが可能。 VB6やってて不便に思うのは… 引数付きコンストラクタが無い事と、インターフェースのnew実装か。
22 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 11:45:40.71 ] インターフェースをnewするって意味が分からないけど・・・ 引数付きコンストラクタは、適当な関数でも作ればいいと思う。 newして引数を設定する関数でも、newしてクラスのメソッドを呼び出す関数でも。
23 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 11:47:30.26 ] > Javaだとインターフェースはインターフェースだけで > その場でインターフェースをnewして、しかもその場で > 実装を書くことが可能。 あ、無名クラスのことか。 正確にはインターフェースをnewしてるんじゃなくて 名前がないクラス作ってるんだけどな。
24 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 12:34:59.22 ] VBの場合インターフェース無くても同名のメソッドあれば参照できるんじゃなかったっけ?
25 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 22:42:11.86 ] インターフェースなくても同名メソッド使えるっていうのは嫌だな。 かといって、インターフェースかぶせても、 インターフェース名_メソッド名 が、メソッド名になるのも、はっきりいってうっとおしい。
27 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 02:56:19.90 ] どうでもいいことだけど、些細なミスnew Class2();ね
29 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 04:16:08.27 ] >>26 > インターフェースなくても同名メソッド使えるっていうのは嫌だな。 そういう言語は他にもあるし(例 JavaScript、Perl) > インターフェース名_メソッド名 インターフェース名::メソッド名 や インターフェース名.メソッド名 と大差ない まだまだ経験が足りないようだなw
30 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 04:22:24.58 ] Javaって インターフェース名_メソッド名 に ならないから、 複数のインターフェースで同名のメソッドがあった場合に 困るんだっけ?count()とかありがちなメソッド
31 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 04:38:54.04 ] vbは優秀だな
32 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 14:16:00.62 ] まあVB6はともかく、VB.NETのインターフェイスの仕組みは良くできてる。 こればっかりはC#より良い。
33 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 15:20:47.28 ] VB6のインターフェイスはCOM相互運用のための機能だからああゆう形になるのは仕方が無いね。 VB6のインターフェイスの宣言は中身(実装)の無いクラスを使うことが多いけど、 IDLも使えるあたりもろにCOM相互運用のためのものと分かる。 >>32 VB.NETのインターフェイスは実装のときに C#の明示的実装のような書き方になるのであんまり好きじゃないけど、 良くできてると思うのはなぜ?
34 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 15:47:40.04 ] >>33 例えばC#の場合、インターフェイスのメンバーを、 (1) 同じ名前のシグネチャのメソッドとして実装した場合、どれがインターフェイスを 実装したメソッドか明示的に分からない。(これは個人的に気持ち悪い) (2) 明示的実装を使った場合は、そのメソッドはインターフェイスを通してしか 呼び出せない。 という問題があるけど、VBの場合はこれがない。 一つのメソッドが普通のクラスメンバでありつつ、同時にインターフェースの 明示的な実装でもありうる。 www.atmarkit.co.jp/fdotnet/onepoint/onepoint01/onepoint01_02.html
35 名前:デフォルトの名無しさん mailto:sage [2011/05/02(月) 00:04:56.75 ] なんか珍しくオブジェクト指向っぽいスレの流れになってるので この流れで質問させてほしい。 マイクロソフト系言語には、プロパティつうものの存在があって プロパティ用のアクセッサの書き方があるけど、 普通にゲッタとセッタで実装できそうなのに、なんでプロパティ用の アクセッサの書き方があるの?
36 名前:デフォルトの名無しさん mailto:sage [2011/05/02(月) 00:34:33.44 ] 一つはプロパティという概念を導入した方がクラスの構造がわかりやすくなるから。 変数名などa, b, c, ....でも「実装できそうなのに」分かり易い名前を付けるのと同じ動機。 もう一つはプロパティとメソッドが機械から区別できた方がいい事があるから。 例えばVB6でも.NETでもGUIアプリのデザインをデザイナでデザインできるのはこのため。
37 名前:デフォルトの名無しさん mailto:sage [2011/05/02(月) 05:27:47.95 ] >>35 メソッドと同じ書式でいちいちゲッタセッタを書くのが面倒だから。 プロパティならとりあえず変数として宣言しておいて、 あとで気が変わったときにゲッタセッタ(プロパティ)を書けば済む。
38 名前:デフォルトの名無しさん mailto:sage [2011/05/02(月) 13:55:12.47 ] >>37 答えになってないでしょ。 何故Bが必要かと聞いているのに、何時でもAはBに変更できるからってそれ何だよ。
39 名前:デフォルトの名無しさん [2011/05/03(火) 15:41:07.99 ] レスキュー花ちゃんはありがたいね
40 名前:デフォルトの名無しさん mailto:sage [2011/05/03(火) 15:51:32.83 ] わざわざ上げてまで今それを言う理由が理解できない。 あそこは今でも一部tipsは有料でやってるのかな。 そりゃ人がどんな商売しようと自由だけど、個人的にはケツの穴が小さいなと思わずにいられない。
41 名前:デフォルトの名無しさん [2011/05/05(木) 16:01:42.55 ] コマンドライン引数で日本語パス・ファイル名を受け付けないソフトって諦めるしかない? 渡すファイルを、一旦、日本語を使わないパス・ファイル名にコピーしてから渡す回避策はあるけれど
42 名前:デフォルトの名無しさん mailto:sage [2011/05/05(木) 19:21:33.46 ] >>35 > 普通にゲッタとセッタで実装できそうなのに、なんでプロパティ用の > アクセッサの書き方があるの? 人間の感覚だろうなぁ。 プログラム言語とは関係ないUMLだって、 メソッドとは別に属性(プロパティ)というものがある。 だけど、これ、ゲッタ、セッタで置き換え可能。 つまり実装するにあたって属性というものは必要ないということになるが、 やっぱり属性ってのは、メソッドとは別ものと人間は考えてしまうようだ。
43 名前:デフォルトの名無しさん mailto:sage [2011/05/05(木) 22:11:51.68 ] >>35 オブジェクト指向の話になるとオブジェクト指向論と オブジェクト指向言語の実装についての話がごっちゃになるんだが メッセージパッシングをメソッド呼び出しで実装したと考えれば 外部公開属性はやっぱ別にしたい
44 名前:デフォルトの名無しさん mailto:sage [2011/05/07(土) 02:18:50.27 ] ゲッタ・セッタでは object.property++ なんて書き方ができない object.setProperty(object.getProperty()+1) こうなる。
45 名前:デフォルトの名無しさん mailto:sage [2011/05/07(土) 03:06:00.34 ] VB6にインクリメントの演算子なんてあったっけ?
46 名前:デフォルトの名無しさん mailto:sage [2011/05/07(土) 15:30:58.47 ] >>44 >object.property++ なんて書き方ができない この書き方をしたいならメンバ変数をPublicにすれば良いだけ。 >object.setProperty(object.getProperty()+1) この方が安全といえば安全と思う。
47 名前:デフォルトの名無しさん mailto:sage [2011/05/07(土) 21:07:10.24 ] 安全とか危険とか何意味不明なこと言ってるんだw インクリメント演算子なんてものはないにしても、>>44 の言いたいことはまあ半分は分かる。 要するに、 >object.setProperty(object.getProperty()+1) こういうのは見難いし醜いということ。 ついでに変数をPublicにしたのでは値の取得または設定時に動作を絡ませることができない。
48 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 00:32:37.20 ] インターフェースを変えることなく、 感覚通りに名前をつけられるのが プロパティのいいところ。
49 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 01:42:29.37 ] >object.setProperty(object.getProperty()+1) こういうのは object.addProperty(1) を作ればいいのでは
50 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 17:27:14.50 ] >>49 まあそれが妥当だろうね。
51 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 18:03:11.90 ] どこが妥当だよw 属性(プロパティ)が100あったら、100ごとにセッタ、ゲッタ、>>49 相当のものを 一々書くのかw 書く手間のことを言ってるんじゃない。 各属性ごとにその3つなら3つのメソッドを管理するの? やってられるかよ。 ちなみにaddHogeでは「Hogeを足す」になってしまわないか?
52 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 19:09:44.58 ] 必要なメソッドは必要な時に記述
53 名前:デフォルトの名無しさん mailto:sage [2011/05/09(月) 00:15:16.20 ] まずプロパティが100あるっていう前提からしてアホっぽいが >addHogeでは「Hogeを足す」 まさにそういうメソッドだろう
54 名前:デフォルトの名無しさん mailto:sage [2011/05/09(月) 00:25:56.79 ] いい歳こいて日本語の「てにをは」が使えないのは恥ずかしいよ。 「Hogeに足す」と「Hogeを足す」の違い分かる?
55 名前:デフォルトの名無しさん mailto:sage [2011/05/09(月) 00:37:15.56 ] んなもんHogeが実際なんなのかによるだろうと思うが 気にいらんかったらaddHogeValueでもaddHogeCountでも 好きに作ったらええがな
56 名前:デフォルトの名無しさん mailto:sage [2011/05/10(火) 13:59:16.81 ] VB2003の質問はここでよろしいでしょうか?
57 名前:デフォルトの名無しさん mailto:sage [2011/05/10(火) 15:32:38.22 ] ここはVB6まで
58 名前:デフォルトの名無しさん mailto:sage [2011/05/13(金) 21:57:56.25 ] プロパティに自由にアクセスできてしまうっていうのはどうかと思うぞ。
59 名前:デフォルトの名無しさん mailto:sage [2011/05/14(土) 01:39:31.35 ] >>58 それは、ゲッターとセッターの両方をつけるのと何が違うんだ?
60 名前:デフォルトの名無しさん mailto:sage [2011/05/14(土) 06:46:10.74 ] >>59 ゲッター/セッターなら、変な値を設定できないようにしたり、 読み出された回数数えたりできるよ。
61 名前:デフォルトの名無しさん mailto:sage [2011/05/14(土) 09:34:59.88 ] フレックスグリッドコントロールを使ってるんですが、 エクセルみたいにセルの下や右だけ罫線の色を変える、みたいなことはできないんですか?
62 名前:デフォルトの名無しさん mailto:sage [2011/05/14(土) 10:15:51.49 ] 付属のMSフレックスグリッドでは出来ないけど フレックスグリッド系コントロールの中には、それが出来るものもある 当然、無料じゃないけどな あとはラインとかピクチャーコントロールとかに色つけて重ねて 擬似的に実装するとかな
63 名前:デフォルトの名無しさん mailto:sage [2011/05/14(土) 16:42:05.71 ] >>60 プロパティプロシージャでもできるやろ
64 名前:デフォルトの名無しさん mailto:sage [2011/05/14(土) 18:15:27.31 ] >>63 >>59
65 名前:デフォルトの名無しさん mailto:sage [2011/05/14(土) 18:23:24.27 ] >>58 以降の流れはどれも何が言いたいのかさっぱり分からん。 特に>>64 個人的にはこういうのは他人がエスパーだと思ってるとしか思えん。
66 名前:デフォルトの名無しさん mailto:sage [2011/05/14(土) 18:55:36.41 ] 理解したくなければ放置しとけば言いし、 理解したいなら「どういうこと?」って聞けばいいのに。
67 名前:デフォルトの名無しさん mailto:sage [2011/05/16(月) 13:19:30.97 ] ファイルサイズ取得ってこんな感じで問題ない?問題ある? With New FileSystemObject filesize = .GetFile(filepath).Size End With
68 名前:デフォルトの名無しさん mailto:sage [2011/05/16(月) 13:33:41.86 ] 実装してみて実際のファイルサイズを取得してみて合ってるならそれでいいのでは?
69 名前:デフォルトの名無しさん mailto:sage [2011/05/16(月) 13:53:05.69 ] okわかった。ありがと
70 名前:デフォルトの名無しさん mailto:sage [2011/05/16(月) 17:31:59.11 ] ちゃんと8Gオーバーくらいのサイズで試さないとね
71 名前:デフォルトの名無しさん mailto:sage [2011/05/16(月) 19:44:45.24 ] >>67 またWithでNewか。いいけど。
72 名前:デフォルトの名無しさん mailto:sage [2011/05/17(火) 00:06:52.59 ] えー、With Newって書き方は初めて見た。 これって、End Withで解放されるの? ガーベジコレクション的にも大丈夫? ところで皆さんはガーベジコレクションって言いますか? ガーベッジコレクションって言いますか?
73 名前:デフォルトの名無しさん mailto:sage [2011/05/17(火) 18:55:36.37 ] >>72 End Withの後、アクセスしようが無くなって、たぶんメソッド抜けた時点で開放されるかな。
74 名前:デフォルトの名無しさん mailto:sage [2011/05/17(火) 22:21:37.18 ] そういうメモリから解放されたかどうかって知るすべあるの?
75 名前:デフォルトの名無しさん mailto:sage [2011/05/18(水) 07:15:17.07 ] >>74 自作クラスでやるなら、簡単だよな?
76 名前:デフォルトの名無しさん mailto:sage [2011/05/18(水) 17:14:53.76 ] おせーてくらさい
77 名前:デフォルトの名無しさん mailto:sage [2011/05/18(水) 19:38:30.99 ] >>76 terminateイベントプロシージャにDebug,Print "hoge"とでも書けば
78 名前:デフォルトの名無しさん mailto:sage [2011/05/19(木) 01:03:58.16 ] dd なるほど
79 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/05/20(金) 15:31:26.12 ] VBを今のところ、ただ勉強目的で始めたいのですが、VBの何をまずダウンロードすればいいのか、わかりません。教えてください。 自宅でWindows7を使っています。インターネット接続環境はありません。そのため、ネットカフェでダウンロードして、自宅でそれをインストールしたいのですが、オフラインの自宅でインストールは可能でしょうか? また何というものをダウンロードすればいいのですか? いろいろ調べたら、単なる勉学者は、Express Editionとかいうのをダウンロードすればいいみたいですが、詳しくはわかりません。 以上を踏まえ、どなたか何とぞ、お教えねがいます。
81 名前:デフォルトの名無しさん mailto:sage [2011/05/20(金) 16:06:07.83 ] >>80 スレ違い ダウンロード出来るのは、VBではなくVB.NET VB.NET質問スレ(Part36) hibari.2ch.net/test/read.cgi/tech/1301828549/
82 名前:デフォルトの名無しさん mailto:sage [2011/05/20(金) 16:15:50.20 ] ftp://ftp.microsoft.com/softlib/ このサイトのMSLFILESにあるVB6用のサンプルプログラムってVB6やるからには見ておいたほうがいいの?
83 名前:デフォルトの名無しさん mailto:sage [2011/05/20(金) 17:55:11.04 ] ftp://ftp.microsoft.com/のdeveloprフォルダ
84 名前:デフォルトの名無しさん mailto:sage [2011/05/20(金) 17:58:13.02 ] ftp://ftp.microsoft.com/deskapps/games/public/でゲームでも探して炉
85 名前:デフォルトの名無しさん mailto:sage [2011/05/20(金) 18:06:50.49 ] なにがしたいんだよ
86 名前:デフォルトの名無しさん mailto:sage [2011/05/21(土) 23:03:28.32 ] フォーム上のコマンドボタンを押すと1行目に『ビート』、2行目に『たけし』とリストボックスに追加されるプログラムがある。【@】、【A】を埋めて完成させよ。リストボックスのオブジェクト名は『List1』とする。 Private Sub Command1_Clic() List1.【 @ 】 List1.【 A 】 End Sub
87 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/05/21(土) 23:24:53.29 ] 先生、コマンドボックスってなんですか?
89 名前:デフォルトの名無しさん mailto:sage [2011/05/21(土) 23:46:50.70 ] Redim Preserveだが…なんでこんな問題作ってんの?
90 名前:デフォルトの名無しさん mailto:sage [2011/05/22(日) 00:57:54.89 ] 学校の宿題なんだろ
91 名前:デフォルトの名無しさん mailto:sage [2011/05/22(日) 01:13:59.00 ] 「値を保持したまま」とは書いてないから、ReDimだけで良いのでは? 値の保持が必要ないなら、ReDim Preserveは遅いだけだし
92 名前:デフォルトの名無しさん mailto:sage [2011/05/22(日) 03:21:05.03 ] Hairetu()(笑)
93 名前:デフォルトの名無しさん mailto:sage [2011/05/22(日) 16:34:01.94 ] Haiyoru(笑)
94 名前:デフォルトの名無しさん mailto:sage [2011/05/22(日) 17:11:34.88 ] ググればすぐわかるような基本構文問題には答えんなよw
95 名前:デフォルトの名無しさん mailto:sage [2011/05/22(日) 20:22:20.71 ] >>86 先生!なに入れてもコマンドボタンが反応しません!
96 名前:デフォルトの名無しさん mailto:sage [2011/05/22(日) 21:00:12.41 ] 確かにあれじゃ反応しないなw なんてマのヌケた出題なんだろう…
97 名前:デフォルトの名無しさん mailto:sage [2011/05/24(火) 23:15:18.09 ] 1つの配列の中に重複するデータが多数ある 重複するデータを抜き出したい A,B,A,B,A,A,C,F,C.... 欲しいデータは重複データなので上記の場合 A,B,Cとなります unique以外を取得したいのです
98 名前:デフォルトの名無しさん mailto:sage [2011/05/25(水) 01:01:19.38 ] >>97 ソートしてから、2つ以上同一の値が連続しているものを抜粋する Filter掛けて、戻り値のUBoundが1以上のものを列挙する 連想配列を利用する いろいろ方法はあるので、お好きな物をどうぞ
99 名前:デフォルトの名無しさん mailto:sage [2011/05/25(水) 01:02:11.41 ] 便利なコマンドがVB6以前に存在するのかを尋ねているのか 最速アルゴリズムを尋ねているのか
100 名前:デフォルトの名無しさん mailto:sage [2011/05/25(水) 01:30:36.51 ] じゃあ両方で
101 名前:デフォルトの名無しさん mailto:sage [2011/05/25(水) 01:34:08.95 ] 99に期待
102 名前:97 mailto:sage [2011/05/25(水) 07:51:55.31 ] >>98 連想配列でぐぐってきた! 連想配列が何か分かったけど、どうアルゴリズム化していいかわかんねw >>99 uniqueの逆の関数があれば1番良かったんですけど、なさそうなのでアルゴリズムです
103 名前:97 mailto:sage [2011/05/25(水) 12:53:49.58 ] 自己解決 l = Ubound(hogeArray) For i=0 TO l For j=i+1 TO l If hogeArray(i) = hogeArray(j) Then '同値の場合の処理 end if next next msgbox hoge
104 名前:97 mailto:sage [2011/05/25(水) 12:59:17.07 ] >>103 最後のmsgboxはゴミです
105 名前:デフォルトの名無しさん mailto:sage [2011/05/25(水) 18:19:25.53 ] それだけだと、A,B,A,B,A,A,C,F,Cの場合 BやCみたいに2つの場合はいいけど、Aみたいに4つの場合は6回(3+2+1回)実行されちゃうよ 3つの場合は3回(2+1回)、5つの場合は10回(4+3+2+1回)だ つまり、「A,B,A,B,A,A,C,F,C」が「A,A,A, B, A,A, A, C」になってしまうので、 それで問題ないなら構わないけど、「A,B,C」にしたいという最初の条件とは違うよね
106 名前:デフォルトの名無しさん mailto:sage [2011/05/25(水) 19:45:31.84 ] perlだと1行で簡単にできる式があったような気がしたw
107 名前:デフォルトの名無しさん mailto:sage [2011/05/25(水) 19:53:16.45 ] で?
108 名前:デフォルトの名無しさん mailto:sage [2011/05/25(水) 19:54:26.43 ] そういや7年くらい前にperlの連想配列と同じことができるVBのクラスを作った記憶があるw
109 名前:デフォルトの名無しさん mailto:sage [2011/05/25(水) 20:05:42.48 ] >>107 で?じゃないだろ? Private data As Object Set data = CreateObject("Scripting.Dictionary") For i = 0 To l data(hogearray(i)) = data(hogearray(i)) + 1 If data(hogearray(i)) = 1 Then '新しい配列に追加 End If Next i
110 名前:デフォルトの名無しさん mailto:sage [2011/05/25(水) 20:42:36.81 ] 何、この子?
111 名前:デフォルトの名無しさん mailto:sage [2011/05/25(水) 23:23:18.20 ] ほうほう。それでそれで?
112 名前:デフォルトの名無しさん mailto:sage [2011/05/26(木) 01:59:56.98 ] Private data As Object Set data = CreateObject("Scripting.Dictionary") For i = 0 To l data(hogearray(i)) = data(hogearray(i)) + 1 Next i For Each k In data.Keys if k>1 then '処理 end if Next k
113 名前:デフォルトの名無しさん mailto:sage [2011/05/26(木) 02:06:32.87 ] >>97 >>103 を見るかぎりhogeArrayの中身は
114 名前:97 mailto:sage [2011/05/26(木) 08:41:35.84 ] >>105 重複処理でuniqueします
115 名前:デフォルトの名無しさん mailto:sage [2011/05/26(木) 13:00:44.16 ] VBで動的連想配列ってできるんですか? ググっても見付かりません
116 名前:デフォルトの名無しさん mailto:sage [2011/05/26(木) 13:12:22.09 ] ttp://7ujm.net/VB/VB6MAP.html
117 名前:デフォルトの名無しさん mailto:sage [2011/05/26(木) 15:41:14.52 ] x^3-7*x+1の式でニュートンラフソン法を用い、初期解と繰り返しの回数を入力したら 近似解が求められるプログラミングを作りたいんですが、どう作ればよいですか? もしスレチでしたらすみません
118 名前:デフォルトの名無しさん mailto:sage [2011/05/26(木) 20:51:24.73 ] >>117 hibari.2ch.net/test/read.cgi/tech/1276873238/
119 名前:デフォルトの名無しさん mailto:sage [2011/05/28(土) 15:26:54.34 ] VB6でマルチスレッド作るの無理だよね・・?
120 名前:デフォルトの名無しさん mailto:sage [2011/05/28(土) 15:47:14.47 ] 複数プロセス起動すれば良い
121 名前:デフォルトの名無しさん mailto:sage [2011/05/28(土) 18:11:35.77 ] >>119 実用的じゃないけど、可能だよ。
122 名前:デフォルトの名無しさん mailto:sage [2011/05/28(土) 18:50:02.37 ] 訂正 可能だけど、実用的じゃないよ。
123 名前:デフォルトの名無しさん mailto:sage [2011/05/28(土) 19:11:31.96 ] >>122 ちょwww 訂正って、それじゃ意味変わってないだろ。 訂正するなら「不可能だけど、実用的だよ」か 「可能だし、実用的だよ」のどちらかだろwww
124 名前:デフォルトの名無しさん mailto:sage [2011/05/28(土) 22:00:55.94 ] A = 実用的 B = 可能 元の文章は not A and B 訂正するなら not A and not B A and B A and not B もっとも日本語として強調したい部分というのは後にもってくるという のもあるので、 not A and B を B and not A と言い換えるのも無い事は無いか。
125 名前:デフォルトの名無しさん mailto:sage [2011/05/28(土) 22:17:24.05 ] >>123 「表現」を「訂正」してるだけだろ。 まあ、いちいち訂正するほどのコトとは思えないけど。
126 名前:デフォルトの名無しさん mailto:sage [2011/05/29(日) 01:46:44.64 ] もっと賢いやりかたったらおせーて Public Function ToStringB__v2(v As Variant) As String Const PREFIX$ = " KMGTPEZY" Dim s$, p#, n&, i&: p = CDbl(v): n = 1 For i = 2 To Len(PREFIX) If p >= 1000 Then p = p / 1000: n = n + 1 Else Exit For Next i s = Format(p, IIf(p >= 100, "0", IIf(p >= 10, "0.0", "0.00"))) ToStringB__v2 = s & " " & IIf(n > 1, Mid(PREFIX, n, 1), "") & "B" End Function Public Function ToStringIB__v2(v As Variant) As String Const PREFIX$ = " KMGTPEZY" Dim s$, p#, n&, i&: p = CDbl(v): n = 1 For i = 2 To Len(PREFIX) If p >= 1024 Then p = p / 1024: n = n + 1 Else Exit For Next i s = Format(p, IIf(p >= 100, "0", IIf(p >= 10, "0.0", "0.00"))) ToStringIB__v2 = s & " " & IIf(n > 1, Mid(PREFIX, n, 1), "") & "iB" End Function
127 名前:デフォルトの名無しさん mailto:sage [2011/05/29(日) 01:53:17.35 ] 簡単なエラートラップなら Cdbl(v)する前に If Not IsNumeric(v) Then Exit Function を入れる
128 名前:デフォルトの名無しさん mailto:sage [2011/05/29(日) 01:59:09.34 ] On Error Goto ErrorLabel とかして End Functionの手前にErrorLabel:って入れればOK
129 名前:デフォルトの名無しさん mailto:sage [2011/05/29(日) 09:10:26.34 ] >>126 n = Int(Log(p)/Log(1000#)): p = p / (1000# ^ n) # 元のプログラムと n の値が 1 違うので注意 (0 ベースになる) # v = 0 の時に Log() がエラーになるので、そのケースがあるなら事前に場合分けが必要
130 名前:デフォルトの名無しさん mailto:sage [2011/05/30(月) 03:20:52.74 ] なるほど 勉強になります ありがとうございました
131 名前:デフォルトの名無しさん mailto:sage [2011/05/31(火) 15:32:01.70 ] ActiveX DLLでCOM作ってるんだけど、ADOのRecordSetやFieldが持ってる 連想配列みたいにアクセスするインターフェースってどうやって作るん?
132 名前:131 mailto:sage [2011/05/31(火) 16:27:12.11 ] プロシージャIDを0にすると既定になって、省略可能になったわ。
133 名前:デフォルトの名無しさん mailto:sage [2011/05/31(火) 17:00:57.81 ] ?
134 名前:デフォルトの名無しさん mailto:sage [2011/06/01(水) 12:34:59.02 ] VB4なんですがWIN87EM.DLLで一般保護違反が出るのですが、 なかなか再現しません。このエラーを故意に起こすには、どのようにコーディングすればいいですか? OSはNT4です。
135 名前:デフォルトの名無しさん mailto:sage [2011/06/02(木) 21:10:23.48 ] すいません、質問させてください。 今下記のような感じでテキストファイルを読み込んで excelに出力するものを作っています。 Array1と10に降順でソートを掛けたいと思っています。 ですが、どう記述するのかわかりませんでした・・・・ どなたかお力お貸しください。
136 名前:デフォルトの名無しさん mailto:sage [2011/06/02(木) 21:12:42.14 ] こんな短期間にたくさん質問くるということは どこかの大学バカ教授が授業でVB6で課題でも出したのか?
137 名前:135 mailto:sage [2011/06/02(木) 22:14:17.50 ] すません、こんなの使ってます。 .Workbooks.OpenText _ FileName:=strFileNm, _ StartRow:=1, _ DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=False, _ Tab:=True, _ Semicolon:=False, _ Comma:=True, _ Space:=False, _ Other:=False, _ FieldInfo:=Array( _ Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2))〜
138 名前:デフォルトの名無しさん mailto:sage [2011/06/03(金) 00:35:50.94 ] VB6.0で作ったソフトですがディスプレイをブラウン管(1024,768)から液晶(1920,1080)に替えたら ソフトが動かなくなってしまいました。なぜ? ブラウン管に戻すと動きます。
139 名前:デフォルトの名無しさん mailto:sage [2011/06/03(金) 01:10:39.61 ] ソース出せや
140 名前:デフォルトの名無しさん [2011/06/03(金) 02:17:22.81 ] VBで作ったアプリって モニタのど真ん中に可視な属性を持ってるのに大きさがないという ウインドウというかプロセスがあるね キャプションで探したウインドウがGetWindowRectでサイズが0でずっと悩んじゃったよ まるで民主党の朝鮮人たちに騙された気分だよ
141 名前:デフォルトの名無しさん [2011/06/03(金) 02:27:53.82 ] >>138 あー、それ>>140 と関係してるかもね プロセス列挙してウンドウを探すときにLeftが512だったら弾く、とかやってると モニタサイズが変わったら弾けなくなる LeftじゃなくてWidthが0だったら弾くようにすればおk
142 名前:福盛俊明 [2011/06/03(金) 09:09:29.66 ] 23 名前:福盛俊明 :2011/06/02(木) 23:51:15.53 俺はDarkBASICの天才♪” 俺に答えられない質問はない 質問はこちらへ www.geocities.jp/courant_de_console/main_street/index.html アハアハ〜♪”
143 名前:デフォルトの名無しさん mailto:sage [2011/06/03(金) 18:43:25.43 ] >>137 エクセルを開いてから、オートフィルタで手作業でソート
144 名前:デフォルトの名無しさん mailto:sage [2011/06/05(日) 20:08:58.70 ] VBSで質問です 5分後にシャットダウンするプログラムを作ってます。 MsgBox "5分後にシャットダウンします。" WScript.Sleep(300000) 'ここにシャットダウンの処理 これで一応シャットダウンできますが、終了一分前にメッセージを出そうとして下記のように変えると、 「1分後に(ry」のメッセージボックスのOKを押すまで処理が止まってしまうので、正確な5分になりません。 MsgBox "5分後にシャットダウンします。" WScript.Sleep(240000) MsgBox "1分後にシャットダウンします。" WScript.Sleep(60000) 'ここにシャットダウンの処理 メッセージボックス出しつつ処理を止めない方法ってありますか? 同じことができれば代用法でもなんでも構いません
145 名前:デフォルトの名無しさん mailto:sage [2011/06/05(日) 20:24:31.18 ] >>144 メッセージボックスやモーダルのフォームではなく、 モードレスのフォームを出せばいい。
146 名前:デフォルトの名無しさん mailto:sage [2011/06/05(日) 20:52:18.41 ] >>145 レスどーも でも色々調べてたら自己解決してしまった(・_・;) コマンドラインで shutdown -s -t 300 って書くと自動で2分前に警告だしてくれたらからこっち使います
147 名前:デフォルトの名無しさん mailto:sage [2011/06/06(月) 18:48:24.52 ] >>146 2分前?
148 名前:デフォルトの名無しさん mailto:sage [2011/06/09(木) 22:01:47.41 ] ここでいいんかな・・・? imdate(inputManのやつ)で日付を取ってそれに+1日したいんだが どうしたらいいんでしょうか。 Date + 1に出来たらいいかなと思ったんだが imdate.Numberで数字で取得するからなんともいかんのかな?
149 名前:デフォルトの名無しさん mailto:sage [2011/06/09(木) 23:24:54.45 ] VBのバージョンを言え
150 名前:デフォルトの名無しさん mailto:sage [2011/06/09(木) 23:25:57.17 ] inputManだったらinputManのヘルプみればいいんじゃないか?
151 名前:デフォルトの名無しさん mailto:sage [2011/06/09(木) 23:27:30.00 ] ジャンジャンバリバリ ジャンジャンバリバリ InputMan
152 名前:148 mailto:sage [2011/06/09(木) 23:35:56.07 ] すいません6.0です。
153 名前:デフォルトの名無しさん [2011/06/11(土) 00:08:05.03 ] 偉そうにVBのバージョンを言え! だって VBのバージョンなんか関係ないのに その1行しか言えないレベルの奴なんだ
154 名前:デフォルトの名無しさん mailto:sage [2011/06/11(土) 09:44:32.95 ] 4行も内容のないこと書いてるやつよりましじゃね?
155 名前:デフォルトの名無しさん mailto:sage [2011/06/11(土) 14:01:36.47 ] で、バージョン聞いといてそれで終わり? 大抵関係ない情報聞くやつは 使いものにならないんだよねw
156 名前:デフォルトの名無しさん [2011/06/11(土) 17:48:24.37 ] 俺だったら「VBのバージョンは?」って優しく聞く それを「VBのバージョンを言え」と字数多くしてまで乱暴に言うのは まさに超初心者ならではの頭の悪さ で、imdate.Numberが日付型ならDateAdd、文字ならCDateしてから
157 名前:デフォルトの名無しさん mailto:sage [2011/06/11(土) 19:38:30.77 ] > 質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、 > 「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。 というのがルールなんだから、質問内容がバージョン関係有る無しに関わらず まずは郷に入っては郷に従えってだけのことだろ
158 名前:デフォルトの名無しさん mailto:sage [2011/06/11(土) 19:55:06.35 ] もう黙れば?
159 名前:デフォルトの名無しさん mailto:sage [2011/06/11(土) 21:31:12.16 ] .NETの質問の可能性もあるやろ
160 名前:デフォルトの名無しさん mailto:sage [2011/06/11(土) 23:13:06.76 ] まあ、スレタイちゃんと読んでりゃ .NET はないはずだが、 バージョンも書かないような奴は >>1 もろくろく読んでな いような奴だから、スレタイも読んでない可能性高いかもね。 て言うか、質問者は後出しながらバージョン答えてるし、 >>153 は一体なにと戦ってるんだ?
161 名前:デフォルトの名無しさん mailto:sage [2011/06/11(土) 23:17:29.22 ] 命令口調クン
162 名前:デフォルトの名無しさん mailto:sage [2011/06/11(土) 23:23:01.63 ] ところで>>149 は必要だったのかい? いらないよね。赤っ恥かかされたからって、必死こいて戦うことないよね。
163 名前:デフォルトの名無しさん mailto:sage [2011/06/11(土) 23:31:29.55 ] .NETの質問の可能性もあるやろ!(キリッ
164 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 05:18:06.48 ] >>162 顔真っ赤にして、そんなに悔しかったの?
165 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 09:48:19.38 ] >>164 敗北宣言乙
166 名前:デフォルトの名無しさん [2011/06/12(日) 09:49:17.07 ] ウェブサイト作成協力して頂けませんか? jpcity.lolipop.jp/phpBBq/viewtopic.php?f=29&t=957#p1595
167 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 10:03:10.15 ] >>165 一人相撲で勝利宣言?
168 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 10:41:59.64 ] 発 者 同 . 。_ ____ 争 生 同 .じ . /´ | (ゝ___) い .し 士 .レ .__/'r-┴<ゝi,,ノ ro、 は、 .な で .ベ ∠ゝ (ゝ.//` ./`| }⌒j .い し .ル } ⌒ /`ヽ、_∠l,ノ ・ヽ´ .! ! か の / ´..:.} >、、___, .r、 ソ、`\ / ..:.:.} / |∨ ` ̄ / ..:.:./ | 丶 / _、 ..:.:.:.{ .{.:.:. \ { ..:Y .ゝ、 {.:.:.:.:. ヽ |、 ..:/ 丿 .:〉 >.- ⌒ . ヽ / {. ..:./ ソ ..:./ .( ..:.:.:` ..:} ./..:.:}.:.:./ ヘ、 ..:./ .\ ..:.:r_,ノ、.:.:} ./..:.:/|.:/ {.:./ X.:.:}.} X X /..:.:/ .}.:| }:/ .Y丶ヽ Y.:Y . __/.:/ { } 《.〈、 _,,__>.:》丶 Y.:\ /.:.:.:.:.::/ !.:.:ゝ ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ \.: ̄>
169 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 10:46:29.27 ] いや争ってる (と思ってる) のは、1人だから (w
170 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 10:52:23.61 ] 争いにもなってないよな まったく関係のないバージョンの話なんて聞くような馬鹿だしwww
171 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 11:02:12.26 ] ルールは守ろうねって言われたことが余程気に入らなかったようだな 反抗期なのかもしれないが、そんなんじゃ社会に出てから困ることになるぞ
172 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 11:10:17.42 ] なぜバージョンを聞いたんだい?ルールだからか?必要あったか?空気読まずに聞くほどに? 社会人としてのルールとして、そこの所を答えてくれないか?
173 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 11:18:56.10 ] ____ /⌒ ⌒\ /( ●) (●)\ /::::::⌒(__人__)⌒::::: \ | |r┬-| | \ `ー'´ / このスレ香ばしいNE! /` ‐- __ - ‐‐ ´ \ / .l _,,ヽ ___ 〉、 | l / ,' 3 `ヽーっ ヒト- _ l ⊃ ⌒_つ . !__  ̄, ̄ `'ー-┬‐'''''" L  ̄7┘l-─┬┘ ノ  ̄/ .! ̄ ヽ └‐ '´ ` -┘
174 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 11:53:03.08 ] >>172 なぜ理由を聞いてるんだい?ルールだからか?必要あったか?空気読まずに聞くほどに?
175 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 12:06:46.28 ] そこまで追い詰めるつもりはなかったんだが 鸚鵡返しするような状態になっちゃお終いですね こんな人が社会に出てからとか言ってんだからお笑いです
176 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 12:34:17.84 ] 一体誰を追い詰めた気になってるんだろう… まあ、本人満足してるみたいだからいいか (w
177 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 12:38:25.19 ] 総理大臣のようだNE!
178 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 12:40:40.77 ] 道化を装う総理ならいいが 近年の人は愚かにしか見えない
179 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 18:39:16.06 ] スレ伸びてると思ったら 質問があったとかそれに対する返事だとかそういうのじゃないので伸びてたのか 残念だ
180 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 18:55:49.70 ] 気づけばもう3日前からずっとこの流れなんだなw
181 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 19:10:39.68 ] >>179 同じく。 そもそも、このスレでバージョンは○○ですって書いてる人あんま見ないけどな。 ところで、COM使った開発とか新規でまだやってたりする? この間.NETじゃないただのASPで動かさなきゃいけない案件があって、 バッチでも使う共通処理があったから、COMで作る事にしたんだが、VB.NET でも簡単にCOM作れるのな。 中身はマネージドだから、VB6.0で作った方が動作は早かったかな。
182 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 19:18:18.05 ] 終わった言語なんだし、ひっそりしていたほうが健全なんだ。
183 名前:デフォルトの名無しさん mailto:sage [2011/06/13(月) 17:10:31.72 ] 未だに終わった言語で開発させられている俺に謝れw
184 名前:デフォルトの名無しさん mailto:sage [2011/06/13(月) 17:41:27.35 ] フヒヒ
185 名前:デフォルトの名無しさん mailto:sage [2011/06/13(月) 20:30:45.05 ] なんかwordにVBエディタが入ってるんだけど まさかこれってコンパイラDLしなくでもVBできる? VBはじめようと思ってんだけど 誰かコレについて教えてくれ
186 名前:デフォルトの名無しさん mailto:sage [2011/06/13(月) 20:51:09.21 ] それは別物です
187 名前:デフォルトの名無しさん mailto:sage [2011/06/13(月) 23:10:28.61 ] >>185 まあ VB と似たようなもんだけど、Word がないと動作しないよ。 まずは word vba あたりでググレ。
188 名前:デフォルトの名無しさん mailto:sage [2011/06/14(火) 06:26:34.17 ] みんなツンデレだなぁw助かってるけど^^ 言い方きっついレスポンスは幼馴染みが 照れ隠しで怒っている感じに変換して 読んでる
189 名前:デフォルトの名無しさん mailto:sage [2011/06/15(水) 10:20:39.97 ] 質問です。 Set xlBook = xlApp.Workbooks.Open(xlTestFile)で開いた場合 Arrayって使えますか? 読込んだTextを文字列か標準かを指定してデータをExcelに挿入したいのですが・・
190 名前:デフォルトの名無しさん mailto:sage [2011/06/15(水) 11:00:48.32 ] VB6言語すらまともに使えない奴には 日本語での質問もまともに出来ない奴が多い件
191 名前:デフォルトの名無しさん mailto:sage [2011/06/15(水) 11:19:07.01 ] VB6言語?
192 名前:デフォルトの名無しさん mailto:sage [2011/06/15(水) 12:23:24.38 ] WinXP、VB6、SP6です。 Controls.Addで動的に作成したTextBoxのMultiLineプロパティをTrueにする方法を教えてください。 普通にコードで設定しようとすると「値の取得のみ可能なプロパティに値を設定することはできません。」というエラーが出ます。 デザイン時にMultiLine=TrueにしたTextBoxをコントロール配列にしてLoadすれば、 MultiLine=TrueのTextBoxを動的に作ること自体は出来るのですが、都合によりコントロール配列ではダメなので。 最悪、デフォでMultiLine=TrueなTextBoxをユーザーコントロールとして作って、それをControls.Addで動的に作成するという 手法も考えてますが、もっと簡単な方法があればご教示ください。
193 名前:デフォルトの名無しさん mailto:sage [2011/06/15(水) 14:40:03.68 ] VB6LEじゃActiveX作れんからプラグイン作れないんだな…orz
194 名前:デフォルトの名無しさん [2011/06/17(金) 00:34:45.03 ] >>183 うらやましい 次の言語はなんですか
195 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 03:39:58.92 ] VB6のランタイムライブラリってぶっ壊れることあるんだな 家族の誰かが何かインストールしたらしくその際にVB6ランタイムが上書きされたかで VB6およびVB6製アプリが正常動作しなくなった ベクターにあったVB6ランタイムをインストールしたら直ったけど ウィルス感染かと思ったわ
196 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 08:37:41.49 ] >>195 それは壊れるとは言わない。 古いライブラリに入れ替わっただけ。 そんなのはVB関係ないし、OSだって関係なく 起こり得る話。
197 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 13:07:36.93 ] どうせインストーラ型のVB6製アプリ入れる時にシステムに既に同じのあるけど上書きする?って聞かれて、 「なにこれわかんない。とりあえずはいでいいよね」って選択していったんだろ
198 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 15:32:50.01 ] spの古いランタイムに変わるとVB起動時およびVB製アプリ動作時にmsiとか起動するもんなの?
199 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 17:00:17.40 ] 3文字ごとに[,]を打つのに作った↓コレが不具合の原因で OutputBox.Text = Format(CDec(OutputBox.Text), "#,###.##############") '[2.0]で持ってくると 'CDecで文字列を数値にしているので 'ただの[2]として認識されて[2]だけが出力される '[2.03]だとそのまま[2.03]で認識してくれる 別の書き方ってあります?
200 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 17:30:29.57 ] OutputBox.Text = FormatNumber(OutputBox.Text)
201 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 17:33:52.00 ] Oh…小数第二位までしか表示されないけどこんな方法が。 ありがとうございます
202 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 17:42:38.47 ] MSDN 数値表示書式指定文字 (Format 関数) 数値を表すその他の書式 (Format 関数) 定義済み数値書式 (Format 関数) の項目でも読め
203 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 17:44:47.98 ] FormatNumberの仕様読んでから使えよ
204 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 17:47:38.21 ] そもそも質問が意味不明 何を知りたいのかよく分からん
205 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 17:50:27.71 ] 落ち着いてすぐ質問レスするのではなく 一度文章をメモ帖か何かで整理してから 投稿したほうがよい
206 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 22:02:15.12 ] ここは俺のメモ帳だ
207 名前:デフォルトの名無しさん [2011/06/18(土) 07:13:23.83 ] メモ : 乱数系列を繰り返すには、数値を指定して Randomize ステートメントを 実行する直前に、負の引数を指定して Rnd 関数を呼び出します。 Number に同じ値を指定して Randomize ステートメントを使用しても、 前の乱数系列を繰り返すことはできません。 Rnd -1 Randomize 1234
208 名前:デフォルトの名無しさん mailto:sage [2011/06/18(土) 15:42:55.71 ] >>207 言っている意味がよくわからんちん 'Rnd -1 Randomize 1234 Dim i Debug.Print "Start" For i = 1 To 10 Debug.Print i, Rnd Next i Debug.Print "End"
209 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 09:25:09.86 ] VB6SP6で、ある文字列値がCBoolで変換できる値か否かを調べる関数とかって無いの? "0"、"1"、"false"とかならTrueを返し ""、"a"、"t"とかならFalseを返すみたいな 今はOn Error Resume NextでCBoolに掛けちゃってるけど、もっと良い方法ある?
210 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 12:11:39.83 ] 俺様しか使わないような機能が実装されるはずだとかかもしれんとか思うのは軽い病気だと思う。 っていうか、関数の一覧見れば分かるだろ。 VBってもう死亡宣告されて10年経過してる言語だぞ
211 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 12:39:11.53 ] ないなら作ればいいじゃない
212 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 12:59:22.41 ] >>210 >>209 の書き込みから、「実装されるはずだとかかもしれんとか思う」と 読み取れちゃうのはちょっと重い病気だと思う。 適切な病院に行くか、小学校からやり直すべき。 >>209 なんでそんなことする必要があるのか気になるが、「CBool() で変換でき ること」が絶対条件なら On Error にするしかないと思う。
213 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 13:25:14.89 ] >212 馬鹿だろお前。
214 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 13:43:07.32 ] >>212 の書き込みに対して「馬鹿」としか言えない >>213 が ちょっとかわいそうだ。 早い目に、小学校からやり直せよ。(w
215 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 13:46:09.83 ] (お前が)言われなきゃ分からない、の間違いじゃないのかしら。 逆に聞くが、存在するはずが無いと思ってる機能が存在するかどうか人に聞く馬鹿がいるのか。 あるはずとかあるかもしれないと思ってるから聞くんだろうが。 本当馬鹿だろお前。
216 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 14:08:32.40 ] >>215 ないと思ってても、だめ元で聞いてみる奴はいくらでもいるだろ。 小学校に行って、勉強はもとより友達と会話するところからやり直してこい。
217 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 14:15:46.08 ] [だめ元] ⊆ [あるかもしれない] 人に手取り足取り一から十まで全部説明されないと理解できないのは馬鹿の特徴か。
218 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 14:28:58.25 ] >>217 >> 存在するはずが (*無いと思って*) る機能が存在するかどうか人に聞く馬鹿がいるのか。 > ないと思ってても、だめ元で聞いてみる奴はいくらでもいるだろ。 自分の書いたことには責任を持ちましょう。(w
219 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 14:33:26.21 ] 意味不明。 高校の数Iでやるような論理学が理解できないのも馬鹿の特徴の一つだな
220 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 16:06:27.63 ] >>219 日本語が理解できてないクズよりましだけどな。
221 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 16:46:23.41 ] >俺様しか使わないような機能が実装されるはずだとかかもしれんとか思うのは軽い病気 非常に解りにくい日本語なのですが 実装されるはずだと思う、あるいは、実装されてるかもしれんと思う だと解釈しよう 俺が使いたい機能なんだから絶対に実装されてるはずだ、と思うのは病気かもしれんが こんな機能があったらいいな、すでに実装されてないかな?と思うのは病気でもなんでもないと思うが
222 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 16:55:44.86 ] アスペルガーの人は病識がない。 自分を客観的に見られないという自覚が一切ない。 どう考えても一般性がない(そんな機能お前以外誰が必用とするんだってこと) 機能を、普通の人は「すでに実装されてないかな?」なんて思わないんだよ。 絶対に。 そう思うのは病気だから。 まあ病識がない人に自覚しろって言っても無理だろうけどねえ
223 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 17:26:57.93 ] >>222 >アスペルガーの人は病識がない。 >自分を客観的に見られないという自覚が一切ない。 自己紹介乙。
224 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 17:46:17.47 ] つか、>222は ある変数がほかの型に変換可能かどうかチェックする機能 は一般性がないと思うのか
225 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 18:01:11.11 ] 変数って何だよ。 それを言うなら"値"じゃないのか。 そもそも>>209 のいうような機能の需要が一般的かどうかの話をしているのであって、 「ある変数がほかの型に変換可能かどうかチェックする機能」の話なんかしてない。 馬鹿じゃないのか。
226 名前:デフォルトの名無しさん [2011/06/19(日) 18:56:17.63 ] >>208 やっぱり分かり難いでしょ Randomizeのヘルプの文章なんだけど ×Number に同じ値を指定して Randomize ステートメントを使用しても、 前の乱数系列を繰り返すことはできません。 ○Number に同じ値を指定して Randomize ステートメントを使用しただけでは、 前の乱数系列を繰り返すことはできません。 昔のBASIC知ってる人には何でRandomizeだけで乱数系列初期化してくれないの?と思ってしまう ヘルプも分かり難いけどVBの仕様も変
227 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 18:57:57.97 ] あのね、二人とも。 そんなに喧嘩する程のものでは無いと思うんだ。 CBoolで変換出来るものを判定すればいいだけでしょ? それってIsNumericでいいんじゃないかと思うんだ。 たしかCboolで変換出来るものって数値型で、0ならFalse、0以外ならTrueだったんじゃないかと思うんだけど。 もっとも、厳密にTrueやFalseを判定したいなら0か-1と言う条件を付け加えることになるけど、 今回はそうじゃなさそうだし。 違ってたらごめんね。 みんな仲良くやるわさ。
228 名前:デフォルトの名無しさん [2011/06/19(日) 19:00:55.40 ] >>208 あ、毎回同じ乱数を発生させたい場合ね 例えばプロシージャ中で3回乱数を使ったとして そのプロシージャを何回実行させても、いつも同じ乱数値を使いたい場合
229 名前:デフォルトの名無しさん [2011/06/19(日) 19:09:41.30 ] >>209 Option Compare Text private function is_bool(byval q$) as boolean Select Case q$ Case "1","0","false","true": is_bool = True Case else: is_bool = False end select end function
230 名前:デフォルトの名無しさん [2011/06/19(日) 19:12:16.34 ] Select Case q$ Case "1","0","false","true": is_bool = True end select
231 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 19:22:02.49 ] Select Case ucase(q$) Case "false","true": is_bool = True Case else: is_bool = IsNumeric(q$) end select
232 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 19:31:44.23 ] あら、TrueやFalseは文字列にするとIsNumericに反応しなくなるのね。 じゃ多分>>231 の人が言ってるUCaseのをLCaseにしたのがFAだわさ。
233 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 19:58:20.77 ] >>225 もうそろそろ引っ込んだら? どう見ても哀れだよ、君。
234 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 20:06:36.54 ] またスレが伸びてるから言い争いしてると予想したが、裏切ってくれなかったか。 毎回同じ人が煽ってんのかな。
235 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 00:52:07.32 ] >>226 ,228 もしかしてVB6より前のVB? >>208 のコードをCommand1_Clickにいれて何度か押したけど Rnd -1のある場合の10個の数字と、ない場合の10個の数字は違うけれど Rnd -1のあるなし関わらずコマンド何度クリックしても同じ10個の数字しか出なかった(Randomizeで初期化されてる)けど
236 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 09:21:33.52 ] 下記サイトを参考に任意の日付までのシリアル値の計算はできたのですが、 逆にシリアル値からyyyy/mm/dd hh:mm:ssというように変換するにはどのように すればよいのでしょうか? VB6を使用しています。 よろしくお願いします。 www.happy2-island.com/access/gogo03/capter01001.shtml '---------------------------------------------------------------------- '任意の日時までのシリアル値を求める '---------------------------------------------------------------------- Public Function getTimeB(pNow As Date) As Currency Dim lngTime As Currency 'pNowまでの経過秒数を求める lngTime = DateDiff("s" _ , "1970/1/1 9:0:0" _ , pNow) '1/1000秒部分を求める ':元の値を1000倍する lngTime = lngTime * 1000 ':Timer関数で求めた1/1000秒部分を加える lngTime = lngTime + Fix((CDbl(Timer) - Fix(CDbl(Timer))) * 1000) getTimeB = lngTime End Function
237 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 19:58:50.60 ] >>236 MSDNの説明ではDate型の実体はDoubleだとあるから、 ある意味Date型そのものが既にシリアル値であるといえる。 自前でシリアル値に変換する意味がわからない。
238 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 22:25:52.66 ] Debug.Print CDbl(Now) Debug.Print CSng(Now) Debug.Print CDec(Now) Debug.Print CLng(Now) Dim v v = Now Debug.Print v Debug.Print CDec(v)
239 名前:デフォルトの名無しさん [2011/06/20(月) 23:33:02.67 ] >>235 VB6だけど何で違うんだろ〜 Private Sub Command1_Click() Dim i% Debug.Print "---" Randomize 123 For i% = 1 To 3: Debug.Print Rnd: Next End Sub --- 0.7545646 0.5271199 0.3011898 --- 0.1030034 0.2489544 0.3967338 -Rndしないと毎回違うパターンがでる
240 名前:236 mailto:sage [2011/06/21(火) 01:31:17.21 ] >>237 レスありがとうございます。 私がやりたいのはシリアル値に変換するのではなくて、 シリアル値からyyyy/mm/dd hh:mm:ssというように変換したいのです。
241 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 02:22:59.69 ] Win32APIとかでそういうの扱えるの無かったっけ?よく覚えてないけど
242 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 02:24:20.96 ] SystemTimeToFileTime FileTimeToSystemTime あたり?
243 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 02:45:14.26 ] >>236 の逆変換をやるの? dt = DataAdd("s", lngTime \ 1000, "1970/1/1 9:0:0") これでいい?
244 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 02:47:55.34 ] >ngTime = lngTime + Fix((CDbl(Timer) - Fix(CDbl(Timer))) * 1000) これTimer2回呼び出してるけど問題ないの?
245 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 02:57:11.65 ] >>239 もう一度やってみたら貴公の言うとおり再現した でも>>235 のレスしたときは>>235 のとおりだった。>>235 のレスしたときコメントアウトし忘れてたのかもしれない 疑ってすまなかった
246 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 03:00:03.19 ] あれ、でもコメントアウトの問題なら表示される数字はどちらの試行でも同じはずなのに違ってたな。なんでだろう
247 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 03:04:06.73 ] あ、原因判明したかも。コメントアウトの問題じゃなくてイミディエイトのカーソル位置の問題だ。おそらく。 カーソルが一番下じゃなく一回分の試行の手前あたりにあったんだなきっと
248 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 11:47:09.85 ] あれはカーソル位置から書き始めるから困る
249 名前:236 mailto:sage [2011/06/21(火) 14:45:46.70 ] >>243 ありがとうございました。 教えていただいた通り以下の通りで出来ました。 DataAddという物があったのですねー。 236で書いたのは、シリアル値から日付へ変換する方法を 探している際に見つけて、これの逆をやればできるかなと 思ったんですが、差分の部分でつまづいていました。 本当にどうもありがとうございました! '--------------------------------- 'シリアル値から日付へ '--------------------------------- Function STD(SR As Double) Dim lngTime As Double lngTime = SR Dim DT As Variant DT = DateAdd("s", (lngTime / 1000), "1970/1/1 9:0:0") STD = DT End Function
250 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 16:13:03.13 ] >>244 最初のTimerの呼び出し時に 1234.999秒ですぐ次の呼び出しで1235.000になっていた場合、さてどうなるかな?
251 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 16:15:41.80 ] その理屈ならミリ秒取得前に引数で日付取得じゃ秒のズレが起きたりしないの? t1 = Timer n = Now t2 = Timer とかして挟んでt1とt2からミリ秒取得したほうが
252 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 19:15:05.59 ] だからData自体が最初からシリアル値になってるのにどこに自前で変換かます必用があるのかと... 頭悪いのかな
253 名前:デフォルトの名無しさん [2011/06/22(水) 00:28:38.30 ] 頭悪いのかな だって 一言多いのねこの人 コンプレックスを抱えてる人間のようです だから誰かを貶さないといられないのです 自分だって無知な頃があったはずなのに いや、今も無知だから心が狭くなっているのでしょうか もっと精進すべきです
254 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 00:45:52.70 ] Dataの中身のDouble値そのままじゃ他の言語と互換性無いからじゃね 小数点以下が時間とかどうなの?
255 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 01:13:50.55 ] 質問です。 JP1(日立の運用ツール)からVBSを起動し、 VBSからExcelマクロを起動しようとしています。 つい最近、WinServer2003からWinServer2008のサーバーへと 環境が移ったのですが、移行後にJP1からVBSを起動したところ、 "Workbooks クラスの Open プロパティを取得できません" とエラーを吐きExcelマクロが起動できなくなりました。 似たような経験をお持ちの方がいましたら、 どうやって解決したかを教えてもらえないでしょうか。
256 名前:255 mailto:sage [2011/06/22(水) 01:16:18.70 ] 以下のソースコードの「ワークブックを開く」の箇所で "Workbooks クラスの Open プロパティを取得できません" とエラーになるようです。 <VBS ソースコード> 'Excel Set objExcelApp = CreateObject("Excel.Application") 'ワークブックを開く Set objExcelBook = objExcelApp.Workbooks.Open("C:\workspace\perl_test\test_vba.xls", , True) 'Excel側マクロ(main)を起動 objExcelApp.Run "'" & "test_vba.xls" & "'!main", 2
257 名前:255 mailto:sage [2011/06/22(水) 01:18:28.93 ] <参考> ・手動実行なら問題なく起動します。 ・旧環境、新環境ともにJP1がインストールされている サーバーにはExcelがインストールされていないが、 実行先のサーバーにはExcelがインストールされている。 よろしくお願いします。
258 名前:249 mailto:sage [2011/06/22(水) 01:19:11.34 ] >>252 わたしへのレスですか? もしそうだとしたら、HelloWorld!卒業くらいのレベルなので、 おっしゃっている事がさっぱり分からないです。 私がやりたいのは、あるシリアル値があったとして、それが 何年何月何日なのか分からないため、それを日付にしたいんです。 もっとスマート?な方法があったら、ご教示いただければ幸いです。
259 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 01:23:38.59 ] >>257 適当だけど、実行元のサーバーにEXCELのランタイムは設定されてる?
260 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 01:23:53.23 ] なるほど、自分で>>239 に書いた内容はもう忘れたわけですか。
261 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 01:25:27.92 ] いや>>239 じゃなくて>>236 か
262 名前:255 mailto:sage [2011/06/22(水) 01:40:11.91 ] >>259 確認しないとわからないですが、 ないかもしれません。 明日調べてみます。 ありがとうございます。
263 名前:249 mailto:sage [2011/06/22(水) 01:53:29.94 ] >>260-261 失礼ですが、>>249 の4-6行目をよく読んでみてください。 それで双方理解できないならば、いづれかもしくは双方の 理解力に問題があるということで。 ちなみに、>>258 で書いたスマート?な方法はご存知ないですか。
264 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 01:57:08.22 ] "シリアル値"が分からない私も初心者
265 名前:デフォルトの名無しさん [2011/06/22(水) 02:47:12.69 ] >>252 シリアル値の時刻を求める(DateDiff, Timer) www.happy2-island.com/access/gogo03/capter01001.shtml > JavaScriptのDate/getTimeと同じシリアル値の日時を求める方法です。
266 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 13:49:31.56 ] 時刻のシリアル値ってふつー秒単位じゃないのか
267 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 17:25:47.73 ] なにいってんだこいつ
268 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 21:38:11.18 ] VBやエクセルなどのVBAではシリアル値とは整数部が1970/1/1からの日付で、小数部が時間を表すフォーマット エクセルの普及からシリアル値といったらこっちになることが多い
269 名前:デフォルトの名無しさん [2011/06/22(水) 21:48:02.32 ] >>256 プロジェクト→参照設定 でエクセルのライブラリ参照とかじゃない?
270 名前:デフォルトの名無しさん [2011/06/22(水) 22:04:33.32 ] >>263 文字列に変換するなら Debug.Print Format(DT, "yyyy/mm/dd(AAA)")
271 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 22:38:20.41 ] >>270 いや、俺も最初そう思ったけど、ある年月日から現在までの期間を"YYYY/MM/DD hh:mm:ss"のフォーマットで 何年、何ヶ月、何日の何時間、何分、何秒経ったかを表示したいって言ってるんじゃないの?
272 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 22:57:14.49 ] それ、「ある年月日から現在までの期間」が例えば 31日だったとして、 今日だったら、1ヵ月と表示するけど、同じ期間でも来月だったら、 1ヵ月と1日って表示するってこと? うるう年まで考慮するなると、一発でちゃんとしたものができるか俺 には自信がない...。
273 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 23:04:35.40 ] >>255 >サーバーにはExcelがインストールされていないが、 >実行先のサーバーにはExcelがインストールされている。 これ、1行目はJP1の管理サーバーって事で良いんだよね? Excelは実行先だけで良いはず。気になるのは、手動で動かした ときは上手くいって、JP1から起動させるとダメだってとこだな。 思いつくのは、JP1からキックしたときの権限じゃないかな。 実行ユーザーを指定できるなら、手動で動かしたときと同じ ユーザーで起動するようにしてみたらどうだろ。 後は、objExcelAppにちゃんとインスタンスが入ってるか(nullじゃないか) と、FileSystemObjectで、Excelファイルが開けるか試してみて CreateObject周りでおかしいのか、Excelオブジェクトの何かが いけないのかを切り分けるかな。
274 名前:デフォルトの名無しさん [2011/06/22(水) 23:13:20.30 ] ある時刻のt1 as dateがあって、そこから今までの時間なら Dim sec& sec& = DateDiff("s", t1, Now) 秒はこれで出るけど 月は30.5日くらいにしとく?って客先に聞かないと んん?これって求めたいものはt1そのもの・・謎は深まるばかり・・
275 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 23:50:29.54 ] >>236 のコードは>>265 のサイトのコードのようだが
276 名前:263 mailto:sage [2011/06/22(水) 23:56:16.48 ] >>270 レスありがとうございます。 エクセルで日付にしていましたが、Format関数?で出来るんですね。 わざわざありがとうございました。 >>271 説明が駄目駄目ですみません。 >>258 にも書いたのですが、 このように説明すれば分かりやすいでしょうか。 例えば、Q.次のシリアル値は何年/何月/何日 何時:何分:何秒を表しているかを求めるコードを書け。 という事をお聞きしたかったのです。 日付のデータが記録されているファイルを操作するのに、その中身がシリアル値だったので、日付形式 に変換したかったのです。 ところで、>>252 氏は私へのレスではなかったのでしょうか、アンカーもなくIDのないスレッドだったの でよく分からなくて。 >だからData自体が最初からシリアル値になってるのにどこに自前で変換かます必用があるのかと... >頭悪いのかな
277 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 23:59:51.75 ] >>236 はさ、 >>238 を読んでんのかな。 1970/1/1 09:00:00を基準としたのが重要なの? もしそこにこだわらなくて良いなら、 Dim dateVal As Date Dim dblVal As Double dateVal = Now() dblVal = CDbl(dateVal) Call MsgBox(dblVal) Call MsgBox(CDate(dblVal)) これで、やりたい事はできんじゃねーの? 236がいうシリアル値ってのが、万国共通か規格があんのかな。 googleで上位に来るのは1900/01/01なんだけどな。
278 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 00:07:06.39 ] >>277 シリアル値の時刻を求める(DateDiff, Timer) www.happy2-island.com/access/gogo03/capter01001.shtml > JavaScriptのDate/getTimeと同じシリアル値の日時を求める方法です。
279 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 00:08:31.18 ] >>276 何か面倒臭そうな人なので一応レスしとくかな.... ひょっとして既に何らかの方式による既存のシリアル値のデータがあって、 それを日付に戻す方法が知りたかったのかも知れないけど、>>236 からそれを読み取れって そりゃ無理難題。 シリアル値っていったっていろんな方式があるんだから、>>236 みたいに 日付⇒シリアル値はできたが逆はできないって書かれたら、要は2つの日時の大小比較とかスパンが 計算できる値なら何でもいいはずだと普通は思うんじゃないの?
280 名前:263 mailto:sage [2011/06/23(木) 00:24:33.93 ] >>277 無知故にアンカーがないとレス内容だけでは、 私へ対してのレスか分からず>>238 自体は見ましたが、 別の人へのレスだと思ってしまいました。 あと、最初に書いたサンプルサイトの値のUTCというのでしょうか、 その値を基準にしたかったのです。 今この書き込みを見るまで、1970年1月1日0時0分0秒がシリアル値 の基準で1つしかないものと思っていました。 (+9されているのは日本時間?をしているようでしたのでそのままに) >>279 >>252 氏でしょうか? レスありがとうございます。 うまく説明できなくてすみません。 私としては、「任意の日時までのシリアル値」を求められれば、それは 逆を行えばシリアル値からyyyy/mm/dd hh:mm:ssと日時を求められると 単純に思ったのです。 サンプルサイトの例で下記のようにできたので、 2011/06/01 12:34:56 → 1306899296000 上に書いた通り、逆を行えば不明なシリアル値を下記のように日時に できるものとばかり。 1308799500000(何日の値か不明) → 2011/6/23 12:25:00 続きます。
281 名前:249 mailto:sage [2011/06/23(木) 00:27:55.96 ] 変な流れにしてしまってすみませんでしたが、 >>243 氏のレスで私にも理解でき、>>246 の通りできましたので、 皆さんに再度お礼を言って質問を終了させていただきたいと思います。 本当にどうもありがとうございました!
282 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 00:30:33.31 ] 度々すみません訂正です。 誤:>>246 の通りできましたので、 正:>>249 の通りできましたので、 失礼しました。 ありがとうございました。
283 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 00:42:05.54 ] lngTimeがLong型じゃないことのほうが気になっている俺がいる
284 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 00:50:59.32 ] VB6付属のMSDNライブラリのVBの項目の定数と変数の名前付け基準によるとプリフィックスには Long型はlng Currency型はcur Double型はdbl をつけた方が分かりやすいとある
285 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 00:51:48.77 ] Variant型はvnt Date型はdtm
286 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 07:08:53.68 ] お前らさすがにレベル低すぎて開いた口が塞がらないぞ。
287 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 08:09:18.92 ] >>286 のレベルの高いネタ振りに期待
288 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 14:05:52.11 ] >>236 はさ、>>278 のサイトの掲載されているコードを使ったの?
289 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 14:14:49.65 ] >>278 のサイトのはVBAっぽいような気がするんだけど プリフィックスが気持ち悪いな。Long型でもないのにlngを使うのはよくないと思う(誤解を招きかねない) getTime関数でTimerを2回呼び出すのは時刻の正確さを欠く可能性があると思う 同様の理由でNowとTimerを併用するのも時刻の正確さを欠く可能性があると思う getTimeB関数は任意の日時とあるのにTimerでミリ秒を補完するのはおかしいと思う getTime関数はWin32APIのGetSystemTimeAsFileTime関数、getTimeB関数はWin32APIのSystemTimeToFileTime関数を使えばいいと思う
290 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 20:34:10.83 ] UTCの事を言っている人がいるのにそれには触れない件。 というか気付いていないんだろうな。 何にでも例外はあるがこのスレの連中はやっぱりほぼ・・・ 続く。
291 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 20:51:46.69 ] UTCのことは>>278 のサイトの冒頭に書いてあるが?
292 名前:デフォルトの名無しさん mailto:sage [2011/06/24(金) 12:15:28.11 ] ここまで>>291 の自演。
293 名前:デフォルトの名無しさん [2011/06/25(土) 06:08:22.32 ] Form2.Show vbModal 'Form2をモーダルで呼ぶ Form2にはボタンが複数あって、状況によってデフォルトのボタンを設定したい Private Sub Form_Load() 'Me.Show ' ← Modal時は実行できない Command1.SetFocus End Sub Form_Load中でSetFocusしようと思ったら、その前にMe.Showしないといけない でもModalで呼ばれるからMe.Showはできない ★ ModalなForm2のCommand1をSetFocusする方法はありますか?
294 名前:デフォルトの名無しさん mailto:sage [2011/06/25(土) 13:32:36.53 ] >>293 デザイン時にTabIndexの0をあえて欠番にしておいて、Loadイベントで フォーム表示時に最初にフォーカスを設定したいコントロールのTabIndexを0にする。 VBを2年ぶりで触った俺でもすぐにできたぞ。 ところで、そういうのって「デフォルトのボタン」って言うのか....?
295 名前:デフォルトの名無しさん mailto:sage [2011/06/25(土) 13:44:37.84 ] TabIndexなんか触りたくないと言いそうだから別解 'Form2 Private mShown As Boolean Private Sub Form_Activate() If Not mShown Then OnShown End If End Sub Private Sub OnShown() mShown = True Command1.SetFocus End Sub
296 名前:デフォルトの名無しさん [2011/06/25(土) 15:57:49.62 ] >>294 ,295 なるほどActivateでしたか、ありがとうございました! Modalなのでその1回だけ実行するというロジックは不要と思います やるとしたらStatic変数が好きです デフォルトのボタンと言ったのは、要は自作のメッセージボックスを作っていたので・・
297 名前:デフォルトの名無しさん mailto:sage [2011/06/25(土) 16:31:29.25 ] デザイン時のコマンドボタンのプロパティでDefaultをTrueにすればいいんでないの?
298 名前:デフォルトの名無しさん [2011/06/25(土) 16:37:28.78 ] 申し訳ない コマンドボタンにDefaultプロパティというのがあって、 これをTrueにすることでデフォルトボタンにできるという初歩的な見落としがありました でもActivateは勉強になりました、Form_Loadの後に来るのはResizeかPaintかとか探してはいたのですが
299 名前:デフォルトの名無しさん mailto:sage [2011/06/25(土) 16:51:47.19 ] Defaultプロパティの本来の使い方は、Enterキー入力を受け取るボタンを決めること。 これは>>293 の言っていることと違うと思ったから、Defaultは知ってたけど紹介しなかったんだけど....
300 名前:デフォルトの名無しさん mailto:sage [2011/06/25(土) 16:58:50.28 ] ActivateはそのModalなFormからさらにModalな別のFormを開きそこから戻ってきたときにも発生するよ 例えば下の例ならForm1からForm2を呼び出したときとForm3からForm2に戻ったときにActivateが呼び出されるよ 'Form1 Private Sub Command1_Click() Form2.Show vbModal End Sub 'Form2 Private Sub Command1_Click() Form3.Show End Sub Private Sub Form_Activate() Debug.Print "Activate", Now End Sub
301 名前:デフォルトの名無しさん mailto:sage [2011/06/25(土) 17:00:08.84 ] >Form2にはボタンが複数あって、状況によってデフォルトのボタンを設定したい これから察するにプロパティのDefaultじゃちょっと違うよね?
302 名前:デフォルトの名無しさん mailto:sage [2011/06/25(土) 17:28:43.40 ] Default設定したら状況によってとかいうのが出来ないよね
303 名前:デフォルトの名無しさん [2011/06/26(日) 02:23:41.63 ] テストプログラム作ってForm_Load中でボタンのDefultプロパティを設定してみましたが Form1ではボタン周りに黒枠が表示されてEnterキーが効くのに Form2ではDefultプロパティの設定が無視される ヘルプではフォーム毎にEnterを受け付けるボタンが設定できると書いてあるのに どうもDefultプロパティの挙動がわからない・・ ボタンのキャプション周りのフォーカス枠表示も欲しいし、やはりSetFocusにします
304 名前:デフォルトの名無しさん mailto:sage [2011/06/26(日) 22:05:37.83 ] Defaultってデザイン時だけじゃなくて実行時にも変更可能なのか 知らなかったわ
305 名前:デフォルトの名無しさん [2011/06/28(火) 21:39:38.66 ] アプリの起動時に、ComboBox1に商品の情報を追加したいのですが 「ニンジン」、「かぼちゃ」、「キャベツ」の3品を追加するにはどうすればいいか。 また、初期表示として「ニンジン」が表示されているようにするにはどうすればいいですか 教えていただきたいです。メソッドの部分はどう書けばいいのでしょうか。 Private Sub frmMain_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles MyBase.Load End Sub
306 名前:デフォルトの名無しさん mailto:sage [2011/06/28(火) 22:01:25.21 ] >>305 vb.netみたいだから、次からはこちらへ hibari.2ch.net/test/read.cgi/tech/1301828549/ '追加 Me.ComboBox1.Items.Add("ニンジン") Me.ComboBox1.Items.Add("かぼちゃ") Me.ComboBox1.Items.Add("キャベツ") '初期表示 Me.ComboBox1.Text = "かぼちゃ"
307 名前:デフォルトの名無しさん mailto:sage [2011/06/28(火) 22:04:02.00 ] すまん ニンジンが初期表示だった! Me.ComboBox1.Text = "ニンジン"
308 名前:デフォルトの名無しさん [2011/06/28(火) 22:38:14.08 ] >>306-307 ありがとうございます。
309 名前:デフォルトの名無しさん [2011/06/30(木) 15:21:23.15 ] For i%=1 to 4: Combo1.AddItem Choose(i%, "ニンジン","かぼちゃ","キャベツ","たまねぎ"): Next
310 名前:デフォルトの名無しさん [2011/06/30(木) 15:28:29.93 ] Dim t$,buf$(),i% t$="ニンジン,かぼちゃ,キャベツ,たまねぎ,セロリ,パセリ,ピーマン,ごぼう" buf$=Split(t$,",") for i%=0 to Ubound(buf$):Combo1.AddItem buf$(i%):next
311 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 15:45:18.92 ] ひさびさに AS の無い宣言を見たw
312 名前:デフォルトの名無しさん [2011/06/30(木) 17:18:31.01 ] %とか&とか$とか#とか昔のBASICみたいで嫌う人がいるけど これはコード中で型が判るから絶対に有効だよ 変数名にいちいちstrnameとかlongpointとか入れる人もいるけど実に可読性が悪くて腹立つ
313 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 17:30:20.52 ] strnameとname$のどっちが可読性が上かは 読む人の慣れとかクセとかでどっちが上とは言えないと思うが 世の中にはstrnameとかいう名前の数値型の変数を定義するような奴がいたりするからなぁ
314 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 18:41:31.75 ] 型のある変数を使わなければ解決だな 毎回長文コーディングになるけど objectとかは知らん
315 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 19:44:59.73 ] 10年遅れのハンガリアン っていうか、>>310 のようなマクロてんこ盛りのアセンブラみたいなコード読みたくないw
316 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 23:35:59.77 ] 記号打つときシフトキー押すのしんどい Dim以外では変数名を途中入力で補完できりゃいいのに
317 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 23:54:24.40 ] あずにゃ・・・じゃなくて、As 〜で型によって色が変われば分かりやすくね? つか、変えられなかったっけ? おれは、dblExsample lngExsample intExsample strExsample とか先頭みるだけで すぐわかるけどなー。 %とか&とか$とか#とか初めて知ったw 低レベルでさーせん。
318 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 00:15:45.44 ] 俺は$が文字型ってくらいしか知らないな。ポケコン世代だけど
319 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 14:08:40.58 ] その手の記号もAsと同じだから宣言時だけつけてりゃ使えたような気がする Dim name$, unko&(10) name = "namae" unko(5) = 1000 って
320 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 14:10:25.36 ] >>317 >>265 のサイト見てみ。lngというプリフィックスが
321 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 14:20:08.06 ] format$ とかで明示的にStringだってのも懐かしい話だな・・ MSDNもVariantのString みたいな言い回しがめんどくさかったなぁ
322 名前:デフォルトの名無しさん [2011/07/01(金) 19:47:55.35 ] 割り算で結果がどうもおかしいと思ったらIntegerで受けてたとか良くあるじゃん wari! = a% / b% ならそんな間違いは起こらないし、なんでこれが流行らなかったのか不思議
323 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 19:55:21.14 ] そんな間違いあんただけだってw
324 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 21:01:31.55 ] &とか%とかそういので型変換もできたらいいなと思う
325 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 21:50:12.69 ] VB6.XまたはSP7に期待ですね そんなもの出ないけど
326 名前:デフォルトの名無しさん [2011/07/04(月) 18:41:27.30 ] 時々、Lineメソッドで間違ってないのにパラメータがどうこうってエラーが出る? プロジェクトを一旦閉じてから開き直すと直るけど
327 名前:デフォルトの名無しさん mailto:sage [2011/07/04(月) 20:27:45.01 ] >>326 エラーが出るのならば、どこかしらが「間違ってる」と思った方がいいよ。 詳細が分からないから勘だけど、どっかでメモリリーク起こしてるんじゃないかな。
328 名前:デフォルトの名無しさん mailto:sage [2011/07/04(月) 20:30:15.50 ] 馬鹿っぽい質問に馬鹿っぽい回答だな....
329 名前:デフォルトの名無しさん mailto:sage [2011/07/04(月) 20:38:46.74 ] >>326 変数はもちろん Variant 型だよな!
330 名前:デフォルトの名無しさん mailto:sage [2011/07/04(月) 21:19:46.26 ] >>326 >使用しているOS、VBのバージョン、サービスパックのバージョン
331 名前:327 mailto:sage [2011/07/04(月) 22:59:04.79 ] 馬鹿っぽくて悪かったな。
332 名前:デフォルトの名無しさん mailto:sage [2011/07/05(火) 03:16:49.63 ] エスパーか
333 名前:デフォルトの名無しさん mailto:sage [2011/07/06(水) 13:05:43.46 ] LE使いってどれくらいいる?
334 名前:デフォルトの名無しさん [2011/07/06(水) 18:53:51.59 ] >>327 やっぱり、メモリリークとかでしょうね、VBの Lineメソッドでエラーにはなるけど、決まったコードで出るわけではないし ある特定のプロジェクトで出るわけでもないので詳細は書きようもないですが プログラムがある程度大きい場合に、たまに発生するようです 再現したらキャプろうと思ったけど期待すると出てこない・・
335 名前:327 mailto:sage [2011/07/06(水) 23:13:20.19 ] >>334 エラー画面をキャプチャーしても原因はそこでは無いだろうから、 途中経過をモニタリングすべきだと思います。 (メモリの消費状況、インスタンスの開放、配列のErase等々) どうみてもプログラムに間違いが無さそうならば、 Service Packが最新になっているか確認してみてはどうでしょう?
336 名前:デフォルトの名無しさん mailto:sage [2011/07/06(水) 23:15:05.01 ] 環境を疑う前にコードを疑えって。 ダメな奴ほど環境を疑う。
337 名前:デフォルトの名無しさん mailto:sage [2011/07/07(木) 00:13:49.97 ] それほど対してソースコードは無いんですが実行速度が遅くて困っています 現状フォーム内にメソッドを記述して全ての処理を動かしているのですが クラスに書き込めば速度向上が望めるでしょうか それとも実行速度ってコード量に比例するってだけなのですか 教えてください。
338 名前:デフォルトの名無しさん mailto:sage [2011/07/07(木) 00:36:33.41 ] LE使いなのでよう知らんがコンパイルスイッチとかいうので実行速度を最適化とかいうの使えばいいとちゃうのん?LEそういう機能がないので全くわからないが。ただの独り言です。
339 名前:デフォルトの名無しさん mailto:sage [2011/07/07(木) 00:39:22.99 ] >>337 >クラスに書き込めば速度向上が望めるでしょうか 望めない。理論的にはクラス生成と呼び出しの分遅くなる >それとも実行速度ってコード量に比例するってだけなのですか いいえ 起動にかかる時間はコード量(厳密にはコンパイル後のサイズ)に影響されます 起動後の実行速度には関係ありません
340 名前:デフォルトの名無しさん mailto:sage [2011/07/07(木) 00:46:51.19 ] コンパイルスイッチってvbにありましたっけ?? C言語とかだとコンパイラーが持ってたりしますけど・・・
341 名前:327 mailto:sage [2011/07/07(木) 08:26:20.69 ] >>337 どのような処理なのか分からないと高速化もアドバイスしにくいですが、 一般的にはAPIの使用、キャッシュ、バッファリング、アルゴリズムの最適化 といったところでしょうか。 フォーム内にコードが大量にあるとすると、ロードに時間が掛かる可能性はあります。 >>340 オプション画面から指定できます。 VB5からネイティブコンパイル可能になったからです。 IDEからの動作ですと、インタプリタ(のような)動作ですので、効かないと思います。
342 名前:デフォルトの名無しさん mailto:sage [2011/07/07(木) 16:54:10.83 ] 自分で契約しているサーバの負荷等を調べるものを作っているのですが、 8つ契約しているので、下記のコードで1個1個順番に行っていると遅いので、 マルチスレッド?で行いたいのですが、下記の事をマルチスレッドで同時に 行うにはどのようにすればよいのでしょうか? (下のソースも部分的にサンプルサイト等を見て書いたものなので、自分は ほとんど始めたばかりな感じで、マルチスレッドの基本についても全く分かりません。) Windows XP SP3 + VB6 SP6を使っています。 もし、やり方が分かる方いましたら教えていただけるとありがたいです。
343 名前:342 ◆XuL15E5UEM mailto:sage [2011/07/07(木) 16:55:28.31 ] Private Sub Server_Check(ByVal MyServer As String, ByVal MyNumber As Integer, ByVal CPU As String) On Err GoTo Err ' If MyServer = "" Then Exit Sub 'サーバーチェックを実行 If MyCounter = 1 Then Set objIE = CreateObject("InternetExplorer.Application") End If ' With objIE .Navigate "http://" & MyServer & ".example.com/cgi/check.php" Do Until ((.Busy = False) And (.ReadyState = READYSTATE_COMPLETE)) Loop End With ' 必要な変数を宣言する Dim stCsvData As String 'エラー If objIE.Document.All(0).InnerHTML = "" Then GoTo Err If InStr(objIE.Document.All(0).InnerHTML, "404 Not Found") <> 0 Then GoTo Err
344 名前:342 ◆XuL15E5UEM mailto:sage [2011/07/07(木) 16:55:48.77 ] 'データ取得 stCsvData = objIE.Document.getElementById("status").InnerHTML ' カンマ区切りで分割して配列に格納する Dim stArrayData() As String stArrayData = Split(stCsvData, ",") ' ReDim Preserve stArrayData(UBound(stArrayData()) + 1) stArrayData(13) = CPU ' データを確認する Dim i As Integer For i = 0 To UBound(stArrayData()) MSHFlexGrid1.TextMatrix(MyNumber, i + 1) = stArrayData(i) Next i ' If MyCounter = 8 Then objIE.Quit Set objIE = Nothing End If Exit Sub Err: If MyCounter = 8 Then objIE.Quit Set objIE = Nothing End If End Sub 以上です、よろしくお願いします。
345 名前:デフォルトの名無しさん mailto:sage [2011/07/07(木) 17:58:47.53 ] まて・・・VB6でマルチスレッドはAPI使えばいけるが 確かやばかった記憶が・・・・ どうせなら同じプログラム8つ動かしてマルチプロセス とかどうよ?w
346 名前:デフォルトの名無しさん mailto:sage [2011/07/07(木) 20:52:56.96 ] VB6はシングルスレッドじゃないのか
347 名前:327 mailto:sage [2011/07/07(木) 23:21:24.06 ] >>342 マルチスレッドにするにせよ、プロセスを分けるにせよ、 このプログラムのようなIEのインスタンスが一つしか 作成されないような構造では、上手く行かないでしょう。 まず、IEのインスタンスが8個作成されるように改造してください。 (それ自体が不可能な場合はsocketを使用するなどして、 かなりの部分を自作する必要があるので、かなり難しいかと) IEのインスタンスが複数作成できたならば、問題は Do Untilでのブロック動作だと思うので、DoEventsと タイマーコントロールで問題回避できると思います。 あと、余計なお世話だとは思いますが、動かす際には 無用なリクエストが大量発行されないように注意してください。 意図せずにDoS攻撃になってしまう可能性があります。
348 名前:342 ◆XuL15E5UEM mailto:sage [2011/07/08(金) 01:11:18.20 ] >>347 レスありがとうございます。 IEの部分は8個作成してもOKです。 >IEのインスタンスが複数作成できたならば、問題は >Do Untilでのブロック動作だと思うので、DoEventsと >タイマーコントロールで問題回避できると思います。 この部分はどのようにすればよいか、もしよろしければサンプルをお願いできませんでしょうか。 動かす際には、まず自鯖で試しています。 お気づかいありがとうございます。
349 名前:デフォルトの名無しさん mailto:sage [2011/07/08(金) 05:04:31.46 ] >>345 VBのランタイム関数がスレッドセーフである事を保証しないので使えないのと関数を使えないのと、 IDEのインタプリタ上で動かしているとクラッシュするだけで、 大きな問題は無いよ。
350 名前:デフォルトの名無しさん mailto:sage [2011/07/08(金) 09:32:46.33 ] >>349 あと、たしか実行ファイルがPコードコンパイルじゃなかったら不具合がおきたと思うんだが。
351 名前:327 mailto:sage [2011/07/09(土) 01:00:28.84 ] >>342 サンプル作ろうと思ったら、環境(と、ついでに時間)がありませんでした。 ゴメンナサイ。 一週間ぐらい待てるならば作りますので、言ってください。 とりあえず、大まかな話を。 恐らく目的を達成するにはタイマーコントロールを使用してタイムスライス っぽいことを実装するのが一番手っ取り早いと思います。 現在、Do Untilで行っている動作は完全に処理をブロックしてしまっていて 他に何もできなくなっているので、その部分をタイマーコントロールを 使用して一定周期で監視するように改造するのです。 その際、タイマーコントロールのルーチン内で1〜8までのサーバの 状態を順番に監視するようにします。 イメージはこんな感じ↓。
352 名前:327 mailto:sage [2011/07/09(土) 01:01:08.37 ] private sub timer1_timer() select case(server) case server1 if ((ie1.Busy = False) And (ie1.ReadyState = READYSTATE_COMPLETE))then server1flag=true end if server=server2 … case server8 if ((ie8.Busy = False) And (ie8.ReadyState = READYSTATE_COMPLETE))then server8flag=true end if server=server1 end select if server1flag and … and server1flag then timer1.enabled=false end if end sub 伝わりますかね…?
353 名前:デフォルトの名無しさん mailto:sage [2011/07/09(土) 01:07:07.92 ] While Flag DoEvents Wend
354 名前:デフォルトの名無しさん mailto:sage [2011/07/09(土) 04:16:37.55 ] 今から勉強して新規でプログラム作るなら、.NETでやった方がいいと思うんだが...
355 名前:342 ◆XuL15E5UEM mailto:sage [2011/07/09(土) 11:52:45.74 ] >>351 お忙しいところレスどうもありがとうございます。 時間は1ヵ月でも半年、1年でも待ちます。 351自体は説明内容(単語)が分からずさっぱりなのですが、 352で書いていただいたコードを眺めつつ単語も調べて試して みたいと思います。(今の段階だとさっぱりなもので・・・。) >>354 れすども!? なんとなくVB6の方が操作感?というか分かりやすい気がしたもので。
356 名前:デフォルトの名無しさん mailto:sage [2011/07/09(土) 11:56:17.52 ] VB6はもう開発終了 メンテナンスもされない。 新しいOSで動作保証がなくなるかもしれない。 自分専用のツールを作って公開しないというのなら 別に構わないが、将来自信作ができたとき、 VB6で作っていると、作り直すはめになるだけ。
357 名前:デフォルトの名無しさん mailto:sage [2011/07/09(土) 11:58:31.05 ] というか、そもそも、 サーバーの負荷を調べる程度で、 IEを起動しているのがそもそもの間違い。 IEを起動・・・= CreateObject("InternetExplorer.Application") の部分 重いのがいやならマルチスレッドうんぬんではなく IEを起動しないようにするのが正解。
358 名前:デフォルトの名無しさん mailto:sage [2011/07/09(土) 12:55:42.79 ] よくわかんねーけどサーバのステータスがhtmlで取得できるならGETして中身見るだけですむよね
359 名前:デフォルトの名無しさん [2011/07/09(土) 13:40:11.88 ] 回線の負荷か CPUの負荷ならレジストリ見ればいいらしいが
360 名前:デフォルトの名無しさん mailto:sage [2011/07/09(土) 16:28:24.52 ] 馬鹿ばっか
361 名前:デフォルトの名無しさん mailto:sage [2011/07/09(土) 20:24:18.66 ] 「バカ」と罵る奴は何がしたいのか分からんな
362 名前:デフォルトの名無しさん mailto:sage [2011/07/09(土) 21:07:44.98 ] バカにはわからんよ。
363 名前:デフォルトの名無しさん mailto:sage [2011/07/10(日) 17:27:47.56 ] >VB6はもう開発終了 NETも汎用性がなさそうだしな
364 名前:デフォルトの名無しさん mailto:sage [2011/07/10(日) 18:15:51.91 ] 未だにVB6製のソフトウェア使ってる企業は何で
365 名前:デフォルトの名無しさん [2011/07/10(日) 18:48:15.42 ] バカは自分が理解できないと人をバカという転位行動をとるよ
366 名前:sage [2011/07/14(木) 23:02:07.01 ] テキストボックスにあるカンマで区切られたデータ(CSVデータ)があって データを逆順に「りんご,ごりら,らっぱ」→「らっぱ,ごりら,りんご」と 途中まではデータが通りここが通ってない ReDim Preserve data(i + 1) Array.Reverse(data) TextBox1.Text = "" For j = 0 To i + 1 TextBox1.Text &= data(j) & "," Next とするのですが動きません。ご教授お願いいたします。
367 名前:デフォルトの名無しさん mailto:sage [2011/07/14(木) 23:03:26.62 ] すいません上げてしまいました
368 名前:327 mailto:sage [2011/07/15(金) 02:41:19.28 ] >>366 TextBox1.Text &= data(j) & "," ↓ TextBox1.Text = TextBox1.Text & data(j) & ","
369 名前:デフォルトの名無しさん mailto:sage [2011/07/15(金) 09:47:28.63 ] >Array.Reverse(data) こんなのVB6にあったっけ? .netならわかるが・・・ 手抜きだと Private Sub Command1_Click() Dim text As String text = "ごりら,りんご,らっぱ" Dim arr() As String arr = Split(text, ",") Dim i As Long Dim changedText As String For i = UBound(arr) To LBound(arr) Step -1 changedText = changedText & arr(i) & vbCrLf Next MsgBox (changedText) End Sub
370 名前:デフォルトの名無しさん mailto:sage [2011/07/15(金) 10:06:09.68 ] >>366 そもそも配列をいちいち逆順にソートし直す必要があるのかね? For を後ろから-1してくればいいのだとおもうが
371 名前:デフォルトの名無しさん mailto:sage [2011/07/15(金) 22:47:25.91 ] >>368-370 ありがとうございました。スレ違いだったみたいです 丁寧なご教授ありがとうございます
372 名前:デフォルトの名無しさん mailto:sage [2011/07/15(金) 23:16:24.06 ] >質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、 これを徹底させず答えるから
373 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 16:16:59.87 ] 保守
374 名前:デフォルトの名無しさん [2011/07/29(金) 11:58:12.94 ] 保守2
375 名前:デフォルトの名無しさん mailto:sage [2011/07/29(金) 13:50:46.57 ] 保守なんぞしなくても、この板では落ちないだろ
376 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 15:34:56.75 ] hibari.2ch.net/news4vip/subject.txt を取得して動的二次元配列に1行ずつ代入するにはどうしたらいいでしょうか
377 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 16:54:49.27 ] ふつうにOPENして読み込めばOK 一気に読み込んでsplitかけるなり一行づつREDIMして読むなりそのまま使うなりご自由に
378 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 18:09:56.68 ] splitかけるとして改行コードは何でしょうか
379 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 18:11:54.16 ] そんな事いちいち聞くなよ
380 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 18:13:44.35 ] vbCrLfでやってみたのですがうまくできなかったので・・・
381 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 18:33:33.59 ] >>380 バイナリエディタで開けば、改行にどんなコードが使われているか確認できるお
382 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 23:58:30.78 ] >>376 ,378,380 かなり情報古いけどここの情報も見ておけば?きっとここに書いてあるようなところで躓くはずだから ttp://age.s22.xrea.com/talk2ch/
383 名前:デフォルトの名無しさん mailto:sage [2011/08/01(月) 00:24:54.94 ] >>380 Dim Kaigyo$, Subject$, Subjects$() If InStr(1, Subject$, vbNewLine) > 0 Then Kaigyo$ = vbNewLine ElseIf InStr(1, Subject$, vbCrLf) > 0 Then Kaigyo$ = vbCrLf ElseIf InStr(1, Subject$, vbCr) > 0 Then Kaigyo$ = vbCr ElseIf InStr(1, Subject$, vbLf) > 0 Then Kaigyo$ = vbLf Else Stop End If Subjects$ = Split(Subject$, Kaigyo$)
384 名前:デフォルトの名無しさん mailto:sage [2011/08/01(月) 00:28:52.62 ] >>381-383 vbLfでした!ありがとうございます!
385 名前:デフォルトの名無しさん mailto:sage [2011/08/01(月) 14:13:48.49 ] vb6ってUTF8をそのまま読めたっけか
386 名前:デフォルトの名無しさん mailto:sage [2011/08/01(月) 14:16:52.32 ] vbNewLineって使うのまずいんじゃね
387 名前:デフォルトの名無しさん mailto:sage [2011/08/01(月) 14:23:44.49 ] 読んで配列に入れるだけなら問題ないんじゃね?妙な変換されたっけ?
388 名前:デフォルトの名無しさん mailto:sage [2011/08/01(月) 23:38:04.61 ] ? subject.txtってUTF8になったの?
389 名前:デフォルトの名無しさん mailto:sage [2011/08/01(月) 23:46:36.19 ] フォーム上にPictureBoxを配置しています PictureBoxの角に○を書くにはどうしたらよいでしょう? uproda.2ch-library.com/lib410514.bmp.shtml 上記が実現したいイメージです。○はペイントで書きました
390 名前:デフォルトの名無しさん mailto:sage [2011/08/02(火) 02:38:42.58 ] 画像見れない
391 名前:デフォルトの名無しさん mailto:sage [2011/08/02(火) 02:39:14.19 ] Circleメソッド
392 名前:デフォルトの名無しさん mailto:sage [2011/08/02(火) 02:40:41.31 ] じゃ無理か
393 名前:デフォルトの名無しさん mailto:sage [2011/08/02(火) 02:49:33.31 ] 目的や用途が不明だからよく分からんが 4つの白い四角形がそれぞれPictureBoxコントロールなのか? でかいPictureBoxコントロールにぽつんとその四角描けば円も描けるだろうけど
394 名前:デフォルトの名無しさん mailto:sage [2011/08/02(火) 09:19:39.01 ] 61,61以上のPictureBox(以下、Picture1とする)にその□を書いて、 Picture1.Circle(12, 12), 11, RGB(255, 0, 0)とすればいいんでない? ※サイズはその画像から計算 その□の角が中心点だと、その半径分だけ大きいPicture1が必要だよね?
395 名前:デフォルトの名無しさん [2011/08/03(水) 00:07:20.45 ] Line(x, 1)-(x, 5), &hff って高さ4ピクセルの縦線なんだよ 変な仕様だよね
396 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 00:12:10.29 ] 全然変じゃない。 ピクセルなどという、表示デバイスの都合に依存したフレームで考えてるから 変に思えるだけ。
397 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 00:47:37.40 ] ユーザー定義もできるーVB6標準コントロールどものスケール
398 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 09:37:18.11 ] XPでVB6SP6使ってるんですが 実行時エラー9 インデックスが有効範囲にありませんっていうエラーって 配列変数以外で起こる原因ってなんなんでしょうか?
399 名前:デフォルトの名無しさん [2011/08/03(水) 09:54:47.09 ] >>396 じゃあ、ピクセル単位で(x1,y1)から(x2,y2)まで線を引く必要が生じた場合は Psetを用いる以外にどのような方法が? >>398 なんか覚えがある もうちょっと詳しく
400 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 10:09:28.10 ] >>399 あるプロシージャ内で配列変数は使ってなく RDOを使用してMSSQLに対してSELECT文を実行し OpenStaticで取得したrdoResultsetのRowCountを参照して、 RowCountが1以上だったら実処理用のプロシージャをコールするだけなんですが コールするプロシージャはそっち側でOnErrorしてますのでコール元にエラーが返ってくることはなく なぜか配列を使ってないコール元のプロシージャで実行時エラー9が起きてて悩んでるんです
401 名前:デフォルトの名無しさん [2011/08/04(木) 17:45:29.59 ] >>400 あーごめん、思い出すきっかけになるかと思って聞いてみたんだけど 思い出せなくてキリ番オメとしか言ってあげられない IDEだと発生しないエラーだっけ? 他に心当たりある人がいなければ、コールする部分をコメントアウトしてみるとか コード1行ごとにログを出力するとかして、どこで発生してるか突き止めるしかないね
402 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 02:50:32.56 ] vb6の不思議なとこは 関数の戻り値を関数から出るまでは何回でも変更できるし CとかJAVAならreturnで即終了だいs
403 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 12:21:03.79 ] >returnで即終了だいs returnで即終了だいすけ?
404 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 17:02:26.91 ] >>402 不思議と言うより、そこはVB6の優れているところだね ただ、戻り値の返し方が関数名への代入ってのは頂けない やはりここは関数名ではなく固有キーワードの方が良い
405 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 18:55:29.26 ] cやjavaなら冒頭で戻り値用の変数用意すれば同じことできるし VB6は戻り値設定に関数名使ってるのもだるいが 関数からの抜け出しも文字数長くてしんどい
406 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 20:47:23.43 ] CやJavaでは、戻り値のあるなしどちらでも関数だが VB6は片やfunction 方やsub。 これって何か意味あるかな?
407 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 21:38:00.71 ] >>406 もともとの行番号がついていた時代のBASICには関数はなかった。 しかし関数はなかったがサブルーチンはあった。 変数はグローバルで、サブルーチンは処理をまとめただけ。 CALLはそのサブルーチンを呼び出す命令。 subはその頃から互換性を保ちながらバージョンアップしてきた時の名残。 そもそもBASICは1964年に作られた初心者用言語で (ちなみにC言語は1972年) 今のような使われ方、機能は想定されてなかった。 このような結構名残はたくさんあって、昔のBASICは変数を定義する必要はなかった。 ただし配列を使う場合には特別に定義する命令があった。それがVB6では変数を定義するときの キーワードのDimになっている。DimとはDimension(n次元)の略なのに…の答えがこれ 変数の型も昔のBASICにはAs Integerとかなくて、変数名の最後に %, &, $をつけて表していた。今も使える。 VB6の不思議な仕様はたいてい昔からの名残(互換性維持のため)と考えれば理解できるよ。 初期のBASICの仕様と、それから大きく発展したQUICK BASICの仕様を調べてみたらどうかな。
408 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 22:11:16.48 ] >>406 VBだってどっちにしろプロシージャーでしょ。 同じものを「何も返さない処理」と表現するか「無を返す関数」と表現するかの違いだが、 いずれにせよ深い意味なんてない。 数学的には後者の方が統一的で美しいけど、反面直観的ではないな。 線分を多角形の特殊形態だと言うのに近い。
409 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 00:10:20.21 ] .NETに以降したいけど、書き直すのが面倒です! あの変換するの使っても結構修正箇所が。 (これは自分の作りに問題があるのだと思うけど) というわけで、Windows7x64にVB6入れて使っている人いますか? (XPモードじゃなくて)
410 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 00:19:09.74 ] 一応、貼っておくか.... blogs.wankuma.com/jeanne/archive/2006/08/02/34597.aspx
411 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 01:19:35.41 ] 一応、言っておくか.... .NETで作ってあるのもある。 自宅ではVB6だからそれを移行するのが面倒っていう話で。 というか、本題は。 >というわけで、Windows7x64にVB6入れて使っている人いますか? >(XPモードじゃなくて)
412 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 09:43:57.90 ] >>406 単に Pascal に倣っただけでしょ。 「戻り値設定に関数名使ってる」のも同じ。 なんで Pascal は? って聞かれたら Wirth に聞いてくれというしかないが...。
413 名前:デフォルトの名無しさん mailto:sage [2011/08/09(火) 00:55:54.03 ] >>409 MSにガイドが有るだろ 基本はプロテクトかかってないフォルダ、つまりProgram Filesとか以外にインストールでほぼ動くよ。 やってないとは思うがシステムフォルダのパス取得は直書きしないで全部関数使う 基本32bitで動くからその辺は気にしないで大丈夫だが、 COMとかDLLとかは実際に動かしてチェックしないと解らん。 あとはVirtualStoreとかの隠しフォルダに気をつけるぐらいかな 良く解らなければUAC切れ こいつがファイルからレジストリまでユーザー単位で仮想化してるのがおかしくなる原因だ 後は互換モードを活用する これは過去Ver.と7のAPI対応表を持ってて裏で変換してくれる あ、プリンタAPIとか使ってるならそいつも確認 セッション0問題とかその辺が引っかかる可能性が有る。 ドライバ関係はメーカ対応無かったりで結構泣けた 移行やったの去年だから今はもうちょっと改善されてるかも?
414 名前:デフォルトの名無しさん mailto:sage [2011/08/09(火) 01:15:13.51 ] >>413 移行できない、ではなくて、移行が面倒なんでは? VB6製アプリが動くか、ではなくて、VB6IDE環境が動くかが知りたいたいのでは? それに、単純にVB6のコードをVB.NETで動くようにしても、 クラス構造や例外やDBの扱いなんかが悲しいことに。 >>409 Win7(x64)で動くのかどうか知らないけど、VB6環境はXPモードでメンテのみに留めて、 メインの環境を変えちゃったほうがいいんじゃない?
415 名前:デフォルトの名無しさん mailto:sage [2011/08/09(火) 18:00:56.19 ] InputManのimTextというコントロールについて知っている人が いたら教えてください。 imTextをマルチラインで使った場合、半角カナの単語が行末に来る場合 単語が分割されないように自動的に改行されてしまいます。 これを分割されるようにする方法はないでしょうか? それらしいプロパティが無く困っております。 よろしくお願いします。
416 名前:デフォルトの名無しさん mailto:sage [2011/08/09(火) 21:11:56.79 ] >>415 スレ違い あれは汎用コントロールであって、「VB6でも使える」だけで VB6の付随品でもなければ、VB6用というわけでもない そんな、VB6とは関係ないものの質問はNGです お引き取り下さい そもそも、正規に購入しているなら、サポートに問い合わせれば良いだけだ
417 名前:デフォルトの名無しさん mailto:sage [2011/08/09(火) 21:17:07.41 ] 書き忘れましたが自己解決しました。
418 名前:デフォルトの名無しさん mailto:sage [2011/08/10(水) 00:51:19.04 ] >>414 あ、>>411 か、これは恥ずかしい・・・ え〜と入れてたし動いてたけど>>414 が正解だと思う 細かいとこで引っかかっていちいち対応するのがめんどかった
419 名前:デフォルトの名無しさん mailto:sage [2011/08/10(水) 15:42:21.66 ] WebBrowserコントロールに動的に生成したHTMLを 表示したいのですが、最後の行でエラーになってしまいます。 WebBrowserコントロールに生成したHTMLDocumentを 設定するにはどうしたらいいでしょうか? Dim doc As New MSHTML.HTMLDocument Dim html As MSHTML.HTMLHtmlElement Set html = doc.createElement("html") Dim head As MSHTML.HTMLHeadElement Set head = doc.createElement("head") Call html.appendChild(head) Dim body As MSHTML.HTMLBody Set body = doc.createElement("body") Call html.appendChild(body) Set WebBrowser1.document = doc
420 名前:デフォルトの名無しさん mailto:sage [2011/08/11(木) 02:20:37.69 ] OptionButtonコントロールの選択状態ってどう取得するのがスマートなの? OptionButtonのClickイベントのたびに選択されたIndexを変数に保持する方法? それとも状態を知りたいタイミングで一個一個選択された状態か確認する方法?
421 名前:デフォルトの名無しさん mailto:sage [2011/08/11(木) 06:24:07.84 ] スマートさなんてのは、人それぞれの感覚で定義が違ってくるので 君にとってスマートなやり方は、君にしか解らない VBAスレでも似たような展開になってるが、トリッキーでもコードが短ければ それを以てスマートと感じる奴も居れば、可読性の高さにスマートさを感じる奴も居る はたまた、汎用性の高さや、拡張性の高さにスマートさを感じる奴も居る いそんな取得の仕方はWeb上に腐るほどサンプルとして転がってるから 自分でいろいろ見て、自分がスマートだと思った方法を真似れば良い 以上、さようなら
422 名前:デフォルトの名無しさん mailto:sage [2011/08/11(木) 08:42:51.88 ] >>420 スマートにしたいのなら、UI部分とロジックは分離して ロジック部分はUIを使わないでも(例えばCUIなどから) 実行できるようにするといい。 分離したロジックは別のクラスに書く
423 名前:デフォルトの名無しさん mailto:sage [2011/08/11(木) 09:48:38.09 ] >>420 なんか愚問だな。 スマートの定義は置いとくとしても、どの方法が適切かは目的しだい。 常にこの方法が適切、なんてものはない。 例えばタブページのタブのように、オプションボタンで、あるコンテナの中に 表示される中身を切り替えたいとする。 こんな時にイベントドリブン以外の方法を採用できるのか。 例えば何かを設定する画面でユーザーがOKボタンをクリックするまで変更された 設定の適用を保留したい場合、イベントドリブンを採用して、ユーザーがオプションボタンを クリックした時点で直ちに対応する設定値を変更してしまっていいのか。
424 名前:デフォルトの名無しさん mailto:sage [2011/08/11(木) 11:23:18.21 ] 以上、スマートなOptionButtonコントロールの選択状態の取得方法を知らない人たちの戯言でした
425 名前:デフォルトの名無しさん mailto:sage [2011/08/11(木) 11:35:22.43 ] それより>>419 頼みますよ。
426 名前:デフォルトの名無しさん mailto:sage [2011/08/11(木) 21:30:47.51 ] >>424 その後にスマートな方法をスマートに書いていると格好良かったんだが その1行だけだとかなり滑稽というか、君のが一番惨めな戯れ言に成り下がってるな
427 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 00:57:24.17 ] >>425 WebBrowserコントロールのdocumentプロパティは読み取り専用ではなく設定も可能なプロパティなの?
428 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 08:38:11.07 ] >>427 vb.netではできるので高い技術力を持ってすればできるのではないかと。 読み取り専用ごときに怯んではいけないかと。
429 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 10:30:49.72 ] >>426 ム板で自己満足のコードも無い長文を垂れ流すのを、タワゴトと言わずして何と言おうか
430 名前:まあ、短いだけましだが> mailto:sage [2011/08/12(金) 11:27:57.51 ] 短くても戯言は戯言だし...。
431 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 21:09:59.41 ] >>429 悔しかったの?
432 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 21:41:03.04 ] >>425 一旦ファイルに保存しちゃおうぜ。
433 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 22:43:43.55 ] >>432 今はそれですけど、それは無しだと思うのです。
434 名前: 【Dnewsplus1306759181466917】 [2011/08/13(土) 09:02:32.62 ] Select Case True Case Option1(0): Debug.? "0" Case Option1(1): Debug.? "1" : End Select Dim objopt As OptionButton For Each objopt In Option1 If objopt.Value Then Debug.? objopt.Index: Exit For Next メモ あと、起動時にどれかが選択状態になってしまうので 全部非選択して、ユーザーに必ず選ばせてから処理を進めたい場合は Option1(10).Visible=False: Option1(10).Value=True というようにダミーを隠しておくんだぬ
435 名前:デフォルトの名無しさん mailto:sage [2011/08/13(土) 11:57:05.16 ] そんな「意地悪」をする合理的理由が何もない件。
436 名前:デフォルトの名無しさん mailto:sage [2011/08/13(土) 15:14:50.89 ] 好きな女の子に対しては、いじわr(ry
437 名前:デフォルトの名無しさん mailto:sage [2011/08/13(土) 16:42:20.74 ] Private Sub Option1_Click(Index As Integer) Option1(0).Tag = Index End Sub でおけ
438 名前:デフォルトの名無しさん mailto:sage [2011/08/14(日) 16:06:29.96 ] うまくググりゃちゃんと欲しかった情報とか出てくるんだな 以前は見つけられなかったけどキーワード次第で今回すんなり見つけられた
439 名前:デフォルトの名無しさん mailto:sage [2011/08/14(日) 16:11:13.33 ] 俺がググるの検索順位を いじってあげたおかげだよ。 感謝しな。
440 名前:デフォルトの名無しさん mailto:sage [2011/08/14(日) 16:11:26.84 ] うかつにここで質問して叩かれずに済んだという話
441 名前:デフォルトの名無しさん mailto:sage [2011/08/14(日) 16:16:44.36 ] >>440 2ちゃんねる初心者か? どんな質問でも、叩く奴は叩く。 叩かれることに怯えるな。 とりあえず2ちゃんねるで聞く、そして自分で探す。 たまに2ちゃんねんるで釣れてないか確認する。 これが最も効率がいい。 2ちゃんねるはダメもとで書いて置く場所だよ。
442 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 00:53:14.25 ] >>437 tagってそんな風に使って大丈夫なの?
443 名前: 【Dnewsplus1306759181466917】 [2011/08/16(火) 06:25:38.36 ] 前回バックアップした時点から更新されたファイルをUSBメモリにコピーして 他のPCにフォローするプログラムを作ってるのですが 何千ファイルものタイムスタンプを片っ端から見ていくのは 時間がかかるのでなんとかしたいのです フォルダの更新日時というやつが、そのサブフォルダも含めて、 中の最新ファイル更新日時を示しているのなら、 かなり処理をはしょれるのですが、そうはなっていないようです フォルダの更新メッセージを受け取るような常駐型ソフトではないし 何かいい方法はないですか
444 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 08:06:00.97 ] >>443 dir /O-D
445 名前: 【Dnewsplus1306759181466917】 [2011/08/16(火) 21:05:02.37 ] 新しい順のファイルリストをリダイレクトして先頭のタイムスタンプを・・・ う〜む
446 名前:デフォルトの名無しさん mailto:sage [2011/08/19(金) 00:18:11.64 ] 素直に FindFirstFile, FindNextFile, FindClose API を使って列挙するのがいいんじゃないかな。 時刻も同時にとれるし。 USB に全ファイルを入れてもいいなら ROBOCOPY を 使って、更新されたファイルのみコピーする方法もある。
447 名前: 【Dnewsplus1306759181466917】 [2011/08/19(金) 01:00:25.03 ] >>446 今はDirループで列挙してますが コンパイルすると結局そのAPI呼出しに置き換わるのではないかと思っています 毎日ファイリングしてる数百のデータファイルを、今作ってるソフトにかけると 数年前のファイルが置いてあるフォルダでも更新してないかバカみたいに探してるのが悲しい・・ これは、OSがそういう機能を提供してくれない限りしょうがないですね
448 名前:デフォルトの名無しさん mailto:sage [2011/08/19(金) 01:20:33.21 ] >>447 たしかに Dir ループは Find 〜 API を呼び出してるんだろうけど、 ファイル名しか取れないでしょ? ファイル名をとってきて、FileDateTime 関数あたりで更新時刻を 取得してるんだよね? Find 〜 API を直接呼べば、WIN32_FIND_DATA 構造体に更新時刻 が入ってくるので、FileDateTime 関数を呼ぶ必要がなくなるんだよ。
449 名前:デフォルトの名無しさん mailto:sage [2011/08/19(金) 08:56:08.33 ] ローカルだとFileDateTimeを呼んでもたいしたオーバーヘッドはないが ネットワークドライブだと環境によっては悲惨な結果になる
450 名前:デフォルトの名無しさん [2011/08/20(土) 14:06:58.70 ] Dirはいやらしい Dirループがネスティングできないと知っていても中で使ってる関数の先の先で使ってたりして あと、最近発見したのはDirでUSBメモリを参照すると、USBが抜けない 某サイトで開放するためにDir ""とするんだと書いてあったが、 それでもカレントディレクトリを参照してるのか開放はしてないようだった USBメモリを参照し終わったら、それを開放するためにHDDを参照してやらないといけないみたい
451 名前:デフォルトの名無しさん [2011/08/20(土) 15:07:48.28 ] VB6 IDEでマウスホイールでコードをスクロールするアドインが提供されていますが、動作しません。 なぜでしょうか、今はVB6もXPも最新にしてますが、かれこれ何年も思い出す度に下記を実行しているので VB6のspやOSやPCが原因ではないと思われます と、ここまで書いてて自分用のセッテイングに問題があるんだなと思い ツール→オプション→詳細→SDI開発環境のチェックを外したら動作した なんだこれー、SDIがダメならマウスホイール使えなくてなくてもいいや support.microsoft.com/default.aspx?scid=kb;ja;837910 1.VB6MouseWheel.EXE パッケージをダウンロード (Click!) 2.VB6MouseWheel.EXE を適当な場所に解凍 (C直下がいいかと。) 3.[スタート]→[ファイル名を指定して実行]で以下のコマンドを入力「regsvr32 (解凍先)\VB6IDEMouseWheelAddin.dll」 4.VB6.0を起動し[アドイン] →[アドイン マネージャ] 5.「MouseWheel Fix」を選択 6.[ロード/アンロード] と [起動時にロード]の項目にチェック
452 名前:デフォルトの名無しさん mailto:sage [2011/08/20(土) 16:42:32.76 ] >>451 気づいたとおり、そのアドインはSDI環境には対応してない。 以下のアドインなら、SDI環境でも使えるらしい。 ttp://homepage1.nifty.com/mtj-k/software/office_vb6/addautoscroll_vb6.html それにしても、SDIで使ってる人いたんだね。
453 名前:デフォルトの名無しさん mailto:sage [2011/08/20(土) 19:25:22.98 ] X wheelとかのホイール支援ソフト入れておけば使えないこともないような気がする
454 名前:デフォルトの名無しさん [2011/08/20(土) 23:32:13.58 ] >>452 おお、SDIでも使えるんですか 後で入れてみます SDIでないとめちゃめちゃ使い難いではないですか? VBのIDEだけじゃなくてエクスプローラとかバイナリエディタとか・・ 複数のコードウインドウの空いたエリアにあれば参照しながら打てるし
455 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 06:19:51.46 ] MDIとSDIを取り違えてないか?
456 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 15:36:34.65 ] VBSで質問です。 gethostnameやgethostbynameを使用して ipアドレスの取得を行いたいのですが実行エラーになります。 使用する方法ありませんか?
457 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 16:41:26.29 ] エラーの内容やソースも出さずに質問とは
458 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 18:31:01.46 ] >>456 スレ違い それはActiveXコンポーネントという汎用APIの質問であって、VBSの質問ではない VBSの制御構文などに関する質問ならここでもOKだが、汎用APIの質問受け付けたら キリがない(ActiveXはもちろん、Win32APIの質問も、.NET FrameworkやDirectXなどもOKになる)から >>1 の4行目に書いて有る通り、NGってことになってる というわけでさようなら
459 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 19:07:23.00 ] えっと、このスレは VBS は含まれますか?
460 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 19:11:59.77 ] 一応。
461 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 19:57:58.57 ] 大雑把な質問には皆エスパーして答えていることを質問者は理解すべき
462 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 21:12:10.83 ] いやVBSはどう考えてもスレ違いだろ
463 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 21:14:47.48 ] と思ったけど、>>1 には >二.VBScript、インストーラーなどはこのスレでOK。 って書いてあるな。VBSそのものはここでOKらしい
464 名前:デフォルトの名無しさん mailto:sage [2011/08/22(月) 00:12:22.56 ] VBS から直接 API は呼べないので nslookup の戻り値を取得して解析するとか ttp://homepage1.nifty.com/MADIA/vb/vb_bbs/200608/200608_06080050.html API をラップした ActiveX.DLL を探してくるか、VB で作成して利用するとかしかない。
465 名前:デフォルトの名無しさん mailto:sage [2011/08/22(月) 02:35:55.69 ] VB6SP& リッチテキストボックス6(SP6)のスクロールバーを両方表示に設定してる(ScrollBars=rtfBoth)のに 水平のスクロールバーが使えない リッチテキストボックスの横幅を越える文字は自動で改行されて表示される どのプロパティいじれば横スクロールバー有効になるの? (垂直スクロールバーは問題ないんだけど)
466 名前:デフォルトの名無しさん mailto:sage [2011/08/22(月) 04:08:12.61 ] >>465 ScrollBars プロパティ のヘルプ嫁。 水平スクロール バーは、RightMargin プロパティがコントロールの幅よりも 大きな値に設定されている場合に限り表示されます。 このプロパティの値は、コントロールの幅と同等か、わずかに小さいだけでも かまいません。
467 名前:デフォルトの名無しさん mailto:sage [2011/08/22(月) 04:22:39.48 ] >>466 トンクス 今度から真っ先にヘルプを探してみます どうもすみませんでした
468 名前:デフォルトの名無しさん mailto:sage [2011/08/22(月) 16:56:45.49 ] VB6でコレクションにあるクラスが入っています。 項目を取り出すとき、中に入れたデータはクラスですが、返り値はObjectで帰ってくるようになっていると思います。 この項目をあるクラスの変数に復元して入れることは出来ませんか?
469 名前:デフォルトの名無しさん mailto:sage [2011/08/22(月) 20:36:27.12 ] エスパーすれば言いたいことは解るけど、あえて突っ込ませて貰う >>468 日本語(自然言語)で理路整然とした文章を書けない奴に プログラム言語は無理
470 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 09:29:44.30 ] >>469 あえて突っ込んでおく 意外とそうでもない
471 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 11:48:36.25 ] 句読点も打てない奴に、んなこと言われたくねーよ。
472 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 12:04:36.97 ] >>471 どこに句読点が必要なんですか? わかりません><
473 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 14:07:44.66 ] 禿、同。
474 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 14:24:32.33 ] コンパイラさんやインタプリタさんって自然言語で文章書けるんだ
475 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 15:15:13.42 ] >>471 が、今顔真っ赤にして、恥ずかしがってる、気が、してならない。
476 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 16:34:28.76 ] よほど悔しかったと見える。
477 名前:デフォルトの名無しさん [2011/08/23(火) 18:00:29.63 ] >>468 こゆこと? Dim col As New Collection Dim c1 As Class1 Set c1 = New Class1 c1.Key = "abc" col.Add c1, c1.Key Set c1 = New Class1 c1.Key = "efg" col.Add c1, c1.Key Set c1 = New Class1 c1.Key = "hij" col.Add c1, c1.Key Set c1 = col.Item("efg") MsgBox c1.Key 'この例はClass1には Public Key As String のプロパティ作ってある
478 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 19:29:57.11 ] >>468 ちゃんと中に入れたクラス型ががわかっているなら 取り出す時に、同じクラス型の変数に入れてやれば良い。 キャストの手間は無い。
479 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 06:29:00.96 ] >>476 悔しかったというより、471は恥ずかしかったんじゃねーの? というか、恥ずかしいという自覚を持てずに悔しがっちゃうようだとお粗末すぎるし・・・
480 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 10:40:39.57 ] なんで>>471 が叩かれてるのか、さっぱりわからない
481 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 11:07:34.49 ] >>477-478 回答ありがとうございます。 なるほど、このような時は明示的なキャストというものはしないのですね。 なんとなく動いてはいたんですが、ちょっと怖い気がして質問させていただきました。 日本語がおかしかった部分に関しては・・・お恥ずかしい限りですが焦っていたのもありました。 ご回答ありがとうございました。
482 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 19:44:11.09 ] WebBrowserを使いサイト内のiframeに書かれているURLにアクセスして テキストを入力するプログラムを作っているのですが、本体とiframeで ドメインが違っていて「アクセスが拒否されました」とエラーが出てしまいます。 IInternetHostSecurityManager.GetSecurityIdというのを実装すればいいと いうところまでは調べてわかったのですがどう実装していいものなのかわかりません。 IInternetHostSecurityManager.GetSecurityIdの実装方法もしくは別ドメインへの アクセス方法が他にあるのであれば教えていただきたいのですが・・・。 よろしくお願いします。
483 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 23:36:23.52 ] 親のURLからたどればいいんじゃない?
484 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 02:06:22.17 ] VB6と関係ない質問ぽくね
485 名前:デフォルトの名無しさん [2011/08/25(木) 04:48:59.67 ] 何の話か判らんけど以前、ネット上のサイト読むのに WinSockでシコシコ読んで文字コード変換までしてたけど 今はアドレス渡すだけで一発でソースをテキストファイルに落とすAPIがあるんだね
486 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 07:05:54.57 ] HTTPごときでシコシコはいいすぎだと思う
487 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 12:46:17.93 ] html程度ならふつーのOPEN命令でも読めたりするんだよな タイムアウトなどの処理はどうだったかしらんけど
488 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 13:55:21.85 ] Open "www.google.co.jp/ " For Input As #1 で読めるってこと?
489 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 14:52:29.18 ] なぜ自分で試さないのか
490 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 21:59:14.75 ] やってる事はほぼ一緒だけど、「メモ帳」でもURL入れて開けばhtmlが出るんだよな
491 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 23:25:02.10 ] >>489 なぜ試す前に聞いちゃいけないの?
492 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 11:47:02.05 ] 復活
493 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 14:31:56.12 ] ほんとだw出たw Windowsの仕様?Win7とかでも出るのかなVB6サポートされてるからって このOpenの仕様はVB6とは関係ないかんじなのかな
494 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 14:58:04.76 ] >>491 別にいけなかないが、自分で試せばすぐにわかることだろ。 >>488 書いてから、誰かがレスするまで何時間も待つのか?
495 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 15:09:24.16 ] くだらないやりとりやってないで、答えてやれよ >>488 もちろん、読める
496 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 15:30:40.24 ] 読めるわけ無いだろ
497 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 18:53:53.31 ] 少なくともメモ帳ではマジで開けた
498 名前:デフォルトの名無しさん [2011/08/27(土) 15:29:03.29 ] すごーい、OPENで読めた VB2からやってるけど、これは知らなかったわ 凄い物知りがいるんだなここは >>486 サーバーからバッファに受信したデータを結合したりチャンク形式に対応したり かなりシコシコなコードになったよ でもまぁ、2ちゃんの鯖の時刻を時刻合わせに使ったり、自前のコードは色々と 応用がきくから捨てたもんじゃないけど
499 名前:デフォルトの名無しさん mailto:sage [2011/08/27(土) 15:42:48.08 ] >>376-の時はみんなスルーだったのに…
500 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 00:20:58.43 ] つまりOPENでsubject.txtを読み込み、改行コードでsplitしたあと2次元配列にいれていくってことか
501 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 00:26:50.52 ] subject.txtの取得時ってUAは関係ないっけ? openで読む時リクエストヘッダを任意で指定できるのかな なんかそう言う細かいところはできなさそうな雰囲気で結局WinSock叩く方が早いっていう結論になりそう
502 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 00:35:52.91 ] HTTPプロトコルを喋りたいのなら、 HTTP用のライブラリを使えばいい。 WinSockを使う必要はないし、 様々なヘッダの解釈面倒だろ。 それすっ飛ばしてWinSockにいっちゃう人って 逆に知識ないんじゃないかって思う。
503 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 00:37:05.62 ] というか.netに行くのが正解
504 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 08:52:19.46 ] httpdのログ見るかぎりはIEで接続されてる事になってるよ
505 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 12:05:28.58 ] >>502 とりあえずお前のお勧めのVB6用HTTPライブラリ教えてくれ
506 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 13:56:24.69 ] >>504 だろうねw どうせユーザーエージェントなんて urlmonで変えられるだろ。
507 名前:デフォルトの名無しさん [2011/08/28(日) 14:46:47.87 ] 自作のエディタで開けたからOPENで読み込んだと勘違いしてたけど ファイル名入力のGetOpenFileNameってダイアログのAPIがファイル名にURLを与えると IEのキャッシュファイル名を返してきて OPENは単にTemporary Internet Filesの中のファイルを開いてるだけでした
508 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 15:05:22.59 ] >>507 でもそれは結局URLを読んでるのと同じだろ?
509 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 17:09:20.25 ] 単にキャッシュ読むなら相手のhttpdログに残らないわけだが
510 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 22:01:47.10 ] キャッシュよむかどうかはインターネット設定によるんじゃ? キャッシュに無ければ実際にhttpでデータとってくるだろ
511 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 22:20:40.63 ] インターネットの画面で右クリックしてプロパティを開くと、 WEBページのサイズを確認することができますよね? それを利用して、サイズが変わった=ページの更新があった という考えで 更新があると 「チェックしているサイトが更新されました」 という風に画面に表示するようにしたいのですが、 このような動作をVB上で実現することはできるんでしょうか? 実現可能であればどのような関数を使って作成すればよいのかを教えてください。 お願いします。
512 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 22:53:23.63 ] Content-Lengthが帰ってくる保証は無いしLast-Modifiedも同じくあてにならない 以前のファイルと取ってきたファイルを比べないと正確な更新があったかはわからない つか、そういうのはそれなりのスレで聞いた方がいいんじゃないかな
513 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 22:55:21.54 ] とりあえず、Content-Lengthでやってみて駄目ならでいいんじゃねっていう。 512さん教えてあげて!w
514 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 22:57:42.87 ] だがことわる
515 名前:511 mailto:sage [2011/08/28(日) 23:09:48.78 ] >>512 今はとりあえず、サイズでチェックのみの 簡単なもので作りたいと考えています。 ですのでこの際正確に更新があったかどうかは問わないもので大丈夫です
516 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 23:19:45.45 ] winsockのTCPの80でHEADかGETを行い読み解析 詳しくはぐぐってくれ
517 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 23:21:53.15 ] くれぐれも実在するインターネットのサイトでテストを行わない事 練習用のサーバを建てて実験するように 冗談じゃなく牢屋にブチこまれるぞ
518 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 23:26:39.75 ] ETagがあるんならそっちのほうがいいような気がしてきたが、どうなんだろうな 俺はそんなに詳しくないからわからん
519 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 00:25:42.01 ] >>517 何で牢屋?
520 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 00:33:26.48 ] 岡崎市立中央図書館事件というものがあってな サーバ管理者側が意図しない接続をうけたと警察に被害届を出せばとりあえず逮捕するという前例を作ってしまったんだよ
521 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 01:11:51.80 ] なんか2chって得意げにそれを挙げる馬鹿が多いよな
522 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 01:20:41.29 ] 得意げになるようなものか?これ
523 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 01:30:04.69 ] 投稿者はドヤ顔してるに違いない
524 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 01:34:25.23 ] 妬むなよ、気持ち悪い。
525 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 02:16:03.72 ] >>520 別にそんな例を出さなくても、 誤認であっても逮捕されるなんて知ってる。 世の中のこと何も知らないんじゃないのか?
526 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 02:22:03.69 ] 具体例を出したら例を出すなと言い、 出さなかったらソースは?と聞く。
527 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 02:30:24.39 ] つまり、元々の発言が、くだらないものだってって結論。 逆に言えば、くだらないものだという証明をするために 証拠を出させたとも言える。
528 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 02:33:07.31 ] 妬むなよ、気持ち悪い。
529 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 03:57:31.85 ] 何だこいつw 524 名前:デフォルトの名無しさん[sage] 投稿日:2011/08/29(月) 01:34:25.23 妬むなよ、気持ち悪い。 528 名前:デフォルトの名無しさん[sage] 投稿日:2011/08/29(月) 02:33:07.31 妬むなよ、気持ち悪い。
530 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 19:57:00.41 ] これ見るたびに2chネラって頭悪い奴が多いなと思うんだけど、 岡崎の件は普通に考えればケーサツの勇み足っていう文脈で言及されるべき事件であって、 こんなのを「犯意がなくてもお縄になる事例」として挙げる奴は脳が湧いてるのかと。
531 名前:デフォルトの名無しさん mailto:sage [2011/08/30(火) 00:25:22.33 ] 別件逮捕のネタとして使われないとは言えない時代だから困る。お前ら、バグは残すなよ
532 名前:デフォルトの名無しさん mailto:sage [2011/08/30(火) 02:13:22.64 ] 別件って 何かやましいことでもしてんのかよw
533 名前:デフォルトの名無しさん mailto:sage [2011/08/30(火) 16:24:32.19 ] vbのツールバーのボタンサイズを変更するにはどうすればいいんですか?
534 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 21:44:17.98 ] 普通にやればいいんじゃないの?
535 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 08:50:05.40 ] >>530 実際には当事者であるMDSの嘘を専門家の意見として鵜呑みしている時点で 勇み足というレベルではなく深刻な警察の腐敗が明らかな大問題
536 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 02:35:40.05 ] >>535 犯罪だという訴えがあって、逮捕状も出た(んだよな?当然)のに、 逮捕しなかったらそれは警察の怠慢。そっちのが腐敗しとるわ
537 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 19:58:58.45 ] 逮捕状ってのは警察が請求すれば自動的に出ることになってるんですよw
538 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 01:28:24.17 ] 結局使ってるのは人間だからなぁ
539 名前:デフォルトの名無しさん [2011/09/04(日) 09:18:47.55 ] 再起動するのは Shell App.Path+App.ExeName+".exe", vbNormalFocus End でしょ このコードで動くのは自分がドライブルートにある場合だけ ルートにある場合だけApp.Pathの末尾に¥が付く理由とは?
540 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 10:05:41.94 ] 態度が気に入らないから教えません
541 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 17:13:42.74 ] FileSystemObjectのBuildPath使えば\のこと気にせず
542 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 12:12:14.90 ] >>540 ×態度が気に入らないから教えません ○私は知識がないので教えられません
543 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 12:46:16.22 ] 自らを正すのではなく相手に逆切れ そんな朝鮮的な感情、ステキやん?
544 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 14:22:04.85 ] つーかさ、教える教えない教えられないとか以前に、>>539 に「理由」を回答する必要あるのか? 理由や原因が解れば、ユーザー側で対処改善出来る類の物なら理由を聞くのも解るが 件のはそういう類のものではない。あえて言うなら「仕様だから」で、なぜそういう仕様なのかという「理由」は MSに聞くべき。 なのでユーザーとしては 「ルートにある場合だけApp.Pathの末尾に¥が付く」理由を聞いたり考えたりするのではなく 「ルートにある場合だけApp.Pathの末尾に¥が付く」前提での対策を考えるべきだ。 因みに俺の場合、基本クラス(全てのプロジェクトに組み込む自作クラス)のInitializeで 変数=App.Path if right(変数,1) <> "\" then 変数=変数 & "\" 的な処理をして、 「App.Path」相当のものを「クラス.AppCurrentDir」で、ルートでもそれ以外でも 必ず末尾\有りで取得でき、 「App.Path+App.ExeName+".exe"」相当のものを「クラス.AppFullPath」で ルートでもそれ以外でも正しく取得できるようにしている。 ついでに言うと Shell App.Path+App.ExeName+".exe", vbNormalFocus ではなく Shell App.Path+"\"+App.ExeName+".exe", vbNormalFocus として 「このコードで動くのは自分がドライブルートにある場合だけ」 ではなく 「このコードでは自分がドライブルートにある場合だけ正常に動かない」 と主張するのが普通でしょ。
545 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 15:19:29.38 ] >>544 FileSystemObjectのBuildPath使えよ
546 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 17:49:27.99 ] >>544 >「ルートにある場合だけApp.Pathの末尾に¥が付く」理由を聞いたり考えたりするのではなく 「末尾に\が付く」んじゃなくて、ルート="\"だよ。 C:\abcは、「ドライブC」の「ルートからたどって」「abcというフォルダ」
547 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 18:43:38.85 ] つか、ルートに\がつく理由は、それが仕様だから 最近決まった仕様でもないし、その仕様にどうこう言っても始まらない なぜそういう仕様なのか考察するのは別のスレでやってくれ
548 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 20:17:06.90 ] >>545 君、お馬鹿さん?
549 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 02:18:30.69 ] まあルートがバックスラッシュなのはwinに限らない訳で それを何故と問われても困るわな でもそれで起源を辿ってみるのも面白いかもよ?
550 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 11:30:42.85 ] >>548 お前のわけのわからん俺クラスを使われるのより、BuildPath使った方がよっぽどいいよ
551 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 11:35:18.11 ] >>547 > つか、ルートに\がつく理由は、それが仕様だから まだ、ルートに\が「つく」とか言ってるのかよ。 「つく」んじゃなくて、ルート="\"だってば。
552 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 11:51:20.00 ] C:\A\B 二個目の\はAのルート、BはAのルートの中にある、ってはなしだな?
553 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 12:36:37.23 ] 何言ってるんだろうか
554 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 12:39:28.57 ] ルートは一つ
555 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 12:58:49.26 ] >>552 ルート以外の「\」はパス区切り文字。 ディレクトリ構造の概念を知らないのなら、ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA
556 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 13:19:38.94 ] ディレクトリやパスを扱う場合は、"C:\A\B"のかわりに"C:\A\B\"という入力もValidなので、 いつでもBuildPathを使っといた方がいい。で、どうせFileSystemObjectを使うんだから、FSOの その他のメソッドも積極的に使う方がいい。
557 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 19:00:08.68 ] BuildPathというかFileSystemObjectに拘ってる奴がいるな \つけて\\を\に置換すればいいだけだろ
558 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 19:16:04.18 ] newpath$ =Replace(path1$ & "\" & path2$, "\\", "\") こう?
559 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 19:27:57.73 ] FileSystemObjectのインスタンスあればBuildPath使えばいいし FileSystemObjectを使ってない場面では自前処理で問題ないだろう 場合場合で使いわければおk
560 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 21:02:26.90 ] なんかいかにもVB厨らしいアホな会話w 普通に考えれば>>556 の言ってることが一番まとも。 Win98以前の時代なら躊躇する合理的理由もあったが、いまさらWin9x環境のことを考慮する必要もないだろう。 FileSystemObjectのインスタンスあればって何だよ。 ライブラリ化しとけよそんなの。
561 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 21:58:57.70 ] VB6で正規表現っぽい処理させるにはどうしたらいいの?
562 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 22:13:27.42 ] Microsoft Visual Basic 6.0 で正規表現を使用する方法 support.microsoft.com/kb/818802/ja
563 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 22:47:28.72 ] >>560 FileSystemObject = ライブラリだよ
564 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 23:21:14.75 ] 一方、俺はめんどくさいので最初に専用の変数を用意し、 そこにApp.Pathをぶち込んで末尾の"\"を確認してない場合にその変数に"\"を追加して、 以降はずっとその変数を利用している。後悔はしていない。反省もしていない
565 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 23:29:34.98 ] A:\ B:\
566 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 23:44:03.96 ] >>563 VB厨様には「ライブラリ化する」って表現が通じないことがよく分かった。
567 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 23:47:10.00 ] ライブラリ化するという表現は伝わるけど、どうも >>560 の言うライブラリ化は 違う意味のようだ。
568 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 00:34:30.73 ] いやまあ概念は知っといて損は無いけど 要は意図した形になってりゃ良いんじゃねーの 問題無く動くならそこから先は自己満足の世界だろ 今のスペックなら悪意でも無きゃ差なんて出ない
569 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 01:09:59.38 ] >>557 UNCパスを考慮しない前提に限ればな
570 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 01:26:19.22 ] なんか解ってない奴ばかりだな
571 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 11:03:01.99 ] >>557 > BuildPathというかFileSystemObjectに拘ってる奴がいるな ということにしないと、自己崩壊しちゃうの?
572 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 13:30:35.84 ] >>570 何が?
573 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 01:40:34.47 ] >>566 すでにライブラリになっているものを ライブラリ化する意味はない。 普通にライブラリを使えばいいだけ。
574 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 14:10:36.19 ] >>573 君が作るライブラリには、VBの標準関数しか登場しないんだろうけど、それは君のスタンダードでしか無いよ
575 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 14:42:53.22 ] でもFileSystemObject を再度ラップしてライブラリ化する意味はあんまない気がするね。 使う人によるだろ
576 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 15:01:57.45 ] FSOに限らず、エラーハンドリングの一元化とか、ログ出力の一元化とか、足りない機能の追加とか いろいろあるでしょ。ちなみにFSOに足りないのは、再帰処理。
577 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 12:04:31.43 ] リストビューをリスト表示にしたとき ある文字数(15文字くらい)に行くと 途切れてしまうんですが、 文字数を増やす方法って何か無いですか?
578 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 23:38:15.05 ] >>574 > 君が作るライブラリには、VBの標準関数しか登場しないんだろうけど、それは君のスタンダードでしか無いよ 何を言ってるんだ? FSOを使って新たにライブラリを作る意味が無いだろ。 ライブラリを作る場合は、 既存にはない機能を作るんだよ。 VBの標準関数をライブラリしてどうするんだw
579 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 23:39:01.13 ] >>576 うん、ならFSOに足りない機能をライブラリとして作ればいいわけで、 FSOはそのまま使えばいい。
580 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 23:49:07.65 ] >>578 そういう馬鹿なこと言ってる(もちろん自覚ないんだろうけど)と、 これがVB厨ですって感じでどこかにコピペされちゃうよw しかし、本当にマジで言ってるのかそれ。
581 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 09:30:19.38 ] >>580 反論しろよw だからお前はw
582 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 12:59:09.34 ] 車輪の再開発は必要ないけど 車輪を応用したものを造るか てのは個人の好みだろ クラスにするとかしないとか モジュールにするとかしないとか
583 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 13:05:34.13 ] 話は車輪の再発明じゃないよ 使いやすいキーボードに キーボードカバーをかけるようなもん。 せっかく完成されたものを使わずにラップしてどうする。 世の中に普及しているライブラリってのは一般によく設計された作られているもの。 理由があってこうなっているのに、それをラップしても使いにくくなるだけ。 ラッパーは作るのがかなり難しいんだぞ。 十分に説得できる根拠がなければ、それは単に機能低下させているに過ぎないものになる。 どうせ、ラップして簡単に使えるよ→それじゃこういう場合に使いにくいだろ→拡張するよ→繰り返す→ラップ前と殆ど変わらいよ。になる。 既存のライブラリが使いにくいのなら、ラップするのではなく使いやすくするヘルパーライブラリを作ればいいだけの話。 そうすれば、あるときはヘルパーライブラリで簡易な操作をしながら、それでいてオリジナルの全機能もそのまま使える。
584 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 18:46:40.88 ] 長文なわりにレベルは低いな
585 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 20:39:25.37 ] ほら、またw 反論しろよ。だからお前はw
586 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 20:47:17.06 ] 何がほらか知らんけど、複数の人物を同一人物だと妄想してる馬鹿がいるな。 そんなことはどうでもいいが、さすがにFSOを使用した自作のユーティリティー関数(の集まり) をライブラリーとは言わないだのとか言った話は、馬鹿らしくて話にならない。 反論って、そもそも無知で馬鹿で非常識すぎて話が噛み合ってないのに反論も糞もあるか。
587 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 20:49:25.01 ] じゃあ黙ってろよw 言いたいことがあるから、黙らずレスしたんだろ? なのに、その肝心の言いたいことがかかれてないのだから、馬鹿にされて当然。
588 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 21:25:52.35 ] こういう子が居るからVB使いはバカにされる 特に、「バカほど声がでかい(掲示板では必死な文を書く)」の格言通りの奴が多いから 尚更バカが目立つ
589 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 21:27:05.71 ] で?
590 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 21:27:16.58 ] VBって、VacaBakkaの略ですか?
591 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 21:28:47.88 ] >>588 馬鹿にしてるのはお前だろうと
592 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 22:31:18.60 ] >>586 >ライブラリーとは言わないだのとか言った話 そんなレベルの話してるやついたのか? FSOを使うためのライブラリ作るべきか不要かの話してるやつは結構居たがな まあそんなの環境と要件と個人の趣味で好きにすれば良い話
593 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 00:34:19.51 ] こんな感じ? 'FSOEx.Class Dim mFSO As IWshRuntimeLibrary.FileSystemObject 'フォルダ以下のファイルリストを取得する Public Function GetFileList(strDirPath$, Optional colFileList As Collection = Nothing) As Collection Dim f With mFSO.GetFolder(strDirPath) For Each f In .SubFolders GetFileList f.Path, colFileList Next If colFileList Is Nothing Then Set colFileList = New Collection For Each f In .Files colFileList.Add f Next End With Set GetFileList = colFileList End Function Public Property Get FSO() As IWshRuntimeLibrary.FileSystemObject Set FSO = mFSO End Property Private Sub Class_Initialize() Set mFSO = New IWshRuntimeLibrary.FileSystemObject End Sub
594 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 00:55:08.72 ] IWshRuntimeLibrary.FileSystemObjectのインスタンスをScripting.FileSystemObjectの変数へ代入
595 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 01:52:14.94 ] FileSystemObjectのインスタンスは状態を持ってないので 「どこからかデータを書き換えられる」ことがないので いちいち生成する必要はありませせん。 つまり、標準モジュールにPublic FSO as new FileSystemObjectと書けばいい。
596 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:07:26.29 ] Set FSO = Nothing
597 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:08:39.04 ] newで宣言してるからFSOにNothing入れてもFSO呼び出されるときインスタンス生成される
598 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:12:06.75 ] こうか 'FSOEx.bas Public FSO As New FileSystemObject 'フォルダ以下のファイルリストを取得する Public Function GetFileList(strDirPath$, Optional colFileList As Collection = Nothing) As Collection Dim f With mFSO.GetFolder(strDirPath) For Each f In .SubFolders GetFileList f.Path, colFileList Next If colFileList Is Nothing Then Set colFileList = New Collection For Each f In .Files colFileList.Add f Next End With Set GetFileList = colFileList End Function
599 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:12:23.35 ] >>596 そこまで防ぎたいのなら 標準モジュールにperoperty getを 書けばいいだけなんだけどね。 やる意味が無いから俺はやらないけどw
600 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:17:14.23 ] DimでNewをつけてるから>>596 のコードがどこに入ろうとも効果無しだよ
601 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:18:08.82 ] >>598 mFSOをFSOに直さないとエラーでるよ
602 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 05:06:51.09 ] えーとFSOをそこまでしなきゃならない理由を是非
603 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 05:20:42.96 ] そこまでって何かすごいことをやってるのか?
604 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 10:49:29.82 ] VB6って今SP6だけ入れれば最新の状態ですか? その後に、何か不具合や脆弱性のあるものの修正パッチとかありましたか?
605 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 10:50:43.28 ] あ、言い訳にはならないかもしれませんけど、 まだ中学生でVBもまだほとんど分からないのです。 よろしくお願いします。
606 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 11:25:29.17 ] 俺が中学生のころはアセンブリとBASICが バリバリ使えたが。これだからゆとりは。
607 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 13:06:03.47 ] それはあなたが特殊なのでは
608 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 13:24:31.93 ] それはあなたが特殊隊員なのでは
609 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 13:51:40.50 ] >>606 おもちゃをバラしたのはいいが、元に戻せなくなってしまった的な アセンブリですか?
610 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 15:39:12.99 ] 特殊じゃねーよ。少なくともパソコン部のもんは みんなできたし。
611 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 16:33:06.63 ] なんかわざとらしい会話が繰り広げられているなぁw 何が目的か。
612 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 16:37:24.56 ] ここに棲んでる奴らの回答なんか当てにならんだろ MSに問い合わせろ
613 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 16:39:29.15 ] >>604 ここに棲んでる奴らの回答なんか当てにならんだろ MSに問い合わせろ
614 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 18:31:14.08 ] VBで作ったアプリにVBS(ActiveScript)のマクロを搭載するにはどうしたらいいの? ActiveX.exeにすれば、VBS側からVBアプリを呼んで、VBアプリ内の関数が返した値をVBS側で取得できるが 逆にVBアプリ側からVBSを呼んで、VBS内の関数が返した値をVBアプリ側で取得したい VBSをWSCにすれば素で出来るけど、WSCはxmlで定義を書かなければならず使いにくいのでVBSが使えるようにしたい 実際、VBSやJSのマクロを組み込んだアプリは存在しているので間違いなく可能なはずだけど 検索してもVB6とExcelなどのOfficeアプリマクロの連携の話とかばかりで目当ての記事が見つからず・・・・・ VB6-SP6、WinXP-SP3です
615 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 20:37:36.83 ] >>613 604です。 すみません、MSもなんか問い合わせ先が沢山あったり、 上手く伝えられないので、知っている人いたらなんとか 教えてもらえませんでしょうか。
616 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 22:19:04.11 ] >>615 俺の知ってる範囲ではこの2つ Microsoft Visual Basic 6.0 Service Pack 6 セキュリティ ロールアップ更新プログラム ttp://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=e27eebcb-095d-43ec-a19e-4a46e591715c&DisplayLang=ja Microsoft Visual Basic 6.0 Service Pack 6 累積的な更新プログラム ttp://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=cb824e35-0403-45c4-9e41-459f0eb89e36&DisplayLang=ja
617 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 11:49:57.26 ] >>614 「VBで作ったアプリにVBS(ActiveScript)のマクロを搭載する」って具体的にはどういうこと?
618 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 17:01:28.39 ] コンポーネントの追加でMicrosoft Script Control (msscript.ocx) を追加して頑張れ Private Sub Command1_Click() ScriptControl1.Eval "Msgbox(""hoge"")" End Sub
619 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 17:36:07.13 ] NS Basic www.nsbasic.com/app/ 元々はPalm用のBasic言語の開発環境だったみたいだけど、これってどうなの? サイトではモバイルデバイス向けのVBだとホザいてるけどw 一応Visual Basicのサブセットとも謳ってる。
620 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 20:42:17.59 ] >>616 ありがとうございました!
621 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 01:06:36.96 ] なんでもかんでもサブセットだなぁ
622 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 01:32:14.03 ] >>619 VBって商標?
623 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 07:57:31.56 ] >>619 それ元々Palmの開発環境だった筈。 その頃もVBユーザーを標的にしてたと思う。
624 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 14:38:16.12 ] >>619 もともとPalm用の開発環境だったんだっけな
625 名前:デフォルトの名無しさん mailto:sage [2011/09/16(金) 09:14:21.14 ] windowsメッセージキューをクリアしたいんですが どうやったらいいでしょうか? クリックイベントを除去したいのです。
626 名前:デフォルトの名無しさん mailto:sage [2011/09/16(金) 09:50:40.08 ] すみません。除去できました。
627 名前:デフォルトの名無しさん mailto:sage [2011/09/18(日) 06:19:00.37 ] Windows 8 Developer Previewに VB6インストール
628 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 16:47:55.65 ] WindowsXPにVB6をインストールとVB6のSP6もインストールしたんだけどさ インストーラーがwindows\system32フォルダにいろいろとファイルコピーしてたけどさ あれってちゃんとバージョンチェックしながらコピーしてるんだろうか XPにもともとあるファイルでこの古いVB6のより新しいファイルを上書きしちゃったりしてないだろうか してたらどんなトラブルの原因になるかわからん 怖いな
629 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 18:30:24.25 ] 気にするとハゲるぞ
630 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 20:04:15.07 ] インストール前の物と後のものを比較すればいいじゃないか。 でも、dllって問答無用で上書きじゃなかったっけか?
631 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 12:20:47.13 ] 質問させていただきます。 プロシージャの引数ですが、オブジェクト型であっても、値渡しできますよね? Public Sub hogehoge( ByVal obj As Foo) のように。 この引数で渡されたobjというのは、コピーしたものが渡されるのでしょうか?
632 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 21:34:20.05 ] ByValとByRefの比較テスト用プロシージャ作って試してみれば
633 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 23:20:44.61 ] >>632 値渡し出来るけど、コピーしたものが渡されるけど、 何がコピーされたかが重要。 Dim obj as object set obj = new Form1 call hogehoge(obj) って書いた時、 objはForm1の実体(インスタンス)を参照する為の4バイト(多分)しか持ちません。 hogehogeを呼ぶ際、その4バイトのアドレス情報がコピーされ渡されます。 なので、ByValだからってフォームが2つになるような事はありません。
634 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 23:21:29.64 ] 訂正 誤)>>632 正)>>631
635 名前:デフォルトの名無しさん mailto:sage [2011/09/24(土) 01:01:27.88 ] こんな感じで検証でもしてみればヨロシ Public obj2 As Foo Public Sub hogehogeV(ByVal obj As Foo) MsgBox obj Is obj2 obj.value = 100 Set obj = New Foo obj.value = 200 End Sub Public Sub hogehogeR(ByRef obj As Foo) MsgBox obj Is obj2 obj.value = 100 Set obj = New Foo obj.value = 200 End Sub Dim obj As Foo Set obj = New Foo Set obj2 = obj obj.value = 0 Call hogehogeV(obj) MsgBox obj.value MsgBox obj Is obj2 Set obj = New Foo Set obj2 = obj obj.value = 0 Call hogehogeR(obj) MsgBox obj.value MsgBox obj Is obj2
636 名前:デフォルトの名無しさん mailto:sage [2011/09/24(土) 01:57:39.24 ] オブジェクト変数はオブジェクト参照のアドレス値が格納されている変数で 引数でByValで渡すとオブジェクト変数に格納されている値であるアドレス値のコピーが渡されるのであってオブジェクトのコピーが渡されるわけではない 一方ByRefだとオブジェクト変数が参照しているオブジェクトじゃなくて、オブジェクト変数自体への参照が渡される
637 名前:デフォルトの名無しさん [2011/10/02(日) 00:37:19.04 ] ご教授下さい。 AUTOCADというCADソフトのVBAで、コマンドをいろいろ作っているのですが、 コマンド実行中、他のアイコンが選択された場合にだけ Unload Me で終了したい のですが、他のアイコンが選択されたというイベントを知るにはどうしたらいいのでしょうか?
638 名前:デフォルトの名無しさん [2011/10/02(日) 00:38:53.94 ] 配列の先頭インデックスは0だ。 この常識が通じないバカな言語が一匹居る。 それがVB
639 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 00:58:06.83 ] alt+タブでウインド選択する機能をデザインしたヤツバカだろうね。 同じアイコンがならんでて選ぶたびに順番変わるし 普通あの機能使うのは順番に列挙したいからだろ? なんで選ぶたびにどれをえらんで、どれがまだ試してないのかわからないまま 闇雲に操作してんだよ 何年も何年も。 ばかじゃん。
640 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 01:17:08.22 ] >>639 突然なんだ? 誤爆か? ちなみに、ちゃんと「アクティブになった順」っていう「順番」になってるじゃん。
641 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 02:44:14.86 ] あ
642 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 05:36:15.67 ] 普通とか言って普通だった試しが無い法則 使い道間違えたまま何を 闇雲に操作してんだよ 何年も何年も。 ばかじゃん。
643 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 05:50:35.09 ] またバカが
644 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 12:35:27.16 ] ちょっと何言ってるのかわからないですねー
645 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 08:11:01.98 ] 複数のファイルを選択またはドラッグドロップして、ある文字列を別のファイルに検索して、書き出したいです。 複数のファイルの参照ができないので、教えてください。 別のファイルの書き出しはできました。
646 名前:デフォルトの名無しさん [2011/10/07(金) 13:57:58.06 ] エクスプローラからドラッグするの またはリストボックスのセレクテッドを拡張して複数せんたくするの あるもじれるを別のファイルにけんさくってちかんのことをいってるのだろうか
647 名前:デフォルトの名無しさん mailto:sage [2011/10/07(金) 20:40:39.41 ] おさわりまんこのひとです
648 名前:デフォルトの名無しさん mailto:sage [2011/10/07(金) 23:18:58.20 ] >>645 www.geocities.co.jp/siliconvalley/4805/vbtips/vbtips003.htm
649 名前:デフォルトの名無しさん [2011/10/08(土) 12:11:49.33 ] >>637 他のあいこんとはどkのあいこんでしょか ですくとっぷのあいこんなら自身がふぉあぐらんどにないことをたいまでみればいいかもー (かなりいいかげん
650 名前:デフォルトの名無しさん [2011/10/09(日) 20:10:14.17 ] >>649 >他のあいこんとはどkのあいこんでしょか 同じアプリケーション内のアイコンなのです。
651 名前:デフォルトの名無しさん [2011/10/10(月) 14:23:40.79 ] 何で作ってるアイコンでしょうか ImageならImage_Click、PictureBoxならPictuteBox_Click、ButtonならButton_Clickでいいじゃないですか そこにUnload Meと書けば
652 名前:デフォルトの名無しさん [2011/10/18(火) 21:52:09.27 ] クラスモジュールでEnumWindow関数を使いたい場合 AddressOfが使えないのですが 関数へのポインタを取得する方法がなく困っています XPSP3でEXCEL2000のVBAで作成していますが 実現したい事はあるWindowと同じプロセスの Windowがあった場合にWindowTitleによって 異なるMessageを送信する。です 元のWindowはデータ転送アプリで 進捗が進むと不定期にダイアログが表示され 都度進捗が止まるので自動でダイアログに Messageを送り進捗を進めたいのです
653 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 22:56:51.42 ] >>652 なら標準モジュール使えばいいだけでは? 何が聞きたいのかよくわからんよ
654 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 15:05:39.99 ] VBScriptについて質問をさせてください 【やりたい事】 1.InternetExoirerで表示されたホームページからデータを取得したい 2.取得したデータの検索結果を自動で入力したい 取得したい部分はサンプル↓の あいうえお! かきくけこ という部分です <form action="/hogehoge" method="post"> あいうえお! かきくけこ<br> <input type='submit' name='aaaa value='1' accesskey='1'> <input type='submit' name='aaaa' value='2' accesskey='2'> <input type='submit' name='aaaa value='3' accesskey='3'> <input type='submit' name='aaaa value='4' accesskey='4'> <input type="hidden" name="mode" value="start"> <input type="hidden" name="ccc" value="2222222222"> <input type="hidden" name="ddd" value="1111111111"> </form> この部分を取得して、予め作成しているスクリプトの検索にかけて 検索結果によってsubmitで1〜4のいずれかを入力する、というスクリプトを作成したいのです 検索部分について、データを取得できたと仮定してソースはできました 検索元となるhtmlからの取得と、sendkeyの部分がよくわかりません 調べてみましたが、お手上げ状態です どなたか宜しくお願いします
655 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 15:37:50.53 ] 素人はそういうことしないの
656 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 01:26:56.33 ] 俺は8年前までVB6のプログラマーだったが転職して excel のvbaやsqlでツール作るのが殆んど、、、 最近、処理速度が必要なツール作成にvb.netを使おうと思ってるがどうかね?
657 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 04:54:45.77 ] そういう高度な要求が来たら ちゃんとしたシステム作りましょうよと あとツールで処理速度が変わる訳じゃ無い 大事なのは設計と作り方、そしてマシンのスペックだ
658 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 08:21:40.09 ] >>656 論外。 高速化したいなら設計レベルで対応したほうが効果が高い。 ツールを選ぶのは、それだけでは補えない場合の話だが、 VB.NETは高速なソフトウェアを作るには向かない言語。
659 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 10:34:02.59 ] >>658 ベンチマークしてから言えよw
660 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 14:14:50.66 ] >>655 同意 >>654 「CreateObject InternetExplorer」「document.forms」でググれ
661 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 01:44:18.05 ] 新しいのはみんなそうだけど、誰でも比較的簡単に一定のレベルと品質で ってー方向で作られてるから特に.netだから早いってもんじゃ無いよ ツール選択って開発効率をどうこうっていう話だろ 速さで言ったらネイティブが一番早いのが当然なんだから。
662 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 01:45:37.11 ] .netは実行時はネイティブで動いてるんだってばw 机上の空論言う前に、ベンチマークしろ。
663 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 02:11:15.29 ] .netが遅いんじゃなくてwinformsが遅いんだよね
664 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 03:05:01.57 ] 何とくらべて早いとか遅いとか、向いてるとか向いてないとか言ってるんだ
665 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 23:17:54.89 ] 比較対象なんて無くても絶対的に遅い物は遅い。 お前は野垂れ死無ければ、裕福だと思うのか?
666 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 23:35:33.62 ] >>665 比較対象のない絶対的評価で早いも遅いもない。たんに絶対的な評価がそこにあるだけだ 技術論を主観で語られても困る お前の例だと、野垂れ死にするやつは、野垂れ死にしないやつより裕福じゃない。それが客観的事実 それを本人がどう思うかは主観問題
667 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 23:36:00.91 ] というか>>656 がどんな事したいのかによるよな Excelのデータをセルをグリグリ読んで回してるとかだったらDB使えよって話しだし いやそんな事はとっくにやってて単純にスピード上げたいってんなら.net化も有りだし バッチ化してデータ整形だけは夜にやっとくとかまあ色々有るじゃん 処理速度上げたい処理とやらを具体的に書いてくれなきゃなんとも言えん
668 名前:のぞみ ◆fv9SHj5ibk [2011/11/01(火) 20:31:40.22 ] ちょっと質問です 最近VB弄り始めてばかりです 前は日本語プラグry やってたんですけど まァ本題へ パスワードをかけて そのパスワードが違ったら違いますという 成功していたら 成功していますという処理にするにはどうすればいいんですか? Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load (Name).Enabled = False End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If TextBox1.Text = "nozomi" Then MsgBox("認証成功") (Name).Enabled = True Else MsgBox("違います") End If End Sub と打ったんですが (Name).Enabled = False ~ ってでてくるんですけど 何がおかしいんですか?
669 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 20:39:33.35 ] 頭がおかしい
670 名前:のぞみ ◆fv9SHj5ibk [2011/11/01(火) 20:43:30.66 ] わからないならわからないでいいですよ
671 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 20:55:34.09 ] 【知っているが…】 「 ̄ `ヽ、 ______ L -‐ '´  ̄ `ヽ- 、 〉 / ヽ\ / // / / ヽヽ ヽ〈 ヽ、レ! { ム-t ハ li 、 i i }ト、 ハN | lヽ八l ヽjハVヽ、i j/ l ! /ハ. l ヽk== , r= 、ノルl lL」 ヽN、ハ l ┌‐┐ ゙l ノl l ヽトjヽ、 ヽ_ノ ノ//レ′ r777777777tノ` ー r ´フ/′ j´ニゝ l|ヽ _/`\ 〈 ‐ 知ってるが lト、 / 〃ゝ、 〈、ネ.. .lF V=="/ イl. ト |お前の態度が とニヽ二/ l ヽ.|l 〈ー- ! `ヽ. l |l気に入らない lトニ、_ノ ヾ、! |l__________l| \ ソ
672 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 20:56:34.61 ] スレのタイトルと1をもう1度よく読みましょう
673 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 20:57:49.14 ] >>668 VB6なら多少わかるけど 見たことない文法だからVB6以前のものなのかな? それともVBSとかいうやつなのかな?
674 名前:のぞみ ◆fv9SHj5ibk [2011/11/01(火) 21:02:00.63 ] あァ悪い間違えた Visual Basic 2010だお パスワードを入れる前はFrom?の有効はオフでパスワード認証成功したら Fromの有効をオンにする方法はどうやるのですか?
675 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 21:07:17.34 ] VB2010ってここのスレが該当なの?
676 名前:のぞみ ◆fv9SHj5ibk [2011/11/01(火) 21:18:41.50 ] >>675 何処に行けばいいのですか?
677 名前:デフォルトの名無しさん [2011/11/01(火) 21:22:16.19 ] >>676 >>1 Google www.google.co.jp/ ※「まず自分で調べる」クセを身につけよう。
678 名前:デフォルトの名無しさん [2011/11/01(火) 21:44:49.22 ] >>676 VB2010はVB.NET VB.NET質問スレ(Part37) hibari.2ch.net/test/read.cgi/tech/1317448996/l200
679 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 21:46:46.92 ] >>1 のテンプレにさ 対象外のVBのバージョンも列挙しようよ あまりにも.NETのやつら来すぎ
680 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 22:04:43.72 ] タイトルを読まない人が、ましてテンプレ読むとは思えませんが。 そういうの無駄な努力って言うんだよ。 そもそも、テンプレなんて、言っちゃ何だけど書いてる奴の自己満足。 EULAみたいに読まれなくても書いてあることに法的な意味があるわけじゃないんだから。
681 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 23:19:44.99 ] テンプレ書いてあるだろで済ませる為のもんだろ 何も書いてなけりゃいちいち説明せにゃならん
682 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 00:07:05.89 ] 済ませるって何を済ませるんだよ。 あんたの気が済むかどうかってこと? ああそうですかw VBスレらしい知的な会話だな
683 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 00:50:34.99 ] >>682 VBは関係ない。VBのせいにするな。 単にお前が馬鹿なだけだ。
684 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 11:06:53.58 ] VBで電卓作って、動きは完成したんだけど メニューバーの表示を押したら、ラベルの計算した数式が表示されるようにしたいんだけど どうしたらいい? メニューエディタで表示ってやつは作れた
685 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 18:04:33.77 ] >>684 もうちょっと正確な日本語で頼む
686 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 00:24:34.71 ] >>685 www.asmix.co.jp/product/desk-goods/dg009/c1222c1221c1201.html こんな感じの計算式をメニューバーの表示を押したら、表示されるようにしたいんだ
687 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 00:58:51.80 ] あまり関わりたくない臭いはするが… 表示したい計算式は文字列として存在してるの? 計算結果は自力で計算するの? ボタンを押して、それぞれのラベルにそれぞれの文字列を代入するだけの話?
688 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 03:13:04.01 ] >>687 どうもすみません ボタンを押してラベルに計算結果を表示させてるんですが 例えば1+2=3って押したらラベルには3って表示されてるんだけど その答えの計算式である1+2=3をメニューバーの表示に表示させたいんです
689 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 04:37:41.65 ] メニューのcaptionのの値を変更とかそんな話題なの?
690 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 06:41:17.71 ] >>688 Label1.Caption = 表示したい計算式
691 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 09:03:11.83 ] >>687 日本語よめる?
692 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 09:20:33.01 ] VB6なのですが。 csv読み込み→リッチテキストボックスに表示→ 必要な情報を検索(find)→テキストボックスに表示 というものを作りました。 csvの内容は品番、ロット、その他情報が1行ずつ入力されています。 リッチテキストボックス+findを使ったやり方で以下の問題にぶつかっています。 ・リッチテキストボックスに情報を全て読み込ませないと検索できない(情報が多い) ・リッチテキストボックスが狭くて、行が折れていると複数行としてカウントされる。 ・列毎に検索対象を絞れない(その他情報に品番が書かれていると対象になる) 初めて作ったプログラムなので根本的な所から間違っている気がするのですが こういった情報を検索する場合、どういった方法が良いのでしょうか? 一から作り直す覚悟はあるのですが、必要なキーワードが思いつかず MSDNやgoogleでの検索にも行き詰っています。 どうかお助けを。
693 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 14:10:32.04 ] リッチテキストを使わなければ解決するよね?
694 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 14:44:54.41 ] >>693 すみません、openで開いたファイルというのは リッチテキスト等で表示させなくても 読み込んだデータを検索したりすることが出来るということでしょうか?
695 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 15:30:05.28 ] csvの内容を読み込んでその読み込んだデータをそのままテキストとしてユーザに見せる必要はあるの? 全てのデータを見せる必要がないなら、csvを変数に読ませておいてその変数の中を検索したら? findっていうのが俺は使ったことないからどんなのか分からないけど・・・ で、変数の中を検索して見つけたところを別の変数に部分的に書き出すなり何なりして 表示用のテキストボックスでも用意してそこに表示するとか
696 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 16:08:21.44 ] >>690 それだったらラベルに計算式が表示されませんか? ラベルには答えを表示したままで、表示エディタにその答えの計算式を表示させたいのです 計算式というのは電卓なので動的で、必ず決まった計算式というわけではありません 繰り返しになりますが、>>686 のような計算式を表示エディタに表示したいです すみませんが、よろしくお願いいたします
697 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 16:27:08.77 ] >>695 >csvの内容を読み込んでその読み込んだデータをそのままテキストとしてユーザに見せる必要はあるの? ないです。Findで検索するために表示してます。 >変数の中を検索して見つけたところを別の変数に部分的に書き出すなり何なりして 変数の中を検索するとは、Instrを使用するということでしょうか?
698 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 16:35:02.12 ] >>697 そんなレベルの人がそんなもの今更VB6などでやる必要あるの? 他の言語やソフトを覚えた方がいいよ、会社でVB6しか使ってはダメでもないかぎり
699 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 17:47:14.34 ] >会社でVB6しか使ってはダメでもないかぎり まさにそのとおりの状況です。
700 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 17:58:53.69 ] じゃあ仕方がないな 会社にVB6の入門書やVB6が使える人がいるだろう、じっくり勉強してください
701 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 18:10:44.36 ] >>696 表示エディタ.Caption = 表示エディタ.Caption & 押したキー.Caption
702 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 18:16:20.62 ] 電卓のほう書いてみた ll.la/a5+~ キーワード vbpart56 やりたいのはこういう事?
703 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 19:46:36.79 ] >>702 どうもわざわざありがとうございます 動きはこういうことですね ソースは>>701 のような感じなんでしょうか? >>701 もありがとうございます
704 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 20:36:00.93 ] >>699 今すぐ離職を考えたほうが良い。 技術者として使い物にならなくされる前に。
705 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 21:03:19.98 ] >>703 入力はただのテキストボックス メニューを押すとテキストボックスの式を計算して その結果をラベルに代入しているだけ
706 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 21:53:06.54 ] >>705 なるほど どうもありがとうございました! ちょっとやってみます
707 名前:デフォルトの名無しさん [2011/11/07(月) 12:04:47.18 ] 実行って、ビルドしてからしかできませんか?
708 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 17:06:39.62 ] >>699 リッチテキストでのプログラムが出来たなら type,get辺りでググれば出来ると思うよ。
709 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 21:47:48.66 ] >>708 ありがとうございました。 簡易的なものは組めましたので 何とかなりそうです。
710 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 00:59:20.93 ] でも今からVB6てのはお勧めしないよいや割と本当に 現状でも保障なんて無いしな。 Officeなら2010でもまだVBA生き残ってるから大丈夫だろうけど
711 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 06:14:48.16 ] >>708 どうにか作ることが出来ました。 本当にありがとうございました。
712 名前:デフォルトの名無しさん [2011/11/09(水) 16:48:23.22 ] 710はキモい文章をお書きになりますね
713 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 20:46:04.15 ] 仕事で困ってる人間へのアドバイスが "お勧めしない"ってのは無理な話だよな。
714 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 21:17:38.00 ] UNICODEがまともに使えないって時点で終わってるし 仕事でプログラムやってるならVB6だけで食えるという人なんてもういないだろうからどうでもいい話だわな 今の時期に入門としてVB6を指定したのなら鬼畜かそいつを辞めさせたいかどちらかだろう
715 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 00:49:38.96 ] FA制御系だとVB6の方が都合良かったりする。
716 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 16:18:48.15 ] FA制御って何でやるの?
717 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 20:55:27.36 ] >>715 ガベコレの都合だよな?
718 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 10:42:29.04 ] >>716 IOやGPIBボードで。こういうことを聞いてる? ttp://www.interface.co.jp/io/index.asp メカ自体はPLC(シーケンサー)での制御だけど大量のデータ演算なんかはPCを使う。 最新環境はマイクロソフトやプログラマーの都合だけであって、エンドユーザーからすれば 新規装置でも過去装置との互換を保つ方が何かと都合がいい。 >>699 はそういう環境なんじゃないかと思う。 俺なんかもWin95〜XPまではVB6も使ってるけどね。需要は多いよ。
719 名前:デフォルトの名無しさん [2011/11/21(月) 02:40:22.80 ] >>714 VBでUNICODEがまともに扱えないとは 例えばどんな状況でしょう? VBはUNICODEが基本でしゅが
720 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 15:04:08.78 ] VB6のコントロールでUNICODEにまともに対応しているやつってあるのかな
721 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 20:36:04.41 ] UIが対応してないんだよね
722 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 21:50:41.81 ] 古いソフトをVB6で更新する仕事を受けたんだが、 テキストファイルをバイトサイズで分割して〜 というような仕組みだったので UNICODEにしてしまうVB6ではちょっとめんどくさい事になった。
723 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 22:01:41.15 ] そういう仕事を請け負う会社が無くならない限り VB6は不滅です
724 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 22:50:02.47 ] byte区切りならテキスト形式で開かなければいいし 改行で分割するならバイナリで開けばいいし 2バイト文字区切りならバイナリで区切って文字コードで判断すればいいし VB6のせいなのかねぇ
725 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 09:23:02.67 ] 2バイト文字の途中で区切ってもいいのか? だとすると、もはやテキストではないので バイナリファイルとして考えれ
726 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 10:56:10.77 ] 単に、固定長テキスト形式ってヤツだと思うが・・
727 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 20:05:54.86 ] それが単に固定長でもないのよ。 AパートとBパートがあるとして、 確かにAパートもBパートも固定長だが、Bパートは1〜複数存在する。 改行は無い。 AパートもBパートもそれぞれさらに細かく分割される。 バイナリで読む方法はもちろん試したが、文字化けが生じてしまった。 最終的には、ADODB.streamの文字コード変換を使って解決した。
728 名前:デフォルトの名無しさん [2011/12/07(水) 12:55:30.21 ] Ethernet-シリアルコンバーターを接続した装置への通信プログラムを作成しようとしています。 シリアル通信プログラムは ttp://www.picfun.com/serial00.html 等のサイトで基本的なコードは書けたのですが、Ethernetを経ているのでどのように装置にアクセスしたら良いのかわかりません。 ルータ(192.168.1.1) ┣制御PC((192.168.1.2) ┗Ethernet-シリアルコンバンーター((192.168.1.3)━(RS-232C)装置 環境:Visual Basic 2008 Express Edition よろしくお願いします。
729 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 13:06:59.23 ] >>728 dobon.net/vb/dotnet/internet/tcpclientserver.html この辺をみて
730 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 13:12:21.82 ] >>728 仮想COMポートはないの?
731 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 13:17:54.26 ] Visual Basic 2008 ってありなのか?このスレ。
732 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 13:27:40.57 ] 無しですよ?
733 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 13:28:53.15 ] Ethernet-シリアルコンバンーターというのが どこのメーカーのなんと言う製品なのかによるな
734 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 23:10:11.38 ] VB6のIDEでタブを入力するとスペースに変換されてしまうんだけど これはどこで設定したら良い?
735 名前:デフォルトの名無しさん [2011/12/07(水) 23:27:05.55 ] 728です。 Ethernet-シリアルコンバンーターは、CONTECのRP-COM(FIT)H-AFです。 www3.contec.co.jp/B2B/ConIWCatProductPage_B2B.process?Merchant_Id=1&Section_Id=54&Catalog_Id=54&Product_Id=1528 当機は、仮想ポートには対応しております。
736 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 23:49:48.95 ] じゃあ解決だね
737 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 23:51:42.93 ] >>735 マニュアルとドライバぐらいダウンロードしないよ。 制御PCに仮想COMドライバをインストールすればよい。 後は普通のCOMポートと同じように使用できる。 もしくは、もう一台シリアルコンバーターを買ってきて、 制御PCのCOMポートに接続してあげればよい。 もし制御PCからUDPを使って装置を制御する事を期待しているなら、 装置のファームウェアを変更して、RP-COM(FIT)H-AFの専用コマンドに 対応するように作りかえる必要がある。 ただし、この手のハードウェアは制御線の動作に癖があるので、 CS/RSやCTS/RTSを変わった使い方してるとまともに動かない事もある。
738 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 00:00:45.20 ] >>734 ない。
739 名前:デフォルトの名無しさん [2011/12/08(木) 01:36:46.69 ] 728です。 大変参考になりました。 ありがとうございました。
740 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 09:43:50.99 ] VBの総合スレみたいのはないのかな。 コードは出来てる(と思う)んだけど、今VBが使えない環境なもんで、 誰か代わりに実行してULし直して貰えたりしませんか? www1.axfc.net/uploader/Sc/so/298858.zip 同梱ファイルのバイナリを書き換えるだけの物なんだけど、手動じゃちょっと膨大で。
741 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 10:50:53.13 ] その程度の内容ならVBじゃなくてもベクターなどから適当なBasicなり他の言語でもひろって作ればええやん
742 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 12:00:51.92 ] >>727 >文字化けが生じてしまった あたりまえだ。 固定バイトで区切るんだから、2バイト文字の間で区切ったら 文字と対応しないバイト列になるんだから 表示できない。 文字コード変換してとか解決したように見えただけだろ。 もし表示できてるなら、指定バイトで区切られてないはず。 表示したものをもう一度書き出すプログラムなんて世に送り出さないでくれ。
743 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 12:23:58.60 ] >最終的には、ADODB.streamの文字コード変換を使って解決した。 2バイト文字を切ったとかじゃなくて、そもそも違う文字コードのを データを表示しようとして化けただけじゃないか シフトJIS固定長で文字が境界またぐなら、格納時に考慮しとくべき問題だが
744 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 12:38:34.22 ] >>741 すみません、スマホしかないもので。 ダメもとで、とりあえずあちこち見ながら書いてはみたものの。 でもそれ程基礎的な物ならスマホ上でも動くアプリあるかもしれないですね。 もう少し勉強し直してみます、ありがとうございました。
745 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 13:04:46.33 ] スマホで動くものをVBで作れと?
746 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 13:06:52.79 ] Androidのアプリなら作れるけど
747 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 14:17:19.97 ] VB6でやろうとするのはどんな苦行だろう
748 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 20:07:09.17 ] Windows Mobileと呼ばれる前のPocket PC 2003で動くeVB3用アプリなら作れるけど
749 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 21:21:16.25 ] 俺はeVC3なら作れる
750 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 01:46:41.86 ] いわゆる趣味でプログラミングとかしてんだけど ちょっとした作業ツールとか作るの慣れたVB6が楽すぎて未だにVB6から離れられない
751 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 03:19:45.10 ] すごく初歩的な質問なんだけど、インスタンスの生成方法がさっぱり分からんorz Dim btn As CommandButton ' コンパイル通るし、実行してもエラー起きない Dim btnA As New CommandButton ' New キーワードの使い方がだめ とエラーが出る Set btn = New CommandButton ' 同上 Dim a As New Class1 'Class1は何も書いてない適当なクラスモジュール。 問題ない。 おそらく、CommandButtonは抽象クラスだから生成出来ないのかな?と考えてはいるんですが エラーメッセージが変だし、Class1でコンストラクタなど定義してないにもかかわらず、生成出来る不思議。 そして、ネット上で探してもノイズ(VB.NET)が多すぎてよく分からんorz
752 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 03:42:06.27 ] あと、変数の宣言を強制する方法は分かったけど、 (デフォルトで入れておけよ…デフォルトで入ってないから未定義の変数を読み出す様なひどいソースを引き継ぐことになったorz) 型変換、キャストも強制するオプションはどうすれば? あと、誰かLongのリテラルの書き方教えてくれ、 Dim j As Long j = &HFFFF MsgBox(j) ' -1 !? MsgBox(&H10000 - 1) ' 65535 とりあえず Const H0xFFFF = &H1FFFF - &H10000 Const H0x8000 = &H18000 - &H10000 というようなのを定義してごまかしてるけど。 とりあえず、この入門書(笑)は風呂の焚き物にしかならんな…
753 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 05:08:55.90 ] 私こと初心者が適当な風に回答します >>751 CommandButtonなどのコントロールは、たしかNewでインスタンスは生成できないとか 「VB6 動的 コントロール」でググるとコントロールの動的追加について記載サイト出てくるかも >>752 こゆこと? Dim a As Long, b As Integer, c As Single, d As Double ↓ Dim a&, b%, c!, d# a = 100& (Long型) b = 100% (Integer型) c = 100! (Single型) d = 100# (Double型) オプションは分からないけどキャストは CInt() CLng() CSng() CDbl() とかそういう関数あるよ
754 名前:753 mailto:sage [2011/12/09(金) 05:10:49.37 ] 勘違いしてたり間違ってたりしてたらごめんなさいね
755 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 07:12:29.84 ] >>751 UI部品のインスタンスを動的に作成する場合にはいくつか制限がある。 フォーム上にボタンを張り付けて、Indexに0と指定しておく。 でもってコントロール配列に対して「Load Button1(1)」とすれば、 インスタンスを生成できる。
756 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 07:27:23.06 ] >>742 答えは>>743 。VB6が勝手にUNICODEにしてしまうところでそうなった。 境界またぎはさせてないよ。
757 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 08:17:21.17 ] 配列にしなくても動的作成できるなんて始めてしった 7ujm.net/VB/VB6Controls.html
758 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 09:26:32.58 ] 配列でロードする方法ならIndex 0のプロパティがほとんどコピーされるから 実行時に型を変える(TextBoxに入力したコントロール名のを作成)とかで ない限り、配列ロードでいいんじゃないの。
759 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 09:28:04.83 ] えー ださいよー
760 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 15:15:33.32 ] New使ってるからLoadでのコピーは用途違うんじゃねの?知らんけど
761 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 16:24:09.53 ] >>753 ああ、なるほど、ケツにつけるから併用出来るのか MsgBox(&HFFFF&)ででけた 自動でキャストされることになれてないから、キャストを明示的に指定しなきゃいけない様に設定できたら VB初心者のおいらでも安心してくめるかなと。そうした方が後継者もあんまり混乱しなくてすむし。 >>755-760 thx。要素数に応じて、コントロールを並べることを考えてたからコントロール配列で良さそうだわ。 コントロール配列使えばたぶん必要ないことだと思うけど、 VB6にはまだ匿名関数でクロージャをやったりとか出来ないよね?(確認) コールバックとか難しそうだな…AddressOfで取得したのを直接実行できないのかよ。
762 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 16:33:10.59 ] AddressOfは外部APIに渡すときしか使えなかったような
763 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 17:08:05.52 ] 何言ってるのかさっぱりわからん
764 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 18:31:41.95 ] >>763 いやさ、おまえらみたいになれてる奴には気にならんかもしれんけど d.hatena.ne.jp/snaka72/20100126/1264514893 ここに書いてあるようにCallByNameっていうevalっぽいものじゃなくて Sub hoge(callback as Method) callback() End Sub hoge(AddressOf(foonction)) みたいに出来るもんだと思っててさ。まあ、セキュリティ的に直接関数ポインタを実行出来ない方が正しいと思うけど。 しかし、このIDE使いにくいな… &HFFFF& <-コレはいい、 &HFFFFF& <-勝手に&外される &H0FFFF <-勝手に0を消される
765 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 20:09:16.34 ] 勝手に&が消されるのは指定しなくてもLong型で認識されるからじゃねの
766 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 20:16:14.63 ] CallByNameで諦メロン
767 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 20:33:37.14 ] (インスタンスとか意識して作ったことないから俺には話の内容が高度すぎて)何言ってるかさっぱりわからん
768 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 20:36:46.71 ] ちげーよw
769 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:10:33.06 ] VBはじめたいのですがもうVB6.0は手に入らないのでしょうか? VB6用の本を買ったのですがVB2010というのでもいけますかね?
770 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:12:46.13 ] VB6とVB2010では全然違うから VB6のやり方ではVB2010では何もできない VB2010のやり方ではVB6では何もできない
771 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:12:58.41 ] >>769 6.0と2010は全く違うものです それに6.0は今から覚えるには古すぎるのでお勧めしない
772 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:14:34.67 ] 数年前はMSDNのイロイロ入りの奴で手に入れるのが通説だったんだが 今はどうなのかねえ。
773 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:15:44.89 ] >>770 >>771 そうなんですか・・・2010用の学習書を買い直しますありがとうございました
774 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:21:16.77 ] >>769 VB2010はVB6とは全く別物。.netベースになってる。 VC++2010みたいにWin32も開発できるなんてことは”ない”。完全に.net専用。 つか、新しく始めるならなぜにVB6とか苦行するしw .netでもかまわないならC#とかおすすめよ。C#の方が新機能とかの追加が早いし。 研究とかで.netが使えないなら、C/C++あたりが無難。誰でも使えるしな。 RADツールがほしいならDelphi3〜7という手も悪くない。マイナーだが、プログラム経験があれば1週間もあれば誰でもかけるようになるだろう。 過去の遺産の引き継ぎとか、明確にVB6でなければならない限り、VB6を使う理由もないし、使うべきじゃない。 入手先の前にまず再考を。 別にその本をどぶに捨てたところで全然惜しくないしな。
775 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:31:06.68 ] >>774 Cはある程度できるんでC++にしようかなと思います。 ただ簡単なソフトを作ったりするのにはVBが一番簡単かな?と思ったんです
776 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:32:18.67 ] ディスコンになって10年経過してる商品について>>769 はさすがにネタ投入(ただし全然面白くないが) としか思えんけど。 逆にネタじゃないなら相当頭がどうかしてる。 こんなところに書き込んでるわけだから、最低限webにアクセスできる環境にはあるんじゃないの?
777 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:36:23.30 ] たとえそうだとしてもそのレスをする必要はないような
778 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:38:39.02 ] いつもイライラしてるIT土方が来たようだな^^
779 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:39:04.41 ] いつまでもVB6なんて使ってる化石をからかっただけですけどね
780 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:41:04.82 ] やべえ、真性のアスペかよこいつw どこに「いつまでもVB6なんて使ってる」なんて書いてあるんだw
781 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:41:39.00 ] おい、つまらんレスはするなバカども
782 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:42:54.61 ] >>781 じゃああなたが面白いレスの手本見せて下さいよ〜
783 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 05:39:23.55 ] 簡単なもの作るだけならExcelでも使っとけ つかVBマクロて人気なんだな OpenOfficeに最も望まれてる追加機能がVBA対応とか これじゃVB無くならんわ
784 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 16:03:38.31 ] >>783 Excelっていう土台と、初心者と本格的プログラミングの中間にある 開発環境が他にないからね。 Accessまでいっちゃうと、本格的プログラミング寄りで、何より、データベース って土台は初心者にキツイ。 ということなのだろう。 ただ、そろそろVBAは、言語体系を.NETに近づけたほうがいいとは思う。
785 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 16:14:13.29 ] Excelとかのマクロ言語はVBAやめてJavascript系にしちゃえばいいのに
786 名前:デフォルトの名無しさん [2011/12/11(日) 16:34:15.51 ] 学校のVisual Basic 6.0で線形探索とファイル処理を使ったプログラムを作る課題がでました。 Excelでデータを作って対応させるのように指示を受けました。 私は商品名を入力し、実行するとその商品の画像を表示するようにしたいのですが、 この場合、Excelのデータ作成はどのように行えばいいですか?
787 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 16:44:32.25 ] 商品名と画像ファイル名だけじゃないの?
788 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 17:39:35.98 ] 学校ってまだVB6使ってるの?
789 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 17:41:41.90 ] >>784 近づけるというか、いっそうVBAとCOMを取り除いて、.netベースにしてしまって VBAの代わりにVB.NET(移植向け)、C#(新参/初心者向け)を使えるようにすればいいんじゃね? ExcelやAccessでlinqが使えれば、業務系の人にもうけが良いだろうし。(むしろにて異なるものでキモがられるかね?) >>785 .netって基盤を作ってきたMSだから、今更Javascriptはないと思う。 OOoはVBAとか誰得なものをつけるより、Javascriptでマクロを組めた方が遙かに現実敵だとは思うが。 Google Docsの方はJavascriptだけども、サーバサイドで動くので使いにくいね。
790 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 17:43:13.57 ] >>786 研究室の過去のプログラムの更新にやむなくってのは分かるが 学校で今更VB6を教えてるって、その学校かなりヤバくね? 中学校の部活か何かでVBAでプログラミング体験とかなら分からんでもないが。課題もそのレベルだし。
791 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 17:48:42.38 ] 情報系じゃないが、若いセンセが嘆いてた 教える老人のノート、数十年前のものいまだに使ってるって
792 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 02:34:55.91 ] ワイは日本人やが聞いた情報によると、もうじき中国はバブルがはじけて昔の貧乏な元の中国に戻るらしいで みんなも知っての通りもう経済は破綻してて、取り戻すのは無理なんだそうや その世界ではごっつい有名な政府関係者筋から聞いた確かな情報やで まあお前らほどの頭の良い連中には、今さらなくらいのネタやな、失礼なくらいかもしれん お前らからすればもう常識的なくらいの知識やろ?
793 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 10:26:11.26 ] Windows7で「Microsoft Shell Controls And Automation」を参照設定してexeファイルを作り、XPのパソコンで実行すると、 実行時エラー430(クラスはオートメーションまたは予測したインターフェースをサポートしていません。)が発生しました。 shell32.dllのバージョンが原因なのでしょうか? Dim oShell As New Shell Dim oFolder As Folder2 Set oFolder = oShell.BrowseForFolder(0, "選択してください。", 1) If oFolder Is Nothing Then Exit Sub ElseIf oFolder.Title = "デスクトップ" Then MsgBox "デスクトップは選択できません。", vbOKOnly + vbCritical Set oFolder = Nothing End If If Not (oFolder Is Nothing) Then txtFolder.Text = oFolder.Items.Item.path pFileDir(lstFile.ListIndex + 1) = txtFolder.Text End If Set oFolder = Nothing
794 名前:デフォルトの名無しさん [2011/12/12(月) 15:51:10.15 ] VB初心者なのですが、 xlsmファイルって読み取ることができますか? 読み取れるようであれば例文教えていただけると ありがたいですm(_ _)m
795 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 15:52:47.84 ] Excelが入ってれば読めるよ
796 名前:デフォルトの名無しさん [2011/12/12(月) 15:58:29.53 ] >>795 Excelも入れていて読み込めるはずなのですが xlsmfile = New FileIO.TextFieldParser("ファイル名.xlsm", System.Text.Encoding.GetEncoding("Shift_JIS")) xlsmfile.TextFieldType = FileIO.FieldType.Delimited xlsmfile.SetDelimiters(",") この文では読みこめないのでしょうか?
797 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 16:09:00.17 ] >>796 createobjectして読み込むんだよ
798 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 16:23:43.16 ] >>796 ひょっとして.net+VSTO?VSTOは実は単なるCOMラッパーだったりするから微妙だけど。 そもそも、Microsoft.VisualBasic.FileIO.TextFieldParserって、zipしてある奴も読めるのか? MSDNをさっと目を通すと、CSV/TSVとかのテキストファイル前提っぽいが。 >.GetEncoding("Shift_JIS")) あれ?普通、xlsx/xlsmの中身のエンコードってUTF-8とかUnicode系じゃねーの? あと念のために聞くけど、PC初心者?まるで分かってないオーラが漂いまくってるけど。 ついでに、VSTOはそんな便利じゃないよ。イテレートもろくに使えないし。
799 名前:デフォルトの名無しさん [2011/12/12(月) 16:27:08.33 ] >>797 試してみたんですができませんでした。 createobject の使い方教えてくれませんか?
800 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 16:41:55.33 ] そういえばExcel2007以降とか見たこと無かった。
801 名前:デフォルトの名無しさん [2011/12/12(月) 17:01:08.62 ] >>798 テキストファイルを読むことを前提にしているので大丈夫です。 >あれ?普通、xlsx/xlsmの中身のエンコードってUTF-8とか Unicode系じゃねーの? 調べてみます。 PC初心者です。 これから勉強していきたいのでよろしくお願いします。
802 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 17:01:50.87 ] >>794 読めます。 中身はZIP形式で圧縮されたテキストファイルです。 試しに拡張子をzipに変更した後、開いて、中のファイルをメモ帳ででも開けばよい。
803 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 17:02:57.81 ] >>799 どう試してみたの?
804 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 17:06:09.39 ] >>799 ググった? あと、ここはVB6スレなんだが間違いはないか?
805 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 02:14:57.18 ] >>796 のコードはVB6のコードには見えないな。文法が違う
806 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 08:17:11.38 ] 細かいこと気にスンナよ
807 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 12:45:11.56 ] >>801 ここID出ないから、名前欄に1個前のレス番を毎回入れるか 最初にレスしたレス番を入れるとかしてくれないと誰か分かりづらい。 絞り込みして見る事もできね。 Googleで VB6 XML 読み込み をキーワードに検索して結果の1件目。 t-yoshi-tomi.at.webry.info/200905/article_2.html >Dim XmlDoc As DOMDocument 'xmlデータ用変数 >Set XmlDoc = CreateObject("Microsoft.XMLDom")
808 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 22:12:37.25 ] >>806 言語が全く違うんだから気にスンナレベルじゃねーだろw >>807 VB6ならExcel COMから読み出せば良いんじゃね? VB.NETなら、どこかのZIPライブラリ使って中のxmlをlinqで列挙するのがお手軽かと思うけど
809 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 02:49:46.98 ] すげー初歩的、ランゲージリファレンス嫁ってレベルだと思うんだが イベントについてさっぱりなので教えてくれ。 eventキーワードでのイベントの定義については分かった RaiseEventでのイベントの発生も分かる だけど、実際にメソッドを結びつける方法が分からん まるでわかめ。 privatepaste.com/3e1d507e11
810 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 03:29:20.92 ] イヴェントの使い方 'Class1.cls Public Event EventDaYo() Public Sub Hoge() RaiseEvent EventDaYo End Sub 'Form1.frm Private WithEvents c1 As Class1 Private Sub Form_Load() Set c1 = New Class1 End Sub Private Sub Command1_Click() Call c1.Hoge End Sub Private Sub c1_EventDaYo() MsgBox "EventDaYo" End Sub
811 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 03:46:13.88 ] >>810 キモの部分は Private WithEvents c1 As Class1 Private Sub c1_EventDaYo() これ? でもコレって、ClassAの中にあるCoClassBのイベントにはどう対処するんだ? ClassA: Public Property Get CoClassB(index as integer) as CoClassB CoClassB: Public Event CoClassScream() ってあった場合… ClassAが内包しているクラスのイベントをリレーしないとだめ? というか単純に配列の中にオブジェクト入れてた場合はどうなるの?
812 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 04:51:35.30 ] WithEvents 発生したイベントをキャッチするための入れ子を宣言する (配列にできない、Newで宣言できない、Moduleでは宣言できない) WithEventsを宣言したForm(またはClass)内でしかそのイベントをキャッチできない
813 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 04:55:05.51 ] >>810 Class1で宣言したイヴェントはClass1内からのみ発生させられる Class1のインスタンスから発生したイヴェントをキャッチするには WithEventsでClass1のイヴェントをキャッチする入れ子を宣言し それにあらかじめインスタンスをつっこめばそのインスタンスから発生したイヴェントをキャッチできるようになる が入れ子に設定されたインスタンスからのイヴェントしかキャッチできない
814 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 04:57:03.36 ] >>812 (配列にできない、Newで宣言できない、Moduleでは宣言できない) ↓訂正 (配列にできない、Newで宣言できない、標準Moduleでは宣言できない)
815 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 05:05:48.74 ] 内包リレーってこんな感じか? 'Class1.cls Public Event EventDaYo() Private WithEvents c2 As Class2 Public Sub c2_EventKaYo() RaiseEvent EventDaYo End Sub Private Sub SetC2(c As Class2) Set c2 = c End Sub 'Class2.cls Public Event EventKaYo() Public Sub HogeHoge() RaiseEvent EventKaYo End Sub 'Form1.frm Private WithEvents c1 As Class1 Dim c2 As Class2 Private Sub Form_Load() Set c1 = New Class1 Set c2 = New Class2 c1.SetC2 c2 End Sub Private Sub Command1_Click() Call c2.HogeHoge End Sub Private Sub c1_EventDaYo() MsgBox "EventDaYo" End Sub
816 名前:デフォルトの名無しさん [2011/12/14(水) 05:09:59.08 ] VB6 イベントを作る - RaiseEvent, WithEventsなど homepage1.nifty.com/rucio/main/shokyu/jugyou29.htm
817 名前:デフォルトの名無しさん [2011/12/14(水) 05:20:06.22 ] 質問者は質問をわかりやすく明確に 回答者は回答をわかりやすく明確に カオスな流れになってるぞ
818 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 05:25:49.38 ] イヴェントをキャッチしたいForm(またはClass)内でWithEvents入れ子を作れ Class1内のClass2インスタンスのイヴェントを そのClass1のインスタンス内でキャッチしたけりゃClass1内にWithEventsを書いてそのClass2のインスタンスへの参照入れろ Class1以外、たとえばForm1でClass1内のClass2のイヴェントをキャッチしたけりゃ Form1内にClass2のWithEvents書いてClass1内のClass2のインスタンスの参照を渡すか Class1内でClass2のイヴェントをキャッチしてClass1でイヴェントをキャッチしたってイヴェント発生させろ
819 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 05:36:14.32 ] 質問者と回答者の会話が噛み合ってないな
820 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 08:25:05.62 ] イベントは別のクラスに書くんだよ
821 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 11:32:10.37 ] ヴェとか書くからなんかごちゃごちゃした文章に見える
822 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 11:36:56.97 ] これが参考になる oshiete.goo.ne.jp/qa/504573.html
823 名前:デフォルトの名無しさん [2011/12/14(水) 16:28:56.24 ] VBのアプリで、USBメモリにテキストファイルを書きだした後 タスクバーから取り出しを実行すると定番の 「デバイス'汎用ボリューム'を今停止できません。」 の表記が出て、アプリを終了するまで停止できません。 一応調べましてFileSystemObjectを使い、ファイル保存の際に使用していた dirからFolderExistsに変更ましたが、"アプリ起動後"にUSBメモリを挿すと 想定通りUSBメモリの取り外しが行えるものの"アプリ起動前"から USBメモリが刺さっていると上記のエラーが出て取り出しができないのです。 更に調べて、上記に加えて最後にchdir("C)でローカルドライブに変更してやると アプリ起動前にUSBメモリを挿していても、問題なく取り外しが行えるように なったもののどうもしっくりきません。 どなたかこの状況から原因をエスパーできる方はおりませんか?
824 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 16:46:33.22 ] ローカルに書き出してからUSBにコピーするのがいいよ
825 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 13:30:43.68 ] □投稿者/ サテア 一般人(1回)-(2011/12/15(Thu) 10:25:45) 環境/言語:[windows7/visual basic6.0/?] 分類:[VB6以前] 4つのテキストボックスに入力した数字をソートしてラベルに小さい順に表示するプログラムを作成するノルマを与えられています。 しかしvisual basic6.0だとあまりい良い文献がなく、ほとんど参考になりません。 ちなみに自分はオブジェクトを配置するくらいの技能までは持っています。そこから先がすすめません。 何だよそのノルマと技能はwww
826 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 13:34:58.64 ] リストボックスに入れてソートさせるのがVBっぽい
827 名前:デフォルトの名無しさん [2011/12/18(日) 12:22:19.04 ] >>823 大きな問題として Dir関数って、フォルダを参照した後で内部的に終了処理がなされてないよね Loopでファイルの列挙ができるようになってる都合上、参照し続けてしまう 前の方のレスにも書いたけど Dir ""とすれば開放できるとするサイトがあるけど、それでもカレントフォルダを参照してしまう で、話は戻るけど やっぱりDir関数を修正した以外の場所で使ってるんじゃないの? またはchdirかも知れないけど、 最後にchdirでUSBメモリ以外を参照すれば抜けるっていうのは、その証拠でしょ
828 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 16:25:51.45 ] >>825 初心者に対する非常に良い問題なのだが、VB6っていう環境が 初心者の学習に向いてない。 投稿者は明らかに初心者なのだが、こういう掲示板で どういう言葉遣いで質問するかわからないから変な用語使うハメに。
829 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 19:37:06.04 ] 単純にソートアルゴリズムの勉強させられてんじゃないの 自分も新人の時に最初の課題として出されたよ 実際自前でソートする事なんかほぼ無いが あの時色々と調べて得た知識は今も生きている
830 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 19:47:27.78 ] そっとしといてやれよ
831 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 22:16:07.93 ] 実はわざわざVB6でやらせて苦行を強いる上司のパワハラ
832 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 09:47:21.79 ] >>827-832 ここはVB6のスレなんだ。 VB6は古いとか.NETやれとか言ってるやつはスレち。 答える気がないなら来るな。 って書こうと思ったら、ここへの質問じゃないのか。 まあいいや。 VB6のスレなんだからVB6かわいがってやってくれ。
833 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 18:38:55.79 ] VBでメモ帳を作成しろと言われた 誰かサンプルソースZIPでくれエロい人
834 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 18:47:11.67 ] >>833 誰に言われたんだ
835 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 19:16:57.89 ] >>832 >>825 はな…どっかの掲示板の転載やで… 答えは求めてないだろ。 (かといってヲチする板でもないがな)
836 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 19:25:46.75 ] >>834 講師
837 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 19:36:01.93 ] VB6でやれって言われたのか?
838 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 19:50:28.15 ] >>837 VB2010Expressです
839 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 21:15:39.13 ] >>838 ここはVB6.0のスレ。 VB2010はゴミ箱に捨てて、VB6.0で開発したほうが良い。 それが出来ないなら余所のスレに行け。
840 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 22:44:57.96 ] うぜえなこいつ
841 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 22:52:06.76 ] >>839 スレ違だボケって意見には賛成できるけど >VB2010はゴミ箱に捨てて、VB6.0で開発したほうが良い。 コレは同意できないw
842 名前:デフォルトの名無しさん [2011/12/21(水) 05:57:54.47 ] じゃ、VB6で Shell "notepad", VbNormal
843 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 06:03:46.00 ] よくサブルーチン(戻り値のないメソッド)をCallで呼び出しているけど アレは直接呼び出すのと違うの?メリットって何?
844 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 06:38:04.44 ] >>843 リファレンスぐらい読めよ。 msdn.microsoft.com/ja-jp/library/sxz296wz (v=vs.80).aspx 「コードの読みやすさが向上します」って書いてあるだろ。 メリットはそれだけだ。デメリットはタイピング量が6文字増えることかな。
845 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 06:49:12.71 ] >>844 VB6のリファレンスってまだ残ってたのか! と思ったらコレVB.netのじゃん… >プロシージャを呼び出すときに Call ステートメントを使用する必要はありません。ただし、そうするとコードの読みやすさが向上します。 >argumentList を指定する場合は、かっこで囲む必要があります。 つまり、引数を括弧で囲めるようになるのか…確かにこれは有用だな。 むしろ、括弧を省略しなければいけない仕様の方をdo…おやこんな時間に誰だろう?
846 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 20:08:03.41 ] 俺はずっと以前からCall使ってる。 理由は、コードが見やすくなるからだ。
847 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 21:24:27.15 ] >>846 まぁ、本当はCall命令はFunctionステートメントやSubステートメントが 無かったころの残骸なんだけどな。 VB1.0の頃には、見た目以外にはほとんど意味の無い命令になった。
848 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 21:42:06.92 ] だいたい、VBってタイピング量にかけては最悪だろ。 If で開始して、End If で終わる。 Do while〜 Loop で終わる。 CとかJavaとかC#は if で開始して } で終わる。 コードの見やすさからすれば断然C#。 VB6やっててよかったと思う事は、俺にはただ一つ。 VB6 で作ったクラスとかをほぼそのままVBAにも適用して動作可能にできる点だ。 (DB関係はそれでExcelにも使えてる)
849 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 22:03:11.42 ] タイプ量=みやすさ とでも思ってるのか ほんとに綺麗なソースもホントにひどいソースもみたことないんだな、きっと
850 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 00:30:12.89 ] 見やすい見にくいとかどうでもいいよ。動けば
851 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 00:54:11.41 ] >>847 BASICの頃のはラベルへGOTOとかGOSUBじゃなかったっけ? CALLとか使った覚えなさす。 もっともあの頃のBASICはテキストデータを格納して マシン語を走らせるためのブートローダー的なものだが。 >>850 お願いだからいろんなモジュールのグローバル変数をごっちゃにして 未定義でなおかつ代入してない変数を読み出して、たまたまうまく動いているプログラムを量産しないでください。 イコールの位置とかそろえなくて良いけど、インデントくらいはまともにやってください。 If a = 0 Then ' インデントレベル 0 If b = 0 Then c = 0 ' レベル 0 d = 0 ' レベル1 End If ' レベル0 …これ難読化ツールでも使ったんですか?…
852 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 01:03:15.42 ] 絶対自分しか見ないってんなら良いけど 他人が見るの前提ならCallは付いてた方が良いよな つか付けてくれ あと.Textとか.Valueとかも付けといてくれ Option Explicitも忘れないでー 変数なんだかオブジェクトなんだかSubなんだかFunctionなんだか そもそも作った人がtypoミスしたまま気が付いてないとか 解らないから!解らないから!
853 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 07:28:40.89 ] >>851 インデントもロクにしないっていうのは 単に初心者かCOBOL文化の名残り?
854 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 08:21:19.98 ] >>853 おそらく仕事/上司が気に入らない事への腹いせでやって、逃げていったんだと思う。 一般的に禁忌と言われてることを一通りやってるし、ドキュメントも残ってないし。 ちなみに禁忌って言ってるのはだいたいこのこと。 ・インデントをろくにつけない。つけないと言うより、したりしなかったり。全くしないよりたちが悪い。 ・リテラル値を多用してハードコーディング ・もちろんファイルハンドル#1なども、一時的、永続的含めて直接指定 ・他のモジュールで宣言してあるグローバル変数の多用 ・変数の宣言をしてないことは日常 ・文字列を数値化したり、文字列化したりしながら使用 ・↑と併用して、状態として保持しておくべき値をコントロール(主にラベルなど)のキャプションで保持 ・他のモジュールへコントロールを渡してそこでUIを操作 ・ロジックとUIの分離? いえいえ当然、積極的に混合してます^q^ ・バージョン管理? キチンとしてるよ! ほらここから数行下までのコメン(ry ・適切なコード内ドキュメント 'ファイルをクローズ Close #1 少なくても初心者なら、ここまでひどい事するか? これは分かってる奴が意図的にやってるようにしか見えないぞ。
855 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 09:23:27.25 ] >>854 そのぐらいなら、まだ許せるんじゃね? ・2000行を超える超巨大関数。もちろんバグつき。 ・無駄にテクニカル。 CallByName、AddressOf、VarPtr、ActiveX、etc... ・何処でもやたらとDoEvents。 DoEventsが無いと長時間応答なし、でもあると落ちるみたいなバグつき。 ・何処でもやたらと状態遷移で管理。でも状態遷移図はコーダの頭の中だけ。
856 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 22:12:39.72 ] >>855 2000行を超えて無駄にテクニカルってのが笑えるw >>854 わざとやってる臭いね
857 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:31:59.07 ] >>854 どっからどうみても俺が今やってるプロジェクトのソースだが
858 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 01:18:54.82 ] 今VB6でやってるのかよw どんな会社だよ。 ついでにそんな会社にいるあんたのレベルも知れてるな
859 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 03:15:29.69 ] 新規はさすがにないだろうが、既存システムの修正はまだあるだろ
860 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 03:26:43.23 ] VB6で新規もありうるんじゃね 今もVB6のソフト使ってるなら そのパソコン(?)で新たに何かしようとその会社が考えてたら そのパソコンで稼動するソフト制作を要求するんじゃねの
861 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 09:30:04.25 ] VB6はMSのサポートが終わってるという建前で小さい新規の開発はお断りしています
862 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 17:50:08.15 ] リプレースがあってもVB6の糞コードを アップグレードウィザードで.netに引き継いでやってたりするから怖い
863 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 01:29:31.71 ] なんだかんだVB6ってよく出来てたと思うんだよなー。 .NETはC#だけにしてVBはVB6の延長で進化すればよかったのに。 微妙にC#に出来てVB.NETに出来ないことがあって面倒だ。
864 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 01:48:11.61 ] どんな言語でも最初は簡単でも後から難しくなるもんだw
865 名前:デフォルトの名無しさん [2011/12/26(月) 00:49:07.79 ] 汎用に使えるプロシージャだと、先頭に機能だけ一言書いて わざとインデントなくしてコメントも削除して納品することがある 流用されないようにというケチな気持ち
866 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 01:11:20.72 ] ねえよカス
867 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 05:19:47.49 ] そもそもソース提供してる段階で流用を認めないとかあり得ないと思うが
868 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 18:23:44.95 ] ちょこっとしたソフトでも、開発に2人月かけたとして 納めた会社が大量にコピーして使ったりしてるのを見ると どうかと思う。もっと金とるかライセンス契約にするか。 ま、そういう会社はOFFICE製品とかも海賊版使いまくってたり するんだけど。
869 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 18:42:35.68 ] もしドラブラよろかよ
870 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 18:51:37.21 ] もしドラえもんにあったら その時は ブラジャーによろしく
871 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 19:53:10.25 ] 今なら「もしドラブラよろ」でググれば出てくるな
872 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 00:44:02.15 ] もしドラゴンクエストでブライがよろいを着たら?
873 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 04:05:53.56 ] もしもし、ドラ焼き100人前ブラックでお願いします よーそろー?
874 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 01:42:07.29 ] もしドラ×ブラよろかよレベル高ぇーなオイ
875 名前:デフォルトの名無しさん [2012/01/02(月) 14:47:56.67 ] ゴミのような奴しかいないスレになってるな
876 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 21:47:31.01 ] そんなに謙遜するなよ
877 名前:デフォルトの名無しさん [2012/01/06(金) 23:34:52.86 ] 初めて書き込みます。 現在、VB6.0でプログラミング機能付きのRPN電卓を作るという課題に取り組んでいます。 電卓機能についてはある程度できたのですが、プログラミング機能の方が全く分かりません。 どこが分からないかというか・・・どのように動いているのかイマイチ理解できていません。 解説していただけたら助かります。
878 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 23:57:22.55 ] Scriptlet
879 名前:デフォルトの名無しさん [2012/01/07(土) 00:11:57.42 ] 877です。 これを元に作ります。 kie.nu/3mI
880 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 05:22:37.64 ] いきなり上げられたexeをクリックする勇気は無いな
881 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 05:59:33.44 ] 学校って進歩とか進化ってしないの? いつまでVB使うの?
882 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 10:44:43.23 ] センセイがくたばるまでだよ?
883 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 11:43:17.04 ] 実務ならまだしも、学校とかは別にVBでもいいじゃん VBだとコーディングスキルはさほど身につかないだろうけど 手軽にプログラムを作る楽しみを実感できる いきなり敷居の高い高等言語を強制して 何も形にならずに「プログラミングってつまんねー」ってなるよりは 下等でも手軽な言語で簡単なものを色々作り 思い通りのプログラム・アプリケーションを作ることの楽しさをまず知ってもらい 高等言語に移るのは下等な言語に自分で限界を感じるくらいのスキルが身についてからで十分
884 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 11:51:44.95 ] 学校が何の学校かによる。 話の流れからすると、ごく普通の高校レベルを 想定しているようだが、その程度の学校で プログラミングに何を求めるかだ
885 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 14:34:46.66 ] >>883 高等の使い方間違ってね?
886 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 15:13:08.69 ] 某県立工業高校情報コースだった10年ほど前、PC-98のMS-DOSから動かすたーぼしーでCの実習したの思い出した
887 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 17:48:58.16 ] >>881 実を言うと、参照が無くなったら即座に解放するというガベコレ方式のお陰で、 常時動作させる(例えば自動情報収集系)ようなソフトを手軽に作るには VB6は便利。 .NETとかJavaで同じような事をしようとすると、気軽にインスタンス生成するのが 難しくなる。考えて作らないと。 あと、VB6で作ったクラスはExcelでも「ほぼ」そのまま使えるという利点がある。 .NET以降は、オブジェクト指向の理解が必要なので、学校ならカリキュラム的に 長くなると思う。 個人的には、初心者にはまずCをやらせたい。学校ならやってるとは思うが。 ここは進化しなくて良いよ。
888 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 17:54:47.30 ] >>887 ちょっと何言ってるのか(w それって普通は逆で、循環参照の問題がクリアされてないVB6の方が普通は注意を要する。 ドトネトやジャヴァにはその心配がない。
889 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 18:56:28.67 ] >>888 循環参照は気をつけてたら良いよ。 簡単にメモリリークで落ちるよね。 その「気をつける」ってのが、そんなに考えなくても可能。 .NETとかJVMは、ある程度溜まってからガベコレするので ソフトがひどい時は数秒止まるでしょ。 常時自動で情報収集するとか、FA用途とかみたいに 絶対に停止させたくないものだと、数秒止まるとか致命傷になる。
890 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 19:19:03.42 ] >>889 VB6に固執してる人ってすぐそれだけど、そんな事実はないよ。 N88-BASICの時代じゃあるまいしそんな間抜けなことするわけないでしょw っていうか、それを言うならシングルスレッドのVB6の方が余程リアルタイム性の 要求される処理に向いてない。 話にならん。もうアホかと。
891 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 19:58:55.81 ] >>890 俺は.NETでもリアルタイム性の要求のあるモノ作るけど、 何も考えずにJavaのwebアプリ作るのと同じ要領で ValueObjectの類をどんどんnewするような設計にはしない。 これをやってると、ガベコレによる停止時間がひどくなるから。 ValueObjectをどんどんNewしない設計については大まかに分けて2つの方法がある。 意図的なGCを利用できるというのは前提でな。 www.atmarkit.co.jp/fdotnet/directxworld/directxworld06/directxworld06_01.html 一応このへん参考。 VB6で作る場合は、循環参照だけ避けてれば後は楽。 VB6で作るわけだから、そんなに手の込んだものにはしないわけで、 シングルスレッドでもそんなに問題にはならない。
892 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 20:12:36.09 ] 循環参照って Dim a New Class1, b New Class1 Set a.value = b Set b.value = a みたいな感じのこと?
893 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 20:37:43.69 ] まあそんな感じだけど。 >>887 の彼の発言が奇妙なのは、俺はVBランタイムのメモリ管理に詳しいわけじゃないが、 どのような方法にしろ自動管理である以上断片化は避けられないはずで、 であれば.NETのガベコレの(括弧つきの)「問題」と同じ問題を抱えているはずだと思うけど。 まあガベコレで数秒処理が止まるとか言ってる時点であれだけど
894 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 20:49:24.63 ] レガシーな人なんだろ 負の遺産だけど
895 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 01:05:36.32 ] VB6ランタイムのGCは参照カウント方式で、 カウント数が0になったら領域解放。 .NETとかJavaはバーチャルマシンがGCを担当。 マークアンドスイープとかコピーイングの方法の複合に加えて 古い・新しい領域せ世代別にも管理。 ここで、古い領域のGCがFullGCと呼ばれるもので、>>891 の説明している 「数秒止まる」だろうと思う。 ヒープの断片化が問題なわけじゃなくて、ある時一気に @生存オブジェクトのマーキングAマークなしオブジェクトの除去、 Bヒープの再配置 という流れでGCを行うので、GC自体がかなりの処理 で重たかった。ヒープの再配置を行うので、どうしてもアプリケーションの 停止時間が発生する。昔のJavaのwebアプリだと、数秒どころか数分無応 答という事があった。www.atmarkit.co.jp/fjava/rensai2/webopt06/webopt06.html 企業の基幹システムだと搭載メモリ量も多く、いったんFullGCがはじまると 手が付けられなかった。チューニングで対応したり、夜中に再起動させたり。 俺は.NETには詳しくないんでJavaで解釈するけど、今のJavaはさらに別 のGC方法があって、VMの起動オプションで指定するんだけど、GCの流れ が@→A→@→Bみたいになる。アプリケーションを停止するのは@だけ で、AやBの時はアプリケーションと並列処理される。 だから、以前ほど「数秒止まる」というのは体感しにくくなっている。 かといっても、この方法も万全じゃないんで、上の古い方法と組み合わせ で使う。だから結局、無応答時間を完全に回避できないんだけどね。 .NETも、IDE使ってると時々プチフリみたいな事が起こって、会社の先輩か らは、これが.NETのGCって説明されたけど、本当かどうかは知らない。 ただ、プチフリ程度でも、問題になる領域のソフトはあると思うけど。 GCについては詳しく知ろうと思ったら余裕で本一冊になる。売ってる。
896 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 03:25:46.11 ] >>883 VB6ってどちらかと言えば >敷居の高い高等言語 の方に入らないか?まあ、確かに電電の方とかC言語よりアセンブリの方がより直接的で分かりやすいって人も居たが。 今のC#のすべての機能(linq/ラムダ式、型推論)を使いこなすのは難しいかもしれないけど VB6でやる程度のことなら、C#/VB.netとかの方が遙かに楽に出来ると思う。 それに、オブジェクト指向の説明だって、継承とかその辺の仕組みとかについての説明は難解かもしれないが すでにあるクラスやメソッドを使う分にはむしろ楽になるだけだろ。 少なくても、今扱ってる変数・値が数値か文字列かはっきりしない言語よりは分かりやすいかと。 GCの事に関しても、それに気を遣わなければならないレベルの事なら、他の言語を検討しても良いわけだし、明示的にコントロールしても良いわけだし。 そもそも、VB6ってExcelのマクロを組むためだけの言語だろ?教育目的で使うなと思うんだが。 RADツールが使える環境なんて.net系以外でもDelphiとかいろいろあるわけで、わざわざVB6を選択する必要は無いし。
897 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 03:49:13.22 ] 学校側がVB6使いたがるのはVBScriptやExcelのVBAに応用しやすいからという理由からじゃね
898 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 20:35:16.36 ] >>896 VB6を糞にしてるのはVariant型だよな。
899 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 21:11:47.82 ] Variantは使わなければいいだけの話じゃないのかな
900 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 23:41:21.77 ] よくある事だが、VB6で作られたソフトで、標準モジュールもクラスモジュールも無いという事はよくある。 関数への切り出しすらなく、イベントプロシージャに全部長々と書いてあったり。 変数もVariantバリバリ。 初心者がwindowsアプリを作るにはVB6がやさしいのな。
901 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 23:46:08.75 ] >>900 それはVBに限らない
902 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 00:10:36.22 ] >変数もVariantバリバリ。 おまえコレが言いたかっただけだろ
903 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 00:56:35.72 ] >>901 CやJavaでwindowsアプリ作るのはしんどいぞ。
904 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 03:35:02.26 ] まあVBAに転化しやすいてのは小規模アプリとしては大きなアドバンテージ 今後ExcelやAccessが消えるとは思えないしねぇ
905 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 14:01:44.01 ] >>896 >そもそも、VB6ってExcelのマクロを組むためだけの言語だろ? VBAの間違いだよな?
906 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 15:07:25.69 ] とりあえず、Joel on Softwareの「はじめてのBillGレビューのこと」 でも読んでからVariantに呪いでもかけてみるといいよ
907 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 15:13:24.45 ] 動的型付け言語って全部Variantだけどなw
908 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 16:53:37.31 ] >>905 もちろんVB6系全般だよ。むしろ、それ以外で使い道あるか? VB6は特にofficeのCOMを操作するために特化した言語・環境だろ。それ以外の用途なら他にいくらでもマシな選択肢はあるし
909 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 17:15:03.51 ] >>908 理由、理由w
910 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 19:32:45.32 ] >>908 COM操作に特化したってのはまあ同意できる面もなくはないが VB6はべつにofficeに特化してるわけではない VBAはVBのサブセット的な位置づけで、VBAが実質officeの操作に特化してるというなら 同意できる面もなくはない とりあえずお前がVBとVBAの区別ができてないのが良くわかった
911 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 20:06:07.35 ] VB5CCEの話とごっちゃになってそう
912 名前:デフォルトの名無しさん [2012/01/09(月) 20:43:37.75 ] 初心者ですが、Visual Basicを始めるにあたって周りに教えてくれる方がいません 簡単な物理計算をして、それを表示できるだけでいいのですがお勧めの指導書などありますか?
913 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 21:17:08.01 ] 答え : いまの時点でVBを0から始める馬鹿はいない
914 名前:デフォルトの名無しさん [2012/01/09(月) 21:20:21.49 ] >>913 すいません、始めなければならないんです 0からでも
915 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 21:22:13.19 ] >>914 現在入手可能な、お勧めの指導書はありません。 0からオンラインヘルプを頼りに始めるのが良いと思います。
916 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 21:22:50.93 ] まあ落ち着け VBとVB.netは別物だぞ まずこれを理解してないと会話が成り立たない
917 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 21:28:54.17 ] 単純な計算と表示だったら他のBASICの入門サイトなどで代用できるよ N88互換のBASICも生きてるものがあるだろうし、そっちから攻めるといいんじゃないかな
918 名前:デフォルトの名無しさん [2012/01/09(月) 21:29:07.72 ] >>915 そうなんですか?オンラインヘルプか... >>916 自分が使っているのはVisual Basic2010express editionなのでVB.netとはちがいますよね?;
919 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 21:32:41.26 ] せつこ、それどっとねっとや
920 名前:デフォルトの名無しさん [2012/01/09(月) 21:35:03.64 ] >>919 え、そうなんですか? なんということでしょう...
921 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 01:47:17.97 ] >>910 VB6とVBAの違いっていっても大してねーじゃん。平等に(ry 僕が言いたいのはVB6自体、COMを扱う、つまり主にofficeを扱うために作られたような言語でしょ? そりゃ、それ以外の用途にも使えるかもしれないよ?でも向いている訳じゃないだろ。 VB6はVBAと違ってGDIを直接触らなくてもグラフィックを描画出来るかもしれないが、それもおまけみたいなものだし。
922 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 02:01:34.36 ] >>921 えとさ、COMってOfficeの事じゃないよ 1から勉強しなおしたほうがいいんじゃない?
923 名前:デフォルトの名無しさん [2012/01/10(火) 02:48:07.37 ] 一口にVBって言っても色々あるようですね 少し書店などで立ち読みしただけでは初心者には組めそうにないと思ったので... やはり大学の授業や講座などを受けるべきなんでしょうか
924 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 03:24:27.84 ] >>922 揚げ足とりすぎ COMとofficeは表裏一体だろ。もちろんoffice意外に使えないわけじゃないけどさ、使わないだろ?それ以外だとIE周りとか? COMはofficeとVBのための技術といっても過言じゃないし、VBはCOMを扱うための言語、 ならVBはofficeのための言語って言っても差し支えねーじゃん。VB6、COM、Officeこいつらは三つ子の兄弟だよ。 >>923 何をしたいかによる。大学っていっても情報専門の学科以外での授業なんて、中学生の部活でちょっとやる程度のことしかしないよ。 新しくVB6を始めるのはあり得ないが、VB.netなら特に苦も無く学べるんじゃない? 全く経験が無いならC#の方が取っつきやすいとは思う。どっちもほとんど同じものだからどっち選んでも良いけど。 とりあえずここはVB6スレであってVB.netはスレ違だ
925 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 03:33:55.59 ] Officeのための言語ならここまで広まらなかっただろうな
926 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 03:37:49.57 ] >>924 だからさ、Windowsのあらゆる部分にCOMは使われてるの。 マルチメディア関係、サウンド、動画、もほとんど COMだぞ。
927 名前:デフォルトの名無しさん [2012/01/10(火) 03:51:52.39 ] >>924 なるほど... 聞いた感じかなり難しそうですね CもVBもあまりかわらないものなんですか?
928 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 04:34:58.35 ] >>924 揚げ足でも何でもなくて本当にお前の理解不足だから そのていどの理解力でCOMがどうこう言うのはやめれ
929 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 13:10:03.82 ] >>926 そうらしいね レジストリのクラスIDとして登録されてるのがCOM?
930 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 13:20:37.77 ] DirectXもCOMだよ
931 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 14:38:22.59 ] >>927 CとVBは全く別だよ。C#とVB.netは同じ.netだから、同じように扱えるし、書き方もにてるから C#の知識がないVB.netの人でもC#のコードが読めるし、逆も読めるよ。 blogs.wankuma.com/jeanne/archive/2007/02/26/64122.aspx このあたりにまとめてある そしてC言語とC#、VB6とVB.netはまるで別だよ。 もうすこし調べたり考えたりしてから書いた方が良い。 要は「英語と中国語では文法(ゴジュン?)が似てる」っていうのを「ラテン語と韓国語はあまりかわらないものなんですか?」って返してるようなもの それにスレ違だって。
932 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 03:43:44.63 ] COMはwindowsの中核を成す技術仕様だぞえ officeはそれに準拠してるというだけだよ それにCOM自体はUNIXなんかにも実装されとる 個人法人問わず自作のCOMコンポーネントが大量に配布されてるじゃん officeとVBだけってんじゃあ勿体無さすぎだなぁ >>927 VBでって事はwindowsは確定だとして、簡単な物理計算と表示だけで良いのなら Excelに関数かマクロ突っ込むだけで事足りるんじゃなかろうか?
933 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 18:15:32.51 ] コンピュータ動かすんやからCもVBも.NETもJavaも全部ほとんど一緒やろ! 似たようなもんやで〜〜 全部IFとかFORとかそんなんやん!!どや?
934 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 18:18:56.80 ] Javaにforってあるん?
935 名前:デフォルトの名無しさん [2012/01/13(金) 00:34:01.99 ] すみません、VB上でWin32APIのSleepを使って、現在のスレッドを 1000ms(1秒)一時停止させる処理を入れたいのですが、その際、 下記のようなソースの場合、DoEventsが実行されるタイミングは、 Sleep 1000でスレッドが停止して1秒たち、再度一時停止していた スレッドが再開した後でしょうか? それとも、Sleep 1000で1秒間分のスレッド一時停止が開始された 直後にDoEventsが実行されるのでしょうか? やりたいことは、Sleep 1000でストップしている間に、他のスレッド で発生してたまったWindowsメッセージを処理させたいと思っています。 ---以下ソースの一部--- Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Command1_Click() Sleep 1000 DoEvents End Sub
936 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 01:10:41.27 ] >>935 「それとも」って接続詞の使い方間違ってない? どっちも同じ意味にしか聞こえんけど....
937 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 01:22:59.63 ] ああ、>>935 の意味がやっと分かったw 要するに>>935 はスレッドが何か全然分かってないんだね。 コード(当然DoEventsを含む)が実行されるということは、そのスレッドが 制御を持ってる(ブロックされてない)ということ。 〜が実行されるのは眠った後ですか?なんて質問は愚問過ぎ。 実行されない状態を作るのがSleepなんだよw
938 名前:935 [2012/01/13(金) 01:23:04.80 ] >>936 わかりにくくてすみません。。 Sleepで一時停止中か、一時停止しスレッドが開始した後か という意味です。
939 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 01:25:11.09 ] 停止中はどのような命令も実行されないわけですが
940 名前:935 [2012/01/13(金) 01:25:28.49 ] >>937 ありがとうございます やはり、Sleepが実行されて、そのスレッドが止まると、 当然次の処理であるDoEventsも停止中は、実行されない と言うことですね。 であれば、DoEventsするスレッドを別に立てるしかないという ことでしょうか?
941 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 01:32:12.87 ] >>940 いやまず最終的に何がしたいのか書かないと何とも言えんと思うけど.... 「(重い)処理」を別スレッドでやるのなら普通はDoEventsなんて必用ないですよ。 DoEventsは、UIスレッドで(ビジーループ的な)重い処理を実行しても UIが無反応になることを避けたい場合だけに使うんですよ。
942 名前:935 [2012/01/13(金) 01:50:55.91 ] >>941 説明不足ですみません。 >>935 は一例としてあげたソースになります、実際には、、 UI(Form)に配置したTextBoxに時計表示を出して、それを1秒ごとに更新して 表示させたいのですが、同時に3秒ごとに別の処理の繰り返しをしたいと思っています。 その際、3秒待つのに単純にSleep 3000という行を追加すると、UIの時計更新が止まって しまうので、3秒待っている間でもForm上の時計表示は動かしたままにしておきたいと 思い質問しました。 ちなみに、UIスレッドとは、Formのソース内に書かれているプロシージャ群の 処理が実行されるスレッドということでしょうか?
943 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 05:47:47.09 ] x秒ごとに処理したいのにスレッドを止める必要ないでしょ だいたい処理が瞬間に終わるわけでもあるまいし。 インターバルを設定できるTimerってのがあるんだけど
944 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 07:19:27.57 ] VB6でマルチスレッドってActiveXを使うやり方?
945 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 08:53:01.02 ] できた Private cnt As Integer Private Sub Form_Load() cnt = 0 Timer1.Interval = 1000 End Sub Private Sub Timer1_Timer() cnt = cnt + 1 Label1.Caption = cnt If cnt Mod 3 = 0 Then Shell "notepad" '重い処理 End If End Sub
946 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 09:21:22.64 ] VBは1つのスレッドで、DoEventsによって並列処理を しているように見せているだけ。 Sleepしたらそのスレッドは止まるのだから、VBプログラムの全てが止まる。 DoEventsでそういうことをやっているとデッドロックしやすい。 DoEventsをSwitchToThreadを同じようなものだと思っていると痛い目を見る。 非同期処理したいのであれば、Timerを使うべき。
947 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 09:38:57.77 ] マルチスレッドがやりたいならvb.netを使ったほうがいいよ vb6でやるならマルチプロセスでやったほうがいいな
948 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 14:16:45.68 ] ActiveXExeのスレッドでマルチスレッドをやってみたことはある。 非同期で処理しようと思ったら、結局別スレッドで作成した FormにTimerをおいて、そこから処理をスタートさせなければならない。 メソッドやプロパティはオブジェクト側のスレッドで同期して実行されるので 別スレッドのオブジェクトを呼び出しまくると、全然並列処理にならないw
949 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 18:56:07.60 ] >>934 あるよ。 FOR EACH的なものまである。 >>933 制御文レベルだとどれも似たようなもん。 しかし、それをもってほとんど一緒というお前はまだまだ素人。
950 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 19:08:54.62 ] >>942 Sleep 3000 は、3秒間何も出来ません、の意味。 やるんなら Private Sub Timer1_Timer() 'インターバルを1000にしておく Static cnt As long If cnt = 0 Then 'ここに3秒ごとの処理を入れる End If Text1.Text = Format(DateTime.Now(),"yyyy/mm/dd hh:nn:ss") cnt = cnt + 1 If 3 <= cnt Then cnt = 0 End If End Sub >>945 それだとcntが32768でオーバーフローになる
951 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 16:29:09.18 ] VisualBasicEditor(VB6 や OfficeVBA のエディタ部分)の 初期フォントの決定ルールを教えて欲しいです。分かる方、いますでしょうか。 日本語環境なら、MS ゴシック、英語環境ならCourier Newのようです。 オプションダイアログからフォント設定を変更した後ならレジストリに記録されてましたが、 インストール後からフォント変更するまでは、レジストリには項目がありませんでした。 知りたい理由は、VisualBasicEditor上に同じフォントで文字を描画したいからです。 同じフォントで描画ができればいいので、稼働中のVisualBasicEditorのフォント名などの情報や HFONT、LOGFONTなどを取得する方法がありましたら、そちらの方が適切に思うのですが、 VBEウィンドウに対してGetDC、GetWindowDCした後、GetTextFaceなどでは駄目でした。 初期フォントや稼働中フォントの取得方法が分かる方、どうぞよろしくお願いします。
952 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 16:58:49.24 ] ここってやっぱりVB.NET扱ってませんよね(´・ω・`)?
953 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 18:48:29.76 ] >>952 扱ってたら>>1 に「VB〜6.0の」なんて書いてありませんよね。日本語理解できてますか(´・ω・`)?
954 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 19:18:03.31 ] >>953 いるよねぇ。こういう一言多いやつ
955 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 19:34:06.91 ] やっぱり扱ってませんでしたか お騒がせしました(´・ω・`)
956 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 20:21:19.59 ] >>955 もう見てないと思うが、.netはここ VB.NET質問スレ(Part38) toro.2ch.net/test/read.cgi/tech/1325083428/
957 名前:デフォルトの名無しさん [2012/01/27(金) 04:15:41.25 ] >>951 VBインストール直後はフォント情報がレジストリにないということは レジストリ読んでみて、登録されてなかったら、そのデフォルトフォントにすればいいのでは? レジストリ読むAPIはAPIビューアの定義は間違いだらけだから気をつけて あれってVB5の時から間違ったままだから、初心者に諦めさせるように故意に間違えてるんだろか
958 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 09:32:31.10 ] APIの引数はByVal As Longで宣言して StrPtrとVarPtrで渡す時代
959 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 00:24:21.02 ] >>957 レス感謝です。もうレスは無いかと半ば諦めてました。 今のところ、まずはレジストリから取得するようにしています。 デフォルトフォントはOSの言語で決まるようだったので、できれば決め打ちではなく、 VB6と同じような何らかの決定ルールに従いたいと思ってました。 (英語版VB6を日本語版WinXPで試したところ、MS ゴシックがデフォルトフォントになりました) 詳細は読めなかったのですが、中国のサイトでソフトが紹介されているのを見つけたので、 少数ながら、海外にもユーザーがいるみたいなので、それもフォントを決め打ちにしたくない理由の1つです。 色々試してみて、どうやらレジストリから取得しているわけではなさそうなのですが…。
960 名前:デフォルトの名無しさん [2012/01/28(土) 08:35:49.31 ] そうねぇ、外国のOSならMSゴシックはないよねぇ とするとWindowsのどこかに・・ フォント名が定義されてるレジストリは余りないようだけど HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont あたりはどうでしょ こんなのを別のフォント名に変えてVBを新規インストールしてみて その変えたフォントになるかどうか ま、人に配布するソフトはそんな推測で作っちゃいけないよね
961 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 21:50:30.26 ] >>960 VB6新規インストールは行っていないものの、 レジストリ上の"MS ゴシック"、"MS Gothic"、"msgothic.ttc"を 別のものに変えて試してみたのですが空振りでした。 色々試してみたところ、VB6については、OSの言語に依存しているのではなく、 [コントロールパネル]-[地域と言語のオプション]-[詳細設定]-[Unicode 対応でないプログラムの言語] の設定に依存していることが分かりました。 また、この項目で「中国語(香港)、(マカオ)、(シンガポール)」を選択すると、 VBEで使用するフォントが必要な状況になるとVB6が強制終了してしまうことが分かりました。 内部でベタで持ってるのかもしれませんね…。 とりあえず、レジストリから取得、取得できない場合はベタ書きにしようと思います。
962 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 23:31:01.21 ] 961に誤りがあったので、誰かが変に参考にしないように訂正を。 [Unicode 対応でないプログラムの言語]の設定を 「中国語(香港)、(マカオ)、(シンガポール)」にするとVB6が強制終了すると書きましたが それは英語版VB6の話で、日本語版VB6の場合は問題ありませんでした。
963 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 21:47:40.78 ] 会社で仕事関係の一切の情報持ち出し、持込禁止になってから止めてたんだけど、PCにVB6インストールしようかなあ。 久しぶりに触りたくなってきた。