VBプログラマ質問スレ(Ver.6.0 まで) part57
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2011/04/30(土) 01:50:27.76質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。
VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。
○ 質問者の心得
一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。
二.VBScript、インストーラーなどはこのスレでOK。
三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
四.荒らしは相手しない。
○ 回答者の心得
一.答えられない質問は無駄に罵倒せずスルー。無理するな。
二.代用法を強制しない。
三.回答する上で必須ではない情報をむやみに聞き返さない。
四.荒らしは相手しない。
五.VB情報募集中。
六.回答は質問者が理解できるよう具体的に。
MSDN Online Japan ホーム
http://www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6
http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
http://www.google.co.jp/
※「まず自分で調べる」クセを身につけよう。
0002デフォルトの名無しさん
2011/04/30(土) 01:50:49.55Part 2 http://piza2.2ch.net/tech/kako/990/990793224.html
Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
Part 4 http://pc.2ch.net/tech/kako/1006/10069/1006922992.html
Part 5 http://pc.2ch.net/tech/kako/1010/10106/1010624646.html
Part 6 http://pc.2ch.net/tech/kako/1013/10138/1013844542.html
Part 7 http://pc.2ch.net/tech/kako/1015/10158/1015836357.html
Part 8 http://pc.2ch.net/tech/kako/1018/10187/1018794901.html
Part 9 http://pc.2ch.net/tech/kako/1020/10208/1020830472.html
Part10 http://pc.2ch.net/tech/kako/1022/10221/1022127528.html
Part11 http://pc.2ch.net/tech/kako/1024/10243/1024380249.html
Part12 http://pc3.2ch.net/tech/kako/1026/10266/1026642565.html
Part13 http://pc3.2ch.net/tech/kako/1029/10292/1029241786.html
Part14 http://pc3.2ch.net/tech/kako/1030/10309/1030947162.html
Part15 http://pc3.2ch.net/tech/kako/1032/10327/1032706491.html
Part16 http://pc3.2ch.net/tech/kako/1034/10343/1034302532.html
Part17 http://pc3.2ch.net/tech/kako/1036/10361/1036154952.html
Part18 http://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
Part19 http://pc3.2ch.net/tech/kako/1039/10398/1039859691.html
Part20 http://pc2.2ch.net/tech/kako/1041/10418/1041879465.html
Part21 http://pc2.2ch.net/tech/kako/1044/10440/1044028945.html
Part22 http://pc2.2ch.net/tech/kako/1046/10463/1046354784.html
Part23 http://pc2.2ch.net/tech/kako/1047/10477/1047743187.html
Part24 http://pc2.2ch.net/tech/kako/1050/10501/1050151126.html
Part25 http://pc2.2ch.net/tech/kako/1052/10526/1052627913.html
Part26 http://pc2.2ch.net/tech/kako/1055/10551/1055145106.html
Part27 http://pc2.2ch.net/tech/kako/1058/10586/1058674927.html
Part28 http://pc2.2ch.net/tech/kako/1061/10612/1061296197.html
Part29 http://pc2.2ch.net/tech/kako/1065/10654/1065446334.html
0003デフォルトの名無しさん
2011/04/30(土) 01:51:19.26Part31 http://pc2.2ch.net/test/read.cgi/tech/1073732636/
Part32 http://pc5.2ch.net/test/read.cgi/tech/1077216109/
Part33 http://pc5.2ch.net/test/read.cgi/tech/1080606445/
Part34 http://pc5.2ch.net/test/read.cgi/tech/1084544243/
Part35 http://pc5.2ch.net/test/read.cgi/tech/1087519251/
Part36 http://pc5.2ch.net/test/read.cgi/tech/1092906058/
Part37 http://pc5.2ch.net/test/read.cgi/tech/1090286450/
Part38 http://pc5.2ch.net/test/read.cgi/tech/1095673000/
Part39 http://pc5.2ch.net/test/read.cgi/tech/1099737063/
Part40 http://pc5.2ch.net/test/read.cgi/tech/1106748775/
Part41 http://pc8.2ch.net/test/read.cgi/tech/1112414085/
Part42 http://pc8.2ch.net/test/read.cgi/tech/1116924129/
Part43 http://pc8.2ch.net/test/read.cgi/tech/1123952677/
Part44 http://pc8.2ch.net/test/read.cgi/tech/1130231657/
Part45 http://pc8.2ch.net/test/read.cgi/tech/1133977286/
Part46 http://pc8.2ch.net/test/read.cgi/tech/1138975113/
Part47 http://pc8.2ch.net/test/read.cgi/tech/1141320612/
Part48 http://pc8.2ch.net/test/read.cgi/tech/1146678926/
Part49 http://pc8.2ch.net/test/read.cgi/tech/1152667953/
Part50 http://pc10.2ch.net/test/read.cgi/tech/1161517193/
Part51 http://pc11.2ch.net/test/read.cgi/tech/1169949451/
Part52 http://pc11.2ch.net/test/read.cgi/tech/1179563617/
Part53 http://pc11.2ch.net/test/read.cgi/tech/1187667616/
Part54 http://pc11.2ch.net/test/read.cgi/tech/1204552981/
Part55 http://pc12.2ch.net/test/read.cgi/tech/1247487156/
Part56 http://hibari.2ch.net/test/read.cgi/tech/1275397597/
0004デフォルトの名無しさん
2011/04/30(土) 01:52:22.060005デフォルトの名無しさん
2011/04/30(土) 01:53:44.880006デフォルトの名無しさん
2011/04/30(土) 01:57:13.01だからDIはそれを使いやすくフレームワークに
まとめた仕組みのことを言うんだよ。
具体的にはオブジェクトの生成部分を
コード内に書かないでフレームワークに任せる。
多態を使ってても、オブジェクトの生成は
コードに書いてしまうだろ。それじゃだめだってこと。
0007デフォルトの名無しさん
2011/04/30(土) 02:02:05.11依存をなくすのではなくて依存を分離するのが目的。
クラスから依存が減る。それはなくなるという意味ではなく
XMLに分離するということ。
あなたの言っていることは問題ではなくて、
そもそもそういうふうにしたい事、つまり目的だよ。
0008デフォルトの名無しさん
2011/04/30(土) 02:09:57.790009デフォルトの名無しさん
2011/04/30(土) 02:17:09.59Private 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
0010デフォルトの名無しさん
2011/04/30(土) 02:28:44.10やってることはそれに近いけど、それでは
それは普通のやり方よりコードが増えて、面倒になってる。
そういう面倒事をやってくれるのがDIコンテナ
public fso As IFileSystemObject
Private Sub Command1_Click()
pth = fso.BuildPath("c:\windows", "test.ini")
Debug.Print pth
End Sub
これだけじゃ動かない? たしかにfsoがNothingだからね。
でこれを動くようにしてくれるのがDIコンテナ。
0011デフォルトの名無しさん
2011/04/30(土) 02:35:52.780012デフォルトの名無しさん
2011/04/30(土) 02:39:04.11なんかとんでもない勘違いをしてるぞw
0013デフォルトの名無しさん
2011/04/30(土) 02:43:07.62明日昼間もういちど前スレから読み直してみる
ありがと
0014デフォルトの名無しさん
2011/04/30(土) 02:54:27.75継承してないから、fsoにFileSystemObjectそのものを入れることはできない。
入れることができるようにした「FileSystemObjectっぽいもの」を作る必要がある。
でもそれは既存のクラスの問題であって、自分で作るクラスには関係ない話。
重要なのは、このコードには new FileSystemObjectっぽいもの というコードが入ってないから
fsoには「FileSystemObjectっぽいもの」だけではなく、たとえば
テスト用のFileSystemObjectを入れたり、ネットワーク対応のFileSystemObjectを入れたりできる。
実際に入れる作業をするのはDIコンテナだけどね。
特にテスト用のFileSystemObjectを入れられるところが重要で、
FileSystemObjectを使わずに単体テストができる
それでいてコードが前と殆ど変わってないところも注目するところ。
で、最初の質問に答えると、VB6用のDIコンテナは知らないが(多分ないと思う)
DIコンテナを作ることは可能
0015デフォルトの名無しさん
2011/04/30(土) 02:59:09.66Microsoft Sripting Runtime (scrrun.dll)
の両方にFileSystemObjectあるけど未だに違いがわからん
0016デフォルトの名無しさん
2011/04/30(土) 03:02:52.11DIはぴったりだと思うな。
DIが出てきた背景には(昔の)EJBの継承を強要するやり方は
複雑でテストしにくい。POJO(継承使ってない単純なオブジェクト)を
使いましょう。ってのがあるし。
VBはもともと継承が使えない。
0017デフォルトの名無しさん
2011/04/30(土) 03:05:08.260018デフォルトの名無しさん
2011/04/30(土) 03:10:07.03別のとこでfsoに代入するコードが書かれてるってことか
0019デフォルトの名無しさん
2011/04/30(土) 03:18:52.07そう。書かれてる。
ただしDIコンテナというフレームワークが
やってくれるところだから見るべきところではない。
勝手に入れてくれるという認識でOK
ただし、VB6用のDIコンテはないw
0020デフォルトの名無しさん
2011/04/30(土) 03:22:28.040021デフォルトの名無しさん
2011/04/30(土) 08:47:23.24ListViewとかTreeViewへの表示にはimplementsしたクラスを
利用してる。これだけでもだいぶ助かるけど…
Javaだとインターフェースはインターフェースだけで
その場でインターフェースをnewして、しかもその場で
実装を書くことが可能。
VB6やってて不便に思うのは…
引数付きコンストラクタが無い事と、インターフェースのnew実装か。
0022デフォルトの名無しさん
2011/04/30(土) 11:45:40.71引数付きコンストラクタは、適当な関数でも作ればいいと思う。
newして引数を設定する関数でも、newしてクラスのメソッドを呼び出す関数でも。
0023デフォルトの名無しさん
2011/04/30(土) 11:47:30.26> その場でインターフェースをnewして、しかもその場で
> 実装を書くことが可能。
あ、無名クラスのことか。
正確にはインターフェースをnewしてるんじゃなくて
名前がないクラス作ってるんだけどな。
0024デフォルトの名無しさん
2011/04/30(土) 12:34:59.220025デフォルトの名無しさん
2011/04/30(土) 12:52:17.30Dim 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が呼ばれる
0026デフォルトの名無しさん
2011/04/30(土) 22:42:11.86かといって、インターフェースかぶせても、
インターフェース名_メソッド名
が、メソッド名になるのも、はっきりいってうっとおしい。
0027デフォルトの名無しさん
2011/05/01(日) 02:54:20.11Javaとかだとインターフェース無しでインターフェース用のメソッドにアクセスできるんだっけか?
interface Class1 { void hoge(); }
class Class2 implements Class1 { public void hoge(){} }
で
Class2 c2 = new Class2; c2.hoge();ができちゃうけど
VBだとちゃんとインターフェースかまさなきゃhogeできないのは優秀なんじゃね?
0028デフォルトの名無しさん
2011/05/01(日) 02:56:19.900029デフォルトの名無しさん
2011/05/01(日) 04:16:08.27> インターフェースなくても同名メソッド使えるっていうのは嫌だな。
そういう言語は他にもあるし(例 JavaScript、Perl)
> インターフェース名_メソッド名
インターフェース名::メソッド名 や インターフェース名.メソッド名
と大差ない
まだまだ経験が足りないようだなw
0030デフォルトの名無しさん
2011/05/01(日) 04:22:24.58インターフェース名_メソッド名 に
ならないから、
複数のインターフェースで同名のメソッドがあった場合に
困るんだっけ?count()とかありがちなメソッド
0031デフォルトの名無しさん
2011/05/01(日) 04:38:54.040032デフォルトの名無しさん
2011/05/01(日) 14:16:00.62こればっかりはC#より良い。
0033デフォルトの名無しさん
2011/05/01(日) 15:20:47.28VB6のインターフェイスの宣言は中身(実装)の無いクラスを使うことが多いけど、
IDLも使えるあたりもろにCOM相互運用のためのものと分かる。
>>32
VB.NETのインターフェイスは実装のときに
C#の明示的実装のような書き方になるのであんまり好きじゃないけど、
良くできてると思うのはなぜ?
0034デフォルトの名無しさん
2011/05/01(日) 15:47:40.04例えばC#の場合、インターフェイスのメンバーを、
(1) 同じ名前のシグネチャのメソッドとして実装した場合、どれがインターフェイスを
実装したメソッドか明示的に分からない。(これは個人的に気持ち悪い)
(2) 明示的実装を使った場合は、そのメソッドはインターフェイスを通してしか
呼び出せない。
という問題があるけど、VBの場合はこれがない。
一つのメソッドが普通のクラスメンバでありつつ、同時にインターフェースの
明示的な実装でもありうる。
http://www.atmarkit.co.jp/fdotnet/onepoint/onepoint01/onepoint01_02.html
0035デフォルトの名無しさん
2011/05/02(月) 00:04:56.75この流れで質問させてほしい。
マイクロソフト系言語には、プロパティつうものの存在があって
プロパティ用のアクセッサの書き方があるけど、
普通にゲッタとセッタで実装できそうなのに、なんでプロパティ用の
アクセッサの書き方があるの?
0036デフォルトの名無しさん
2011/05/02(月) 00:34:33.44変数名などa, b, c, ....でも「実装できそうなのに」分かり易い名前を付けるのと同じ動機。
もう一つはプロパティとメソッドが機械から区別できた方がいい事があるから。
例えばVB6でも.NETでもGUIアプリのデザインをデザイナでデザインできるのはこのため。
0037デフォルトの名無しさん
2011/05/02(月) 05:27:47.95メソッドと同じ書式でいちいちゲッタセッタを書くのが面倒だから。
プロパティならとりあえず変数として宣言しておいて、
あとで気が変わったときにゲッタセッタ(プロパティ)を書けば済む。
0038デフォルトの名無しさん
2011/05/02(月) 13:55:12.47答えになってないでしょ。
何故Bが必要かと聞いているのに、何時でもAはBに変更できるからってそれ何だよ。
0039デフォルトの名無しさん
2011/05/03(火) 15:41:07.990040デフォルトの名無しさん
2011/05/03(火) 15:51:32.83あそこは今でも一部tipsは有料でやってるのかな。
そりゃ人がどんな商売しようと自由だけど、個人的にはケツの穴が小さいなと思わずにいられない。
0041デフォルトの名無しさん
2011/05/05(木) 16:01:42.55渡すファイルを、一旦、日本語を使わないパス・ファイル名にコピーしてから渡す回避策はあるけれど
0042デフォルトの名無しさん
2011/05/05(木) 19:21:33.46> 普通にゲッタとセッタで実装できそうなのに、なんでプロパティ用の
> アクセッサの書き方があるの?
人間の感覚だろうなぁ。
プログラム言語とは関係ないUMLだって、
メソッドとは別に属性(プロパティ)というものがある。
だけど、これ、ゲッタ、セッタで置き換え可能。
つまり実装するにあたって属性というものは必要ないということになるが、
やっぱり属性ってのは、メソッドとは別ものと人間は考えてしまうようだ。
0043デフォルトの名無しさん
2011/05/05(木) 22:11:51.68オブジェクト指向の話になるとオブジェクト指向論と
オブジェクト指向言語の実装についての話がごっちゃになるんだが
メッセージパッシングをメソッド呼び出しで実装したと考えれば
外部公開属性はやっぱ別にしたい
0044デフォルトの名無しさん
2011/05/07(土) 02:18:50.27object.property++ なんて書き方ができない
object.setProperty(object.getProperty()+1) こうなる。
0045デフォルトの名無しさん
2011/05/07(土) 03:06:00.340046デフォルトの名無しさん
2011/05/07(土) 15:30:58.47>object.property++ なんて書き方ができない
この書き方をしたいならメンバ変数をPublicにすれば良いだけ。
>object.setProperty(object.getProperty()+1)
この方が安全といえば安全と思う。
0047デフォルトの名無しさん
2011/05/07(土) 21:07:10.24インクリメント演算子なんてものはないにしても、>>44の言いたいことはまあ半分は分かる。
要するに、
>object.setProperty(object.getProperty()+1)
こういうのは見難いし醜いということ。
ついでに変数をPublicにしたのでは値の取得または設定時に動作を絡ませることができない。
0048デフォルトの名無しさん
2011/05/08(日) 00:32:37.20感覚通りに名前をつけられるのが
プロパティのいいところ。
0049デフォルトの名無しさん
2011/05/08(日) 01:42:29.37こういうのは
object.addProperty(1)
を作ればいいのでは
0050デフォルトの名無しさん
2011/05/08(日) 17:27:14.50まあそれが妥当だろうね。
0051デフォルトの名無しさん
2011/05/08(日) 18:03:11.90属性(プロパティ)が100あったら、100ごとにセッタ、ゲッタ、>>49相当のものを
一々書くのかw
書く手間のことを言ってるんじゃない。
各属性ごとにその3つなら3つのメソッドを管理するの?
やってられるかよ。
ちなみにaddHogeでは「Hogeを足す」になってしまわないか?
0052デフォルトの名無しさん
2011/05/08(日) 19:09:44.580053デフォルトの名無しさん
2011/05/09(月) 00:15:16.20>addHogeでは「Hogeを足す」
まさにそういうメソッドだろう
0054デフォルトの名無しさん
2011/05/09(月) 00:25:56.79「Hogeに足す」と「Hogeを足す」の違い分かる?
0055デフォルトの名無しさん
2011/05/09(月) 00:37:15.56気にいらんかったらaddHogeValueでもaddHogeCountでも
好きに作ったらええがな
0056デフォルトの名無しさん
2011/05/10(火) 13:59:16.810057デフォルトの名無しさん
2011/05/10(火) 15:32:38.220058デフォルトの名無しさん
2011/05/13(金) 21:57:56.250059デフォルトの名無しさん
2011/05/14(土) 01:39:31.35それは、ゲッターとセッターの両方をつけるのと何が違うんだ?
0060デフォルトの名無しさん
2011/05/14(土) 06:46:10.74ゲッター/セッターなら、変な値を設定できないようにしたり、
読み出された回数数えたりできるよ。
0061デフォルトの名無しさん
2011/05/14(土) 09:34:59.88エクセルみたいにセルの下や右だけ罫線の色を変える、みたいなことはできないんですか?
0062デフォルトの名無しさん
2011/05/14(土) 10:15:51.49フレックスグリッド系コントロールの中には、それが出来るものもある
当然、無料じゃないけどな
あとはラインとかピクチャーコントロールとかに色つけて重ねて
擬似的に実装するとかな
0063デフォルトの名無しさん
2011/05/14(土) 16:42:05.71プロパティプロシージャでもできるやろ
0064デフォルトの名無しさん
2011/05/14(土) 18:15:27.31>>59
0065デフォルトの名無しさん
2011/05/14(土) 18:23:24.27特に>>64
個人的にはこういうのは他人がエスパーだと思ってるとしか思えん。
0066デフォルトの名無しさん
2011/05/14(土) 18:55:36.41理解したいなら「どういうこと?」って聞けばいいのに。
0067デフォルトの名無しさん
2011/05/16(月) 13:19:30.97With New FileSystemObject
filesize = .GetFile(filepath).Size
End With
0068デフォルトの名無しさん
2011/05/16(月) 13:33:41.860069デフォルトの名無しさん
2011/05/16(月) 13:53:05.690070デフォルトの名無しさん
2011/05/16(月) 17:31:59.110071デフォルトの名無しさん
2011/05/16(月) 19:44:45.24またWithでNewか。いいけど。
0072デフォルトの名無しさん
2011/05/17(火) 00:06:52.59これって、End Withで解放されるの?
ガーベジコレクション的にも大丈夫?
ところで皆さんはガーベジコレクションって言いますか?
ガーベッジコレクションって言いますか?
0073デフォルトの名無しさん
2011/05/17(火) 18:55:36.37End Withの後、アクセスしようが無くなって、たぶんメソッド抜けた時点で開放されるかな。
0074デフォルトの名無しさん
2011/05/17(火) 22:21:37.180075デフォルトの名無しさん
2011/05/18(水) 07:15:17.07自作クラスでやるなら、簡単だよな?
0076デフォルトの名無しさん
2011/05/18(水) 17:14:53.760077デフォルトの名無しさん
2011/05/18(水) 19:38:30.99terminateイベントプロシージャにDebug,Print "hoge"とでも書けば
0078デフォルトの名無しさん
2011/05/19(木) 01:03:58.16なるほど
0079デフォルトの名無しさん
2011/05/19(木) 01:08:41.62Public 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
0080デフォルトの名無しさん
2011/05/20(金) 15:31:26.12自宅でWindows7を使っています。インターネット接続環境はありません。そのため、ネットカフェでダウンロードして、自宅でそれをインストールしたいのですが、オフラインの自宅でインストールは可能でしょうか?
また何というものをダウンロードすればいいのですか?
いろいろ調べたら、単なる勉学者は、Express Editionとかいうのをダウンロードすればいいみたいですが、詳しくはわかりません。
以上を踏まえ、どなたか何とぞ、お教えねがいます。
0081デフォルトの名無しさん
2011/05/20(金) 16:06:07.83スレ違い
ダウンロード出来るのは、VBではなくVB.NET
VB.NET質問スレ(Part36)
http://hibari.2ch.net/test/read.cgi/tech/1301828549/
0082デフォルトの名無しさん
2011/05/20(金) 16:15:50.20このサイトのMSLFILESにあるVB6用のサンプルプログラムってVB6やるからには見ておいたほうがいいの?
0083デフォルトの名無しさん
2011/05/20(金) 17:55:11.040084デフォルトの名無しさん
2011/05/20(金) 17:58:13.020085デフォルトの名無しさん
2011/05/20(金) 18:06:50.490086デフォルトの名無しさん
2011/05/21(土) 23:03:28.32Private Sub Command1_Clic()
List1.【 �@ 】
List1.【 �A 】
End Sub
0087デフォルトの名無しさん
2011/05/21(土) 23:11:50.42Private 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
0088デフォルトの名無しさん
2011/05/21(土) 23:24:53.290089デフォルトの名無しさん
2011/05/21(土) 23:46:50.700090デフォルトの名無しさん
2011/05/22(日) 00:57:54.890091デフォルトの名無しさん
2011/05/22(日) 01:13:59.00値の保持が必要ないなら、ReDim Preserveは遅いだけだし
0092デフォルトの名無しさん
2011/05/22(日) 03:21:05.030093デフォルトの名無しさん
2011/05/22(日) 16:34:01.940094デフォルトの名無しさん
2011/05/22(日) 17:11:34.880095デフォルトの名無しさん
2011/05/22(日) 20:22:20.71先生!なに入れてもコマンドボタンが反応しません!
0096デフォルトの名無しさん
2011/05/22(日) 21:00:12.41なんてマのヌケた出題なんだろう…
0097デフォルトの名無しさん
2011/05/24(火) 23:15:18.09重複するデータを抜き出したい
A,B,A,B,A,A,C,F,C....
欲しいデータは重複データなので上記の場合
A,B,Cとなります
unique以外を取得したいのです
0098デフォルトの名無しさん
2011/05/25(水) 01:01:19.38ソートしてから、2つ以上同一の値が連続しているものを抜粋する
Filter掛けて、戻り値のUBoundが1以上のものを列挙する
連想配列を利用する
いろいろ方法はあるので、お好きな物をどうぞ
0099デフォルトの名無しさん
2011/05/25(水) 01:02:11.41最速アルゴリズムを尋ねているのか
0100デフォルトの名無しさん
2011/05/25(水) 01:30:36.510101デフォルトの名無しさん
2011/05/25(水) 01:34:08.95010297
2011/05/25(水) 07:51:55.31連想配列でぐぐってきた!
連想配列が何か分かったけど、どうアルゴリズム化していいかわかんねw
>>99
uniqueの逆の関数があれば1番良かったんですけど、なさそうなのでアルゴリズムです
010397
2011/05/25(水) 12:53:49.58l = 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
0105デフォルトの名無しさん
2011/05/25(水) 18:19:25.53Bや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」にしたいという最初の条件とは違うよね
0106デフォルトの名無しさん
2011/05/25(水) 19:45:31.840107デフォルトの名無しさん
2011/05/25(水) 19:53:16.450108デフォルトの名無しさん
2011/05/25(水) 19:54:26.430109デフォルトの名無しさん
2011/05/25(水) 20:05:42.48Private 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
0110デフォルトの名無しさん
2011/05/25(水) 20:42:36.810111デフォルトの名無しさん
2011/05/25(水) 23:23:18.200112デフォルトの名無しさん
2011/05/26(木) 01:59:56.98Set 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
0113デフォルトの名無しさん
2011/05/26(木) 02:06:32.87>>103を見るかぎりhogeArrayの中身は
0115デフォルトの名無しさん
2011/05/26(木) 13:00:44.16ググっても見付かりません
0116デフォルトの名無しさん
2011/05/26(木) 13:12:22.090117デフォルトの名無しさん
2011/05/26(木) 15:41:14.52近似解が求められるプログラミングを作りたいんですが、どう作ればよいですか?
もしスレチでしたらすみません
0118デフォルトの名無しさん
2011/05/26(木) 20:51:24.73http://hibari.2ch.net/test/read.cgi/tech/1276873238/
0119デフォルトの名無しさん
2011/05/28(土) 15:26:54.340120デフォルトの名無しさん
2011/05/28(土) 15:47:14.470121デフォルトの名無しさん
2011/05/28(土) 18:11:35.77実用的じゃないけど、可能だよ。
0122デフォルトの名無しさん
2011/05/28(土) 18:50:02.37可能だけど、実用的じゃないよ。
0123デフォルトの名無しさん
2011/05/28(土) 19:11:31.96ちょwww
訂正って、それじゃ意味変わってないだろ。
訂正するなら「不可能だけど、実用的だよ」か
「可能だし、実用的だよ」のどちらかだろwww
0124デフォルトの名無しさん
2011/05/28(土) 22:00:55.94B = 可能
元の文章は
not A and B
訂正するなら
not A and not B
A and B
A and not B
もっとも日本語として強調したい部分というのは後にもってくるという
のもあるので、
not A and B
を
B and not A
と言い換えるのも無い事は無いか。
0125デフォルトの名無しさん
2011/05/28(土) 22:17:24.05「表現」を「訂正」してるだけだろ。
まあ、いちいち訂正するほどのコトとは思えないけど。
0126デフォルトの名無しさん
2011/05/29(日) 01:46:44.64Public 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
0127デフォルトの名無しさん
2011/05/29(日) 01:53:17.35Cdbl(v)する前に
If Not IsNumeric(v) Then Exit Function
を入れる
0128デフォルトの名無しさん
2011/05/29(日) 01:59:09.34とかして
End Functionの手前にErrorLabel:って入れればOK
0129デフォルトの名無しさん
2011/05/29(日) 09:10:26.34n = Int(Log(p)/Log(1000#)): p = p / (1000# ^ n)
# 元のプログラムと n の値が 1 違うので注意 (0 ベースになる)
# v = 0 の時に Log() がエラーになるので、そのケースがあるなら事前に場合分けが必要
0130デフォルトの名無しさん
2011/05/30(月) 03:20:52.74勉強になります
ありがとうございました
0131デフォルトの名無しさん
2011/05/31(火) 15:32:01.70連想配列みたいにアクセスするインターフェースってどうやって作るん?
0132131
2011/05/31(火) 16:27:12.110133デフォルトの名無しさん
2011/05/31(火) 17:00:57.810134デフォルトの名無しさん
2011/06/01(水) 12:34:59.02なかなか再現しません。このエラーを故意に起こすには、どのようにコーディングすればいいですか?
OSはNT4です。
0135デフォルトの名無しさん
2011/06/02(木) 21:10:23.48今下記のような感じでテキストファイルを読み込んで
excelに出力するものを作っています。
Array1と10に降順でソートを掛けたいと思っています。
ですが、どう記述するのかわかりませんでした・・・・
どなたかお力お貸しください。
0136デフォルトの名無しさん
2011/06/02(木) 21:12:42.14どこかの大学バカ教授が授業でVB6で課題でも出したのか?
0137135
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))〜
0138デフォルトの名無しさん
2011/06/03(金) 00:35:50.94ソフトが動かなくなってしまいました。なぜ?
ブラウン管に戻すと動きます。
0139デフォルトの名無しさん
2011/06/03(金) 01:10:39.610140デフォルトの名無しさん
2011/06/03(金) 02:17:22.81モニタのど真ん中に可視な属性を持ってるのに大きさがないという
ウインドウというかプロセスがあるね
キャプションで探したウインドウがGetWindowRectでサイズが0でずっと悩んじゃったよ
まるで民主党の朝鮮人たちに騙された気分だよ
0141デフォルトの名無しさん
2011/06/03(金) 02:27:53.82あー、それ>>140と関係してるかもね
プロセス列挙してウンドウを探すときにLeftが512だったら弾く、とかやってると
モニタサイズが変わったら弾けなくなる
LeftじゃなくてWidthが0だったら弾くようにすればおk
0142福盛俊明
2011/06/03(金) 09:09:29.66俺はDarkBASICの天才♪”
俺に答えられない質問はない
質問はこちらへ
http://www.geocities.jp/courant_de_console/main_street/index.html
アハアハ〜♪”
0143デフォルトの名無しさん
2011/06/03(金) 18:43:25.43エクセルを開いてから、オートフィルタで手作業でソート
0144デフォルトの名無しさん
2011/06/05(日) 20:08:58.705分後にシャットダウンするプログラムを作ってます。
MsgBox "5分後にシャットダウンします。"
WScript.Sleep(300000)
'ここにシャットダウンの処理
これで一応シャットダウンできますが、終了一分前にメッセージを出そうとして下記のように変えると、
「1分後に(ry」のメッセージボックスのOKを押すまで処理が止まってしまうので、正確な5分になりません。
MsgBox "5分後にシャットダウンします。"
WScript.Sleep(240000)
MsgBox "1分後にシャットダウンします。"
WScript.Sleep(60000)
'ここにシャットダウンの処理
メッセージボックス出しつつ処理を止めない方法ってありますか?
同じことができれば代用法でもなんでも構いません
0145デフォルトの名無しさん
2011/06/05(日) 20:24:31.18メッセージボックスやモーダルのフォームではなく、
モードレスのフォームを出せばいい。
0146デフォルトの名無しさん
2011/06/05(日) 20:52:18.41レスどーも
でも色々調べてたら自己解決してしまった(・_・;)
コマンドラインで
shutdown -s -t 300
って書くと自動で2分前に警告だしてくれたらからこっち使います
0147デフォルトの名無しさん
2011/06/06(月) 18:48:24.522分前?
0148デフォルトの名無しさん
2011/06/09(木) 22:01:47.41imdate(inputManのやつ)で日付を取ってそれに+1日したいんだが
どうしたらいいんでしょうか。
Date + 1に出来たらいいかなと思ったんだが
imdate.Numberで数字で取得するからなんともいかんのかな?
0149デフォルトの名無しさん
2011/06/09(木) 23:24:54.450150デフォルトの名無しさん
2011/06/09(木) 23:25:57.170151デフォルトの名無しさん
2011/06/09(木) 23:27:30.000152148
2011/06/09(木) 23:35:56.070153デフォルトの名無しさん
2011/06/11(土) 00:08:05.03だって
VBのバージョンなんか関係ないのに
その1行しか言えないレベルの奴なんだ
0154デフォルトの名無しさん
2011/06/11(土) 09:44:32.950155デフォルトの名無しさん
2011/06/11(土) 14:01:36.47大抵関係ない情報聞くやつは
使いものにならないんだよねw
0156デフォルトの名無しさん
2011/06/11(土) 17:48:24.37それを「VBのバージョンを言え」と字数多くしてまで乱暴に言うのは
まさに超初心者ならではの頭の悪さ
で、imdate.Numberが日付型ならDateAdd、文字ならCDateしてから
0157デフォルトの名無しさん
2011/06/11(土) 19:38:30.77> 「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。
というのがルールなんだから、質問内容がバージョン関係有る無しに関わらず
まずは郷に入っては郷に従えってだけのことだろ
0158デフォルトの名無しさん
2011/06/11(土) 19:55:06.350159デフォルトの名無しさん
2011/06/11(土) 21:31:12.160160デフォルトの名無しさん
2011/06/11(土) 23:13:06.76バージョンも書かないような奴は >>1 もろくろく読んでな
いような奴だから、スレタイも読んでない可能性高いかもね。
て言うか、質問者は後出しながらバージョン答えてるし、
>>153 は一体なにと戦ってるんだ?
0161デフォルトの名無しさん
2011/06/11(土) 23:17:29.220162デフォルトの名無しさん
2011/06/11(土) 23:23:01.63いらないよね。赤っ恥かかされたからって、必死こいて戦うことないよね。
0163デフォルトの名無しさん
2011/06/11(土) 23:31:29.550164デフォルトの名無しさん
2011/06/12(日) 05:18:06.48顔真っ赤にして、そんなに悔しかったの?
0165デフォルトの名無しさん
2011/06/12(日) 09:48:19.38敗北宣言乙
0166デフォルトの名無しさん
2011/06/12(日) 09:49:17.07http://jpcity.lolipop.jp/phpBBq/viewtopic.php?f=29&t=957#p1595
0167デフォルトの名無しさん
2011/06/12(日) 10:03:10.15一人相撲で勝利宣言?
0168デフォルトの名無しさん
2011/06/12(日) 10:41:59.64生 同 .じ . /´ | (ゝ___) い
.し 士 .レ .__/'r-┴<ゝi,,ノ ro、 は、
.な で .ベ ∠ゝ (ゝ.//` ./`| }⌒j
.い し .ル } ⌒ /`ヽ、_∠l,ノ ・ヽ´
.! ! か の / ´..:.} >、、___, .r、 ソ、`\
/ ..:.:.} / |∨ ` ̄
/ ..:.:./ | 丶
/ _、 ..:.:.:.{ .{.:.:. \
{ ..:Y .ゝ、 {.:.:.:.:. ヽ
|、 ..:/ 丿 .:〉 >.- ⌒ . ヽ
/ {. ..:./ ソ ..:./ .( ..:.:.:` ..:}
./..:.:}.:.:./ ヘ、 ..:./ .\ ..:.:r_,ノ、.:.:}
./..:.:/|.:/ {.:./ X.:.:}.} X X
/..:.:/ .}.:| }:/ .Y丶ヽ Y.:Y
. __/.:/ { } 《.〈、 _,,__>.:》丶 Y.:\
/.:.:.:.:.::/ !.:.:ゝ ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ \.: ̄>
0169デフォルトの名無しさん
2011/06/12(日) 10:46:29.270170デフォルトの名無しさん
2011/06/12(日) 10:52:23.61まったく関係のないバージョンの話なんて聞くような馬鹿だしwww
0171デフォルトの名無しさん
2011/06/12(日) 11:02:12.26反抗期なのかもしれないが、そんなんじゃ社会に出てから困ることになるぞ
0172デフォルトの名無しさん
2011/06/12(日) 11:10:17.42社会人としてのルールとして、そこの所を答えてくれないか?
0173デフォルトの名無しさん
2011/06/12(日) 11:18:56.10/⌒ ⌒\
/( ●) (●)\
/::::::⌒(__人__)⌒::::: \
| |r┬-| |
\ `ー'´ / このスレ香ばしいNE!
/` ‐- __ - ‐‐ ´ \
/ .l _,,ヽ ___ 〉、
| l / ,' 3 `ヽーっ
ヒト- _ l ⊃ ⌒_つ
. !__  ̄, ̄ `'ー-┬‐'''''"
L  ̄7┘l-─┬┘
ノ  ̄/ .! ̄ ヽ
└‐ '´ ` -┘
0174デフォルトの名無しさん
2011/06/12(日) 11:53:03.08なぜ理由を聞いてるんだい?ルールだからか?必要あったか?空気読まずに聞くほどに?
0175デフォルトの名無しさん
2011/06/12(日) 12:06:46.28鸚鵡返しするような状態になっちゃお終いですね
こんな人が社会に出てからとか言ってんだからお笑いです
0176デフォルトの名無しさん
2011/06/12(日) 12:34:17.84まあ、本人満足してるみたいだからいいか (w
0177デフォルトの名無しさん
2011/06/12(日) 12:38:25.190178デフォルトの名無しさん
2011/06/12(日) 12:40:40.77近年の人は愚かにしか見えない
0179デフォルトの名無しさん
2011/06/12(日) 18:39:16.06質問があったとかそれに対する返事だとかそういうのじゃないので伸びてたのか
残念だ
0180デフォルトの名無しさん
2011/06/12(日) 18:55:49.700181デフォルトの名無しさん
2011/06/12(日) 19:10:39.68同じく。
そもそも、このスレでバージョンは○○ですって書いてる人あんま見ないけどな。
ところで、COM使った開発とか新規でまだやってたりする?
この間.NETじゃないただのASPで動かさなきゃいけない案件があって、
バッチでも使う共通処理があったから、COMで作る事にしたんだが、VB.NET
でも簡単にCOM作れるのな。
中身はマネージドだから、VB6.0で作った方が動作は早かったかな。
0182デフォルトの名無しさん
2011/06/12(日) 19:18:18.050183デフォルトの名無しさん
2011/06/13(月) 17:10:31.720184デフォルトの名無しさん
2011/06/13(月) 17:41:27.350185デフォルトの名無しさん
2011/06/13(月) 20:30:45.05まさかこれってコンパイラDLしなくでもVBできる?
VBはじめようと思ってんだけど
誰かコレについて教えてくれ
0186デフォルトの名無しさん
2011/06/13(月) 20:51:09.210187デフォルトの名無しさん
2011/06/13(月) 23:10:28.61まあ VB と似たようなもんだけど、Word がないと動作しないよ。
まずは word vba あたりでググレ。
0188デフォルトの名無しさん
2011/06/14(火) 06:26:34.17言い方きっついレスポンスは幼馴染みが
照れ隠しで怒っている感じに変換して
読んでる
0189デフォルトの名無しさん
2011/06/15(水) 10:20:39.97Set xlBook = xlApp.Workbooks.Open(xlTestFile)で開いた場合
Arrayって使えますか?
読込んだTextを文字列か標準かを指定してデータをExcelに挿入したいのですが・・
0190デフォルトの名無しさん
2011/06/15(水) 11:00:48.32日本語での質問もまともに出来ない奴が多い件
0191デフォルトの名無しさん
2011/06/15(水) 11:19:07.010192デフォルトの名無しさん
2011/06/15(水) 12:23:24.38Controls.Addで動的に作成したTextBoxのMultiLineプロパティをTrueにする方法を教えてください。
普通にコードで設定しようとすると「値の取得のみ可能なプロパティに値を設定することはできません。」というエラーが出ます。
デザイン時にMultiLine=TrueにしたTextBoxをコントロール配列にしてLoadすれば、
MultiLine=TrueのTextBoxを動的に作ること自体は出来るのですが、都合によりコントロール配列ではダメなので。
最悪、デフォでMultiLine=TrueなTextBoxをユーザーコントロールとして作って、それをControls.Addで動的に作成するという
手法も考えてますが、もっと簡単な方法があればご教示ください。
0193デフォルトの名無しさん
2011/06/15(水) 14:40:03.680194デフォルトの名無しさん
2011/06/17(金) 00:34:45.03うらやましい
次の言語はなんですか
0195デフォルトの名無しさん
2011/06/17(金) 03:39:58.92家族の誰かが何かインストールしたらしくその際にVB6ランタイムが上書きされたかで
VB6およびVB6製アプリが正常動作しなくなった
ベクターにあったVB6ランタイムをインストールしたら直ったけど
ウィルス感染かと思ったわ
0196デフォルトの名無しさん
2011/06/17(金) 08:37:41.49それは壊れるとは言わない。
古いライブラリに入れ替わっただけ。
そんなのはVB関係ないし、OSだって関係なく
起こり得る話。
0197デフォルトの名無しさん
2011/06/17(金) 13:07:36.93「なにこれわかんない。とりあえずはいでいいよね」って選択していったんだろ
0198デフォルトの名無しさん
2011/06/17(金) 15:32:50.010199デフォルトの名無しさん
2011/06/17(金) 17:00:17.40OutputBox.Text = Format(CDec(OutputBox.Text), "#,###.##############")
'[2.0]で持ってくると
'CDecで文字列を数値にしているので
'ただの[2]として認識されて[2]だけが出力される
'[2.03]だとそのまま[2.03]で認識してくれる
別の書き方ってあります?
0200デフォルトの名無しさん
2011/06/17(金) 17:30:29.570201デフォルトの名無しさん
2011/06/17(金) 17:33:52.00ありがとうございます
0202デフォルトの名無しさん
2011/06/17(金) 17:42:38.47数値表示書式指定文字 (Format 関数)
数値を表すその他の書式 (Format 関数)
定義済み数値書式 (Format 関数)
の項目でも読め
0203デフォルトの名無しさん
2011/06/17(金) 17:44:47.980204デフォルトの名無しさん
2011/06/17(金) 17:47:38.21何を知りたいのかよく分からん
0205デフォルトの名無しさん
2011/06/17(金) 17:50:27.71一度文章をメモ帖か何かで整理してから
投稿したほうがよい
0206デフォルトの名無しさん
2011/06/17(金) 22:02:15.120207デフォルトの名無しさん
2011/06/18(土) 07:13:23.83乱数系列を繰り返すには、数値を指定して Randomize ステートメントを
実行する直前に、負の引数を指定して Rnd 関数を呼び出します。
Number に同じ値を指定して Randomize ステートメントを使用しても、
前の乱数系列を繰り返すことはできません。
Rnd -1
Randomize 1234
0208デフォルトの名無しさん
2011/06/18(土) 15:42:55.71'Rnd -1
Randomize 1234
Dim i
Debug.Print "Start"
For i = 1 To 10
Debug.Print i, Rnd
Next i
Debug.Print "End"
0209デフォルトの名無しさん
2011/06/19(日) 09:25:09.86"0"、"1"、"false"とかならTrueを返し
""、"a"、"t"とかならFalseを返すみたいな
今はOn Error Resume NextでCBoolに掛けちゃってるけど、もっと良い方法ある?
0210デフォルトの名無しさん
2011/06/19(日) 12:11:39.83っていうか、関数の一覧見れば分かるだろ。
VBってもう死亡宣告されて10年経過してる言語だぞ
0211デフォルトの名無しさん
2011/06/19(日) 12:39:11.530212デフォルトの名無しさん
2011/06/19(日) 12:59:22.41>>209 の書き込みから、「実装されるはずだとかかもしれんとか思う」と
読み取れちゃうのはちょっと重い病気だと思う。
適切な病院に行くか、小学校からやり直すべき。
>>209
なんでそんなことする必要があるのか気になるが、「CBool() で変換でき
ること」が絶対条件なら On Error にするしかないと思う。
0213デフォルトの名無しさん
2011/06/19(日) 13:25:14.89馬鹿だろお前。
0214デフォルトの名無しさん
2011/06/19(日) 13:43:07.32ちょっとかわいそうだ。
早い目に、小学校からやり直せよ。(w
0215デフォルトの名無しさん
2011/06/19(日) 13:46:09.83逆に聞くが、存在するはずが無いと思ってる機能が存在するかどうか人に聞く馬鹿がいるのか。
あるはずとかあるかもしれないと思ってるから聞くんだろうが。
本当馬鹿だろお前。
0216デフォルトの名無しさん
2011/06/19(日) 14:08:32.40ないと思ってても、だめ元で聞いてみる奴はいくらでもいるだろ。
小学校に行って、勉強はもとより友達と会話するところからやり直してこい。
0217デフォルトの名無しさん
2011/06/19(日) 14:15:46.08人に手取り足取り一から十まで全部説明されないと理解できないのは馬鹿の特徴か。
0218デフォルトの名無しさん
2011/06/19(日) 14:28:58.25>> 存在するはずが (*無いと思って*) る機能が存在するかどうか人に聞く馬鹿がいるのか。
> ないと思ってても、だめ元で聞いてみる奴はいくらでもいるだろ。
自分の書いたことには責任を持ちましょう。(w
0219デフォルトの名無しさん
2011/06/19(日) 14:33:26.21高校の数Iでやるような論理学が理解できないのも馬鹿の特徴の一つだな
0220デフォルトの名無しさん
2011/06/19(日) 16:06:27.63日本語が理解できてないクズよりましだけどな。
0221デフォルトの名無しさん
2011/06/19(日) 16:46:23.41非常に解りにくい日本語なのですが
実装されるはずだと思う、あるいは、実装されてるかもしれんと思う だと解釈しよう
俺が使いたい機能なんだから絶対に実装されてるはずだ、と思うのは病気かもしれんが
こんな機能があったらいいな、すでに実装されてないかな?と思うのは病気でもなんでもないと思うが
0222デフォルトの名無しさん
2011/06/19(日) 16:55:44.86自分を客観的に見られないという自覚が一切ない。
どう考えても一般性がない(そんな機能お前以外誰が必用とするんだってこと)
機能を、普通の人は「すでに実装されてないかな?」なんて思わないんだよ。
絶対に。
そう思うのは病気だから。
まあ病識がない人に自覚しろって言っても無理だろうけどねえ
0223デフォルトの名無しさん
2011/06/19(日) 17:26:57.93>アスペルガーの人は病識がない。
>自分を客観的に見られないという自覚が一切ない。
自己紹介乙。
0224デフォルトの名無しさん
2011/06/19(日) 17:46:17.47ある変数がほかの型に変換可能かどうかチェックする機能
は一般性がないと思うのか
0225デフォルトの名無しさん
2011/06/19(日) 18:01:11.11それを言うなら"値"じゃないのか。
そもそも>>209のいうような機能の需要が一般的かどうかの話をしているのであって、
「ある変数がほかの型に変換可能かどうかチェックする機能」の話なんかしてない。
馬鹿じゃないのか。
0226デフォルトの名無しさん
2011/06/19(日) 18:56:17.63やっぱり分かり難いでしょ
Randomizeのヘルプの文章なんだけど
×Number に同じ値を指定して Randomize ステートメントを使用しても、
前の乱数系列を繰り返すことはできません。
○Number に同じ値を指定して Randomize ステートメントを使用しただけでは、
前の乱数系列を繰り返すことはできません。
昔のBASIC知ってる人には何でRandomizeだけで乱数系列初期化してくれないの?と思ってしまう
ヘルプも分かり難いけどVBの仕様も変
0227デフォルトの名無しさん
2011/06/19(日) 18:57:57.97そんなに喧嘩する程のものでは無いと思うんだ。
CBoolで変換出来るものを判定すればいいだけでしょ?
それってIsNumericでいいんじゃないかと思うんだ。
たしかCboolで変換出来るものって数値型で、0ならFalse、0以外ならTrueだったんじゃないかと思うんだけど。
もっとも、厳密にTrueやFalseを判定したいなら0か-1と言う条件を付け加えることになるけど、
今回はそうじゃなさそうだし。
違ってたらごめんね。
みんな仲良くやるわさ。
0228デフォルトの名無しさん
2011/06/19(日) 19:00:55.40あ、毎回同じ乱数を発生させたい場合ね
例えばプロシージャ中で3回乱数を使ったとして
そのプロシージャを何回実行させても、いつも同じ乱数値を使いたい場合
0229デフォルトの名無しさん
2011/06/19(日) 19:09:41.30Option 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
0230デフォルトの名無しさん
2011/06/19(日) 19:12:16.34Case "1","0","false","true": is_bool = True
end select
0231デフォルトの名無しさん
2011/06/19(日) 19:22:02.49Case "false","true": is_bool = True
Case else: is_bool = IsNumeric(q$)
end select
0232デフォルトの名無しさん
2011/06/19(日) 19:31:44.23じゃ多分>>231の人が言ってるUCaseのをLCaseにしたのがFAだわさ。
0233デフォルトの名無しさん
2011/06/19(日) 19:58:20.77もうそろそろ引っ込んだら?
どう見ても哀れだよ、君。
0234デフォルトの名無しさん
2011/06/19(日) 20:06:36.54毎回同じ人が煽ってんのかな。
0235デフォルトの名無しさん
2011/06/20(月) 00:52:07.32もしかしてVB6より前のVB?
>>208のコードをCommand1_Clickにいれて何度か押したけど
Rnd -1のある場合の10個の数字と、ない場合の10個の数字は違うけれど
Rnd -1のあるなし関わらずコマンド何度クリックしても同じ10個の数字しか出なかった(Randomizeで初期化されてる)けど
0236デフォルトの名無しさん
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
0237デフォルトの名無しさん
2011/06/20(月) 19:58:50.60MSDNの説明ではDate型の実体はDoubleだとあるから、
ある意味Date型そのものが既にシリアル値であるといえる。
自前でシリアル値に変換する意味がわからない。
0238デフォルトの名無しさん
2011/06/20(月) 22:25:52.66Debug.Print CSng(Now)
Debug.Print CDec(Now)
Debug.Print CLng(Now)
Dim v
v = Now
Debug.Print v
Debug.Print CDec(v)
0239デフォルトの名無しさん
2011/06/20(月) 23:33:02.67VB6だけど何で違うんだろ〜
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しないと毎回違うパターンがでる
0240236
2011/06/21(火) 01:31:17.21レスありがとうございます。
私がやりたいのはシリアル値に変換するのではなくて、
シリアル値からyyyy/mm/dd hh:mm:ssというように変換したいのです。
0241デフォルトの名無しさん
2011/06/21(火) 02:22:59.690242デフォルトの名無しさん
2011/06/21(火) 02:24:20.96FileTimeToSystemTime
あたり?
0243デフォルトの名無しさん
2011/06/21(火) 02:45:14.26dt = DataAdd("s", lngTime \ 1000, "1970/1/1 9:0:0")
これでいい?
0244デフォルトの名無しさん
2011/06/21(火) 02:47:55.34これTimer2回呼び出してるけど問題ないの?
0245デフォルトの名無しさん
2011/06/21(火) 02:57:11.65もう一度やってみたら貴公の言うとおり再現した
でも>>235のレスしたときは>>235のとおりだった。>>235のレスしたときコメントアウトし忘れてたのかもしれない
疑ってすまなかった
0246デフォルトの名無しさん
2011/06/21(火) 03:00:03.190247デフォルトの名無しさん
2011/06/21(火) 03:04:06.73カーソルが一番下じゃなく一回分の試行の手前あたりにあったんだなきっと
0248デフォルトの名無しさん
2011/06/21(火) 11:47:09.850249236
2011/06/21(火) 14:45:46.70ありがとうございました。
教えていただいた通り以下の通りで出来ました。
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
0250デフォルトの名無しさん
2011/06/21(火) 16:13:03.13最初のTimerの呼び出し時に 1234.999秒ですぐ次の呼び出しで1235.000になっていた場合、さてどうなるかな?
0251デフォルトの名無しさん
2011/06/21(火) 16:15:41.80t1 = Timer
n = Now
t2 = Timer
とかして挟んでt1とt2からミリ秒取得したほうが
0252デフォルトの名無しさん
2011/06/21(火) 19:15:05.59頭悪いのかな
0253デフォルトの名無しさん
2011/06/22(水) 00:28:38.30だって
一言多いのねこの人
コンプレックスを抱えてる人間のようです
だから誰かを貶さないといられないのです
自分だって無知な頃があったはずなのに
いや、今も無知だから心が狭くなっているのでしょうか
もっと精進すべきです
0254デフォルトの名無しさん
2011/06/22(水) 00:45:52.70小数点以下が時間とかどうなの?
0255デフォルトの名無しさん
2011/06/22(水) 01:13:50.55JP1(日立の運用ツール)からVBSを起動し、
VBSからExcelマクロを起動しようとしています。
つい最近、WinServer2003からWinServer2008のサーバーへと
環境が移ったのですが、移行後にJP1からVBSを起動したところ、
"Workbooks クラスの Open プロパティを取得できません"
とエラーを吐きExcelマクロが起動できなくなりました。
似たような経験をお持ちの方がいましたら、
どうやって解決したかを教えてもらえないでしょうか。
0256255
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
0257255
2011/06/22(水) 01:18:28.93・手動実行なら問題なく起動します。
・旧環境、新環境ともにJP1がインストールされている
サーバーにはExcelがインストールされていないが、
実行先のサーバーにはExcelがインストールされている。
よろしくお願いします。
0258249
2011/06/22(水) 01:19:11.34わたしへのレスですか?
もしそうだとしたら、HelloWorld!卒業くらいのレベルなので、
おっしゃっている事がさっぱり分からないです。
私がやりたいのは、あるシリアル値があったとして、それが
何年何月何日なのか分からないため、それを日付にしたいんです。
もっとスマート?な方法があったら、ご教示いただければ幸いです。
0259デフォルトの名無しさん
2011/06/22(水) 01:23:38.59適当だけど、実行元のサーバーにEXCELのランタイムは設定されてる?
0260デフォルトの名無しさん
2011/06/22(水) 01:23:53.230261デフォルトの名無しさん
2011/06/22(水) 01:25:27.920263249
2011/06/22(水) 01:53:29.94失礼ですが、>>249の4-6行目をよく読んでみてください。
それで双方理解できないならば、いづれかもしくは双方の
理解力に問題があるということで。
ちなみに、>>258で書いたスマート?な方法はご存知ないですか。
0264デフォルトの名無しさん
2011/06/22(水) 01:57:08.220265デフォルトの名無しさん
2011/06/22(水) 02:47:12.69シリアル値の時刻を求める(DateDiff, Timer)
http://www.happy2-island.com/access/gogo03/capter01001.shtml
> JavaScriptのDate/getTimeと同じシリアル値の日時を求める方法です。
0266デフォルトの名無しさん
2011/06/22(水) 13:49:31.560267デフォルトの名無しさん
2011/06/22(水) 17:25:47.730268デフォルトの名無しさん
2011/06/22(水) 21:38:11.18エクセルの普及からシリアル値といったらこっちになることが多い
0269デフォルトの名無しさん
2011/06/22(水) 21:48:02.32プロジェクト→参照設定
でエクセルのライブラリ参照とかじゃない?
0270デフォルトの名無しさん
2011/06/22(水) 22:04:33.32文字列に変換するなら
Debug.Print Format(DT, "yyyy/mm/dd(AAA)")
0271デフォルトの名無しさん
2011/06/22(水) 22:38:20.41いや、俺も最初そう思ったけど、ある年月日から現在までの期間を"YYYY/MM/DD hh:mm:ss"のフォーマットで
何年、何ヶ月、何日の何時間、何分、何秒経ったかを表示したいって言ってるんじゃないの?
0272デフォルトの名無しさん
2011/06/22(水) 22:57:14.49今日だったら、1ヵ月と表示するけど、同じ期間でも来月だったら、
1ヵ月と1日って表示するってこと?
うるう年まで考慮するなると、一発でちゃんとしたものができるか俺
には自信がない...。
0273デフォルトの名無しさん
2011/06/22(水) 23:04:35.40>サーバーにはExcelがインストールされていないが、
>実行先のサーバーにはExcelがインストールされている。
これ、1行目はJP1の管理サーバーって事で良いんだよね?
Excelは実行先だけで良いはず。気になるのは、手動で動かした
ときは上手くいって、JP1から起動させるとダメだってとこだな。
思いつくのは、JP1からキックしたときの権限じゃないかな。
実行ユーザーを指定できるなら、手動で動かしたときと同じ
ユーザーで起動するようにしてみたらどうだろ。
後は、objExcelAppにちゃんとインスタンスが入ってるか(nullじゃないか)
と、FileSystemObjectで、Excelファイルが開けるか試してみて
CreateObject周りでおかしいのか、Excelオブジェクトの何かが
いけないのかを切り分けるかな。
0274デフォルトの名無しさん
2011/06/22(水) 23:13:20.30Dim sec&
sec& = DateDiff("s", t1, Now)
秒はこれで出るけど
月は30.5日くらいにしとく?って客先に聞かないと
んん?これって求めたいものはt1そのもの・・謎は深まるばかり・・
0275デフォルトの名無しさん
2011/06/22(水) 23:50:29.540276263
2011/06/22(水) 23:56:16.48レスありがとうございます。
エクセルで日付にしていましたが、Format関数?で出来るんですね。
わざわざありがとうございました。
>>271
説明が駄目駄目ですみません。
>>258にも書いたのですが、
このように説明すれば分かりやすいでしょうか。
例えば、Q.次のシリアル値は何年/何月/何日 何時:何分:何秒を表しているかを求めるコードを書け。
という事をお聞きしたかったのです。
日付のデータが記録されているファイルを操作するのに、その中身がシリアル値だったので、日付形式
に変換したかったのです。
ところで、>>252氏は私へのレスではなかったのでしょうか、アンカーもなくIDのないスレッドだったの
でよく分からなくて。
>だからData自体が最初からシリアル値になってるのにどこに自前で変換かます必用があるのかと...
>頭悪いのかな
0277デフォルトの名無しさん
2011/06/22(水) 23:59:51.75>>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なんだけどな。
0278デフォルトの名無しさん
2011/06/23(木) 00:07:06.39シリアル値の時刻を求める(DateDiff, Timer)
http://www.happy2-island.com/access/gogo03/capter01001.shtml
> JavaScriptのDate/getTimeと同じシリアル値の日時を求める方法です。
0279デフォルトの名無しさん
2011/06/23(木) 00:08:31.18何か面倒臭そうな人なので一応レスしとくかな....
ひょっとして既に何らかの方式による既存のシリアル値のデータがあって、
それを日付に戻す方法が知りたかったのかも知れないけど、>>236からそれを読み取れって
そりゃ無理難題。
シリアル値っていったっていろんな方式があるんだから、>>236みたいに
日付⇒シリアル値はできたが逆はできないって書かれたら、要は2つの日時の大小比較とかスパンが
計算できる値なら何でもいいはずだと普通は思うんじゃないの?
0280263
2011/06/23(木) 00:24:33.93無知故にアンカーがないとレス内容だけでは、
私へ対してのレスか分からず>>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
続きます。
0281249
2011/06/23(木) 00:27:55.96>>243氏のレスで私にも理解でき、>>246の通りできましたので、
皆さんに再度お礼を言って質問を終了させていただきたいと思います。
本当にどうもありがとうございました!
0282デフォルトの名無しさん
2011/06/23(木) 00:30:33.31誤:>>246の通りできましたので、
正:>>249の通りできましたので、
失礼しました。
ありがとうございました。
0283デフォルトの名無しさん
2011/06/23(木) 00:42:05.540284デフォルトの名無しさん
2011/06/23(木) 00:50:59.32Long型はlng
Currency型はcur
Double型はdbl
をつけた方が分かりやすいとある
0285デフォルトの名無しさん
2011/06/23(木) 00:51:48.77Date型はdtm
0286デフォルトの名無しさん
2011/06/23(木) 07:08:53.680287デフォルトの名無しさん
2011/06/23(木) 08:09:18.920288デフォルトの名無しさん
2011/06/23(木) 14:05:52.110289デフォルトの名無しさん
2011/06/23(木) 14:14:49.65プリフィックスが気持ち悪いな。Long型でもないのにlngを使うのはよくないと思う(誤解を招きかねない)
getTime関数でTimerを2回呼び出すのは時刻の正確さを欠く可能性があると思う
同様の理由でNowとTimerを併用するのも時刻の正確さを欠く可能性があると思う
getTimeB関数は任意の日時とあるのにTimerでミリ秒を補完するのはおかしいと思う
getTime関数はWin32APIのGetSystemTimeAsFileTime関数、getTimeB関数はWin32APIのSystemTimeToFileTime関数を使えばいいと思う
0290デフォルトの名無しさん
2011/06/23(木) 20:34:10.83というか気付いていないんだろうな。
何にでも例外はあるがこのスレの連中はやっぱりほぼ・・・
続く。
0291デフォルトの名無しさん
2011/06/23(木) 20:51:46.690292デフォルトの名無しさん
2011/06/24(金) 12:15:28.110293デフォルトの名無しさん
2011/06/25(土) 06:08:22.32Form2にはボタンが複数あって、状況によってデフォルトのボタンを設定したい
Private Sub Form_Load()
'Me.Show ' ← Modal時は実行できない
Command1.SetFocus
End Sub
Form_Load中でSetFocusしようと思ったら、その前にMe.Showしないといけない
でもModalで呼ばれるからMe.Showはできない
★ ModalなForm2のCommand1をSetFocusする方法はありますか?
0294デフォルトの名無しさん
2011/06/25(土) 13:32:36.53デザイン時にTabIndexの0をあえて欠番にしておいて、Loadイベントで
フォーム表示時に最初にフォーカスを設定したいコントロールのTabIndexを0にする。
VBを2年ぶりで触った俺でもすぐにできたぞ。
ところで、そういうのって「デフォルトのボタン」って言うのか....?
0295デフォルトの名無しさん
2011/06/25(土) 13:44:37.84'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
0296デフォルトの名無しさん
2011/06/25(土) 15:57:49.62なるほどActivateでしたか、ありがとうございました!
Modalなのでその1回だけ実行するというロジックは不要と思います
やるとしたらStatic変数が好きです
デフォルトのボタンと言ったのは、要は自作のメッセージボックスを作っていたので・・
0297デフォルトの名無しさん
2011/06/25(土) 16:31:29.250298デフォルトの名無しさん
2011/06/25(土) 16:37:28.78コマンドボタンにDefaultプロパティというのがあって、
これをTrueにすることでデフォルトボタンにできるという初歩的な見落としがありました
でもActivateは勉強になりました、Form_Loadの後に来るのはResizeかPaintかとか探してはいたのですが
0299デフォルトの名無しさん
2011/06/25(土) 16:51:47.19これは>>293の言っていることと違うと思ったから、Defaultは知ってたけど紹介しなかったんだけど....
0300デフォルトの名無しさん
2011/06/25(土) 16:58:50.28例えば下の例なら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
0301デフォルトの名無しさん
2011/06/25(土) 17:00:08.84これから察するにプロパティのDefaultじゃちょっと違うよね?
0302デフォルトの名無しさん
2011/06/25(土) 17:28:43.400303デフォルトの名無しさん
2011/06/26(日) 02:23:41.63Form1ではボタン周りに黒枠が表示されてEnterキーが効くのに
Form2ではDefultプロパティの設定が無視される
ヘルプではフォーム毎にEnterを受け付けるボタンが設定できると書いてあるのに
どうもDefultプロパティの挙動がわからない・・
ボタンのキャプション周りのフォーカス枠表示も欲しいし、やはりSetFocusにします
0304デフォルトの名無しさん
2011/06/26(日) 22:05:37.83知らなかったわ
0305デフォルトの名無しさん
2011/06/28(火) 21:39:38.66「ニンジン」、「かぼちゃ」、「キャベツ」の3品を追加するにはどうすればいいか。
また、初期表示として「ニンジン」が表示されているようにするにはどうすればいいですか
教えていただきたいです。メソッドの部分はどう書けばいいのでしょうか。
Private Sub frmMain_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles MyBase.Load
End Sub
0306デフォルトの名無しさん
2011/06/28(火) 22:01:25.21vb.netみたいだから、次からはこちらへ
http://hibari.2ch.net/test/read.cgi/tech/1301828549/
'追加
Me.ComboBox1.Items.Add("ニンジン")
Me.ComboBox1.Items.Add("かぼちゃ")
Me.ComboBox1.Items.Add("キャベツ")
'初期表示
Me.ComboBox1.Text = "かぼちゃ"
0307デフォルトの名無しさん
2011/06/28(火) 22:04:02.00ニンジンが初期表示だった!
Me.ComboBox1.Text = "ニンジン"
0308デフォルトの名無しさん
2011/06/28(火) 22:38:14.08ありがとうございます。
0309デフォルトの名無しさん
2011/06/30(木) 15:21:23.150310デフォルトの名無しさん
2011/06/30(木) 15:28:29.93t$="ニンジン,かぼちゃ,キャベツ,たまねぎ,セロリ,パセリ,ピーマン,ごぼう"
buf$=Split(t$,",")
for i%=0 to Ubound(buf$):Combo1.AddItem buf$(i%):next
0311デフォルトの名無しさん
2011/06/30(木) 15:45:18.920312デフォルトの名無しさん
2011/06/30(木) 17:18:31.01これはコード中で型が判るから絶対に有効だよ
変数名にいちいちstrnameとかlongpointとか入れる人もいるけど実に可読性が悪くて腹立つ
0313デフォルトの名無しさん
2011/06/30(木) 17:30:20.52読む人の慣れとかクセとかでどっちが上とは言えないと思うが
世の中にはstrnameとかいう名前の数値型の変数を定義するような奴がいたりするからなぁ
0314デフォルトの名無しさん
2011/06/30(木) 18:41:31.75毎回長文コーディングになるけど
objectとかは知らん
0315デフォルトの名無しさん
2011/06/30(木) 19:44:59.73っていうか、>>310のようなマクロてんこ盛りのアセンブラみたいなコード読みたくないw
0316デフォルトの名無しさん
2011/06/30(木) 23:35:59.77Dim以外では変数名を途中入力で補完できりゃいいのに
0317デフォルトの名無しさん
2011/06/30(木) 23:54:24.40つか、変えられなかったっけ?
おれは、dblExsample lngExsample intExsample strExsample とか先頭みるだけで
すぐわかるけどなー。
%とか&とか$とか#とか初めて知ったw
低レベルでさーせん。
0318デフォルトの名無しさん
2011/07/01(金) 00:15:45.440319デフォルトの名無しさん
2011/07/01(金) 14:08:40.58Dim name$, unko&(10)
name = "namae"
unko(5) = 1000
って
0320デフォルトの名無しさん
2011/07/01(金) 14:10:25.36>>265のサイト見てみ。lngというプリフィックスが
0321デフォルトの名無しさん
2011/07/01(金) 14:20:08.06とかで明示的にStringだってのも懐かしい話だな・・
MSDNもVariantのString みたいな言い回しがめんどくさかったなぁ
0322デフォルトの名無しさん
2011/07/01(金) 19:47:55.35wari! = a% / b%
ならそんな間違いは起こらないし、なんでこれが流行らなかったのか不思議
0323デフォルトの名無しさん
2011/07/01(金) 19:55:21.140324デフォルトの名無しさん
2011/07/01(金) 21:01:31.550325デフォルトの名無しさん
2011/07/01(金) 21:50:12.69そんなもの出ないけど
0326デフォルトの名無しさん
2011/07/04(月) 18:41:27.30プロジェクトを一旦閉じてから開き直すと直るけど
0327デフォルトの名無しさん
2011/07/04(月) 20:27:45.01エラーが出るのならば、どこかしらが「間違ってる」と思った方がいいよ。
詳細が分からないから勘だけど、どっかでメモリリーク起こしてるんじゃないかな。
0328デフォルトの名無しさん
2011/07/04(月) 20:30:15.500329デフォルトの名無しさん
2011/07/04(月) 20:38:46.74変数はもちろん Variant 型だよな!
0330デフォルトの名無しさん
2011/07/04(月) 21:19:46.26>使用しているOS、VBのバージョン、サービスパックのバージョン
0331327
2011/07/04(月) 22:59:04.790332デフォルトの名無しさん
2011/07/05(火) 03:16:49.630333デフォルトの名無しさん
2011/07/06(水) 13:05:43.460334デフォルトの名無しさん
2011/07/06(水) 18:53:51.59やっぱり、メモリリークとかでしょうね、VBの
Lineメソッドでエラーにはなるけど、決まったコードで出るわけではないし
ある特定のプロジェクトで出るわけでもないので詳細は書きようもないですが
プログラムがある程度大きい場合に、たまに発生するようです
再現したらキャプろうと思ったけど期待すると出てこない・・
0335327
2011/07/06(水) 23:13:20.19エラー画面をキャプチャーしても原因はそこでは無いだろうから、
途中経過をモニタリングすべきだと思います。
(メモリの消費状況、インスタンスの開放、配列のErase等々)
どうみてもプログラムに間違いが無さそうならば、
Service Packが最新になっているか確認してみてはどうでしょう?
0336デフォルトの名無しさん
2011/07/06(水) 23:15:05.01ダメな奴ほど環境を疑う。
0337デフォルトの名無しさん
2011/07/07(木) 00:13:49.97現状フォーム内にメソッドを記述して全ての処理を動かしているのですが
クラスに書き込めば速度向上が望めるでしょうか
それとも実行速度ってコード量に比例するってだけなのですか
教えてください。
0338デフォルトの名無しさん
2011/07/07(木) 00:36:33.410339デフォルトの名無しさん
2011/07/07(木) 00:39:22.99>クラスに書き込めば速度向上が望めるでしょうか
望めない。理論的にはクラス生成と呼び出しの分遅くなる
>それとも実行速度ってコード量に比例するってだけなのですか
いいえ
起動にかかる時間はコード量(厳密にはコンパイル後のサイズ)に影響されます
起動後の実行速度には関係ありません
0340デフォルトの名無しさん
2011/07/07(木) 00:46:51.19C言語とかだとコンパイラーが持ってたりしますけど・・・
0341327
2011/07/07(木) 08:26:20.69どのような処理なのか分からないと高速化もアドバイスしにくいですが、
一般的にはAPIの使用、キャッシュ、バッファリング、アルゴリズムの最適化
といったところでしょうか。
フォーム内にコードが大量にあるとすると、ロードに時間が掛かる可能性はあります。
>>340
オプション画面から指定できます。
VB5からネイティブコンパイル可能になったからです。
IDEからの動作ですと、インタプリタ(のような)動作ですので、効かないと思います。
0342デフォルトの名無しさん
2011/07/07(木) 16:54:10.838つ契約しているので、下記のコードで1個1個順番に行っていると遅いので、
マルチスレッド?で行いたいのですが、下記の事をマルチスレッドで同時に
行うにはどのようにすればよいのでしょうか?
(下のソースも部分的にサンプルサイト等を見て書いたものなので、自分は
ほとんど始めたばかりな感じで、マルチスレッドの基本についても全く分かりません。)
Windows XP SP3 + VB6 SP6を使っています。
もし、やり方が分かる方いましたら教えていただけるとありがたいです。
0343342 ◆XuL15E5UEM
2011/07/07(木) 16:55:28.31On 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
0344342 ◆XuL15E5UEM
2011/07/07(木) 16:55:48.77stCsvData = 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
以上です、よろしくお願いします。
0345デフォルトの名無しさん
2011/07/07(木) 17:58:47.53確かやばかった記憶が・・・・
どうせなら同じプログラム8つ動かしてマルチプロセス
とかどうよ?w
0346デフォルトの名無しさん
2011/07/07(木) 20:52:56.960347327
2011/07/07(木) 23:21:24.06マルチスレッドにするにせよ、プロセスを分けるにせよ、
このプログラムのようなIEのインスタンスが一つしか
作成されないような構造では、上手く行かないでしょう。
まず、IEのインスタンスが8個作成されるように改造してください。
(それ自体が不可能な場合はsocketを使用するなどして、
かなりの部分を自作する必要があるので、かなり難しいかと)
IEのインスタンスが複数作成できたならば、問題は
Do Untilでのブロック動作だと思うので、DoEventsと
タイマーコントロールで問題回避できると思います。
あと、余計なお世話だとは思いますが、動かす際には
無用なリクエストが大量発行されないように注意してください。
意図せずにDoS攻撃になってしまう可能性があります。
0348342 ◆XuL15E5UEM
2011/07/08(金) 01:11:18.20レスありがとうございます。
IEの部分は8個作成してもOKです。
>IEのインスタンスが複数作成できたならば、問題は
>Do Untilでのブロック動作だと思うので、DoEventsと
>タイマーコントロールで問題回避できると思います。
この部分はどのようにすればよいか、もしよろしければサンプルをお願いできませんでしょうか。
動かす際には、まず自鯖で試しています。
お気づかいありがとうございます。
0349デフォルトの名無しさん
2011/07/08(金) 05:04:31.46VBのランタイム関数がスレッドセーフである事を保証しないので使えないのと関数を使えないのと、
IDEのインタプリタ上で動かしているとクラッシュするだけで、
大きな問題は無いよ。
0350デフォルトの名無しさん
2011/07/08(金) 09:32:46.33あと、たしか実行ファイルがPコードコンパイルじゃなかったら不具合がおきたと思うんだが。
0351327
2011/07/09(土) 01:00:28.84サンプル作ろうと思ったら、環境(と、ついでに時間)がありませんでした。
ゴメンナサイ。
一週間ぐらい待てるならば作りますので、言ってください。
とりあえず、大まかな話を。
恐らく目的を達成するにはタイマーコントロールを使用してタイムスライス
っぽいことを実装するのが一番手っ取り早いと思います。
現在、Do Untilで行っている動作は完全に処理をブロックしてしまっていて
他に何もできなくなっているので、その部分をタイマーコントロールを
使用して一定周期で監視するように改造するのです。
その際、タイマーコントロールのルーチン内で1〜8までのサーバの
状態を順番に監視するようにします。
イメージはこんな感じ↓。
0352327
2011/07/09(土) 01:01:08.37select 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
伝わりますかね…?
0353デフォルトの名無しさん
2011/07/09(土) 01:07:07.92DoEvents
Wend
0354デフォルトの名無しさん
2011/07/09(土) 04:16:37.550355342 ◆XuL15E5UEM
2011/07/09(土) 11:52:45.74お忙しいところレスどうもありがとうございます。
時間は1ヵ月でも半年、1年でも待ちます。
351自体は説明内容(単語)が分からずさっぱりなのですが、
352で書いていただいたコードを眺めつつ単語も調べて試して
みたいと思います。(今の段階だとさっぱりなもので・・・。)
>>354
れすども!?
なんとなくVB6の方が操作感?というか分かりやすい気がしたもので。
0356デフォルトの名無しさん
2011/07/09(土) 11:56:17.52メンテナンスもされない。
新しいOSで動作保証がなくなるかもしれない。
自分専用のツールを作って公開しないというのなら
別に構わないが、将来自信作ができたとき、
VB6で作っていると、作り直すはめになるだけ。
0357デフォルトの名無しさん
2011/07/09(土) 11:58:31.05サーバーの負荷を調べる程度で、
IEを起動しているのがそもそもの間違い。
IEを起動・・・= CreateObject("InternetExplorer.Application") の部分
重いのがいやならマルチスレッドうんぬんではなく
IEを起動しないようにするのが正解。
0358デフォルトの名無しさん
2011/07/09(土) 12:55:42.790359デフォルトの名無しさん
2011/07/09(土) 13:40:11.88CPUの負荷ならレジストリ見ればいいらしいが
0360デフォルトの名無しさん
2011/07/09(土) 16:28:24.520361デフォルトの名無しさん
2011/07/09(土) 20:24:18.660362デフォルトの名無しさん
2011/07/09(土) 21:07:44.980363デフォルトの名無しさん
2011/07/10(日) 17:27:47.56NETも汎用性がなさそうだしな
0364デフォルトの名無しさん
2011/07/10(日) 18:15:51.910365デフォルトの名無しさん
2011/07/10(日) 18:48:15.420366sage
2011/07/14(木) 23:02:07.01データを逆順に「りんご,ごりら,らっぱ」→「らっぱ,ごりら,りんご」と
途中まではデータが通りここが通ってない
ReDim Preserve data(i + 1)
Array.Reverse(data)
TextBox1.Text = ""
For j = 0 To i + 1
TextBox1.Text &= data(j) & ","
Next
とするのですが動きません。ご教授お願いいたします。
0367デフォルトの名無しさん
2011/07/14(木) 23:03:26.620368327
2011/07/15(金) 02:41:19.28TextBox1.Text &= data(j) & ","
↓
TextBox1.Text = TextBox1.Text & data(j) & ","
0369デフォルトの名無しさん
2011/07/15(金) 09:47:28.63こんなの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
0370デフォルトの名無しさん
2011/07/15(金) 10:06:09.68そもそも配列をいちいち逆順にソートし直す必要があるのかね?
For を後ろから-1してくればいいのだとおもうが
0371デフォルトの名無しさん
2011/07/15(金) 22:47:25.91ありがとうございました。スレ違いだったみたいです
丁寧なご教授ありがとうございます
0372デフォルトの名無しさん
2011/07/15(金) 23:16:24.06これを徹底させず答えるから
0373デフォルトの名無しさん
2011/07/22(金) 16:16:59.870374デフォルトの名無しさん
2011/07/29(金) 11:58:12.940375デフォルトの名無しさん
2011/07/29(金) 13:50:46.570376デフォルトの名無しさん
2011/07/31(日) 15:34:56.75を取得して動的二次元配列に1行ずつ代入するにはどうしたらいいでしょうか
0377デフォルトの名無しさん
2011/07/31(日) 16:54:49.27一気に読み込んでsplitかけるなり一行づつREDIMして読むなりそのまま使うなりご自由に
0378デフォルトの名無しさん
2011/07/31(日) 18:09:56.680379デフォルトの名無しさん
2011/07/31(日) 18:11:54.160380デフォルトの名無しさん
2011/07/31(日) 18:13:44.350381デフォルトの名無しさん
2011/07/31(日) 18:33:33.59バイナリエディタで開けば、改行にどんなコードが使われているか確認できるお
0382デフォルトの名無しさん
2011/07/31(日) 23:58:30.78かなり情報古いけどここの情報も見ておけば?きっとここに書いてあるようなところで躓くはずだから
ttp://age.s22.xrea.com/talk2ch/
0383デフォルトの名無しさん
2011/08/01(月) 00:24:54.94Dim 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$)
0384デフォルトの名無しさん
2011/08/01(月) 00:28:52.62vbLfでした!ありがとうございます!
0385デフォルトの名無しさん
2011/08/01(月) 14:13:48.490386デフォルトの名無しさん
2011/08/01(月) 14:16:52.320387デフォルトの名無しさん
2011/08/01(月) 14:23:44.490388デフォルトの名無しさん
2011/08/01(月) 23:38:04.61subject.txtってUTF8になったの?
0389デフォルトの名無しさん
2011/08/01(月) 23:46:36.19PictureBoxの角に○を書くにはどうしたらよいでしょう?
http://uproda.2ch-library.com/lib410514.bmp.shtml
上記が実現したいイメージです。○はペイントで書きました
0390デフォルトの名無しさん
2011/08/02(火) 02:38:42.580391デフォルトの名無しさん
2011/08/02(火) 02:39:14.190392デフォルトの名無しさん
2011/08/02(火) 02:40:41.310393デフォルトの名無しさん
2011/08/02(火) 02:49:33.314つの白い四角形がそれぞれPictureBoxコントロールなのか?
でかいPictureBoxコントロールにぽつんとその四角描けば円も描けるだろうけど
0394デフォルトの名無しさん
2011/08/02(火) 09:19:39.01Picture1.Circle(12, 12), 11, RGB(255, 0, 0)とすればいいんでない?
※サイズはその画像から計算
その□の角が中心点だと、その半径分だけ大きいPicture1が必要だよね?
0395デフォルトの名無しさん
2011/08/03(水) 00:07:20.45って高さ4ピクセルの縦線なんだよ
変な仕様だよね
0396デフォルトの名無しさん
2011/08/03(水) 00:12:10.29ピクセルなどという、表示デバイスの都合に依存したフレームで考えてるから
変に思えるだけ。
0397デフォルトの名無しさん
2011/08/03(水) 00:47:37.400398デフォルトの名無しさん
2011/08/03(水) 09:37:18.11実行時エラー9 インデックスが有効範囲にありませんっていうエラーって
配列変数以外で起こる原因ってなんなんでしょうか?
0399デフォルトの名無しさん
2011/08/03(水) 09:54:47.09じゃあ、ピクセル単位で(x1,y1)から(x2,y2)まで線を引く必要が生じた場合は
Psetを用いる以外にどのような方法が?
>>398
なんか覚えがある
もうちょっと詳しく
0400デフォルトの名無しさん
2011/08/03(水) 10:09:28.10あるプロシージャ内で配列変数は使ってなく
RDOを使用してMSSQLに対してSELECT文を実行し
OpenStaticで取得したrdoResultsetのRowCountを参照して、
RowCountが1以上だったら実処理用のプロシージャをコールするだけなんですが
コールするプロシージャはそっち側でOnErrorしてますのでコール元にエラーが返ってくることはなく
なぜか配列を使ってないコール元のプロシージャで実行時エラー9が起きてて悩んでるんです
0401デフォルトの名無しさん
2011/08/04(木) 17:45:29.59あーごめん、思い出すきっかけになるかと思って聞いてみたんだけど
思い出せなくてキリ番オメとしか言ってあげられない
IDEだと発生しないエラーだっけ?
他に心当たりある人がいなければ、コールする部分をコメントアウトしてみるとか
コード1行ごとにログを出力するとかして、どこで発生してるか突き止めるしかないね
0402デフォルトの名無しさん
2011/08/07(日) 02:50:32.56関数の戻り値を関数から出るまでは何回でも変更できるし
CとかJAVAならreturnで即終了だいs
0403デフォルトの名無しさん
2011/08/07(日) 12:21:03.79returnで即終了だいすけ?
0404デフォルトの名無しさん
2011/08/07(日) 17:02:26.91不思議と言うより、そこはVB6の優れているところだね
ただ、戻り値の返し方が関数名への代入ってのは頂けない
やはりここは関数名ではなく固有キーワードの方が良い
0405デフォルトの名無しさん
2011/08/07(日) 18:55:29.26VB6は戻り値設定に関数名使ってるのもだるいが
関数からの抜け出しも文字数長くてしんどい
0406デフォルトの名無しさん
2011/08/07(日) 20:47:23.43VB6は片やfunction 方やsub。
これって何か意味あるかな?
0407デフォルトの名無しさん
2011/08/07(日) 21:38:00.71もともとの行番号がついていた時代のBASICには関数はなかった。
しかし関数はなかったがサブルーチンはあった。
変数はグローバルで、サブルーチンは処理をまとめただけ。
CALLはそのサブルーチンを呼び出す命令。
subはその頃から互換性を保ちながらバージョンアップしてきた時の名残。
そもそもBASICは1964年に作られた初心者用言語で
(ちなみにC言語は1972年) 今のような使われ方、機能は想定されてなかった。
このような結構名残はたくさんあって、昔のBASICは変数を定義する必要はなかった。
ただし配列を使う場合には特別に定義する命令があった。それがVB6では変数を定義するときの
キーワードのDimになっている。DimとはDimension(n次元)の略なのに…の答えがこれ
変数の型も昔のBASICにはAs Integerとかなくて、変数名の最後に
%, &, $をつけて表していた。今も使える。
VB6の不思議な仕様はたいてい昔からの名残(互換性維持のため)と考えれば理解できるよ。
初期のBASICの仕様と、それから大きく発展したQUICK BASICの仕様を調べてみたらどうかな。
0408デフォルトの名無しさん
2011/08/07(日) 22:11:16.48VBだってどっちにしろプロシージャーでしょ。
同じものを「何も返さない処理」と表現するか「無を返す関数」と表現するかの違いだが、
いずれにせよ深い意味なんてない。
数学的には後者の方が統一的で美しいけど、反面直観的ではないな。
線分を多角形の特殊形態だと言うのに近い。
0409デフォルトの名無しさん
2011/08/08(月) 00:10:20.21あの変換するの使っても結構修正箇所が。
(これは自分の作りに問題があるのだと思うけど)
というわけで、Windows7x64にVB6入れて使っている人いますか?
(XPモードじゃなくて)
0410デフォルトの名無しさん
2011/08/08(月) 00:19:09.74http://blogs.wankuma.com/jeanne/archive/2006/08/02/34597.aspx
0411デフォルトの名無しさん
2011/08/08(月) 01:19:35.41.NETで作ってあるのもある。
自宅ではVB6だからそれを移行するのが面倒っていう話で。
というか、本題は。
>というわけで、Windows7x64にVB6入れて使っている人いますか?
>(XPモードじゃなくて)
0412デフォルトの名無しさん
2011/08/08(月) 09:43:57.90単に Pascal に倣っただけでしょ。
「戻り値設定に関数名使ってる」のも同じ。
なんで Pascal は? って聞かれたら Wirth に聞いてくれというしかないが...。
0413デフォルトの名無しさん
2011/08/09(火) 00:55:54.03MSにガイドが有るだろ
基本はプロテクトかかってないフォルダ、つまりProgram Filesとか以外にインストールでほぼ動くよ。
やってないとは思うがシステムフォルダのパス取得は直書きしないで全部関数使う
基本32bitで動くからその辺は気にしないで大丈夫だが、
COMとかDLLとかは実際に動かしてチェックしないと解らん。
あとはVirtualStoreとかの隠しフォルダに気をつけるぐらいかな
良く解らなければUAC切れ
こいつがファイルからレジストリまでユーザー単位で仮想化してるのがおかしくなる原因だ
後は互換モードを活用する
これは過去Ver.と7のAPI対応表を持ってて裏で変換してくれる
あ、プリンタAPIとか使ってるならそいつも確認
セッション0問題とかその辺が引っかかる可能性が有る。
ドライバ関係はメーカ対応無かったりで結構泣けた
移行やったの去年だから今はもうちょっと改善されてるかも?
0414デフォルトの名無しさん
2011/08/09(火) 01:15:13.51移行できない、ではなくて、移行が面倒なんでは?
VB6製アプリが動くか、ではなくて、VB6IDE環境が動くかが知りたいたいのでは?
それに、単純にVB6のコードをVB.NETで動くようにしても、
クラス構造や例外やDBの扱いなんかが悲しいことに。
>>409
Win7(x64)で動くのかどうか知らないけど、VB6環境はXPモードでメンテのみに留めて、
メインの環境を変えちゃったほうがいいんじゃない?
0415デフォルトの名無しさん
2011/08/09(火) 18:00:56.19いたら教えてください。
imTextをマルチラインで使った場合、半角カナの単語が行末に来る場合
単語が分割されないように自動的に改行されてしまいます。
これを分割されるようにする方法はないでしょうか?
それらしいプロパティが無く困っております。
よろしくお願いします。
0416デフォルトの名無しさん
2011/08/09(火) 21:11:56.79スレ違い
あれは汎用コントロールであって、「VB6でも使える」だけで
VB6の付随品でもなければ、VB6用というわけでもない
そんな、VB6とは関係ないものの質問はNGです
お引き取り下さい
そもそも、正規に購入しているなら、サポートに問い合わせれば良いだけだ
0417デフォルトの名無しさん
2011/08/09(火) 21:17:07.410418デフォルトの名無しさん
2011/08/10(水) 00:51:19.04あ、>>411か、これは恥ずかしい・・・
え〜と入れてたし動いてたけど>>414が正解だと思う
細かいとこで引っかかっていちいち対応するのがめんどかった
0419デフォルトの名無しさん
2011/08/10(水) 15:42:21.66表示したいのですが、最後の行でエラーになってしまいます。
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
0420デフォルトの名無しさん
2011/08/11(木) 02:20:37.69OptionButtonのClickイベントのたびに選択されたIndexを変数に保持する方法?
それとも状態を知りたいタイミングで一個一個選択された状態か確認する方法?
0421デフォルトの名無しさん
2011/08/11(木) 06:24:07.84君にとってスマートなやり方は、君にしか解らない
VBAスレでも似たような展開になってるが、トリッキーでもコードが短ければ
それを以てスマートと感じる奴も居れば、可読性の高さにスマートさを感じる奴も居る
はたまた、汎用性の高さや、拡張性の高さにスマートさを感じる奴も居る
いそんな取得の仕方はWeb上に腐るほどサンプルとして転がってるから
自分でいろいろ見て、自分がスマートだと思った方法を真似れば良い
以上、さようなら
0422デフォルトの名無しさん
2011/08/11(木) 08:42:51.88スマートにしたいのなら、UI部分とロジックは分離して
ロジック部分はUIを使わないでも(例えばCUIなどから)
実行できるようにするといい。
分離したロジックは別のクラスに書く
0423デフォルトの名無しさん
2011/08/11(木) 09:48:38.09なんか愚問だな。
スマートの定義は置いとくとしても、どの方法が適切かは目的しだい。
常にこの方法が適切、なんてものはない。
例えばタブページのタブのように、オプションボタンで、あるコンテナの中に
表示される中身を切り替えたいとする。
こんな時にイベントドリブン以外の方法を採用できるのか。
例えば何かを設定する画面でユーザーがOKボタンをクリックするまで変更された
設定の適用を保留したい場合、イベントドリブンを採用して、ユーザーがオプションボタンを
クリックした時点で直ちに対応する設定値を変更してしまっていいのか。
0424デフォルトの名無しさん
2011/08/11(木) 11:23:18.210425デフォルトの名無しさん
2011/08/11(木) 11:35:22.430426デフォルトの名無しさん
2011/08/11(木) 21:30:47.51その後にスマートな方法をスマートに書いていると格好良かったんだが
その1行だけだとかなり滑稽というか、君のが一番惨めな戯れ言に成り下がってるな
0427デフォルトの名無しさん
2011/08/12(金) 00:57:24.17WebBrowserコントロールのdocumentプロパティは読み取り専用ではなく設定も可能なプロパティなの?
0428デフォルトの名無しさん
2011/08/12(金) 08:38:11.07vb.netではできるので高い技術力を持ってすればできるのではないかと。
読み取り専用ごときに怯んではいけないかと。
0429デフォルトの名無しさん
2011/08/12(金) 10:30:49.72ム板で自己満足のコードも無い長文を垂れ流すのを、タワゴトと言わずして何と言おうか
0430まあ、短いだけましだが>
2011/08/12(金) 11:27:57.510431デフォルトの名無しさん
2011/08/12(金) 21:09:59.41悔しかったの?
0432デフォルトの名無しさん
2011/08/12(金) 21:41:03.04一旦ファイルに保存しちゃおうぜ。
0433デフォルトの名無しさん
2011/08/12(金) 22:43:43.55今はそれですけど、それは無しだと思うのです。
0434 【Dnewsplus1306759181466917】
2011/08/13(土) 09:02:32.62Case 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
というようにダミーを隠しておくんだぬ
0435デフォルトの名無しさん
2011/08/13(土) 11:57:05.160436デフォルトの名無しさん
2011/08/13(土) 15:14:50.890437デフォルトの名無しさん
2011/08/13(土) 16:42:20.74Option1(0).Tag = Index
End Sub
でおけ
0438デフォルトの名無しさん
2011/08/14(日) 16:06:29.96以前は見つけられなかったけどキーワード次第で今回すんなり見つけられた
0439デフォルトの名無しさん
2011/08/14(日) 16:11:13.33いじってあげたおかげだよ。
感謝しな。
0440デフォルトの名無しさん
2011/08/14(日) 16:11:26.840441デフォルトの名無しさん
2011/08/14(日) 16:16:44.362ちゃんねる初心者か?
どんな質問でも、叩く奴は叩く。
叩かれることに怯えるな。
とりあえず2ちゃんねるで聞く、そして自分で探す。
たまに2ちゃんねんるで釣れてないか確認する。
これが最も効率がいい。
2ちゃんねるはダメもとで書いて置く場所だよ。
0442デフォルトの名無しさん
2011/08/16(火) 00:53:14.25tagってそんな風に使って大丈夫なの?
0443 【Dnewsplus1306759181466917】
2011/08/16(火) 06:25:38.36他のPCにフォローするプログラムを作ってるのですが
何千ファイルものタイムスタンプを片っ端から見ていくのは
時間がかかるのでなんとかしたいのです
フォルダの更新日時というやつが、そのサブフォルダも含めて、
中の最新ファイル更新日時を示しているのなら、
かなり処理をはしょれるのですが、そうはなっていないようです
フォルダの更新メッセージを受け取るような常駐型ソフトではないし
何かいい方法はないですか
0444デフォルトの名無しさん
2011/08/16(火) 08:06:00.97dir /O-D
0445 【Dnewsplus1306759181466917】
2011/08/16(火) 21:05:02.37う〜む
0446デフォルトの名無しさん
2011/08/19(金) 00:18:11.64を使って列挙するのがいいんじゃないかな。
時刻も同時にとれるし。
USB に全ファイルを入れてもいいなら ROBOCOPY を
使って、更新されたファイルのみコピーする方法もある。
0447 【Dnewsplus1306759181466917】
2011/08/19(金) 01:00:25.03今はDirループで列挙してますが
コンパイルすると結局そのAPI呼出しに置き換わるのではないかと思っています
毎日ファイリングしてる数百のデータファイルを、今作ってるソフトにかけると
数年前のファイルが置いてあるフォルダでも更新してないかバカみたいに探してるのが悲しい・・
これは、OSがそういう機能を提供してくれない限りしょうがないですね
0448デフォルトの名無しさん
2011/08/19(金) 01:20:33.21たしかに Dir ループは Find 〜 API を呼び出してるんだろうけど、
ファイル名しか取れないでしょ?
ファイル名をとってきて、FileDateTime 関数あたりで更新時刻を
取得してるんだよね?
Find 〜 API を直接呼べば、WIN32_FIND_DATA 構造体に更新時刻
が入ってくるので、FileDateTime 関数を呼ぶ必要がなくなるんだよ。
0449デフォルトの名無しさん
2011/08/19(金) 08:56:08.33ネットワークドライブだと環境によっては悲惨な結果になる
0450デフォルトの名無しさん
2011/08/20(土) 14:06:58.70Dirループがネスティングできないと知っていても中で使ってる関数の先の先で使ってたりして
あと、最近発見したのはDirでUSBメモリを参照すると、USBが抜けない
某サイトで開放するためにDir ""とするんだと書いてあったが、
それでもカレントディレクトリを参照してるのか開放はしてないようだった
USBメモリを参照し終わったら、それを開放するためにHDDを参照してやらないといけないみたい
0451デフォルトの名無しさん
2011/08/20(土) 15:07:48.28なぜでしょうか、今はVB6もXPも最新にしてますが、かれこれ何年も思い出す度に下記を実行しているので
VB6のspやOSやPCが原因ではないと思われます
と、ここまで書いてて自分用のセッテイングに問題があるんだなと思い
ツール→オプション→詳細→SDI開発環境のチェックを外したら動作した
なんだこれー、SDIがダメならマウスホイール使えなくてなくてもいいや
http://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.[ロード/アンロード] と [起動時にロード]の項目にチェック
0452デフォルトの名無しさん
2011/08/20(土) 16:42:32.76気づいたとおり、そのアドインはSDI環境には対応してない。
以下のアドインなら、SDI環境でも使えるらしい。
ttp://homepage1.nifty.com/mtj-k/software/office_vb6/addautoscroll_vb6.html
それにしても、SDIで使ってる人いたんだね。
0453デフォルトの名無しさん
2011/08/20(土) 19:25:22.980454デフォルトの名無しさん
2011/08/20(土) 23:32:13.58おお、SDIでも使えるんですか
後で入れてみます
SDIでないとめちゃめちゃ使い難いではないですか?
VBのIDEだけじゃなくてエクスプローラとかバイナリエディタとか・・
複数のコードウインドウの空いたエリアにあれば参照しながら打てるし
0455デフォルトの名無しさん
2011/08/21(日) 06:19:51.460456デフォルトの名無しさん
2011/08/21(日) 15:36:34.65gethostnameやgethostbynameを使用して
ipアドレスの取得を行いたいのですが実行エラーになります。
使用する方法ありませんか?
0457デフォルトの名無しさん
2011/08/21(日) 16:41:26.290458デフォルトの名無しさん
2011/08/21(日) 18:31:01.46スレ違い
それはActiveXコンポーネントという汎用APIの質問であって、VBSの質問ではない
VBSの制御構文などに関する質問ならここでもOKだが、汎用APIの質問受け付けたら
キリがない(ActiveXはもちろん、Win32APIの質問も、.NET FrameworkやDirectXなどもOKになる)から
>>1の4行目に書いて有る通り、NGってことになってる
というわけでさようなら
0459デフォルトの名無しさん
2011/08/21(日) 19:07:23.000460デフォルトの名無しさん
2011/08/21(日) 19:11:59.770461デフォルトの名無しさん
2011/08/21(日) 19:57:58.570462デフォルトの名無しさん
2011/08/21(日) 21:12:10.830463デフォルトの名無しさん
2011/08/21(日) 21:14:47.48>二.VBScript、インストーラーなどはこのスレでOK。
って書いてあるな。VBSそのものはここでOKらしい
0464デフォルトの名無しさん
2011/08/22(月) 00:12:22.56nslookup の戻り値を取得して解析するとか
ttp://homepage1.nifty.com/MADIA/vb/vb_bbs/200608/200608_06080050.html
API をラップした ActiveX.DLL を探してくるか、VB で作成して利用するとかしかない。
0465デフォルトの名無しさん
2011/08/22(月) 02:35:55.69リッチテキストボックス6(SP6)のスクロールバーを両方表示に設定してる(ScrollBars=rtfBoth)のに
水平のスクロールバーが使えない
リッチテキストボックスの横幅を越える文字は自動で改行されて表示される
どのプロパティいじれば横スクロールバー有効になるの?
(垂直スクロールバーは問題ないんだけど)
0466デフォルトの名無しさん
2011/08/22(月) 04:08:12.61ScrollBars プロパティ のヘルプ嫁。
水平スクロール バーは、RightMargin プロパティがコントロールの幅よりも
大きな値に設定されている場合に限り表示されます。
このプロパティの値は、コントロールの幅と同等か、わずかに小さいだけでも
かまいません。
0467デフォルトの名無しさん
2011/08/22(月) 04:22:39.48トンクス
今度から真っ先にヘルプを探してみます
どうもすみませんでした
0468デフォルトの名無しさん
2011/08/22(月) 16:56:45.49項目を取り出すとき、中に入れたデータはクラスですが、返り値はObjectで帰ってくるようになっていると思います。
この項目をあるクラスの変数に復元して入れることは出来ませんか?
0469デフォルトの名無しさん
2011/08/22(月) 20:36:27.12>>468
日本語(自然言語)で理路整然とした文章を書けない奴に
プログラム言語は無理
0470デフォルトの名無しさん
2011/08/23(火) 09:29:44.30あえて突っ込んでおく
意外とそうでもない
0471デフォルトの名無しさん
2011/08/23(火) 11:48:36.250472デフォルトの名無しさん
2011/08/23(火) 12:04:36.97どこに句読点が必要なんですか?
わかりません><
0473デフォルトの名無しさん
2011/08/23(火) 14:07:44.660474デフォルトの名無しさん
2011/08/23(火) 14:24:32.330475デフォルトの名無しさん
2011/08/23(火) 15:15:13.42が、今顔真っ赤にして、恥ずかしがってる、気が、してならない。
0476デフォルトの名無しさん
2011/08/23(火) 16:34:28.760477デフォルトの名無しさん
2011/08/23(火) 18:00:29.63こゆこと?
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 のプロパティ作ってある
0478デフォルトの名無しさん
2011/08/23(火) 19:29:57.11ちゃんと中に入れたクラス型ががわかっているなら
取り出す時に、同じクラス型の変数に入れてやれば良い。
キャストの手間は無い。
0479デフォルトの名無しさん
2011/08/24(水) 06:29:00.96悔しかったというより、471は恥ずかしかったんじゃねーの?
というか、恥ずかしいという自覚を持てずに悔しがっちゃうようだとお粗末すぎるし・・・
0480デフォルトの名無しさん
2011/08/24(水) 10:40:39.570481デフォルトの名無しさん
2011/08/24(水) 11:07:34.49回答ありがとうございます。
なるほど、このような時は明示的なキャストというものはしないのですね。
なんとなく動いてはいたんですが、ちょっと怖い気がして質問させていただきました。
日本語がおかしかった部分に関しては・・・お恥ずかしい限りですが焦っていたのもありました。
ご回答ありがとうございました。
0482デフォルトの名無しさん
2011/08/24(水) 19:44:11.09テキストを入力するプログラムを作っているのですが、本体とiframeで
ドメインが違っていて「アクセスが拒否されました」とエラーが出てしまいます。
IInternetHostSecurityManager.GetSecurityIdというのを実装すればいいと
いうところまでは調べてわかったのですがどう実装していいものなのかわかりません。
IInternetHostSecurityManager.GetSecurityIdの実装方法もしくは別ドメインへの
アクセス方法が他にあるのであれば教えていただきたいのですが・・・。
よろしくお願いします。
0483デフォルトの名無しさん
2011/08/24(水) 23:36:23.520484デフォルトの名無しさん
2011/08/25(木) 02:06:22.170485デフォルトの名無しさん
2011/08/25(木) 04:48:59.67WinSockでシコシコ読んで文字コード変換までしてたけど
今はアドレス渡すだけで一発でソースをテキストファイルに落とすAPIがあるんだね
0486デフォルトの名無しさん
2011/08/25(木) 07:05:54.570487デフォルトの名無しさん
2011/08/25(木) 12:46:17.93タイムアウトなどの処理はどうだったかしらんけど
0488デフォルトの名無しさん
2011/08/25(木) 13:55:21.85で読めるってこと?
0489デフォルトの名無しさん
2011/08/25(木) 14:52:29.180490デフォルトの名無しさん
2011/08/25(木) 21:59:14.750491デフォルトの名無しさん
2011/08/25(木) 23:25:02.10なぜ試す前に聞いちゃいけないの?
0492デフォルトの名無しさん
2011/08/26(金) 11:47:02.050493デフォルトの名無しさん
2011/08/26(金) 14:31:56.12Windowsの仕様?Win7とかでも出るのかなVB6サポートされてるからって
このOpenの仕様はVB6とは関係ないかんじなのかな
0494デフォルトの名無しさん
2011/08/26(金) 14:58:04.76別にいけなかないが、自分で試せばすぐにわかることだろ。
>>488書いてから、誰かがレスするまで何時間も待つのか?
0495デフォルトの名無しさん
2011/08/26(金) 15:09:24.16>>488
もちろん、読める
0496デフォルトの名無しさん
2011/08/26(金) 15:30:40.240497デフォルトの名無しさん
2011/08/26(金) 18:53:53.310498デフォルトの名無しさん
2011/08/27(土) 15:29:03.29VB2からやってるけど、これは知らなかったわ
凄い物知りがいるんだなここは
>>486
サーバーからバッファに受信したデータを結合したりチャンク形式に対応したり
かなりシコシコなコードになったよ
でもまぁ、2ちゃんの鯖の時刻を時刻合わせに使ったり、自前のコードは色々と
応用がきくから捨てたもんじゃないけど
0499デフォルトの名無しさん
2011/08/27(土) 15:42:48.080500デフォルトの名無しさん
2011/08/28(日) 00:20:58.430501デフォルトの名無しさん
2011/08/28(日) 00:26:50.52openで読む時リクエストヘッダを任意で指定できるのかな
なんかそう言う細かいところはできなさそうな雰囲気で結局WinSock叩く方が早いっていう結論になりそう
0502デフォルトの名無しさん
2011/08/28(日) 00:35:52.91HTTP用のライブラリを使えばいい。
WinSockを使う必要はないし、
様々なヘッダの解釈面倒だろ。
それすっ飛ばしてWinSockにいっちゃう人って
逆に知識ないんじゃないかって思う。
0503デフォルトの名無しさん
2011/08/28(日) 00:37:05.620504デフォルトの名無しさん
2011/08/28(日) 08:52:19.460505デフォルトの名無しさん
2011/08/28(日) 12:05:28.58とりあえずお前のお勧めのVB6用HTTPライブラリ教えてくれ
0506デフォルトの名無しさん
2011/08/28(日) 13:56:24.69だろうねw
どうせユーザーエージェントなんて
urlmonで変えられるだろ。
0507デフォルトの名無しさん
2011/08/28(日) 14:46:47.87ファイル名入力のGetOpenFileNameってダイアログのAPIがファイル名にURLを与えると
IEのキャッシュファイル名を返してきて
OPENは単にTemporary Internet Filesの中のファイルを開いてるだけでした
0508デフォルトの名無しさん
2011/08/28(日) 15:05:22.59でもそれは結局URLを読んでるのと同じだろ?
0509デフォルトの名無しさん
2011/08/28(日) 17:09:20.250510デフォルトの名無しさん
2011/08/28(日) 22:01:47.10キャッシュに無ければ実際にhttpでデータとってくるだろ
0511デフォルトの名無しさん
2011/08/28(日) 22:20:40.63WEBページのサイズを確認することができますよね?
それを利用して、サイズが変わった=ページの更新があった という考えで
更新があると
「チェックしているサイトが更新されました」
という風に画面に表示するようにしたいのですが、
このような動作をVB上で実現することはできるんでしょうか?
実現可能であればどのような関数を使って作成すればよいのかを教えてください。
お願いします。
0512デフォルトの名無しさん
2011/08/28(日) 22:53:23.63以前のファイルと取ってきたファイルを比べないと正確な更新があったかはわからない
つか、そういうのはそれなりのスレで聞いた方がいいんじゃないかな
0513デフォルトの名無しさん
2011/08/28(日) 22:55:21.54512さん教えてあげて!w
0514デフォルトの名無しさん
2011/08/28(日) 22:57:42.870515511
2011/08/28(日) 23:09:48.78今はとりあえず、サイズでチェックのみの
簡単なもので作りたいと考えています。
ですのでこの際正確に更新があったかどうかは問わないもので大丈夫です
0516デフォルトの名無しさん
2011/08/28(日) 23:19:45.45詳しくはぐぐってくれ
0517デフォルトの名無しさん
2011/08/28(日) 23:21:53.15練習用のサーバを建てて実験するように
冗談じゃなく牢屋にブチこまれるぞ
0518デフォルトの名無しさん
2011/08/28(日) 23:26:39.75俺はそんなに詳しくないからわからん
0519デフォルトの名無しさん
2011/08/29(月) 00:25:42.01何で牢屋?
0520デフォルトの名無しさん
2011/08/29(月) 00:33:26.48サーバ管理者側が意図しない接続をうけたと警察に被害届を出せばとりあえず逮捕するという前例を作ってしまったんだよ
0521デフォルトの名無しさん
2011/08/29(月) 01:11:51.800522デフォルトの名無しさん
2011/08/29(月) 01:20:41.290523デフォルトの名無しさん
2011/08/29(月) 01:30:04.690524デフォルトの名無しさん
2011/08/29(月) 01:34:25.230525デフォルトの名無しさん
2011/08/29(月) 02:16:03.72別にそんな例を出さなくても、
誤認であっても逮捕されるなんて知ってる。
世の中のこと何も知らないんじゃないのか?
0526デフォルトの名無しさん
2011/08/29(月) 02:22:03.69出さなかったらソースは?と聞く。
0527デフォルトの名無しさん
2011/08/29(月) 02:30:24.39逆に言えば、くだらないものだという証明をするために
証拠を出させたとも言える。
0528デフォルトの名無しさん
2011/08/29(月) 02:33:07.310529デフォルトの名無しさん
2011/08/29(月) 03:57:31.85524 名前:デフォルトの名無しさん[sage] 投稿日:2011/08/29(月) 01:34:25.23
妬むなよ、気持ち悪い。
528 名前:デフォルトの名無しさん[sage] 投稿日:2011/08/29(月) 02:33:07.31
妬むなよ、気持ち悪い。
0530デフォルトの名無しさん
2011/08/29(月) 19:57:00.41岡崎の件は普通に考えればケーサツの勇み足っていう文脈で言及されるべき事件であって、
こんなのを「犯意がなくてもお縄になる事例」として挙げる奴は脳が湧いてるのかと。
0531デフォルトの名無しさん
2011/08/30(火) 00:25:22.330532デフォルトの名無しさん
2011/08/30(火) 02:13:22.64何かやましいことでもしてんのかよw
0533デフォルトの名無しさん
2011/08/30(火) 16:24:32.190534デフォルトの名無しさん
2011/08/31(水) 21:44:17.980535デフォルトの名無しさん
2011/09/01(木) 08:50:05.40実際には当事者であるMDSの嘘を専門家の意見として鵜呑みしている時点で
勇み足というレベルではなく深刻な警察の腐敗が明らかな大問題
0536デフォルトの名無しさん
2011/09/02(金) 02:35:40.05犯罪だという訴えがあって、逮捕状も出た(んだよな?当然)のに、
逮捕しなかったらそれは警察の怠慢。そっちのが腐敗しとるわ
0537デフォルトの名無しさん
2011/09/02(金) 19:58:58.450538デフォルトの名無しさん
2011/09/03(土) 01:28:24.170539デフォルトの名無しさん
2011/09/04(日) 09:18:47.55Shell App.Path+App.ExeName+".exe", vbNormalFocus
End
でしょ
このコードで動くのは自分がドライブルートにある場合だけ
ルートにある場合だけApp.Pathの末尾に¥が付く理由とは?
0540デフォルトの名無しさん
2011/09/04(日) 10:05:41.940541デフォルトの名無しさん
2011/09/04(日) 17:13:42.740542デフォルトの名無しさん
2011/09/05(月) 12:12:14.90×態度が気に入らないから教えません
○私は知識がないので教えられません
0543デフォルトの名無しさん
2011/09/05(月) 12:46:16.22そんな朝鮮的な感情、ステキやん?
0544デフォルトの名無しさん
2011/09/05(月) 14:22:04.85理由や原因が解れば、ユーザー側で対処改善出来る類の物なら理由を聞くのも解るが
件のはそういう類のものではない。あえて言うなら「仕様だから」で、なぜそういう仕様なのかという「理由」は
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
として
「このコードで動くのは自分がドライブルートにある場合だけ」
ではなく
「このコードでは自分がドライブルートにある場合だけ正常に動かない」
と主張するのが普通でしょ。
0545デフォルトの名無しさん
2011/09/05(月) 15:19:29.38FileSystemObjectのBuildPath使えよ
0546デフォルトの名無しさん
2011/09/05(月) 17:49:27.99>「ルートにある場合だけApp.Pathの末尾に¥が付く」理由を聞いたり考えたりするのではなく
「末尾に\が付く」んじゃなくて、ルート="\"だよ。
C:\abcは、「ドライブC」の「ルートからたどって」「abcというフォルダ」
0547デフォルトの名無しさん
2011/09/05(月) 18:43:38.85最近決まった仕様でもないし、その仕様にどうこう言っても始まらない
なぜそういう仕様なのか考察するのは別のスレでやってくれ
0548デフォルトの名無しさん
2011/09/05(月) 20:17:06.90君、お馬鹿さん?
0549デフォルトの名無しさん
2011/09/06(火) 02:18:30.69それを何故と問われても困るわな
でもそれで起源を辿ってみるのも面白いかもよ?
0550デフォルトの名無しさん
2011/09/06(火) 11:30:42.85お前のわけのわからん俺クラスを使われるのより、BuildPath使った方がよっぽどいいよ
0551デフォルトの名無しさん
2011/09/06(火) 11:35:18.11> つか、ルートに\がつく理由は、それが仕様だから
まだ、ルートに\が「つく」とか言ってるのかよ。
「つく」んじゃなくて、ルート="\"だってば。
0552デフォルトの名無しさん
2011/09/06(火) 11:51:20.00二個目の\はAのルート、BはAのルートの中にある、ってはなしだな?
0553デフォルトの名無しさん
2011/09/06(火) 12:36:37.230554デフォルトの名無しさん
2011/09/06(火) 12:39:28.570555デフォルトの名無しさん
2011/09/06(火) 12:58:49.26ルート以外の「\」はパス区切り文字。
ディレクトリ構造の概念を知らないのなら、http://ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA
0556デフォルトの名無しさん
2011/09/06(火) 13:19:38.94いつでもBuildPathを使っといた方がいい。で、どうせFileSystemObjectを使うんだから、FSOの
その他のメソッドも積極的に使う方がいい。
0557デフォルトの名無しさん
2011/09/06(火) 19:00:08.68\つけて\\を\に置換すればいいだけだろ
0558デフォルトの名無しさん
2011/09/06(火) 19:16:04.18こう?
0559デフォルトの名無しさん
2011/09/06(火) 19:27:57.73FileSystemObjectを使ってない場面では自前処理で問題ないだろう
場合場合で使いわければおk
0560デフォルトの名無しさん
2011/09/06(火) 21:02:26.90普通に考えれば>>556の言ってることが一番まとも。
Win98以前の時代なら躊躇する合理的理由もあったが、いまさらWin9x環境のことを考慮する必要もないだろう。
FileSystemObjectのインスタンスあればって何だよ。
ライブラリ化しとけよそんなの。
0561デフォルトの名無しさん
2011/09/06(火) 21:58:57.700562デフォルトの名無しさん
2011/09/06(火) 22:13:27.42http://support.microsoft.com/kb/818802/ja
0563デフォルトの名無しさん
2011/09/06(火) 22:47:28.72FileSystemObject = ライブラリだよ
0564デフォルトの名無しさん
2011/09/06(火) 23:21:14.75そこにApp.Pathをぶち込んで末尾の"\"を確認してない場合にその変数に"\"を追加して、
以降はずっとその変数を利用している。後悔はしていない。反省もしていない
0565デフォルトの名無しさん
2011/09/06(火) 23:29:34.98B:\
0566デフォルトの名無しさん
2011/09/06(火) 23:44:03.96VB厨様には「ライブラリ化する」って表現が通じないことがよく分かった。
0567デフォルトの名無しさん
2011/09/06(火) 23:47:10.00違う意味のようだ。
0568デフォルトの名無しさん
2011/09/07(水) 00:34:30.73要は意図した形になってりゃ良いんじゃねーの
問題無く動くならそこから先は自己満足の世界だろ
今のスペックなら悪意でも無きゃ差なんて出ない
0569デフォルトの名無しさん
2011/09/07(水) 01:09:59.38UNCパスを考慮しない前提に限ればな
0570デフォルトの名無しさん
2011/09/07(水) 01:26:19.220571デフォルトの名無しさん
2011/09/07(水) 11:03:01.99> BuildPathというかFileSystemObjectに拘ってる奴がいるな
ということにしないと、自己崩壊しちゃうの?
0572デフォルトの名無しさん
2011/09/07(水) 13:30:35.84何が?
0573デフォルトの名無しさん
2011/09/08(木) 01:40:34.47すでにライブラリになっているものを
ライブラリ化する意味はない。
普通にライブラリを使えばいいだけ。
0574デフォルトの名無しさん
2011/09/08(木) 14:10:36.19君が作るライブラリには、VBの標準関数しか登場しないんだろうけど、それは君のスタンダードでしか無いよ
0575デフォルトの名無しさん
2011/09/08(木) 14:42:53.22使う人によるだろ
0576デフォルトの名無しさん
2011/09/08(木) 15:01:57.45いろいろあるでしょ。ちなみにFSOに足りないのは、再帰処理。
0577デフォルトの名無しさん
2011/09/09(金) 12:04:31.43ある文字数(15文字くらい)に行くと
途切れてしまうんですが、
文字数を増やす方法って何か無いですか?
0578デフォルトの名無しさん
2011/09/09(金) 23:38:15.05> 君が作るライブラリには、VBの標準関数しか登場しないんだろうけど、それは君のスタンダードでしか無いよ
何を言ってるんだ?
FSOを使って新たにライブラリを作る意味が無いだろ。
ライブラリを作る場合は、
既存にはない機能を作るんだよ。
VBの標準関数をライブラリしてどうするんだw
0579デフォルトの名無しさん
2011/09/09(金) 23:39:01.13うん、ならFSOに足りない機能をライブラリとして作ればいいわけで、
FSOはそのまま使えばいい。
0580デフォルトの名無しさん
2011/09/09(金) 23:49:07.65そういう馬鹿なこと言ってる(もちろん自覚ないんだろうけど)と、
これがVB厨ですって感じでどこかにコピペされちゃうよw
しかし、本当にマジで言ってるのかそれ。
0581デフォルトの名無しさん
2011/09/10(土) 09:30:19.38反論しろよw だからお前はw
0582デフォルトの名無しさん
2011/09/10(土) 12:59:09.34車輪を応用したものを造るか てのは個人の好みだろ
クラスにするとかしないとか モジュールにするとかしないとか
0583デフォルトの名無しさん
2011/09/10(土) 13:05:34.13使いやすいキーボードに
キーボードカバーをかけるようなもん。
せっかく完成されたものを使わずにラップしてどうする。
世の中に普及しているライブラリってのは一般によく設計された作られているもの。
理由があってこうなっているのに、それをラップしても使いにくくなるだけ。
ラッパーは作るのがかなり難しいんだぞ。
十分に説得できる根拠がなければ、それは単に機能低下させているに過ぎないものになる。
どうせ、ラップして簡単に使えるよ→それじゃこういう場合に使いにくいだろ→拡張するよ→繰り返す→ラップ前と殆ど変わらいよ。になる。
既存のライブラリが使いにくいのなら、ラップするのではなく使いやすくするヘルパーライブラリを作ればいいだけの話。
そうすれば、あるときはヘルパーライブラリで簡易な操作をしながら、それでいてオリジナルの全機能もそのまま使える。
0584デフォルトの名無しさん
2011/09/10(土) 18:46:40.880585デフォルトの名無しさん
2011/09/10(土) 20:39:25.370586デフォルトの名無しさん
2011/09/10(土) 20:47:17.06そんなことはどうでもいいが、さすがにFSOを使用した自作のユーティリティー関数(の集まり)
をライブラリーとは言わないだのとか言った話は、馬鹿らしくて話にならない。
反論って、そもそも無知で馬鹿で非常識すぎて話が噛み合ってないのに反論も糞もあるか。
0587デフォルトの名無しさん
2011/09/10(土) 20:49:25.01言いたいことがあるから、黙らずレスしたんだろ?
なのに、その肝心の言いたいことがかかれてないのだから、馬鹿にされて当然。
0588デフォルトの名無しさん
2011/09/10(土) 21:25:52.35特に、「バカほど声がでかい(掲示板では必死な文を書く)」の格言通りの奴が多いから
尚更バカが目立つ
0589デフォルトの名無しさん
2011/09/10(土) 21:27:05.710590デフォルトの名無しさん
2011/09/10(土) 21:27:16.580591デフォルトの名無しさん
2011/09/10(土) 21:28:47.88馬鹿にしてるのはお前だろうと
0592デフォルトの名無しさん
2011/09/10(土) 22:31:18.60>ライブラリーとは言わないだのとか言った話
そんなレベルの話してるやついたのか?
FSOを使うためのライブラリ作るべきか不要かの話してるやつは結構居たがな
まあそんなの環境と要件と個人の趣味で好きにすれば良い話
0593デフォルトの名無しさん
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
0594デフォルトの名無しさん
2011/09/11(日) 00:55:08.720595デフォルトの名無しさん
2011/09/11(日) 01:52:14.94「どこからかデータを書き換えられる」ことがないので
いちいち生成する必要はありませせん。
つまり、標準モジュールにPublic FSO as new FileSystemObjectと書けばいい。
0596デフォルトの名無しさん
2011/09/11(日) 04:07:26.290597デフォルトの名無しさん
2011/09/11(日) 04:08:39.040598デフォルトの名無しさん
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
0599デフォルトの名無しさん
2011/09/11(日) 04:12:23.35そこまで防ぎたいのなら
標準モジュールにperoperty getを
書けばいいだけなんだけどね。
やる意味が無いから俺はやらないけどw
0600デフォルトの名無しさん
2011/09/11(日) 04:17:14.230601デフォルトの名無しさん
2011/09/11(日) 04:18:08.82mFSOをFSOに直さないとエラーでるよ
0602デフォルトの名無しさん
2011/09/11(日) 05:06:51.090603デフォルトの名無しさん
2011/09/11(日) 05:20:42.960604デフォルトの名無しさん
2011/09/11(日) 10:49:29.82その後に、何か不具合や脆弱性のあるものの修正パッチとかありましたか?
0605デフォルトの名無しさん
2011/09/11(日) 10:50:43.28まだ中学生でVBもまだほとんど分からないのです。
よろしくお願いします。
0606デフォルトの名無しさん
2011/09/11(日) 11:25:29.17バリバリ使えたが。これだからゆとりは。
0607デフォルトの名無しさん
2011/09/11(日) 13:06:03.470608デフォルトの名無しさん
2011/09/11(日) 13:24:31.930609デフォルトの名無しさん
2011/09/11(日) 13:51:40.50おもちゃをバラしたのはいいが、元に戻せなくなってしまった的な
アセンブリですか?
0610デフォルトの名無しさん
2011/09/11(日) 15:39:12.99みんなできたし。
0611デフォルトの名無しさん
2011/09/11(日) 16:33:06.630612デフォルトの名無しさん
2011/09/11(日) 16:37:24.56MSに問い合わせろ
0613デフォルトの名無しさん
2011/09/11(日) 16:39:29.15ここに棲んでる奴らの回答なんか当てにならんだろ
MSに問い合わせろ
0614デフォルトの名無しさん
2011/09/11(日) 18:31:14.08ActiveX.exeにすれば、VBS側からVBアプリを呼んで、VBアプリ内の関数が返した値をVBS側で取得できるが
逆にVBアプリ側からVBSを呼んで、VBS内の関数が返した値をVBアプリ側で取得したい
VBSをWSCにすれば素で出来るけど、WSCはxmlで定義を書かなければならず使いにくいのでVBSが使えるようにしたい
実際、VBSやJSのマクロを組み込んだアプリは存在しているので間違いなく可能なはずだけど
検索してもVB6とExcelなどのOfficeアプリマクロの連携の話とかばかりで目当ての記事が見つからず・・・・・
VB6-SP6、WinXP-SP3です
0615デフォルトの名無しさん
2011/09/11(日) 20:37:36.83604です。
すみません、MSもなんか問い合わせ先が沢山あったり、
上手く伝えられないので、知っている人いたらなんとか
教えてもらえませんでしょうか。
0616デフォルトの名無しさん
2011/09/11(日) 22:19:04.11俺の知ってる範囲ではこの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
0617デフォルトの名無しさん
2011/09/12(月) 11:49:57.26「VBで作ったアプリにVBS(ActiveScript)のマクロを搭載する」って具体的にはどういうこと?
0618デフォルトの名無しさん
2011/09/12(月) 17:01:28.39Private Sub Command1_Click()
ScriptControl1.Eval "Msgbox(""hoge"")"
End Sub
0619デフォルトの名無しさん
2011/09/12(月) 17:36:07.13http://www.nsbasic.com/app/
元々はPalm用のBasic言語の開発環境だったみたいだけど、これってどうなの?
サイトではモバイルデバイス向けのVBだとホザいてるけどw
一応Visual Basicのサブセットとも謳ってる。
0620デフォルトの名無しさん
2011/09/12(月) 20:42:17.59ありがとうございました!
0621デフォルトの名無しさん
2011/09/13(火) 01:06:36.960622デフォルトの名無しさん
2011/09/13(火) 01:32:14.03VBって商標?
0623デフォルトの名無しさん
2011/09/13(火) 07:57:31.56それ元々Palmの開発環境だった筈。
その頃もVBユーザーを標的にしてたと思う。
0624デフォルトの名無しさん
2011/09/13(火) 14:38:16.12もともとPalm用の開発環境だったんだっけな
0625デフォルトの名無しさん
2011/09/16(金) 09:14:21.14どうやったらいいでしょうか?
クリックイベントを除去したいのです。
0626デフォルトの名無しさん
2011/09/16(金) 09:50:40.080627デフォルトの名無しさん
2011/09/18(日) 06:19:00.370628デフォルトの名無しさん
2011/09/20(火) 16:47:55.65インストーラーがwindows\system32フォルダにいろいろとファイルコピーしてたけどさ
あれってちゃんとバージョンチェックしながらコピーしてるんだろうか
XPにもともとあるファイルでこの古いVB6のより新しいファイルを上書きしちゃったりしてないだろうか
してたらどんなトラブルの原因になるかわからん
怖いな
0629デフォルトの名無しさん
2011/09/20(火) 18:30:24.250630デフォルトの名無しさん
2011/09/20(火) 20:04:15.07でも、dllって問答無用で上書きじゃなかったっけか?
0631デフォルトの名無しさん
2011/09/23(金) 12:20:47.13プロシージャの引数ですが、オブジェクト型であっても、値渡しできますよね?
Public Sub hogehoge( ByVal obj As Foo)
のように。
この引数で渡されたobjというのは、コピーしたものが渡されるのでしょうか?
0632デフォルトの名無しさん
2011/09/23(金) 21:34:20.050633デフォルトの名無しさん
2011/09/23(金) 23:20:44.61値渡し出来るけど、コピーしたものが渡されるけど、
何がコピーされたかが重要。
Dim obj as object
set obj = new Form1
call hogehoge(obj)
って書いた時、
objはForm1の実体(インスタンス)を参照する為の4バイト(多分)しか持ちません。
hogehogeを呼ぶ際、その4バイトのアドレス情報がコピーされ渡されます。
なので、ByValだからってフォームが2つになるような事はありません。
0634デフォルトの名無しさん
2011/09/23(金) 23:21:29.64誤)>>632
正)>>631
0635デフォルトの名無しさん
2011/09/24(土) 01:01:27.88Public 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
0636デフォルトの名無しさん
2011/09/24(土) 01:57:39.24引数でByValで渡すとオブジェクト変数に格納されている値であるアドレス値のコピーが渡されるのであってオブジェクトのコピーが渡されるわけではない
一方ByRefだとオブジェクト変数が参照しているオブジェクトじゃなくて、オブジェクト変数自体への参照が渡される
0637デフォルトの名無しさん
2011/10/02(日) 00:37:19.04AUTOCADというCADソフトのVBAで、コマンドをいろいろ作っているのですが、
コマンド実行中、他のアイコンが選択された場合にだけ Unload Me で終了したい
のですが、他のアイコンが選択されたというイベントを知るにはどうしたらいいのでしょうか?
0638デフォルトの名無しさん
2011/10/02(日) 00:38:53.94この常識が通じないバカな言語が一匹居る。
それがVB
0639デフォルトの名無しさん
2011/10/02(日) 00:58:06.83同じアイコンがならんでて選ぶたびに順番変わるし
普通あの機能使うのは順番に列挙したいからだろ?
なんで選ぶたびにどれをえらんで、どれがまだ試してないのかわからないまま
闇雲に操作してんだよ
何年も何年も。
ばかじゃん。
0640デフォルトの名無しさん
2011/10/02(日) 01:17:08.22突然なんだ? 誤爆か?
ちなみに、ちゃんと「アクティブになった順」っていう「順番」になってるじゃん。
0641デフォルトの名無しさん
2011/10/02(日) 02:44:14.860642デフォルトの名無しさん
2011/10/02(日) 05:36:15.67使い道間違えたまま何を
闇雲に操作してんだよ
何年も何年も。
ばかじゃん。
0643デフォルトの名無しさん
2011/10/02(日) 05:50:35.090644デフォルトの名無しさん
2011/10/02(日) 12:35:27.160645デフォルトの名無しさん
2011/10/04(火) 08:11:01.98複数のファイルの参照ができないので、教えてください。
別のファイルの書き出しはできました。
0646デフォルトの名無しさん
2011/10/07(金) 13:57:58.06またはリストボックスのセレクテッドを拡張して複数せんたくするの
あるもじれるを別のファイルにけんさくってちかんのことをいってるのだろうか
0647デフォルトの名無しさん
2011/10/07(金) 20:40:39.410648デフォルトの名無しさん
2011/10/07(金) 23:18:58.20http://www.geocities.co.jp/siliconvalley/4805/vbtips/vbtips003.htm
0649デフォルトの名無しさん
2011/10/08(土) 12:11:49.33他のあいこんとはどkのあいこんでしょか
ですくとっぷのあいこんなら自身がふぉあぐらんどにないことをたいまでみればいいかもー
(かなりいいかげん
0650デフォルトの名無しさん
2011/10/09(日) 20:10:14.17>他のあいこんとはどkのあいこんでしょか
同じアプリケーション内のアイコンなのです。
0651デフォルトの名無しさん
2011/10/10(月) 14:23:40.79ImageならImage_Click、PictureBoxならPictuteBox_Click、ButtonならButton_Clickでいいじゃないですか
そこにUnload Meと書けば
0652デフォルトの名無しさん
2011/10/18(火) 21:52:09.27AddressOfが使えないのですが
関数へのポインタを取得する方法がなく困っています
XPSP3でEXCEL2000のVBAで作成していますが
実現したい事はあるWindowと同じプロセスの
Windowがあった場合にWindowTitleによって
異なるMessageを送信する。です
元のWindowはデータ転送アプリで
進捗が進むと不定期にダイアログが表示され
都度進捗が止まるので自動でダイアログに
Messageを送り進捗を進めたいのです
0653デフォルトの名無しさん
2011/10/18(火) 22:56:51.42なら標準モジュール使えばいいだけでは?
何が聞きたいのかよくわからんよ
0654デフォルトの名無しさん
2011/10/21(金) 15:05:39.99【やりたい事】
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の部分がよくわかりません
調べてみましたが、お手上げ状態です
どなたか宜しくお願いします
0655デフォルトの名無しさん
2011/10/21(金) 15:37:50.530656デフォルトの名無しさん
2011/10/22(土) 01:26:56.33excel のvbaやsqlでツール作るのが殆んど、、、
最近、処理速度が必要なツール作成にvb.netを使おうと思ってるがどうかね?
0657デフォルトの名無しさん
2011/10/22(土) 04:54:45.77ちゃんとしたシステム作りましょうよと
あとツールで処理速度が変わる訳じゃ無い
大事なのは設計と作り方、そしてマシンのスペックだ
0658デフォルトの名無しさん
2011/10/22(土) 08:21:40.09論外。
高速化したいなら設計レベルで対応したほうが効果が高い。
ツールを選ぶのは、それだけでは補えない場合の話だが、
VB.NETは高速なソフトウェアを作るには向かない言語。
0659デフォルトの名無しさん
2011/10/22(土) 10:34:02.59ベンチマークしてから言えよw
0660デフォルトの名無しさん
2011/10/22(土) 14:14:50.66>>654 「CreateObject InternetExplorer」「document.forms」でググれ
0661デフォルトの名無しさん
2011/10/23(日) 01:44:18.05ってー方向で作られてるから特に.netだから早いってもんじゃ無いよ
ツール選択って開発効率をどうこうっていう話だろ
速さで言ったらネイティブが一番早いのが当然なんだから。
0662デフォルトの名無しさん
2011/10/23(日) 01:45:37.11机上の空論言う前に、ベンチマークしろ。
0663デフォルトの名無しさん
2011/10/23(日) 02:11:15.290664デフォルトの名無しさん
2011/10/23(日) 03:05:01.570665デフォルトの名無しさん
2011/10/23(日) 23:17:54.89お前は野垂れ死無ければ、裕福だと思うのか?
0666デフォルトの名無しさん
2011/10/23(日) 23:35:33.62比較対象のない絶対的評価で早いも遅いもない。たんに絶対的な評価がそこにあるだけだ
技術論を主観で語られても困る
お前の例だと、野垂れ死にするやつは、野垂れ死にしないやつより裕福じゃない。それが客観的事実
それを本人がどう思うかは主観問題
0667デフォルトの名無しさん
2011/10/23(日) 23:36:00.91Excelのデータをセルをグリグリ読んで回してるとかだったらDB使えよって話しだし
いやそんな事はとっくにやってて単純にスピード上げたいってんなら.net化も有りだし
バッチ化してデータ整形だけは夜にやっとくとかまあ色々有るじゃん
処理速度上げたい処理とやらを具体的に書いてくれなきゃなんとも言えん
0668のぞみ ◆fv9SHj5ibk
2011/11/01(火) 20:31:40.22やってたんですけど
まァ本題へ
パスワードをかけて そのパスワードが違ったら違いますという
成功していたら 成功していますという処理にするにはどうすればいいんですか?
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
~
ってでてくるんですけど 何がおかしいんですか?
0669デフォルトの名無しさん
2011/11/01(火) 20:39:33.350670のぞみ ◆fv9SHj5ibk
2011/11/01(火) 20:43:30.660671デフォルトの名無しさん
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| \ ソ
0672デフォルトの名無しさん
2011/11/01(火) 20:56:34.610673デフォルトの名無しさん
2011/11/01(火) 20:57:49.14VB6なら多少わかるけど
見たことない文法だからVB6以前のものなのかな?
それともVBSとかいうやつなのかな?
0674のぞみ ◆fv9SHj5ibk
2011/11/01(火) 21:02:00.63Visual Basic 2010だお
パスワードを入れる前はFrom?の有効はオフでパスワード認証成功したら
Fromの有効をオンにする方法はどうやるのですか?
0675デフォルトの名無しさん
2011/11/01(火) 21:07:17.340676のぞみ ◆fv9SHj5ibk
2011/11/01(火) 21:18:41.500677デフォルトの名無しさん
2011/11/01(火) 21:22:16.19>>1
http://www.google.co.jp/
※「まず自分で調べる」クセを身につけよう。
0678デフォルトの名無しさん
2011/11/01(火) 21:44:49.22VB2010はVB.NET
VB.NET質問スレ(Part37)
http://hibari.2ch.net/test/read.cgi/tech/1317448996/l200
0679デフォルトの名無しさん
2011/11/01(火) 21:46:46.92対象外のVBのバージョンも列挙しようよ
あまりにも.NETのやつら来すぎ
0680デフォルトの名無しさん
2011/11/01(火) 22:04:43.72そういうの無駄な努力って言うんだよ。
そもそも、テンプレなんて、言っちゃ何だけど書いてる奴の自己満足。
EULAみたいに読まれなくても書いてあることに法的な意味があるわけじゃないんだから。
0681デフォルトの名無しさん
2011/11/01(火) 23:19:44.99何も書いてなけりゃいちいち説明せにゃならん
0682デフォルトの名無しさん
2011/11/02(水) 00:07:05.89あんたの気が済むかどうかってこと?
ああそうですかw
VBスレらしい知的な会話だな
0683デフォルトの名無しさん
2011/11/02(水) 00:50:34.99VBは関係ない。VBのせいにするな。
単にお前が馬鹿なだけだ。
0684デフォルトの名無しさん
2011/11/04(金) 11:06:53.58メニューバーの表示を押したら、ラベルの計算した数式が表示されるようにしたいんだけど
どうしたらいい?
メニューエディタで表示ってやつは作れた
0685デフォルトの名無しさん
2011/11/04(金) 18:04:33.77もうちょっと正確な日本語で頼む
0686デフォルトの名無しさん
2011/11/05(土) 00:24:34.71http://www.asmix.co.jp/product/desk-goods/dg009/c1222c1221c1201.html
こんな感じの計算式をメニューバーの表示を押したら、表示されるようにしたいんだ
0687デフォルトの名無しさん
2011/11/05(土) 00:58:51.80表示したい計算式は文字列として存在してるの?
計算結果は自力で計算するの?
ボタンを押して、それぞれのラベルにそれぞれの文字列を代入するだけの話?
0688デフォルトの名無しさん
2011/11/05(土) 03:13:04.01どうもすみません
ボタンを押してラベルに計算結果を表示させてるんですが
例えば1+2=3って押したらラベルには3って表示されてるんだけど
その答えの計算式である1+2=3をメニューバーの表示に表示させたいんです
0689デフォルトの名無しさん
2011/11/05(土) 04:37:41.650690デフォルトの名無しさん
2011/11/05(土) 06:41:17.71Label1.Caption = 表示したい計算式
0691デフォルトの名無しさん
2011/11/05(土) 09:03:11.83日本語よめる?
0692デフォルトの名無しさん
2011/11/06(日) 09:20:33.01csv読み込み→リッチテキストボックスに表示→
必要な情報を検索(find)→テキストボックスに表示
というものを作りました。
csvの内容は品番、ロット、その他情報が1行ずつ入力されています。
リッチテキストボックス+findを使ったやり方で以下の問題にぶつかっています。
・リッチテキストボックスに情報を全て読み込ませないと検索できない(情報が多い)
・リッチテキストボックスが狭くて、行が折れていると複数行としてカウントされる。
・列毎に検索対象を絞れない(その他情報に品番が書かれていると対象になる)
初めて作ったプログラムなので根本的な所から間違っている気がするのですが
こういった情報を検索する場合、どういった方法が良いのでしょうか?
一から作り直す覚悟はあるのですが、必要なキーワードが思いつかず
MSDNやgoogleでの検索にも行き詰っています。
どうかお助けを。
0693デフォルトの名無しさん
2011/11/06(日) 14:10:32.040694デフォルトの名無しさん
2011/11/06(日) 14:44:54.41すみません、openで開いたファイルというのは
リッチテキスト等で表示させなくても
読み込んだデータを検索したりすることが出来るということでしょうか?
0695デフォルトの名無しさん
2011/11/06(日) 15:30:05.28全てのデータを見せる必要がないなら、csvを変数に読ませておいてその変数の中を検索したら?
findっていうのが俺は使ったことないからどんなのか分からないけど・・・
で、変数の中を検索して見つけたところを別の変数に部分的に書き出すなり何なりして
表示用のテキストボックスでも用意してそこに表示するとか
0696デフォルトの名無しさん
2011/11/06(日) 16:08:21.44それだったらラベルに計算式が表示されませんか?
ラベルには答えを表示したままで、表示エディタにその答えの計算式を表示させたいのです
計算式というのは電卓なので動的で、必ず決まった計算式というわけではありません
繰り返しになりますが、>>686のような計算式を表示エディタに表示したいです
すみませんが、よろしくお願いいたします
0697デフォルトの名無しさん
2011/11/06(日) 16:27:08.77>csvの内容を読み込んでその読み込んだデータをそのままテキストとしてユーザに見せる必要はあるの?
ないです。Findで検索するために表示してます。
>変数の中を検索して見つけたところを別の変数に部分的に書き出すなり何なりして
変数の中を検索するとは、Instrを使用するということでしょうか?
0698デフォルトの名無しさん
2011/11/06(日) 16:35:02.12そんなレベルの人がそんなもの今更VB6などでやる必要あるの?
他の言語やソフトを覚えた方がいいよ、会社でVB6しか使ってはダメでもないかぎり
0699デフォルトの名無しさん
2011/11/06(日) 17:47:14.34まさにそのとおりの状況です。
0700デフォルトの名無しさん
2011/11/06(日) 17:58:53.69会社にVB6の入門書やVB6が使える人がいるだろう、じっくり勉強してください
0701デフォルトの名無しさん
2011/11/06(日) 18:10:44.36表示エディタ.Caption = 表示エディタ.Caption & 押したキー.Caption
0702デフォルトの名無しさん
2011/11/06(日) 18:16:20.62http://ll.la/a5+~
キーワード vbpart56
やりたいのはこういう事?
0703デフォルトの名無しさん
2011/11/06(日) 19:46:36.79どうもわざわざありがとうございます
動きはこういうことですね
ソースは>>701のような感じなんでしょうか?
>>701もありがとうございます
0704デフォルトの名無しさん
2011/11/06(日) 20:36:00.93今すぐ離職を考えたほうが良い。
技術者として使い物にならなくされる前に。
0705デフォルトの名無しさん
2011/11/06(日) 21:03:19.98入力はただのテキストボックス
メニューを押すとテキストボックスの式を計算して
その結果をラベルに代入しているだけ
0706デフォルトの名無しさん
2011/11/06(日) 21:53:06.54なるほど
どうもありがとうございました!
ちょっとやってみます
0707デフォルトの名無しさん
2011/11/07(月) 12:04:47.180708デフォルトの名無しさん
2011/11/07(月) 17:06:39.62リッチテキストでのプログラムが出来たなら
type,get辺りでググれば出来ると思うよ。
0709デフォルトの名無しさん
2011/11/07(月) 21:47:48.66ありがとうございました。
簡易的なものは組めましたので
何とかなりそうです。
0710デフォルトの名無しさん
2011/11/08(火) 00:59:20.93現状でも保障なんて無いしな。
Officeなら2010でもまだVBA生き残ってるから大丈夫だろうけど
0711デフォルトの名無しさん
2011/11/08(火) 06:14:48.16どうにか作ることが出来ました。
本当にありがとうございました。
0712デフォルトの名無しさん
2011/11/09(水) 16:48:23.220713デフォルトの名無しさん
2011/11/09(水) 20:46:04.15"お勧めしない"ってのは無理な話だよな。
0714デフォルトの名無しさん
2011/11/09(水) 21:17:38.00仕事でプログラムやってるならVB6だけで食えるという人なんてもういないだろうからどうでもいい話だわな
今の時期に入門としてVB6を指定したのなら鬼畜かそいつを辞めさせたいかどちらかだろう
0715デフォルトの名無しさん
2011/11/10(木) 00:49:38.960716デフォルトの名無しさん
2011/11/10(木) 16:18:48.150717デフォルトの名無しさん
2011/11/10(木) 20:55:27.36ガベコレの都合だよな?
0718デフォルトの名無しさん
2011/11/12(土) 10:42:29.04IOやGPIBボードで。こういうことを聞いてる?
ttp://www.interface.co.jp/io/index.asp
メカ自体はPLC(シーケンサー)での制御だけど大量のデータ演算なんかはPCを使う。
最新環境はマイクロソフトやプログラマーの都合だけであって、エンドユーザーからすれば
新規装置でも過去装置との互換を保つ方が何かと都合がいい。
>>699はそういう環境なんじゃないかと思う。
俺なんかもWin95〜XPまではVB6も使ってるけどね。需要は多いよ。
0719デフォルトの名無しさん
2011/11/21(月) 02:40:22.80VBでUNICODEがまともに扱えないとは
例えばどんな状況でしょう?
VBはUNICODEが基本でしゅが
0720デフォルトの名無しさん
2011/11/21(月) 15:04:08.780721デフォルトの名無しさん
2011/11/21(月) 20:36:04.410722デフォルトの名無しさん
2011/12/05(月) 21:50:41.81テキストファイルをバイトサイズで分割して〜
というような仕組みだったので
UNICODEにしてしまうVB6ではちょっとめんどくさい事になった。
0723デフォルトの名無しさん
2011/12/05(月) 22:01:41.15VB6は不滅です
0724デフォルトの名無しさん
2011/12/05(月) 22:50:02.47改行で分割するならバイナリで開けばいいし
2バイト文字区切りならバイナリで区切って文字コードで判断すればいいし
VB6のせいなのかねぇ
0725デフォルトの名無しさん
2011/12/06(火) 09:23:02.67だとすると、もはやテキストではないので
バイナリファイルとして考えれ
0726デフォルトの名無しさん
2011/12/06(火) 10:56:10.770727デフォルトの名無しさん
2011/12/06(火) 20:05:54.86AパートとBパートがあるとして、
確かにAパートもBパートも固定長だが、Bパートは1〜複数存在する。
改行は無い。
AパートもBパートもそれぞれさらに細かく分割される。
バイナリで読む方法はもちろん試したが、文字化けが生じてしまった。
最終的には、ADODB.streamの文字コード変換を使って解決した。
0728デフォルトの名無しさん
2011/12/07(水) 12:55:30.21シリアル通信プログラムは
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
よろしくお願いします。
0729デフォルトの名無しさん
2011/12/07(水) 13:06:59.23http://dobon.net/vb/dotnet/internet/tcpclientserver.html
この辺をみて
0730デフォルトの名無しさん
2011/12/07(水) 13:12:21.82仮想COMポートはないの?
0731デフォルトの名無しさん
2011/12/07(水) 13:17:54.260732デフォルトの名無しさん
2011/12/07(水) 13:27:40.570733デフォルトの名無しさん
2011/12/07(水) 13:28:53.15どこのメーカーのなんと言う製品なのかによるな
0734デフォルトの名無しさん
2011/12/07(水) 23:10:11.38これはどこで設定したら良い?
0735デフォルトの名無しさん
2011/12/07(水) 23:27:05.55Ethernet-シリアルコンバンーターは、CONTECのRP-COM(FIT)H-AFです。
http://www3.contec.co.jp/B2B/ConIWCatProductPage_B2B.process?Merchant_Id=1&Section_Id=54&Catalog_Id=54&Product_Id=1528
当機は、仮想ポートには対応しております。
0736デフォルトの名無しさん
2011/12/07(水) 23:49:48.950737デフォルトの名無しさん
2011/12/07(水) 23:51:42.93マニュアルとドライバぐらいダウンロードしないよ。
制御PCに仮想COMドライバをインストールすればよい。
後は普通のCOMポートと同じように使用できる。
もしくは、もう一台シリアルコンバーターを買ってきて、
制御PCのCOMポートに接続してあげればよい。
もし制御PCからUDPを使って装置を制御する事を期待しているなら、
装置のファームウェアを変更して、RP-COM(FIT)H-AFの専用コマンドに
対応するように作りかえる必要がある。
ただし、この手のハードウェアは制御線の動作に癖があるので、
CS/RSやCTS/RTSを変わった使い方してるとまともに動かない事もある。
0738デフォルトの名無しさん
2011/12/08(木) 00:00:45.20ない。
0739デフォルトの名無しさん
2011/12/08(木) 01:36:46.69大変参考になりました。
ありがとうございました。
0740デフォルトの名無しさん
2011/12/08(木) 09:43:50.99コードは出来てる(と思う)んだけど、今VBが使えない環境なもんで、
誰か代わりに実行してULし直して貰えたりしませんか?
http://www1.axfc.net/uploader/Sc/so/298858.zip
同梱ファイルのバイナリを書き換えるだけの物なんだけど、手動じゃちょっと膨大で。
0741デフォルトの名無しさん
2011/12/08(木) 10:50:53.130742デフォルトの名無しさん
2011/12/08(木) 12:00:51.92>文字化けが生じてしまった
あたりまえだ。
固定バイトで区切るんだから、2バイト文字の間で区切ったら
文字と対応しないバイト列になるんだから
表示できない。
文字コード変換してとか解決したように見えただけだろ。
もし表示できてるなら、指定バイトで区切られてないはず。
表示したものをもう一度書き出すプログラムなんて世に送り出さないでくれ。
0743デフォルトの名無しさん
2011/12/08(木) 12:23:58.602バイト文字を切ったとかじゃなくて、そもそも違う文字コードのを
データを表示しようとして化けただけじゃないか
シフトJIS固定長で文字が境界またぐなら、格納時に考慮しとくべき問題だが
0744デフォルトの名無しさん
2011/12/08(木) 12:38:34.22すみません、スマホしかないもので。
ダメもとで、とりあえずあちこち見ながら書いてはみたものの。
でもそれ程基礎的な物ならスマホ上でも動くアプリあるかもしれないですね。
もう少し勉強し直してみます、ありがとうございました。
0745デフォルトの名無しさん
2011/12/08(木) 13:04:46.330746デフォルトの名無しさん
2011/12/08(木) 13:06:52.790747デフォルトの名無しさん
2011/12/08(木) 14:17:19.970748デフォルトの名無しさん
2011/12/08(木) 20:07:09.170749デフォルトの名無しさん
2011/12/08(木) 21:21:16.250750デフォルトの名無しさん
2011/12/09(金) 01:46:41.86ちょっとした作業ツールとか作るの慣れたVB6が楽すぎて未だにVB6から離れられない
0751デフォルトの名無しさん
2011/12/09(金) 03:19:45.10Dim btn As CommandButton ' コンパイル通るし、実行してもエラー起きない
Dim btnA As New CommandButton ' New キーワードの使い方がだめ とエラーが出る
Set btn = New CommandButton ' 同上
Dim a As New Class1 'Class1は何も書いてない適当なクラスモジュール。 問題ない。
おそらく、CommandButtonは抽象クラスだから生成出来ないのかな?と考えてはいるんですが
エラーメッセージが変だし、Class1でコンストラクタなど定義してないにもかかわらず、生成出来る不思議。
そして、ネット上で探してもノイズ(VB.NET)が多すぎてよく分からんorz
0752デフォルトの名無しさん
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
というようなのを定義してごまかしてるけど。
とりあえず、この入門書(笑)は風呂の焚き物にしかならんな…
0753デフォルトの名無しさん
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() とかそういう関数あるよ
0754753
2011/12/09(金) 05:10:49.370755デフォルトの名無しさん
2011/12/09(金) 07:12:29.84UI部品のインスタンスを動的に作成する場合にはいくつか制限がある。
フォーム上にボタンを張り付けて、Indexに0と指定しておく。
でもってコントロール配列に対して「Load Button1(1)」とすれば、
インスタンスを生成できる。
0756デフォルトの名無しさん
2011/12/09(金) 07:27:23.06答えは>>743。VB6が勝手にUNICODEにしてしまうところでそうなった。
境界またぎはさせてないよ。
0757デフォルトの名無しさん
2011/12/09(金) 08:17:21.17http://7ujm.net/VB/VB6Controls.html
0758デフォルトの名無しさん
2011/12/09(金) 09:26:32.58実行時に型を変える(TextBoxに入力したコントロール名のを作成)とかで
ない限り、配列ロードでいいんじゃないの。
0759デフォルトの名無しさん
2011/12/09(金) 09:28:04.83ださいよー
0760デフォルトの名無しさん
2011/12/09(金) 15:15:33.320761デフォルトの名無しさん
2011/12/09(金) 16:24:09.53ああ、なるほど、ケツにつけるから併用出来るのか
MsgBox(&HFFFF&)ででけた
自動でキャストされることになれてないから、キャストを明示的に指定しなきゃいけない様に設定できたら
VB初心者のおいらでも安心してくめるかなと。そうした方が後継者もあんまり混乱しなくてすむし。
>>755-760
thx。要素数に応じて、コントロールを並べることを考えてたからコントロール配列で良さそうだわ。
コントロール配列使えばたぶん必要ないことだと思うけど、
VB6にはまだ匿名関数でクロージャをやったりとか出来ないよね?(確認)
コールバックとか難しそうだな…AddressOfで取得したのを直接実行できないのかよ。
0762デフォルトの名無しさん
2011/12/09(金) 16:33:10.590763デフォルトの名無しさん
2011/12/09(金) 17:08:05.520764デフォルトの名無しさん
2011/12/09(金) 18:31:41.95いやさ、おまえらみたいになれてる奴には気にならんかもしれんけど
http://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を消される
0765デフォルトの名無しさん
2011/12/09(金) 20:09:16.340766デフォルトの名無しさん
2011/12/09(金) 20:16:14.630767デフォルトの名無しさん
2011/12/09(金) 20:33:37.140768デフォルトの名無しさん
2011/12/09(金) 20:36:46.710769デフォルトの名無しさん
2011/12/10(土) 21:10:33.06VB6用の本を買ったのですがVB2010というのでもいけますかね?
0770デフォルトの名無しさん
2011/12/10(土) 21:12:46.13VB6のやり方ではVB2010では何もできない
VB2010のやり方ではVB6では何もできない
0771デフォルトの名無しさん
2011/12/10(土) 21:12:58.416.0と2010は全く違うものです
それに6.0は今から覚えるには古すぎるのでお勧めしない
0772デフォルトの名無しさん
2011/12/10(土) 21:14:34.67今はどうなのかねえ。
0773デフォルトの名無しさん
2011/12/10(土) 21:15:44.89そうなんですか・・・2010用の学習書を買い直しますありがとうございました
0774デフォルトの名無しさん
2011/12/10(土) 21:21:16.77VB2010はVB6とは全く別物。.netベースになってる。 VC++2010みたいにWin32も開発できるなんてことは”ない”。完全に.net専用。
つか、新しく始めるならなぜにVB6とか苦行するしw
.netでもかまわないならC#とかおすすめよ。C#の方が新機能とかの追加が早いし。
研究とかで.netが使えないなら、C/C++あたりが無難。誰でも使えるしな。
RADツールがほしいならDelphi3〜7という手も悪くない。マイナーだが、プログラム経験があれば1週間もあれば誰でもかけるようになるだろう。
過去の遺産の引き継ぎとか、明確にVB6でなければならない限り、VB6を使う理由もないし、使うべきじゃない。
入手先の前にまず再考を。 別にその本をどぶに捨てたところで全然惜しくないしな。
0775デフォルトの名無しさん
2011/12/10(土) 21:31:06.68Cはある程度できるんでC++にしようかなと思います。
ただ簡単なソフトを作ったりするのにはVBが一番簡単かな?と思ったんです
0776デフォルトの名無しさん
2011/12/10(土) 21:32:18.67としか思えんけど。
逆にネタじゃないなら相当頭がどうかしてる。
こんなところに書き込んでるわけだから、最低限webにアクセスできる環境にはあるんじゃないの?
0777デフォルトの名無しさん
2011/12/10(土) 21:36:23.300778デフォルトの名無しさん
2011/12/10(土) 21:38:39.020779デフォルトの名無しさん
2011/12/10(土) 21:39:04.410780デフォルトの名無しさん
2011/12/10(土) 21:41:04.82どこに「いつまでもVB6なんて使ってる」なんて書いてあるんだw
0781デフォルトの名無しさん
2011/12/10(土) 21:41:39.000782デフォルトの名無しさん
2011/12/10(土) 21:42:54.61じゃああなたが面白いレスの手本見せて下さいよ〜
0783デフォルトの名無しさん
2011/12/11(日) 05:39:23.55つかVBマクロて人気なんだな
OpenOfficeに最も望まれてる追加機能がVBA対応とか
これじゃVB無くならんわ
0784デフォルトの名無しさん
2011/12/11(日) 16:03:38.31Excelっていう土台と、初心者と本格的プログラミングの中間にある
開発環境が他にないからね。
Accessまでいっちゃうと、本格的プログラミング寄りで、何より、データベース
って土台は初心者にキツイ。
ということなのだろう。
ただ、そろそろVBAは、言語体系を.NETに近づけたほうがいいとは思う。
0785デフォルトの名無しさん
2011/12/11(日) 16:14:13.290786デフォルトの名無しさん
2011/12/11(日) 16:34:15.51Excelでデータを作って対応させるのように指示を受けました。
私は商品名を入力し、実行するとその商品の画像を表示するようにしたいのですが、
この場合、Excelのデータ作成はどのように行えばいいですか?
0787デフォルトの名無しさん
2011/12/11(日) 16:44:32.250788デフォルトの名無しさん
2011/12/11(日) 17:39:35.980789デフォルトの名無しさん
2011/12/11(日) 17:41:41.90近づけるというか、いっそうVBAとCOMを取り除いて、.netベースにしてしまって
VBAの代わりにVB.NET(移植向け)、C#(新参/初心者向け)を使えるようにすればいいんじゃね?
ExcelやAccessでlinqが使えれば、業務系の人にもうけが良いだろうし。(むしろにて異なるものでキモがられるかね?)
>>785
.netって基盤を作ってきたMSだから、今更Javascriptはないと思う。
OOoはVBAとか誰得なものをつけるより、Javascriptでマクロを組めた方が遙かに現実敵だとは思うが。
Google Docsの方はJavascriptだけども、サーバサイドで動くので使いにくいね。
0790デフォルトの名無しさん
2011/12/11(日) 17:43:13.57研究室の過去のプログラムの更新にやむなくってのは分かるが
学校で今更VB6を教えてるって、その学校かなりヤバくね?
中学校の部活か何かでVBAでプログラミング体験とかなら分からんでもないが。課題もそのレベルだし。
0791デフォルトの名無しさん
2011/12/11(日) 17:48:42.38教える老人のノート、数十年前のものいまだに使ってるって
0792デフォルトの名無しさん
2011/12/12(月) 02:34:55.91ワイは日本人やが聞いた情報によると、もうじき中国はバブルがはじけて昔の貧乏な元の中国に戻るらしいで
みんなも知っての通りもう経済は破綻してて、取り戻すのは無理なんだそうや
その世界ではごっつい有名な政府関係者筋から聞いた確かな情報やで
まあお前らほどの頭の良い連中には、今さらなくらいのネタやな、失礼なくらいかもしれん
お前らからすればもう常識的なくらいの知識やろ?
0793デフォルトの名無しさん
2011/12/12(月) 10:26:11.26実行時エラー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
0794デフォルトの名無しさん
2011/12/12(月) 15:51:10.15xlsmファイルって読み取ることができますか?
読み取れるようであれば例文教えていただけると
ありがたいですm(_ _)m
0795デフォルトの名無しさん
2011/12/12(月) 15:52:47.840796デフォルトの名無しさん
2011/12/12(月) 15:58:29.53Excelも入れていて読み込めるはずなのですが
xlsmfile = New FileIO.TextFieldParser("ファイル名.xlsm",
System.Text.Encoding.GetEncoding("Shift_JIS"))
xlsmfile.TextFieldType = FileIO.FieldType.Delimited
xlsmfile.SetDelimiters(",")
この文では読みこめないのでしょうか?
0797デフォルトの名無しさん
2011/12/12(月) 16:09:00.17createobjectして読み込むんだよ
0798デフォルトの名無しさん
2011/12/12(月) 16:23:43.16ひょっとして.net+VSTO?VSTOは実は単なるCOMラッパーだったりするから微妙だけど。
そもそも、Microsoft.VisualBasic.FileIO.TextFieldParserって、zipしてある奴も読めるのか?
MSDNをさっと目を通すと、CSV/TSVとかのテキストファイル前提っぽいが。
>.GetEncoding("Shift_JIS"))
あれ?普通、xlsx/xlsmの中身のエンコードってUTF-8とかUnicode系じゃねーの?
あと念のために聞くけど、PC初心者?まるで分かってないオーラが漂いまくってるけど。
ついでに、VSTOはそんな便利じゃないよ。イテレートもろくに使えないし。
0799デフォルトの名無しさん
2011/12/12(月) 16:27:08.33試してみたんですができませんでした。
createobject の使い方教えてくれませんか?
0800デフォルトの名無しさん
2011/12/12(月) 16:41:55.330801デフォルトの名無しさん
2011/12/12(月) 17:01:08.62テキストファイルを読むことを前提にしているので大丈夫です。
>あれ?普通、xlsx/xlsmの中身のエンコードってUTF-8とか
Unicode系じゃねーの?
調べてみます。
PC初心者です。
これから勉強していきたいのでよろしくお願いします。
0802デフォルトの名無しさん
2011/12/12(月) 17:01:50.87読めます。
中身はZIP形式で圧縮されたテキストファイルです。
試しに拡張子をzipに変更した後、開いて、中のファイルをメモ帳ででも開けばよい。
0803デフォルトの名無しさん
2011/12/12(月) 17:02:57.81どう試してみたの?
0804デフォルトの名無しさん
2011/12/12(月) 17:06:09.39ググった? あと、ここはVB6スレなんだが間違いはないか?
0805デフォルトの名無しさん
2011/12/13(火) 02:14:57.180806デフォルトの名無しさん
2011/12/13(火) 08:17:11.380807デフォルトの名無しさん
2011/12/13(火) 12:45:11.56ここ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")
0808デフォルトの名無しさん
2011/12/13(火) 22:12:37.25言語が全く違うんだから気にスンナレベルじゃねーだろw
>>807
VB6ならExcel COMから読み出せば良いんじゃね?
VB.NETなら、どこかのZIPライブラリ使って中のxmlをlinqで列挙するのがお手軽かと思うけど
0809デフォルトの名無しさん
2011/12/14(水) 02:49:46.98イベントについてさっぱりなので教えてくれ。
eventキーワードでのイベントの定義については分かった
RaiseEventでのイベントの発生も分かる
だけど、実際にメソッドを結びつける方法が分からん まるでわかめ。
http://privatepaste.com/3e1d507e11
0810デフォルトの名無しさん
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
0811デフォルトの名無しさん
2011/12/14(水) 03:46:13.88キモの部分は
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が内包しているクラスのイベントをリレーしないとだめ?
というか単純に配列の中にオブジェクト入れてた場合はどうなるの?
0812デフォルトの名無しさん
2011/12/14(水) 04:51:35.30(配列にできない、Newで宣言できない、Moduleでは宣言できない)
WithEventsを宣言したForm(またはClass)内でしかそのイベントをキャッチできない
0813デフォルトの名無しさん
2011/12/14(水) 04:55:05.51Class1で宣言したイヴェントはClass1内からのみ発生させられる
Class1のインスタンスから発生したイヴェントをキャッチするには
WithEventsでClass1のイヴェントをキャッチする入れ子を宣言し
それにあらかじめインスタンスをつっこめばそのインスタンスから発生したイヴェントをキャッチできるようになる
が入れ子に設定されたインスタンスからのイヴェントしかキャッチできない
0814デフォルトの名無しさん
2011/12/14(水) 04:57:03.36(配列にできない、Newで宣言できない、Moduleでは宣言できない)
↓訂正
(配列にできない、Newで宣言できない、標準Moduleでは宣言できない)
0815デフォルトの名無しさん
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
0816デフォルトの名無しさん
2011/12/14(水) 05:09:59.08http://homepage1.nifty.com/rucio/main/shokyu/jugyou29.htm
0817デフォルトの名無しさん
2011/12/14(水) 05:20:06.22回答者は回答をわかりやすく明確に
カオスな流れになってるぞ
0818デフォルトの名無しさん
2011/12/14(水) 05:25:49.38Class1内のClass2インスタンスのイヴェントを
そのClass1のインスタンス内でキャッチしたけりゃClass1内にWithEventsを書いてそのClass2のインスタンスへの参照入れろ
Class1以外、たとえばForm1でClass1内のClass2のイヴェントをキャッチしたけりゃ
Form1内にClass2のWithEvents書いてClass1内のClass2のインスタンスの参照を渡すか
Class1内でClass2のイヴェントをキャッチしてClass1でイヴェントをキャッチしたってイヴェント発生させろ
0819デフォルトの名無しさん
2011/12/14(水) 05:36:14.320820デフォルトの名無しさん
2011/12/14(水) 08:25:05.620821デフォルトの名無しさん
2011/12/14(水) 11:32:10.370822デフォルトの名無しさん
2011/12/14(水) 11:36:56.97http://oshiete.goo.ne.jp/qa/504573.html
0823デフォルトの名無しさん
2011/12/14(水) 16:28:56.24タスクバーから取り出しを実行すると定番の
「デバイス'汎用ボリューム'を今停止できません。」
の表記が出て、アプリを終了するまで停止できません。
一応調べましてFileSystemObjectを使い、ファイル保存の際に使用していた
dirからFolderExistsに変更ましたが、"アプリ起動後"にUSBメモリを挿すと
想定通りUSBメモリの取り外しが行えるものの"アプリ起動前"から
USBメモリが刺さっていると上記のエラーが出て取り出しができないのです。
更に調べて、上記に加えて最後にchdir("C)でローカルドライブに変更してやると
アプリ起動前にUSBメモリを挿していても、問題なく取り外しが行えるように
なったもののどうもしっくりきません。
どなたかこの状況から原因をエスパーできる方はおりませんか?
0824デフォルトの名無しさん
2011/12/14(水) 16:46:33.220825デフォルトの名無しさん
2011/12/15(木) 13:30:43.68環境/言語:[windows7/visual basic6.0/?]
分類:[VB6以前]
4つのテキストボックスに入力した数字をソートしてラベルに小さい順に表示するプログラムを作成するノルマを与えられています。
しかしvisual basic6.0だとあまりい良い文献がなく、ほとんど参考になりません。
ちなみに自分はオブジェクトを配置するくらいの技能までは持っています。そこから先がすすめません。
何だよそのノルマと技能はwww
0826デフォルトの名無しさん
2011/12/15(木) 13:34:58.640827デフォルトの名無しさん
2011/12/18(日) 12:22:19.04大きな問題として
Dir関数って、フォルダを参照した後で内部的に終了処理がなされてないよね
Loopでファイルの列挙ができるようになってる都合上、参照し続けてしまう
前の方のレスにも書いたけど
Dir ""とすれば開放できるとするサイトがあるけど、それでもカレントフォルダを参照してしまう
で、話は戻るけど
やっぱりDir関数を修正した以外の場所で使ってるんじゃないの?
またはchdirかも知れないけど、
最後にchdirでUSBメモリ以外を参照すれば抜けるっていうのは、その証拠でしょ
0828デフォルトの名無しさん
2011/12/18(日) 16:25:51.45初心者に対する非常に良い問題なのだが、VB6っていう環境が
初心者の学習に向いてない。
投稿者は明らかに初心者なのだが、こういう掲示板で
どういう言葉遣いで質問するかわからないから変な用語使うハメに。
0829デフォルトの名無しさん
2011/12/18(日) 19:37:06.04自分も新人の時に最初の課題として出されたよ
実際自前でソートする事なんかほぼ無いが
あの時色々と調べて得た知識は今も生きている
0830デフォルトの名無しさん
2011/12/18(日) 19:47:27.780831デフォルトの名無しさん
2011/12/18(日) 22:16:07.930832デフォルトの名無しさん
2011/12/19(月) 09:47:21.79ここはVB6のスレなんだ。
VB6は古いとか.NETやれとか言ってるやつはスレち。
答える気がないなら来るな。
って書こうと思ったら、ここへの質問じゃないのか。
まあいいや。
VB6のスレなんだからVB6かわいがってやってくれ。
0833デフォルトの名無しさん
2011/12/19(月) 18:38:55.79誰かサンプルソースZIPでくれエロい人
0834デフォルトの名無しさん
2011/12/19(月) 18:47:11.67誰に言われたんだ
0835デフォルトの名無しさん
2011/12/19(月) 19:16:57.89>>825はな…どっかの掲示板の転載やで…
答えは求めてないだろ。
(かといってヲチする板でもないがな)
0836デフォルトの名無しさん
2011/12/19(月) 19:25:46.75講師
0837デフォルトの名無しさん
2011/12/19(月) 19:36:01.930838デフォルトの名無しさん
2011/12/19(月) 19:50:28.15VB2010Expressです
0839デフォルトの名無しさん
2011/12/19(月) 21:15:39.13ここはVB6.0のスレ。
VB2010はゴミ箱に捨てて、VB6.0で開発したほうが良い。
それが出来ないなら余所のスレに行け。
0840デフォルトの名無しさん
2011/12/19(月) 22:44:57.960841デフォルトの名無しさん
2011/12/19(月) 22:52:06.76スレ違だボケって意見には賛成できるけど
>VB2010はゴミ箱に捨てて、VB6.0で開発したほうが良い。
コレは同意できないw
0842デフォルトの名無しさん
2011/12/21(水) 05:57:54.47Shell "notepad", VbNormal
0843デフォルトの名無しさん
2011/12/21(水) 06:03:46.00アレは直接呼び出すのと違うの?メリットって何?
0844デフォルトの名無しさん
2011/12/21(水) 06:38:04.44リファレンスぐらい読めよ。
http://msdn.microsoft.com/ja-jp/library/sxz296wz(v=vs.80).aspx
「コードの読みやすさが向上します」って書いてあるだろ。
メリットはそれだけだ。デメリットはタイピング量が6文字増えることかな。
0845デフォルトの名無しさん
2011/12/21(水) 06:49:12.71VB6のリファレンスってまだ残ってたのか! と思ったらコレVB.netのじゃん…
>プロシージャを呼び出すときに Call ステートメントを使用する必要はありません。ただし、そうするとコードの読みやすさが向上します。
>argumentList を指定する場合は、かっこで囲む必要があります。
つまり、引数を括弧で囲めるようになるのか…確かにこれは有用だな。
むしろ、括弧を省略しなければいけない仕様の方をdo…おやこんな時間に誰だろう?
0846デフォルトの名無しさん
2011/12/21(水) 20:08:03.41理由は、コードが見やすくなるからだ。
0847デフォルトの名無しさん
2011/12/21(水) 21:24:27.15まぁ、本当はCall命令はFunctionステートメントやSubステートメントが
無かったころの残骸なんだけどな。
VB1.0の頃には、見た目以外にはほとんど意味の無い命令になった。
0848デフォルトの名無しさん
2011/12/21(水) 21:42:06.92If で開始して、End If で終わる。
Do while〜 Loop で終わる。
CとかJavaとかC#は if で開始して } で終わる。
コードの見やすさからすれば断然C#。
VB6やっててよかったと思う事は、俺にはただ一つ。
VB6 で作ったクラスとかをほぼそのままVBAにも適用して動作可能にできる点だ。
(DB関係はそれでExcelにも使えてる)
0849デフォルトの名無しさん
2011/12/21(水) 22:03:11.42ほんとに綺麗なソースもホントにひどいソースもみたことないんだな、きっと
0850デフォルトの名無しさん
2011/12/22(木) 00:30:12.890851デフォルトの名無しさん
2011/12/22(木) 00:54:11.41BASICの頃のはラベルへGOTOとかGOSUBじゃなかったっけ?
CALLとか使った覚えなさす。 もっともあの頃のBASICはテキストデータを格納して
マシン語を走らせるためのブートローダー的なものだが。
>>850
お願いだからいろんなモジュールのグローバル変数をごっちゃにして
未定義でなおかつ代入してない変数を読み出して、たまたまうまく動いているプログラムを量産しないでください。
イコールの位置とかそろえなくて良いけど、インデントくらいはまともにやってください。
If a = 0 Then ' インデントレベル 0
If b = 0 Then c = 0 ' レベル 0
d = 0 ' レベル1
End If ' レベル0
…これ難読化ツールでも使ったんですか?…
0852デフォルトの名無しさん
2011/12/22(木) 01:03:15.42他人が見るの前提ならCallは付いてた方が良いよな
つか付けてくれ
あと.Textとか.Valueとかも付けといてくれ
Option Explicitも忘れないでー
変数なんだかオブジェクトなんだかSubなんだかFunctionなんだか
そもそも作った人がtypoミスしたまま気が付いてないとか
解らないから!解らないから!
0853デフォルトの名無しさん
2011/12/22(木) 07:28:40.89インデントもロクにしないっていうのは
単に初心者かCOBOL文化の名残り?
0854デフォルトの名無しさん
2011/12/22(木) 08:21:19.98おそらく仕事/上司が気に入らない事への腹いせでやって、逃げていったんだと思う。
一般的に禁忌と言われてることを一通りやってるし、ドキュメントも残ってないし。
ちなみに禁忌って言ってるのはだいたいこのこと。
・インデントをろくにつけない。つけないと言うより、したりしなかったり。全くしないよりたちが悪い。
・リテラル値を多用してハードコーディング
・もちろんファイルハンドル#1なども、一時的、永続的含めて直接指定
・他のモジュールで宣言してあるグローバル変数の多用
・変数の宣言をしてないことは日常
・文字列を数値化したり、文字列化したりしながら使用
・↑と併用して、状態として保持しておくべき値をコントロール(主にラベルなど)のキャプションで保持
・他のモジュールへコントロールを渡してそこでUIを操作
・ロジックとUIの分離? いえいえ当然、積極的に混合してます^q^
・バージョン管理? キチンとしてるよ! ほらここから数行下までのコメン(ry
・適切なコード内ドキュメント
'ファイルをクローズ
Close #1
少なくても初心者なら、ここまでひどい事するか? これは分かってる奴が意図的にやってるようにしか見えないぞ。
0855デフォルトの名無しさん
2011/12/22(木) 09:23:27.25そのぐらいなら、まだ許せるんじゃね?
・2000行を超える超巨大関数。もちろんバグつき。
・無駄にテクニカル。
CallByName、AddressOf、VarPtr、ActiveX、etc...
・何処でもやたらとDoEvents。
DoEventsが無いと長時間応答なし、でもあると落ちるみたいなバグつき。
・何処でもやたらと状態遷移で管理。でも状態遷移図はコーダの頭の中だけ。
0856デフォルトの名無しさん
2011/12/22(木) 22:12:39.722000行を超えて無駄にテクニカルってのが笑えるw
>>854
わざとやってる臭いね
0857デフォルトの名無しさん
2011/12/23(金) 00:31:59.07どっからどうみても俺が今やってるプロジェクトのソースだが
0858デフォルトの名無しさん
2011/12/23(金) 01:18:54.82どんな会社だよ。
ついでにそんな会社にいるあんたのレベルも知れてるな
0859デフォルトの名無しさん
2011/12/23(金) 03:15:29.690860デフォルトの名無しさん
2011/12/23(金) 03:26:43.23今もVB6のソフト使ってるなら
そのパソコン(?)で新たに何かしようとその会社が考えてたら
そのパソコンで稼動するソフト制作を要求するんじゃねの
0861デフォルトの名無しさん
2011/12/23(金) 09:30:04.250862デフォルトの名無しさん
2011/12/23(金) 17:50:08.15アップグレードウィザードで.netに引き継いでやってたりするから怖い
0863デフォルトの名無しさん
2011/12/24(土) 01:29:31.71.NETはC#だけにしてVBはVB6の延長で進化すればよかったのに。
微妙にC#に出来てVB.NETに出来ないことがあって面倒だ。
0864デフォルトの名無しさん
2011/12/24(土) 01:48:11.610865デフォルトの名無しさん
2011/12/26(月) 00:49:07.79わざとインデントなくしてコメントも削除して納品することがある
流用されないようにというケチな気持ち
0866デフォルトの名無しさん
2011/12/26(月) 01:11:20.720867デフォルトの名無しさん
2011/12/26(月) 05:19:47.490868デフォルトの名無しさん
2011/12/27(火) 18:23:44.95納めた会社が大量にコピーして使ったりしてるのを見ると
どうかと思う。もっと金とるかライセンス契約にするか。
ま、そういう会社はOFFICE製品とかも海賊版使いまくってたり
するんだけど。
0869デフォルトの名無しさん
2011/12/27(火) 18:42:35.680870デフォルトの名無しさん
2011/12/27(火) 18:51:37.210871デフォルトの名無しさん
2011/12/27(火) 19:53:10.250872デフォルトの名無しさん
2011/12/28(水) 00:44:02.150873デフォルトの名無しさん
2011/12/28(水) 04:05:53.560874デフォルトの名無しさん
2011/12/29(木) 01:42:07.290875デフォルトの名無しさん
2012/01/02(月) 14:47:56.670876デフォルトの名無しさん
2012/01/02(月) 21:47:31.010877デフォルトの名無しさん
2012/01/06(金) 23:34:52.86現在、VB6.0でプログラミング機能付きのRPN電卓を作るという課題に取り組んでいます。
電卓機能についてはある程度できたのですが、プログラミング機能の方が全く分かりません。
どこが分からないかというか・・・どのように動いているのかイマイチ理解できていません。
解説していただけたら助かります。
0878デフォルトの名無しさん
2012/01/06(金) 23:57:22.550879デフォルトの名無しさん
2012/01/07(土) 00:11:57.42これを元に作ります。
http://kie.nu/3mI
0880デフォルトの名無しさん
2012/01/07(土) 05:22:37.640881デフォルトの名無しさん
2012/01/07(土) 05:59:33.44いつまでVB使うの?
0882デフォルトの名無しさん
2012/01/07(土) 10:44:43.230883デフォルトの名無しさん
2012/01/07(土) 11:43:17.04VBだとコーディングスキルはさほど身につかないだろうけど
手軽にプログラムを作る楽しみを実感できる
いきなり敷居の高い高等言語を強制して
何も形にならずに「プログラミングってつまんねー」ってなるよりは
下等でも手軽な言語で簡単なものを色々作り
思い通りのプログラム・アプリケーションを作ることの楽しさをまず知ってもらい
高等言語に移るのは下等な言語に自分で限界を感じるくらいのスキルが身についてからで十分
0884デフォルトの名無しさん
2012/01/07(土) 11:51:44.95話の流れからすると、ごく普通の高校レベルを
想定しているようだが、その程度の学校で
プログラミングに何を求めるかだ
0885デフォルトの名無しさん
2012/01/07(土) 14:34:46.66高等の使い方間違ってね?
0886デフォルトの名無しさん
2012/01/07(土) 15:13:08.690887デフォルトの名無しさん
2012/01/07(土) 17:48:58.16実を言うと、参照が無くなったら即座に解放するというガベコレ方式のお陰で、
常時動作させる(例えば自動情報収集系)ようなソフトを手軽に作るには
VB6は便利。
.NETとかJavaで同じような事をしようとすると、気軽にインスタンス生成するのが
難しくなる。考えて作らないと。
あと、VB6で作ったクラスはExcelでも「ほぼ」そのまま使えるという利点がある。
.NET以降は、オブジェクト指向の理解が必要なので、学校ならカリキュラム的に
長くなると思う。
個人的には、初心者にはまずCをやらせたい。学校ならやってるとは思うが。
ここは進化しなくて良いよ。
0888デフォルトの名無しさん
2012/01/07(土) 17:54:47.30ちょっと何言ってるのか(w
それって普通は逆で、循環参照の問題がクリアされてないVB6の方が普通は注意を要する。
ドトネトやジャヴァにはその心配がない。
0889デフォルトの名無しさん
2012/01/07(土) 18:56:28.67循環参照は気をつけてたら良いよ。
簡単にメモリリークで落ちるよね。
その「気をつける」ってのが、そんなに考えなくても可能。
.NETとかJVMは、ある程度溜まってからガベコレするので
ソフトがひどい時は数秒止まるでしょ。
常時自動で情報収集するとか、FA用途とかみたいに
絶対に停止させたくないものだと、数秒止まるとか致命傷になる。
0890デフォルトの名無しさん
2012/01/07(土) 19:19:03.42VB6に固執してる人ってすぐそれだけど、そんな事実はないよ。
N88-BASICの時代じゃあるまいしそんな間抜けなことするわけないでしょw
っていうか、それを言うならシングルスレッドのVB6の方が余程リアルタイム性の
要求される処理に向いてない。
話にならん。もうアホかと。
0891デフォルトの名無しさん
2012/01/07(土) 19:58:55.81俺は.NETでもリアルタイム性の要求のあるモノ作るけど、
何も考えずにJavaのwebアプリ作るのと同じ要領で
ValueObjectの類をどんどんnewするような設計にはしない。
これをやってると、ガベコレによる停止時間がひどくなるから。
ValueObjectをどんどんNewしない設計については大まかに分けて2つの方法がある。
意図的なGCを利用できるというのは前提でな。
http://www.atmarkit.co.jp/fdotnet/directxworld/directxworld06/directxworld06_01.html
一応このへん参考。
VB6で作る場合は、循環参照だけ避けてれば後は楽。
VB6で作るわけだから、そんなに手の込んだものにはしないわけで、
シングルスレッドでもそんなに問題にはならない。
0892デフォルトの名無しさん
2012/01/07(土) 20:12:36.09Dim a New Class1, b New Class1
Set a.value = b
Set b.value = a
みたいな感じのこと?
0893デフォルトの名無しさん
2012/01/07(土) 20:37:43.69>>887の彼の発言が奇妙なのは、俺はVBランタイムのメモリ管理に詳しいわけじゃないが、
どのような方法にしろ自動管理である以上断片化は避けられないはずで、
であれば.NETのガベコレの(括弧つきの)「問題」と同じ問題を抱えているはずだと思うけど。
まあガベコレで数秒処理が止まるとか言ってる時点であれだけど
0894デフォルトの名無しさん
2012/01/07(土) 20:49:24.63負の遺産だけど
0895デフォルトの名無しさん
2012/01/08(日) 01:05:36.32カウント数が0になったら領域解放。
.NETとかJavaはバーチャルマシンがGCを担当。
マークアンドスイープとかコピーイングの方法の複合に加えて
古い・新しい領域せ世代別にも管理。
ここで、古い領域のGCがFullGCと呼ばれるもので、>>891の説明している
「数秒止まる」だろうと思う。
ヒープの断片化が問題なわけじゃなくて、ある時一気に
�@生存オブジェクトのマーキング�Aマークなしオブジェクトの除去、
�Bヒープの再配置 という流れでGCを行うので、GC自体がかなりの処理
で重たかった。ヒープの再配置を行うので、どうしてもアプリケーションの
停止時間が発生する。昔のJavaのwebアプリだと、数秒どころか数分無応
答という事があった。http://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については詳しく知ろうと思ったら余裕で本一冊になる。売ってる。
0896デフォルトの名無しさん
2012/01/08(日) 03:25:46.11VB6ってどちらかと言えば
>敷居の高い高等言語
の方に入らないか?まあ、確かに電電の方とかC言語よりアセンブリの方がより直接的で分かりやすいって人も居たが。
今のC#のすべての機能(linq/ラムダ式、型推論)を使いこなすのは難しいかもしれないけど
VB6でやる程度のことなら、C#/VB.netとかの方が遙かに楽に出来ると思う。
それに、オブジェクト指向の説明だって、継承とかその辺の仕組みとかについての説明は難解かもしれないが
すでにあるクラスやメソッドを使う分にはむしろ楽になるだけだろ。 少なくても、今扱ってる変数・値が数値か文字列かはっきりしない言語よりは分かりやすいかと。
GCの事に関しても、それに気を遣わなければならないレベルの事なら、他の言語を検討しても良いわけだし、明示的にコントロールしても良いわけだし。
そもそも、VB6ってExcelのマクロを組むためだけの言語だろ?教育目的で使うなと思うんだが。
RADツールが使える環境なんて.net系以外でもDelphiとかいろいろあるわけで、わざわざVB6を選択する必要は無いし。
0897デフォルトの名無しさん
2012/01/08(日) 03:49:13.220898デフォルトの名無しさん
2012/01/08(日) 20:35:16.36VB6を糞にしてるのはVariant型だよな。
0899デフォルトの名無しさん
2012/01/08(日) 21:11:47.820900デフォルトの名無しさん
2012/01/08(日) 23:41:21.77関数への切り出しすらなく、イベントプロシージャに全部長々と書いてあったり。
変数もVariantバリバリ。
初心者がwindowsアプリを作るにはVB6がやさしいのな。
0901デフォルトの名無しさん
2012/01/08(日) 23:46:08.75それはVBに限らない
0902デフォルトの名無しさん
2012/01/09(月) 00:10:36.22おまえコレが言いたかっただけだろ
0903デフォルトの名無しさん
2012/01/09(月) 00:56:35.72CやJavaでwindowsアプリ作るのはしんどいぞ。
0904デフォルトの名無しさん
2012/01/09(月) 03:35:02.26今後ExcelやAccessが消えるとは思えないしねぇ
0905デフォルトの名無しさん
2012/01/09(月) 14:01:44.01>そもそも、VB6ってExcelのマクロを組むためだけの言語だろ?
VBAの間違いだよな?
0906デフォルトの名無しさん
2012/01/09(月) 15:07:25.69でも読んでからVariantに呪いでもかけてみるといいよ
0907デフォルトの名無しさん
2012/01/09(月) 15:13:24.450908デフォルトの名無しさん
2012/01/09(月) 16:53:37.31もちろんVB6系全般だよ。むしろ、それ以外で使い道あるか?
VB6は特にofficeのCOMを操作するために特化した言語・環境だろ。それ以外の用途なら他にいくらでもマシな選択肢はあるし
0909デフォルトの名無しさん
2012/01/09(月) 17:15:03.51理由、理由w
0910デフォルトの名無しさん
2012/01/09(月) 19:32:45.32COM操作に特化したってのはまあ同意できる面もなくはないが
VB6はべつにofficeに特化してるわけではない
VBAはVBのサブセット的な位置づけで、VBAが実質officeの操作に特化してるというなら
同意できる面もなくはない
とりあえずお前がVBとVBAの区別ができてないのが良くわかった
0911デフォルトの名無しさん
2012/01/09(月) 20:06:07.350912デフォルトの名無しさん
2012/01/09(月) 20:43:37.75簡単な物理計算をして、それを表示できるだけでいいのですがお勧めの指導書などありますか?
0913デフォルトの名無しさん
2012/01/09(月) 21:17:08.010914デフォルトの名無しさん
2012/01/09(月) 21:20:21.49すいません、始めなければならないんです
0からでも
0915デフォルトの名無しさん
2012/01/09(月) 21:22:13.19現在入手可能な、お勧めの指導書はありません。
0からオンラインヘルプを頼りに始めるのが良いと思います。
0916デフォルトの名無しさん
2012/01/09(月) 21:22:50.93VBとVB.netは別物だぞ
まずこれを理解してないと会話が成り立たない
0917デフォルトの名無しさん
2012/01/09(月) 21:28:54.17N88互換のBASICも生きてるものがあるだろうし、そっちから攻めるといいんじゃないかな
0918デフォルトの名無しさん
2012/01/09(月) 21:29:07.72そうなんですか?オンラインヘルプか...
>>916
自分が使っているのはVisual Basic2010express editionなのでVB.netとはちがいますよね?;
0919デフォルトの名無しさん
2012/01/09(月) 21:32:41.260920デフォルトの名無しさん
2012/01/09(月) 21:35:03.64え、そうなんですか?
なんということでしょう...
0921デフォルトの名無しさん
2012/01/10(火) 01:47:17.97VB6とVBAの違いっていっても大してねーじゃん。平等に(ry
僕が言いたいのはVB6自体、COMを扱う、つまり主にofficeを扱うために作られたような言語でしょ?
そりゃ、それ以外の用途にも使えるかもしれないよ?でも向いている訳じゃないだろ。
VB6はVBAと違ってGDIを直接触らなくてもグラフィックを描画出来るかもしれないが、それもおまけみたいなものだし。
0922デフォルトの名無しさん
2012/01/10(火) 02:01:34.36えとさ、COMってOfficeの事じゃないよ
1から勉強しなおしたほうがいいんじゃない?
0923デフォルトの名無しさん
2012/01/10(火) 02:48:07.37少し書店などで立ち読みしただけでは初心者には組めそうにないと思ったので...
やはり大学の授業や講座などを受けるべきなんでしょうか
0924デフォルトの名無しさん
2012/01/10(火) 03:24:27.84揚げ足とりすぎ
COMとofficeは表裏一体だろ。もちろんoffice意外に使えないわけじゃないけどさ、使わないだろ?それ以外だとIE周りとか?
COMはofficeとVBのための技術といっても過言じゃないし、VBはCOMを扱うための言語、
ならVBはofficeのための言語って言っても差し支えねーじゃん。VB6、COM、Officeこいつらは三つ子の兄弟だよ。
>>923
何をしたいかによる。大学っていっても情報専門の学科以外での授業なんて、中学生の部活でちょっとやる程度のことしかしないよ。
新しくVB6を始めるのはあり得ないが、VB.netなら特に苦も無く学べるんじゃない?
全く経験が無いならC#の方が取っつきやすいとは思う。どっちもほとんど同じものだからどっち選んでも良いけど。
とりあえずここはVB6スレであってVB.netはスレ違だ
0925デフォルトの名無しさん
2012/01/10(火) 03:33:55.590926デフォルトの名無しさん
2012/01/10(火) 03:37:49.57だからさ、Windowsのあらゆる部分にCOMは使われてるの。
マルチメディア関係、サウンド、動画、もほとんど
COMだぞ。
0927デフォルトの名無しさん
2012/01/10(火) 03:51:52.39なるほど...
聞いた感じかなり難しそうですね
CもVBもあまりかわらないものなんですか?
0928デフォルトの名無しさん
2012/01/10(火) 04:34:58.35揚げ足でも何でもなくて本当にお前の理解不足だから
そのていどの理解力でCOMがどうこう言うのはやめれ
0929デフォルトの名無しさん
2012/01/10(火) 13:10:03.82そうらしいね
レジストリのクラスIDとして登録されてるのがCOM?
0930デフォルトの名無しさん
2012/01/10(火) 13:20:37.770931デフォルトの名無しさん
2012/01/10(火) 14:38:22.59CとVBは全く別だよ。C#とVB.netは同じ.netだから、同じように扱えるし、書き方もにてるから
C#の知識がないVB.netの人でもC#のコードが読めるし、逆も読めるよ。
http://blogs.wankuma.com/jeanne/archive/2007/02/26/64122.aspx このあたりにまとめてある
そしてC言語とC#、VB6とVB.netはまるで別だよ。 もうすこし調べたり考えたりしてから書いた方が良い。
要は「英語と中国語では文法(ゴジュン?)が似てる」っていうのを「ラテン語と韓国語はあまりかわらないものなんですか?」って返してるようなもの
それにスレ違だって。
0932デフォルトの名無しさん
2012/01/11(水) 03:43:44.63officeはそれに準拠してるというだけだよ
それにCOM自体はUNIXなんかにも実装されとる
個人法人問わず自作のCOMコンポーネントが大量に配布されてるじゃん
officeとVBだけってんじゃあ勿体無さすぎだなぁ
>>927
VBでって事はwindowsは確定だとして、簡単な物理計算と表示だけで良いのなら
Excelに関数かマクロ突っ込むだけで事足りるんじゃなかろうか?
0933デフォルトの名無しさん
2012/01/12(木) 18:15:32.51似たようなもんやで〜〜
全部IFとかFORとかそんなんやん!!どや?
0934デフォルトの名無しさん
2012/01/12(木) 18:18:56.800935デフォルトの名無しさん
2012/01/13(金) 00:34:01.991000ms(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
0936デフォルトの名無しさん
2012/01/13(金) 01:10:41.27「それとも」って接続詞の使い方間違ってない?
どっちも同じ意味にしか聞こえんけど....
0937デフォルトの名無しさん
2012/01/13(金) 01:22:59.63要するに>>935はスレッドが何か全然分かってないんだね。
コード(当然DoEventsを含む)が実行されるということは、そのスレッドが
制御を持ってる(ブロックされてない)ということ。
〜が実行されるのは眠った後ですか?なんて質問は愚問過ぎ。
実行されない状態を作るのがSleepなんだよw
0938935
2012/01/13(金) 01:23:04.80わかりにくくてすみません。。
Sleepで一時停止中か、一時停止しスレッドが開始した後か
という意味です。
0939デフォルトの名無しさん
2012/01/13(金) 01:25:11.090940935
2012/01/13(金) 01:25:28.49ありがとうございます
やはり、Sleepが実行されて、そのスレッドが止まると、
当然次の処理であるDoEventsも停止中は、実行されない
と言うことですね。
であれば、DoEventsするスレッドを別に立てるしかないという
ことでしょうか?
0941デフォルトの名無しさん
2012/01/13(金) 01:32:12.87いやまず最終的に何がしたいのか書かないと何とも言えんと思うけど....
「(重い)処理」を別スレッドでやるのなら普通はDoEventsなんて必用ないですよ。
DoEventsは、UIスレッドで(ビジーループ的な)重い処理を実行しても
UIが無反応になることを避けたい場合だけに使うんですよ。
0942935
2012/01/13(金) 01:50:55.91説明不足ですみません。
>>935は一例としてあげたソースになります、実際には、、
UI(Form)に配置したTextBoxに時計表示を出して、それを1秒ごとに更新して
表示させたいのですが、同時に3秒ごとに別の処理の繰り返しをしたいと思っています。
その際、3秒待つのに単純にSleep 3000という行を追加すると、UIの時計更新が止まって
しまうので、3秒待っている間でもForm上の時計表示は動かしたままにしておきたいと
思い質問しました。
ちなみに、UIスレッドとは、Formのソース内に書かれているプロシージャ群の
処理が実行されるスレッドということでしょうか?
0943デフォルトの名無しさん
2012/01/13(金) 05:47:47.09だいたい処理が瞬間に終わるわけでもあるまいし。
インターバルを設定できるTimerってのがあるんだけど
0944デフォルトの名無しさん
2012/01/13(金) 07:19:27.570945デフォルトの名無しさん
2012/01/13(金) 08:53:01.02Private 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
0946デフォルトの名無しさん
2012/01/13(金) 09:21:22.64しているように見せているだけ。
Sleepしたらそのスレッドは止まるのだから、VBプログラムの全てが止まる。
DoEventsでそういうことをやっているとデッドロックしやすい。
DoEventsをSwitchToThreadを同じようなものだと思っていると痛い目を見る。
非同期処理したいのであれば、Timerを使うべき。
0947デフォルトの名無しさん
2012/01/13(金) 09:38:57.77vb6でやるならマルチプロセスでやったほうがいいな
0948デフォルトの名無しさん
2012/01/13(金) 14:16:45.68非同期で処理しようと思ったら、結局別スレッドで作成した
FormにTimerをおいて、そこから処理をスタートさせなければならない。
メソッドやプロパティはオブジェクト側のスレッドで同期して実行されるので
別スレッドのオブジェクトを呼び出しまくると、全然並列処理にならないw
0949デフォルトの名無しさん
2012/01/13(金) 18:56:07.60あるよ。
FOR EACH的なものまである。
>>933
制御文レベルだとどれも似たようなもん。
しかし、それをもってほとんど一緒というお前はまだまだ素人。
0950デフォルトの名無しさん
2012/01/13(金) 19:08:54.62Sleep 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でオーバーフローになる
0951デフォルトの名無しさん
2012/01/14(土) 16:29:09.18初期フォントの決定ルールを教えて欲しいです。分かる方、いますでしょうか。
日本語環境なら、MS ゴシック、英語環境ならCourier Newのようです。
オプションダイアログからフォント設定を変更した後ならレジストリに記録されてましたが、
インストール後からフォント変更するまでは、レジストリには項目がありませんでした。
知りたい理由は、VisualBasicEditor上に同じフォントで文字を描画したいからです。
同じフォントで描画ができればいいので、稼働中のVisualBasicEditorのフォント名などの情報や
HFONT、LOGFONTなどを取得する方法がありましたら、そちらの方が適切に思うのですが、
VBEウィンドウに対してGetDC、GetWindowDCした後、GetTextFaceなどでは駄目でした。
初期フォントや稼働中フォントの取得方法が分かる方、どうぞよろしくお願いします。
0952デフォルトの名無しさん
2012/01/14(土) 16:58:49.240953デフォルトの名無しさん
2012/01/14(土) 18:48:29.76扱ってたら>>1に「VB〜6.0の」なんて書いてありませんよね。日本語理解できてますか(´・ω・`)?
0954デフォルトの名無しさん
2012/01/14(土) 19:18:03.31いるよねぇ。こういう一言多いやつ
0955デフォルトの名無しさん
2012/01/14(土) 19:34:06.91お騒がせしました(´・ω・`)
0956デフォルトの名無しさん
2012/01/14(土) 20:21:19.59もう見てないと思うが、.netはここ
VB.NET質問スレ(Part38)
http://toro.2ch.net/test/read.cgi/tech/1325083428/
0957デフォルトの名無しさん
2012/01/27(金) 04:15:41.25VBインストール直後はフォント情報がレジストリにないということは
レジストリ読んでみて、登録されてなかったら、そのデフォルトフォントにすればいいのでは?
レジストリ読むAPIはAPIビューアの定義は間違いだらけだから気をつけて
あれってVB5の時から間違ったままだから、初心者に諦めさせるように故意に間違えてるんだろか
0958デフォルトの名無しさん
2012/01/27(金) 09:32:31.10StrPtrとVarPtrで渡す時代
0959デフォルトの名無しさん
2012/01/28(土) 00:24:21.02レス感謝です。もうレスは無いかと半ば諦めてました。
今のところ、まずはレジストリから取得するようにしています。
デフォルトフォントはOSの言語で決まるようだったので、できれば決め打ちではなく、
VB6と同じような何らかの決定ルールに従いたいと思ってました。
(英語版VB6を日本語版WinXPで試したところ、MS ゴシックがデフォルトフォントになりました)
詳細は読めなかったのですが、中国のサイトでソフトが紹介されているのを見つけたので、
少数ながら、海外にもユーザーがいるみたいなので、それもフォントを決め打ちにしたくない理由の1つです。
色々試してみて、どうやらレジストリから取得しているわけではなさそうなのですが…。
0960デフォルトの名無しさん
2012/01/28(土) 08:35:49.31とするとWindowsのどこかに・・
フォント名が定義されてるレジストリは余りないようだけど
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
あたりはどうでしょ
こんなのを別のフォント名に変えてVBを新規インストールしてみて
その変えたフォントになるかどうか
ま、人に配布するソフトはそんな推測で作っちゃいけないよね
0961デフォルトの名無しさん
2012/01/30(月) 21:50:30.26VB6新規インストールは行っていないものの、
レジストリ上の"MS ゴシック"、"MS Gothic"、"msgothic.ttc"を
別のものに変えて試してみたのですが空振りでした。
色々試してみたところ、VB6については、OSの言語に依存しているのではなく、
[コントロールパネル]-[地域と言語のオプション]-[詳細設定]-[Unicode 対応でないプログラムの言語]
の設定に依存していることが分かりました。
また、この項目で「中国語(香港)、(マカオ)、(シンガポール)」を選択すると、
VBEで使用するフォントが必要な状況になるとVB6が強制終了してしまうことが分かりました。
内部でベタで持ってるのかもしれませんね…。
とりあえず、レジストリから取得、取得できない場合はベタ書きにしようと思います。
0962デフォルトの名無しさん
2012/01/30(月) 23:31:01.21[Unicode 対応でないプログラムの言語]の設定を
「中国語(香港)、(マカオ)、(シンガポール)」にするとVB6が強制終了すると書きましたが
それは英語版VB6の話で、日本語版VB6の場合は問題ありませんでした。
0963デフォルトの名無しさん
2012/01/31(火) 21:47:40.78久しぶりに触りたくなってきた。
0964デフォルトの名無しさん
2012/02/01(水) 10:01:00.810965デフォルトの名無しさん
2012/02/02(木) 10:30:37.53でもメンテとかで久々にVB6触ると限られた環境だからか
色々コーディングするのに頭使って燃えるわ
0966デフォルトの名無しさん
2012/02/03(金) 02:17:23.450967デフォルトの名無しさん
2012/02/03(金) 09:59:11.50ありすぎて困る
ついでにVBに戻ると型から書いたり
今考えるとdimて打つのがめんどくさいなぁ とおもた
0968デフォルトの名無しさん
2012/02/03(金) 23:33:52.98ありすぎて困る
宣言と同時に代入できないからコロンを使うようになった
Dim s As String : s = ""
0969デフォルトの名無しさん
2012/02/04(土) 11:53:32.65var hoge:String = "HOGE" (ActionScript)
var hoge:String = "HOGE" (Scala)
まあ、あんまり変わらんよw
0970デフォルトの名無しさん
2012/02/04(土) 13:49:36.940971デフォルトの名無しさん
2012/02/04(土) 15:05:23.67この方がシンプルだろ。
0972デフォルトの名無しさん
2012/02/04(土) 15:24:43.000973デフォルトの名無しさん
2012/02/04(土) 15:49:01.29> String hoge = "HOGE";
>
> この方がシンプルだろ。
それには欠点があって、型推論を搭載しにくくなる。
MyClass cls = new MyClass()
たとえばこんな感じの書き方ができたとする。
MyClassが二回出てくるのがめんどくさい。
var cls = new MyClass()
この方がシンプルになる。だけど型推論はあくまで推論
どんな場合でも推論できるとは限らない。
var cls = new MyClass() ・・・ 型推論できる場合
var cls:MyClass = foo() ・・・ 型推論できない場合
こうすれば、もっとシンプルになる。
0974デフォルトの名無しさん
2012/02/04(土) 16:54:09.00Dim cls As MyClass: Set cls = New MyClass
0975デフォルトの名無しさん
2012/02/04(土) 17:38:39.98あんたもお相手もどっちも何が言いたいのかよくわからん。
文章は落ち着いて何度か読み返してよく推敲して書いて欲しいものだ。
0976デフォルトの名無しさん
2012/02/04(土) 17:44:00.40分からないのはお前が馬鹿なだけじゃね?
Scalaの本に載っていることを書いただけなんだが。
0977デフォルトの名無しさん
2012/02/04(土) 17:51:42.71少なくともそれ以前の話はVB6との対比があったわけだが
0978デフォルトの名無しさん
2012/02/04(土) 17:54:32.36今は型なし言語の時代。VB6が見直されてる時代だよ。
0979デフォルトの名無しさん
2012/02/04(土) 17:55:51.95いや君の文章が....まあ言っても無駄か。
お節介に一つだけ指摘しておくと、最後の行の「こうすれば」の「こう」が何を指示しているのか
明確じゃない。
0980デフォルトの名無しさん
2012/02/04(土) 17:58:38.70真面目に言ってそうで怖いな。
0981デフォルトの名無しさん
2012/02/04(土) 18:55:09.27で何が言いたいわけ?
0982デフォルトの名無しさん
2012/02/04(土) 19:26:32.280983デフォルトの名無しさん
2012/02/04(土) 19:29:54.91感じるのが10年遅いってw
0984デフォルトの名無しさん
2012/02/04(土) 20:52:22.760985デフォルトの名無しさん
2012/02/04(土) 23:53:44.56レス数が950を超えています。1000を超えると書き込みができなくなります。