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

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

(´-`).。oO(VB初心者質問スレ Part12)

1 :デフォルトの名無しさん:02/07/14 19:29
前スレはこちら
  Part 1 http://piza.2ch.net/tech/kako/968/968328471.html
  Part 2 http://piza.2ch.net/tech/kako/990/990793224.html
  Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
  Part 4 http://pc.2ch.net/tech/kako/1006/10069/1006922992.html
  Part 5 http://pc.2ch.net/tech/kako/1010/10106/1010624646.html
  Part 6 http://pc.2ch.net/tech/kako/1013/10138/1013844542.html
  Part 7 http://pc.2ch.net/tech/kako/1015/10158/1015836357.html
  Part 8 http://pc.2ch.net/tech/kako/1018/10187/1018794901.html
  Part 9 http://pc.2ch.net/tech/kako/1020/10208/1020830472.html
  Part10 http://pc.2ch.net/test/read.cgi/tech/1022127528/
  Part11 http://pc.2ch.net/test/read.cgi/tech/1024380249/

Win32 API関連スレ
  Win32API 質問箱 Build4
  http://pc.2ch.net/test/read.cgi/tech/1023361418/

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

2 :デフォルトの名無しさん:02/07/14 19:33
http://pc.2ch.net/test/read.cgi/tech/1024380249/992-1000n
どなたかこの続きご教授願います・・・。

3 :デフォルトの名無しさん:02/07/14 19:33
2ゲットにだー

4 :デフォルトの名無しさん:02/07/14 19:35
>>2
Selectedプロパティでなったよ。

5 :デフォルトの名無しさん:02/07/14 19:37
いまだに1のテンプレ変わらんの?ブビィ

6 :デフォルトの名無しさん:02/07/14 19:41
>>4
ListBoxに5個登録して、

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

ってやってみましたが、なんか一番上のチェックしかつきませんでした。

7 :デフォルトの名無しさん:02/07/14 19:46
>>6
全部できるけど?

Private Sub Command1_Click()
For i = 0 To List1.ListCount - 1
List1.Selected(i) = True
Next i
End Sub

Private Sub Form_Load()
List1.AddItem "0"
List1.AddItem "1"
List1.AddItem "2"
List1.AddItem "3"
End Sub


8 :4:02/07/14 19:54
7ではない。

>>6
それでなったよ。なんか選択状態がちょっとおかしいみたいだけど。
OSとかサービスパックとかのせいかな?ちなみに俺はwin2000SP2、VB6SP5

9 :デフォルトの名無しさん:02/07/14 19:56
>>7
それでやってもなりません。
えっと、一回コマンドボタンを押すと、
一番上が選択され(反転表示)、
チェックがつきます。
もう一度押すと、1番上が選択されたまま上から2番目も選択され、
2番目にチェックがつきます。
もう一度押すと、1番目、2番目が選択されたまま、更に3番目も選択され、
3番目にチェックがつきます。
5回押すとようやく全部チェックがつき、
すべてが選択された状態になります。
当然styleプロパティが1-チェックボックスになってるので、
マルチセレクトはできないはずなんですが、なぜかマルチセレクトされちゃってます。

10 :デフォルトの名無しさん:02/07/14 19:57
えっと、Windows98se,VB6sp5です。

11 :デフォルトの名無しさん:02/07/14 20:02
>>9
マルチセレクトっぽくは俺ん所もなる。実行後4と5行目が選択状態になってる。
選択状態がおかしいってのはそういうこと。
最後にlstItem.Refreshしたらどうなる?

12 :デフォルトの名無しさん:02/07/14 20:12
うわ。
すんません。
Clickイベントの中でチェックされてる項目を調べてるコードがあったんですが、
それを外してみたらちゃんと動きました。
(MouseDownに引っ越し)
これが悪さしてたんですね・・。
アホですんません。
色々ありがとうございました。

13 :デフォルトの名無しさん:02/07/14 20:39
textに文字を入れさせ、if文によって、文字が9文字以下ならOK。
10文字以上ならダメって感じにしたいのですが、文字の量を判断するにはどうすればいいのでしょうか?


14 :デフォルトの名無しさん:02/07/14 20:43
>>13
length

15 :デフォルトの名無しさん:02/07/14 20:45
Lenだろ?

16 :デフォルトの名無しさん:02/07/14 20:48
VB厨は氏ね!

17 :デフォルトの名無しさん:02/07/14 21:26
心配しなくともそのうち絶滅する

18 :デフォルトの名無しさん:02/07/14 21:35
>>13
脊髄反射でここ来ないで少しはヘルプ読めよ

19 :初心:02/07/15 00:11
すいません。SQL文の話になるんですが、文字列の中にシングルコーテーションを含む
検索はシングルコーテーション2こ並べてクリアできますよね。でも%_を検索
したいときってどうすればいいですか?

20 :デフォルトの名無しさん:02/07/15 01:13
マルチポストカコ(・∀・)イイ!

21 :デフォルトの名無しさん:02/07/15 01:14
と思ったら誘導されてたのか

22 :初心:02/07/15 01:23
>>21 で教えてください・・・。

23 :デフォルトの名無しさん:02/07/15 01:26
>>22
あちこちのスレで浮気しちゃ駄目よ。
みんなもう寝てるから、時間を開けてまた来たら?


24 :初心:02/07/15 01:30
>>23 hai-

25 :デフォルトの名無しさん:02/07/15 01:49
strName = "名無しさん"
とかしたときに、この変数のアドレスを取得できないでしょうか。Cみたいに。
関数のアドレスだとAddressOfみたいので取得できるみたいですけども・・・
先生助けて。

26 :デフォルトの名無しさん:02/07/15 08:56
>>25
何のために取得したいのか知らんが隠し関数のStrPtrで取得できる

27 :前スレ952:02/07/15 10:10
http://pc.2ch.net/test/read.cgi/tech/1024380249/952 です。
引き続き宜しくお願いします。

958:即レス◆POP.SOKU:02/07/13 17:24
 >>952
 Explorerその他では見れるのか?

見れてます。
Explorerではちゃんとアクセスもできています。


28 :デフォルトの名無しさん:02/07/15 10:15
>>27
とりあえずソース出したら?

29 :デフォルトの名無しさん:02/07/15 11:11
ListViewを詳細表示にして表の用に使ってるのですが、
ListView.ListItems(index).ListSubItems(key) = "書き換える文字"
という感じにリストビューの中身を書き換えると、
ListView全体に再描画がかかってチラつきます。
チラつかせないようにListViewを書き換えるにはどうしたらいいですか?

30 :27(前スレ952):02/07/15 11:30
>>28 出してみます。物凄く単純なんですけど。。。

Dir("パス", vbDirectory + vbHidden + vbSystem)
"パス"のところにはネットワーク上のフォルダのフルパスが入ってます。

Win98seで実行すると"."が返ってきます。
Win2000で実行するとエラーになってerr.Descriptionは「Bad file name or number」です。
WinNT で実行すると""(空文字列)が返ってきます。

2000・NTはいづれもadministrator権限ユーザーで実行しています。
対象フォルダはエクスプローラーではアクセスする事が出来ています。


31 :コギャル&中高生:02/07/15 11:46
http://book-i.net/derr/
コギャルとH出来るサイトはここ
ヌキヌキ部屋へ直行便

http://kado7.ug.to/wowo/


32 :デフォルトの名無しさん:02/07/15 16:11
あのう、VBでテキスト入力された値が小数以下(**.*とか)かどうかを
スマートに判定するにはどうしたらよいでしょか。
Midでピリオドを探すしかないのですかね?教えてください。

33 :デフォルトの名無しさん:02/07/15 16:16
>>30
それではソース出したとは言わんと思われ。

34 :デフォルトの名無しさん:02/07/15 16:19
MidよりはInStrのほうが

35 :デフォルトの名無しさん:02/07/15 16:23
>>32
ヒント:小数を整数化したらどうなるか。それを使ってできないか。

わかるまで考えれ。パズルと同じだ。

36 :デフォルトの名無しさん:02/07/15 16:24
>>34
それだったら25.0等と入力して期待を裏切ってやる。

37 :デフォルトの名無しさん:02/07/15 16:25
>>32
valで数値化するのはダメ?


38 :デフォルトの名無しさん:02/07/15 16:34
個人的には小数点がピリオドじゃない場合もあるから
ピリオドを使うのは好きじゃないんだよな。

39 :デフォルトの名無しさん:02/07/15 16:39
>>36 StrConv使うも〜ん

40 :デフォルトの名無しさん:02/07/15 16:47
>>35
せ、整数化…?(汗

41 :デフォルトの名無しさん:02/07/15 16:48
少数点以下何桁かって整数何桁をlog使って出すように計算で求められんのかな?

42 :デフォルトの名無しさん:02/07/15 16:54
>>41
やって見れ、できるから。
但し最小桁以外は0にしないと…

43 :デフォルトの名無しさん:02/07/15 16:56
小数以下つうのは,どういうこと?
小数点以下に意味のある数字が連なっているということ?
それとも1より小さいつうこと?
前者なら >>35
後者なら1と比較しれ

44 :デフォルトの名無しさん:02/07/15 16:58
「小数を整数化」という言い方が間違ってると思われ。
単に「整数化」する。
それと元の数値を比較すると・・・
って事じゃないの?>>35サン

45 :デフォルトの名無しさん:02/07/15 16:58
てか、束胃腸演算を知らないのか?

46 :デフォルトの名無しさん:02/07/15 17:03
キーフックをしたいんですけど、やりかたを教えてもらえませんか?

47 :デフォルトの名無しさん:02/07/15 17:03
>>46
sethook

48 :32:02/07/15 17:03
すみません。言葉が足らない、というか間違ってました
入力値として受けたいのは整数で(金額や、数量など)
その項目に、25.5などといった少数以下を使用した不正な値が渡されたかを
チェックしたいのです。
ですが申し訳ないことに、>>35氏の整数化の意味がわかりません
すみません。すみません。

49 :デフォルトの名無しさん:02/07/15 17:04
整数化した物を リアルに変えて 元の値と比較、ですよね?

50 :デフォルトの名無しさん:02/07/15 17:05
>>49
そうよん。だからカーディナルな変数でやっちゃ駄目。

51 :デフォルトの名無しさん:02/07/15 17:08
>>42
いや、最小桁以外が0の時はわかるんだが、そうじゃない場合。

52 :46:02/07/15 17:08
>>47
わからないです〜

53 :デフォルトの名無しさん:02/07/15 17:22
ComboBoxでリスト内容を選択したときに上がるイベントは
もしくは変更された事を検知する方法はどうすればいいの?

リストにあるデータを選択するだけではChange イベントが
発生しないようだし。

54 :デフォルトの名無しさん:02/07/15 17:29
>>30
パスの部分は "\\サーバー\共有" の形ですか?
だとしたら、"\\サーバー\共有\" とするとうまくいくかも。


55 :27(前スレ952) :02/07/15 17:29
>>33 ん。こんなもんですよ。
   ホントはDirの戻り値を変数に入れてるくらいです。

この質問はもうダメっすかね?
レスもないし没という事にしておいてください。
続はどうにかしてみます。
ありがとう。

56 :27(前スレ952):02/07/15 17:34
>>54 諦めた直後にレスがっ!

現在は "\\サーバー\共有" の形です。
"\\サーバー\共有\" で試してみました。

WinNTでは値が戻りました!
おそらく2000もいける事でしょう。(現在2000マシン使用中でテストができません。)

ありがとう!ほんとにありがとう!


57 :デフォルトの名無しさん:02/07/15 17:59
>>51
んなものいったん文字列処理かけるとか、negative処理かけるとか、なんとでもやりようはあるじゃん

58 :デフォルトの名無しさん:02/07/15 23:13
Winsockコントロールを使ってサーバー上にあるテキストを読み取りたいのですが、どうすればいいでしょう。
ローカルや、microsoft.comに接続して Get /index.html ってやったのは成功しました。
どうやら www.***.**.** みたいなページは出来るみたいです。
wwwでは無いページが駄目みたいです。具体的に言うと

ttp://members13.tsukaeru.net/nasumi/index.html みたいな感じのページがDLできません。どうやったらいいですか?

59 :デフォルトの名無しさん:02/07/15 23:19
>>58
members13.tsukaeru.net
に接続しろ!

60 :デフォルトの名無しさん:02/07/15 23:32
一応接続はしてる。

Private Sub Command1_Click()
If sckMain.State <> sckClosed Then
sckMain.Close
DoEvents
End If

sckMain.RemotePort = 80
sckMain.RemoteHost = "members13.tsukaeru.net"
sckMain.Connect
End Sub

Private Sub sckMain_Connect()
sckMain.SendData "GET /nasumi/index.html" & vbCrLf & vbCrLf
End Sub
Private Sub Command2_Click()
sckMain.Close
sckMain.LocalPort = 0
End
End Sub

Private Sub sckMain_DataArrival(ByVal bytesTotal As Long)
Dim strBuff As String
sckMain.GetData strBuff
txtHTML.Text = txtHTML.Text & strBuff & vbCrLf
End Sub


61 :デフォルトの名無しさん:02/07/15 23:44
>>60
できたよ。
Option Explicit

Private Sub Command1_Click()
Winsock1.RemoteHost = "members13.tsukaeru.net"
Winsock1.RemotePort = 80
Winsock1.LocalPort = 0
Winsock1.Connect
End Sub

Private Sub Winsock1_Connect()

Winsock1.SendData "GET /nasumi/index.html HTTP/1.0" & vbCrLf
Winsock1.SendData "Host: members13.tsukaeru.net" & vbCrLf
Winsock1.SendData vbCrLf

End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

Dim strData As String
Winsock1.GetData strData
MsgBox strData

End Sub


62 :デフォルトの名無しさん:02/07/15 23:47
>>61 ありがとうございますた!
接続した後にhost: 〜.net みたいなのをおくらにゃならんのですか。送らなくても出来るとこがあるんでわけわかめです。
どうやら俺はhttpプロトコルを勉強しないと駄目のようですネ。


63 :デフォルトの名無しさん:02/07/15 23:50
>>29ですが、不可能ですか?
分かる方ご教授願います。

64 :デフォルトの名無しさん:02/07/16 02:15
ある変数の中身が数値であるか否かの判定方法キボンヌw

65 :デフォルトの名無しさん:02/07/16 02:18
>>64
If Isnumeric(変数) Then
ここ来る前にヘルプ読もうな。

66 :厨房:02/07/16 02:53
ペイントソフト作ってるんですが
マウスダウンしたところからマウスアップまでの大きさの円を描く方法と
描画したものの中身を塗りつぶす方法がわかりません。

67 :デフォルトの名無しさん:02/07/16 08:06
推薦図書スレとこちらで迷ったのですが、あちらはあまりVBの話題が出ていないようなので。

現在Cでプログラムを書いてコンソールで動かしているアプリがあるのですが、
これをGUI化しなければならなくなりました。

GUI作るのは
VC++→面倒
VB→簡単
と聞きましたので、今のプログラムをVC++でDLL化し、VBで作ったGUIから利用しようかと思っています。
こういう用途でVBを利用する場合、お勧めの書籍はありますでしょうか?
VBは全く触ったことがありません。

webで調べてみたのですが、
http://www2.gihyo.co.jp/books/bookinfo.asp?ID=4-7741-0802-2
こういう感じの、VB寄りの本があればいいなぁ、と思っています。

68 :デフォルトの名無しさん:02/07/16 08:15
>>67
そういう人は、迷わずC#にしとけ。
VBと同じ様にGUIが構築できて、かつ、コードはほとんどCと同じ
感覚で使えるぞ。


69 :デフォルトの名無しさん:02/07/16 09:39
>>67
Borland C++ Builder という選択肢もあるよ
とか書くとM$マンセーな皆様に袋叩きにされる罠

70 :デフォルトの名無しさん:02/07/16 09:42
>>67
いや、この人は業務か何かで、C#もBCBも無い環境で事を成さねばならないのでは?
素直にVB本を漁るのが吉。

71 :デフォルトの名無しさん:02/07/16 10:11
VB本といってもCとのデータ連携を詳しく紹介したのなんてあるかあ?

下手すりゃネット上の情報の方が豊富かも。

72 :デフォルトの名無しさん:02/07/16 10:41
もともとのメイン処理がCで書いてあって、それをDLL化して
VBで画面つくるんだよね。
VBって構造体の記述もネストできないし、
スタティックな変数も64KB未満でないと駄目だし、
VBで確保したエリアをDLLに渡す部分も、ちゃんと
リニアなエリアが確保されてるのかどうか良くわからんし、
VB使ったことが無いんだったらお勧めしません。

73 :デフォルトの名無しさん:02/07/16 10:52
VBって考えてる以上にクソだよ。

妙な幻想は抱かないのが吉

74 :デフォルトの名無しさん:02/07/16 11:19
>>71
dllから呼ぶのだから、API使うのと変わりないでしょ。
漏れはそういうふうにdllの方を作ったけどね。

>下手すりゃネット上の情報の方が豊富かも。
この部分は納得、同意。

75 :デフォルトの名無しさん:02/07/16 11:24
>>72
> VBって構造体の記述もネストできないし、
たいした問題ではないと思いますが。同等のことは出来ますし。

> リニアなエリアが確保されてるのかどうか良くわからんし、
数値配列は連続した領域に割り当てられることが保証されてますけど、
それじゃ不十分って意味ですか?

> VB使ったことが無いんだったらお勧めしません。
これには同意します。


76 :デフォルトの名無しさん:02/07/16 11:26
>>72
構造体はネストできます。
64KB未満でなくていけないのは構造体内の固定長配列/固定長文字列の合計サイズです。
VBで確保したエリアについてはMSDNに書いてあるので良くわかってから使ってください。

77 :デフォルトの名無しさん:02/07/16 11:41
>>75
同等のことはできますね。
でも、見通しが悪くないですか?
VBで画面を作って、処理は、DLL側でっていう
作りにするとおそらくVB側とDLL側で同じデータ構造を
定義する必要が出てくると思うんですよ。
で、もともとはCで書いてあるんだからC用の構造体の定義は
すでにある。それを元にVB用の構造体の定義をつくる。
そのとき、もともとのC用の定義は、構造体をネストしてって記述に
なっている。VB用の定義上はそれが許されない。

ぱっと2つの定義を見て同じだってみれないんです。


>リニア...
最初VB+DLLでプログラム作ったとき、
自分で構造体を定義してそれをREDIMで
エリアを確保して、そのエリアのアドレスをDLLに渡して
DLL側でそこに書き込むってことをやろうとしたとき、
大丈夫かなぁって不安になりました。
VBって変数に初期値をセットしないとメモリが割り当てられない
とか(本当?)、String型は単純なバイト並びじゃないとか、

ちょっと支離滅裂ですが、C言語しか使ったこと無い人が
VB+DLLという形でプログラムを作ろうとすると、
予想以上にデータの受け渡しに戸惑うと思う、という事が
言いたいだけですはい。
>>もしかして漏れだけ?


78 :デフォルトの名無しさん:02/07/16 12:04
>>77
構造体定義の中に構造体定義をネストするほうが見通しが
悪いと俺は思うのだが。
まあ,他でネスト内部の構造を参照しないような、その場所だけの
定義だけだったらそれでもかまわんだろうけど。


79 :57:02/07/16 12:31
>>77
もしかして、前スレで ユーザー定義型の配列をDLLに渡そうとして、
はまってた人ですか?

> 同等のことはできますね。
> でも、見通しが悪くないですか?

あんまり気にならないですけど。
というか、私が構造体のネストを使わないだけか。

> VBって変数に初期値をセットしないとメモリが割り当てられない
> とか(本当?)、

そんなことは無いです。
少なくとも参照した時点(つまりDLLに渡した時点)では初期化されてます。

> 予想以上にデータの受け渡しに戸惑うと思う、という事が
> 言いたいだけですはい。
> >>もしかして漏れだけ?

いや、私も最初はその辺で戸惑いましたよ。


80 :デフォルトの名無しさん:02/07/16 13:51
唐突ですいません。
VBで作成したEXEで戻り値を返すにはどいしたらいいのでしょうか?
どなたかおながいします・・・。


81 :デフォルトの名無しさん:02/07/16 14:24
質問です
label1.label2.label3の中の数字が一致したとき
label4の数字が1増えるっていう風にするには
どうすればいいでしょうか?
ちなみにlabel1.label2.label3にはそれぞれ違うタイマーの数字が入ります
なんか意味わかんない文章ですがよかったら教えてほしいです
お願いします


82 :デフォルトの名無しさん:02/07/16 14:35
if文って知ってるか?

83 :デフォルトの名無しさん:02/07/16 15:13
>>80
気になったので調べてみました。

結論:ムリ


84 :愛本:02/07/16 16:00
.dllでかかれた部分をモジュールへ変更してるんですが
ハンドルデータの取扱いがよく分かりません。

Cのソースで
theHogeP = GlobalLock(theHogeH);
theHogeP->*** = XXX;
GlobalUnlock(theHogeH);

のtheHogeP->***の部分をどうVBへ変換したらよいのか
だれか教えてください

85 :デフォルトの名無しさん:02/07/16 16:18
>>84
それはVBが分からないというよりCが分かって無いのでは。

86 :デフォルトの名無しさん:02/07/16 16:48
>>85
VBとCの両方判ってないと思われ。

87 :デフォルトの名無しさん:02/07/16 17:11
>>84
CopyMemory theHogeP + オフセット , XXX , 長さ

かな?もしくは、ユーザー定義型を作って、いったんそっちに移すって手もあります。

dim hoge as ユーザー定義型
CopyMemory hoge,theHogeP,長さ
hoge.*** = XXX
CopyMemory theHogeP,hoge,長さ


88 :愛本:02/07/16 17:13
>>85-86
一応Cは理解してるつもりだが。
Cで書いた自作.dll(動作確認済み)をモジュールへ変更してる
とこなんでVB<->Cの変換部分がよくわかんないんだよ。

具体的にはPRINTDLGのなかのDEVMODEの値を変更したいんだけど

#ACCESS2000のPrinterオブジェクトがつかえない対策

89 :愛本:02/07/16 17:30
>>87
Thanx!!!

追加でもうひとつ質問なんだけど
この場合のCopyMemoryみたいにAPIに構造体をわたす時は
ポインタ渡しになるの?値渡しになるの?

#単純にVBだと考えれば参照渡し(≒ポインタ渡し?)と考えて
#いいんだろうか…

90 :87:02/07/16 17:46
>>89
> この場合のCopyMemoryみたいにAPIに構造体をわたす時は
> ポインタ渡しになるの?値渡しになるの?

Declare 宣言でByRefを指定すればポインタ渡し、ByValを指定すれば値渡しになります。
どちらも指定しなければ、ByRef(ポインタ渡し)です。

詳しくは MSDN の 「DLL および Windows API へのアクセス」 を参照してください。


91 :87:02/07/16 17:49
>>89
追記
ユーザー定義型の値渡しは出来ません。


92 :愛本:02/07/16 17:58
>>87
重ね重ねどうもありがとう

93 :デフォルトの名無しさん:02/07/16 18:35
>>79
その節はどうもお世話になりました。
最近 C# を買ってみました。
私には、こっちのほうが全然わかりやすいです。


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

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

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