(*´д`*)アハァ… VB初心者質問スレ Part22

1 名前:HTML化チェック済み :03/02/27 23:06

  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/test/read.cgi/tech/1044028945/

VB.net関連スレ
【老若】VB.net質問スレ【男女】 (Part2)
http://pc2.2ch.net/test/read.cgi/tech/1043629429/

心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
五.下ネタもたまにならOK。


2 名前:1 :03/02/27 23:07
立てますた。

3 名前:デフォルトの名無しさん :03/02/27 23:10
6.0のWebBrowserは.netでは何て言うのでしょうか?

≫1乙

4 名前:1 :03/02/27 23:11
暇なんで滑り込んでおくか。



    ズザー

 __('A`)こ=  ==3


>>3
>>1見てよ。せっかくリンク先チェックしてんのに。
【老若】VB.net質問スレ【男女】 (Part2)
http://pc2.2ch.net/test/read.cgi/tech/1043629429/

5 名前:デフォルトの名無しさん :03/02/27 23:11
>>1
乙age

つーか、Part22の.Netスレが立ってるよ…。
分岐?

6 名前:デフォルトの名無しさん :03/02/27 23:13
単に重複でしょ。

7 名前:デフォルトの名無しさん :03/02/27 23:14
この際.net用はあっちにすれば?

8 名前:デフォルトの名無しさん :03/02/27 23:14
それじゃ
【老若】VB.net質問スレ【男女】 (Part2)
の立場がない。

9 名前:デフォルトの名無しさん :03/02/27 23:23
こっちはhtml化チェックもしてあるしな。

10 名前:デフォルトの名無しさん :03/02/27 23:29
ttp://www.kai10.com/tenko/cgi-bin/img-box/img20030118232845.jpg
ttp://www.kai10.com/tenko/cgi-bin/img-box/img20030119190214.jpg
ttp://www.kai10.com/tenko/cgi-bin/img-box/img20030119181015.jpg
ttp://www.kai10.com/tenko/cgi-bin/img-box/img20030126100219.jpg
ttp://www.kai10.com/tenko/cgi-bin/img-box/img20030126230519.jpg
ttp://www.kai10.com/tenko/cgi-bin/img-box/img20030211182515.jpg
ttp://www.kai10.com/tenko/cgi-bin/img-box/img20030214001135.jpg
ttp://www.kai10.com/tenko/cgi-bin/img-box/img20030216173952.jpg



11 名前:デフォルトの名無しさん :03/02/27 23:53
つーか、VBスレ自体もういらねーよ。
馬鹿が使うVBなんて、、、、さ

12 名前:デフォルトの名無しさん :03/02/28 00:12
>>11
やーい、バ〜カ。

13 名前:デフォルトの名無しさん :03/02/28 00:57
VB6でクラス中心でプログラムしてる奴って実際どれだけいるんだろ?

14 名前:デフォルトの名無しさん :03/02/28 06:49
クラスは使うけど中心ではないよ。


15 名前:デフォルトの名無しさん :03/02/28 08:30
>>13
俺は積極的にクラス&ユーザーコントロール使う手法で
プログラムしてるよ

16 名前:ひきプロ :03/02/28 08:34
VBのOCXって他の開発環境で再利用できないんでしょうか?
検索したらDelphiからVBに張る方法ばっかりでてきて

17 名前:デフォルトの名無しさん :03/02/28 09:04
>>13
自分の担当がDLL,OCX作成中心なので必然的にクラス・ユーザコントロール中心に設計するようになってる。

>>16
できないことはないんじゃない? 普通のコントロールと同じように扱えば。
ただVC/DelphiでできなくてVBしかできない処理というのがきわめて少ない以上、あまり需要の無い方法なのかも。
他の環境については知らん。

18 名前:ひきプロ :03/02/28 09:30
>>17
ほおほ、ありがとうございます。
いつもVBで開発してるので、もしVBからしかOCXが
使えないんだったら意味ないかなーと思ってました。
確かにVBで作ったのを他の環境で使うって事はなさそうですね。
今まで気にしてなかったんですがVCでもOCX作れるんですか。
VCで作る方法を探してみます

19 名前:デフォルトの名無しさん :03/02/28 09:45
>>13
おれはそうだな。複数インスタンスを作成すると効率がいいことが多いから。

20 名前:デフォルトの名無しさん :03/02/28 09:45
>>13
漏れはクラス中心に設計してるよ。
クラス、ユーザーコントロール、(クラスとしての)フォーム…。
作業の切り分けやインスタンスの管理が楽だからね。

ただ、作業員で入ったおじちゃん&おばちゃんプログラマが勝手に、
標準モジュールに書き換えられたり、フォームにベタ書きされたりすることも、しばしば。
設計は守ってくれって言うと、
「何で、フォームとモジュールでできることを、わざわざクラス・コントロール使わないかんねん!!
 このド素人が!!VBにはVBのやり方があるんや。
 クラスやコントロールなんてオマケやぞ。」
と集団で一喝されました。あ〜痛い痛い(w

21 名前:デフォルトの名無しさん :03/02/28 09:58
>>20
どんなコードにケチを付けられたのかわからないけど

| VBにはVBのやり方があるんや。
| クラスやコントロールなんてオマケやぞ。

クラスやコントロールを使わないのがVBのやり方だというのは賛成できないな。
16ビットVB時代の古い頭では理解できないのだろう。


22 名前:デフォルトの名無しさん :03/02/28 10:12
アロハPC1を使って電話の着信からDB検索して
顧客情報を表示というプログラムを作成しているのですけど
VBのサンプルってどこかに落ちてないですか?

23 名前:ひきプロ :03/02/28 10:17
http://www1.sphere.ne.jp/nikko-ew/seihin/alohapc1/alohapc1_specifications.pdf
8ページ目に仕様が

MSCommコントロールを使うと何とかなるかも知れませんね。

24 名前:デフォルトの名無しさん :03/02/28 10:28
>>20
俺は ActXとかDllとかOCXを作らない場合にはクラスの使い道って知らん。
業務上ActX毎の単体処理になるんで、インターフェース以外は使ってなかった。
 が
最近、内部のテーブルとして使えばパブリック引数に渡せるなぁ・・て利用中。
(メモリ展開させて)
しかし、データプールとしてのみで、処理は持たせてない。正しい使い方ってなんだろう・・

25 名前:ひきプロ :03/02/28 10:33
そういえばクラスってリスト構造とか木構造とか
作れますよね。

26 名前:20 :03/02/28 10:42
>>21
クラスの処理なんか、まさにUMLのクラス図みたいなものだよ。
そのクラスをコレクションにするクラスをラップした、ごくごくフツーのクラスモジュール。
コントロールもいくつものコントロールの処理を統一化した、
インターフェース処理を含めた、またクラス図みたいなものだよ。
そりゃ、たしかに使わなくてもできるが、
何も、多次元配列とSelect〜Case〜の山に書き換えることも無いだろうに。

>>24
漏れはクラス・コントロール自体に特別すごい処理は持たせないよ。
あくまで、存在の切り分け上含まれるプロパティ・メソッド・ファンクション・イベントが乗っかるだけ。
アプリ内のDLL・OCXの配置に近い使い方もするな。
生成すべき形が明確な場合はクラス化するようにしてる。

27 名前:デフォルトの名無しさん :03/02/28 10:57
Form1.visible=Falseにするとクラスになりますた。

28 名前:デフォルトの名無しさん :03/02/28 11:12
.。o(見えててもクラスなんだが...)

29 名前:21 :03/02/28 11:14
>>25
作れるけど、インスタンスの寿命とかを考えないとハマるおそれあり。

>>26
OOを理解できないオールドタイプか>20のまわり

>>27
ポカーン(AA略

30 名前:デフォルトの名無しさん :03/02/28 11:22
>20に書かれてるおじちゃんたち、ドトネトに移行したら喜びそうだね。

31 名前:ひきプロ :03/02/28 11:45
>>29
そうですよね、適当に作ったら解放されないで
メモリ上に残ってしまいそうですね。

32 名前:20 :03/02/28 11:55
>>29
まさにオールドタイプ。
RDBもほとんど意識して無い。
昔、Accessのマスタテーブルの作成をお願いしたら、
テーブルごとに別ファイルにされた。
「CSVはこうなってるだろ。」と言われたよ。
オイオイ、何のためのDBだよと…。

>>30
たぶん永遠に旧VBマンセーのままのような気がする。
ドトーネトは駄作、使い物にならんと言い張って。

33 名前:デフォルトの名無しさん :03/02/28 12:03
>>31
適当に「つかったら」だろ。明示的に解放するのが普通の使い方じゃないか。

おれはRecordset,XMLやFileSysmteObjectは、それ専用のラッパークラスを
作ってる。バージョンの違いもこのクラスの中で吸収できるし、エラーも
大部分吸収できる。


34 名前:デフォルトの名無しさん :03/02/28 12:07
VB.NETはフォームに貼るだけで使えるActiveXコンポーネントが多そうだから初心者のオレはほしい。カレンダーコントロールとかあるからうるう年の計算とかプログラミングする必要ないし。

35 名前:デフォルトの名無しさん :03/02/28 12:17
>>34
VB6のDTPickerはダメなん?

36 名前:デフォルトの名無しさん :03/02/28 12:22
業務系でDTPickerいいよなぁ。古い部分がCalendar使ってたけど・・あれは酷いw

37 名前:34 :03/02/28 12:52
>>35-36
34の意味はカレンダーのことというより
いろいろなコントロールがVB6よりありそうだなーっということでよろしこ

38 名前:ひきプロ :03/02/28 13:07
>>33
確かに…。インスタンスの解放をVBに任せる
癖が付いてました。

ラッパークラスって良さそうですね。
何度もエラー処理とか解放とかしてると
いつか間違えてしまいそうだし。

39 名前:デフォルトの名無しさん :03/02/28 13:32
\hoge\hoge2\hoge3\ というデータがあって、
この通りのフォルダを掘るにはどうしたらいいでしょうか

40 名前:デフォルトの名無しさん :03/02/28 13:35
shell("mkdir .\hoge")
shell("mkdir .\hoge\hoge2")
shell("mkdir .\hoge\hoge2\hoge3")

41 名前:デフォルトの名無しさん :03/02/28 13:44
>39
頭からループ回しながら、
Dirで確認して、無ければ掘る。


42 名前:デフォルトの名無しさん :03/02/28 13:46
俺なら手抜きして on error でエラー処理抜かしちゃうがな。

43 名前:33 :03/02/28 13:48
>>38
ですね。Recordsetオブジェクトとか、本にも適当に書かれてることが多いんで
後でリファレンス見て使い方が間違ってたーっていうときにも修正が楽です。
「VB6 Error Coding & Layering」って本からこのやり方にしました。


44 名前:ひきプロ :03/02/28 14:29
>>43
英語の本ですか(;´Д`
ラッパークラスについていろいろ検索してみようと
思います。ありがとうございました。

45 名前:デフォルトの名無しさん :03/02/28 14:48
WebBrowserコントロール上でのマウスクリックをとりたいです。
どうすればいいでしょうか?


46 名前:33 :03/02/28 14:58
>>45
SubClass .... かな....

47 名前:968 正規表現が完成した ◆HLRHHB4j46 :03/02/28 15:48
文字列
 あああwww.uploader.com/folder001/いいい
からアドレスらしき文字列を抽出するプログラム。
VBで実際に動かすと
www.uploader.com/folder001/
という文字列を抽出できる。

48 名前:968 ◆HLRHHB4j46 :03/02/28 15:49
'On Error Resume Next
Dim RegEx As Object, Match As Object, Matches As Object
Dim StrPattern, StrSource, Str1 As String
Set RegEx = CreateObject("VBScript.RegExp")
If Err Then
MsgBox "エラー"
Else
'実験用Patternメモ
'"[^a-zA-Z0-9]""[a-zA-Z_0-9]|/""[a-zA-Z0-9]|\.|\&|\%|\=|\/|\+""w+\...+\/.+[^!#-;=?-~]"
StrPattern = "[a-zA-Z0-9]|\.|\&|\%|\=|\/|\+"
RegEx.Pattern = StrPattern '検索パターンを設定
RegEx.IgnoreCase = True '大文字と小文字を区別しないように設定
RegEx.Global = True '文字列全体を検索するように設定
StrSource = "あああwww.uploader.com/folder001/いいい" '検索対象の文字列
Set Matches = RegEx.Execute(StrSource) '検索を実行
Debug.Print "--------------"
Str1 = ""
For Each Match In Matches
Str1 = Str1 & Match
'Debug.Print "一致する文字列が見つかった位置は、" & Match.FirstIndex & " です。"
Debug.Print "一致した文字列は、" & Match.Value & " です。"
Next
Debug.Print "それぞれの文字を結合してURL生成" & vbCrLf & Str1
End If

49 名前:968 ◆HLRHHB4j46 :03/02/28 15:51
↑プログラムおわり
----------------------------
StrPattern = "[a-zA-Z0-9]|\.|\&|\%|\=|\/|\+"

StrSource = "あああwww.uploader.com/folder001/いいい" '検索対象の文字列
をいろいろ変えると他の目的にも使える。
StrPatternの値はここを参考にする。
ttp://www.microsoft.com/japan/msdn/columns/scripting/scripting051099.asp

50 名前:デフォルトの名無しさん :03/02/28 16:47
日本語ドメインの中の人も大変だな

51 名前:968 ◆HLRHHB4j46 :03/02/28 16:48
上のプログラムを実行する前に
Microsoft VBScript Regular Expressions
を参照設定に追加する。

52 名前:968 ◆HLRHHB4j46 :03/02/28 16:56
>>50
前スレまで正規表現サバーリわからなかったからそれなりに苦労した。

53 名前:968 ◆HLRHHB4j46 :03/02/28 16:59
URLには_もつかわれることがあるので
StrPattern = "[a-zA-Z0-9]|\.|\&|\%|\=|\/|\+"
に|_を追加してみた。
StrPattern="[a-zA-Z0-9]|\.|\&|\%|\=|\/|\+|_"

URLに使われそうな文字が見つかるたびに追加していく。

54 名前:968 ◆HLRHHB4j46 :03/02/28 17:01
つまり、
_を追加したことにより、
www.vb_net/
というようなURLもひろえる。

55 名前:デフォルトの名無しさん :03/02/28 17:19
>>54
http://member.nifty.ne.jp/moha/rfc/rfc2396j.txt

56 名前:968 ◆ExGQrDul2E :03/02/28 17:28
>>55
見てきた。その資料より抜粋。
";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | "," | "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"
追加しなければならない文字がたくさんあるなあ。

57 名前:デフォルトの名無しさん :03/02/28 18:38
6.0のWebBrowserは.netでは何て言うのでしょうか?



58 名前:デフォルトの名無しさん :03/02/28 19:11
>>57
まだやってるのか・・・
http://www.google.co.jp/search?num=100&hl=ja&ie=Shift_JIS&c2coff=1&q=%22VB.net%22+webbrowser&lr=lang_ja


59 名前:デフォルトの名無しさん :03/02/28 19:29
>>58
誰もこたえてくれないんで・・・。


60 名前:デフォルトの名無しさん :03/02/28 21:37
>>39
MakeSureDirectoryPathExists ってAPI

61 名前:デフォルトの名無しさん :03/03/01 12:19
いまさらなんですが
VBの線描画(Line,Pen)について
実線以外の線(点線,破線など)の
線幅を変更して描画する方法を
教えてください。


62 名前:デフォルトの名無しさん :03/03/01 13:30
>>61
正攻法 -> LineDDA API



63 名前:デフォルトの名無しさん :03/03/01 15:46
おまえら質問汁!

64 名前:デフォルトの名無しさん :03/03/01 15:55
土日は質問少ないんだよなぁ…。ヒマだね。

65 名前:61 :03/03/01 17:49
>>62
サンクス.試してみます

66 名前:デフォルトの名無しさん :03/03/01 19:49
(*´д`*)アハァ…

67 名前:デフォルトの名無しさん :03/03/01 23:07
VB畑でつかまえて

68 名前:デフォルトの名無しさん :03/03/02 10:56
リーチ一発VB

69 名前:デフォルトの名無しさん :03/03/02 12:00
少しは目立つように上げるべし!

70 名前:デフォルトの名無しさん :03/03/02 15:38
いや、馬鹿言語に目立たれるとうざいのでsageてくださいよ

71 名前:デフォルトの名無しさん :03/03/02 16:23
sendkeysでWindowsキーって送れませんか?

WinampをWindowsキーで操作できるプラグイン入れて、
他のPCからTCP/IPでWinampを遠隔操作できる
ソフトを作りたいんですが。

72 名前:デフォルトの名無しさん :03/03/02 16:34
>>71
送れますよ。

73 名前:デフォルトの名無しさん :03/03/02 16:38
>>いや、送れない。

74 名前:デフォルトの名無しさん :03/03/02 17:11
ガーソ
ミ田キー = "^{ESC}" と思ってたのに、、、

75 名前:デフォルトの名無しさん :03/03/02 17:17
>>74
"^({ESC}F)" != Windowsキー+F

76 名前:デフォルトの名無しさん :03/03/02 21:42
VBkey+任意のキー
例:
VBKeyE
VBKeyRight

77 名前:デフォルトの名無しさん :03/03/02 22:13
失礼します。VB超超初心者です。
ツールバーのボタンにwordなどのように
画像を表示したいのに、できません。
方法はわかるのですが、その画像ファイル(イメージリスト?)を
どこから持ってくるのか全くわかりません。
コンポーネントもざっと調べてみたのですが・・・。
(↑見当違いですか?)
イメージリストがどこにあるか教えてください。
馬鹿らしい質問かもしれませんが、宜しくお願いします。



78 名前:デフォルトの名無しさん :03/03/02 22:35
>>77
たしか本に載ってた記憶があるが、本が見つからないのでオレには答えられない

79 名前:デフォルトの名無しさん :03/03/02 23:50
私も超初心者ですみませんが、
getobject(,"InternetExplorer.Application")を使って、
開いてるIEを扱おうとすると、
普通のPC内のフォルダにつながっちゃうんですけど、
どうすればいいでしょうか、教えてください。

80 名前:デフォルトの名無しさん :03/03/03 00:21
>>77
はあまり反応がイクナイ

81 名前:デフォルトの名無しさん :03/03/03 00:38
>>77
イメージリストは自分でフォームに設置しないといけないです。
Windows Common Controls6.0にあります。

82 名前:デフォルトの名無しさん :03/03/03 01:54
VBのdeclare functionってやってDLLを利用するとき、DLL側の呼び出し規約は
cdeclを使えますか?stdcallは使えるのですか?VBでは呼び出し規約はどういう
扱いになっていますか?

83 名前:デフォルトの名無しさん :03/03/03 06:03
>>82
stdcallしか使えないと思ったが…よく覚えてない。

84 名前:77 :03/03/03 11:22
>>81
ありがとうございました!!
早速やってみます!!

85 名前:再び77ですみません…。 :03/03/03 12:00
イメージリストを設置するところまでは無事できました!!
でもいざ画像の挿入をしようと思っても肝心の画像
(プリンタとか開いてるフォルダ等の画像)がどこにあるのか・・・
本にはそこまでは書いてなくてわかりませんでした。
一応HDD内は検索してみたのですがありませんでした。
DLとかするものなんですか?


86 名前:デフォルトの名無しさん :03/03/03 12:18
>>85
CDに入ってますよ

87 名前:77 :03/03/03 12:28
>>86
はぁ〜やっと見つけました…
本当にありがとうございました!!

88 名前:デフォルトの名無しさん :03/03/03 12:37
メニューエディタを使ってメニューをつくるときに、
開く
終了
のように縦にメニューを表示させるのはできますが、
開く 終了
のようにメニューバーの中に2つの項目を横並びに配置する方法がわかりません。

89 名前:デフォルトの名無しさん :03/03/03 12:45
>88

                    ,イ^i
                   ,イ::::  l
                  /::::::::   l
                 /::::::::::    {       /|
               /::::::::      `-、_  /:: {
              /:::::::::::    /       ̄  __ l
             ./:::::::::::         :::::\:::... \ i
             /:::::::::::          ::::::::::\:::: 、 {
             |:::::::::::.            :::::::::_ゝ:::  !
             |::::::::::::.       ):.`ー..____' /:::  |
             .l:::::::::::::.         ヽー─フ::   /   プッ
             ヽ::::::::::. ___           ,/
               \::/`ー---‐^ヽ        /
                l:::      l         /
           _ /,--、l::::.      ノ       l
       ,--、_ノ:: `ー'::   、ミー---‐,,l        \
      ,/   :::         i ̄ ̄  |         \
     /:::::::.        l:::   l:::::::   l           \
    l:::::::::::.   l:::    !::    |:::::::   l            \
    |:::::::::l::::  l:::    |::    l:::::     l              l
    |::::::::::l:::.   }:::   l:::::,r-----    l               l
    ヽ::::::::l::::   ト:;;;;;;;/-/__...........  /
    /\::::`ー‐'  / l__l;;;;;;;;;;;/
  /   `           /



90 名前:デフォルトの名無しさん :03/03/03 12:48
>>88
ヘルプ嫁。

91 名前:デフォルトの名無しさん :03/03/03 12:50
(*´д`*)アハァ…

92 名前:88 ◆D24s65nhoU :03/03/03 13:53
>>89-91
ヘルプに載ってないテクニックが必要なようで載っていませんでした。
メニュエディターを開いた後の手順を細かく教えてくれたらうれCです。

93 名前:デフォルトの名無しさん :03/03/03 14:04
>>92
テクニックって、、、
たとえば
ファイル(F)
 開く
 終了
というようなものを
ファイル(F)
 開く | 終了
のような感じにするのでしょうか?

94 名前:88 ◆D24s65nhoU :03/03/03 14:33
>>93
(青いタイトルバー)ソフト名
(灰色メニューバー)開く 終了
としたいんです。

95 名前:デフォルトの名無しさん :03/03/03 14:38
>>94
ヘルプも真面に読めないのかスカタン

96 名前:!88 :03/03/03 14:42
>>95
見付けられなかったけど、どのあたりに載っているか教えていただけますか?


97 名前:!88 :03/03/03 14:54
>>94を読み間違っていた...寝よう


98 名前:デフォルトの名無しさん :03/03/03 14:54
あまりに簡単なので釣りとしか思えんが・・・確かにメニューエディタは
とっつきにくいかもしれないね。

「・・・・」がメニューの階層なのでそれを「←」ボタンで取っ払えばいいってだけ。

99 名前:88 ◆D24s65nhoU :03/03/03 15:09
>>98
ありがとうございます。
開く 終了
と横並びに表示する場合も
メニューエディタでは
開く
終了
と縦に登録していくんだなと気がつきました。

100 名前:デフォルトの名無しさん :03/03/03 15:20
えっ、釣りじゃなかったのか

101 名前:デフォルトの名無しさん :03/03/03 15:32
言われてみれば確かに、あのメニューエディタはVBらしからぬ作りだよな・・・

102 名前:デフォルトの名無しさん :03/03/03 15:44
うむ、VB.NETのメニュー作成方法みたいじゃないと
Visualではないね。

103 名前:デフォルトの名無しさん :03/03/03 18:51
よろしくお願いします。
汎用機で作成されたデータファイルをExcelに渡す処理を考えています。

汎用機からWindows上に落としてきてきた(この間に文字コードの変換をしています)
テキストファイルの中の、指定した行のiバイト目からjバイトを抜き出す
(その後エクセルに渡す)、という処理で詰まっております。
(この"iバイト目からjバイト"というのは汎用機側の印刷パラメータです。)
対象となる行には数値、日本語が混在しています。i,jは表の項目ですので増加していきます。

Mid,MidB関数で引数にi,jを指定してやればよかろと思っていたのですが、
汎用機側では数値は1バイト、日本語は2バイトで扱っており
Windows上では全て2バイトで扱っているのでこれだと抜き出す時に誤差が生じてしまいます。

で、バイナリで開いて先頭から順次読み込んでやればいいかなと足りない頭で考えたました。
以下、足りない頭で考えたルーチンです。
1.対象行(テキスト)をバイナリで作業ファイルに書き込む
2.作業ファイルをバイナリで指定したバイト数だけ読み込み、配列で宣言したByte型変数に格納

とここまでやったのですが、これを元の数値や日本語に戻すにはどうしたらいいでしょうか
よろしくお願いします。


104 名前:デフォルトの名無しさん :03/03/03 18:54
超FAQです。
LenBとStrConvでドゾ。

105 名前:デフォルトの名無しさん :03/03/03 23:28
VBでマルチキャストの送受信を行うべく、
With Winsock1
.Protocol = sckUDPProtocol
.Bind 20002
.RemoteHost = "233.0.0.0"
.RemotePort = 20002
End with
と設定して、他マシンからのマルチキャストを受信してるんですけど、
Winsock1_DataArrivalイベントが発生しません。
試しにVCで作ったマルチキャスト送受信プログラムで受信してみるとうまく受信できました。
VBで受信するには他に何か設定が必要なんでしょうか?
ちなみに、この設定のままWinsock1.SendDataで文字列を送信してみたら、
マルチキャストの送信は、できました。

106 名前:デフォルトの名無しさん :03/03/03 23:44
 VBでHP作ったんですけど、アップロードの仕方が分かりません。
誰か教えてください。

107 名前:デフォルトの名無しさん :03/03/03 23:45
>>105
私の環境では完璧に動きまする…。
Win2ksp3/VB6sp5。
VBにSPはあてた? Winsock.ocxにバグあった気がする。

あと、コード中で入れるんじゃなく、プロパティーページで
Bind以外を設定するとどうなる?
なんか別の所で変なことやってるのかもしれないし。

108 名前:105 :03/03/03 23:59
>>107
動きましたか。うちの環境はWin2k VB6SP5です。
ちょっといろいろ設定見直してみて、また来ます

109 名前:デフォルトの名無しさん :03/03/04 01:54
>>103
「バイト型配列から日本語含めた文字列への変換」でいいのね。
バイト型配列を「byteArray()」とすると、

Dim strBuf As String
strBuf = StrConv(byteArray(),vbUnicode)

でいけるはず。何も見ないで書いたので綴り間違ってるかも。
ためしてみてちょ。

110 名前:デフォルトの名無しさん :03/03/04 02:23
マウスカーソルの位置を強制的に固定したいのですが
マウスの位置のプロパティってありますか?

111 名前:デフォルトの名無しさん :03/03/04 02:36
ClipCursorだったかな

112 名前:デフォルトの名無しさん :03/03/04 02:39
ごめん
よく調べたらあった。>MouseCol、MouseRow プロパティ


113 名前:デフォルトの名無しさん :03/03/04 09:37


       / ̄ ̄ヽ     / ̄ ̄ヽ
       l i'´~`ヽ|   l /~`ヽ |
       ヽ.\  ,レ-――-'<、 _ノ /
         `‐/_____\- '         人_ト、__ノ、_,ヘノ\_ノヽノ、
         / ,-、      ,-、 ヾ、       人/                \__
           l  ,..、       ,..、  l     _ノ                    (
     __l  i 0} ,.●、 !0 i  l__  _)
  / ̄| | . |  `~ /___\`~´   |  | __ノ 絶対に許さんぞ>106!!!!!!!
/     | | |l    ‘-イ !_|_!`r’     !|  | ノ
\\   | |. |`、   r{     h   ,/リ <    じわじわとなぶり殺しにしてくれる!!!!!!!
  \\.| |  ヾ\ ヽ二ニ二.ノ  /〃 |  )
、   \ノ^,ニ‐-ァ  ̄`ー-----一' ̄/  | ^ヽ
\  // ,/⌒i、_\\_____//  .|  |  ⌒)
   {   i   |  iヽ`ー-----― '    |  |    ̄ヽヘ/⌒ヽ/\i'\へ/⌒Yヽ'^



114 名前:デフォルトの名無しさん :03/03/04 09:58
ユーザーの環境によっては
Date関数が
2003/02/03
ではなく
2003/2/3
という値を返すことはあるのでしょうか?

115 名前:>>103 です :03/03/04 10:24
>>104
>>109

レスありがとうございました。
StrConv関数のヘルプは散々見ていたのに、引数のvbUnicodeを見落としていますた。
これからテストしてみます!!!


116 名前:デフォルトの名無しさん :03/03/04 10:29
>>114
心配ならFormat使え。

117 名前:デフォルトの名無しさん :03/03/04 10:33
>>114
前提が間違ってるぞ。
そもそもDate関数は文字列を返すものじゃなく、Date型を返すもの。
文字列型へ代入した時の形式は、そのマシンの「地域のオプション」の日付形式の設定に
左右される。決まった形式で欲しいならFormat関数を使うのが吉。

118 名前:114 :03/03/04 10:40
>>116-117
ありがとうございます。
Format関数は使ったこと無いけどマスターしてみます。

119 名前:114 成功しました :03/03/04 10:54
Format(Date, "yyyy/mm/dd")

120 名前:デフォルトの名無しさん :03/03/04 10:56
>>117
でも漏れなんかは、N88BASIC時代の人で、Date$とかTime$に慣れてたから
結構そのままやってて、意図しない書式が返ってきたりして面食らったことがあるな。

121 名前:デフォルトの名無しさん :03/03/04 11:07
アプリケーションにエラーが出ていないか監視したいのですが、
どうやればいいのでしょうか?


122 名前:デフォルトの名無しさん :03/03/04 11:08
この3つで使われているapigid32.dllってのを、標準のwin32APIに置き換えることはできますでしょうか?
copymovememoryとか、該当しそうなAPIがあるので・・・

Public Declare Sub agCopyData Lib "apigid32.dll" (Source As Any, Dest As Any, ByVal nCount As Long)
Public Declare Function agGetAddressForObject Lib "apigid32.dll" (Object As Any) As Long
Public Declare Function agGetStringFromLPSTR Lib "apigid32.dll" (ByVal src As String) As Long



123 名前:デフォルトの名無しさん :03/03/04 11:13
>>121
On Error ステートメントか?

>>122
そもそもそのソースがどこから出てきたか説明するのが筋だと思うが・・・
ググッてみたところ、ダニエル・アップルマンの本のおまけでついていたDLLみたいだな。
それら関数の動作の詳細も書かずにできるかどうかと問われてもどうか?って
感じだが、その関数の中でやってるのと同じことをやればできるだろうw
一応マジレス。

124 名前:122 :03/03/04 11:15
>123
いやぁ、apigid32.dllは持っているのですが、あまりユーザの環境に入れたくないですよね、余計なDLLは。
というわけで、標準のWin32APIに置き換えはできないかなと思って質問してみました。
ありがとうございます。

125 名前:121 :03/03/04 11:35
>>123
VB6で作成した実行ファイルを起動していると
アプリケーションエラーがでてしまいます。
で、エラーが出たらそのアプリケーションを再起動したいのです。


126 名前:デフォルトの名無しさん :03/03/04 11:44
http://www.agemasukudasai.com/bloom/

127 名前:デフォルトの名無しさん :03/03/04 11:58
>>125
なぜそのアプリのバグを取ろうって発想にならないんだろ・・・ (´д`;)
FindWindowあたりでできそうな気はするが。

128 名前: :03/03/04 11:59
>>119
「/」 は地域のオプションの区切り記号に置き換えられるので、
それだと期待通りに動作しない場合があります。

Fromat(Date,"yyyy\/mm\/dd") が正解です。


129 名前:114 :03/03/04 12:07
>>128
むぅ。盲点でした。
世界中のVBアプリにこの手のバグがあるような悪寒を感じてしまいました。

130 名前:デフォルトの名無しさん :03/03/04 12:16
すみません、くだらない質問ですが
あんまり簡単すぎて?探しても記述を見つけられないのでお願いします。

1.Space"$"(number)のように、関数の後ろに"$"が入るのはどういう意味を表していますか?
2.myarry() as integer のように、配列の括弧内が空白というのはどういう意味ですか?

よろしくお願いします。



131 名前:デフォルトの名無しさん :03/03/04 12:20
>>130
ヘルプ読めばどっちも書いてあると思うが。
関数名に $ がつくのは、返り血を文字列型で返す関数。
$を省略すると、Variant型で返るので、パフォーマンスのためには
$をつけた方がいいとよく言われる。

myarry()のように空白の配列は、動的配列という。
ReDim myarray(256) などのようにして、コード中で配列の要素数を変更
したい時に使う。

132 名前:デフォルトの名無しさん :03/03/04 12:25
>>131
積年の謎が解けました。
ReDimのヘルプ引いたら意味が分かりました。
ありがとうございます!!!

133 名前:デフォルトの名無しさん :03/03/04 12:49
横からスマソ。
>>130-131
関数定義の段階で
Function Space(number) as String
とやっておけば、関数名に $ をつけなくても返り値は String が保証されるんですよね?

134 名前:デフォルトの名無しさん :03/03/04 12:53
>>113
Yes. その辺は変数定義と一緒。

135 名前:134 :03/03/04 12:53
×>>113
>>133

136 名前:デフォルトの名無しさん :03/03/04 12:59
my性器

137 名前:デフォルトの名無しさん :03/03/04 13:03
覚えるより忘れる方が早い人はどうすればいいんですか?

138 名前:デフォルトの名無しさん :03/03/04 13:06
>>137
氏ね。

139 名前:138 :03/03/04 13:10
>>134
ありがとうございます。

140 名前:デフォルトの名無しさん :03/03/04 13:15
>>137
電脳化させろ。


141 名前:137 :03/03/04 13:17
>>140
どういう意味?

142 名前:137 ◆V1kwoShQaI :03/03/04 13:19
>>140
むずかしそうな話だからしばらく電脳化についてはいいや。
とにかく昔の自分のコードをわざわざみないと今現在何も作れない自分がいるのがかなすぃ。

143 名前:デフォルトの名無しさん :03/03/04 13:26
>>142
そんな君にはオブジェクト指向&デザインパターン。
コードを見なきゃつくれない→自作のライブラリを使えばすぐできる。(※)
へとステップアップだ!

※自作のライブラリを使わなきゃつくれない、、、とも言う。

144 名前:137 ◆V1kwoShQaI :03/03/04 13:30
>>143
ようするに普段から再利用可能でコピペで使えるようなプログラミングを心がけなさいということだね。
あとは貼り付けてつかえるActibeXコンポーネントをうまくつかうっと。
未だに変数名もばらばらにつけてるオラには再利用ライブラリはムリポ。

145 名前:デフォルトの名無しさん :03/03/04 13:39
>>144
漏れが恐ろしいほどコメントつけまくるのは
他人がコード見たときの理解を助けるため・・・ではなく、
自分が後から見たときに分かるようにするためだ。

「この変数なんだっけ?(*´д`*)」

146 名前:137 ◆V1kwoShQaI :03/03/04 13:47
>>145
なるほど。オレも変数についてコメント書くことがあるな。英単語の意味を。
Dim Int1 as Integer 'integer=整数という意味

147 名前:デフォルトの名無しさん :03/03/04 13:47
>>145
俺も4年ごしでやってるシステムの根幹部分なんて
自分で組んだのにすっかり忘れてるよ・・・ (*´д`*) アハァ
やっぱコメントは大事だね。
でも自分で書いたソースって、やっぱ他人の書いたソースよりも
はるかに理解がしやすい。
あ、いいソース書いてるって意味じゃなくねw
やっぱ組み方のクセみたいなものがあるから理解しやすいんだと思う。

148 名前:デフォルトの名無しさん :03/03/04 14:03
そろそろお昼ねタイムだ

149 名前:デフォルトの名無しさん :03/03/04 14:10
失礼します。
メニュー項目をクリックすることでテキストボックスの
横スクロールバーの有無を切り替えたいのですが、
スクロールバーは新しく値を設定する事ができない、
と言われてしまいます。
どうすればメニューのクリックで
スクロールバーを切り替えられますか?
(Windowsメモ帳の「右端で折り返す」みたいな感じです)

150 名前:デフォルトの名無しさん :03/03/04 14:17
>>149
あらかじめスクロールバーのあるのと無いのと2つ用意しておいて、
メニュークリック時に表示・非表示を切り替えるとか。
もちろん切り替え時に内容は同期取ってね。

151 名前:デフォルトの名無しさん :03/03/04 14:23
すいません、スタンダードでも自分の作ったアプリ配布できるますか?

152 名前:149 :03/03/04 14:28
>>150
ありがとうございます!!

そういう手も考えてはみたのですが、
何せものすごい初心者なもので…。
その、同期を取るのをどうしたらよいかがわかりません。
本にも載ってないしヘルプファイルも参照できない状態なので、
どうか教えていただけないでしょうか?
宜しくお願いします。

153 名前:デフォルトの名無しさん :03/03/04 14:34
>>152
ヘルプないなら、MSDNオンラインを利用すれ。
ttp://www.microsoft.com/japan/msdn/library/
ちなみに同期を取るとは、下記みたいな感じ。
あんまり答えモロは書きたくないが、簡単すぎるのでたまにはまんま載せてみた。

Private Sub Command1_Click()
If Text1.Visible = True Then
Text2.Text = Text1.Text
Text1.Visible = False
Text2.Visible = True
Else
Text1.Text = Text2.Text
Text1.Visible = True
Text2.Visible = False
End If
End Sub

154 名前:デフォルトの名無しさん :03/03/04 14:35
>>152

sub メニューを押した
  if text1.visible then
    text2.text = text1.text
    text2.visible = false
    text1.visible = true
  else
    '反対のことをする
  end if
end sub

こんな感じー。
つーか漏前、なんでヘルプが無いんだYo!

155 名前:デフォルトの名無しさん :03/03/04 14:36
負けた(ρ_;)クヤシイ

156 名前:デフォルトの名無しさん :03/03/04 14:54
>>154
割れ物でMSDNのディスクがないと思われ。

157 名前:149 :03/03/04 15:03
>>153-154
何から何まで本当にありがとうございます!!
今度からMSDNオンラインを見てみますね!!
それでもわからなかったらまたよろしくお願いします。

>>156
その通りなんです…

158 名前:デフォルトの名無しさん :03/03/04 15:11
>>157
割れ厨かよ。答えなきゃ良かった。氏ね。

159 名前:デフォルトの名無しさん :03/03/04 15:24
漏れなんか、CD-ROM割れてしまって、バックアップなんか取ってないから
MSDNみれないんだじょ。マイクロソフトのサイトみてますが。

これぞ本物の「割れ」・・・・

160 名前:デフォルトの名無しさん :03/03/04 15:27
>>157
通報スマスタ

>>159
MSのサイトで交換の受付ってなかったっけ…。
あっても、今更古いMSDN来ても困る罠。
MSDN付.net買うが宜し。VS6用も入ってるでしょ。

161 名前:デフォルトの名無しさん :03/03/04 15:29
すみません。
VB6のプログラム作成ソフトってフリーで落ちてないんですか?

162 名前:デフォルトの名無しさん :03/03/04 15:36
>>161
頭大丈夫?

163 名前:デフォルトの名無しさん :03/03/04 16:08
>>161
モデラーのこと言ってんのか?
どっちにしろ、自分の考えを表現するためには、
作成ソフト自体を自作しなければ難しいぞ。

164 名前:ひきプロ :03/03/04 16:45
何年か前にVBの体験版とサービスパックを使って
無理矢理EXEを作成するとかいう裏技ありましたね

165 名前:デフォルトの名無しさん :03/03/04 17:10
>>161
ソースだけならメモ帳でも書けるぞ

166 名前:デフォルトの名無しさん :03/03/04 17:16
Form1.Showを実行するとForm1.VisibleがFalseでも画面に表示されるのだけれどこれで正常ですか?

167 名前:デフォルトの名無しさん :03/03/04 17:17
>>166
正常

168 名前:166 :03/03/04 17:18
>>167さん
ありがとうございます。

169 名前:デフォルトの名無しさん :03/03/04 17:57
>>166-168 (*´∀`*) ホ〜ノボノ♪

170 名前:デフォルトの名無しさん :03/03/04 18:38
VBプロジェクトをRBプロジェクトに変換

http://www.realbasic.com/

171 名前:デフォルトの名無しさん :03/03/04 18:43
VBScriptで
"ゴルァ"
と""も含めて表現したい場合、

document.write "??? "
???にはどう書けばよいのでしょうか・・・

172 名前:ひきプロ :03/03/04 18:44
"""ゴルァ"""

173 名前:デフォルトの名無しさん :03/03/04 18:47
ぬおー、できたー アリガトゴザイマス


174 名前: :03/03/04 19:08
VB6のLogEventで出力されるログの
"ソース"※ を変更できる方法ってありますか?

※イベントビューアで見れる項目名"ソース"

過去ログ検索する前のカキコ スマソ。

175 名前:デフォルトの名無しさん :03/03/04 19:57
>>174
過去ログみてから発言しましょうね。
心得
壱.質問する前に過去ログにも目を通してみる。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
弐.質問する前に MSDN などで調べてみる。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
五.下ネタもたまにならOK。


176 名前:デフォルトの名無しさん :03/03/04 20:00
>>165
ロジックはともかく、GUIをメモ帳でコーディングするのは生産性が恐ろしく低い罠・・・。

177 名前:デフォルトの名無しさん :03/03/04 20:18
CreateWindowでフォームもコントロール作れ。
だったらCレベルの生産性は維持できるだろ。

178 名前:デフォルトの名無しさん :03/03/04 20:52
WebBrowserコントロールでMouseMoveのようなのできないですかね?

179 名前:デフォルトの名無しさん :03/03/04 21:23
誰か、わかりやすくコールバックメソッドを使った非同期通知のやり方を教えておくれ。
イベント通知だとイベント処理メソッドの処理が終わらないと一方が止まってしまうので
困ってしまってね。Coffeeサンプルは複雑で漏れにはわからん。

ヘルプ嫁・・・・はいはい


180 名前:デフォルトの名無しさん :03/03/04 23:07
ピクチャーボックスに文字を出力するのは
Print Picture1 "aiueo"
だと失敗したんだけど・・・正解をキボンヌ。

181 名前:ひきプロ :03/03/04 23:21
Picture1.Print "aiueo"

182 名前:180 :03/03/04 23:28
>>181
ありがとう。微妙におしかった。

183 名前:デフォルトの名無しさん :03/03/05 00:41
>>182
見た目は微妙だが、
考え方は180度間違っている。


184 名前:105 :03/03/05 00:42
すいません、やはりマルチキャストの受信だけができません。
UDPを使って、お互いのIPをRemoteHostに設定して
ユニキャストで文字列のやりとりはできるし、
マルチキャストを使っての送信はできる(確認は受信側でVC製の別のマルチキャスト受信ソフトで行った)のですが…
>>105の設定だけではだめなんでしょうか?

185 名前:182 :03/03/05 01:18
>>183
オブジェクト メソッド 引数の順で書いていけばよかったと今頃思った。

186 名前:デフォルトの名無しさん :03/03/05 01:29
win98でMicrosoft Windowless Controls 6.0のWL コンボ ボックスを使った
プログラムを作ったのですが、windows2000とXPで、実行しようとすると
「コンポーネントMSWLESS.OCXまたはその依存関係のひとつが適切に
登録されていません。ファイルが存在しないか、あるいは不正です。」
とエラーが出て実行できなかったらしいです。 
どうすれば解決できるでしょうか?


187 名前:デフォルトの名無しさん :03/03/05 01:47
珍しいとは思うけどAccessとの絡みで質問でつ。

Accessのテーブルデータと連携した画面を作っています。
MSHFlexGridにDetaSourxeを設定してデータを表示させるまでは
できるのですが、その中からユーザに選択させるために
左側にチェックボックスを並べたいのです。
普通に並べても、FlexGridのデータをスクロールバーで上下させてしまうと
チェックボックスの選択と同期が取れなくなってしまうし、
かといってテーブルに選択の列を追加しても
DBデータと連携できるチェックボックスコンポーネントなんてないし。

理想は、FlexGridの横一列とチェックボックスを対応付けて
スクロールバーに連携させ、かつ離れた列の複数選択を可能にすることです。
どうにか方法ないものでしょうか?
素直にFlexGridのセルをクリックして選択させたほうが楽でしょうか?


188 名前:デフォルトの名無しさん :03/03/05 02:13
>>184
スマソ、ブロードキャストと勘違いしてた…。
マルチキャストを受信するには、アプリケーションからOSにその旨登録しないと
駄目みたいな様子なので、API使うか何かする必要があるような感じ?
IGMPがどうたらこうたら…。
漏れにはお手上げ(ρ_;)

189 名前:189 ◆7WYWM3doQ. :03/03/05 03:18
プログラミングしてるとオレって天才と思うときがたびたびある。

190 名前:デフォルトの名無しさん :03/03/05 03:37
そう思うことは個人の自由だから何も言わないが、
それを公言するのは人間としてなんか間違っていると思う

191 名前:デフォルトの名無しさん :03/03/05 04:47
つまり、




(・A・)イクナイ!







192 名前:デフォルトの名無しさん :03/03/05 05:02
MXって何ですか?

193 名前:デフォルトの名無しさん :03/03/05 08:21
GeForc(ry

194 名前:デフォルトの名無しさん :03/03/05 08:50
>>189
少なくともVB使ってたら思わないな...

195 名前:デフォルトの名無しさん :03/03/05 09:02
>192
アレだろ、ごつごつしたタイヤのオートバイで天高くジャンプしたりする競技?

196 名前:デフォルトの名無しさん :03/03/05 09:30
VBで関数ポインタを呼び出すにはこうすればいいと分かったのですが、
CallWindowProcは引数が4つ余計です。他に良いAPIはありませんか?

Option Explicit

Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Sub main()
Dim adr(2) As Long
adr(0) = AddPtr(AddressOf func0)
adr(1) = AddPtr(AddressOf func1)
adr(2) = AddPtr(AddressOf func2)

Dim i As Long
For i = 0 To 2
Call CallWindowProc(adr(i), 0, 0, 0, 0)
Next i
End Sub

Public Function AddPtr(ByVal Address As Long) As Long
AddPtr = Address
End Function

Public Function func0(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Debug.Print "func0"
End Function
Public Function func1(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Debug.Print "func1"
End Function
Public Function func2(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Debug.Print "func2"
End Function

197 名前:デフォルトの名無しさん :03/03/05 09:41
>>196
EnumWindowとか、SetTimerとか試してみたら?
つーか、なんでパラメータを無視するんだよぅ(笑

198 名前:デフォルトの名無しさん :03/03/05 09:54
>>197
EnumWindowで出来ます? SetTimerはタイムラグがありそうだし、
TIMERPROC型がWNDPROCと同じ個数の引数なので意味なさそうです。

> つーか、なんでパラメータを無視するんだよぅ(笑
だって、この場合必要ないし。


たいした問題じゃないんですが、名前を変更してみました。
これで一見、「どうやってるんだ?」って思わせられるはず(w
Option Explicit

Public Declare Function CallFunc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal Param1 As Long, ByVal Param2 As Long, ByVal Param3 As Long, ByVal Param4 As Long) As Long

Sub main()
Dim adr As Long
adr = FuncPtr(AddressOf func)

Debug.Print "ret:" & CallFunc(adr, 0, 0, 0, 0)
End Sub

Public Function FuncPtr(ByVal Address As Long) As Long
FuncPtr = Address
End Function

Public Function func(ByVal Param1 As Long, ByVal Param2 As Long, ByVal Param3 As Long, ByVal Param4 As Long) As Long
Debug.Print "func"
func = 1
End Function

199 名前:名無しさんだよもん ◆ZAYX.QGihc :03/03/05 10:19
CallWindowProcはメッセージのフックで使うのが普通
(引数がSendMessageと同じところに注目)

例えば func(param1 As String, param2 As Object) の様な引数を持った関数はVBでは呼べません

言い切ってしまえば VB で関数ポインタは扱えません
関数ポインタを呼び出す部分をCでDLLするしか方法は...(以下省略

200 名前:デフォルトの名無しさん :03/03/05 10:20
>>198
いまいち意図がつかみにくいけど、要するに関数のポインタを変数に入れて、
コールバックで扱いたい、ってこと?
こんな感じかい?

Option Explicit
Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long

Sub main()
  Dim ptrFunc As Long
  
  ptrFunc = FuncPtr(AddressOf TimerProc)
  Call SetTimer(0, 0, 1000, ptrFunc)  ' AddressOf TimerProc)'本来はこっちの書き方

End Sub

Function FuncPtr(ByVal AddressOfFunc As Long) As Long
  
  FuncPtr = AddressOfFunc

End Function

Public Sub TimerProc(ByVal hwnd&, ByVal uMsg&, ByVal idEvent&, ByVal dwTime&)
  
  Call KillTimer(0, idEvent)
  Debug.Print dwTime

End Sub

201 名前:デフォルトの名無しさん :03/03/05 10:38
>>199
> 例えば func(param1 As String, param2 As Object) の様な引数を持った関数はVBでは呼べません
そういう時はね、StrPtrやObjPtrでアドレス値に変換してから
呼び出し先でアドレスをローカル変数に代入すればいいんだよ。

202 名前:デフォルトの名無しさん :03/03/05 11:27
タイプライブラリって何ですか?

203 名前:デフォルトの名無しさん :03/03/05 11:31
>202
ほれ。
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=%E3%82%BF%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%A8%E3%81%AF

204 名前:デフォルトの名無しさん :03/03/05 11:36


:::::::::::/           ヽ::::::::::::
:::::::::::|  ば  じ  き  i::::::::::::
:::::::::::.ゝ か   つ   み  ノ::::::::::: 
:::::::::::/  だ  に  は イ:::::::::::::
:::::  |  な。       ゙i  ::::::
   \_         ,,-'
――--、..,ヽ__  _,,-''
:::::::,-‐、,‐、ヽ. )ノ      _,,...- 
:::::_|/ 。|。ヽ|-i、      ∠_:::::::::
/. ` ' ● ' ニ 、     ,-、ヽ|:::::::::
ニ __l___ノ     |・ | |, -、::
/ ̄ _  | i     ゚r ー'  6 |:: ←>202
|( ̄`'  )/ / ,..    i     '-
`ー---―' / '(__ )   ヽ 、   
====( i)==::::/      ,/ニニニ
:/     ヽ:::i       /;;;;;;;;;;;;;;;;

205 名前:名無しさんだよもん ◆ZAYX.QGihc :03/03/05 12:33
>>201 その方法があったのね...

フックとStrPtr思い出したんだが
過去に『TextBoxにタブが入力されたら半角スペースに変換』たる機能を作ろうとした
ペーストされた時・外部アプリからの変更も考えて フックし

@ コールバックの引数(ペーストされる文字列のアドレス)をStringに MoveMemory
   ↓
A String のタブを半角スペースに置換
   ↓
B Aの結果を@のアドレスに入れる(StrPtrを使って)

という方法でやってみたのだが
文字列のサイズが小さいと成功し大きいと失敗(異常終了)します
違うやり方があったら教えてくれ

『入力されたら半角スペースに変換』は簡単なのだが...

206 名前:デフォルトの名無しさん :03/03/05 13:53
>>205
その方法ってAPI呼び出すときに使ってるだろ。

207 名前:デフォルトの名無しさん :03/03/05 14:43
Form1とForm2を持っているソフトのexeファイルを作ると、
exeファイルのアイコンがForm1のアイコンになっちゃうんだけど、
Form2のアイコンをexeに表示させるにはどうすればいいの?
エクスプローラでexeを見てみるとForm1のアイコンしかexeのアイコンとしては表示できないみたい。

208 名前:ひきプロ :03/03/05 15:00
EXEを作る時に
オプション → アプリケーション → アイコン
で変更

209 名前:デフォルトの名無しさん :03/03/05 15:08
今更ながら、VS6(VB6だけでもいいけど)を買おうと思うんですけど、
もう入手困難?
昔の会社でVB6使ってたけど、転職した会社になかったので
(ソフトハウスではないですので当然ですが)
どーせなら、VB6を買って、アップ版のVS.NETを買おうと
思ってるので。

もし、通販できるサイトがあれば教えてくださいませ

210 名前:207 :03/03/05 15:13
>>208
本当にこんなことができたなんて。
すごい!すごすぎる!

211 名前:デフォルトの名無しさん :03/03/05 15:14
http://store.prod-one.co.jp/ms/dept.asp?dept%5Fid=23

212 名前:もう一度書かせて下さい。 :03/03/05 15:25
win98でMicrosoft Windowless Controls 6.0のWL コンボ ボックスを使った
プログラムを作ったのですが、windows2000とXPで、実行しようとすると
「コンポーネントMSWLESS.OCXまたはその依存関係のひとつが適切に
登録されていません。ファイルが存在しないか、あるいは不正です。」
とエラーが出て実行できなかったらしいです。 
どうすれば解決できるでしょうか?



213 名前:デフォルトの名無しさん :03/03/05 15:53
>>211
どうもありがとう!

214 名前:デフォルトの名無しさん :03/03/05 15:54
VBでzipファイルを解凍するプログラムをキボンヌ

215 名前:デフォルトの名無しさん :03/03/05 16:03
>>214
統合アーカイバプロジェクトに行け(´ー`)
サンプルがたくさん落ちてるぞ。

inflateまで自前で実装したいなら茨の道っていうか漏前には無理。

216 名前:ひきプロ :03/03/05 16:04
>>212
アプリのフォルダにMSWLESS.OCXを開発環境からコピーすれば
動くようになると思います。
>>214
http://www.google.co.jp/search?q=zip%E8%A7%A3%E5%87%8DVB&ie=UTF-8&oe=UTF-8&hl=ja&lr=

217 名前:214 :03/03/05 16:09
>>215-216
キミたちがクレタほんのちょっとの情報だけでオレはつくる!グヘヘ

218 名前:214 :03/03/05 16:13
>>217
偽者は引っ込んでください。

>>215-216
ありがとうございます。

219 名前:デフォルトの名無しさん :03/03/05 16:13
ここ数日ム板にも厨房が増えたな。やっぱ春休みか。

220 名前:デフォルトの名無しさん :03/03/05 16:18
質問者はなるべくトリップをつけよう!

221 名前:デフォルトの名無しさん :03/03/05 16:20
化学物質だらけの世の中だから生まれつき変な人増えてもおどろくなかれ

222 名前:214 zip ◆IKup9Hv/8E :03/03/05 17:00
おーう、できたぞ。
zip解凍先フォルダの指定がこのときは解凍できずになやみになやんだ。
Outdir = App.Path
だがしかし、unzip32.dllで大事なのは、解凍先フォルダの指定でフォルダ文字列の最後に\をつけることだ。
Outdir = App.Path & "\"
とすれば見事に解凍できる。
覚えておくといいぞ、これからVBでzipを扱うのに興味を持ったヤシは。

223 名前:デフォルトの名無しさん :03/03/05 17:02
>>222
そのソースだとダメな場合がある(だろう)ってのを覚えておいたほうがいいぞ。
どういう場合にダメなのかは自分で考えるように。

224 名前:214 zip ◆IKup9Hv/8E :03/03/05 17:04
>>223
はっきりいわないと世界中のソフトがバグをかかえたままになるぞ。
なにが悪いんだ?

225 名前:214 zip ◆IKup9Hv/8E :03/03/05 17:05
>>223
Right関数使えとかいうだろうな。

226 名前:デフォルトの名無しさん :03/03/05 17:08
>>224
まともなプログラマはそんなソース書かないから大丈夫だw
自分で考えろって言ってるのに2分で即レスとはすげーヤシだな。
ちなみにRight関数は”あまり”関係ない。

227 名前:214 zip ◆IKup9Hv/8E :03/03/05 17:10
>>226
今のオレには考えてもなにも思い浮かばん。こたえをズバリ言ってくれ。

228 名前:デフォルトの名無しさん :03/03/05 17:11
つーかな、App.Pathの仕様が腐ってるだけともいえるな。
いちいち面倒だってば。

229 名前:214 zip ◆IKup9Hv/8E :03/03/05 17:14
>>228
App.path vb バグ
で検索しても情報がなかったからオレは気にせずにApp.Pathを使うことにする。

230 名前:デフォルトの名無しさん :03/03/05 17:15
>>227
断る

>>228
たしかに・・・
俺は最近は手抜きして、その手の処理にはFSO使うことが多い。何かと便利だし。

231 名前:デフォルトの名無しさん :03/03/05 17:17
バグと仕様の区別もつかないアフォが一匹紛れ込んでるわけだが。

232 名前:214 zip ◆IKup9Hv/8E :03/03/05 17:18
けっ。FSOはノートンに実行許可を与えないと使えないぜ。ノートンが反応すればユーザはそれだけで
いいソフトにも拒否反応を示すというのは事実だ。

233 名前:デフォルトの名無しさん :03/03/05 17:21
C:\ で実行すると、App.Path は C:\ になる。
C:\hoge\ で実行すると、App.Path は C:\hoge になる。

ルートで実行するやつなんかシラネ、って考えなら問題なし。

234 名前:デフォルトの名無しさん :03/03/05 17:21
初心者スレだし、ヒントくらい出すか。

*い ろ ん な と こ ろ で* App.Path

以上。

235 名前:234 :03/03/05 17:22
>233
ぎゃふん

236 名前:214 zip ◆IKup9Hv/8E :03/03/05 17:24
>>233
おれはApp.Pathの戻り値の右端に\があるかどうかを求めればいい。
という考えで上記事にRight関数の名を出したわけだから、なにげにもうこちらも解決してたってわけだな。

237 名前:214 zip ◆IKup9Hv/8E :03/03/05 17:25
>>230-235
というわけでごくろうさま。

238 名前:デフォルトの名無しさん :03/03/05 17:34
今日はさむいな
             ∧_∧
         .:' ': :..,, .( ´A` )  、_,..ノ⌒ヽ、,
         ゙::...::゙" (ヾ.,,三,.彡'_,,... -‐、.,, 彡
               ヽ くV > ヽ、 \   ゙"
              ヽ<iゝ  l>  )
               〉・ ・ / ./
                 / ・ ・ \イ         、
                  ∧     'i,         〈キ〉
             / 人     'i,         `'
            ,/ / /'i,     ヽ
             l' i'ヽ(  ヽ     >
           / ,|⌒l   |'i,  /
           ヽノ  l   ! レ''.              ,-、,
               |  |                く_ツ
              | .|
              _/  l
    ,.-'l           (___/
    ゝ '

239 名前:デフォルトの名無しさん :03/03/05 17:35
餌を与えるのも程々にしましょう >ALL
まだ間違ってるようだが、本人納得してるようなので放置しよう・・・

240 名前:デフォルトの名無しさん :03/03/05 17:42
>>214
いくつか重要な事実をおしえてくれてるね。おれは感謝してるよ。

241 名前:デフォルトの名無しさん :03/03/05 17:44
Public Function AddBackSlash(Byval strPath As String) As String
If Right$(strPath, 1) <> "\" Then strPath = strPath & "\"
AddBackSlash = strPath
End Function

242 名前:デフォルトの名無しさん :03/03/05 17:44
ノートンか、なるほど。

243 名前:214 ◆IKup9Hv/8E :03/03/05 17:47
>>241
もう消える。

244 名前:デフォルトの名無しさん :03/03/05 17:48
ジサクジエンの悪寒・・・ (´д`;)

245 名前:デフォルトの名無しさん :03/03/05 18:33
>237

>238

この流れで話はおわりとおもたのに・・・・。

246 名前:214再び ◆IKup9Hv/8E :03/03/05 19:11
Unzip32.dllはスペースを含んだフォルダにzipファイルがあると解凍できないようなんだが
みんなもそうだろうか?

247 名前:214 ◆IKup9Hv/8E :03/03/05 19:17
そぅいえば
Unzipするときにパラメータを渡すが、パラメータはスペースで区切っていたな。
つまりパラメータ用デリミッタのスペースとフォルダ名のスペースが混ざったいると。
さてどうしたものか。

248 名前:214 ◆IKup9Hv/8E :03/03/05 19:25
パラメータをダブクォで囲ってみる。

249 名前:214 ◆IKup9Hv/8E :03/03/05 19:27
うまくいった。

250 名前:212 :03/03/05 19:28
>>216
ありがとうございます。さっそく相手にメールで送って試してもらいます。

251 名前:214 ◆IKup9Hv/8E :03/03/05 21:06
App.pathの詳細とInetコントロールやその他の手段でRefererを変更する方法をキボンヌ。

252 名前:デフォルトの名無しさん :03/03/05 22:54
前スレにもこんなのがいたな
同一人物か?

253 名前:デフォルトの名無しさん :03/03/05 22:56
すみません。めっちゃ素人の質問させてもらいます

ある文字列○○○の右から数個目のアルファベットを
アルファベットよって任意の数字をあたえる
プログラムってどうすればいいんですか?


○○○○○(単語)の右から3つ目のアルファベットが
A、b、c…1
d、e、f…2
その他…3
にしたい場合


本当お手数かけてすみません

254 名前:デフォルトの名無しさん :03/03/05 23:13
str = "AbCdEf"
rightOne = Left(Right(str, 3), 1)

あとはてめえでやれ。



255 名前:デフォルトの名無しさん :03/03/05 23:15
(・◇・)アヤヤー

256 名前:デフォルトの名無しさん :03/03/05 23:17
>>253
素直にコードにするとこうなるわけだが

Select Case Mid$("ここに対象となる文字列", 3, 1)
Case "A", "b", "c"
hoge = 1
Case "d", "e", "f"
hoge = 2
Case Else
hoge = 3
End Select

257 名前:253 :03/03/05 23:29
>>254
>>256
何となくわかりました。
お手数かけてすみません

本当すぐおしえていただきありがとうございました

258 名前:デフォルトの名無しさん :03/03/05 23:47
>>252
性器表現と同じお方のようだ

259 名前:デフォルトの名無しさん :03/03/05 23:48
イベントの意味を優しく教えて下さい。

260 名前:デフォルトの名無しさん :03/03/05 23:53
>>259
トイレでブツがぼっとんすればはねかえりがある、それがイベントだ

261 名前:デフォルトの名無しさん :03/03/06 00:03
>>260
余計意味がわからなくなりそうなのですが・・・。

262 名前:デフォルトの名無しさん :03/03/06 00:08
Form1 が ロード された
Form1 が 表示 された
Command1 が クリック された

こういうのがイベント

263 名前:デフォルトの名無しさん :03/03/06 00:09
>>260
お前が「トイレでブツがぼっとん」しても
俺には「はねかえり」を感知できない。

よってそれはイベントではない。

264 名前:デフォルトの名無しさん :03/03/06 00:11
>>261
オブジェクトでクライアントに有益な事象が発生したときに、クラスからクライアントへ通知する方法のこと

265 名前:デフォルトの名無しさん :03/03/06 00:13
コンピュータに何かが起こればそれはすべてイベント

266 名前:デフォルトの名無しさん :03/03/06 00:14
>>262がわかりやすい

267 名前:デフォルトの名無しさん :03/03/06 00:17
>>265
アキュームレータがインクリメントされるのもイベントが?

268 名前:デフォルトの名無しさん :03/03/06 00:17
サイモンとガーファンクルが来る、コンサートやる。これがイベント

269 名前:265 :03/03/06 00:22
>>267
VB限定のイベントという意味では、VBにとってはイベントでない、といえる。

270 名前:デフォルトの名無しさん :03/03/06 00:23
壁がはがれた。色を塗りなおす。これがペイント。

271 名前:253 :03/03/06 00:23
質問君でごめんなさい
ある単語(例えば「opendata」)という言葉から
あるアルファベット(例えば「o、a」)の数の合計を数えるプログラムってどうすればいいんですか?

本当2回もすみません!!


272 名前:デフォルトの名無しさん :03/03/06 00:25
イベントってイベントドリブンの略じゃねーの?

273 名前:デフォルトの名無しさん :03/03/06 00:30
>>271
あなたの近くに何十人もわかる人がいるが、回答者は、自分以外の誰かが答えるだろうと思って自分では回答を見合わせている状態なのだ。

274 名前:デフォルトの名無しさん :03/03/06 00:35
>>273
本当簡単な質問ですみません
独学でプログラム作り始めたんですけど
参考書のここまでのってなく詰まってしまって…


275 名前:273 :03/03/06 00:43
>>274
これは必ず答えが返ってくる質問だから、長い間待ってればだいじょぶ。
目的を達成する方法が何通りもありすぎてどれにしようかみんな迷っていると。

276 名前:デフォルトの名無しさん :03/03/06 00:55
>>232

>FSOはノートンに実行許可を与えないと使えないぜ。
というのは、VB6.0で作った標準EXEの中で
FSO使うのもダメですか?
それともVBSの話でしょうか?


277 名前:232 :03/03/06 01:19
>>276
コンパイル後のexeファイルに関しては、
exeのバイナリパターンをノートンが危険だと感じたときだけ反応する。
vbsなんかだと
Dim FS
Set FS = CreateObject("Scripting.FileSystemObject")
FS.deletefile "aaa.txt"
これだけで警告画面が出ちゃうけど、
スクリプトでなくコンパイルしたファイルシステムオブジェクトならよっぽどのプログラム以外は反応しない。
何しろ頻繁に反応するのはノートンのオプションのスクリプト遮断機能だからコンパイルしたファイルは
DeleteFileメソッド程度では反応しない。

278 名前:デフォルトの名無しさん :03/03/06 02:18
>>271
'Len関数をつかって単語の文字数を求める Len("opendata") = 8 この8を単語内の一文字ずつを比較するときのループプログラムで使う。
'o p e n d a t a
'のそれぞれの文字がoまたはaに一致するかどうかを比較する。
Dim i As Integer 'ループカウンタ
Dim n As Integer 'opendataに含まれているoとaの合計数
Dim S As String '一時的に文字を入れておく文字用変数
'Mid関数で一文字ずつ取り出していく。
'Mid("opendata",a,b)というのはopendataのa文字目からb文字取り出すという意味。
'だからMid("opendata",1,1)はopendataの1文字目から1文字だけ取り出すという意味で、1文字目から1文字目だけ取り出すとそれはoという文字になる。
'したがってS=Mid("opendata",1,1)となっているときは文字列変数Sにはoという文字が入っている。
'変数Sがoまたはaであるかどうかは
'If UCase(S)="o" or UCase(S)="a" then
'n=n+1
'End if
'のようにIF文を使って文字が同じかどうかを比較する。
'LCaseは大文字を小文字に変換する関数で、OpenDataというような大文字小文字が混じっている場合に対処する。
'大文字のAと小文字のaは違うものだからだ。
'大文字小文字の区別をつけたいときはLCace関数やUCase関数は使わないようにする。全角文字対処については省略。
For i = 1 To Len("opendata")
S = Mid("opendata", i, 1)
If LCase(S) = "o" Or LCase(S) = "a" Then
n = n+ 1
End If
Next
Form1.Caption = n
'この方法のほかにInStr関数を使ったり正規表現を使ったりする方法がある。

279 名前:276 :03/03/06 02:18
>>277
返答どうもありがとうございます。
これで安心して寝れます。
(ちょうど最近仕事で、FSOを使ったプログラムを書いたので。)

280 名前:277 :03/03/06 02:23
>>279
詳細はノートン作成会社シマンテックに問い合わせないとなんともいえないけど体験的にはそんなかんじ。とにかくどういたしました。

281 名前:105 :03/03/06 02:25
>>188
Winsock.dllのAPIをコールする必要があるということですね。
それがわかっただけでも大収穫です。ありがとうございました。

282 名前:278 :03/03/06 02:28
>>271
281のプログラムは汎用性がないから、281のを多少なりとも改良すべし。

283 名前:278 訂正 :03/03/06 02:30
>>271
278のプログラムは汎用性がないから、278のを多少なりとも改良すべし。

284 名前:デフォルトの名無しさん :03/03/06 09:26
すみません。初心者です。
VB6.0のData Reportですが自分のマシンでレポート込みのEXEを作成し
配布しようとした所別のマシン(VBはインストールされていません)で
「実行時エラー713
アプリケーション定義、またはオブジェクト定義のエラーです。」
と表示されたのですが、
Runtimeか何かをインストールしなくてはいけないのでしょうか。
すみませんが教えて頂けないでしょうか。


285 名前:デフォルトの名無しさん :03/03/06 09:39
>>284
初心者は余計。
ちゃんとディストリビューションウィザードとか使ってセットアップした?
EXEだけ持っていっても、そりゃ動かんよ。

286 名前:デフォルトの名無しさん :03/03/06 10:56
マウスを無効にすることってできますか?
EnableWindowってのだとキーボードもだめになっちまう

287 名前:デフォルトの名無しさん :03/03/06 11:07
>>286
サブクラス化でマウス関係のメッセージを全部握りつぶす

288 名前:286 :03/03/06 11:15
>>287
やっぱそれしかないのか・・・

289 名前:デフォルトの名無しさん :03/03/06 11:47
>>288
それでできると思ってたなら最初から手間を惜しまずに書きんさい。
無駄な解答しなくて済むから。

290 名前:253 :03/03/06 11:57
>>278
わかりやすく教えて下さってありがとうございました
これでなんとか出来そうです。

本当、わざわざ長文を書いてまで説明していただいて
感謝の2文字で一杯です。


291 名前:デフォルトの名無しさん :03/03/06 12:09
>>286
スクリーンセーバアみたいにマウスポインタ消す。じゃだめかな

292 名前:デフォルトの名無しさん :03/03/06 12:39
>286

マウスを抜け

293 名前:278 :03/03/06 13:07
>>290
了解。

294 名前:294 :03/03/06 13:51
>>292
了解。

295 名前:284 :03/03/06 13:58
>>285

ありがとうございます!試してみます。

296 名前:デフォルトの名無しさん :03/03/06 14:04
FSOでショートカット作ろうとしたらノートン反応するよ。

297 名前:デフォルトの名無しさん :03/03/06 14:29
ノートンはいい迷惑だなっと

298 名前:デフォルトの名無しさん :03/03/06 14:36
VB6で、クラスのPublicプロシージャの引数に構造体を使おうとしたら、

「パブリックオブジェクトモジュールで定義されたパブリックユーザー定義型に限り、
クラスモジュール内のパブリックプロシージャの引数または戻り値、
またはパブリックユーザー定義型の要素として使用することができます。」と

エラーメッセージが出てしまいました。
今は標準モジュール内にPublicで構造体を定義しているのですが、
クラス内に定義しても

「プライベートオブジェクトモジュール内ではパブリックのユーザー定義型は
定義できません」

とエラーが出てしまいます。
クラスのPublicなプロシージャの引数に構造体を使うのは無理なのでしょうか?

299 名前:デフォルトの名無しさん :03/03/06 14:39
>>298
標準モジュールのOption Explicitのすぐ下あたりに記述してみ

300 名前:デフォルトの名無しさん :03/03/06 14:40
>>298
ActiveXのパブリッククラスに記述してみ

301 名前:デフォルトの名無しさん :03/03/06 14:43
>298
Friendキーワードを調べよ。

302 名前:298 :03/03/06 14:45
>>299
今現在その状態でした。
「プライベートオブジェクトモジュール内ではパブリックのユーザー定義型は
定義できません」 のエラーが出てしまいます。

>>300
プロジェクトのタイプをActiveX EXE、クラスをPublicにして、
スタートモードを独立型にしたらエラーが出なくなりました。
ありがとうございました。

303 名前:298 :03/03/06 14:54
>>301
プロジェクトタイプを変更しないでもFriendキーワードでもうまくいきました。
ありがとうございます。

304 名前:304 :03/03/06 15:07
僕のVBは♂みたいですがみなさんのはどうですか?

305 名前:デフォルトの名無しさん :03/03/06 15:11
XPユーザーならやってみる価値あり

1.適当なフォルダにあるEXEファイルを右クリック→[スタート]メニューにアイコンを追加を選択
2.先ほどのEXEファイルがあるフォルダ自身の名前を変更する
3.スタートメニューを開いて上記の手順で追加したリンクを右クリック→プロパティを選択
4.無効なリンクになっているので、[変更]ボタンを押す
5.該当ファイルの変更後の正しい場所を指定する
6.・・・なにぃ!!

 感想きぼんぬ

   ※ 一人でニヤニヤした後は設定を元に戻しておきましょう


306 名前:デフォルトの名無しさん :03/03/06 15:21
>>305
試すのめんどくさい。
オチだけ教えて。

307 名前:デフォルトの名無しさん :03/03/06 15:28
なんかアプリが起動するとかしないとか。

308 名前:デフォルトの名無しさん :03/03/06 15:38
いまさらこういうコピペをにやけながら貼ってるヤシがいるかと思うと
頭が痛くなってくるな

309 名前:デフォルトの名無しさん :03/03/06 17:17
VBscriptでテキストファイルの整形や保存などをしたいのですが、
できますでしょうか?
もしできるなら参考になりそうなHPを知ってたら教えていただけないでしょうか?

310 名前:ひきプロ :03/03/06 17:47
>309
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/refer/lesson15.htm
こういうのはどうでしょ

311 名前:309 :03/03/06 17:54
>>310
ありがとうございまーす。勉強してみます。

312 名前:デフォルトの名無しさん :03/03/06 18:13
>>301
友達のいないオレにどうしろと?

313 名前:デフォルトの名無しさん :03/03/06 18:45
標準モジュールからフォーム内のプロシジャーへユーザー定義型を渡すとエラーが出ました。
MSDNには
「フォーム モジュールで引数をユーザー定義型として渡す場合、引数を渡されるプロシージャはプライベートである必要があります。」
とかいてあります。
この場合皆さんどうされますか?
1.ユーザー定義型をパブリックにしてしまう。
2.標準モジュールから呼ぶのをあきらめて、ユーザー定義型をフォーム内でモジュールレベルOrローカルレベルで定義し、フォーム内からそのプロシジャーを呼び出す。
3.ほかに方法があるぞこら!教えてやるよしかたねぇなぁ

どれですか?

314 名前:デフォルトの名無しさん :03/03/06 18:56
>>313
クラスを使う

315 名前:デフォルトの名無しさん :03/03/06 19:09
>314

な・・・なるほど・・・・。
しかしユーザー定義型は何でこういう制限があるのだろうか・・・。
ユーザー定義型の使うところがなくなる・・・。

316 名前:デフォルトの名無しさん :03/03/06 19:12
>313
ちょっと前にFriendって話が出てる訳なのだが。

317 名前:デフォルトの名無しさん :03/03/06 19:16
>>315
COM絡みだと思う。ユーザー定義型は特殊な型だからね。
ちなみにクラスはすべてオブジェクト型

318 名前:デフォルトの名無しさん :03/03/06 19:44
>316

いや、あれはクラスにユーザー定義型が渡せないっていってるんでしょ?
私がいってるのはフォームにユーザー定義型が渡せないといってる。
MSDNに書いてある制限だ。
MSDNには
「フォーム モジュールで引数をユーザー定義型として渡す場合、引数を渡されるプロシージャはプライベートである必要があります。」
って書いてるんだぞ?
フレンド使えるなんてどこに書いてる?「フォームは一種のクラスみたいなもんだ」見たいな中途な知識でいってるんじゃないのか?
ああ?ああ?ああ?

>317

それはCの構造体とも若干違うところがあるからということでしょうか・・・。


319 名前:デフォルトの名無しさん :03/03/06 19:53
> 「フォームは一種のクラスみたいなもんだ」
極普通の知識じゃん。

320 名前:デフォルトの名無しさん :03/03/06 20:00
>319

そこにフォーム内のプロシジャーにユーザー定義型を渡させないという知識がないから>316の発言になる
これが中途な知識からくる>316の発言ということだろ?
文章読解能力乏しいやつがいるな。
しったか君もいるしw
とんだ大恥かいちゃったなw

321 名前:デフォルトの名無しさん :03/03/06 20:13
すいませんが、質問があります。
クリスタルレポート7を使ってレポート印刷しているのですが
mdb形式のODEC接続から、SQLServerのADO接続に変更
する際、できるだけクリスタルレポート自体はさわらずに
VBのソース内で変更する方法はあるのでしょうか?

今とりあえず
  CReport1.Connect = "DSN=" & DBNAME & ";UID=" & USER & ";PWD=" & PASS

で接続はできてるようなんですが、クエリの抽出結果のレコードセットなどは
当然ながら反映されていません。
Datasourceを使ってみましたが、うまくいきませんでした。

どうすれば変更できるでしょうか?


322 名前:デフォルトの名無しさん :03/03/06 20:39
>>321
レポート側変えないと無理かと。

323 名前:309 :03/03/06 20:49
VBscriptってlistboxやcomboxは使えないのでしょうか?

324 名前:デフォルトの名無しさん :03/03/06 20:54
>>323
コンボボックスはHTMLタグでつくり、コンボボックスの内容はVBScriptで出力できる。

325 名前:309 :03/03/06 20:56
>>324
わかりやした。ども。

326 名前:デフォルトの名無しさん :03/03/06 21:08
>>305

ここにも貼ってるのか。
↓解決法
http://pc2.2ch.net/test/read.cgi/win/1043764586/l50


327 名前:デフォルトの名無しさん :03/03/06 22:36
オーナーWindowに対してModalでないメッセージボックスって作れます?

一応、APIのMessageBoxA の第1引数(HWnd)をゼロにしたら、それっぽいように
見えるのですが、なんかインチキくさくて正しいコーディングとは思えないし、
常に最前面に表示させることができず、オーナーWindow(メモ帳です)をクリック
すると背後に隠れてしまいます。

328 名前:デフォルトの名無しさん :03/03/06 22:39
>>327
補足です。イメージとしては、メモ帳の「検索」画面のような感じです。
要するに、常にオーナーWindowの前面に表示されるが、表示されている
間もオーナーの操作は可能・・・。

329 名前:デフォルトの名無しさん :03/03/06 22:43
Shell で"mailto:Address?Subject=Title"を呼ぶと、「通常使うメールソフト」に
宛先と標題が記入済みの状態で起動できますが、本文にもテンプレートを初期値で
設定した状態で起動することは可能でしょうか?

特定のメーラ(OEとか)限定なら、SendMessageを駆使してできそうな気もするんです
が、「どのメールソフトでも」対応できる方法が可能かどうかわかりません。

ご存知の方、コメントください。


330 名前:デフォルトの名無しさん :03/03/06 22:57
>>328
独自のフォームでいいの?
それなら、
  Form2.Show , Form1
みたいな感じでok。Form2は常にForm1より前面に表示されるはず。

MsgBoxでやる方法はシラネ。
MessageBoxのhWnd=NULLで問題無しならそれでいいんじゃない?

331 名前:ひきプロ :03/03/06 23:03
>329
http://www5e.biglobe.ne.jp/~access_r/hp/html/html_016.html
どうでしょか?OEならできそうな予感

332 名前:デフォルトの名無しさん :03/03/06 23:07
>>331,329
OEならbodyでできるね。
でも、Shellでできたっけ? APIのShellExecuteじゃないと駄目じゃない?

333 名前:ひきプロ :03/03/06 23:23
>>332
うちの環境ではまずShell "mailto:Address?Subject=Title"が
呼び出せませんでした藁
329さん、どうやってるんだろうか。

334 名前:デフォルトの名無しさん :03/03/06 23:47
2000/XPはしらないけど
Shell "start mailto:Address?Subject=Title"
で動いたかも

335 名前:デフォルトの名無しさん :03/03/07 00:07
Shell "C:\temp.txt"
でファイルは開けるわけ?

336 名前:デフォルトの名無しさん :03/03/07 00:19
みんな学校でVB勉強したの?

337 名前: :03/03/07 00:23
>336
半年前から仕事場で使い出した。
こっからどう話しが展開するの?

338 名前:デフォルトの名無しさん :03/03/07 09:16
>335

ひらかない

339 名前:316 :03/03/07 09:23
>320
たしかにMSDNには
「フォーム モジュールで引数をユーザー定義型として渡す場合、引数を渡される
プロシージャはプライベートである必要があります。」
と書いてあるが、
「Friendであってはいけません」
と書いてはいない。

で、「フォームは一種のクラスみたいなもん」ではなく、明確にクラスだよ。
当然、Friendでプロシージャを定義することも出来る。
俺が中途半端な知識で物を言っているかどうか、試してみればすぐに分かるだろうに・・・

340 名前:335 :03/03/07 09:23
>>338
エクスプローラでファイルをクリックするみたいにはいかないんだのぅ。

341 名前:329 :03/03/07 09:26
>>330
コメントありがとうございます。
自アプリではなく、外部アプリ(メモ帳)をオーナーとするメッセージボックスを
出したいのです。(しかも、事情があって、VBではなく、AccessのVBAで)

>>331-332
ありがとうございます。後で調べてみます。(結果は後日・・・)

>>334
9x系ならそれで正解。
NT系ではStartコマンドが内部コマンドなので、
Shell(Environ("ComSpec") & " /C mailto:Address?Subject=Title", vbHide)
としないといけません。

342 名前:329 :03/03/07 10:01
>>331-332

ブラウザの A href ........ タグからは起動できるんですが、Shellからだと、
body以下を有効なコマンドとして認識しないようです。
(メールソフトは起動するが、本文が入らない)
でも、タグで実行できるなら、何か別の方法がありそう。

土日にでもゆっくり考えて見ます。

343 名前:デフォルトの名無しさん :03/03/07 10:44
質問です。
テキストボックスにH2O等の化学記号の数字を小さくし入力、
表示させる事は可能でしょうか?
簡単に出来そうで難しいのですが・・・。

344 名前:デフォルトの名無しさん :03/03/07 11:02
>>343
テキストボックスだと普通は無理
小さい文字を表示できるフォントを使うか
リッチテキストあたりをつかえ

345 名前:デフォルトの名無しさん :03/03/07 11:11
>>344
ありがとうございます。

346 名前:ひきプロ :03/03/07 11:13
>>342
一回実験的にやってみたら、332さんのおっしゃる通り
ShellExecuteを使うとbody以下も認識しましたよ。(Win2000の時)

347 名前:329 :03/03/07 11:18
>>346
ありがとうございます。これで解決かな?

348 名前:デフォルトの名無しさん :03/03/07 12:41
>339

    ||
    ||
  ∧||∧
  ( / ⌒ヽ 
   | |   | 
   ∪ / ノ
    | ||
    ∪∪


349 名前:デフォルトの名無しさん :03/03/07 13:10
で、結局フレンドって何?

350 名前:デフォルトの名無しさん :03/03/07 13:12
>>349
友達。

351 名前:デフォルトの名無しさん :03/03/07 13:13
>>349

ここ↓を読めばわかるかも(w

ttp://www.hyuki.com/dp/cat_Memento.html

352 名前:デフォルトの名無しさん :03/03/07 13:14
VBユーザにメメントパターン。


幼児にチェーンソーを持たせるような感覚だ。

353 名前:デフォルトの名無しさん :03/03/07 13:18
幼児じゃなきゃいいじゃん。

354 名前:デフォルトの名無しさん :03/03/07 13:24
>>353
幼児である率は高い。

355 名前:デフォルトの名無しさん :03/03/07 13:28
そしてのその原因がチェーンソーに興味を持った幼児から
説明なしにいつまでもチェーンソーを取り上げること。
ナイフはキケンだからと取りあげナイフを使えない子供を
育てる親にならないようにしよう。

356 名前:デフォルトの名無しさん :03/03/07 13:30
チェーンソーは取り上げた方がいいぞ。

357 名前:デフォルトの名無しさん :03/03/07 13:32
>>355
その通りだ。でも、多分腕なくなるぞ。初めはハサミから、次はカッターナイフと教え方にもいくつか方法があると思うんだ。

358 名前:デフォルトの名無しさん :03/03/07 13:40
テキストで値を入れて計算したいのですが、
Text3 = Text1 + Text2
このようにすると
123 + 456 = 123456
と言うように数値を足すのではなく、文字を繋ぎ合わせる形になってしまいます。

Text3 = Text1 * 1 + Text2 * 1
このように * や / を式の中に入れれば
123 + 456 = 579
とちゃんと計算してくれるのですが、+のみでやるにはどうすればいいでしょうか?

359 名前:デフォルトの名無しさん :03/03/07 13:41
>>358
「型」について勉強。

360 名前:デフォルトの名無しさん :03/03/07 13:41
>>357
その通りだ。だが単に取り上げるだけじゃいつまでも使えるようにはならない。
問題があるならまず何が問題かを説明し納得させ、一番良い方法を提示するのが一番大事だ。
自分の基準で決め、結論だけを言い、それに従わせようとする奴が多すぎる。
目標は使えるようになる事だということを忘れてはならない。

361 名前:デフォルトの名無しさん :03/03/07 13:45
>>360
うむ、言いたいことはよくわかる。

>説明し納得させ

しかし、ここでの問題は物の切り方を尋ねる子供にチェーンソーを提示したと言うことではないだろうか?
刃物の特性を示すにはあまりにも強力で熟練を要する道具ではないか。

362 名前:デフォルトの名無しさん :03/03/07 13:46
>>360
初心者には、まずはサブクラス化を習得させるべき、という結論でよろしいでつか?(禿違


363 名前:デフォルトの名無しさん :03/03/07 13:47
>>358
オレでも分かるぞ。
とりあえず本屋逝って
「バカでも分かる簡単VisualBasic」の類のテキスト買ってこい。
またはMSDNで「データ型」と引け。

364 名前:デフォルトの名無しさん :03/03/07 13:48
>>361
尋ねたのが子供だとは限らない。

365 名前:デフォルトの名無しさん :03/03/07 13:50
>>364
公園で遊んでいる者の大半を子供と定義してもそれほど差し支えはないだろう。

366 名前:デフォルトの名無しさん :03/03/07 13:58
>339は問い詰められるべきなの?
厨房なのでわかりません。

367 名前:デフォルトの名無しさん :03/03/07 13:59
>>365
VB=公園という例えはふさわしくない。

368 名前:デフォルトの名無しさん :03/03/07 14:00
>>367
他に何かあるか?

369 名前:デフォルトの名無しさん :03/03/07 14:02
放射性廃棄物貯蔵庫の上に作られた公園。

370 名前:デフォルトの名無しさん :03/03/07 14:03
>>368
C++やJavaだとどう例えるか? それと同じだ。

371 名前:デフォルトの名無しさん :03/03/07 14:07
>>370
Java:全寮制高校
それなりのコミュニティはあるものの所詮は箱庭。外部との接触は制限される。きれい事のまだまだ通用する世界。

C++:社会
何をやっても良い。しかしすべてが自己責任だ。強力だがかなりシビアな世界といえる。

372 名前:デフォルトの名無しさん :03/03/07 14:09
ネタはマ板で。

373 名前:デフォルトの名無しさん :03/03/07 14:17
    _, ._
  ( ゜ Д゜)

374 名前:358 :03/03/07 14:40
Dim X As Integer, Y As Integer, Z As Integer
X = Text1.Text
Y = Text2.Text
Z = X + Y
Text3.Text = Z

これで正しい?
もっと効率いいやり方あるかな?

375 名前:デフォルトの名無しさん :03/03/07 14:41
>>362
その前に動的配列とコレクションを憶えさせれ(w

376 名前:デフォルトの名無しさん :03/03/07 14:50
>>374
X = Val(Text1.Text)
Y = Val(Text2.Text)
Z = X + Y
Text3.Text = CStr(Z)

初心者のくせに効率なんか求めるな!


377 名前:デフォルトの名無しさん :03/03/07 14:51
http://www.pink-angel.jp/betu/index.html
★いらっしゃいませ!!ようこそココへ★

378 名前:デフォルトの名無しさん :03/03/07 14:51
>>374
それでよしかと思われます。

379 名前:デフォルトの名無しさん :03/03/07 14:54
> 初心者のくせに効率なんか求めるな!
問題ないだろ。

380 名前:358 :03/03/07 14:55
d

381 名前:デフォルトの名無しさん :03/03/07 14:56
>>378
暗黙のキャストに慣れると、C はとうぶん出来ない。


382 名前:デフォルトの名無しさん :03/03/07 15:01
Cにも暗黙のキャストはありますが何か?

383 名前:366 :03/03/07 15:12
誰かぁ>366ぅ

384 名前:デフォルトの名無しさん :03/03/07 15:18
解答の催促するヤシうざい

385 名前:デフォルトの名無しさん :03/03/07 15:29
クラスモジュールでこうすんのと

Private B As Long
Public Property Let A(ByVal C As Long)
    B = C
End Property
Public Property Get A() As Long
    A = B
End Property

こうすんの何が違うの?

Public A As Long

386 名前:デフォルトの名無しさん :03/03/07 15:31
>>385
おんなじ

387 名前:デフォルトの名無しさん :03/03/07 15:35
>>386
ありがと
もひとつ!>>385のように値の設定・取得だけやる分には
どっちを使ったほうがいいんでしょう?

388 名前:デフォルトの名無しさん :03/03/07 15:36
>386
ヲイヲイ

389 名前:デフォルトの名無しさん :03/03/07 15:44
>>387
意味よくわかんね。

>>386の補足、まったく同じじゃないね。
■クラス外からアクセスする場合
まったく同じ。

■クラス内からアクセスする場合
・Meをつけると、上も下も外部からのアクセス=プロパティ経由=クラス外からの
アクセスと同等になる。
・Meをつけない場合、上はAでアクセスするとプロパティ経由、Bでアクセスすると
メンバ変数経由。下はメンバ変数経由と同等になる。メンバ経由の方が速度は速い。

390 名前:デフォルトの名無しさん :03/03/07 15:45
>>385
通常はフィールド変数はプライベートにして、プロパティでアクセスするのが基本。

同じに見えても、プログラム組んでいく上では基本が大事だと覚えるべし。
それなりに理由がある。

391 名前:デフォルトの名無しさん :03/03/07 15:48
>>390
> 通常はフィールド変数はプライベートにして、プロパティでアクセスするのが基本。
それJavaの話。VBでは特にプロパティのLet、Get内でなにもしないなら
パブリック変数で十分。

392 名前:デフォルトの名無しさん :03/03/07 15:48
Private B As Long
Public Property Let A(ByVal C As Long)
B = C
End Property
Public Property Get A() As Long
A = B
End Property

こうすんの何が違うの?

Public A As Long


この例の場合は結果はほぼ同じ。

Private B As Long
Public Property Let A(ByVal C As Long)
B = C
End Property

こうすることで読み取り専用プロパティが書けたり、

Private B As Long
Public Property Get A() As Long
A = GetNankaData(B)
End Property

の様にプロパティの内容をダイナミックに生成したり出来る。

393 名前:デフォルトの名無しさん :03/03/07 15:49
>>391
アホがいますな。

394 名前:デフォルトの名無しさん :03/03/07 15:49
(*´д`*)アハァ…

395 名前:デフォルトの名無しさん :03/03/07 15:51
>>393
まぁ論理的に考えてみろって。

396 名前:デフォルトの名無しさん :03/03/07 15:51
>>395
いや、お前がな。 

397 名前:デフォルトの名無しさん :03/03/07 16:07
VBのお子ちゃま仕様が、
>>391のような甘ったれた厨房レベルプログラムのできる程度の人を量産している。
もし、>>391が社会人で業務でVBを使っていて、
部下にそのように教えていたとすると、最大の被害者はその部下かもな。

398 名前:デフォルトの名無しさん :03/03/07 16:08
>>397
VBの仕様は関係ねーだろ。

399 名前:デフォルトの名無しさん :03/03/07 16:14
    _, ._
  ( ゜ Д゜)

400 名前:デフォルトの名無しさん :03/03/07 16:20
結果だけが重視される詰め込み型教育の悪影響がここにも・・・

401 名前:デフォルトの名無しさん :03/03/07 16:26
俺は391の意見に賛成。もちろん
>プロパティのLet、Get内でなにもしないなら
場合ってのが前提だけどな。
無論オブジェクト指向的に間違ってるってのは分かるが、
それより実行速度や簡潔性を取りたいケースも多い。

402 名前:デフォルトの名無しさん :03/03/07 16:30
しかし、>385の質問は
>「何が違うの? 」
であって、それに対し
>「同じ」
と答えるのはあきらかに間違っている。

ところで、Javaにもプロパティって考え方あるの?

403 名前:385 :03/03/07 16:40
皆様どーもです
いやぁ勉強になります
結論は同じじゃないけどこの場合で使うにはどっちゃでもいいようですね

皆様のカキコからこんなんも参照できますた
http://www.microsoft.com/japan/developer/library/VBCon98/vbconproperties.htm
http://www.microsoft.com/japan/developer/library/VBCon98/vbconpropertyproceduresvspublicvariables.htm

404 名前:デフォルトの名無しさん :03/03/07 16:44
>>401
VB5以降は外部からのアクセスは自動でGet/Let相当の動作になったと思うが記憶違いかもしれない。

405 名前:デフォルトの名無しさん :03/03/07 16:50
利便性や簡潔性だけ求めて、
仕様変更や情勢の変化が起こった際に泣きを見てる香具師が多いのも事実。
そんな香具師らは平気な顔をして
「徹夜して対処するから大丈夫。」
笑っちゃうね。最初からもう少し掘り下げて考えて作れば、徹夜する必要も無いのにね。
1日長く考えても、そのような対応を含めると、長く考える方が有利の場合が多い。
日本って馬鹿だから、そこら辺の研究考察時間を開発の工期見積に含めないよね。
正しくないとしても知ってるやり方で、早くできるのが一番偉いと勘違いしてるみたい。


406 名前:デフォルトの名無しさん :03/03/07 16:52
質問です。ただいまwinsockをつかって、簡単な、サーバとクライア
ントのソフトを作っております。で、まだLAN内でしか試していないので
すが、IPアドレスを入れれば、インターネットでつながった先のパソコン
とも通信できるのでしょうか?本当にくだらない質問ですいませんがおねが
いします。
あと、ファイルに数値を保存したいのですが、その数値と同じレコードに入れ
というような風にするにはどうすればいいでしょうか?(例えば最初に1が
きたら最初の場所に、次に13が来たら13の所に、そこで5が来たら5の所
にというような風に、で、後で先頭から順に正しい順番(1,5,13)で出力したい)
アイデアお待ちしております。

407 名前:デフォルトの名無しさん :03/03/07 16:54
>>405
プロパティ一つで何を熱くなってるんだおまいは?
なんか鬱憤たまってるみたいだが、そういう文句は自分の現場で言え。

408 名前:デフォルトの名無しさん :03/03/07 16:55
>406
1.試してみればいいだけの話でわ?
2.素直にRDB使ったら?

409 名前:デフォルトの名無しさん :03/03/07 17:04
>>405
>日本って馬鹿だから
アイタタタタ・・・
ほかのどの国で経験積んできたんだろw

410 名前:デフォルトの名無しさん :03/03/07 17:10
>>402
よく知らないが、考え方は同じでアクセッサメソッドってやつでしょ。

411 名前:デフォルトの名無しさん :03/03/07 17:13
>>406
基本的に繋がる。ルーターや火壁によって蹴られる可能性もあるが。



412 名前:デフォルトの名無しさん :03/03/07 17:14
>>409
日本で経験積んでもちょっと回りを見回すだけで日本が馬鹿って分かりますよ。

413 名前:デフォルトの名無しさん :03/03/07 17:15
それは日本がバカなのではなく、おまいの現場がDQN揃い(ry

414 名前:デフォルトの名無しさん :03/03/07 17:17
>406
そのPCにPingが届くのであれば、繋がると考えてオケ。

>412
ほほぅ、ちょっと回りを見渡すだけで日本が見えるのですか。
すごい視力ですね。

415 名前:デフォルトの名無しさん :03/03/07 17:23
>>412
止めとけって。
>>414みたいな視野の狭いヲサーンプログラマ(ともいえないレベル)の人間が反応するぞ。
自分たちのやってきたことを否定されてるんだから、
反応しないはずも無いが。

416 名前:デフォルトの名無しさん :03/03/07 17:27
これほど露骨なジサクジエンも珍しいわけだが・・・ (´д`;)
つーか そこまで”オブジェクト指向的”であることにこだわるヤシが
VBを使ってて発狂しないのか疑問だw
結局この手のもんはトレードオフでしょ。
速度や利便性を取りたい場合もあるし、将来の拡張性のために
あえて今は必要なくても冗長に書くこともある。
使い分けのできないヤシ、どういう場合だろうとどっちかに決めつけて
融通の利かないヤシがDQN

417 名前:デフォルトの名無しさん :03/03/07 17:28
>>414
Pingが届かなくてもつながる場合があるし、届いてもつながらない場合もあるぞ。
適当な事いうなよ。

418 名前:414 :03/03/07 17:37
>415
ほほぅ、やはり日本を語る人の視野のスケールは違いますなw

>417
いやだから、絶対繋がるとは書いてないじゃん・・・
ここでネトワクの細かい話までするのはそれこそスレ違いだし、
そんな話して>406が理解できるとは思えん。
曖昧な書き方したのは悪かったよ。

419 名前:デフォルトの名無しさん :03/03/07 17:38
>>414
> ほほぅ、ちょっと回りを見渡すだけで日本が見えるのですか。
誰が見えるって? 見えるわけないだろ(藁


420 名前:デフォルトの名無しさん :03/03/07 17:40
>>418
> そんな話して>406が理解できるとは思えん。
所詮あんたの思い込み。

421 名前:デフォルトの名無しさん :03/03/07 17:45
>419
そうですか。じゃあ、それなのに日本を語るのは間違いでは?

>420
そうだね。たしかに私の仮定だった。
つっこみはもういいから、君が>406にしっかりと説明してあげてよ。

422 名前:デフォルトの名無しさん :03/03/07 17:45
ちなみに漏れは390しか書いてないわけだが・・・・

ちなみに漏れは「通常は」と書いたわけであって、絶対そうしろとは書いてない。

ただ、プロパティというのは非常にうまい仕組みなので、それを使わない手はないと思う。
パブリック変数に一度してしまうと、後々面倒なことになる場合もあって、余程のことが
ない限り、やめといた方が無難だと思う。


423 名前:デフォルトの名無しさん :03/03/07 17:48
叩かれているのは>390ではなく>391と>405だと思われ。

424 名前:デフォルトの名無しさん :03/03/07 17:50
>>422
パブリック変数にしても外部からのインタフェースを変えることなく
プロパティに変更できる便利さ。

425 名前:デフォルトの名無しさん :03/03/07 17:50
もうその話はいいじゃん。
結局それぞれのポリシーの問題だし。
それにこれ以上いじくると荒らしに変貌しかねん。

426 名前:デフォルトの名無しさん :03/03/07 20:18
何回>>390を読み直しても、正論だと思うが、なんでこんなに荒れるのだ?

427 名前:デフォルトの名無しさん :03/03/07 20:26
質問でつ。
デバッガでスタックトレースを見るにはどうすればいいんでしょうか。

428 名前:デフォルトの名無しさん :03/03/07 20:32
>426
>385の質問に
>390が正論を言ったのだが、>391が反論。
最初は>391が叩かれていたのだが、
で>405あたりのオブジェクト指向狂信者が暴れだした。

ってところだろ。


429 名前:デフォルトの名無しさん :03/03/07 20:32
質問です。

Int()関数と同じ働きをするREALbasic用の関数をご存じですか?
REALbasicにはFloor()とRound()とCeil()というものがあるのですが
どれも微妙に違うみたいなんです。

430 名前:デフォルトの名無しさん :03/03/07 20:37
>>402
>ところで、Javaにもプロパティって考え方あるの?
Beanではクラスに

Get〜
Set〜

と言うメソッドを〜というプロパティと見なしたりする。


431 名前:デフォルトの名無しさん :03/03/07 20:38
classA.B というパブリック変数かプロパティーがあって、

sub hoge(byref fuga)
  fuga = hage
end sub
という参照渡しで値をいじる関数があった時、

  hoge classA.B

ってやると結果が腐る、ってのなかったっけ?
パブリック変数の時はclassA.Bはhageになるが、プロパティーの時は
変更されないとかそんな感じの。
そんなことするなヴォケ、って思うけど(笑

432 名前:デフォルトの名無しさん :03/03/07 20:46
>>431
そりゃそうだ。パブリック変数=プロパティGET=メンバ変数とかからの
メソッドの戻り値を変更してもメンバ変数自体が代わることはない。
ようするにhoge Val(a)とやってもaの内容が変わらないのと一緒。

433 名前:432 :03/03/07 20:49
> パブリック変数の時はclassA.Bはhageになるが、プロパティーの時は
> 変更されないとかそんな感じの。
ちょっとここ見落としていた。
パブリック変数の場合はクラス内から(Meをつけずに)アクセスした場合は
メンバ変数と同等。クラス外もしくはMeをつけた場合はプロパティ経由と同等。
なのでそういう結果になる。

434 名前:デフォルトの名無しさん :03/03/07 20:59
VB6で実験してみた結果、クラスのパブリック変数を外部から呼ぶ時は
Property Let/Getと同じ動作になると分かったよ。

というわけで、クラスの外部から見た場合はパブリック変数とLet/Getの
違いは全くないということでいいかな。

435 名前:デフォルトの名無しさん :03/03/07 21:06
クラスモジュールにパブリック変数を宣言して、
そのクラスを別のクラスでImplementsすると、
パブリック変数をProperty Let/Get扱いになるでしょ。

436 名前:デフォルトの名無しさん :03/03/07 21:13
容易に理由はわかると思うけどクラスにパブリック変数を置いてクラス内から
MeつきとMeなしアクセスしたときの速度を比べるとMeなしの方が速い。
もちろんフォームもクラスの一種なのでMeなしでアクセスした方が速いのだが、
面白いことにフォーム内のコントロールに限っては同じ。
コントロールは特殊な扱いなのだろう。

437 名前:デフォルトの名無しさん :03/03/07 21:17
>>346
動作確認できました。
おかげさまで、解決・・・・のはずが、今度は本文に改行をいれる方法が
わからなくて、悩んでたりする。(w
vbCrLfとか、<BR>とか試してみたんですが・・・。

ご存知の方、コメントください。


438 名前:デフォルトの名無しさん :03/03/07 21:19
>>437

>>331氏が提示してくれたURLに

「改行する際には、「%0D%0A」を指定してください。」と書いてありました。

申し訳ない。m(_ _)m

これで、OEについては完全解決。
あとは、Becky!等での動作確認だけです。


439 名前:デフォルトの名無しさん :03/03/07 22:01
リストボックスとチェックボタンが一つずつあったとする。
リストボックスのMultiselectは2の拡張スタイルにしており、
リストボックスには複数のリストが登録されていて、
チェックボタンにチェックを入れたときに、そのリストボックスの
全ての項目が青色に反転するようにしたい(つまり、全ての項目を
選択したと同じに)。


どなたかご教授おねがいします。

440 名前:デフォルトの名無しさん :03/03/07 22:15
>>439

Dim i As Long

For i = 0 To ListBox.ListCount - 1
ListBox.Selected(i) = True
Next

あまり説教じみたことは言いたくないのだが、とにかく、ヘルプとオブジェクトブラウザと
インテリセンス(入力補完)機能を使いこなすことを心がけよう。
(せっかくの便利な機能を使わないのでは、RADツールを使う意味がない)
慣れれば、新しいことをやるときにも戸惑わず、迅速に対応できる。

それでは、がんばってね。


441 名前:デフォルトの名無しさん :03/03/07 22:19
>>440
>インテリセンス(入力補完)機能を使いこなすことを心がけよう。

若いうちから何言ってんだ。

442 名前:デフォルトの名無しさん :03/03/07 22:22
>>440
教えてもらってこんなことを言うのもなんだが、、、
俺の言っていることをよく読め。
そして自分で書いたプログラムを一度実行してから
人に言え。
この低脳が。マジで頭にきたぜ。

443 名前:デフォルトの名無しさん :03/03/07 22:26
偽者が煽りだした(藁

444 名前:デフォルトの名無しさん :03/03/07 22:31
>>427
停止中にCtrl+L
もっと細かいレベルで見たいならネイティブコードコンパイル時にデバッグ情報を生成してVCとかを使ってみる。

445 名前:デフォルトの名無しさん :03/03/07 22:32
>>444
なぁなぁ。VBのデバッグ情報上手く使えないような気がするのは気のせい?

446 名前:デフォルトの名無しさん :03/03/07 22:33
>>445
うまく使いこなせない?

447 名前:デフォルトの名無しさん :03/03/07 22:36
>>446
VCで読み込んでも行がずれたりしない?
つーかファイル名とかのせいで素直に読み込んでくれなくなかった?

448 名前:デフォルトの名無しさん :03/03/07 22:44
>>444
おぉthanx

449 名前:Not 440 :03/03/07 22:54
(439)442 が怒っている理由を考えてみた。
おそらくリストが4万項目あると見た。

450 名前:デフォルトの名無しさん :03/03/07 22:55
VBでnetstatコマンドみたいに、ネット接続してるプロセス一覧を取得する事って
可能ですか?
ファイアーウォールもどきみたいに任意のプロセスの接続を停止させたりしたいんですが...


451 名前:デフォルトの名無しさん :03/03/07 23:08
Visual Basic 6.0 SP3 Professional Edition のディストリビューションウィザードで
「予期せぬエラー457 このキーは既にコレクションの要素に割り当てられています」と
表示され、パッケージができません。
どなたか対処法もしくは原因しりませんか?

452 名前:デフォルトの名無しさん :03/03/07 23:12
VB.NETで、ポインタ変数があり、そのアドレスが示す先に取り出したい8バイト
の値があるのですが、どうやれば取り出すことができますか?


453 名前:デフォルトの名無しさん :03/03/07 23:14
>>452
>VB.NETで、ポインタ変数があり

ありません。

454 名前:デフォルトの名無しさん :03/03/07 23:15
>>453
あったよ!!??

455 名前:デフォルトの名無しさん :03/03/07 23:15
>>452
ここは.Net以外のVBスレなので、ここで聞いてもCopyMemory dst(0),byval srcPtr しれ、
としか返ってこないと思われ。
>>1のリンクからVB.Netスレでドゾ。

456 名前:439 :03/03/07 23:18
俺は全ての項目が選択され、青色に反転している状態にしたいのだ。

457 名前:デフォルトの名無しさん :03/03/07 23:24
変なヤシが居るみたいだが、>>440のコードちゃんと動くよなぁ…。
まさか、List1.ListIndexが複数になる方法を探してるとかか?

つーか、偽物に反応してもしゃーないか…。

458 名前:デフォルトの名無しさん :03/03/07 23:25
俺は全ての駄レスが削除され、質問・回答のみの状態にしたいのだ。

459 名前:439 :03/03/07 23:26
俺は変な日本語を書いているのか???

変な奴らが多い・・・・・。

460 名前:デフォルトの名無しさん :03/03/07 23:43
>>458
無理。なぜなら2chだから。

461 名前:デフォルトの名無しさん :03/03/08 00:08
オプションボタンをクリックしたときに、Shiftキーを
押したことにすることって出来るのかな?

462 名前:444 :03/03/08 00:09
>>445
普通に使えていたけど?
ビルド後にソースコードいじったりしてないよね?
あとコンパイルするときは最適化は当然はずしていると。

463 名前:デフォルトの名無しさん :03/03/08 00:25
VB開発者は

アメリカでは、VBはプロ用
ジャパンでは、VBは素人用

という地位だそーです(.net magazine 4月号より)。

464 名前:デフォルトの名無しさん :03/03/08 00:29
>>463
その勘違いが日本のVBユーザの技術不足を招いているんだろうね。

465 名前:デフォルトの名無しさん :03/03/08 00:30
どの勘違いが?

466 名前:デフォルトの名無しさん :03/03/08 00:31
>>464
素人が使う−>バカなので技術の積み重ねがない−>素人のまま−>どんどん素人が増える

悪循環だな。

467 名前:デフォルトの名無しさん :03/03/08 00:33
まぁ、全角で「−>」こう書くほど馬鹿じゃないだろうがな。
糞見づらい。

468 名前:デフォルトの名無しさん :03/03/08 00:34
>>467
慣れれば楽。

469 名前:デフォルトの名無しさん :03/03/08 00:38
>>466
ちょっと違うよ。
馬鹿が使いやすい−>バカなので技術の積み重ねがない−>馬鹿のまま−>VBをかじった馬鹿がどんどん増える

やはり悪循環だな。


470 名前:デフォルトの名無しさん :03/03/08 00:58
ここでは同じ質問を3回してようやく本当に知りたいんだなとわかる

471 名前:デフォルトの名無しさん :03/03/08 00:59
すいません、いま仕事で各PCからプリンターに出力した件数を格納するソフトを作成しています。
それで、その出力したもののなかで、特定のソフトのものだけを抽出したいのですが、
これをジョブ名で特定しようとしたら他のソフトとジョブ名がかぶっちゃってたのです。
2ちゃんねらーのみなさま
なんとかして特定のソフトのみから打ち出したもののみをカウントする方法はありませんでしょうか?

472 名前:デフォルトの名無しさん :03/03/08 01:35
>>461
SendKeys

473 名前:デフォルトの名無しさん :03/03/08 01:52
Sub AAA()
Dim i
BBB
End Sub
-------------
Sub BBB()
Dim i
End Sub
------------
というように、あるプロシージャが別のプロシージャを呼ぶときに、両方で同じ名前の変数を使っちゃっても大丈夫なようなんだけど気のせい?
つまりAAAのiとBBBのiが独立に働いてくれてるような気がする。

474 名前:デフォルトの名無しさん :03/03/08 02:08
>>473
変数の宣言レベルについて勉強しる。

475 名前:デフォルトの名無しさん :03/03/08 02:11
>>474
スコープって言った方がいいと思う

476 名前:473 :03/03/08 02:19
>>474-475
スコープといってもダブっているiは気になるもの。
AAAのiの期限が切れてないうちにBBBのiを使えるということは、
VBはAAA.iとBBB.iという感じで複数箇所のiを分けて使っていてくれているようだ。

477 名前:デフォルトの名無しさん :03/03/08 03:14
i++
のところでエラーが出た。

478 名前:デフォルトの名無しさん :03/03/08 04:14
このスレには30歳以上が多いと見た

479 名前:デフォルトの名無しさん :03/03/08 04:45
>>476
N88BASICでも使え

480 名前:476 :03/03/08 04:56
>>479
もういい。

481 名前:デフォルトの名無しさん :03/03/08 06:35
>>476
スコープの意味を 100 万回調べれ。

482 名前:デフォルトの名無しさん :03/03/08 07:15
>>476
山口さんちのツトム君と関口さんちのツトム君は別人ということだ。


483 名前:476 ◆0d6Ohf/jLo :03/03/08 07:28
>>481-482
ローカルスコープの意味を知るのは簡単だ。
問題は
Call BBB
が単なるインクルードでないことだな。現在の位置にある情報を置いてけぼりにして別の場所にジャンプする、という感じだ。

484 名前:デフォルトの名無しさん :03/03/08 07:32
一体誰が

Call BBB

をインクルードだと言ったの?

485 名前:476 ◆0d6Ohf/jLo :03/03/08 07:45
>>484
だれもイワンが。
勝手にそう思い込むヤツがここにいただけの話。

486 名前:デフォルトの名無しさん :03/03/08 08:10
>>472
初心者にSendKeysを奨めるのって、親切そうに見えてウラに悪意が感じられる(w

# keybd_event じゃダメ?

487 名前:デフォルトの名無しさん :03/03/08 09:52
>>485
凄い勢いで馬鹿

488 名前:476 ◆0d6Ohf/jLo :03/03/08 10:21
>>485
ひょっとしたらオレみたいのがいろんなソフトのバグを発見できるんだな。

489 名前:476 訂正 ◆0d6Ohf/jLo :03/03/08 10:21
>>487

490 名前:  :03/03/08 10:25
プロジェクトを削除したいんだけどさ、〜.vbpと 〜.vbwを削除すればいいの?

491 名前:デフォルトの名無しさん :03/03/08 10:27
なんかいきなりトリップつけ出した偽476が煽っているみたいだが無視するがよろし。

492 名前:デフォルトの名無しさん :03/03/08 10:27
>>490
意味不明。
Formだけ取り出したいなら.frmだけ隔離しる。

493 名前:デフォルトの名無しさん :03/03/08 10:28
>>490
何がやりたいのかいまいちわからないけど、プロジェクトファイルを消したいのなら
それでいいんじゃないの?

494 名前:デフォルトの名無しさん :03/03/08 10:29
もうすっかり春です

495 名前:  :03/03/08 10:30
>>493
あんがと

496 名前:476 ◆0d6Ohf/jLo :03/03/08 11:02
たくさんの大麻コントロールやDoEventsを使うとシングルスレッドのVBをマルチスレッドのような感じにできるみたいだがどうよ?

497 名前:デフォルトの名無しさん :03/03/08 11:04
>>496
そら、マルチタスクってタイマー割り込みが元だからなぁ。

498 名前:デフォルトの名無しさん :03/03/08 11:07
VB1.0でマターリと勉強してるんですが、なんか使いにくいです
もうこんな馬鹿らしいことは止めにします

499 名前:476 ◆0d6Ohf/jLo :03/03/08 11:09
>>497
その裏技的割り込みで、
Timer1イベント。Inet1.OpenURLでjpgをダウンロードしつつ、
Timer2イベント。Inet2.OpenURLでzipをダウソできたりできそう。

500 名前:デフォルトの名無しさん :03/03/08 11:11
>>498 ずいぶんと古いOS使ってるな(プ

501 名前:デフォルトの名無しさん :03/03/08 11:14
>>499
でも、問題は非プリエンティブって事だな。

どこかで時間のかかる処理を入れると他のタイマーイベントの発生が遅れる。
まぁ、そのためのDoEventsか。

そう言えば、DoEventsした後に同じタイマーのイベントが発生したらややこしい気もするなぁ・・・。
再入可能をしっかり頭に入れて設計しないとはまりそう。


502 名前:邪神476 ◆0d6Ohf/jLo :03/03/08 11:22
>>501
オレもややこしくなるとは思ってた。

またあとであばれる。
〜476さん外出中〜

503 名前:デフォルトの名無しさん :03/03/08 11:53
リアルタイムシステムをVBで作るなよな〜
Windows自体もあやしいのに。

504 名前:デフォルトの名無しさん :03/03/08 12:08
>>503
>リアルタイムシステムをVBで作るなよな〜

普通にそんな奴はいない。

505 名前:デフォルトの名無しさん :03/03/08 12:33
>>504
ごめんなさい。
自分の思ったとおりに、見せようと思えばリアルタイムではなく、
台本を作って映画のようにプログラムを作らなければいきません。
と言いたかったのです。

506 名前:デフォルトの名無しさん :03/03/08 12:39
>>505
>Windows自体もあやしいのに。

より、彼はハードリアルタイムかかなりシビアなソフトリアルタイムなシステムのことを言ってるんだと思われ。

騙ってまで設計の話に持って行こうとする理由がわからん。

507 名前:471 :03/03/08 12:57
だれか>>471の質問を答えることのできるかた教えてください(><

508 名前:世直し一揆(コピペ推奨) :03/03/08 12:59
<血液型A型の一般的な特徴>(見せかけのもっともらしさ(偽善)に騙されるな!!)
●とにかく気が小さい(神経質、臆病、二言目には「世間」(「世間」と言っても、同じA型を中心とした一部の人間の動向に過ぎないのだが・・・)、了見が狭い)
●他人に異常に干渉し、しかも好戦的でファイト満々(キモイ、自己中心、硬直的でデリカシーがない)
●妙に気位が高く、自分が馬鹿にされると怒るくせに平気で他人を馬鹿にしようとする
(ただし、相手を表面的・形式的にしか判断できず(早合点・誤解の名人)、実際にはた
いてい、内面的・実質的に負けている)
●本音は、ものすごく幼稚で倫理意識が異常に低い(人にばれさえしなければOK!)
●権力、強者(警察、暴走族…etc)に弱く、弱者には威張り散らす(強い者にはへつらい、弱い者に対してはいじめる)
●あら探しだけは名人級でウザイ(例え10の長所があってもほめることをせず、たった1つの短所を見つけてはけなす)
●基本的に悲観主義でマイナス思考に支配されているため性格がうっとうしい(根暗)
●単独では何もできない(群れでしか行動できないヘタレ)
●少数派の異質、異文化を排斥する(差別主義者、狭量)
●集団によるいじめのパイオニア&天才(陰湿&陰険)
●悪口、陰口が大好き(A型が3人寄れば他人の悪口、裏表が激しい)
●他人からどう見られているか、人の目を異常に気にする(「〜みたい」とよく言う、
世間体命)
●自分の感情をうまく表現できず、コミュニケーション能力に乏しい(同じことを何度
も言ってキモイ)
●表面上協調・意気投合しているようでも、腹は各自バラバラで融通が利かず、頑固(本当は個性・アク強い)
●人を信じられず、疑い深い(自分自身裏表が激しいため、他人に対してもそう思う)
●自ら好んでストイックな生活をしストレスを溜めておきながら、他人に猛烈に嫉妬
する(不合理な馬鹿)  
●後で自分の誤りに気づいても、強引に筋を通し素直に謝れない(切腹するしかない!)●自分に甘く他人に厳しい(自分のことは棚に上げてまず他人を責める。包容力がなく冷酷)
●男は、女々しいあるいは女の腐ったみたいな考えのやつが多い(例:「俺のほうが男
前やのに、なんでや!(あの野郎の足を引っ張ってやる!!)」)

509 名前:デフォルトの名無しさん :03/03/08 13:00
あまりにもタイマーにこだわっているもので、
ごめんなさい。
spawnすればいいな。

510 名前:デフォルトの名無しさん :03/03/08 18:31
VBのタイマーは、割り込みではないから再入処理は考えなくても可。
コードの実行中には、タイマーは起動すらしません。

リアルタイム処理をやりたい場合は、Interval値を少なめにしておいて、
(たとえばInterval=10)
以下のように自前で実行タイミングを管理すればOK。


'一秒に1回の割合で動く処理の場合
Sub Timer1_Timer()
  Static Old as String

  If Time$ <> Old Then
    Old = Time$
    'ここに目的の処理を書く
  End If
End Sub


511 名前:デフォルトの名無しさん :03/03/08 19:09
>>510
いや、途中でdoeventしたときのお話。

512 名前:デフォルトの名無しさん :03/03/08 22:03
IEみたいな移動できるツールバーってできないんですか?
どなたかお願いします

513 名前:デフォルトの名無しさん :03/03/08 22:30
>>512
こもんこんとろーるず-3のCoolBarのことですか?

514 名前:デフォルトの名無しさん :03/03/08 22:37
>513
どうもありがとうございます
でも使い方が

515 名前:デフォルトの名無しさん :03/03/09 20:57
Google逝k

516 名前:デフォルトの名無しさん :03/03/09 22:00
"aaa + bbb" と言う文字列入力に対して、
変数aaaと変数bbbを合計した数値を出力する方法は無いでしょうか?
ただし、変数名(aaaやbbb)は、
別途に初期化された内、どの変数が指定されてくるか判らないとして。
(aaa + ccc とかもありえる)
よろしくお願いします。


517 名前:デフォルトの名無しさん :03/03/09 22:17
>>516
よく分からないが、別途サブルーチン作って引数として渡せばいいんじゃん?

518 名前:デフォルトの名無しさん :03/03/09 22:19
>>516
直接可能なやり方は知らぬが。
CallByName と Property を使って誤魔化せるかな
めんどくさいが。

519 名前:デフォルトの名無しさん :03/03/09 22:35
>>516
文字列がかならずaaa+bbbという7文字で、さらに数字部分が001のような3桁表示と決まってるなら、Left関数とRight関数を使って、左から3文字、右から3文字抜き出すのが一番簡単だ。

520 名前:516 :03/03/09 22:49
レスありがとうございます。

>>517
そうです。引数などで渡して、その内容を判別させたいのです

>>518
CallByName・・
どうするにしてもクラスとかを一つ作ってからかぁ、たしかにめんどそうですねぇ
使った事無いのでてさぐりですが。

>>519
いえ、aaaなどは数字では無く、
正に英字の"aaa"などの文字列が来ます。
それを読み、aaaならば、
実際にプログラム内に持ってる変数「aaa」の内容を参照して……
とかしたいので、文字列とを内部変数と結びつける・・というかなんというか、そういう風なやり方知りませんでしょうか?


やはり、変数名を決めて、全てのパターンでif〜とかしかないんでしょうか・・


521 名前:デフォルトの名無しさん :03/03/09 23:04
というか、そんな仕様でいいのかと。

522 名前:ひきプロ :03/03/09 23:07
>>520
type VAR_T
  name as string
  var as long
end type
みたいな構造体を作って、
Dim a(100) as VAR_T
で変数作成、実際にいじる時はループでnameを探すとか

523 名前:デフォルトの名無しさん :03/03/09 23:16
コレクション作ってKeyに文字列突っ込め。

524 名前:ひきプロ :03/03/09 23:17
あー、コレクションだったら無尽蔵に要素を増やせそうですね。
管理する手間もなさそうだし

525 名前:質問者代理 :03/03/09 23:36
コレクション?
key?
両方ともよくわからないけど
aaa+bbbをどうプログラミングしていけばいいの?

526 名前:デフォルトの名無しさん :03/03/10 01:52
前にも質問したんだけど
やっぱり分からない…だれか助けてくだされ(´・ω・`)

DBのテーブルに連結したMSHFrexGridの横に
チェックボックスを縦に並べて
ユーザに選択させる画面を作りたいんだけど
チェックボックスの状態とグリッドの各列を対応付けるいい方法が思いつかない。
グリッドがスクロールしたらチェックボックスの内容も
スクロールさせないといけないし…
マウス関係のイベントかタイマーでグリッドの表示してる部分(データセット内での位置)を
常に監視するしかないのかなぁ?


527 名前:デフォルトの名無しさん :03/03/10 01:53
VB.NETのDBGridだとセルにチェックボックスが表示できる。
VBは捨てよう。

528 名前:デフォルトの名無しさん :03/03/10 02:04
チェックボックス風の絵の切り替えではダメっすか?



529 名前:  :03/03/10 02:09
>>526
リストボックスで代用すればいいよ。同時スクロールはAPI使うけども。
API使えないんなら、やめとき。

530 名前:デフォルトの名無しさん :03/03/10 02:15
こんな時間に即レスサンクスコ。・゚・(ノД`)・゚・。

>>527
おぉなるほど!
…って残念ながら無理でつ
業務系アプリだしそんな許可おりないのさ。
なんとかVB6で…((((((^_^;)

>>528
ん〜結局は選択した時点でそのボックスがどのデータを指しているかを
知りたいのです。
Grid1画面分で表示できる件数ならなんとかなるけど、それ以上の件数で
スクロールバーで上下させられるとどうしようもなくてΣ(゚Д゚;≡;゚Д゚)アワアワ

FlexGridには「今表示しているデータの範囲」を知る手段が無いですよね?。

531 名前:続いて526 :03/03/10 02:20
>>529
なんつーかナイスアイデア!
かなりの手間になりそうですが、仕様決まってるから仕方ないか…

532 名前:デフォルトの名無しさん :03/03/10 04:10
>>516 , >525
Dim vbs As Object
Set vbs = CreateObject("MSScriptControl.ScriptControl")
vbs.Language = "VBScript"
vbs.ExecuteStatement "aaa=1"
vbs.ExecuteStatement "bbb=2"
vbs.ExecuteStatement "ccc=3"
Label1.Caption = vbs.eval("aaa + bbb")
Label2.Caption = vbs.eval("aaa + ccc")
'過去ログから引っ張り出してきた、、、

533 名前:デフォルトの名無しさん :03/03/10 04:58
追記するほどでもないけど
vbs.ExecuteStatement "aaa=" & CStr(a)
などで動的に数値は変えられるし、
Microsoft Script Control 1.0 の方を使っても作りやすいかも。
#Win95でうごいたっけかな、コレ

534 名前:デフォルトの名無しさん :03/03/10 09:13
>>408
ありがとうございました。また質問ですが、RDBとは?なんでしょうか?
ヘルプを見てみましたがよくわかりませんでした。よろしければ教えてくだ
さい。
あと、WINSOCKでlistenメソッドで接続待ちをしていれば、特にイン
ターネットに接続する処理などをしなくても接続する事ができるのでしょう
か?

535 名前:デフォルトの名無しさん :03/03/10 09:20
質問です。アウトプロセスで呼び出したactivex.exeの方から呼び出し元の
関数や変数を使うにはどうすればよいのでしょう?教えて!!

536 名前:デフォルトの名無しさん :03/03/10 09:29
>>534
1 RDB Relational Data Base
2 試してみればいいだけの話でわ?

537 名前:デフォルトの名無しさん :03/03/10 10:43
>>535
インターフェースを用意する。

538 名前:デフォルトの名無しさん :03/03/10 12:02
Right関数ではまっているのですが

strTmp = "あ1い"
strTmp = StrConv(strTmp,vbFromUnicode)

strTmpEven = LenB(strTmp,3)
strChar = Right(strTmpEven,1)

この場合にstrCharに1文字読み込んで
最後が全角文字か判定したいのですが
strCharに"1"が入ってきません
Right関数をしようした場合の1文字ってのは
文字コード変換しても2バイト分取られるものなんですか?

環境はVB6,win2000です。



539 名前:デフォルトの名無しさん :03/03/10 12:08
> strTmpEven = LenB(strTmp,3)

(゚Д゚)ハァ?

540 名前:デフォルトの名無しさん :03/03/10 12:08
>>538
なんかものすごい勘違いが含まれてる気がするがw

  Debug.Print LenB(StrConv("A",vbFromUnicode))
  Debug.Print LenB(StrConv("あ",vbFromUnicode))

この違いを考えてみれ。

541 名前:デフォルトの名無しさん :03/03/10 12:30
>>537
インターフェイスを用意するというのがよく分かりません。できれば
具体的に教えて頂けるとうれしいです。

542 名前:デフォルトの名無しさん :03/03/10 12:35
>>538
やりたい事は
LenB(Right("あ1い", 1))
だけちゃうのん?

543 名前:デフォルトの名無しさん :03/03/10 12:56
>>542
LenB(Right("あ1い2", 1))

544 名前:538 :03/03/10 12:56
>>539
>>540
>>542

激しくタイプミスでした

strTmp = "あ1い"
strTmp = StrConv(strTmp,vbFromUnicode)

strTmpEven = LeftB(strTmp,3)
strChar = Right(strTmpEven,1)

だった



545 名前:デフォルトの名無しさん :03/03/10 13:11
>>544
あんた本当に >>540 見てる?

546 名前:デフォルトの名無しさん :03/03/10 13:23
>>544 は仕様説明が十分でない
「二文字目」を取りたいなら "あ1い" -> "1", "abcde" -> "b"
strChar = Mid(strTmp,2,1)
「SJIS3バイト目」を取りたいなら "あ1い" -> "1", "abcde" -> "c"
strChar = StrConv(MidB(StrConv(strtmp, vbFromUnicode), 3, 1), vbUnicode)

547 名前:デフォルトの名無しさん :03/03/10 13:25
>>546
あんた >>538 見てる?

548 名前:デフォルトの名無しさん :03/03/10 13:25
海栗 <> 筋

549 名前:デフォルトの名無しさん :03/03/10 13:34
>>548
あんたぬるぽ?

550 名前:538 :03/03/10 13:38
こういう問題なんだけど?

dim hoge as String

hoge = "aあ"
hoge = StrConv(hoge,vbFromUnicode)
debug.print LenB(Right(hoge,1))
'Sjisに変換した文字列より1文字取得する
'1文字なので"あ"を取得しLenBに渡す
'結果は2


hoge = "あa"
hoge = StrConv(hoge,vbFromUnicode)
debug.print LenB(Right(hoge,1))
'Sjisに変換した文字列より1文字取得する
'1文字なので"a"を取得しLenBに渡すのかと思ったら
'Rightは"a"を返さず2バイト返している
'結果は2

hoge = "a"
hoge = StrConv(hoge,vbFromUnicode)
debug.print LenB(Right(hoge,1))
'Sjisに変換した文字列より1文字取得する
'1文字しか無いからか"a"を取得しLenBに渡している
'結果は1

ていうことなんだけど


551 名前:デフォルトの名無しさん :03/03/10 13:51
>>550
もしかして、Right が SJIS を考慮してくれると思ってるの?
Right は Unicode を想定してるから強制的に終端 2 byte を返すよ。
最後の例で 1 になってるのは、単にもともと Right にかける前の文字列長が
1 byte だから。

552 名前:デフォルトの名無しさん :03/03/10 13:52
>>541
こんな感じ。

'----呼出元 Module1
Public TEST2B As String

Public Sub Main()
 Dim TEST3 As New Class2
 TEST2B = "ヅら"
 Set TEST3.C1 = New Class1
 TEST3.TEST
End Sub

Public Sub TEST1B()
 MsgBox "ふが!!"
End Sub



553 名前:デフォルトの名無しさん :03/03/10 13:52

'----呼出元 Class1
Public Sub TEST1()
 Module1.TEST1B
End Sub
Public Property Get TEST2()
 TEST2 = Module1.TEST2B
End Property


'----呼出先 Class2
Public C1 As Object

Public Sub TEST()
 C1.TEST1
 MsgBox C1.TEST2
End Sub

普通は呼出元の値→呼出先のオブジェクトのプロパティに設定
呼出元のプロシージャ呼出→呼出先のイベントに反応とかする方が自然かな。

554 名前:551 :03/03/10 13:53
補足。

> 最後の例で 1 になってるのは、単にもともと Right にかける前の文字列長が
> 1 byte だから。

つまり、Len(Right("123", 5)) が 5 ではなく 3 になるのと同じ事。

555 名前:550 :03/03/10 13:59
>>551
あー文字コード変換しようが
Rightは1文字 = 2byteで処理するってことね

一度Unicodeに戻してからRightして
帰って来た値をsjisにしてLenBしたら出来たよ
サンクス

556 名前:デフォルトの名無しさん :03/03/10 14:31
> 一度Unicodeに戻してからRightして

激しく意味ねー
>>540 はどうなったんだよ

557 名前:デフォルトの名無しさん :03/03/10 14:53
ascとかじゃダメなんでしょかね

558 名前:デフォルトの名無しさん :03/03/10 15:01
ニガサンヨ♪
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>549

559 名前:550 :03/03/10 15:56
>>556
  Debug.Print LenB(StrConv("A",vbFromUnicode))
  Debug.Print LenB(StrConv("あ",vbFromUnicode))
が1と2を返すのは最初から解ってるんだよ

SJISでRight関数使っても正確に1文字取れない
RightBではバイトで取得する、オレはバイト単位では受け取りたくない

Unicodeに戻さないとRightは正常に動作しない仕様になっている
SJISの状態で1文字取得できる関数が有ったら教えてくれ


560 名前:デフォルトの名無しさん :03/03/10 16:05
>>559
????
asc(Right(str, 1))
が0〜255なら半角
それ以外なら全角じゃないの?
#半角全角という分け方もアレだが。


561 名前:デフォルトの名無しさん :03/03/10 16:06
>>559
>   Debug.Print LenB(StrConv("A",vbFromUnicode))
>   Debug.Print LenB(StrConv("あ",vbFromUnicode))
> が1と2を返すのは最初から解ってるんだよ

なら最初から書け。

> SJISの状態で1文字取得できる関数が有ったら教えてくれ

文字列を SJIS で持っていなければならない状況というのがわからんのだが・・・。

しかし、「関数」 だの 「教えてくれ」 だの言うあたり、自分で調べたり作ったりする
つもりは全く無いのね。

1 バイト目が &H81 〜 &H9F または &HE0 〜 &HFC
2 バイト目が &H40 〜 &H7E または &H80 〜 &HFC
これで判定しなさい。

562 名前:デフォルトの名無しさん :03/03/10 16:29
文字列をSJISメインで扱いたいならByte型配列に入れればよい。

563 名前:550 :03/03/10 16:31
>>561
> なら最初から書け。

的はずれな質問して何怒ってるの?

>文字列を SJIS で持っていなければならない状況というのがわからんのだが・・・。
バカかおまえは?
"dD"とか全角半角混在してる文字列からバイトで取得するのにどうやってUnicodeで取得するんだ?
Debug.print LenB("あ")
Debug.print LenB("A")
として違う値が取れるのか?

> しかし、「関数」 だの 「教えてくれ」 だの言うあたり、自分で調べたり作ったりする
> つもりは全く無いのね。

お前は共通に有ったりしても自分で関数を作るのか?
用意されている物があればそれを使うのが普通

もう解決してるからおまえは書かなくていいよ(ワラ

564 名前:550 :03/03/10 16:34
>>560
ASCをつかってもいいんですけど
そのRightが正しく1文字を返さないんですよSJISだと

565 名前:デフォルトの名無しさん :03/03/10 16:34
春ですなあ

566 名前:デフォルトの名無しさん :03/03/10 16:36
>>564
申し訳ないが、ascを使って正しく一文字返さないコードをだしてくれないでしょうか?

567 名前:デフォルトの名無しさん :03/03/10 16:37
正直、550 が何に癇癪起こしてるのかわかんねー。
551 も書かなきゃ良かった。

568 名前:デフォルトの名無しさん :03/03/10 16:40
>>563
> > なら最初から書け。
>
> 的はずれな質問して何怒ってるの?

そりゃ怒るでしょ。
ひょっとしてあんた、礼儀を知らないヒッキーさんですか?

569 名前:デフォルトの名無しさん :03/03/10 16:42
ぬるぽキタ━━━━━(゚∀゚)━━━━━!!!!

570 名前:デフォルトの名無しさん :03/03/10 16:45
>>566
>>544 を見れば、何でこんなアフォな話になったかわかる。

571 名前:デフォルトの名無しさん :03/03/10 17:18
以下のようなソースで優先度を上げてプログラムを実行したいのですが

Declare Function GetCurrentThread Lib "kernel32" () As Long
Declare Function GetThreadPriority Lib "kernel32" (ByVal hThread As Long) As Long
Declare Function SetThreadPriority Lib "kernel32" (ByVal hThread As Long, ByVal nPriority As Long) As Long
Public Const THREAD_PRIORITY_HIGHEST = 2

ソース
Dim Get_TH As Long
Dim Get_PR As Long
Dim Set_TH As Long
Dim Set_PR As Long
Dim Set_RC As Long

Get_TH = GetCurrentThread
Get_PR = GetThreadPriority(Get_TH)
Set_TH = Get_TH
Set_PR = THREAD_PRIORITY_HIGHEST
Set_RC = SetThreadPriority(Set_TH, Set_PR)

実行後、タスクマネージャみても上がってないょ(´・ω・`)

MSDN見ると
Windows NT: このハンドルは、THREAD_SET_INFORMATION アクセスを持っていなければなりません。

って書いてあるんだけど、これに関して調べても見つからないょ・・・

解かる人いませんか?


572 名前:571 :03/03/10 17:19
あ、環境はWin2000(SP2)+VB6(SP5)です。


573 名前:デフォルトの名無しさん :03/03/10 17:25
>>571
スレッドを作るときに設定できるアクセス権の話?
既に存在するスレッドのアクセス権を変更できるかは知らんけど。

574 名前:デフォルトの名無しさん :03/03/10 18:43
>>573
スレッドって、マルチタスクOSで言うところのスレッドのこと?
それとも、BBSのスレッドのこと??

575 名前:デフォルトの名無しさん :03/03/10 18:44
>>574
お前ここにスレ立てるときアクセス権なんぞ設定したか?
まぁ、権利関係は確かに存在するか・・・。

576 名前:デフォルトの名無しさん :03/03/10 18:49
>>575
釣れた(w

(^▽^)

577 名前:デフォルトの名無しさん :03/03/10 18:50
>>576
釣れた(w

(^▽^)


578 名前:デフォルトの名無しさん :03/03/10 18:50
>>577
釣れた(w

(^▽^)

579 名前:デフォルトの名無しさん :03/03/10 19:05
        /  -‐‐‐‐‐‐‐--´´ ̄ ''''''''''''''''''''''''ー‐----、/
      /   ノ   ▲                 ヽ  ̄ ̄
     .i´    i´     ■  ∧               ヽ
     i    i      ■  .i.●i      ;::;:;:;:;       ヽ
    i     i     ■  ∨ノ   ,-、 ;:;:;/ノヾヽ    ;:;:i
    i     `、    ‐-   ー    ・ ;:;:;《 |  | )   ;:;:;:;::i
    i     ´´    -‐   ‐    ・ ;:;:;:《 |  | )   :;:;:;:;:;)
     i     i     ■  ∧ヽ  `‐´ ;:;丶ヽノノ    :;:;:;::i
     .i    i     .■  i.●i      ;:;;:;::       ;:;:;i 
     i、    i     ■  ∨                ノ
      ヽ   `ゞ   .▼                 /  _
       ヽ、    ‐‐‐‐‐‐‐‐‐‐、____,,,,,,,,,,,,,,,,,,,,,,,,,----‐‐‐ヽ
ニキータ

580 名前:516 :03/03/10 20:16
色々とありがとう御座いました(^▽^
スクリプトコントロールはつかったことないので、ためしてみようかとおもいます。

581 名前:540 :03/03/10 20:48
春だなぁ。
ま、風物詩と思えば腹も立たんか。

>>571
漏れが昔書いたソースだと

  hThread = GetCurrentThread()
  ret = SetThreadPriority(hThread, THREAD_PRIORITY_HIGHEST)

こんなんで動いてるな。

  hProcess = GetCurrentProcess()
  ret = SetPriorityClass(hProcess, HIGH_PRIORITY_CLASS)

こーいうのも動いてる。Win2Ksp3+VB6sp5。

582 名前:デフォルトの名無しさん :03/03/10 22:08
VBの DHtmlEdit コントロールで ボタンやテキストボックス などを
貼り付ける方法 ご存知の方いらっしゃいますか

また DHtmlEdit の使い方が説明されているHPも
お願いします


583 名前:デフォルトの名無しさん :03/03/10 22:12
VB6からUnixTime(1970/01/01 から数えた秒数)を求めたり
日付時間を指定してそのUnixTimeを作ったりしたいのです。
2chのスレッドIDの決定もこれですよね。

単に秒数を求めればいいのではと思ったのですが
うるう年とかいろいろあってもうどうしたらいいやら、です。

584 名前:583 :03/03/10 22:14
訂正

VB6からUnixTime(1970/01/01 から数えた秒数)を求めたり
UnixTimeから日時時間を求めたりしたいのです。
(要は Date型<->UnixTime の相互変換関数が作りたい)

585 名前:デフォルトの名無しさん :03/03/10 22:27
>>584
DateDiffで調べれ

586 名前:583 :03/03/10 22:34
>>585
時間差を秒で返させればいいのね?
ちょいと試してみます。激しく感謝。

587 名前:デフォルトの名無しさん :03/03/10 22:36
  ∋8ノノハ.∩
   川o・-・)ノ <先生!こんなのがありました!
__/ /    /   
\(_ノ ̄ ̄ ̄\
||ヽ|| ̄ ̄ ̄ ̄||
 ...|| ̄ ̄ ̄ ̄||
http://saitama.gasuki.com/saitama/

588 名前:デフォルトの名無しさん :03/03/10 22:42
>>583
time_t ですよね。
わたしならCでDLL作るかな。

589 名前:ひきプロ :03/03/10 23:41
>>583
'time_tから文字列へ変換
Public Function GetTimeString(time_t As Long) As String
Dim t As Long, leap As Long, year As Long, month As Long, day As Long, hour As Long, minute As Long, second As Long, s As String, i As Long
Dim m(1 To 12) As Long '各月の日付を入れる
m(1) = 31: m(2) = 28: m(3) = 31: m(4) = 30: m(5) = 31: m(6) = 30: m(7) = 31: m(8) = 31: m(9) = 30: m(10) = 31: m(11) = 30: m(12) = 31
t = time_t
leap = Int(((t / 31536000) + 1) / 4) 'うるう年でずれた日数の計算
year = ((t - leap) \ 31536000) '年の計算
year = year + 1970 '1970年から足す
day = ((t Mod 31536000) \ 86400) - leap '日の計算
hour = (t Mod86400) \ 3600 '時間の計算
minute = (t Mod 3600) \ 60 '分の計算
second = (t Mod 60) '秒の計算
If (year Mod 4) = 0 Then '2月の日数を計算
m(2) = 29
If (year Mod 100) = 0 Then
m(2) = 28
If (year Mod 400) = 0 Then m(2) = 29
End If
End If

590 名前:ひきプロ :03/03/10 23:41
day = day + 1 '1月1日からの経過日数から月・日を求める
For i = 1 To 12
If day > m(i) Then
day = day - m(i)
Else
month = i
Exit For
End If
Next
hour = hour + 9 'UTCから日本の時間分足す
s = year & "年" & month & "月" & day & "日 " & hour & ":" & minute & ":" & second
GetTimeString = s
End Function

591 名前:デフォルトの名無しさん :03/03/10 23:50
>>589
なんでお前はそんなクソ関数作るんだ?
?datediff("s",#1970/01/01 00:00:00#,#1970/01/02 00:00:00#)
?dateadd("s",86400,#1970/01/01 00:00:00#)

592 名前:デフォルトの名無しさん :03/03/10 23:52
time_t = DateDiff("s", #1/1/1970#, dtmVB) - 32400 'JST - 9

これでいいんじゃなかったっけ。

593 名前:ひきプロ :03/03/10 23:56
ショック!

594 名前:デフォルトの名無しさん :03/03/11 01:16
VBとはちょっと違う畑の質問になるかもしれませんが
とあるDLLの中の関数の名前一覧を知る方法ってないでしょうか?

VB用の関数仕様の資料はあるのに「その関数が入っているDLLの名前」だけが
書いてない…。


595 名前:デフォルトの名無しさん :03/03/11 02:04
export されてんなら Dependency Walker とかで見れば。

596 名前:594 :03/03/11 08:31
>>595
有難うございましたm(_ _)m

ついでにもうひとつ質問なのですが
aaa.DLL内のbbbという関数について、

標準モジュールxxxで
Public Declare Function ccc Lib "aaa" Alias "bbb" _
(ByVal 引数 As String, _
) As Long
と記述し、フォームのコードで
Ret_Stats = xxx.ccc(引数)
として呼び出しているのですが、いざ実行すると「ファイルが見つかりません。"aaa"」と
エラーが出てしまいます。
一応aaa.DLLは C:\Program Files\Microsoft Visual Studio\VB98 に放り込んであるのですが
DLLってどこか特定の場所にある必要があるんでしょうか?



597 名前:デフォルトの名無しさん :03/03/11 08:58
>>596
環境変数Pathにないパスなら、Declare宣言でフルパス指定しる。

Public Declare Function ccc Lib "C:\Program Files\Microsoft Visual Studio\VB98\aaa.dll" Alias "bbb" _
(ByVal 引数 As String, _
) As Long

パスが通っているフォルダに配置されているなら、

Public Declare Function ccc Lib "aaa" Alias "bbb" _
(ByVal 引数 As String, _
) As Long

で問題なし。

598 名前:571 :03/03/11 09:20
>>581
お返事ありがとぅ

でも、そのソース組み込んだEXE実行しても
タスクマネージャの基本優先度は通常のままだょ・・・

も う だ め ぽ (´つω・`)


599 名前:デフォルトの名無しさん :03/03/11 09:38
>>598
タスクマネージャでの優先度表示はプロセスの優先度だったよーな…。
スレッドの優先度を見たいならSpi++でも使ってみて。

プロセスの優先度がまずあって、その中でスレッドの優先度が細分化
されてる、ってな感じだったかと思う。

600 名前:デフォルトの名無しさん :03/03/11 10:32
>>599
sp"y"++

>>569
ガッ

601 名前:571 :03/03/11 10:41
うわあーいヽ(=´∇`=)ノ、できたょ!

単に
HIGH_PRIORITY_CLASS
の初期値がダメなだけでした・・・

答えてくれた方々、本当にありがとうございました


602 名前:デフォルトの名無しさん :03/03/11 12:14
以下の方法が最善かと
開発環境 → Systemディレクトリ
EXE実行 → EXEファイルと同じ場所

Declare の DLL名 のところはファイル名だけでOK

603 名前:596 :03/03/11 12:40
>>597,602
ありがd。
やっぱそーだよね。
でも漏れのPCだと、それやっても
同じエラーになるんだよ…なんでだろ?


604 名前:602 :03/03/11 12:48
>>603

もしやそのDLL VBで作ったやつ?
VBで作ったDLLは Declare で宣言できないよ

605 名前:デフォルトの名無しさん :03/03/11 13:09
>>604
なぬぅ
資料によるとVB4で作ってるらしいのだが…。
(こっちの開発PCはVB6)
「参照設定」で指定しようとしても
「指定されたファイルへの参照は登録できません」
て出るし。

てことは、八方塞がり!?

606 名前:602 :03/03/11 13:25
>>605
もし DLLのソースがあるのなら再度コンパイル

無かったら REGSVR32.EXE でレジストリから消してから再度登録?
REGSVR32.EXE の 使い方は Windowsディレクトリ を REGSVR32.EXE で検索して実行してみぃ

ちなにに REGSVR32.EXE は ActiveX をレジストリに登録解除するも

607 名前:583 :03/03/11 14:07
>>588-592
何か流れで直にソースまで出てるしっ・・・
お陰で文句付けようのない動作してます。
どうもありがとうございました。

608 名前:デフォルトの名無しさん :03/03/11 15:15
すみません、質問させてください。
下のような感じで、AddDataが呼ばれるたびに
構造体の動的配列の要素数を1つ増やしてデータを入れていくということをやりたいのですが、
このままだと、u(1)から値が入るようになってしまいます。
u(0)から値を代入していくにはどのようにすれば良いのでしょうか?

Type USER
x As String
y As String
End Type

Dim u() As USER

Public Sub InitData()
'初期化
ReDim u(0) As USER
End Sub

Public Sub AddData(s1 As String,s2 AsString)
ReDim Preserve u(UBound(u) + 1) As USER
u(UBound(u)).x = s1
u(UBound(u)).y = s2
End Sub

String型だと初期化のところでu=Split("")とやれば空の配列が作れると言うのを
ネット上で見たのですが、構造体の場合はどうすればよいのでしょうか?
よろしくお願いします。

609 名前:デフォルトの名無しさん :03/03/11 15:19
>>608
プロシージャ内に静的変数入れて、条件分けしる。

610 名前:デフォルトの名無しさん :03/03/11 15:23
ReDim u(-1 to -1) As USER

とやれば、一応空(のように見える)配列ができるぞ。
あんまし意味無いけど…。

611 名前:デフォルトの名無しさん :03/03/11 15:24
visual basic は買わないと手に入らないですか?
買うならいくらぐらいですか?

612 名前:デフォルトの名無しさん :03/03/11 15:26
>>610
分かっていると思うけど配列の大きさは1だね。
u(-1)としてアクセスできる。

613 名前:608 :03/03/11 15:27
>>609
>>610

ありがとうございます。やってみます。

614 名前:デフォルトの名無しさん :03/03/11 15:30
>>608
Type USER
x As String
y As String
End Type

Dim u() As USER
Dim f As Boolean

Public Sub InitData()
'初期化
ReDim u(0) As USER
f = False
End Sub

Public Sub AddData(s1 As String, s2 AsString)

If f Then
  ReDim Preserve u(UBound(u) + 1) As USER
End If
u(UBound(u)).x = s1
u(UBound(u)).y = s2
f = True
End Sub

615 名前:デフォルトの名無しさん :03/03/11 15:36
>>608
構造体じゃなくてクラスにしてコレクション使うって手もあるけどな。


616 名前:608 :03/03/11 16:00
条件分けすることによりできました。
みなさん親切にありがとうございました。

617 名前:デフォルトの名無しさん :03/03/11 17:47
>>611
買わなくても手に入る場合がある。

618 名前:デフォルトの名無しさん :03/03/11 17:51
そういやCCEってまだ手に入るのかな?

619 名前:デフォルトの名無しさん :03/03/11 19:13
pictureをクリックした時に音を出すにはどうしたらいいですか?

620 名前:デフォルトの名無しさん :03/03/11 19:16
>>619
イベントドリブンの基礎です。

621 名前:デフォルトの名無しさん :03/03/11 19:17
>617

つう(r

622 名前:デフォルトの名無しさん :03/03/11 19:19
>>621
>>618のフォローが理解できないなら(略

623 名前:デフォルトの名無しさん :03/03/11 19:30
>>620
なんてやつですか?

624 名前:デフォルトの名無しさん :03/03/11 20:13
>>623
イベントドンブリの基礎です。
C丼( = オブジェクト指向イベントドンブリ言語)で勉強してください。

625 名前:デフォルトの名無しさん :03/03/11 20:58
お聞きしたいのですが
16進数のことがいまいち分からなく

a * 256
を十六進数であらわすと
a and &hFF
でいいのでしょうか。

626 名前:デフォルトの名無しさん :03/03/11 21:03
>>625
Debug.Print で、お試しあそばせ

627 名前:デフォルトの名無しさん :03/03/11 21:03
hex(256)

628 名前:ひきプロ :03/03/11 21:04
積算と論理積は同じモノではないような気が

629 名前:デフォルトの名無しさん :03/03/11 21:16
お返事ありがとうございます。
まだまだ勉強が足りないようです。
実際には以下の式を16進数であらわしたいと思っています

Int(a / 65536)

BitwiseAnd(a / &h10000, &hFFFF)

この二つはおんなじ効果でしょうか?それとも微妙に数字がかわってくると考えた方がいいでしょうか。

630 名前:デフォルトの名無しさん :03/03/11 21:19
>>629
REALBasicのほうで聞いては?

631 名前:デフォルトの名無しさん :03/03/11 21:21
Mac板のREALbasicスレで以前お聞きしたのち
いろいろ探っていたんですが、微妙に違うのではないかと
int()関数さえあればこんな悩まなくてすむのですが,,,

632 名前:デフォルトの名無しさん :03/03/11 21:23
>>625
ぜんぜん違う。

>>629
違う。
それに、BitwiseAnd()は、VB.NETの関数だろ? スレ違いだ。


633 名前:デフォルトの名無しさん :03/03/11 21:24
>>631
違うのではないかという根拠は?
0,0,0,0から255,255,255,255までの数をチェックすればわかることですが。
(from REALbasicスレより)

634 名前:632 :03/03/11 21:27
VB.NET じゃなくて、.NET Framework か。

>>631
C言語のビット演算について調べみたら?


635 名前:デフォルトの名無しさん :03/03/11 21:35
ありがとうございます。
Cのビット関数で検索してみます。

636 名前:デフォルトの名無しさん :03/03/11 21:37
失礼します。VBど素人です。
Sendkeysを使わないで「元に戻す」をできるようにするには
どのようにしたら良いでしょうか。
宜しくお願いします。

637 名前:デフォルトの名無しさん :03/03/11 21:39
>>636
何を元に戻すのだ

638 名前:デフォルトの名無しさん :03/03/11 21:41
Sendkeys"^z" と同じことを別の方法で出来ないかということです。

639 名前:デフォルトの名無しさん :03/03/11 21:45
>>638
http://www.remus.dti.ne.jp/~y-mac/teclib/textundo.htm

640 名前:636 :03/03/11 21:47
>>639
ありがとうございます!

641 名前:デフォルトの名無しさん :03/03/11 21:54
ずっと気になってたんだけど・・・




(*´д`*)アハァ…


このつの名前なんですか?

642 名前:デフォルトの名無しさん :03/03/11 21:58
>>641
あなたの脳内で命名してやって下さい。

643 名前:1 ◆ExGQrDul2E :03/03/11 22:46
>>641
ビスケタン
半角二次元版にビスケスレがある。

644 名前:デフォルトの名無しさん :03/03/11 22:59
WindowsXPProSP1 + VB6SP5 の環境で
SHGetValue で REG_DWORD の型の値を取得すると
どんな値でも0になってしまいます。

SHSetValueは正常にセットされるのですが・・・



645 名前:デフォルトの名無しさん :03/03/11 23:01
SuperTagEditorみたいな直接編集できるGridは
VBでは無いのでしょうか。

FrexGridにTextbox移動させて重ねるしかないのでしょうか。

646 名前:デフォルトの名無しさん :03/03/11 23:04
>>625
a shr 8

647 名前:デフォルトの名無しさん :03/03/11 23:38
>>644
データとコード吊るせ! 話しはそれからだ。

648 名前:644 :03/03/12 00:18
ソースです。

環境はWindowsXPProSP1 + VB6SP5
testidに数値がセットされていても0が返ってきてしまいます。
よろしくお願いします。

Private Sub DispInfo()

'レジストリから値を取得
Dim lngData As Long

lngData = 0
Call SHGetValue(HKEY_CURRENT_USER, _
"Software\test", _
"testid", _
REG_DWORD, _
ByVal lngData, Len(lngData))

If lngData <> 0 Then
debug.print lngData
End If

End Sub

649 名前:1 ◆ExGQrDul2E :03/03/12 00:23
>>641
アポ

650 名前:デフォルトの名無しさん :03/03/12 00:33
VBスレマスコットのこいつ↓
(*´д`*)アハァ…
只今、名前募集中です。

ちなみに、こんなカスタマイズどうよ?

  v(*´д`*)b <アハァ…


651 名前:デフォルトの名無しさん :03/03/12 00:37
ブビタン

652 名前:デフォルトの名無しさん :03/03/12 00:45
>>650
玉造

653 名前:デフォルトの名無しさん :03/03/12 00:48
ブビタンいいね!
語尾はもちろん「ブビ」で。
まだまだ募集中です。
次スレの1でお披露目といきましょうか。

654 名前:デフォルトの名無しさん :03/03/12 00:54
>>653
ヴォボタン
(一部地方放送禁止)



655 名前:デフォルトの名無しさん :03/03/12 00:58
>>648
Len()は文字列の長さを返す。
Long型の整数に使うのは無茶苦茶。
しかし、そんなレベルでよくAPI使うなあ。


656 名前:デフォルトの名無しさん :03/03/12 01:01
>>655
…?

657 名前:655 :03/03/12 01:16
>>648はこんなの書いてる。
Dim lngData As Long
Len(lngData)
debug.print lngData


658 名前:デフォルトの名無しさん :03/03/12 01:18
>>648
何故肝心のDLL宣言を示さない!
何故戻り値を見ない!
ポインタの意味を勉強汁!

Dim lngData As Long
Dim dwRet As Long
Dim dwType As Long
Dim cbData As Long

dwType = REG_DWORD
cbData = Len(lngData)

lngData = 0
dwRet = SHGetValue(HKEY_CURRENT_USER, _
"Software\Microsoft\Dialer", _
"Folders", _
dwType, _
lngData, cbData)

659 名前:デフォルトの名無しさん :03/03/12 01:28
>>655
Len 関数

指定した文字列の文字数または >> 指定した変数に必要なバイト数 << を表す長整数型 (Long) の値を返します。

660 名前:658 :03/03/12 01:34
>>655 ヾ(・・;)

661 名前:デフォルトの名無しさん :03/03/12 02:11
>>636
KeyPressイベントでKeyAscii=26
ま、冗談だけどな。


662 名前:デフォルトの名無しさん :03/03/12 02:31
Private Sub Form_Load()
  Picture1.Circle (400, 400), 400
End Sub

ってやっても円がかけません。
どうにかして直す方法はないのでしょうか?
お願いします。

663 名前:デフォルトの名無しさん :03/03/12 02:54
>>662
Private Sub Form_Load()
Picture1.AutoRedraw = True
  Picture1.Circle (400, 400), 400
End Sub


664 名前:662 :03/03/12 03:05
>>663
ありがとうございます!

665 名前:デフォルトの名無しさん :03/03/12 09:18
UserControl オブジェクトを引数として渡すには?
渡した先で次のようなんを実行したいんだけど
UserControl.Controls.Add("VB.PictureBox", "hoge")

666 名前:655のレベルの高さに感動した! :03/03/12 09:18
655のレベルの高さに感動した!

667 名前:(T_T) :03/03/12 09:40
なぜ、VB製のソフトは糞だと言われるのでしょうか?

668 名前:デフォルトの名無しさん :03/03/12 09:55
糞ソフトの含有率が高いから。
裾野が広いから、そのぶん糞も増えるのだな。良質/糞ソフト比がとても悪い。
色遣いがものすごいソフトは大抵VBだったりするしなぁ。
プログラム技術以前の問題がある糞も多いと思われ(苦笑

669 名前:デフォルトの名無しさん :03/03/12 09:59
>>668
いや、作る奴が作るとなかなか良いもんをageてくる。
たまに両ソフトがVBで悔しい思いをするよ。

S/Nが激しく低いのは同意。なぜかボタンがでかかったりな。

670 名前:デフォルトの名無しさん :03/03/12 09:59
色づかいとVBは関係ねーだろw

厨房っぽいGUIは大体VB

671 名前:デフォルトの名無しさん :03/03/12 10:02
VBはプログラム界のホームページビルダーだ!

672 名前:デフォルトの名無しさん :03/03/12 10:07
VBで作られてた公開されている良ソフトって何かある?

673 名前:デフォルトの名無しさん :03/03/12 10:11
らるち〜
 昔のワレザー必携ツール

674 名前:デフォルトの名無しさん :03/03/12 10:13
未だにらるち〜がでてくるあたりに問題の根深さがありそうな気もするな…
まぁ、VBだと気づかずに使ってるアプリもけっこうありそうだけど。

675 名前:デフォルトの名無しさん :03/03/12 10:14
>673
俺も同じこと考えてた。

676 名前:デフォルトの名無しさん :03/03/12 10:15
極窓

677 名前:デフォルトの名無しさん :03/03/12 10:27
Winのアプリの標準仕様知らん香具師が多いでしょ、
VBしかしない連中には。
一応、Windowsにもできる限り守らなきゃならない標準仕様があるのに、
VBではいとも簡単に無視できる。
よく、無茶で勉強してないGDI作って、OSのバージョンアップの際、ボロが出るソフトって多いよな。


678 名前:デフォルトの名無しさん :03/03/12 10:31
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´_ゝ`)< ふーん 、でたとえばどのソフト?
  (    )  \_____
  | | |
  (__)_)

679 名前:デフォルトの名無しさん :03/03/12 10:32
>>677
VCでも簡単に無視できますが、何か?

680 名前:デフォルトの名無しさん :03/03/12 10:34
>>672
Winny BBS Viewer

681 名前:デフォルトの名無しさん :03/03/12 10:39
>677

>一応、Windowsにもできる限り守らなきゃならない標準仕様があるのに、

                    ,イ^i
                   ,イ::::  l
                  /::::::::   l
                 /::::::::::    {       /|
               /::::::::      `-、_  /:: {
              /:::::::::::    /       ̄  __ l
             ./:::::::::::         :::::\:::... \ i
             /:::::::::::          ::::::::::\:::: 、 {
             |:::::::::::.            :::::::::_ゝ:::  !
             |::::::::::::.       ):.`ー..____' /:::  |  そんなの勝手だろ
             .l:::::::::::::.         ヽー─フ::   /   プッ
             ヽ::::::::::. ___           ,/
               \::/`ー---‐^ヽ        /
                l:::      l         /
           _ /,--、l::::.      ノ       l
       ,--、_ノ:: `ー'::   、ミー---‐,,l        \
      ,/   :::         i ̄ ̄  |         \
     /:::::::.        l:::    l:::::::   l           \
    l:::::::::::.   l:::    !::    |:::::::   l            \
    |:::::::::l::::  l:::    |::    l:::::     l              l
    |::::::::::l:::.   }:::   l:::::,r-----    l               l
    ヽ::::::::l::::   ト:;;;;;;;/-/__...........  /
    /\::::`ー‐'  / l__l;;;;;;;;;;;/
  /   `           /

682 名前:デフォルトの名無しさん :03/03/12 10:40
自分の思っている、規約にそぐわないGDIを実現するため、
用途の異なるコントロールを使うヤツ多すぎ。

683 名前:デフォルトの名無しさん :03/03/12 10:42
>667
・ランタイム必須
・OCXが無いと何も出来ない
・実行速度が遅い
等々。

でも、一番大きな理由は
「厨が作ったソフトの比率が異常に高い」
って事だと思われ。

684 名前:デフォルトの名無しさん :03/03/12 10:42
>>681
いや、勝手なのは勝手だけど、
GDIが糞、操作性が糞、バージョンアップにも対応できない糞ソフトを作ってるのは、
オマイみたいな香具師なんだけどな。
間違った使い方した物の、規格が変わったのをM$のせいにして無いか?


685 名前:デフォルトの名無しさん :03/03/12 10:48
>規約にそぐわないGDIを実現するため、規約にそぐわないGDIを実現するため、

意味が不明です。

686 名前:デフォルトの名無しさん :03/03/12 10:50


                    ,イ^i
                   ,イ::::  l
                  /::::::::   l
                 /::::::::::    {       /|
               /::::::::      `-、_  /:: {
              /:::::::::::    /       ̄  __ l
             ./:::::::::::         :::::\:::... \ i   
             /:::::::::::          ::::::::::\:::: 、 {   GDIが糞なのはセンスの問題
             |:::::::::::.            :::::::::_ゝ:::  !  センスないやつは標準仕様で作れ
             |::::::::::::.       ):.`ー..____' /:::  |  あとは>684の妄想話
             .l:::::::::::::.         ヽー─フ::   /   プッ
             ヽ::::::::::. ___           ,/
               \::/`ー---‐^ヽ        /
                l:::      l         /
           _ /,--、l::::.      ノ       l
       ,--、_ノ:: `ー'::   、ミー---‐,,l        \
      ,/   :::         i ̄ ̄  |         \
     /:::::::.        l:::    l:::::::   l           \
    l:::::::::::.   l:::    !::    |:::::::   l            \
    |:::::::::l::::  l:::    |::    l:::::     l              l
    |::::::::::l:::.   }:::   l:::::,r-----    l               l
    ヽ::::::::l::::   ト:;;;;;;;/-/__...........  /
    /\::::`ー‐'  / l__l;;;;;;;;;;;/
  /   `           /

687 名前:デフォルトの名無しさん :03/03/12 10:52
>667

なんどもいわれてるが、
VBは厨房でも触れるソフトだからが最大の理由だよボケ

688 名前:デフォルトの名無しさん :03/03/12 11:01
GDIってグラフィックカードを統一的に扱うためのAPIじゃないの?
コントロールかなんかと(もしくはGUIと)勘違いしてる?

689 名前:デフォルトの名無しさん :03/03/12 11:17
オールAPIで行け!!

690 名前:デフォルトの名無しさん :03/03/12 11:19
GDI Graphics Device Interface
GUI Graphical User Interface



691 名前:デフォルトの名無しさん :03/03/12 11:22
>>690
よって


規約にそぐわないGDIを実現


は、直接グラフィックカードを叩いて独自の描画用インターフェースを実装すると言うこと。
VBユーザってすげぇじゃん!





(藁

692 名前:デフォルトの名無しさん :03/03/12 11:28
先生、質問でし。
超大物開発者と自負している、人が作った業務アプリですが
システムカラーとユーザーカラーが共存しています。
ウィンドウの背景を変えると、文字が見えなくなりました。
これってVBでは当たり前の仕様でしか?

693 名前:デフォルトの名無しさん :03/03/12 11:31
使いやすいインターフェースなら規約に従っていようがいまいが文句ないんだけどね。
わけわからんインターフェースにする香具師いるからね。それが、考えた末の努力の
結果ならまだしも、ただ適当にやってる香具師多すぎ。<それ漏れだ(;´Д`)

694 名前:ASP初級者 :03/03/12 11:32
どなたか教えて下さい(ASPの件です)。
利用者のアドレス情報を収集したいのですが、
Request.ServerVariables("REMOTE_ADDR")や
Request.ServerVariables("REMOTE_HOST")
でやってもxxx.xxx.xxx.xxxの形式で収集されるのですが、
プロバイダ情報のアドレスを収集する場合のはどうすればいいのですか?
例えば東京でOCNの人からの場合はxxxxxx.tokyo.ocn.ne.jpっていう感じの情報が欲しいのです。
サイトの荒らし対策をしていまして、プロバイダ単位の規制をしたいのです・・・。
どなたかご存じの方がいらっしゃいましたら教えて下さい。
よろしくお願いします。

695 名前:デフォルトの名無しさん :03/03/12 11:32
>>692
と、言うか色カスタマイズしてる内は厨房だと最近思うようになった。


696 名前:デフォルトの名無しさん :03/03/12 11:32
>>693
プログラム的なインターフェースとユーザインターフェースをごっちゃに語るのいい加減にやめなさいな。

697 名前:デフォルトの名無しさん :03/03/12 11:33
>>692
VBに限らず当たり前だろ

698 名前:デフォルトの名無しさん :03/03/12 11:33
>>694
VBユーザって絶対的な知識の欠如が見られるよな・・・。

ホスト名とかドメイン名も知らんのにWebアプリなんぞ書けるんかいな・・・。

699 名前:デフォルトの名無しさん :03/03/12 11:34
>>694
ASPスレ逝け。


700 名前:デフォルトの名無しさん :03/03/12 11:34
しょうがないさ、限られた画面の中でいっぱい機能を入れるように客に要求されるから。
VBだと簡単にできるってのだけ客は認識しているから。
もう、そんなときは全て客任せ。
そういえば、Win2Kにバージョンアップしたときに、いろんな灰色が入り乱れてたのを見たときには、
思わず、笑ってしまった。

701 名前:デフォルトの名無しさん :03/03/12 11:35
>>698
>VBユーザって絶対的な知識の欠如が見られるよな・・・。
で、あなたは何でこのスレに? ( ´,_ゝ`)プッ

702 名前:デフォルトの名無しさん :03/03/12 11:39
色カスタマイズして見辛くするのも厨だけど、
誤操作させやすいGUIってのだけは勘弁してください。

そういえば、ある人が作ると、
どんなソフトでも、必ずCPUの占有率が100%になり続けるって人がいたよ。



703 名前:デフォルトの名無しさん :03/03/12 11:42
>694

VBの問題じゃない。ドメイン名とIPの知識を持てこのチンカス

704 名前:ASP初級者 :03/03/12 11:45
>>699
ASPスレが見あたらなかったので、このスレに書きました。
VBScriptもOKだったので。
>>703
いろいろな参考書やサイトを回ってもう一度勉強してみます。

705 名前:デフォルトの名無しさん :03/03/12 11:46
>>704
頑張れ。

706 名前:デフォルトの名無しさん :03/03/12 11:51
>>704
探し方が足りん。ほれ。

==ASP== Part 2
http://pc2.2ch.net/test/read.cgi/php/1028024916/l50

707 名前:デフォルトの名無しさん :03/03/12 11:52
>>706
しかし、同じ質問投げたら結局バカにされると思われ。


708 名前:デフォルトの名無しさん :03/03/12 12:08
VB.NETのように、
c:\aaaというフォルダが無い状態で、
c:\aaa\bbbを一気にこしらえる技は無いでしょうか。

PATH分解して
aaa作成→bbb作成とするしかないのですか?

709 名前:デフォルトの名無しさん :03/03/12 12:13
>708

ある。おまえが関数つくればいい。

710 名前:602 :03/03/12 12:22
>>708
API 使えないおバカさんは PATHを分解して作るのです

711 名前:デフォルトの名無しさん :03/03/12 12:29
>708

>60
過去を振り返るのも大事かと…。

712 名前:デフォルトの名無しさん :03/03/12 12:30
UNIX界のように、
VB厨が無い状態で、
708を一気にこらしめる技は無いでしょうか。

708を分解して
あぼーーんするしかないのですか?

713 名前:708 :03/03/12 12:39
>>709 ありがとう。
>>710 ありがとう。
>>711 本当にありがとう。
>>712 プッ!

714 名前:VB初心者スレからの訪問者 :03/03/12 12:49
Dim 708 as 2ch.tyu-bo-
Dim 713 as 2ch.tyu-bo-

set 708 = new 2ch.tyu-bo-

708.質問です = "c:\aaa\bbbを一気にこしらえる技は無いでしょうか。"

708.煽り(709, "ある。おまえが関数つくればいい。")
708.煽り(710, "API 使えないおバカさん")
708.煽り(711, "過去を振り返るのも大事かと…。")
708.煽り(712, "708を一気にこらしめる技は無いでしょうか。")

set 713 = 708

713.れす(709, "ありがとう。")
713.れす(710, "ありがとう。")
713.れす(711, "本当にありがとう。")
713.れす(712, "プッ!")



やめた。。。つまらん

715 名前:655 :03/03/12 13:23
>>659
そうだったのかぁ。
数値型のメモリサイズは固定で、わざわざLen()を使う必要がないから、
使われないだけだったね。


716 名前:デフォルトの名無しさん :03/03/12 15:16
>715
 おまえ、何にも分かってないな(藁

717 名前:デフォルトの名無しさん :03/03/12 15:17
>>715
レアケースだけど、構造体のサイズを取得するのに使いますよね。
具体的には、Win32APIのGetVersionExを使うときとか。

OsVerInfo.dwOSVersionInfoSize = Len(OsVerInfo)

Deiphiなら、

OsVerInfo.dwOSVersionInfoSize := sizeof(OsVerInfo);

みたいな感じ。

718 名前:デフォルトの名無しさん :03/03/12 15:27
>>708
API関数の名前が思い出せない。
名前を知らないと、捜すのが大変かも・・・。

719 名前:デフォルトの名無しさん :03/03/12 15:29
>>718
>711

720 名前:665 :03/03/12 15:34
お願いします

721 名前:デフォルトの名無しさん :03/03/12 15:36
>>720
結局の所オブジェクト。普通に引数にしちゃって下さい。

722 名前:デフォルトの名無しさん :03/03/12 15:38
MakeSureDirectoryPathExists

ただこんなのもあるらしい?
http://www.izumichan.com/newbbs/programming.html imagehlp APIである MakeSureDirectoryPathExists() で、
「2バイト目が0x5cのダブルバイト文字」で終わるフォルダを一発で作ると、
フォルダ名が化ける。
 Meや2000やXPでは出ない。

こんなのもあるらしい。
http://www.runan.net/program/tips/sdk_08_SHCreateFolders.shtml

723 名前:デフォルトの名無しさん :03/03/12 15:38
良い機会だから再帰を覚えては?
プログラムの幅が広がるよ。

724 名前:デフォルトの名無しさん :03/03/12 15:41
>>717
もしかして、レアケースでも何でもない??
俺は>>717のケースしか例を挙げられないのだが。

>>722
感謝。
技術評論社刊「300」シリーズ(ガリバー著)の第3巻にも確か掲載されていたが、
購入していないので・・・。(汗

725 名前:665 :03/03/12 15:44
>>721
'UserControl' を引数にすると
ベース クラス名の使用方法が不正です。
とエラーが出てしまいます
UserControl オブジェクトに代替するものも今のところ見つけられません

726 名前:デフォルトの名無しさん :03/03/12 16:17
>>723
再帰で表現可能な処理のほとんどはループでも表現可能。
俺個人のポリシーとしては、

(1) 再帰でしか表現できない処理
(2) 再帰を使うことに明確なメリット(コードが簡潔になる、パフォーマンスが高い、など)がある

のどちらかでなければ再帰は使いたくない。

727 名前:デフォルトの名無しさん :03/03/12 16:42
こんなのがわしの作ったプログラムの中にあったYO。今はもう使ってないけどね。

改行規制に引っかかるようなので、二つに分けるね。

Public Function MakeFolda(ByVal psFolda As String) As Boolean
'指定されたフォルダを作成します
'
'説明:
'ドライブ名も含めて指定します。既にあった場合は作成しません。
'ドライブがない場合や、指定できない名前等の場合はFalseを返します。
Dim sDrv As String
Dim sDir() As String
Dim sDirFull As String
Dim sFoldaName As String
Dim vNum As String
Dim iCt As Integer

On Error GoTo MakeFoldaErr:

MakeFolda = True
If Right(psFolda, 1) = "\" Then
psFolda = Left(psFolda, Len(psFolda) - 1)
End If

If Dir(psFolda, vbDirectory) <> "" Then
Exit Function
End If


728 名前:デフォルトの名無しさん :03/03/12 16:43

sDrv = Left(psFolda, 2)
sDirFull = Mid(psFolda, 4)

sDir = Split(sDirFull, "\")

sFoldaName = sDrv
For iCt = LBound(sDir) To UBound(sDir)
sFoldaName = sFoldaName & "\" & sDir(iCt)
If Dir(sFoldaName, vbDirectory) = "" Then
MkDir sFoldaName
End If
Next iCt
Exit Function

MakeFoldaErr:
MakeFolda = False
End Function


729 名前:デフォルトの名無しさん :03/03/12 16:48
ありゃ、空白のインデントが消えちゃった。しらなかったわ。全角スペースか。
見辛くてすまん。意味ない変数もあったりするなぁ(;´Д`)

730 名前:デフォルトの名無しさん :03/03/12 16:56
>>729 そんなことより俺が突っ込みたいのはMakeFoldaって名前だ。

731 名前:デフォルトの名無しさん :03/03/12 16:59
>>730
???

732 名前:727-729 :03/03/12 17:11
>>730
Folderでございますね。失礼いたしました。

733 名前:デフォルトの名無しさん :03/03/12 17:12
>>726
うん、だからといってスタック構造作ってごちゃごちゃするのもバカらしい。

734 名前:デフォルトの名無しさん :03/03/12 17:15
わざわざsplitを使うのもアホに見える

735 名前:デフォルトの名無しさん :03/03/12 17:16
>>727
>On Error GoTo MakeFoldaErr:
ここで「:」はいらんだろ。

736 名前:デフォルトの名無しさん :03/03/12 17:18
SetupKitの MakePathAux でいいじゃん。何をいまさら...

737 名前:デフォルトの名無しさん :03/03/12 17:19
>>736
んなもん使えるか

738 名前:727-729 :03/03/12 17:26
いいじゃないか!いじめるな!・゚・(つД`)・゚・  

今はAPI一発だよん。不具合がある? しらんしらん

739 名前:デフォルトの名無しさん :03/03/12 17:28
漏れが使ってたのはこんなのだったかな…

If Right$(OutPut, 1) <> "\" Then OutPut = OutPut & "\"
For q = InStr(OutPut, "\") To Len(OutPut)
q = InStr(q + 1, OutPut, "\")
Path = Left$(OutPut, q - 1)
If (GetAttr(Path) And vbDirectory) <> vbDirectory Then MkDir file
Next

740 名前:デフォルトの名無しさん :03/03/12 17:29
×MkDir file ○MkDir Path
APIにバグあったの初めて知ったよ

741 名前:デフォルトの名無しさん :03/03/12 17:31
あかん、儂もアホ晒しとる

742 名前:デフォルトの名無しさん :03/03/12 17:36
>>733
この例じゃスタック構造なんかつかわんだろ。複雑に考えすぎ。

743 名前:727-729 :03/03/12 17:55
ガリバーの中の人も同じことしてたYO!

http://www.galliver.co.jp/writing/msdn/msdn08/

744 名前:デフォルトの名無しさん :03/03/12 18:09
CommonDialogのShowOpenでファイル名を入力したいのですが
ダイアログを開くとタイマイベントなども止まってしまいます
自作するしか方法がないのでしょうか、、、

745 名前:デフォルトの名無しさん :03/03/12 18:15
>>744
スレッド

746 名前:デフォルトの名無しさん :03/03/12 18:42
ん?タイマイベント止まったか?
APIの方だと止まらなかった筈…

747 名前:デフォルトの名無しさん :03/03/12 18:50
>>746
その間メッセージ処理が行われないんだから止まりそうなもんだけど。

748 名前:デフォルトの名無しさん :03/03/12 18:51
http://www.microsoft.com/japan/developer/library/vbcon98/vbconspecialdebuggingconsiderations.htm
モーダル ダイアログ ボックスとメッセージ ボックスによるイベントの抑止
このような事態が発生するいくつかの例を次に示します。

・タイマー コントロールを持つフォームが開発環境で動作しています。
 [ツール] メニューから [オプション] を選択すると、[オプション]
 ダイアログ ボックスが開きます。このダイアログ ボックスはモーダルで
 あるので、このダイアログ ボックスを閉じるまで、タイマー コントロールの
 Timer イベントが抑止されます。



749 名前:デフォルトの名無しさん :03/03/12 18:58
>>748
うおお、EXEにしたら動きました。情報ありがとうございました。

750 名前:デフォルトの名無しさん :03/03/12 19:24

以下の文を繰り返し呼び出すとgCD.IDの値が0と67305472の間でいったり来たりしたんですが・・・
GETってレコードナンバーを書き換えるのですか?ヘルプには何も書いてないけど、
てっきり読み込み専用で扱ってるとおもってたんですが

Open mFN For Binary As #1 Len = Len(gCD)
Get #1, gCD.ID, gCD
Close #1


751 名前:デフォルトの名無しさん :03/03/12 19:27
>>722関連の話

フォルダ参照のダイアログをAPIで出すとき
初期のフォルダ位置をコールバックで指定できるのはご存知だと思いますが
初期フォルダに半角カタカナが混ざっていると正しく表示できないのはバクですか
それともポインタに弱いVBのがバクですか

初期フォルダを直接 変数で渡すと正しく逝くのですが


752 名前:デフォルトの名無しさん :03/03/12 19:40
>>750
Randomじゃないのか?と逝ってみるテスト

753 名前:デフォルトの名無しさん :03/03/12 20:45
> それともポインタに弱いVBのがバクですか
厨房のような発言は止めとけ。

754 名前:デフォルトの名無しさん :03/03/12 23:40
>>750
なんかとてつもなく馬鹿コードかと。

755 名前:デフォルトの名無しさん :03/03/13 00:10
VB6で、フォーム(またはユーザコントロール)で
ポップアップメニューが表示されているかを検出する方法を教えて下さい。
また、表示されていた場合それをキャンセルする方法もあわせて教えて下さい。


756 名前:デフォルトの名無しさん :03/03/13 00:52
先生、Openステートメントでファイルを指定する時は、絶対参照
じゃなきゃ駄目ですか?
わざわざどこにあるよって指定するよか、同じディレクトリ
のファイルを開くってしたいんだけれども。


757 名前:1 ◆ExGQrDul2E :03/03/13 01:02
>>756
絶対でなきゃダメ。
App.Path & "\" & "exeと同じディレクトリにあるファイル"
という感じでApp.Pathを使うと便利。

758 名前:デフォルトの名無しさん :03/03/13 01:28
>>755
そもそも表示させないのが筋じゃないのかと。

759 名前:デフォルトの名無しさん :03/03/13 01:49
>>755
ぱっと思いつくのはサブクラス化してメッセージを処理するとか。
閉じるのはEscキーでも送ると閉じるかな

760 名前:デフォルトの名無しさん :03/03/13 02:49
>>755
検出って、メニューが出ている間に書いたコードが実行されるのでつか?

761 名前:デフォルトの名無しさん :03/03/13 03:22
CBTフックを知らない人多いね。

762 名前:デフォルトの名無しさん :03/03/13 08:19
>>757
カレントディレクトリのファイルなら開けるだろ

763 名前:デフォルトの名無しさん :03/03/13 08:40
>>756
アフォ

764 名前:デフォルトの名無しさん :03/03/13 09:23
>754

lenのこと?
これは気にしないで、binaryモードの時は無視されるから。w
まさかこれだけでとてつもなく馬鹿コードっていってるんじゃないよね?w
もしかして自分の馬鹿をさらけだしちゃった?

765 名前:デフォルトの名無しさん :03/03/13 09:28
>>761
めったに使わないような気がする。
俺が見たことがあるのは、「メッセージボックスを任意位置に表示する」という
サンプルコード。(ガリバー著、技術評論社刊「300」シリーズ)
(MsgBoxに限らず、コモンダイアログ等でも可)

# しかし、VB6では動くが、VB.NETにアップグレードしたら動かない罠・・・。
# (どこが間違うとるのか、よーわからん・・・)

766 名前:デフォルトの名無しさん :03/03/13 09:38
>750

自己レス。
だいたいなぞが解けた。
一度読み込むとファイルへの読み込み位置が変わるからと関係ありますね。


767 名前:デフォルトの名無しさん :03/03/13 10:23
既に配布したプログラムに修正をする場合、
どのような手順でしたらよいのでしょうか?

768 名前:デフォルトの名無しさん :03/03/13 10:29
まずは深呼吸してから、質問の仕方を考え直せ。

769 名前:デフォルトの名無しさん :03/03/13 11:33
Webを介してデータベースにアクセスするのってどうやんの?
DB先を変える程度でローカルネットワークで作んのと同じにできないもんかな

770 名前:デフォルトの名無しさん :03/03/13 11:38
>>769
モジュール化しながらしっかり組んでるならUIがFormになるだけでそこだけ書き換えればOKだと思われ。

771 名前:デフォルトの名無しさん :03/03/13 12:16
>769
一般的なVB製C/Sアプリが
 クライアント(VBアプリ)←→サーバ(DB)
という形態であったのに対し、
 クライアント(ブラウザ)←→サーバ(Web/アプリサーバ)←→DB
という形態になる。
現状がどんなくみかたをしているのかにもよるが、すんなり行くとは思えない・・・

現システムをインターネット介して使いたいってだけなら、VPN使う手もあるかも。


772 名前:デフォルトの名無しさん :03/03/13 12:35
>769
IPで繋げば繋がる。
壁やルーターがあったら、ポートを空け、それなりの設定をやる必要がある。
セキュはかなり落ちるぞ。

昔、遊びで家のマシンにMSDE入れて、
会社からエンプラマネージャーで繋いだことがある。
繋がるには繋がったが、家のマシンにはかなりのアッタクの痕跡があった。


773 名前:デフォルトの名無しさん :03/03/13 12:35
>>772
知ったかぶるのも楽じゃないな・・・

774 名前:デフォルトの名無しさん :03/03/13 12:36
外から見えるところにDBがあるというのは、
常識ではありえない仕様だ罠

775 名前:772 :03/03/13 12:39
>773
はぁ?何が?
実際にやったこと書いただけなんだがな。


776 名前:デフォルトの名無しさん :03/03/13 12:42
>774

何も考えずにいれたら外部からアクセスできますよ。
この前のネット障害がものがたってるだろ

777 名前:デフォルトの名無しさん :03/03/13 12:45
>>776
普通はそのようにしないための、
設定やファイアウォールやDMZだと思うのだが…。

778 名前:デフォルトの名無しさん :03/03/13 13:03
モザイクのはずし方おしえて


779 名前:デフォルトの名無しさん :03/03/13 13:08
>>778
目を細めろ

780 名前:デフォルトの名無しさん :03/03/13 13:14
>778

↑↑↓↓→←→←AB

781 名前:デフォルトの名無しさん :03/03/13 16:15
http://www.runan.net/program/tips/API/shell32h_SHCreateFolders.shtml

前悩んでた奴いただろ?

782 名前:デフォルトの名無しさん :03/03/13 16:52
超外出

783 名前:デフォルトの名無しさん :03/03/13 17:00
質問でございやす。

アプリ内で処理したCSV形式のテキスト行があり、ファイルに出力してエクセルに渡したいと考えています。
一行処理するたびにファイルに出力していたのですが、Output # だと頭に"がついてしまうため
エクセル側で展開する時にうまくいきません。
そこでバイナリで出力したのですが、今度は複数行分出力すると改行ができません。
複数行が一列に繋がってしまい、これまたうまくいきません

ケツに改行文字をくっつけてやればいいのでしょうか・・?力尽きました。
御教授よろしくお願いします。


784 名前:デフォルトの名無しさん :03/03/13 18:05
>783
Write←×
Print←◎

785 名前:デフォルトの名無しさん :03/03/13 18:35
>>781
>>722

786 名前:デフォルトの名無しさん :03/03/13 18:37
>>781

> Alias "#165"
β版としか思えないような命名やな(w

# 舐めとるんか、MS?

787 名前:デフォルトの名無しさん :03/03/13 19:03
>>786
#ではじまるのは序数指定→非公式APIってことじゃないの?

788 名前:769 :03/03/13 19:08
>>770-777
ありがとうございます
一から勉強しますです

789 名前:デフォルトの名無しさん :03/03/13 20:41
競馬投票用ソフトJRA PATをVBで作成した外部アプリから自動入力したい
のですがSendkeyでは最初のフォーカス位置がわからないのでできません。
どうしたらいいでしょうか?

790 名前:デフォルトの名無しさん :03/03/13 21:10
>>786
プッ、Cの関数名に#が使えるわけないじゃん。それ位気付けよ

791 名前:デフォルトの名無しさん :03/03/13 21:59
>>790
C が何か関係あるのか?

792 名前:デフォルトの名無しさん :03/03/14 00:04
テキストボックス中の点滅する縦線を何と言うのですか?

793 名前:デフォルトの名無しさん :03/03/14 00:05
>>791
APIはC言語から使うことを前提に設計されている。

794 名前:デフォルトの名無しさん :03/03/14 00:06
>>792
キャレット

795 名前:デフォルトの名無しさん :03/03/14 00:08
>>793
>APIはC言語から使うことを前提に設計されている。
じゃあWin16がCの標準でないPascal呼出規約を使ってた理由は?

これに答えられずに>>793の様なことをほざいている場合、君は知ったかだよ。


796 名前:デフォルトの名無しさん :03/03/14 00:09
>>793
GetProcAddress() の引数と C の関数名には何ら関係が無いと思ってたけど。

797 名前:デフォルトの名無しさん :03/03/14 00:11
>791
ある。C以外の処理系のリンカが#を含めないかどうか言い切れなかったんでね。
まぁこの場合、APIの話しだから、あえてCの.. は外しても良かったかも知れんが...



798 名前:792 :03/03/14 00:11
>>794
有難うございます。

799 名前:デフォルトの名無しさん :03/03/14 00:12
>>789
PATが何でできているかわからないけど、テキストボックスが相手なら、
ウィンドウハンドルを取得してWM_SETTEXT を投げればいいんじゃないかな。

800 名前:デフォルトの名無しさん :03/03/14 00:15
>>794
”カーソル”もしくは”ピコピコの”だよ

801 名前:デフォルトの名無しさん :03/03/14 00:17
>>795
そっちの方がメモリやディスク容量を食わないからだよ。

802 名前:デフォルトの名無しさん :03/03/14 00:18
>>800
前者:ちょっとパソコン使える人
後者:バカ

なお、どちらもWindowsプログラムを行うものとしては不合格。

803 名前:デフォルトの名無しさん :03/03/14 00:18
>>801
それだとどうとでも取れる。詳しく頼む。


804 名前:デフォルトの名無しさん :03/03/14 00:20
>>803
スタックと言えば分かるかな?

805 名前:デフォルトの名無しさん :03/03/14 00:24
>>804
「スタック」だけでは説明になってないのは分かるよな。

両者ともスタックを使用する。


806 名前:デフォルトの名無しさん :03/03/14 00:27
>>805
俺だけが答えるのはしゃくだから、
C呼出規約とPascal呼出規約のスタックの処理の違いを述べよ。
調べれば分かるはずだ。

807 名前:デフォルトの名無しさん :03/03/14 00:28
いつまでもスレ違いな話題を続けるな。

808 名前:デフォルトの名無しさん :03/03/14 00:31
>>806
いや、知ってて絡んでるんだが。(藁

君を試してるってとこだ。

809 名前:デフォルトの名無しさん :03/03/14 00:32
>>808
教えて君必死だな(藁

810 名前:デフォルトの名無しさん :03/03/14 00:33
>>808
分かってて遊んでるんだが(藁
どっかからコピペすることくらいできるだろ。

811 名前:デフォルトの名無しさん :03/03/14 00:33
>知らないんですね。無理しなくて良いですよ。

ほう、そう来たか。

要はPUSHとPOPがどこで行われるかってのが重要なんだよ。

と、先読みレス。

812 名前:デフォルトの名無しさん :03/03/14 00:49
ぶっちゃけた話、バイナリエディタでエントリ名を書き換えて、"#" で始まる
API を作ることは可能。
そいつを呼び出す事も可能。

ただ、先頭に "#" をつけると序数として判断されてしまう仕様の VB からは
呼び出すのは無理ぽ。

とにかく、>>790 >>793 >>797 が DQN であることはわかった。

813 名前:デフォルトの名無しさん :03/03/14 00:53
>>809-810
相手がDQNだと確信し、自作自演で自分の優位性を確固たる物にしようとした。
>>811
先読みキャッシュ(藁レスが相手を直撃

で、ぐぅの音もでなくなったのか。ワラタ

814 名前:デフォルトの名無しさん :03/03/14 01:30
>>812
呼び出せるって言ったってGetProcAddressを使う方法だろ。
呼び出せるのに#を使ってないのがC言語で使うために
設計されているいい証拠じゃないか。それにMSDNにも次のような文がある。
> 通常、API は Windows アプリケーションを作成する
> C/C++ プログラマ用に記述されていますが、

> とにかく、>>790 >>793 >>797 が DQN であることはわかった。
まず最初に己がDQNであることを疑うんだな。

>>813
おまえもウザイ。
> >>809-810
> 相手がDQNだと確信し、自作自演で自分の優位性を確固たる物にしようとした。
だれも自作自演してねーよ。

先読みキャッシュ? あれだけヒントが出てれば誰だって分かるだろ。
他人のヒントをまって、さも始めからわかっていたような顔をするな。
自分用語作って悦になんなよ。ホント春は変な奴が多いな。

815 名前:デフォルトの名無しさん :03/03/14 01:43
おまいらそろそろSTOPしとけ。

816 名前:デフォルトの名無しさん :03/03/14 01:50
たびたびすまんですが質問です。
VB6でACCESSのMDBを使ってます。

ワークテーブルにレコードを挿入し、それをFlexGridで表示する、という画面を
作ったのですが、いざ実行してみると
ワークテーブルにレコードができる前に画面表示が行われてしまい、ADOの
抽出件数0件になってしまいます。
画面表示に行く前にmsgbox出してしばらく待つとレコードができててうまく動く、という次第。

レコードができるまで処理をとめる方法ってないんでしょうか?
このままでは、ループでワークテーブルの件数を監視し続けるしか……

817 名前:デフォルトの名無しさん :03/03/14 01:51
>>814
> 呼び出せるって言ったってGetProcAddressを使う方法だろ。
> 呼び出せるのに#を使ってないのがC言語で使うために
> 設計されているいい証拠じゃないか。それにMSDNにも次のような文がある。

GetProcAddress() を使う以外に API を理由する手段があるのか?
まさか PE のローダーが GetProcAddress() を使ってないとでも言うのか?
API 名と C での関数名を同じにしなければならない理由があるのか?
例えば MoveMemory() なんてものはなく実際には memmove() または
RtlMoveMemory() が呼ばれるって知ってるか?

> まず最初に己がDQNであることを疑うんだな。

オマエモナー

818 名前:デフォルトの名無しさん :03/03/14 01:56
> それにMSDNにも次のような文がある。
> > 通常、API は Windows アプリケーションを作成する
> > C/C++ プログラマ用に記述されていますが、

「通常」 って書いてあるだろ。>>781 が通常の話じゃない。
話を勝手に全般化するな。

819 名前:デフォルトの名無しさん :03/03/14 02:19
おにぎりは 3 つ、具は梅干、しゃけ、たらこにすること。

820 名前:デフォルトの名無しさん :03/03/14 02:53
>>816
ADOだとままあることなんだけど、「これ」といった対応策はないんだよね。
ループで待機するってのも、ひとつの解決策だと思うよ。
もしくは、クエリーを投げた後に、コネクションを閉じてみるなんてのはどうだろう?

821 名前:デフォルトの名無しさん :03/03/14 02:54
>>817
>例えば MoveMemory() なんてものはなく実際には memmove() または
>RtlMoveMemory() が呼ばれるって知ってるか?

ヘルプに書いてあることでいばってもなぁ。
そんなことよりRtlの意味から説明してくれや、な。


822 名前:デフォルトの名無しさん :03/03/14 02:56
>>818
要点は、787が言ってる通りだろ。
C/C++向けに設計されている点に変わりはないと思うが。


823 名前:デフォルトの名無しさん :03/03/14 03:13
>>822
この場合の 「C/C++向けに設計されている」 いうのは、ポインタとかゼロ終端
文字列とかコールバックとかそういう機能面での話であって、リンクの方法の
話ではないんでは?

824 名前:デフォルトの名無しさん :03/03/14 03:20
>>821
Rtl: Run-Time Library。以上。

825 名前:デフォルトの名無しさん :03/03/14 03:24
例が悪いような。
MessageBoxAとか出しとけばいいのに。

826 名前:デフォルトの名無しさん :03/03/14 03:27
>>822
要点なんかどうでもよく、>>790を徹底的に叩きたいだけかと。

827 名前:デフォルトの名無しさん :03/03/14 04:22
ここまでの話題をまとめると

  ∧_∧
 ( ´∀`)< ぬるぽ

828 名前:1 ◆ExGQrDul2E :03/03/14 08:07
あるファイルをいったんメモリに格納して、
そのファイルをメモリから呼び出すにはどうすればいいの?
音飛びさせたくないマルティメディアファイルなんかはディスクアクセスでなくメモリアクセスを行いたい。

829 名前:1 ◆ExGQrDul2E :03/03/14 08:12
VBでやるには・・・

830 名前:ひきプロ :03/03/14 08:21
dim buffer() as byte
redim buffer(filelen(filename))
open "file" for binary as #1
  get #1,,buffer
close #1

API呼ぶ時はVerPtr(buffer)でポインタを渡す

831 名前:ひきプロ :03/03/14 08:22
間違えた、VarPtrだった…

832 名前:1 ◆ExGQrDul2E :03/03/14 08:28
>>830-831サンクス
むっ!オレがコードを理解するのは難しいが、
とにかくVBでメモリアクセスできるということが伝わってきた。

833 名前:デフォルトの名無しさん :03/03/14 08:32
>>832
つぅか、

ファイルサイズ分のメモリを確保。ファイル一気書き。読む。

だけじゃん。どうでも良いけど300MBのファイルとかどうするつもりなんだろう・・・

834 名前:1 ◆ExGQrDul2E :03/03/14 08:35
>>833
ハードディスクにスワップした分はあきらめる。

835 名前:1 ◆ExGQrDul2E :03/03/14 08:46
VBでアプリを作って以下のような状態になっているとする。
---------------------
\CG(フォルダ)
a.vbp
a.frm
a.bas
a.exe
----------------
ユーザにソフトを配布しようと思いディストリビューションウィザードを使うが、
ディストリではフォルダを読み込むことができないためCGフォルダが配布できない。
フォルダを含んだインストーラを作るときはどうしてる?

836 名前:ひきプロ :03/03/14 08:48
インストーラで配布する必要ないと思います。

837 名前:1 ◆ExGQrDul2E :03/03/14 08:50
>>836
ユーザのパソコンにVBランタイムが無いときは、
ランタイムの配布と、実行ファイルの配布の2段階になっちゃうでしょ。
だからインストーラで、ランタイムの配布と実行ファイルのセットアップを一気に行いたい。

838 名前:ひきプロ :03/03/14 08:52
Windows95でもない限りランタイムが入ってない
ことはないでしょう。フォントが文字化けする時は
明示的にMSゴシックを指定すればいいだけだし

839 名前:1 ◆ExGQrDul2E :03/03/14 08:56
>>838
まあ、自作のocxなどの配布も含めた話になるとやはりシステムに必要なファイルをセットアップする作業と、
任意のフォルダに本体実行ファイルをセットアップする二段階になってしまう。
VBではできない、または、フォルダをセットアップするためのユーティリティが発売されていない、
という結論でよい?

840 名前:ひきプロ :03/03/14 08:57
自作のOCXはシステムフォルダに入れないでください。
アプリと同じフォルダに入ってれば使えるし。
>という結論でよい?
ダメ

841 名前:1 ◆ExGQrDul2E :03/03/14 09:00
>>840
ocxは例えばのはなしで、とにかくシステムにdllを別途登録しないとVBアプリが動かないことは多々あるし。
>ダメ
ということはなにかフォルダをsetup.exeや.cabファイルに含ませるための方法があるということやね。どうやるの?

842 名前:デフォルトの名無しさん :03/03/14 09:53
プログラムがフォルダを作る。

843 名前:1 ◆ExGQrDul2E :03/03/14 10:00
>>842
それは今までやってたが、今さっきsetup.exeで方法がわかったのでやりかたをまとめてみる。
これにより、ランタイム&ソフト本体のexeファイル&ソフト本体が扱うデータファイルやフォルダ
を一回でインストールできることになり、
VBを市販の製品用のプログラミングツールとして活用できることに成功した。
ランタイムのセットアップとその他のファイルの別配布をやっているようじゃいつまでたってもフリーソフトや固定客用のアプリしかつくれないものね。

844 名前:1 ◆ExGQrDul2E :03/03/14 10:09
自分であみだした方法ゆえ、説明文を書くのも時間がかかる。
長らくお待ちを。

845 名前:1 ◆ExGQrDul2E :03/03/14 10:10
自己流ゆえ、これを試して何かが起こっても保障はしない。

846 名前:デフォルトの名無しさん :03/03/14 10:50
'スレ立て日を計算
Dim dteBuilt As Date
dteBuilt = DateAdd("s", 1046354784, #1/1/1970 9:00:00 AM#)
Debug.Print dteBuilt

847 名前:デフォルトの名無しさん :03/03/14 11:21
ディストリビューションウィザードには
 「ファイルの追加」( .xlsや.ini など必要ファイルを登録する)
機能があり、作成されたSetup.lst は
 「設定パスを手書きできる」
んであるわけで
 File10=@CGのファイル.jpg,$(AppPath)\CG,,,7/3/00 3:00:32PM,49076,0.0.0.0
などと変更すると設定するファイルの置き場所が変わったり・・
( ´〜`).。o~

848 名前:1 ◆ExGQrDul2E :03/03/14 11:31
>>846
オレもひろゆきの発言を元にそれを書いたことがある。
>>847
オレもそれについての初心者向け解説文を書いてみた。
-----------------------
開発時のファイル構成が次のようになっているとする。
-----------------------
\File\temp.txt(データファイル)
Form1.frm
Project1.vbp
Project1.exe(コンパイルして作成した実行ファイル)
-----------------------------
今回の目的は\File\temp.txtをインストーラに含ませて、
そのインストーラ(setup.exe)が.txtファイルを
セットアップ先のフォルダの中の\Fileフォルダにインストールすることだ。

・インストーラの作成
ディストリビューションウィザードを起動して、
ディストリビューション ウィザード - 含まれるファイル
というメニューまで進んだら追加ボタンを押して
\File\temp.txt
を追加する。
ウィザードを進めて完了ボタンを押すと、

849 名前:1 ◆ExGQrDul2E :03/03/14 11:32
---------------------
Project1.CAB
setup.exe
SETUP.LST
---------------------
というファイルが作成される。
このsetup.exeがインストーラだ。
.CABファイルには配布用ファイルが格納されている。
今setup.exeを実行すると
\Program Files\Project1フォルダの中に、
Project1.exe
ST6UNST.LOG
temp.txt
がセットアップされる。
注目すべきは、
temp.txtは開発環境時は
\Fileフォルダにあったということだ。そしてセットアップ時にも\Fileフォルダに入れたい。

850 名前:1 ◆ExGQrDul2E :03/03/14 11:33
それには、
ディストリビューションウィザードが作成した
SETUP.LST
をテキストエディタで開いて編集する。
[Setup1 Files]
File1=@temp.txt,$(AppPath),,,3/14/03 10:26:12 AM,2,0.0.0.0
File2=@Project1.exe,$(AppPath),,,3/14/03 10:50:26 AM,16384,1.0.0.0
このような場所を探す。
そして、
[Setup1 Files]
File1=@temp.txt,$(AppPath)\File,,,3/14/03 10:26:12 AM,2,0.0.0.0
File2=@Project1.exe,$(AppPath),,,3/14/03 10:50:26 AM,16384,1.0.0.0
このように編集してみよう。
$(AppPath)

(AppPath)\File
にしただけだ。
そしてこの編集結果を上書き保存する。
そのあとsetup.exeを実行すると、セットアップ先のフォルダの中に
\Fileフォルダ
が作成され、そのなかにtemp.txtがあるのを確認できる。
$(AppPath)\あいうえ お\DeepSub
のように日本語フォルダやスペースを含んだフォルダや階層の深いフォルダも指定できた。

851 名前:1 その他の方法 ◆ExGQrDul2E :03/03/14 11:37
オリジナルの方法はzipを使った方法だ。
UNZIP32.dll
がフリーソフトなのを生かしてこれをsetupファイルに含ませてインストールし、
アプリケーションをはじめて起動したときにzipファイルを自動解凍して
必要なフォルダやファイルをセットアップする。

852 名前:デフォルトの名無しさん :03/03/14 11:41
カンマCSVファイルの分解について質問です。
カンマで区切られたデータの分解には成功しているのですが、
ダブルクォーテーションマークでくくられている文字列の扱いがうまくいきません。
なんとかうまい方法はないでしょうか?

853 名前:デフォルトの名無しさん :03/03/14 11:45
うち,150ファイル15Mのセットアップを一発で客先PCに設定できるようにしてるんでなぁ
system32の下に入れて共有にしたり,アプリとはまったく別のパスになったり
仕様変更で差分だけインスト・アンインストできるようにしたり
最初んころは訳解らんかったよ(今も完全とはいえん)

>>851
zipファイルの削除はちゃんとおこなっているか
UNZIP32.dllがすでに登録されていた場合にレジストリ二重登録にならないか
UNZIP32.dllは使用後に削除するかしないか,その時レジストリは大丈夫か
くらいはちょっと気になるな。

854 名前:デフォルトの名無しさん :03/03/14 11:47
>>852
デバッグしたら?

855 名前:デフォルトの名無しさん :03/03/14 11:48
>>852
ダブルクォーテーションも文字列になってしまうってことか?
それなら、
String = Mid(String, 2)
String = Left(String, Len(String) - 1)
とでもすりゃぁ良いのでは?

856 名前:1 ◆ExGQrDul2E :03/03/14 11:50
>>853
もちろんUNZIP32.dllが相手のパソコンにすでにあるかどうかのチェックも行っているし、
Windowsのバージョンの違いによる
system
system32
のどちらを使うか、という問題にも対処したあるからだいじょうぶ。
UNZIP32.dllを共有ファイルとして使用するかどうかの設定もバッチシ。

857 名前:1 ◆ExGQrDul2E :03/03/14 11:52
Windows9Xだとsystemフォルダーを使い、NTアーキテクチャだとsystem32にUNZIP32.dllをコピーする。

858 名前:1 ◆ExGQrDul2E :03/03/14 12:05
UNZIP32.dllを解凍目的(インストール目的)に使うだけならレジストリ登録とかもいらないからレジストリについて心配する必要は無い。

859 名前:デフォルトの名無しさん :03/03/14 12:10
とりあえずNGワード入れといた
ExGQrDul2E

860 名前:1 ◆ExGQrDul2E :03/03/14 12:14
>>859
死ね

861 名前:852 :03/03/14 12:36
>>855
すいません。ちょっと言葉が足りなかったようです。
abc,"123,456,789" というCSVデータがあったとして、そのままカンマ区切りを
してしまうと、abc "123 456 789" というデータになってしまうのです。
"でくくられているところのカンマで区切らないやり方がどうもうまくいきません。
なんとかならないでしょうか?

862 名前:デフォルトの名無しさん :03/03/14 12:57
>>861
今どうやってるかによるけど、
Wクオーテーション内かどうかのフラグを立てるだけですむのでは?

863 名前:デフォルトの名無しさん :03/03/14 12:57
>>861
べたなやり方だけど、頭から1文字ずつ取っていって、
”があったらフラグON、次の”でOFFにして、ロジックで文字列くっつけていけば?


864 名前:デフォルトの名無しさん :03/03/14 12:58
それしかないな。うん

865 名前:デフォルトの名無しさん :03/03/14 13:17
>>861
ダブルクォートを含む文字列データはどうするんだ

と言ってみるテスト。

866 名前:1 ◆ExGQrDul2E :03/03/14 13:47
>>861
Windowsでもファイル名で使ってはいけない文字があるように、
CSVでも禁止文字があるだろ。
それはどんな文字だ?

867 名前:デフォルトの名無しさん :03/03/14 16:01
>ExGQrDul2E
あのさ、知らない間にVBランタイムなんか入れるようなもん作らないで欲しいんだけど。
最低でもVB製って事だけは明記してくれよ。
DL回避になるから。


868 名前:デフォルトの名無しさん :03/03/14 16:13
>>866
ExGQrDul2Eですか?(w

869 名前:デフォルトの名無しさん :03/03/14 16:13
>>861
まともに処理させたいなら Split() を使ってはいけない。
InStr() を駆使してダブルクォーテーションをきっちり調べろ。

>>865
Excel なんかでは、ダブルクォーテーションで囲われた領域の中でダブルクォーテーション
を 2 つ並べると 1 文字のダブルクォーテーションとして認識される。

870 名前:デフォルトの名無しさん :03/03/14 16:15
>>867
CSV の禁止文字? はつみみです。

871 名前:GIF :03/03/14 16:15
アニメーションGIFをリソースにしたいのですが、これは可能でしょうか?
BMPしかリソースにする方法がわかりません。
またリソースにできるのでしたらどうやって使うのでしょうか?

872 名前:1 ◆ExGQrDul2E :03/03/14 16:22
>>867
おまえはVB使いじゃないな。
>>868
どうした?
>>870
そりゃそうだな。今回はオレがバカだった。


873 名前:1 ◆ExGQrDul2E :03/03/14 16:34
>>871
WebBrowserコントロールだとGIFがアニメーションする

874 名前:デフォルトの名無しさん :03/03/14 16:38
>>872
おにぎりは 3 つ、具は梅干し、しゃけ、たらこにすること。

875 名前:1 ◆ExGQrDul2E :03/03/14 16:40
>>874
バカなオレにもわかるように言ってくれ。

876 名前:デフォルトの名無しさん :03/03/14 16:40
>>872
VB使いだが問答無用でインストールされるのはいやだな。


877 名前:1 ◆ExGQrDul2E :03/03/14 16:45
>>876
スパイウェアとかだったらいやだけど、
アプリの動作に必要で、それ以外にはまったく影響しないdllなら勝手にインストールされても気にならないけどな。
そういう人もいるんだなあと参考にする。

878 名前:1 ◆ExGQrDul2E :03/03/14 16:48
2chSoft005
エロといえば森川ゆかり

ttp://www.interq.or.jp/guitar/lead/tripod-vip-eria/user-knight/a020.zip

Windowsスタートメニュー → プログラム → 2chSoft のところのショートカットを起動する。
ソフトの削除はエクスプローラではなくコントロールパネル→プログラムの追加と削除から行う。
画像は\Program Files\フォルダに入っている。
今回はjpgでなくpngファイルなので画質劣化無しの高画質だ。

↑UNZIP32.dllを実際に使ったアプリ

879 名前:デフォルトの名無しさん :03/03/14 16:49
ここはあんたの日記帳じゃない。

880 名前:1 ◆ExGQrDul2E :03/03/14 16:52
>>879
個人のホームページの掲示板は荒らさないが、2chでは好き勝手発言させてもらっている。

881 名前:デフォルトの名無しさん :03/03/14 16:52
>>877
VB のランタイム等がシステムとかに 「まったく影響しない」 事は立証できるか?

882 名前:デフォルトの名無しさん :03/03/14 16:52
>>880
あんまり図に乗ってるとアク禁依頼が出るんじゃ?

883 名前:1 ◆ExGQrDul2E :03/03/14 16:52
>>881
それはマイクロソフトが悪い、ということにする。

884 名前:1 ◆ExGQrDul2E :03/03/14 16:54
>>882
実は2chをやめたく、自分では中毒でやめられないからアクセス禁止になるためにわざとあばれている。

885 名前:1 ◆ExGQrDul2E :03/03/14 16:55
2chに寿命を、時間を奪われているが、自分からは絶てない。
だからどうかアク禁にしてオレを楽にしてくれ。

886 名前:アシュル ◆adhRKFl5jU :03/03/14 17:09
修行が足りないようだな。

887 名前:1 ◆ExGQrDul2E :03/03/14 17:15
>>886
はじめてみるコテハンだな。
オレのソフトのことか?
オレはデスクトップの壁紙変更ソフトも作れるぞ。

888 名前:デフォルトの名無しさん :03/03/14 17:33
見えないけど異常にスレッドが伸びてるなぁ・・・

889 名前:デフォルトの名無しさん :03/03/14 17:34
漏れがランタイムを勝手に入れて欲しくないのは、
VBで作られたソフトなんてロクなもんじゃないから、という理由。

890 名前:デフォルトの名無しさん :03/03/14 17:36
>>884
そう自白すると誰もアク禁依頼出さなくなる罠

891 名前:VB最強・だ・ぞ♪ :03/03/14 17:53
ウヒンドウズインストールするときに強制的にランタイム入れるようにすれば良かったのにね

892 名前:デフォルトの名無しさん :03/03/14 18:29
>889

こうなったら意地でもおまえのマシンにVBランタイムぶっこんでやる!

893 名前:デフォルトの名無しさん :03/03/14 18:30
透明度を指定して描画する方法を教えてください。

894 名前:デフォルトの名無しさん :03/03/14 18:32
藤本
トロ、ワンモア

895 名前:デフォルトの名無しさん :03/03/14 18:33

line命令とか使うときに
透明度を指定して描画する方法を教えてください。


896 名前:デフォルトの名無しさん :03/03/14 18:38
>>895
Line単体はしらないが、別のビットマップに線を書いて、
AlphaBlend のAPIで重ねるとかはダメ?

897 名前:デフォルトの名無しさん :03/03/14 18:40
初歩的質問かもしれませんけど…
テキストを印刷するプログラムを作りたいんです。
で、printerオブジェクトを使えば
書体や印刷部数の設定ができることはわかったんですが、
文字の色の設定の仕方がどうしてもわからないんです。
面倒かもしれないですけど教えてください。

898 名前:デフォルトの名無しさん :03/03/14 18:43
>897

オブジェクトのプロパティを見よ

899 名前:デフォルトの名無しさん :03/03/14 18:58
>>897
ヘルプだと、printer.ForeColor がすぐに出てこないな・・・うちだけだろうか

900 名前:897 :03/03/14 18:59
>>898
> >897
>
> オブジェクトのプロパティを見よ

ん?何ていうプロパティですか?

901 名前:897 :03/03/14 19:06
>>899
それだ!
私もヘルプに載ってないし、入力候補にも表示されないんです。
でも試しておくべきでした。どうも失礼しました。

902 名前:デフォルトの名無しさん :03/03/14 19:54
VB.NETインストールにシステムドライブの空き容量が4Gと有りますが
現在空きは400Mしか有りません。
切り直さなければならないでしょうか?

903 名前:デフォルトの名無しさん :03/03/14 20:34
>>901
オブジェクトブラウザ

904 名前:デフォルトの名無しさん :03/03/14 22:48
VBで0.1秒毎に正確に表示するストップウォッチを作るにはどうしたらよいでしょう。
timerプロジェクトを使い、0.1秒毎に表示するとすると、表示の処理に0.02秒ぐらい
かかるためか、誤差が出てしまいます。0.01秒毎だともっと遅くなるのでたぶん
そうでしょう。Load_From()でforを使いずっとループさせておいてtimerの処理は
変数変更のみにし、forの中のifで表示処理をするみたいなのをやりましたが、
落ちてしまいました。

905 名前:デフォルトの名無しさん :03/03/14 23:22
俺はVB房だが
ちょっと、質問させてくれ
企業のシステムは生産性を考えVBで組んでいるのが大半だと思う。
同じプログラムを組むのにVBとC++では、労力が違う
では、労力を使ってC++で組むメリットって何?


906 名前:デフォルトの名無しさん :03/03/14 23:23
>>905
自己満足

907 名前:デフォルトの名無しさん :03/03/14 23:27
>>905
私しの会社の基幹システムはVB5ですが
ちなみに、一部上場企業です。

908 名前:デフォルトの名無しさん :03/03/14 23:29
でもVC++も慣れたらVBとさほど労力に差はないけどね。
VBで作る業務システムくらいなら。

909 名前:デフォルトの名無しさん :03/03/14 23:32
業務システムは、VBが一番だと聞きましたが、何か?

910 名前:デフォルトの名無しさん :03/03/14 23:33
>>909
何が一番なの?

911 名前:デフォルトの名無しさん :03/03/14 23:42
慣れるまでがねえ。

912 名前:デフォルトの名無しさん :03/03/14 23:47
顧客にとって言語の選択は関係のない事。
コストを考え見積を検討するだろう
開発側は、コストを考えVBを選択するだろう。
(業務システムの場合)

913 名前:デフォルトの名無しさん :03/03/14 23:51
システム開発で需要の多いのはVBでしょ?


914 名前:デフォルトの名無しさん :03/03/14 23:52
VCはGUIとDBアクセスが面倒だからね。

915 名前:デフォルトの名無しさん :03/03/14 23:53
VB.NETは使ったこと無いんですが、VB6と同じコストなんでしょうか

916 名前:デフォルトの名無しさん :03/03/14 23:59
>>904
小さいアイコン位の大きさではどうか?

917 名前:デフォルトの名無しさん :03/03/15 00:05
まだ、日本ではC++を使いこなせる人は少ないと聞いた。
たしかに、VBよ++のほうがいいだろう
でも、++が使いこなせないのなら,誰でも出来るVBのほうが安心。


918 名前:デフォルトの名無しさん :03/03/15 00:07
? VBよ++

919 名前:デフォルトの名無しさん :03/03/15 00:27
>>904
「正確に」0.1秒更新を保証する方法はない。
むしろ表示は適当な間隔で停止時の時間だけを正確に取得する方が利口だと思う。


>>905
APIをガリゴリに使ってウインドウズメッセージを自前で処理するようなコードを書くときは
素直にVC使わせろと思いました。
そこまで労力を使わせてまでVBにこだわるなよ>上司

920 名前:デフォルトの名無しさん :03/03/15 01:14
Outlookで、VBAとBASPを使っているのですが、
「M0002687.4g1@m.mini.mag2.com」の
最初の8文字だけ(上の例だと「M0002687」)を取得するには
どうすればいいのでしょうか?


以下のようにやったのですが、

EMAILSendername = "M0002687.4g1@m.mini.mag2.com"
IDMag = objBasp.Match("/^(.{8}) /", EMAILSendername)
msgbox IDMag


「0」と表示されてしまいます

921 名前:ひきプロ :03/03/15 01:22
IDMag = Mid(str, 1, InStr(1, EMAILSendername , "@") - 1)

922 名前:ひきプロ :03/03/15 01:23
DMag = Mid(EMAILSendername , 1, InStr(1, EMAILSendername , "@") - 1)
間違った…

923 名前:1 ◇(略) :03/03/15 01:23
>>890
ワシもそうおもうだわさ。

924 名前:デフォルトの名無しさん :03/03/15 01:49
VBしか使えないからVBを使うのか、楽だからVBを使うのか。
とりあえず、VBしか使えない奴のコードは見るとだいたい解るね。

925 名前:904 :03/03/15 02:03
>>919
お答えありがとうございました。できました。
Private Declare Function GetTickCount Lib "kernel32.dll" () As Long
Dim start As Long, now As Long

Private Sub Form_Load()
  start=GetTickCount
End Sub

Private Sub Timer1_Timer() '間隔は100ミリ秒毎
  now=GetTickCount
  Label1.Caption=now-start
End Sub

926 名前:デフォルトの名無しさん :03/03/15 02:22
Windowsの終了時にForm_Unloadでユーザーからの入力待ち(Fileのセーブをするか?など)
の時にWindowsの終了を入力が終わるまで待たせるにはどのようにすればよいのでしょう?


927 名前:デフォルトの名無しさん :03/03/15 02:29
>>925
GetTickCountよりtimeGetTimeの方が正確という噂あり。

928 名前:ひきプロ :03/03/15 02:38
>>926
Form_Unloadの引数にCancelというのがあるので
これに1を入れるとアンロードがキャンセルされます。
しかしこの場合、QueryUnloadにこの処理を書くほうが良い気がします。

929 名前:デフォルトの名無しさん :03/03/15 03:00
>>928
レスありがとうございます。
Form_QueryUnloadでCancelを1にするとWindowsの終了自体もCancelされて
しまうので都合がよくないのです。
Excelとかみたくファイルの保存のダイアログを出してSAVEが終わったら
そのままWindowsも終了してくれるとありがたいのですが・・・

930 名前:ひきプロ :03/03/15 03:44
QueryUnloadで、
if UnloadMode = vbAppWindows then
  '処理を書く
end if
みたいにすればウインドウズの終了時の処理が書けると思います。
Cancel=1なしで書いてみては?

931 名前:デフォルトの名無しさん :03/03/15 03:51
FormのUnloadやらQueryUnloadでCancel=1にしたときに動作って
OSによってちがくない? 気のせいかな?

932 名前:デフォルトの名無しさん :03/03/15 10:08
ポインタがボタンの上に来ると、ステータスバーに
そのボタンの説明が表示されるようにするには
どのようにすればよいのでしょうか。
すごく簡単なことかもしれませんが教えてください。

933 名前:デフォルトの名無しさん :03/03/15 11:52
MouseMove捕らえればいいんじゃないの?

934 名前:デフォルトの名無しさん :03/03/15 11:56
すみません。
DataReportに関してですが、ツールボックスでShapeという囲み線
を印刷できると思いますが、その線を太くしたいと思ってます。
プロパティを見てもそのような設定が見当たらないのですが、
Data Reportでは無理なのでしょうか?レポート専用の
開発ソフトを買わないで済ませたいのですが。

935 名前:デフォルトの名無しさん :03/03/15 12:10
(*´д`*)アハァ…

936 名前:デフォルトの名無しさん :03/03/15 12:19
>>932
み〜くんパパにサンプルがある。


937 名前:932 :03/03/15 12:42
>>933、936
ありがとうございます。
コードの書きかたがよくわかってないので不安ですが
MouseMoveでやってみます。

938 名前:デフォルトの名無しさん :03/03/15 13:02
数十個のボタンが密集して配置してあります。
マウスがボタンの上を通過すると、そのボタンの色が青になります。
マウスカーソルがボタンの上にある限り、そのボタンの色は青のままです。
カーソルを他のボタンの上に移動させると、今まで青かったボタンはデフォルトの灰色に戻り、
現在マウスカーソルが乗っているボタンが青くなります。

・・・・てな感じのものを作りたいんですが、どう書けばいいんでしょう?
ボタンのMouseMoveを使えば色を変えられるんですが、カーソルが離れた際の処理が思い浮かびません。
とりあえず、それぞれのボタン.MouseMoveに、自分以外の色クリアの処理を行う処理を書いてみたんですが、
他のボタンが何十個もあるので、やたら長くなります。
VBでここらへんをスマートに解決するにはどうしたらいいんでしょうか?


939 名前:デフォルトの名無しさん :03/03/15 13:05
直前に青かったボタンを覚えておけばええんでない?

940 名前:デフォルトの名無しさん :03/03/15 13:19
>>938
ボタンをね、コントロール配列にすれば良いのよ(ウフッ

941 名前:次スレのテンプレ :03/03/15 13:58

(*´д`*)アハァ… VB初心者質問スレ Part23

v(*´д`*)b アハァ…
ブビタンがどんな厨房疑問でもやさしく答えるブビ。
ブビタンは時に私であり、時には別の人ブビ。
関連スレは>>2ブビ。

  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/test/read.cgi/tech/1044028945/
  Part22 http://pc2.2ch.net/test/read.cgi/tech/1046354784/

VB.net関連スレ
【老若】VB.net質問スレ【男女】 (Part2)
http://pc2.2ch.net/test/read.cgi/tech/1043629429/

心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
五.下ネタもたまにならOK。
六. ブビタン情報募集中。

942 名前:デフォルトの名無しさん :03/03/15 15:27
次スレのテンプレが出てきて質問するのも気が引けるのですが。

MDIフォームでボタンメニューとツリービューを使いたいと思ってます。
MDIフォーム上でCoolBarを縦に使う方法を知りたいのですが、可能でしょうか?
または、上部にCoolBar、左側にPictureBoxのようなコントロールを張り付けるとか。

エクスプローラのファイルビューのところがMDIの子フォームになっているようなイメージです。

可能、不可能だけでもいいです。
CoolBarでバンドの向きとかverticalのプロパティでは駄目って事は解りました。
MDIフォーム上でイベントを拾えればそれでOKなんでつが・・・。

グレープシティ(旧文化オリエント)では出てるんですけどね。
あれって(自分的に)使いたいコントロールが少ない割にはそれなりの値段するからなぁ。

943 名前:932 :03/03/15 15:36
すみません。先程の、ツールバーのボタンの説明を
ステータスバーに表示するという件について質問です。
Toolbar1_MouseMoveプロシージャで、ポインタが
今どのボタンの上にあるかを

Select Case Button

Case (ボタンのキー)
StatusBar1.Panels(1).Text = "あいうえお"


End Select

というふうに書いてみました。
一つ目のボタンはうまく表示されたのですが、
残りでも一つ目のボタンと同じ文が表示されてしまいました。
(それぞれのボタンについて異なる文章を書いています)
どのようにしたら他のボタンでも正しく表示されるでしょうか?
↑ものすごく間違ったコードを
書いているかもしれませんがよろしくお願いします。

944 名前:デフォルトの名無しさん :03/03/15 16:25
>>943
MouseDown イベントのヘルプよく読んで
Button 引数の意味を理解しなさい

945 名前:944 :03/03/15 16:27
×MouseDown
○MouseMove

946 名前:デフォルトの名無しさん :03/03/15 18:14
>>921-922
そういう時のために、Left()があるのでは?




947 名前:デフォルトの名無しさん :03/03/15 19:01
>>946
あれ? 突っ込まない約束でみんな来てたんじゃないの?(w

948 名前:943 :03/03/15 19:15
>>944
一応ヘルプは見ていたつもりでしたが…すみません。
Buttonは押されたボタンなんですね。
では、x、yの座標で位置を知らなければならないんですか?
このボタンはx=0〜いくつまで とか設定して。

949 名前:943 :03/03/15 20:47
↑ボタンの幅に合わせてScaleWidthを設定して
Case x=1 などとすればよいのでしょうか?

950 名前:デフォルトの名無しさん :03/03/15 22:25
>>949
とにかくやってみれ。試行錯誤するのが一番勉強になるわけで。

951 名前:名無しさんだよもん ◆ZAYX.QGihc :03/03/16 00:47
とりあえず次すれ

(*´д`*)アハァ… VB初心者質問スレ Part23

http://pc2.2ch.net/test/read.cgi/tech/1047743187/


952 名前:デフォルトの名無しさん :03/03/16 07:10
ぬるぽがこのスレに興味を持ったようです。

  ∧_∧
 ( ´∀`)< ぬるぽ

953 名前:943 :03/03/16 09:55
とりあえずx座標をいちいち設定したら
横の動きには反応するようになりました。
しかしツールバーから縦方向に出たときに反応してくれない…

954 名前:デフォルトの名無しさん :03/03/16 21:04
Accessの質問です。

Win32APIのDeleteMenuを使うと、アプリケーションウィンドウのコントロールメニューを
無効化できますが、この状態でも、[Alt] + [F4]のキーストロークには応答し、終了して
しまいます。コントロールメニューの表示状態に関わらず、WM_CLOSEメッセージそのもの
を受け付けなくする方法はありませんか?
(Access97なので、AddressOf演算子は使用できず、サブクラス化は不可能です)

イメージとしては、VBアプリケーションの

Private Sub Form_QueryUnload (Cancel As Integer)
Cancel = -1
End Sub

のような動作を実現したいのです。

955 名前:デフォルトの名無しさん :03/03/16 21:07
ACCESS総合相談所 その7
http://pc2.2ch.net/test/read.cgi/bsoft/1043996834/


956 名前:デフォルトの名無しさん :03/03/16 21:11
>>955
あっちでまともなコメントが付くとは思えない。

957 名前:デフォルトの名無しさん :03/03/17 13:00
まだ終わってないからあげとくYO!

958 名前:755 :03/03/17 17:33
ポップアップ表示の前にESCを送ることでとりあえず回避しました。

959 名前:デフォルトの名無しさん :03/03/27 19:11
ActiveXってWEBサーバがLINUXでもうごきますか?
(もちろんブラウザはIEです)

よろしければ教えてください。

960 名前:bloom :03/03/27 19:16
http://www.agemasukudasai.com/bloom/

961 名前:デフォルトの名無しさん :03/03/27 22:17
VB6.0です。
ListBoxのHeightは、
項目の高さの倍数分しか変更できないみたいなんですが、
これを自由なサイズに変更する方法はありませんか?

962 名前:デフォルトの名無しさん :03/03/27 22:20
>ActiveXってWEBサーバ
なんですかその「WEBサーバ」のActiveXって?
Apache?

963 名前:デフォルトの名無しさん :03/03/28 07:41
>>961 IntegralHeight

964 名前:959 :03/03/28 15:27
すみません、説明が足りませんでした。
WEBサーバはApache、OSはLinux(Redhat)です。
つまりWebサーバがIISでなくても、ブラウザがIEであれば、
ActiveXは動くのかということを知りたいのです。

965 名前:デフォルトの名無しさん :03/03/28 16:20
>>964
WebサーバとActiveXの関連を教えてください。


966 名前:959 :03/03/28 16:51
>>965
WebサーバからActiveX(コントロール、が抜けてました)を
DLし、ActiveXを介して画像のやりとりを行います。

967 名前:デフォルトの名無しさん :03/03/28 17:24
DLも画像のやりとりも通常のHTTPに則ってるのなら、サーバには関係ない話だと思うが。

968 名前:デフォルトの名無しさん :03/03/28 23:55
テキストボックスのスクロールバーのValueって取得できないよね?

969 名前:デフォルトの名無しさん :03/03/29 00:00
>>968
EM_GETTHUMB なんかじゃだめかい?
EM_* 系のメッセージをさがせば結構色々使えるぞ。

970 名前:デフォルトの名無しさん :03/03/29 20:23
あ、TXTBOXやMSFGRIDコントロールでスクロールバーとセルがぴったり
あうようにするにはどうすればいいのでしょうか?
ネットにころがっているコードはほとんど厳密にTWIPを定義している
ようです。スクロールバーのTWIPを知る方法はないもんでしょうか?

971 名前:デフォルトの名無しさん :03/03/29 20:59
>>970
SysInfo コントロールの
.ScrollBarSize じゃないのん?

972 名前:デフォルトの名無しさん :03/03/30 06:48
オブジェクトのプロパティ値を取得するのに
プロパティ名を変数で指定することは出来ますか?
Dim A As String
A = "Top"
とでもして
Text1.Top の値を取得したいのよ。






973 名前:デフォルトの名無しさん :03/03/30 07:18
>>972
うまいやり方は知らないけど
Label1.Caption = getpro(Text1, "Top")
などとして読み込める関数でも作っては?

Public Function getpro(ob As Object, pro As String)
Dim Ret
Select Case pro
Case "Top"
Ret = ob.Top
Case "Left"
Ret = ob.Left
Case Else
Ret = ""
End Select
getpro = Ret
End Function


974 名前:デフォルトの名無しさん :03/03/30 15:13
WSHをVBSで書いているのですが、
comdlg32.ocxを使わないで
「名前を付けて保存」ダイアログを出す方法が知りたいです。

お客さんにocx等は入れたくないといわれて困ってます。

975 名前:デフォルトの名無しさん :03/03/30 15:15
>>974
GetSaveFileName

976 名前:974 :03/03/30 15:26
>>975
ありがとうございます。

それって、comdlg32.dllですよね?

APIビューアで拾った定義をそのまま貼ったんですが、
全然動かないんですよ。
vbsだとasとか使えなくていつになってもエラーが消えないんです。

もしよかったら使い方のサンプルとかないでしょうか。

977 名前:974 :03/03/30 15:30
と思ったら、VBSではDeclare使えないじゃないですか。

どーしよう・・・。

978 名前:デフォルトの名無しさん :03/03/30 16:53
>977
無理。開発環境Orフォームありじゃなきゃ、あのダイアログは出せない。
ActiveX作ってOCXじゃありません。って言い張るのがベストとは言わんがベター。

979 名前:デフォルトの名無しさん :03/03/30 17:02
>>976-977
なんか悪いことしちゃったね。ごめん。
(VBは知ってるが、VBSはほとんど知らないもんで・・・)

980 名前:974 :03/03/30 17:22
当たり前の質問かもしれませんが、
VBで作ったActiveXのDLLって、

VBランタイムがなきゃ動かないですよね?

981 名前:デフォルトの名無しさん :03/03/30 18:27
>>980
うん。余計酷くなるね…

982 名前:デフォルトの名無しさん :03/03/30 18:34
ある程度 C か C++ がわかるなら、BCC でも拾ってくれば?
コモンダイアログのサンプルも Web に落ちてるでしょ。

983 名前:デフォルトの名無しさん :03/03/30 19:24
>>973
情報Thanks!
やっぱり翻訳する関数を自作するしかないのかなぁ・・・・


984 名前:デフォルトの名無しさん :03/03/30 19:32
逆コンパイルってどうやるの?

985 名前:デフォルトの名無しさん :03/03/30 19:51
>>984
時間を逆回転させる


986 名前:デフォルトの名無しさん :03/03/30 23:06
>980
ttp://www.seraphyware.jp/dev/prod/seraphyscripttools/
ttp://csx.jp/~tsuchiya/
コモンダイアログを出現させることの出来る、VB製でないCOMラッパー。


987 名前:デフォルトの名無しさん :03/03/30 23:14
Picture1に画像を読み込ませたいんですが、コードを以下のようにしたんです。

Pricate Sub Form_Lond()
Picture1.Picture = LoadPicture("画像1.gif")
End Sub

でもエラーが出てしまうんです。

LoadPicture("画像1.gif")のところを
LoadPicture("c:\windows\デスクトップ\画像1.gif")
みたいに入れたら上手くいくんですが、はじめに書いたような方法で
表示する方法は無いのでしょうか?
おしえてください

988 名前:デフォルトの名無しさん :03/03/30 23:15
>>987
ChDir

989 名前:デフォルトの名無しさん :03/03/31 08:46
あるHPのハイパーリンク(そのページにあるもの全て)だけ
を何か変数に入れて表示したいのですが、
どのようなコードを書けばいいのでしょうか?


990 名前:デフォルトの名無しさん :03/03/31 08:49
httpを使ってhtmlを取得。
htmlを解析してハイパーリンク先とその文字列を取得。
それを変数に代入。


991 名前:デフォルトの名無しさん :03/03/31 09:18
adodbを使ってデータベース一覧させたいのですが
どうすればいいですか
テーブル一覧とフィールド一覧はできたけど
データベース一覧だけできないので誰か教えてください

992 名前:デフォルトの名無しさん :03/03/31 09:35
埋め埋め

993 名前:デフォルトの名無しさん :03/03/31 09:35
埋め埋め埋め

994 名前:デフォルトの名無しさん :03/03/31 09:36
生き埋め 

995 名前:デフォルトの名無しさん :03/03/31 09:37
(*´д`*)アハァ… VB初心者質問スレ Part23
http://pc2.2ch.net/test/read.cgi/tech/1047743187/l50

996 名前:デフォルトの名無しさん :03/03/31 09:38
ume

997 名前:デフォルトの名無しさん :03/03/31 09:38
梅さん

998 名前:デフォルトの名無しさん :03/03/31 09:39


999 名前:デフォルトの名無しさん :03/03/31 09:39
ぬめり

1000 名前:デフォルトの名無しさん :03/03/31 09:39
しっぽり濡れて

1001 名前:1001 :Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


DAT2HTML 0.26 Converted.