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

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

(*´д`*)ハウァッ… VB初心者質問スレ Part16

1 :エロチカセヴン:02/10/11 11:15
>>2-999
悪いことは言わないから(w)、転職、または他部門への異動を真剣に
検討して頂きたい。技術のない技術者(言葉が矛盾しているが w)の
存在は、顧客にとっても、同業者にとっても、迷惑(足手纏い)以外の
何者でもない。


  Part11 http://pc.2ch.net/tech/kako/1024/10243/1024380249.html
  Part12 http://pc3.2ch.net/test/read.cgi/tech/1026642565/
  Part13 http://pc3.2ch.net/test/read.cgi/tech/1029241786/l50
Part14 http://pc3.2ch.net/test/read.cgi/tech/1030947162/
Part15 http://pc3.2ch.net/test/read.cgi/tech/1032706491/-100

Win32 API関連スレ
  Win32API 質問箱 Build4
  http://pc.2ch.net/test/read.cgi/tech/1023361418/
心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
4.インストーラーなどの質問もOK。
五.下ネタもたまにならOK

2 :エロチカセヴン:02/10/11 11:15
  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/tech/kako/1022/10221/1022127528.html


3 :デフォルトの名無しさん:02/10/11 11:22
>>1


4 :デフォルトの名無しさん:02/10/11 11:27
とりあえず使ってみたがなかなかいい感じ
もちろんユーザ登録したぞゴルァ。

5 :デフォルトの名無しさん:02/10/11 11:36
転職したいんだけどね。


ほとんどVB+ORACLEしか使っていない部署で働く
  ↓
デスにより、否デスでも精神的に向いてない
  ↓
この業界から足を洗いたい
  ↓
退職を決意し退職
  ↓
他業種を探すがこのご時世なので仕事が無い
  ↓
結局この業界の戻る
  ↓
しかも中途半端な技術+VBしかできないので結局VBの仕事をやらざるをえない。
  ↓
上に戻る


てなやつがいっぱいいるとオモワレ
この業界の体質を改善しないとVB厨は増えつづけると思うよ。
今後もっとね。


6 :デフォルトの名無しさん:02/10/11 11:44
>>5
かわいそうだな。まあ気を落とさずに頑張れよ。

7 : :02/10/11 11:56
質問。
タブ区切りのString "123 456 789"
をIntegerの動的配列に入れ込む関数とかってありますか?

8 :デフォルトの名無しさん:02/10/11 12:01
>>7
Split。
Splitの戻り値はStringじゃないと駄目な筈だから
Split使った後Intの配列にでも入れれば?

9 :897:02/10/11 12:24
っていうか
このスレちんかすばかりなんでしょ?
VB止める前に人生やめたら?


10 :D:02/10/11 12:24
前スレ897
一寸叩かれ気味ですねぇ。ヘルプ見て分かんなかったらこれ読んでみたら?
   VisualBasic5.0ブリーフィング   翔泳社
分かりやすく書いてあったと思う(知り合いにあげてしまったのであまり覚えてないです)。


11 :デフォルトの名無しさん:02/10/11 13:04
>>1
初心者スレにしてそのコピペか。
荒れる予感

12 :デフォルトの名無しさん:02/10/11 13:06
どうせみんなコピペって知ってるしもう既に無視してるよ。
つーか言われるまで気づかなかった。

13 :デフォルトの名無しさん:02/10/11 13:07
小数点以下を切り捨てたいのですが、どうすればいいのでしょうか?

dim a as long
a = 1.9

このとき a は 2
そこで
Cintのヘルプは丸めるって書いてあったのをみて。

dim a as long
a = cint (1.9)

このとき a は 2
むかついたので「切り捨て」をヘルプで検索

VBのヘルプが出てこない。基本的なことだと思うのですが、
ヘルプに切捨てがのってないなんて・・・・。

14 :デフォルトの名無しさん:02/10/11 13:15
>>13
まぁ落ち着いてヘルプ調べろよ。

15 :デフォルトの名無しさん:02/10/11 13:16
ググったら一発だぞオイ

Dim i As Integer

i = Int(1.9)
MsgBox i



16 :デフォルトの名無しさん:02/10/11 13:19
>>13
http://ws.31rsm.ne.jp/~pension/access/ota2000/c42.htm

17 : :02/10/11 13:24
>>8
できました。ありがとうございました。

18 :デフォルトの名無しさん:02/10/11 13:33
>>14
>>15
>>16
絶対HELPに乗ってると思ってわざとGoogleしらべなかったんです。ごめんね
しかしこのINT関数FIX関数?ヘルプをどう落ち着いて検索すればかかるのよ。
相変わらずMSDNのできのよさに脱帽しました。

19 :デフォルトの名無しさん:02/10/11 13:35
>>12
気にしてないならまあいいか

20 :デフォルトの名無しさん:02/10/11 18:09
 

21 :デフォルトの名無しさん:02/10/11 20:30
コントロールがアクティブかどうかってどうやったら取得できるのでしょうか?
ActiveControlプロパティーがそれかな?と思ったけどなんか違うみたいです。

22 :デフォルトの名無しさん:02/10/11 20:34
>>21
ヘルプ嫁

23 :21:02/10/11 20:37
あ、GetFocusした後LostFocusするまでフラグたてておけばいいのか。

もっとスマートな方法はないですよね?

24 :デフォルトの名無しさん:02/10/11 20:58
>>23 APIのGetFocus使ったらアクティブなコントロールのhWndが返ってきますた

25 :デフォルトの名無しさん:02/10/11 21:02
ActiveControlでいいじゃん。なんでダメなの?

26 :pop ◆CSZ6G0yP9Q :02/10/11 21:03
.netを刈ったのですがどうやったらActiveXを作れるのでしょうか。
使い方が変わったみたいなのでよくわかりません。
ホームページ、本なども調べたのですが見つかりません。
よろしくお願いします・

27 :デフォルトの名無しさん:02/10/11 21:05
>>1
顔文字変えろよバカ

28 :デフォルトの名無しさん:02/10/11 21:11
>>27
顔文字お宅は心でください。お願いします。

29 :デフォルトの名無しさん:02/10/11 21:14
>>28
つれた!!

30 :デフォルトの名無しさん:02/10/11 22:18
>>13
>>18

MSDNで、”切り捨て”でイッパツだったぞ。
MSDNのできのよさ云々を語る前に自分のできのよさを疑えよ。

まあ、それが出来ないからヘルプを見る事もできないんだろうけど。

31 :デフォルトの名無しさん:02/10/11 22:50
>>30
初心者版でそんなに厚くなっても

32 :デフォルトの名無しさん:02/10/11 23:26
オレももうちょっと薄くならないとな

33 :デフォルトの名無しさん:02/10/11 23:35
はげ

34 :デフォルトの名無しさん:02/10/11 23:56
テキストボックスに入力される文字数を制限する為に
作成したチェック関数の一部なのですが、
10文字以上入力されたら以降を切り取る仕様です。
ただし、10Byte目と11Byte目にまたがって
漢字を入力された場合の処理に困っています。

'Str=テキストボックスに入力された文字列です。
'長さが制限バイト数(10Byte)を越えている場合
If LenB(StrConv(Str, vbFromUnicode)) > 10 Then
Str = Trim(StrConv(MidB(StrConv(Str, vbFromUnicode), 1, 10), vbUnicode))
↑この処理だと漢字の前1Byte(前から数えて10Byte目)に残っている
ごみバイトをUnicodeに変換する際、スペースに変換されるので
Trimでスペースを省かれ、とりあえずは仕様どおり仕上げることができました。
ですが、漢字の前1ByteのごみをUnicodeに変換する際、StrConv関数が
必ずしもスペースに変換するとは思えないのでどうしても納得行きません。
アドバイスいただけませんか?他にこんな方法がある、とかでも嬉しいです。
長文失礼しました、よろしくお願いします。
なお、実装はAccess97でのVBAなのでなぜだかテキストボックスに
MaxLenプロパティがないです。

35 :34:02/10/11 23:58
>34
補足です、言葉が足りませんでした。
漢字がまたがってしまった場合は、
漢字ごと(9Byte)で切り捨てたいです。
上手く説明できているか不安ですが、よろしくお願いします。

36 :デフォルトの名無しさん:02/10/12 00:00
>>34
アスキーコードなら1バイト目を調べて漢字かどうか判定できる。
10バイト目をみて漢字かどうか調べて幹事のときは早めに予約すればいいのでは?

37 :デフォルトの名無しさん:02/10/12 00:01
>>34
文字コード見れば簡単じゃん。シフトJIS調べて味噌

38 :デフォルトの名無しさん:02/10/12 00:03
>>34
発見!
http://www.hidecnet.ne.jp/~sinzan/tips/etc/etc_tip08.htm

39 :34:02/10/12 00:04
すばやいレスありがとうございます。
とりあえず言われた方向で調べてみます。
また報告に来ますね。
ありがとうございました。

40 :デフォルトの名無しさん:02/10/12 00:07
>>39
もうくんな。氏ね。

41 :デフォルトの名無しさん:02/10/12 00:13
34がプロのプログラマーでないことを祈ります。

42 :デフォルトの名無しさん:02/10/12 00:14
たぶん社内SE&PGってとこでしょう

43 :デフォルトの名無しさん:02/10/12 00:16
>>41=>>42
じさくじえーん

44 :34:02/10/12 00:17
言われた方法でいけそうです。
あと、最後の疑問点なんですが、
Windowsでテキストボックスに入力される文字は
全てシフトJIS(MS漢字)コードと思っていいのでしょうか?
Unicodeってないですよね?

>41
プログラマーの見習いです。
これからがんばります。。

45 :デフォルトの名無しさん:02/10/12 00:31
>>44
会社の先輩プログラマーに聞けばいいのに。

答えは微妙。少なくとも今やっている取得方だとシフトJISと思ってていい。

46 :デフォルトの名無しさん:02/10/12 00:31
選択したディレクトリの中の一時ファイルを一括で消したいのですが
実行すると「パスが違う」と怒られます。助けてください。
-- 以下ソース --
Private Sub Command1_Click()

ChDrive Drive1
ChDir Dir1

On Error GoTo Errorhundra
Kill "*.tmp"
Exit Sub

Errorhundra:

MsgBox "tmp file was nothing there."

End Sub


47 :デフォルトの名無しさん:02/10/12 00:35
>>46
パスが違うのでは?
デバッガで動かして値を確認してみそ。

48 :デフォルトの名無しさん:02/10/12 00:36
> Kill "*.tmp"

何なのこれ?ワイルドカード使えるの?

49 :デフォルトの名無しさん:02/10/12 00:37
>>46
ウィルスでつか?

50 :デフォルトの名無しさん:02/10/12 00:40

Kill 関数を使って、ディスクからファイルを削除するコード例を次に示します。

' Assume TESTFILE is a file containing some data.
Kill("TestFile") ' Delete file.

' Delete all *.TXT files in current directory.
Kill("*.TXT")


VB.netでは少なくとも使える

51 :48:02/10/12 00:41
あ、使えるんだね。ゴメン。

52 :デフォルトの名無しさん:02/10/12 00:41
>>50
VB6に決まってるだろ。ぼけぇ。

53 :デフォルトの名無しさん:02/10/12 00:42
VB6でも使えるようですよ
あとChDrive Drive1は要らないと思われ

54 :デフォルトの名無しさん:02/10/12 00:44
>>53
いらないけどあっても問題ない。そのせいではない。

55 :34:02/10/12 00:45
>45

実は会社で使いまわしているコードが
>34に書かせていただいたやつなのです。
見せていただいて「ほんとにこれでいいの??」っていう
気持ちが消えなくて今日帰宅、書き込みさせていただきました。
まぁ小さな会社ですので仕方ない?などと思っています。

56 :デフォルトの名無しさん:02/10/12 00:45
>>53
> あとChDrive Drive1は要らないと思われ

要ります。

57 :デフォルトの名無しさん:02/10/12 01:07
Visual Basic6.0ランタイムでVisual Basic5.0でつくったものももちろん動く??

58 :デフォルトの名無しさん:02/10/12 01:09
>>57
動かない。VB5用のランタイムが必要。

59 :57:02/10/12 01:21
>>58ありがと!

60 :デフォルトの名無しさん:02/10/12 01:28
>>18
君は泳ぎ方を覚えずにいきなり飛び込み台からダイブするやしか。

>>26
作れないわけではないが、.netでActiveXを何で作りたいの?
.netでそんなあほなことはする意味なし。

61 :53:02/10/12 01:28
ChDriveがあった場合、
Sub Drive1_Change() 内に
  Dir1=Drive1
が無い場合にエラーを起こす原因になると思います

62 :デフォルトの名無しさん:02/10/12 01:37
>>61
それ以前に、
> ChDir Dir1
このディレクトリとは別のドライブが
カレントドライブになっていた場合どうすんの?


63 :53:02/10/12 01:45
あら、ほんとですね、今やってみたら
ChDrive入れないとApp.pathでちゃんと
ドライブ移動してませんでした。スイマセン

64 :デフォルトの名無しさん:02/10/12 08:38
MouseMoveイベントって、コントロールからカーソルがはずれると発生しなくなりますが、
カーソルがはずれても発生するようにする方法があった気がするのですが。
たしか1行ぐらいちょっと追加するだけだった気がしますが思い出せません。

65 :デフォルトの名無しさん:02/10/12 08:50
SetCaptureのことかな?

66 :デフォルトの名無しさん:02/10/12 09:00
あ、それですそれ。
APIだかVBの機能だかさえ忘れてました

67 :_:02/10/12 11:16
Byte型配列を結合したいんですけどどうやればいいんですか。
A() = A() & B()
とかやってもエラー出ます

68 :D:02/10/12 11:52
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Sub Command1_Click()
   Dim a(1000) As Byte
   Dim B(10) As Byte, i
   For i = 0 To 10
      a(i) = i
   Next i
   B(0) = 100
   CopyMemory a(11), B(0), UBound(B) + 1

End Sub
こんな感じ?

69 :D:02/10/12 11:55
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Sub Command1_Click()
   Dim a(1000) As Byte
   Dim b(10) As Byte, i
   For i = 0 To 10
      a(i) = i
   Next i
   b(0) = 100
   CopyMemory a(11), b(0), UBound(b) + 1

End Sub

a(11)以降にb()の内容が入ります。
こんな感じ?

70 :D:02/10/12 11:56
ダブっちゃいました。すいません

71 :897:02/10/12 13:33
前スレ897です(w
おかげさまでユーザーコントロールでコントロールの作成ができたんですけど、
あと一歩のところで躓いてます
カーソルがコントロールの上にあるか調べたいのですが
1.親フォームがコントロールのプロパティーを変更する
2.コントロール内でSetCaptureを使ってどうにかする
3.コントロール内でGetCursorPosを使ってどうにかする
どれがよいでしょうか?
できたら1はさけたいんですが。
2はやってみたところ、他の同一コントロールとSetCaptureがかぶってしまうようで
うまくいかないっぽいです。

72 :897:02/10/12 14:35
失礼しました。。
2のSetCaptureでできました。

73 :897:02/10/12 16:20
フォントプロパティーがどうにもわかんねぇYO!。・゚・(ノД`)・゚・。

Private m_Font as Font

Public Property Get Font() As Font 'Font
  Set Font = m_Font
  UserControl_Resize 'コントロールを描画
End Property

Public Property Set Font(ByVal fFont As Font)
  Set m_Font = nFont
  PropertyChanged "Font"
End Property

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
  Set Font = .ReadProperty("Font", Ambient.Font)
End Sub

Private Sub UserControl_Resize
  〜描画〜
End Sub

ってな風にしてるんだけど、実行中にFontプロパティーを設定しても反映されない
いや、されているんだけど、UserControl_Resizeが実行されてなくて描画されない
どこがいけないのかなぁ。

74 :897:02/10/12 17:54
やっぱりダメだ。どうにもわかんない
Public Property Get Font() As Font

Public Property Let Font(fFont as Font)
だとプロパティー取得時にGetが、設定時にLetが呼び出されるんですよね?

Letの代わりにSetにするとなんかどうにもよくわかりません。
ぱっと見Setは一度も呼び出されない感じですが・・
そして設定時にもGetが呼び出されるようだし。
どうなっているのでしょうか?

75 : :02/10/12 18:48
VB5で8方向スクロールをやってみた。
Bitbltで表画面に描いても、反映されるのは
Form1.mainscreen.Refreshするとか
Form1.mainscreen.Hide から.Showとかしないと駄目でした。
(mainscreenはPictureBox)
とすると、いちいち裏画面に描く必要も無いのでは?
と思うが、何かおかしいでしょうか?
ちなみにCのスクリプトYaneuraGS2kより2割ほど遅いだけなので捨てがたい。
VC持ってないし。
それからBitBltより高速化したAPIはどっかに無いの?

76 :デフォルトの名無しさん:02/10/12 18:56
>>67
ReDim a(10) As Byte
Dim b(20) As Byte

a = CStr(a) & CStr(b)

77 :デフォルトの名無しさん:02/10/12 19:02
>>74
Property Setでは、呼び出し元の方にも
Setステートメント付けてる?

78 :897:02/10/12 19:27
>>77
呼び出し元ってプログラムの方でしょうか?
OriginalControl.Font="Arial Black"
ってな感じですが。

79 :デフォルトの名無しさん:02/10/12 19:41
>>78
> 呼び出し元ってプログラムの方でしょうか?
そう。

Property Set Font(fFont As Font)
としているなら、呼び出し元は
Set OriginalControl.Font = [Fontオブジェクトへの参照]
ではないの?

それと >>73
> Public Property Set Font(ByVal fFont As Font)
>  Set m_Font = nFont
はスペルミスだよね。

80 :897:02/10/12 20:50
そうでもないような。。
他のサンプルを見る限り。
> Public Property Set Font(ByVal fFont As Font)
>  Set m_Font = fFont
こうですね。

81 :デフォルトの名無しさん:02/10/12 20:58
> そうでもないような。。
> 他のサンプルを見る限り。

おいおい、何言ってんの?

82 :897:02/10/12 21:03
へ?何言ってるって、そのままですよ。
む、勘違いかな?
呼び出し元=オリジナルコントロールが貼り付けてあるフォーム
でOKかな?

83 :デフォルトの名無しさん:02/10/12 21:09
>>80
> そうでもないような。。
これは何の話のこと?

84 :デフォルトの名無しさん:02/10/12 21:26
>>83
897の脳内に存在するパラレルワールドです

85 :897:02/10/12 22:04
>>83
>Property Set Font(fFont As Font)
>としているなら、呼び出し元は
<Set OriginalControl.Font = [Fontオブジェクトへの参照]
>ではないの?
のこと。

ようやく分かってきた〜!!
プロパティーを変更するとまず
Public Property Get Font() As Font 'Font
  Set Font = m_Font
End Property
が呼び出されて、Font=m_Fontがセットされる。
上のプロパティーが実行された後、m_Fontが指定したプロパティーの値になる
ってかんじかなぁ?
Debug.Printで見てたらそんな感じだった。

っていうかもうわけわけがわからなくなりました

86 : :02/10/12 22:20
>>85
回答に耳を傾けようとせずに1人でオナニー報告なら
ここに書き込む必要はないと思うが。

はっきり言ってウザい。

87 :897:02/10/12 22:43
ようするに
/プログラム本体/
Private Sub Command1_Click()
  OriginalControl.Font="Arial"
End Sub

/コントロール/
Public Property Get Font() As Font
  Set Font = m_Font

  Debug.Print m_Font ' Debug.Print Fontでも同じ??
End Property

で、プロパティーに指定した値が表示されればいいんですよ。
上のだと、指定する1個前の値が表示されます。

他のサンプルを見ると上の中に
Set hogetext.Font = m_Font
ってのが入っていてそこで変更されるのでOKなようです
自分が作っているのはラベルとか使わないで自分で描画するものなので、
この方法は使えないと思うのですが。

88 :デフォルトの名無しさん:02/10/12 22:48
画面全体のWidthやHeightからタスクバーの幅を引いた大きさを取得するにはどうすればいいのでしょうか?
フォームを全画面表示しないでウィンドウ表示として画面いっぱいにフォームを表示させたいです。


89 :デフォルトの名無しさん:02/10/12 22:59
タスクバーの幅はデスクトップの幅+αじゃないのか?
それとも右か左にタスクバー置いてんのか?
まあどっちにしてもタスクバーのウィンドウハンドルを取得してGetWindowRect汁。

90 :デフォルトの名無しさん:02/10/12 23:00
>>88
GetSystemMetrics


91 :897:02/10/12 23:00
聞いてばっかりじゃあれなので・・
>>88
SysInfo OCXってのをつかってもできるようですがまぁAPIを使って
SystemParametersInfo
と引数SPI_GETWORKAREAで取得できるようです。

92 :897:02/10/12 23:01
ありゃ、遅かった
ってか3人ともAPIが違う(w

93 :デフォルトの名無しさん:02/10/12 23:04
>>89
タスクバーっていっぺんに上下左右すべてにおくことが出来るの知ってるのか?
まぁ正確にはタスクバーといわんかも知れんが。

94 :88:02/10/12 23:10
「フォームサイズ」
縦幅と横幅をあわせて幅と言ってしまってました。
指摘どおり
GetSystemMetrics
GETWORKAREA
を調べてみます。
こちらはavailable.widthのようなかんじなのかな、
と予想してキーワードavailableで探していたのですがそれではなかったみたいです。

95 :デフォルトの名無しさん:02/10/12 23:11
>>897
だから79が指摘してるだろ。
> OriginalControl.Font="Arial"
の部分が間違ってるんだよ。

これでもわからん?
お前のコードはFontをセットしてるんじゃなくて
Fontを参照してからそのNameプロパティを設定してるんだよ。

96 :88:02/10/12 23:14
GetWindowRect
もやってみます。

97 :95:02/10/12 23:14
>>897じゃなかった。 >>87だ。

98 :デフォルトの名無しさん:02/10/12 23:18
>>95
聞く耳を持たないバカなんだから放置しとけ。

99 :897:02/10/12 23:22
>>95
それやるとオブジェクトが必要ですって表示されるんですが。
じゃぁSet Original〜〜じゃなくて
Original〜〜だけでOKにするにはどうしたらよいのでしょう?
>>98
聞いてますよ。

100 :95:02/10/12 23:32
>>99
> それやるとオブジェクトが必要ですって表示されるんですが。

そりゃオブジェクトを指定してないからだろ。
お前がやりたいことは
 Fontのセット
 フォント名(Font.Name)の指定
このどっちなのよ?

Fontのセットなら多分 Set Original〜〜じゃないと無理。
フォント名の指定だけなら Property Getだけでできる。

101 :897:02/10/12 23:40
>>100
フォントのセットです。
>Fontのセットなら多分 Set Original〜〜じゃないと無理。
これがどうにも意味わからんです。
他のサンプルみるとそんなの使ってないし。

102 :95:02/10/13 00:01
>>101
Property SetでなくProperty Letで宣言すれば
Set無しで代入可能だな。
ただその場合も代入元には文字列でなく
Fontオブジェクトを指定しないといけない。

103 :88:02/10/13 00:04
ありがとうございます。
指示されたキーワードで調べていくうちに
ttp://hp.vector.co.jp/authors/VA013031/tips/api001.htm
このページに出会ったのでコピペして実行してみたところできました。

104 :897:02/10/13 00:12
>>102
ええ。最初はLetでやってたんですけど
デザイン時のプロパティーのフォントの項目って、
コモンダイアログから選択できるようになってるじゃないですか。
Public Property Let Font(fFont as Font)
でやってOrigonalControl.Font〜でやるとオブジェクトが必要ですってでるので
(っていうかオブジェクトについてよく分かっていない)
他のサンプル見るとどれもPublic Property Set Font(fFont as Font)
となっているのでまねしてみたのですが。

105 :897:02/10/13 00:17
あうあう
>コモンダイアログから選択できるようになってるじゃないですか。
で、LetじゃなくてSetでやるとそれができるようになりました。

106 :95:02/10/13 00:25
>>104
なんか今イチ意味がわからんけど、
> Public Property Set Font(fFont as Font)
これが普通だと思うし、こう宣言したなら
Set OrigonalControl.Font =
にしろよ。

一体Setの何が不満なの?
サンプルではSetを使ってないと言うならそのサンプルを上げてみ。

107 :デフォルトの名無しさん:02/10/13 00:26
そもそもVBなんぞでオブジェクト指向やろうとするから混乱する。
ポインタ知らないと扱える代物じゃない。

108 :デフォルトの名無しさん:02/10/13 00:29
>>107
オブジェクト指向とポインタにいったい何の関係が?
ポインタでつまずいたの?

109 :デフォルトの名無しさん:02/10/13 00:55
引数付でプログラムの呼び出しって出来ないのでしょうか
shell や call では上手くいかないようです。
messege.exe open (openが引数)みたいにやりたいんだけどダメ?

110 :デフォルトの名無しさん:02/10/13 00:58
Shellでできます。

111 :897:02/10/13 00:59
サンプルです
’プログラム本体
Private Sub Command1_Click()
  uctUDText1.Font = "Arial Black"
End Sub
’ユーザーコントロール
Private pFont As Font 'フォント
Private Sub UserControl_Initialize()
  Set pFont = Text1.Font
  Text1.Text = 10
End Sub
'プロパティの値を読みこみ
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
  Set pFont = PropBag.ReadProperty("Font", pFont)
  Set Text1.Font = pFont
End Sub
'プロパティの値を保持
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
  PropBag.WriteProperty "Font", pFont
End Sub
Public Property Get Font() As Font
  Set Font = pFont
End Property
Public Property Set Font(mnewFont As Font)
  Set pFont = mnewFont
  Set Text1.Font = mnewFont
  PropertyChanged "Font"
End Property
これだとばっちりです。
これはTextコントロール上に文字を表示していますが、そうじゃなくて自分で文字列を描画します。
具体的にはText1.textがUserControl.Paintになるかんじです

112 :95:02/10/13 01:12
>>111
だから上で書いたようにそのコードの
> uctUDText1.Font = "Arial Black"

というのはFontをセットしてるわけじゃなくて、
Fontを参照してそのNameプロパティを設定してるだけなんだよ。

> Public Property Set Font(mnewFont As Font)
このプロシージャは全然使われてないんだよ。

113 :95:02/10/13 01:15
あ、全然使われてないこともないな。

114 :897:02/10/13 01:19
>>112
なるほど。ようやく意味が分かりました。
Setの部分はデザインモード用ですね。
で、Textコントロールを使わず、
自分で描画するようにすると1回分遅れて反映するのですが、どうすればよいのか・・

115 :デフォルトの名無しさん:02/10/13 01:31
>>114
> Setの部分はデザインモード用ですね。
わかってねーな。


116 :897:02/10/13 01:32
>>115
む、その通り。わかってないです

117 :D:02/10/13 03:31
MSDNの”ユーザー コントロールへの Font オブジェクトの追加”読んでみて。
平たく言うとフォント変更時にイベントを発生させるにはstdFontオブジェクトを
WithEvent 付きで宣言する必要があります。
これでFontChangedイベントが発生するようになります。詳しくはMSDNで

ここからは>>897の本文からの予想です。
独自のコマンドボタンを作りたいようなので以下を参考にしてみてください。
MSDNとは違いますが。
手法−ユーザコントロールにLabelコントロールを貼り付けFontを変更する。
コントロール名はlblCaptionにします(紛らわしいけど)あとAlignment
を中央揃え.背景を透明にしておきます

つづく

118 :D:02/10/13 03:32
続き

Public Property Get Font() As StdFont
    Set Font = UserControl.lblCaption.Font
End Property
Public Property Set Font(ByVal vNewValue As StdFont)
    Set UserControl.lblCaption.Font = vNewValue
    With UserControl.lblCaption         ’ラベルの縦位置を中央に
        ’念のため空にならないように...
        .Height = UserControl.TextHeight(UserControl.lblCaption.Caption & "X") 
        .Top = (UserControl.Height - UserControl.lblCaption.Height) / 2
    End With
    PropertyChanged "Font" 
End Property
Private Sub UserControl_Resize()
    With UserControl.lblCaption         ’ラベルの縦位置を中央に
        ’念のため空にならないように...
        .Height = UserControl.TextHeight(UserControl.lblCaption.Caption & "X") 
        .Top = (UserControl.Height - UserControl.lblCaption.Height) / 2
        .Width = UserControl.Width
        .Left=0
    End With
End Sub
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
    PropBag.WriteProperty "Font", UserControl.lblCaption.Font, Ambient.Font
End Sub

これならフォントの初期化はラベルコントロールがやってくれます。
かなり偏った予想ですがFontについてはこれでいけるんじゃないんですか?
思いつきなんで自信ないです突っ込み求ム

119 :897:02/10/13 07:30
>>平たく言うとフォント変更時にイベントを発生させるにはstdFontオブジェクトをWithEvent 付きで宣言する必要があります。
おおおこれですこれ!!
続きの部分、わざわざ申し訳ありませんでしたが、使うまでもなくできました。
ありがとうございました。

120 :D:02/10/13 11:26
>続きの部分、わざわざ申し訳ありませんでしたが、使うまでもなくできました。

http://www.oak.dti.ne.jp/~niku/R3_temp.swf?inputStr=%82%BF%82%C6%8E%63%94%4F%81%49

Public Function GetLupin(DT As String)

Dim Buff As String

For i = 1 To Len(DT)
    Buff = StrConv(Mid(DT, i, 1), vbFromUnicode)
    If LenB(Buff) = 1 Then
        GetLupin = GetLupin & "%" & Trim(Hex$(AscB(Buff)))
    Else
        Buff = Format$(Hex$(AscW(Buff)), "@@@@")
        GetLupin = GetLupin & "%" & Right$(Buff, 2)
        GetLupin = GetLupin & "%" & Left$(Buff, 2)
    End If
Next i
End Function



121 :897:02/10/14 15:00
>>120
ワラタ

122 :デフォルトの名無しさん:02/10/14 16:12
最近VB使ってると、何もしないのに
ぽかぽか落ちるのは何故っすか?

XPのSP1入れたあたりから異様に落ちやがります。



123 :デフォルトの名無しさん:02/10/14 16:19
>>122
VB.NET買えというMSからのメッセージです。

124 :デフォルトの名無しさん:02/10/14 16:19
まぁ、状況を詳しくいえないんじゃ解決せんだろな。

125 :デフォルトの名無しさん:02/10/14 17:22
VB6で透明レイヤーって作れますか?

126 :デフォルトの名無しさん:02/10/14 18:24
>>125
>透明レイヤー

VBユーザは何の前提も無くすぐこういう言葉を使う。
だからDQNだと言われるんだ。

127 :デフォルトの名無しさん:02/10/14 19:05
>>125
126ではないが言葉の意味を咀嚼して書いて欲しい。

128 :デフォルトの名無しさん:02/10/14 22:03
On Error GoTo 0
ってどこ行くの?

129 :デフォルトの名無しさん:02/10/14 22:06
>>128
10行目?

130 :デフォルトの名無しさん:02/10/14 22:15
>128
On Error Resume Nextを無効にするの

131 :128:02/10/14 22:16
>>129
Sub temp()
1
2
3

End Sub
として、Go Toはプロジージャ(モジュールって言うんだっけ?)内の〜行目に飛ぶ命令としても使えるってこと?

132 :128:02/10/14 22:18
>>130
おっ ありがと
エラー用のコードをぜんぜんかかないから知らなかった

133 :デフォルトの名無しさん:02/10/14 22:20
>>131
遙か昔はどこにでも飛んで行けた。ある意味最強の制御構造。

134 :128:02/10/14 22:23
>>133
へぇ 最近のVBじゃ封印されたのか
-----------------------------------
(ヘルプより)
GoTo line

引数 line は必ず指定します。引数 line には、任意の行ラベルまたは行番号を指定します。
------------
ラベルはコロンをつけるやつだけど、行番号とはなんや?

135 :デフォルトの名無しさん:02/10/14 22:24
>>134
使えるのか・・・行番号。さすがBASIC

136 :128:02/10/14 22:26
>>135
今頃おもいだしたけど
10
20
30
というやつか。いいねえ。この行番号愛用しよう。

137 :デフォルトの名無しさん:02/10/14 22:26
1行目から数えた行の番号だと思う

138 :128:02/10/14 22:30
>>138
1行目って言うと、
Formモジュールの先頭からかあ。
番号重複せずに行番号つかうのもめんどそうだなあ。
確かにプロシージャレベルだと
Command1.10
ってかんじに10行目を指定するはずだものね。

139 :128:02/10/14 22:31
>>137ですた

140 :デフォルトの名無しさん:02/10/14 22:43
>>138
↓のことでしょ。

Sub Main()
10 GoTo 30
20 MsgBox "A"
30 MsgBox "B"
End Sub

141 :128:02/10/14 22:48
>>140
とすると、やっぱり
これから実行されるGoToとおなじプロジージャにある行番号
にジャンプできるのか。

142 :デフォルトの名無しさん:02/10/14 22:52
構造化、オブジェクト指向文化にドロップキックかますような仕様だなぁ・・・。

143 :デフォルトの名無しさん:02/10/14 22:56
10
20
30
・・・
なんともいえずいい味だしてる。

144 :デフォルトの名無しさん:02/10/14 23:12
うーん・・・世代交代を感じるなあ・・・
昔は行番号がいやでいやで、エディタでプログラム書いて
あとから番号付けるプログラムに入れてソース作ってたよ。


145 :デフォルトの名無しさん:02/10/14 23:15
追加プログラムの挿入がめんどっつい

146 :デフォルトの名無しさん:02/10/14 23:15
>>144 なるほど

147 :デフォルトの名無しさん:02/10/14 23:21
>>144
GOTOは使わない方向で?

148 :デフォルトの名無しさん:02/10/14 23:24
最初はじめたころ、BASIC=エディタ、デバッガ、環境だったなあ
当時は行番号のないプログラムってのが理解できなかった

149 :デフォルトの名無しさん:02/10/14 23:48
RENUM 100

150 :デフォルトの名無しさん:02/10/14 23:51
>>147
gosubを使う。ラベル張って。
N88BASICの頃だよ。

151 :デフォルトの名無しさん:02/10/14 23:52
>>150
うんうん、厨房の頃FORとかWHILEとか使わず全部IFとGOTOでやってたんで。
今考えるとあのときは才能に満ちあふれてたなぁ・・・それが今はどうだ・・・。


152 :デフォルトの名無しさん:02/10/14 23:56
ラベルもRENUMもなかったN60BASICが最強かも

153 :デフォルトの名無しさん:02/10/14 23:59
>>151
いやまったく。

154 :デフォルトの名無しさん:02/10/15 00:01
ROM-BASIC時代を懐かしむご老人方のスクツか、ここは。

155 :デフォルトの名無しさん:02/10/15 00:05
VBしらないもん

156 :デフォルトの名無しさん:02/10/15 00:10
win95にMDACインストールしようと思って間違ってMDACの後にDCOM for windows95
をインストールしてしまいました。
おかげでMDACが正常にインストールできないんですが誰か直す方法知ってます?

157 :デフォルトの名無しさん:02/10/15 00:31
私はMSX-BASICにはまってた素チンです。


158 :デフォルトの名無しさん:02/10/15 01:11
ピポッ♪

159 :デフォルトの名無しさん:02/10/15 11:50
行番号ってさ 最初は 10 ステップで 作るんだけどさ、
デバッグしていったり 機能追加していくと その 10の中を1 ステップずつで やってたりして
苦労したよなぁ。
で、よく 行番号を最初から 振りなおさせたりしてよ、意味ねぇじゃんかってカンジ〜

160 :デフォルトの名無しさん:02/10/15 11:57
RENUMするだけじゃん。別にたいしたことではない。

161 :デフォルトの名無しさん:02/10/15 13:01
改行コードを挿入するにはなんと書いたらいいですか
Label1.Caption = Label1.Caption & 改行

162 : :02/10/15 13:06
vbCrLf

163 :デフォルトの名無しさん:02/10/15 13:12
>>162 vbctrl だと思ってた。
vbCrLf か ありがとう

164 :デフォルトの名無しさん:02/10/15 13:30
vbNewLineでもいいぞ

165 :デフォルトの名無しさん:02/10/15 13:43
>>164 使い分け方が
ありますか

166 :デフォルトの名無しさん:02/10/15 13:50
>>165
好みで使い分けろ

167 :デフォルトの名無しさん:02/10/15 13:54
>>165
ここまでヒントもらったんだから後は自分でやったら

168 :デフォルトの名無しさん:02/10/15 14:01
>>167 ついでにききました。

 ありがとうございました。


169 :デフォルトの名無しさん:02/10/15 22:46
SetCaptureって、ReleaseCaptureせずになんども実行しても問題ない?

170 :デフォルトの名無しさん:02/10/16 00:14
Dim a as Long
Dim b as Long

a = &HFFF
b = &HA0A0
b = b Or (&H100000 * a)

予定ではこうなるはずが b = &HFFF0A0A0

オーバーフローになります
どうすればいいんでしょうか?

171 :デフォルトの名無しさん:02/10/16 00:21
>>170
Long型整数の取りうる値の範囲を16進表記で調べてみるといい。



172 :デフォルトの名無しさん:02/10/16 00:23
>>170
桁そろえて文字列としてくっつけとくとか。

&H100000 * aがLongに収まらないのでアウト。
&H表記はLongの範囲まで。
OrもLongまで。


173 :デフォルトの名無しさん:02/10/16 00:24
>>170
あるいは、Byte配列に小分けに入れておいて、バイト単位で論理和を
取るとか。いぜれにせよ、でかい桁は自前で処理。

174 :なつみ:02/10/16 01:01
Docmd.setwarnings false
Docmd.Domenultem acFormbar,acEditMenu,8,,acMenuVer70
Docmd.Domenultem acFormbar,acEditMenu,6,,acMenuVer70
Docmd.setwarnings True
Docmd.close

この部分なのですが、今一なにをやろうとしてるのかが分りません
。Docmd.Domenultemは現在、Docmd.Runcommand に変わっているのは分っている
のですが・・・。
それでも今一なにをやろうとしているのかが分りません。
どなたかお願いいたします。



175 :デフォルトの名無しさん:02/10/16 01:09
ゲ製作技術で回答が無かったのでこっちに来ました。
VBはインタプリタでないのにエミュレータより遅いのは何故?
VBのコーディングで何が一番ネックで何に気をつければいいんでしょう?
スーファミ時代のアクションゲームくらい出来ませんか?



176 :デフォルトの名無しさん:02/10/16 01:12
>>175
エミュレータより遅いってどうやって判断したの?
GDIではなく大半のエミュレータ・ゲームで使用しているDirectXを
使えばVBでも十分早いと思いますが。

177 :175:02/10/16 01:23
50キャラのアニメ処理+スクロールでチラツクから。
DirectXはやった事ないけど、BitBltより速いの?

178 :デフォルトの名無しさん:02/10/16 01:25
>>177
ダブルバッファぐらいやってるよな。

179 :175:02/10/16 01:31
ダブルバッファって
裏画面描きの事かな?
それとも描画をパスする事かな?
どっちもやってないけどそれよりもスクロールだけでも遅い。

180 :デフォルトの名無しさん:02/10/16 01:42
>>179
もしかしてちらつきの原因は遅いからだと思っている人?

181 :デフォルトの名無しさん:02/10/16 04:02
VBScriptを使って↓の文字列
<a name="a1"></a><dt><a href="menu:1">1</a>
<a name="a2"></a><dt><a href="menu:2">2</a>
<a name="a3"></a><dt><a href="menu:3">3</a> を
 ↓
<dt>1
<dt>2
<dt>3 に変換したいんですが、この場合は正規表現を使わないといけませんか?
もしよろしければサンプルコードを書いていただければ助かります。
さすがにReplaceで変換を1000行ベタ打ちするのはアレなんで。(w

182 :デフォルトの名無しさん:02/10/16 07:45
>>181
ループとinstr()やmid()を使えばできるだろ

183 :デフォルトの名無しさん:02/10/16 08:33
>>181
なにが「(w」だ。なんで赤の他人のおまえにヘラヘラされながら
仕事らしきものを丸投げされにゃいかんのだ?
アフォか。死ね。

184 :デフォルトの名無しさん:02/10/16 09:29
>>174

(1) ヘルプという言葉はご存知ですか?
(2) ヘルプの存在意義、使用方法はご存知ですか?
(3) ヘルプの起動方法、キーワードの検索方法はご存知ですか?


185 :デフォルトの名無しさん:02/10/16 09:34
>>184
いや、DoMenultemで何をやってるかまでは
ヘルプじゃわかんないんだよね、これが。
その前にスレ違いのような気がするけど。

186 :デフォルトの名無しさん:02/10/16 09:50
画面&印刷で文字幅を倍とかにしたいんだけど
CreateFont の nWidth ってどうやって値を出すの?

187 :デフォルトの名無しさん:02/10/16 10:14
VBから端末にExcelがインストールされているかどうかを、もっとも簡単にチェックする方法を
教えてもらえませんでしょうか。やっぱレジストリかなんかですか?(あまり知識ないっす…)

188 :デフォルトの名無しさん:02/10/16 10:15
>>187
CreateObjectでExcel.Applicationを作成しようとして
エラーになるかどうかで判断できるんじゃないか?

189 :187:02/10/16 11:13
エラー処理で!
簡単っちゃあ簡単ですが、チョトビクリツしました。
どうもです。

190 :デフォルトの名無しさん:02/10/16 11:15
>>183
別におまえに聞いてるわけじゃないとおもうが。そこまで腹が立つか?

>>181
でもどんな頼み方でもソース書いてくれっていうやつはむかつく
自分で考えたり、調べたり、自分で書いたソースを試したりする気まったくなしって感じが。
絶対に進化しないからなこういうやつは。
まあ文章からして、かしこくなる気がない雰囲気むんむんだけど

191 :デフォルトの名無しさん:02/10/16 11:23
>>186
何もしないで 倍幅にする方法

判→半リ
頼→束頁


欠点:できる文字が少ないということ(w

192 :デフォルトの名無しさん:02/10/16 11:26
>>190
VBScriptに何熱くなってんの?

193 :デフォルトの名無しさん:02/10/16 11:33
倍角は こうか
イ立
|口

194 :デフォルトの名無しさん:02/10/16 11:33
>>186
GetTextMetricsでフォントの情報取得して、
それのnWidthを倍にしてやればいいんじゃないの?

195 :186:02/10/16 11:44
>>194
tmAveCharWidth で近似値がとれますた
どうもです!

196 :デフォルトの名無しさん:02/10/16 14:49
VB6で透明レイヤーって作れますか?


197 :デフォルトの名無しさん:02/10/16 14:54
>>196
前スレまで行って前のお前の発言拾ってこようか?
すごいレスついてたぞ。


198 :デフォルトの名無しさん:02/10/16 15:26
>>197
拾って!

199 :デフォルトの名無しさん:02/10/16 15:55


>>198
VBユーザってどうして前提なしでそういうふざけたこと抜かすかなぁ。
だからDQNっていわれるんだよ


>>198
じゃないがもう少し説明してくれ。




こんな感じ。


200 :デフォルトの名無しさん:02/10/16 16:01
>>192
そのVBScriptがわからないおまえははやく死ねwププププププ
ウキャキャキャキャキャ

201 :デフォルトの名無しさん:02/10/16 16:15
>>200
いや、特に役にもたたんだろ。あれ。

ある特定のOSの特定のブラウザで動くクライアントサイド言語。
なぜかOS開発元ですら使われていないバッチ用スクリプティング言語。
元となる簡単言語は発売終了。

202 :デフォルトの名無しさん:02/10/16 16:25
Chmのヘルプファイルをプロジェクトプロパティーのヘルプファイルに登録して、
F1キーで呼び出しをしているのですが、ちゃんと表示されるときとされないときがあります。
さっきはダメだったけどプログラムを再起動したら表示されるなど
一体なぜなのでしょうか??

203 :デフォルトの名無しさん:02/10/16 16:34
vbs便利だよ

204 :デフォルトの名無しさん:02/10/16 17:45
RGBカラーから、それぞれ赤、緑、青の要素をとりたいのですが、
どうすればできますか?

205 :デフォルトの名無しさん:02/10/16 17:46
>>204
256*256*256

206 :デフォルトの名無しさん:02/10/16 18:13
>>204
R ... &HFF And 値
G ... (&HFF00& And 値) \ &H100
B ... (&HFF0000 And 値) \ &H10000

207 :デフォルトの名無しさん:02/10/16 18:25
ありがと〜。できました

208 :デフォルトの名無しさん:02/10/16 18:30
>>207
ここはオマエだけが質問しオマエだけが回答を得ているワケではないのだがな

209 :デフォルトの名無しさん:02/10/16 18:33
windows2000なんですけど、VB5入れても大丈夫でしょうか?
VB6ほか、コンパイラは入っていません。
ネットで検索したのですが、不具合がありようなことが
書いてあったりで心配です。

210 :デフォルトの名無しさん:02/10/16 19:07
>209
まぁ普通に考えると大丈夫。
どんなソフトでも大小あれトラブルはつきもの。

211 :デフォルトの名無しさん:02/10/16 19:40
>>208 変な煽り

212 :デフォルトの名無しさん:02/10/16 20:17
ここは本物のVB初心者が集うところなんですね。
津 魔 蘭


213 :デフォルトの名無しさん:02/10/16 20:19
>>212 当然だろ?

214 :デフォルトの名無しさん:02/10/16 21:28
>>212
スレタイ見ろ

215 :デフォルトの名無しさん:02/10/16 23:58
>>211
辺でもないんでないかな。
207がありがとだけだったから何のだよ!と208は思ったのだろうきっと。
207が何へのレスは明示的じゃないからな。ま、206へだと思うが。

216 :デフォルトの名無しさん:02/10/17 00:24
>>209
MSからサービスパックダウソして入れておいた方が良いよ。
VB5の初期のバグでなんらかの条件で起動できなくなる罠が有ったと思う・・・・(´・ω・`)アレニハマイッタ

217 :デフォルトの名無しさん:02/10/17 01:55
>>216
> VB5の初期のバグでなんらかの条件で起動できなくなる罠が有ったと思う・・・・(´・ω・`)アレニハマイッタ

OSのSPもVBのSPも関係ないよ。なるときゃなる。
プロジェクトを置く場所に全角を含むパスをつかっちゃだめなのさ。

予期せぬエラーがでたら
HKEY_CURRENT_USER\Software\Microsoft\Visual Basic\5.0\RecentFiles
ここの日本語パスを含む分の項目を削除すりゃ復活する。

218 :デフォルトの名無しさん:02/10/17 02:10
>>217
情報サンコス。当時ネット環境無かったし田舎故に全然情報が無くて、
根性でプログラミングする度ソフトをサイインスコしていた・・・・(´д`;)バカダ

でも確かVBを直接立ち上げないでソースを開けば全角バグも恐くなかった気がする。

219 :デフォルトの名無しさん:02/10/17 02:34
>>181
暇だからレス・・ってもう終わったかのぉ・・・

i = 0
Do
i = InStr(i + 1, srcS, "menu:")
If i = 0 Then Exit Do

i = InStr(i + 5, srcS, ">")
If i = 0 Then Exit Do

ii = InStr(i + 1, srcS, "<")
If ii = 0 Then Exit Do

retS = retS & "<dt>" & Mid$(srcS, i + 1, ii - i - 1) & vbCrLf
i = ii
Loop

srcS に突っ込めば retS に出てくる。汚くてみづらいソース(´д`;)スマソ

220 :219:02/10/17 02:52
TAB入れ替えるの忘れてた・・・・(´・ω・`)ヤテマタ

221 :181:02/10/17 08:37
>>182,219
ありがとうございます。

>>190
すみません。

222 :デフォルトの名無しさん:02/10/17 11:03
おい!おまいら教えてください!
IFの判断文の内容(IF xxxx Then の xxxx 部分)を動的に作成したいのですが、うまい方法はないですか?

223 :デフォルトの名無しさん:02/10/17 11:14
>>222
動的にってなに。
テキストボックスかなんかに A=10 AND B=50 とか
入力させてそれを反映させたいってことか?
人に聞くならまずやりたいことを分かるように説明せえよ

224 :デフォルトの名無しさん:02/10/17 11:20
>>223
申し訳。おっしゃる通りです。

225 :デフォルトの名無しさん:02/10/17 11:24
>>224
いや、俺も偉そうに言った割には、実現方法は皆目見当つかんのだけどねw
というか、もし俺が例で書いたAだのBだのがソース上の変数名とイコールであれば、
実現は限りなく不可能に近いと思う。

226 :デフォルトの名無しさん:02/10/17 12:39
>>222
構文解析すれば良いんだろうけど、結構面倒だよ・・・

227 :デフォルトの名無しさん:02/10/17 19:14
>>222
というか、なんでそんな事が必要なのか教えて下さい。
仕様から見直すべきかも。

228 :デフォルトの名無しさん:02/10/17 19:21
>>222
Script Controlを使えばできるかも


229 :228:02/10/17 19:32
>>222
サンプル書いてみた。

Dim vbs As Object
Set vbs = CreateObject("MSScriptControl.ScriptControl")
vbs.Language = "VBScript"
vbs.ExecuteStatement "A=2"
Debug.Print vbs.eval("A+2")


230 :デフォルトの名無しさん:02/10/17 19:38
Delphiなら簡単!

231 :デフォルトの名無しさん:02/10/17 20:14
ほ〜。
そんなことが出来るんだ
っていうかなんかVBScriptのほうが優れてる点が結構ない?
ショートカットの作成もVBScript使えば出来たりするし。
本家がしょぼく感じてしまふ。
その辺はVB.net移行すればOKってことなんかいな?

232 :デフォルトの名無しさん:02/10/17 20:19
>>229
Script 便利(;´Д`)ハァハァ
でもOSが古いと動かない罠。まぁ今時そんなマシン余り無いか

233 :デフォルトの名無しさん:02/10/17 20:25
VisualStudio.netProffesionalのVB.NETでシリアルポートを
利用するためにMSCOMM32.OCXを使いたいのですが、インストールの
方法がわかりません。古いバージョンのものをSYSTEM32ディレクト
リにコピーしても「このActiveXコントロールを使用するライセンス
がありません」と怒られてしまいます。インストールの仕方を教えて
ください。

234 :D:02/10/17 21:29
>>233
多分コピーしただけではライセンス情報は登録されないはず。
http://www.microsoft.com/japan/developer/library/vccore/_core_activex_controls.3a_.licensing_an_activex_control.htm#_core_licensing_support
ここに詳しく載っています。
ただその前にRegsvr32.exeでレジストリに登録する必要もあるような気が...
これで駄目ならVB6インストールすれば?ライセンスはあるんでしょ。

235 :デフォルトの名無しさん:02/10/17 21:43
>>231
> っていうかなんかVBScriptのほうが優れてる点が結構ない?

文字列を「命令」として実行する機能は、モダンなインタプリタ言語なら持っているものも多い。
(極論するとファイルから読んで実行するか、文字列から読むかだけの違いだからね。)

> ショートカットの作成もVBScript使えば出来たりするし。

用途が違うからねぇ...。

236 :D:02/10/17 21:43
そういえば.netではComなんかのレガシーデバイスへのアクセスって拒否されますね
APIのCreateFileは使えるみたいだけど。


237 :デフォルトの名無しさん:02/10/17 21:47
そのためのP/Invokeじゃろうなあ

238 :デフォルトの名無しさん:02/10/17 23:18
>>231
すべてはVBの部品。VBの素晴らしいところは何でも部品になることさ。

>>232
MSCOMM32.ocxがVB6の付属物なので、まずVB6のダミーアプリをインストールするべし。
そうでなけりゃそもそも君はライセンス違反。旧VBが入ってないなんてことはないよな?

>>236
どういう状況?Marshalクラス使えばたいていできるような・・・

239 :デフォルトの名無しさん:02/10/17 23:46
>>238
>すべてはVBの部品。VBの素晴らしいところは何でも部品になることさ。

だとすると他言語に勝るモノは何もないことになると思われ。

240 :デフォルトの名無しさん:02/10/17 23:54
>>231
一度コンポーネントにすればあとは数行ですむではないか。
それこそOO(良くわからんが)であろう。

241 :デフォルトの名無しさん:02/10/18 00:08
>>239
何でも部品にできるというのは素晴らしいと思うが。
社長みたいなもんさ。馬車うまのように働かされている君にはわかるまい。
とか煽って欲しい?


242 :デフォルトの名無しさん:02/10/18 00:09
VBScriptの方が後発だからねぇ。
Delphiの方が後発だからねぇ。
とかなんぼでもいいようはある。

243 :デフォルトの名無しさん:02/10/18 00:30
VB6のランタイムって MSVBVM60.DLL ってことですか?

244 :デフォルトの名無しさん:02/10/18 01:22
>>238
> すべてはVBの部品。VBの素晴らしいところは何でも部品になることさ。

VBで使える部品ならすべて他の言語(C++等)上でも使えるんだから
ちょっと違うと思う。

VBのよいところは、これらの部品を誰でも手軽に利用できる
(利用するための手続きが非常に簡単)ところではないかな。

245 :デフォルトの名無しさん:02/10/18 01:36
>>244
> VBのよいところは、これらの部品を誰でも手軽に利用できる
> (利用するための手続きが非常に簡単)ところではないかな。

本当にそうか?
Delphiの方がよっぽど簡単なように思える。

246 :デフォルトの名無しさん:02/10/18 02:09
VBでDNSからMXレコードだけ抜き出そうとして、
あまりの面倒くささに挫折仕掛けのところです。

リクエストは送って、バイト配列で受け取ることも出来ました。
肝心のホスト名を抜き出すまでが面倒くさくてたまりません。
誰か代わりにやってください。
もしくは、ソースのリンク教えてください。


247 :デフォルトの名無しさん:02/10/18 02:45
>>245
本当にそうか?
どっちもたいして変わらないように思える。

248 :デフォルトの名無しさん:02/10/18 03:38
Delphi、UIと操作性だけVBにならんかな。
VBに慣れきった漏れにはフォームデザイナとかコードエディタが使い難く過ぎる・・・。

249 :デフォルトの名無しさん:02/10/18 07:44
>>248
Delphiに慣れてください。

250 :233:02/10/18 11:17
234,238さん、レスありがとうございます。
mscomm32.ocxは書籍についてきたものなのでVB6のライセンスは持っていません。
VisualStudio.netにはシリアルポート制御できるActiveXコントロールは付属して
いないのでしょうか。

251 :デフォルトの名無しさん:02/10/18 11:46
VisualBasic6.0で質問です。

ある計測用プログラムを作っているのですが、その際にPictureボックス内に
例えば6000個のデータで計測データの推移を波形にして表示するようにして
います。

これを、Picture1.Line (x1,y1)-(x2,y2)のようにして描画しているのですが、
もうちょっと速く描画できないものかと思っているのですが、全然分かりません。

何か方法はないでしょうか? ヒントでもあったら教えて頂けると助かります。

252 :デフォルトの名無しさん:02/10/18 11:48
>>251
Polylineで調べてみ
APIだけど段違いに速くなるぞ

253 :251:02/10/18 11:55
>>252
APIはほとんど使ったことがないので苦手ですが、それ覚えておきます。
ヒント有難う。

254 :デフォルトの名無しさん:02/10/18 12:04
>>253
非表示にしたPictureBoxにAPIでLineを描画して全部書き終わったら改めて表示させるとか

255 :251:02/10/18 12:44
>>254
有難うございます。

しかし、APIはほとんど分からないので時間が繋りそうです。

前にも文字列の回転描画(印刷)で、えらく手間取ったし、今でもあのコードは自分
で書いたのによく分からないという・・時々失敗するし(´Д`;)

256 :デフォルトの名無しさん:02/10/18 14:05
作成したexeをタスクバーの右下のところに常駐させておくにはどうしたらよいのでしょう?

257 :デフォルトの名無しさん:02/10/18 14:16
>>256
Shell_NotifyIcon

258 :256:02/10/18 15:55
>>257
ありがとうございます。

259 :デフォルトの名無しさん:02/10/18 16:09
>>256
Delphiならコンポーネントペタッで終了!簡単!

260 :デフォルトの名無しさん:02/10/18 16:25
TextボックスのプロパティにEnabledとLockedがありますが機能的に同じものですよね?

261 :デフォルトの名無しさん:02/10/18 16:29
画像ビューアを作りたいのですが、どうすればええでしょうか?
テキストベースならDAO・ADOでやれるのですが、そんな機能が
今の自分の知識の中からは出てきません。
Linerのようなビューア領域を作ることが目標です。
どうかご教授を。

262 :256:02/10/18 16:39
>>257
ヘルプで見れないよぅ。
>>259
Delphiか・・・。勉強してみようかな・・・。
でも今はVBで作ったやつをタスクバーにいれたい。いったいどうすれば・・・
>>260
Enabledでは文字が灰色になっちゃわなかったっけ?
そうしたくないときにLockedを設定するとよいと本で読んだよ。
ほかにも違いありそうだけど。

263 :デフォルトの名無しさん:02/10/18 16:40
>>262
MSDN Google

264 :260:02/10/18 17:03
>>262
そうしたくないときにはLockedですか。
ありがとうございます。

265 :デフォルトの名無しさん:02/10/18 18:06
>>264
色で使い分けるのは本来の使い方ではない。
該当するオブジェクトにフォーカスを移したくない時にはEnabledを使うんではないかい。

266 :デフォルトの名無しさん:02/10/18 18:53
EnabledをFalseにしちゃうと選択もできないでしょ?
Lockedは書き換えのみを不可にするんだとおもう

267 :デフォルトの名無しさん:02/10/18 19:02
明るさを調整したいのですが、
RGBで(50,100,150)だとして、明るさを+10とすると
(50+10,100+10,150+10)
ではなくて、相対的にやるものなんですよね?
PaintShopProの明るさをいじっていたら
(100,100,0)でどんどん明るくしていくと(255,255,0)になったあと
Bの値も増えていって最終的には(255,255,255)になりました。
どういう処理をしているのでしょうか?

268 :260:02/10/18 19:59
>>265-266
使い分けたいときは使い分けるし、どちらでもいいときはどちらも使ってみます。

269 :デフォルトの名無しさん:02/10/18 20:26
>>267
乗算でない?他が255になって0のが残ってたら1ずつ足してくとか

270 :デフォルトの名無しさん:02/10/18 22:05
>>267
HSVとかに変換してやってるんじゃないの

271 :267:02/10/18 22:20
PaintShopProのはHSVのを元にしてやってるのかな。
う〜む、難しそう

272 :デフォルトの名無しさん:02/10/18 22:22
>>260
EnabledとLocked、機能も違うし、意味も違う。
Enabledは使用不可にする。
Lockedは入力不可にする。ただし・・・

>>266
>Lockedは書き換えのみを不可にするんだとおもう

Shift+Insertでペーストできるので書き換えできちゃうんだけどね。
さらにOSがWin2000の場合だと右クリックメニューの制御が不完全とかあるし。

>>250
ない。gotdotnet.comのどっかで
Rs232.vbってファイルをダウソできるみたい。誰かさん作のCOM用クラス。


273 :デフォルトの名無しさん:02/10/18 22:30
>>267
よくわからんが
> RGBで(50,100,150)だとして、明るさを+10とすると
> (50+10,100+10,150+10)
> ではなくて、相対的にやるものなんですよね?
といってるのだから結果のRGB値を取得したんだろう?
その値はいくつなの?

274 :デフォルトの名無しさん:02/10/18 22:49
.netになって落ちこぼれちゃった人ってどれくらいいる?
うちの会社だと8割くらいいて
全員戦力外通告が出てるw
1割は非.netの会社へ転職するみたい。
残りは受け皿無しだってさ。

275 :デフォルトの名無しさん:02/10/18 22:50
>>271
http://homepage2.nifty.com/nomura_seiji/htm_vb/vb_2_g003.htm

276 :デフォルトの名無しさん:02/10/18 23:25
>>274
切り捨ての口実のような気がしないでもない。
しかし、さしあたっては仕事に関係ないとしても、
.NETへの適応力は1つの目安にはなる。
これからも開発環境は変わっていくだろうから。


277 :デフォルトの名無しさん:02/10/18 23:31
>>274
.netさまさまだな。
糞PGが8割もいるお前の糞会社が少しはまともになれるチャンスじゃんか。

278 :デフォルトの名無しさん:02/10/18 23:45
仕事があることが唯一の取り柄だったVB

279 :デフォルトの名無しさん:02/10/19 00:01
>>256
APIはVBでは標準扱いでは無いみたいなのでMSDNではCで引かないと出てこない。
Public Type NOTIFYICONDATA
       cbSize As Long
        hwnd As Long
        uID As Long
        uFlags As Long
        uCallbackMessage As Long
        hIcon As Long
        szTip As String * 64
End Type
Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Public Const NIM_ADD = &H0
Public Const NIM_DELETE = &H2
Public Const NIF_ICON = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_TIP = &H4
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_RBUTTONUP = &H205
Public nIcon As NOTIFYICONDATA


280 :デフォルトの名無しさん:02/10/19 00:03
Sub ADDIcon(pForm As Form, MSG As String)
    nIcon.cbSize = Len(nIcon)
    nIcon.hwnd = pForm.hwnd
    nIcon.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    nIcon.uCallbackMessage = WM_MOUSEMOVE
    nIcon.hIcon = pForm.Icon
    nIcon.szTip = MSG & vbNullChar
    Shell_NotifyIcon NIM_ADD, nIcon
End Sub
Sub DELIcon(pForm As Form)
    nIcon.cbSize = Len(nIcon)
    nIcon.hwnd = pForm.hwnd
    Shell_NotifyIcon NIM_DELETE, nIcon
End Sub
フォームに
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    Select Case x \ Screen.TwipsPerPixelX
        Case WM_LBUTTONDBLCLK
        Me.Show
        DELIcon Me
        Case WM_RBUTTONUP
            PopupMenu Popup_Menu, 2
    End Select
End Sub

281 :デフォルトの名無しさん:02/10/19 00:21
XPにVisual stadio 6.0 インストールしても大丈夫?

282 :デフォルトの名無しさん:02/10/19 01:40
>>281
だめな理由をのべよ?
MSのサイトに自社製品のXP対応リストがないわけ無いと思うが。。。


283 :281:02/10/19 03:11
すみません、MSサイトに書いてありました・・・
XPは.NETじゃなきゃだめと思い込んでたんで・・・

284 :デフォルトの名無しさん:02/10/19 13:17
デフォルトルートと、プライマリDNSの値を取得したいのですが、
やり方があれば教えてください

285 :デフォルトの名無しさん:02/10/19 13:54
シューティングゲームの当たり判定でAPIのRectInRegionを使いたいのですが、
RECTの使い方がいまいちわかりません。誰かご教授下さい。

286 :デフォルトの名無しさん:02/10/19 14:07
>>285
(´-`).。oO(RECTすら自分で調べられないならシューティング諦めた方が・・・)

287 :デフォルトの名無しさん:02/10/19 14:24
>>285
RECT データ構造体は、次の形式です。

typedef struct tagRECT {
 LONG left;
 LONG top;
 LONG right;
 LONG bottom;
} RECT;

RECT 構造体は、四角形の左上隅と右下隅の座標を定義します。

この無茶苦茶わかりやすい説明のどこが「いまいちわからない」のか...。

288 :デフォルトの名無しさん:02/10/19 14:27
(´-`).。oO(VBでシューティングか。ご苦労なこった)

289 :デフォルトの名無しさん:02/10/19 14:36
284…

290 :285:02/10/19 14:49
>>287さん
その辺りは調べたんですけど・・・実際どういう風に使えばいいのかがよくわからないんです。

291 :デフォルトの名無しさん:02/10/19 14:57
考えろよ( ´,_ゝ`)プッ
いやなら
BASICでも買えば?

292 :デフォルトの名無しさん:02/10/19 15:02
>>284
TCP/IPユーティリティのコマンドでわかるんでない?
DNSサーバ−nslookup
ルート−route
それぞれのコマンドでわかると思う。

293 :285:02/10/19 15:04
>>291
考えてもわかんないんです。どーしましょ?

294 :デフォルトの名無しさん:02/10/19 15:07
>>293
だったら無理だろ・・・

295 :284:02/10/19 15:07
>>292
コマンド使えば読み出せるのはわかってるんですけど、その方法だと、
nslookupが存在しないwin98とかに対応できないんで…
nslookupが内部的にどうやって取得してるかが知りたいです。

説明不足ですみません

296 :デフォルトの名無しさん:02/10/19 15:08
http://yahooo.s2.x-beat.com/

297 :デフォルトの名無しさん:02/10/19 15:27
>>295
じゃーwininet.dllのHttpQueryInfo APIとか。
このdllのAPI使えばいいような気もする。


298 :284:02/10/19 15:43
>>297
それってDNSのアドレスとか取れるんでしょうか…
HTTP関係しか無理な気も…

Dependency Walker使ってwininet.dllものぞいてみましたが、
それらしい関数は発見できませんでした。

APIスレに行ってきます

299 :デフォルトの名無しさん:02/10/19 15:47
>>293
HSP使えば?

300 :300:02/10/19 15:48
Ruby!

301 :285:02/10/19 15:57
できました。RectInRegionだけじゃだめだったんすね、皆様お騒がせしてスマソ

302 :デフォルトの名無しさん:02/10/19 16:50
>>293
本かえっツーの
マイコンベーシック

303 :デフォルトの名無しさん:02/10/19 16:51
オブジェクト変数への参照が設定されているかどうか
調べる方法ってあるのでしょうか?


304 :デフォルトの名無しさん:02/10/19 16:52
If obj Is Nothing Then

305 :デフォルトの名無しさん:02/10/19 16:54
>>304
ありがとう

306 :モモ:02/10/19 20:35
助けてください
データフォームウィザードを使ってアクセスのデータベースに接続したい
のですがデータベースファイルを選択するとき、ファイルの名前をいれても
「認識できません」ってでます。私はどうすれば、、、

ソフトはvb6、アスセス2002です

307 : :02/10/19 21:17
>>293

素のWin95サポートする必要があるなら、SNMP API使ってみたら?
MIB の書き方はこの辺↓とか RFC とか読んで。
ttp://www.ibiblio.org/pub/micro/pc-stuff/ms-windows/winsnmp/winsnmp_mib/


308 :デフォルトの名無しさん:02/10/19 21:18
>>307
誤爆か ?

309 :TOM:02/10/19 21:30
サウンドカードのマイク入力からいれた音の大きさの値を取得したいんですが、さっぱりです。
どなたか教えてくっさい。
VB6です。

310 :307:02/10/19 22:08
誤爆しました。ごめんなさい。

311 :デフォルトの名無しさん:02/10/19 22:13
>>306
昨日来ました。と書かないとただのマルチポストだ。
後、何で無視されたのかどうして考えない?

どうすれば?か。その仕事向いてない。やめろ。

312 :まこっちゃん:02/10/19 22:32
今日からVBはじめました。
文字列の代入と比較の記述が同じに見えてなりません、さっぱりです。
どなたか教えてくっさい。

誤爆しました。ごめんなさい。

313 :デフォルトの名無しさん:02/10/19 22:35
>>312
(´д`;)・・・・なんか良くワカランが、がんがれ・・・・

314 :デフォルトの名無しさん:02/10/19 23:37
本当に何を言ってるかわからん。

315 :デフォルトの名無しさん:02/10/19 23:39
>>312
仕様です。

316 :デフォルトの名無しさん:02/10/19 23:40
>誤爆しました。ごめんなさい。
ここが意味不明

317 :デフォルトの名無しさん:02/10/19 23:42
VBって何のためにあるの?

318 :デフォルトの名無しさん:02/10/19 23:51
プログラムを組むため

319 :デフォルトの名無しさん:02/10/19 23:58
>>317
MSが儲けるため。

320 :デフォルトの名無しさん:02/10/20 01:00
DirectDraw7のプライマリサーフェスの作成でつまづいた。
VB5だから駄目なのかな?
定数すら定義してくれん・・・鬱だ。

321 :デフォルトの名無しさん:02/10/20 01:04
>>320
VBでDirectXなんか使えるわけねーだろ。
ポインタも使えないくせにどうやって使うつもりだ。

322 :デフォルトの名無しさん:02/10/20 01:07
7から使えるよ。

323 :デフォルトの名無しさん:02/10/20 01:07
>>321
baka?

324 :デフォルトの名無しさん:02/10/20 01:28
>>321
真性あふぉ( ´,_ゝ`)プ

325 :デフォルトの名無しさん:02/10/20 01:36
>>321
VBでもポインタ弄れますが?

326 :D:02/10/20 01:36
>>312
=には
"等しくする""等しい"って意味がある。
A=B <-この場合代入
If A=B Then <-等の場合比較
として扱われます。CやJavaなんかでは代入は=比較は==でしたがVBやSQLではどちらも=を使用します。
また、チョット変則ですが
A=(0=0) では変数AにTrue(-1)が入ります。
何はともあれ、がんばってください。


327 :デフォルトの名無しさん:02/10/20 01:41
>>326
うわあ。VBの演算子ってきもちわるいですねえ。

328 :デフォルトの名無しさん:02/10/20 01:43
Cよりまし。なんで比較が==なんだよ。!=とかあるし。

329 :デフォルトの名無しさん:02/10/20 01:55
>>327
まぁ他言語から来たならそうだろうねぇ・・・
時々他言語で条件文の == を = にして無駄に時間を費やすこともしばしば(´д`;)

330 :デフォルトの名無しさん:02/10/20 02:55
文字列の比較は eq も使えるよ。

331 :デフォルトの名無しさん:02/10/20 06:27
cでいうstrtokみたいな関数ってVBにもあるの?
VBの文字列ってよくわからないね。

332 :デフォルトの名無しさん:02/10/20 06:28
>>331
作れば?まぁ、状態を保持する必要があるからクラスにした方がいいけど。

333 :デフォルトの名無しさん:02/10/20 06:39
>>331
文字列がなくて文字の配列でしか表現できない言語よりマシ。

334 :デフォルトの名無しさん:02/10/20 06:44
>>333
こうして人をだめにしていく言語か・・・。

無いなら作れよ。と。

335 :デフォルトの名無しさん:02/10/20 06:46
>>334
お前が作れば。

336 :デフォルトの名無しさん:02/10/20 06:52
>>335
VB厨よ。これ以上バカな発言を繰り返すな。

337 :デフォルトの名無しさん:02/10/20 06:53
バカな発言って
「VBの文字列ってよくわからないね。」
のことか?


338 :デフォルトの名無しさん:02/10/20 06:56
>>337
あぁ そりゃバカだ。誰だ言った奴(藁

339 :デフォルトの名無しさん:02/10/20 07:07
strtokって仕様がキモイね。

340 :まこっちゃん:02/10/20 07:10
愚和〜っし!!
VB虫の人達は親切でした。蟻が父さんでーす。
=が同じなのは目の錯覚ではなかたのですね、覚えたのれす。
eqというのもあるのですね、これと=では同じ意味なのれしょうか?
参照比較と文字列比較とかの違いはないのれすか、さっぱりです。

これが理解できたらForに学習を移りますのれす。難しそうなのれす。
んじゃーサバラ!

341 :デフォルトの名無しさん:02/10/20 07:15
>>340
本当にVBを知らない奴がいた(藁

342 :デフォルトの名無しさん:02/10/20 07:34
>>339
そだな。実際複数から呼び出すとボロボロになる仕様。

343 :まこっちゃん:02/10/20 07:38
しょしんしゃスレなので知らなくてもワラ割れる筋合いはないのれす。
しょしんしゃスレに煽りにだけ来てるほーが(わるい)のれす。

344 :デフォルトの名無しさん:02/10/20 07:40
>>343
初心者と素人は明確に差別されます。

345 :デフォルトの名無しさん:02/10/20 07:47
・初心者
これから学ぼうとしているもの

・素人
何も知らないもの

346 :デフォルトの名無しさん:02/10/20 07:49
>>345
・入門者
これから学ぼうとしているもの

気持ちの問題であって結局は素人。


347 :デフォルトの名無しさん:02/10/20 07:50
>>345
だとすると上の彼らは素人だと思われ。

348 :まこっちゃん:02/10/20 08:13
>初心者と素人は明確に差別されます。
>気持ちの問題であって結局は素人。

いってる事がわからないのれす。さっぱりです。
しょしんしゃorしろうとスレを荒らす事がカコわるいとおもてる
かどうかの見解も聞きたいものれす。

349 :デフォルトの名無しさん:02/10/20 08:27
初心者かどうかはともかく、
妙な日本語を使うのは質問する相手に失礼じゃないのかね?

350 :まこっちゃん:02/10/20 08:43
>妙な日本語を使うのは質問する相手に失礼じゃないのかね?

(藁 とか使っといて

妙な日本語失礼じゃないのかね?
妙な日本語失礼じゃないのかね?
妙な日本語失礼じゃないのかね?

プ。
話そらすなよ(麦

351 :デフォルトの名無しさん:02/10/20 08:47
>>350
(麦ワラタ。
後、攻撃する相手変わってるぞ(孫

352 :デフォルトの名無しさん:02/10/20 09:12
(孫ワラタ(壺

353 :デフォルトの名無しさん:02/10/20 09:48
>>331
用途によるけど、デリミタが一種類なら Split() 使うのが吉。

354 :デフォルトの名無しさん:02/10/20 11:03
>>349
激しく同意。
見ててうざい。

355 : ◆dcIDMhC9ck :02/10/20 12:46
えーと質問です。環境はXP+VB6SP5

とあるByte配列の中身が空っぽであるか調べたいのですが
どうやればいいのでしょうか。String型と全然勝手が違って悩んでいます。
String型なら If TempStr = "" Then こう、簡単なんですが・・・。

356 : ◆dcIDMhC9ck :02/10/20 12:56
おっと、age

357 :320:02/10/20 13:14
解決した。
約1.4倍速度UP。こんなもんなのか・・・ちょっとがっかり。

358 :デフォルトの名無しさん:02/10/20 14:26
>>357
1.4倍が妥当なのか知らんが、ちゃんとハードウェアアクセラレートは
使用されてるか? エミュレーションモードで動いてたりしないよね。

359 :デフォルトの名無しさん:02/10/20 16:15
>>355
動的配列? 静的配列?
動的配列なら、UBoundかなあ?
静的配列なら、初期化時は全部0が入ってると思うよ。

360 :デフォルトの名無しさん:02/10/20 17:17
>>359
動的配列だろ。
静的配列なら、初期化時と同じだからと言って空っぽと言う判断するのはどうかと思うよ。

とりあえず、

If UBound(A) < LBound(A) Then
  ' 空っぽの処理
EndIF

でいいと思う。

361 :デフォルトの名無しさん:02/10/20 18:09
Dim A() As Byte

If UBound(A) < LBound(A) Then
 MsgBox "(゚∀゚)"
End If


アヒャった

362 :361:02/10/20 18:11
↑スマソ
×アヒャった
○エラった

363 :モモ:02/10/20 18:16
>>311
うう、自分でがんばってみます。

364 : ◆oRZMgJMAzg :02/10/20 18:33
String型のデータの中から
指定した行数目のテキストを抜き出したいのですが
こういう場合は自作関数しかないのでしょうか?
とりあえず自作のがあるんですけど微妙に動作がおかしいんです。
そんな事しないでも出来る方法、あるんでしょうか?

無いのなら、このソースのどこら辺がマズってのるのか
教えて頂けるでしょうか。

365 : ◆oRZMgJMAzg :02/10/20 18:34
Public Function GetLineX(ByVal Text As String, ByVal LineIndex As Long) As String
'ErrChk "GetLINE"
Dim LL As Long
Dim NN As Long
Dim CRLFpos As Long
Dim CRLFpos_ As Long
CRLFpos = 0
LL = LineIndex - 1
For NN = 0 To LL '指定行目まで繰り返す
CRLFpos_ = CRLFpos
CRLFpos = InStr(CRLFpos + 1, Text, vbCrLf)
If CRLFpos = 0 Then 'もう改行が見つからない時
If NN = LL Then '指定した行数目だったら
GetLineX = Replace(Mid(Text, CRLFpos_ + 2, Len(Text) - CRLFpos_ - 1), vbCrLf, ""): Exit Function
Else
GetLineX = Replace(Mid(Text, CRLFpos_ + 2, Len(Text) - CRLFpos_ - 1), vbCrLf, ""): Exit Function
End If
End If
Next NN
If LL = 0 Then '1行目が指定されていた場合
GetLineX = Replace(Mid(Text, 1, CRLFpos - 1), vbCrLf, "")
Else
GetLineX = Replace(Mid(Text, CRLFpos_ + 2, CRLFpos - CRLFpos_ - 1), vbCrLf, "")
End If
End Function





366 : ◆oRZMgJMAzg :02/10/20 18:35
うわぁ激しく半角スペース削られた・・・

Public Function GetLineX(ByVal Text As String, ByVal LineIndex As Long) As String
'ErrChk "GetLINE"
Dim LL As Long
Dim NN As Long
Dim CRLFpos As Long
Dim CRLFpos_ As Long
CRLFpos = 0
LL = LineIndex - 1
For NN = 0 To LL '指定行目まで繰り返す
  CRLFpos_ = CRLFpos
  CRLFpos = InStr(CRLFpos + 1, Text, vbCrLf)
  If CRLFpos = 0 Then 'もう改行が見つからない時
    If NN = LL Then '指定した行数目だったら
      GetLineX = Replace(Mid(Text, CRLFpos_ + 2, Len(Text) - CRLFpos_ - 1), vbCrLf, ""): Exit Function
    Else
      GetLineX = Replace(Mid(Text, CRLFpos_ + 2, Len(Text) - CRLFpos_ - 1), vbCrLf, ""): Exit Function
    End If
  End If
Next NN
If LL = 0 Then '1行目が指定されていた場合
  GetLineX = Replace(Mid(Text, 1, CRLFpos - 1), vbCrLf, "")
Else
  GetLineX = Replace(Mid(Text, CRLFpos_ + 2, CRLFpos - CRLFpos_ - 1), vbCrLf, "")
End If
End Function

367 :アフォルトの名無しさん:02/10/20 18:45
>>362
アヒャった、でいいじゃないか。

368 :361:02/10/20 19:00
>>367
実行時エラー '9': インデックスが有効範囲にありません。

てな感じでエラーが出マスタ。まぁ一度も領域指定してないから当たり前だけど・・・

369 :デフォルトの名無しさん:02/10/20 19:03
>>364
Split(text,vbCrLf)(lineindex)

370 :デフォルトの名無しさん:02/10/20 19:13
>>364
Public Function GetLineXX(ByVal srcS As String, LineIndex As Long) As String

 Dim L&, LL&, LineCount&

 LL = 1
 srcS = srcS & vbCrLf
 For LineCount = 1 To LineIndex
  L = InStr(LL, srcS, vbCrLf)
  If L = 0 Then Exit For

  If LineCount = LineIndex Then
   GetLineXX = Mid(srcS, LL, L - LL)
   Exit Function
  End If
  LL = L + 2
 Next

 GetLineXX = ""
End Function

とか

371 :360:02/10/20 19:23
>>368
俺も気になったが、Dim A() As Byte の直後に A = "" としとけば大丈夫。(ちなみに、UBound(A) = -1, LBound(A) = 0 になる。)
逆に、>>355 が未使用の状況まで知りたいと言うなら、エラートラップするしかないと思う。

372 :デフォルトの名無しさん:02/10/20 19:34
>>371
> 逆に、>>355 が未使用の状況まで知りたいと言うなら、

動的配列だったら普通はこっちだと思うが。

373 :361:02/10/20 19:38
>>371
まぁポインタ見れば良いんだろうけどね。

If StrPtr(A) = 0 Then
 MsgBox "(゚∀゚)"
End If

隠し関数は余り使わない方が良いんだろうけど、漏れはこうやってる(´д`)もっと良い方法キボーン
そもそも、>>355の「配列が空」ってのがどういう意味なのかが良くワカランです

374 :320:02/10/20 20:01
>>358
はぅあ!!エミュレーション?
HALだかHELだかって奴ですか・・・
よくわからんがBLTFASTの方を使ってるんで。
ノートだから余計なハードは無いと思う。

375 :デフォルトの名無しさん:02/10/20 20:03
http://yahooo.s2.x-beat.com/

376 :デフォルトの名無しさん:02/10/20 20:20
>>373
余計なお世話的説明補足。
結果的にそれで判定できてるみたいだけど、なんか勘違いというか「ん〜」てなとこがあるので。
Byte配列と文字列は相互に変換できる。StrPtrの引数は文字列なのでByte配列が文字列に変換される。
そのときByte配列が空だと(空文字ではなく)vbNullStringに変換される。そのためStrPtrで判断できる。
ちなみにvbNullString=""はTrueなのでIf CStr(a) = "" Thenでも判定できる。

377 :361:02/10/20 20:30
>>376
なるほど。指摘さんこす

378 :デフォルトの名無しさん:02/10/21 00:05
VisualBasicのラベルに立方センチメートルのような上付きの表示を
出したいんですが、できますか?

379 :なつみ:02/10/21 00:12
超初心者なんだけど誰か優しく教えてくれる人いる???

380 :デフォルトの名無しさん:02/10/21 00:13
BMPファイルの任意点のRGB値を10進数で抜き出したいです.

んで,たとえばR値の入ってるアドレスを
バイナリ形式で読み取って文字列として格納.

それをAscで10進数に変換できるのかな?
と思ってやってみたんですが,R値が小さいときにはできてるけど,
大きくなると負の値が戻ってくる.どうしてでしょう?

本気初心者なんで,見当違いのことしてるかもしれませんが
ヒントでも関連ページでもなんでもいいので,お願いします.

381 :デフォルトの名無しさん:02/10/21 00:15
>>374
ちょっとまて。
それすら知らないでDirectXで性能が出ないなんてほざいてるのか?
糞とはいえあまりにもDirectXとカードメーカーが不憫だ。


382 :デフォルトの名無しさん:02/10/21 00:16
>>380
通常、嫌でも10進表現になると思われ。

383 :デフォルトの名無しさん:02/10/21 00:17
>>381
そもそもVBでDirectXの時点で間違ってる。

384 :なつみ:02/10/21 00:28
Dim stDocName As String
Dim stLinkCriteria As String

(略)

DoCmd.OpenForm stDocName, , , stLinkCriteria

・・・・上の構文を良く見かけるんだけど、stdocname,stLinkCriteria
自体に何か意味があるんでしょうか?必ずこの文字を使わなければ
いけないんですか???初心者ですみません。


385 :380:02/10/21 00:30
>>382
そっか.通常はなりますか.
とりあえず方向性は間違ってないってことがわかっただけでも
助かりますた.ありがとうございます.

なんか,他の要因探ってみま〜す.

386 :デフォルトの名無しさん:02/10/21 00:34
>>380
「バイナリ形式で読み取って文字列として格納」ってあたりが怪しい。
どうやって読み込んでいるのかわからんけど(まぁ想像はできるが)、
文字列で読み込むときに2バイト分よみこまれてるんじゃないかな。
「1バイト」を読み込んでいるつもりだろうけど、
「1文字」が読み込まれてるように思える。
1バイト目が漢字コードなどの1バイト目だと、
次のバイトも読み込まれて「1文字」が読み込まれるよ。(仕様)
漢字の文字列にAscするとシフトJISコードが帰ってくるけど、
シフトJISってのは&H8000以上だから
負の数がかえってきているんだと思う。(この辺はわかるよね?)

そもそも文字列にして格納する必要がないと思うけど?
Byte型の変数でゲットすれば普通に求められると思うぞ。


387 :デフォルトの名無しさん:02/10/21 00:34
ピクチャボックスに書いた線等が保存するときにはなくなってるのですが、
どうすればいいでしょうか?


388 :デフォルトの名無しさん:02/10/21 00:38
>>387
Picture1.Pictureではなく、Picture1.Imageを指定する


389 :381:02/10/21 00:38
>>383
まぁ禿同だけど、VB厨にも夢をみせてやれ。


390 :デフォルトの名無しさん:02/10/21 00:42
>>386
>そもそも文字列にして格納する必要がないと思うけど?
>Byte型の変数でゲットすれば普通に求められると思うぞ。

あれま.そんなんできるんだ.
てか,それでできました.すげぇ.別にすごくないんだろけど.

おかげさまでここ何日かの悩みが解決しますた.
いや,まぢで何日も悩んでたんですよ.ほんまありがとうございました.

391 :デフォルトの名無しさん:02/10/21 00:48
388さん
ありがとです。
あとautoredrawがfalseになってましたw

392 :デフォルトの名無しさん:02/10/21 00:50
>>380
Long型使わないとマイナスになる


393 :デフォルトの名無しさん:02/10/21 01:22
>>384
必ずしもその変数名である必要はないはずです。
おそらくヘルプのサンプルにそう書いてあったので、
みんなコピペしたのだと思います。

ちなみにうちの会社では、Callが無い点と、
String型の変数の前置詞がstだという点で不許可です。

394 :なつみ:02/10/21 01:31
393様!!!!!!!!!
どうもありがとう!!!!!!!!!!!!
さらに質問してもいい?

395 :なつみ:02/10/21 01:38
>>393
なんのキーワードで探すとヘルプでみれますか??

396 :デフォルトの名無しさん :02/10/21 01:53
わりこんでしまって、もうしわけありませんが質門いいでしょか、
sub main()内で
wininet.dllを使用してFTPをしようとしたところ、
FTPの処理はうまくいくのですが、すべての処理の
終了後にVBが終了しなくなってしました。
これは、何か開放できないインスタンスが悪さでもしてるのでしょか。

どなたかなにか、ヒントを教えていただけないでしょうか。
お願いします。

環境は、Windows2000 ,Visual Basic6.0です。


397 :デフォルトの名無しさん:02/10/21 01:58
>>395
だからOpenFormメソッドの[使用例]で、
と思ってみてみたら
> DoCmd.OpenForm "社員", , ,"氏名 = '山田 一郎'"
日本語だった。
まあ、気にすんな。

398 :デフォルトの名無しさん:02/10/21 02:33
>>389
VBでDirectX使えるんだから夢ってほどのことでもないでしょ。

399 :396:02/10/21 02:44
すみません自己解決できました、
ルータの設定変えたら直りました。
ご迷惑おかけしました。

400 :デフォルトの名無しさん:02/10/21 02:46
>>399
ルータの設定で直るわけ無いだろ。どっかにバグがある。

401 :396:02/10/21 02:55
>>400
でも、本当にルータの設定で直ってしまいました。
バグはあるかもしれませが、環境に依存するとヤツだと思いますので、
いろいろ試してみて、なんとか調べ上げようと思います。
レスありがとうございました。

402 :デフォルトの名無しさん:02/10/21 02:59
>>401
直ったんじゃなくルータが正しく設定された状態でのみ正しく動くだけだろ。
なぜルータが正しくないときは終了しないのか原因を究明しろよ。

403 :396:02/10/21 03:02
>>402
それを調べると>>401で書いたつもりですが、言葉がたりませんでした。
申し訳ありません。

404 :デフォルトの名無しさん:02/10/21 03:20
>>383
なぜ間違っているのかを教えてくれ。


405 :デフォルトの名無しさん:02/10/21 07:40
動的配列に要素が一件も入っていないことを確かめるにはどうしたら
いいのでしょうか?

今は、配列に入れた数をカウントする関数を使っているのですが、
無駄な変数を増やしているような気がしてなりません。

406 :デフォルトの名無しさん:02/10/21 07:51
>>405
こういうことか?

Private Declare Function SafeArrayGetDim Lib "oleaut32" (psa() As Any) As Long

Private Sub Command1_Click()

 Dim a() As Long

 If SafeArrayGetDim(a) = 0 Then MsgBox "ないよ" Else MsgBox "あるよ"

End Sub

407 :デフォルトの名無しさん:02/10/21 08:04
>>406
そういうことでございますた。
ありがとうございます。

oleaut32っていうのは標準に入っているdllですか?

408 :デフォルトの名無しさん:02/10/21 08:25
>>406
おいおい、嘘を教えるな。
APIを使うなら自分が理解してから使え。

>>407
406は結果オーライになってるだけだ。
素直にエラートラップを使って判定しろ。

409 :デフォルトの名無しさん:02/10/21 10:11
ListBoxで 画面上に表示されているリストの一番上のindexは、
どうやって取得したらいいのか教えてください。
ListBoxで スクロールさせたとき、上に表示されているアイテムのindexを
取得したいんです。

410 :デフォルトの名無しさん:02/10/21 10:37
>>409
TopIndex

411 :デフォルトの名無しさん:02/10/21 10:41
>>405
動的配列に要素を入れるときに、
lngCnt = lngCnt + 1
とし、単純にカウントするのが一番だ。

412 :デフォルトの名無しさん:02/10/21 10:48
>>411
俺も。
UBoundとか使ってトリッキーに(ってほどでもないか・・・)処理してると、
思わぬ落とし穴があったりする。
シンプル・イズ・ベストってやつだね

413 :デフォルトの名無しさん:02/10/21 10:49
ListBOXで ホイールのイベントを取得するには どうしたらいいのでしょうか?

414 :デフォルトの名無しさん:02/10/21 11:07
WebBrowserコントロールに表示したページをクリップボードへコピーしたいのですが
できますでしょうか?
通常のWebブラウザで表示した画面をPrintScreenでコピーすると
入りきらない部分がスクロールしないと表示できないので困っています。
そこでVBでやろうと思ったわけです。

415 :デフォルトの名無しさん:02/10/21 11:11
>414
API知ってる??
知ってたらできるよ。

416 :デフォルトの名無しさん:02/10/21 11:14
>>415
WebBrowser.hWnd をOpenClipbordに渡せばいいでしょうか?

417 :デフォルトの名無しさん:02/10/21 11:34
表示されてない部分までコピーできるもんなの?

418 :デフォルトの名無しさん:02/10/21 12:02
&H8000000F&
といったシステム予約済みのカラーから
実際のRGBの値ってどうやったら求められますか?


419 :デフォルトの名無しさん:02/10/21 13:30

s = Hex(lbl_tujou.BackColor)
s = String(8 - Len(s), "0") & s
R = "&H" & Mid(s, 7, 2)
G = "&H" & Mid(s, 5, 2)
B = "&H" & Mid(s, 3, 2)


420 :デフォルトの名無しさん:02/10/21 13:32
>>1
>悪いことは言わないから(w)、転職、または他部門への異動を真剣に
>検討して頂きたい。

検討するから やとってくれ(w

421 :デフォルトの名無しさん:02/10/21 14:01
R = c And &HFF
G = (c And &HFF00&) \ &H100
B = (c And &HFF0000) \ &H10000

422 :デフォルトの名無しさん:02/10/21 14:47
>>398
>>404
そういう書き込みはするな
まあバカはほっとけ

423 :418:02/10/21 15:05
いや、&H8000000F&とかの&H8で始まるやつって
システムカラーの設定によって変わってくるから、
実際の色は何色かを求めたいのですが。
ちなみに&H8000000F&はボタン表面の色。

424 :デフォルトの名無しさん:02/10/21 15:06
俺、前にVB6+DirectX8でフライトシミュレーター作ったけど
パフォーマンス的にもなんの問題もなかったよ。
DirectInput使ってジョイスティックの制御もやったけど、
そちらも特に問題なし。
まあ、一応参考までに・・・

425 :421:02/10/21 15:26
>>423
あはは。確かに。
GetSysColorじゃだめなの?

426 :418:02/10/21 15:37
いやぁ決まってるわけじゃなくて、設定できるようにしたいので。
まぁ&H8000000Fなら〜ってかけばいいのですが。
どっかに点を描画してその色を取得するって方法は思い浮かびましたが
あまりスマートじゃないすよね。

427 :デフォルトの名無しさん:02/10/21 15:42
ああ ちなみに ボタンの色とか Windowsの根本の色は、デスクトップの設定で 変わっちゃうんだよなぁ〜〜〜。


428 :デフォルトの名無しさん:02/10/21 15:46
>>426
設定するならSetSysColorsでは?

429 :デフォルトの名無しさん:02/10/21 15:53
>>418
GetSysColor

430 :デフォルトの名無しさん:02/10/21 15:54
ListBoxによぉ、リアルタイムで追加してるんだけどさ、
なんか、けっこう画面が ちらついて うっとしいんだわさ。
これって ちらつかないようにできないのかねぇ。
だれか やり方、知ってたら 教えてよ。

431 :418:02/10/21 16:03
むぅ。
んじゃ
If oleColor = &H8000000F then
 o_Color=GetSysCollor(COLOR_BTNFACE)
ElseIf
 '以下同様のやついっぱい
Else
 o_Color = oleColor
End If
Debug.Print o_Color
ってやるしかないかいなぁ

432 :421:02/10/21 16:13
>>431
何言ってんだか。

o_Color = GetSysColor(oleColor And &H7FFFFFFF)
でいいじゃん。

433 :デフォルトの名無しさん:02/10/21 16:14
>>430
知ってるしすぐ書けるけどよぉ〜
調べればすぐ分かっしよぉ
それって人に聞く態度じゃないよなぁ
だから教えないよ

434 :421:02/10/21 16:16
432の補足。
Dim oleColor As Long だとすると、

If oleColor >= 0 Then
  o_Color = oleColor
Else
  o_Color = GetSysColor(oleColor And &H7FFFFFFF)
End If

435 :418:02/10/21 17:03
おおお、なるほど。
ちゃんと対応してるのね

436 :422:02/10/21 18:49
>>424
俺がバカでした。作ってもみないで不可能だと思い込んでいました。俺逝ってよし。

437 :436:02/10/21 18:54
名前間違い。
×422
○383

438 :デフォルトの名無しさん:02/10/21 19:33
>>1の書き込み見ると毎日が鬱です

439 :デフォルトの名無しさん:02/10/21 20:13
WebBrowserコントロールで、
navigate2 メソッドのヘッダーにて User-Agent を決めることは出来ましたが、
表示されているページのリンクを押した際されるページ切替の際は User-Agent を変える方法がわかりません。
どうやればいいかわかりますか?

440 :デフォルトの名無しさん:02/10/21 20:19
>>438
気にしてるのはあんただけだよ。

441 :デフォルトの名無しさん:02/10/21 20:20
おれもたちなおれません

442 :デフォルトの名無しさん:02/10/21 20:21
すいませんあの聞きたいんですけど
y=sin(x)cos(2x+3)exp(x)
のグラフを表示させるプログラムを作らなくてはいけないんですけど・・・誰か教えてもらえませんか?

443 :デフォルトの名無しさん:02/10/21 20:21
>>438=>>441=>>1

444 :デフォルトの名無しさん:02/10/21 20:33
>>442
宿題をきくスレは ここじゃない!

445 :デフォルトの名無しさん:02/10/21 20:36
>>409
>>413
>>430


446 :デフォルトの名無しさん:02/10/21 20:37
わかりました宿題のスレ教えてもらえませんか?


447 :デフォルトの名無しさん:02/10/21 21:03
>>446
自分で解かないと意味がないだろ。

448 :デフォルトの名無しさん:02/10/21 21:11
宿題という言葉の意味を百回ほど辞典で調べろ

449 :デフォルトの名無しさん:02/10/21 22:16
VBで作った2つのプログラムをディストリビューションウィザードを使って
パッケージを作ってインストールしました。
2つのプログラムは別のアイコンなのですが、アプリケーションの追加と
削除の画面をみると両方とも同じアイコンになってしまいました。
こんな現象が起きたことあります?

ちなみにVB6.0です。

450 :デフォルトの名無しさん:02/10/22 00:44
>>442
御見積書を先生に出してやれ!

451 :デフォルトの名無しさん:02/10/22 01:18
>>450
チョトワラタ

452 :デフォルトの名無しさん:02/10/22 08:43
>>450
(・∀・)イイ!

453 :デフォルトの名無しさん:02/10/22 09:43
テキストボックス内テキストの縦方向の配置を変えたいんだけど
EM_SETRECTでメッセージを送信しても何も起きん
どうやるのか教えてくれ

454 :453:02/10/22 09:51

MultiLineをTrueにするとできるようだな
そういう仕様なのか?

455 :デフォルトの名無しさん:02/10/22 10:20
メニューを動的に階層を作る事は出来ないのか?

456 :デフォルトの名無しさん:02/10/22 10:39
>>455
参考になるか知らんが、興味あったから調べてみたら
下記のような情報を発見。
書いてあるようなAPIを駆使すればできるのかもね。
ttp://www.users.gr.jp/ml/archive/vb/4887.asp

457 :デフォルトの名無しさん:02/10/22 10:40
俺はVBは抑止欄のだが、
menuのメソッドを実行時に呼び出せばできるのでは?


458 :デフォルトの名無しさん:02/10/22 11:41
SQL関連(VB)になってしまうのですが教えてください。

"((DateDiff('yyyy',[生年月日],#10/1/2002#))" & "Between 50 AND 70" & "))"
ある特定の年齢を求めようとSQL文を作成したのですが、
Between 50 AND 70の部分で問題が発生してしまいました。

この部分を変数にした場合、
変数="Between 50 AND 70"

プログラム上では、
変数="Between '50' AND '70'"
となってしまい、
SQL文として認識されません。
何かよい方法はないでしょうか?


459 :デフォルトの名無しさん:02/10/22 11:46
>>458
なぜ肝心の、その文字列を作成する部分のソースを出さないの
というか、どうやったらそういう風になるのかが不思議・・・
興味age

460 :デフォルトの名無しさん:02/10/22 11:55
Private Function XXX_年齢条件(ByVal 指定日付 As String, _
ByVal 指定年齢 As String) As Boolean

On Error GoTo XXX_年齢条件_Err
Dim SQL As String

SQL = "INSERT INTO TBL_XXX検索_該当条件 ( OOOO番号, 22番号 ) " _
& "SELECT 22名簿.OOOO番号, 22名簿.22番号 FROM "22名簿 " _
& "WHERE ((Not (22名簿.OOOO番号) Is Null) AND (Not (22名簿.99年月日) Is Null) AND " _
& "((DateDiff('yyyy',[生年月日],#10/1/2002#))" & 指定年齢 & "))"

DoCmd.SetWarnings False
DoCmd.RunSQL (SQL)
XXX_年齢条件 = True

XXX_年齢条件_Exit:
Exit Function
XXX_年齢条件_Err:
XXX_年齢条件 = False
MsgBox Str(Err) & vbCrLf & Err.Description, _
vbOKOnly + vbExclamation + vbMsgBoxSetForeground, "error"
Resume XXX_年齢条件_Exit

End Function


461 :デフォルトの名無しさん:02/10/22 11:56
#10/1/2002# = cdate(指定日付)

462 :デフォルトの名無しさん:02/10/22 12:19
>>458
×…プログラム上では
○…プログラム実行中では


463 :デフォルトの名無しさん:02/10/22 13:18
>>460
それのどこにBETWEENの文字が??

464 :デフォルトの名無しさん:02/10/22 13:23
誤り

Public Function 指定年齢抽出(ByVal 条件1 As String, _
ByVal 条件2 As String) As String
'指定年齢 or 期間 取得
If IsNull(条件1) Or 条件1 = "" And IsNull(条件2) Or 条件2 = "" Then
'未入力
指定年齢抽出 = ""
ElseIf 条件1 <> "" And IsNull(条件2) Or 条件2 = "" Then
'○歳以上
指定年齢抽出 = ">=" & "'" & 条件1 & "'"
ElseIf IsNull(条件1) Or 条件1 = "" And 条件2 <> "" Then
'○歳以下
指定年齢抽出 = "<=" & "'" & 条件2 & "'"
Else
'○歳以上 ○歳以下
指定年齢抽出 = "Between " & "'" & 条件1 & "'" & " and " & "'" & 条件2

End If
End Function


465 :デフォルトの名無しさん:02/10/22 13:24


Public Function 指定年齢抽出(ByVal 条件1 As String, _
ByVal 条件2 As String) As String
'指定年齢 or 期間 取得
If IsNull(条件1) Or 条件1 = "" And IsNull(条件2) Or 条件2 = "" Then
'未入力
指定年齢抽出 = ""
ElseIf 条件1 <> "" And IsNull(条件2) Or 条件2 = "" Then
'○歳以上
指定年齢抽出 = ">=" & 条件1
ElseIf IsNull(条件1) Or 条件1 = "" And 条件2 <> "" Then
'○歳以下
指定年齢抽出 = "<=" & 条件2
Else
'○歳以上 ○歳以下
指定年齢抽出 = "Between " & 条件1 & " and " & 条件2

End If
End Function


466 :デフォルトの名無しさん:02/10/22 13:34
>>463
お手数かけました。
指定日付に"2002/10/22"、指定年齢に"Between 50 AND 70"が入ります。
指定年齢に入っている時点で変だったので混乱してしまいました。

動作はテキストボックスに○歳以上と○歳以下の項目があり、
このどちらか、または両方を入れて該当年齢抽出するものです。

○歳以上と○歳以下を判別するプログラムが間違っていました。
>>464
>>465
×…"'" & 条件1 & "'"
○…条件1

レコードセットや数値を抽出すには "'" & 条件1 & "'" で良いのですが、
文字列の場合は、そこまでの手間はいりませんでした。


467 :デフォルトの名無しさん:02/10/22 14:03
SQLにロジックが偏重したプログラムはいじりたくないなあ。

468 :デフォルトの名無しさん:02/10/22 14:38
>>467
気持ちはわかるが、表現が簡潔過ぎて、意図するところがイマイチ不明。
(>>460のソースが汚くて読みにくい、という趣旨なら、禿げしく同意)

469 :デフォルトの名無しさん:02/10/22 15:17
Windows2000にVB5.0をインストールしたけどスタートメニューに
何も登録されませんでした。しかたなくvb5.exeを起動してますが
これってどうなの?


470 :467:02/10/22 15:30
>468
RDBをいじる以上、現状はどうしても>460 のようにSQL文字列を
切ったり張ったりしなけりゃならない。別に>460 が悪いわけじゃない。

でも、こういったSQL文字列操作処理のバグとりは憂鬱。
なーんかもっとOOらしくスマートにできんかなあと思って。

(>460のソースは日本語変数名や関数の切り出し方に問題があるけど、
うちの連中のソースに比べたら綺麗なほうです。)

471 :フォローになってないが・・・。:02/10/22 15:34
>>470

> うちの連中のソースに比べたら綺麗なほうです。

胃薬をどーぞ。

472 :デフォルトの名無しさん:02/10/22 18:07
宿題を きくスレは
http://pc3.2ch.net/test/read.cgi/tech/1029422194/


473 :デフォルトの名無しさん:02/10/22 19:35
早くこのスレ消化しようぜ
>>1の書き込みがマジでウザイ

474 :デフォルトの名無しさん:02/10/22 20:24
クリスタルレポートをやっているのですが、
たとえばB4横を使用して、右半分、左半分とページ的に扱うにはどうしたらいいのでしょうか?
具体的には、
□□ ← B4を横にしたとして、
まず左がわにレコードを印刷していき、下まできたらつづきは右側、というようにです。



475 :D:02/10/22 21:39
>474
プリンタの設定をB4横にします。
[書式][セクション][ディティール][ラベルのレイアウト]
で”ユーザー定義サイズ”を選択してサイズを設定します。
ラベルサイズで設定されたサイズで面取りされます。
縦から横オプションボタンをオンにします。

宛名ラベルを参考にしてください。

476 :デフォルトの名無しさん:02/10/22 21:45
VBScriptはWeb制作板でするべきなのに、なぜこのスレッドでも受け付けているんですか?

477 :デフォルトの名無しさん:02/10/22 21:47
そこにコードがあるから

478 :デフォルトの名無しさん:02/10/22 22:22
>>465
どうせ年齢なんて範囲がある程度決まっているんだから...

Public Function 指定年齢抽出(_
 ByVal 下限 As String, _
 ByVal 上限 As String) As String

 If IsNull(下限) Or 下限 = "" Then 下限 = "0"
 If IsNull(上限) Or 上限 = "" Then 上限 = "999"
指定年齢抽出 = "Between " & 下限 & " and " & 上限
End Function

でいいと思うけど。

479 :474:02/10/22 22:46
>>475
なんとか宛名ラベルを使用して、
また、1ページの表示できる最大レコード毎にページカウントを印刷ワーク作成時に入れて、
サブレポートにてページ毎の表を作ることができました。

今度は、線を任意に表示・非表示がやりたいのですが、
通常のテキストフィールドには式により設定できるのに、線オブジェクトの非表示項目には式がありません。
どうにかならないでしょうか。

480 :デフォルトの名無しさん:02/10/22 23:04
>>456
どんもです。
AppendMenuかInsertMenuItemを使えばいいみたいですね。
少し作ってみたけれど、変なところにメニューが出来てしまいますたヽ(´Д`;)ノ
まぁ、色々チャレンジしてみますです。
有難うございますた

481 :D:02/10/23 00:23
>>479
CrystalReportめったに使わないんでてきとーな返事なんですが、
線の上にテキストフィールドを非透過で置いてその表示/非表示を切り替えてみれば?
出来るかどうか分からないけど?

482 :デフォルトの名無しさん:02/10/23 10:04
PopupMenu でモーダルなフォームを表示すると
そのフォームで PopupMenu が使えんようだ
回避策を教えてくれ


483 :デフォルトの名無しさん:02/10/23 12:54
おれは、別に 1の書きこみなんて 気にしないぜ〜〜
優秀だからよぉ(w

ま、初心者のスレに 転職しろってのも変な話だよなぁ。
しかも、みんな 職業プログラマみたいないい方だし。
前スレのレスが よっぽど 気に入ったらしいな(w

484 :デフォルトの名無しさん:02/10/23 12:55
別に消化しなくたっていいんだぜ。
新スレたてればいいんだ!
ここは スレデフレになってないしな。
って スレデフレって なんやねん(爆)

485 :デフォルトの名無しさん:02/10/23 12:57
>>483
うん。俺も気にしない。まぁどうでもいいんだから、あんなの無視しとけって。
無視できない奴は実は>>1でわざと気づかせようとしていると思われるぞ(w

486 :デフォルトの名無しさん:02/10/23 13:03
マッチポンプですた

487 :D:02/10/23 14:48
言われてむかつくことは内心自分が認めていること。

488 :デフォルトの名無しさん:02/10/23 15:20
ものすごいバカにバカって言われてもむかつくよ。

489 :1:02/10/23 15:48
( ´,_ゝ`)プッ

490 :デフォルトの名無しさん:02/10/23 16:34
VC++やJava知っている人がVBやるとどれぐらいで覚えられる?
1週間ぐらい?

491 :デフォルトの名無しさん:02/10/23 16:40
>>490
VBは奥が深いよ

492 :D:02/10/23 16:51
便利そうで使わないもの。
"CallByName"!
誰か使ってる?

493 :デフォルトの名無しさん:02/10/23 16:55
>>489
>>>2-999
>悪いことは言わないから(w)、転職、または他部門への異動を真剣に
>検討して頂きたい。技術のない技術者(言葉が矛盾しているが w)の
>存在は、顧客にとっても、同業者にとっても、迷惑(足手纏い)以外の
>何者でもない。

おまえも入っているという罠

494 :デフォルトの名無しさん:02/10/23 18:05
>>490
VBは比較的かわってて
C++ユーザーとかは入り込みにくいというのをよく聞く。

495 :デフォルトの名無しさん:02/10/23 18:11
>>490
VBとVCとJavaでどれが他に有ってどれが他の言語に無いのか
まとめられればいいんだけどねぇ。

496 :デフォルトの名無しさん:02/10/23 18:56
>>495
言語や開発ツールの比較対照をまとめたサイトなんていくらでも
あるだろーが。



497 :デフォルトの名無しさん:02/10/23 19:07
>>494
入る必要がない。

498 :デフォルトの名無しさん:02/10/23 19:14
>>496
言語仕様まで踏み込んだ比較対照サイトは知らない。

499 :デフォルトの名無しさん:02/10/23 19:14
>>497
>>490が入る必要がありそうだ。

500 :デフォルトの名無しさん:02/10/23 19:17
>>499
かわいそうだね。

501 :デフォルトの名無しさん:02/10/23 19:22
>>500
別に。その程度でかわいそうだなんて甘いよ。

502 :デフォルトの名無しさん:02/10/23 19:24
WebBrowserコントロールで、
navigate2 メソッドのヘッダーにて User-Agent を決めることは出来ましたが、
表示されているページのリンクを押した際されるページ切替の際は User-Agent を変える方法がわかりません。
どうやればいいかわかりますか?

503 :デフォルトの名無しさん:02/10/23 19:45
MDIの画像編集ソフトを作っています。
(子フォームにはPictureboxがあり、それを使って編集。名前はPIc)
画像を読み込んだときに、PIcはAutosizeをtrueにして
読み込む画像のサイズに合わせているので良いのですが、
フォームもPIcが全部入るようにしようとして

ActiveForm.Width = ActiveForm.PIc.Width
ActiveForm.Height = ActiveForm.PIc.Height

とやると、PIcの一部が欠けてしまいます。どうすれば良いでしょうか。

開発環境はVB6+SP3です。

504 :デフォルトの名無しさん:02/10/23 21:41
>>503
Borderの分が足りてないだけっしょ。
ex=ActiveForm.Width-ActiveForm.ScaleWidth
ex=ActiveForm.Height-ActiveForm.ScaleHeight
ActiveForm.Width = ActiveForm.PIc.Width+ex
ActiveForm.Height = ActiveForm.PIc.Height+ey
とかしてみ。
ScaleModeをvbPixelとかにしてるなら
Screen.TwipsPerPixelX/Yで補正してな。


505 :503:02/10/23 22:07
>>504
なるほど。今試してみたら上手くいきました。ありがとうございます。

506 :デフォルトの名無しさん:02/10/23 22:51
AryStr(0)="桃"
AryStr(1)="VB"
AryStr(2)="タニシ"
・・・
という感じで文字の格納されている配列を
文字コード順で並び替えるにはどうすればいいのでしょう?
ならびかえたあと別の配列に入れる予定です。
NewAry(0)="VB"
NewAry(1)="タニシ"
NewAry(2)="桃"

ちなみに正規表現はよくわかりません。

507 :デフォルトの名無しさん:02/10/23 23:16
プログラムはずぶの素人が短期間で何かのプログラムを作ろうとする場合
やっぱりCなんかよりもVBマンセーでつか?

508 :デフォルトの名無しさん:02/10/23 23:27
>>507
経験が無いならという前提で。
VBでもDelphiでもBCBでも一緒。
VC++やBCCは、ちと時間がかかる。

509 :デフォルトの名無しさん:02/10/23 23:29
プログラムの種類にもよるけどね。
コンソールアプリならCの方が短時間で何かのプログラムを作れる。

510 :デフォルトの名無しさん:02/10/23 23:30
>>506
ソートをオンにしたリストボックスを使う…のは邪道?

511 :デフォルトの名無しさん:02/10/23 23:30
>>506
左端1文字でソートする。
まずは基本から。
手抜きはあとで教える。


512 :デフォルトの名無しさん:02/10/23 23:33
>>509

> プログラムの種類にもよるけどね。

要するに、適材適所。

ハイヒールは登山には不向き。
ビキニの水着(あ、別にビキニじゃなくても(^^;)はスキーには不向き。
軽飛行機は宇宙旅行には不向き。つうか、不可能。

そういうこと。


513 :デフォルトの名無しさん:02/10/23 23:34
>>506
バブルソート
AryStr(0)とAryStr(1)を比べて1の方が小さかったら0と1を入れ替える。
AryStr(0)とAryStr(2)を比べて2の方が小さかったら0と2を入れ替える。
これで0が最小になる。
1と2を比べて2のほうが小さかったら1と2を入れ替える。
これで1が0の次に小さくなる。

>>507
簡単なデバッグができるようになるまでの研修期間
VB 3ヶ月(9割の人間が習得できる)
VC++ 12ヶ月(5割の人間が習得できる)

514 :デフォルトの名無しさん:02/10/23 23:44
>>513
3ヶ月は甘過ぎるような気がするけど?

(1) 新卒採用時に能力適性がきちんと見極められている。
(2) 短期集中教育

が実現できていれば、簡単なデバッグは1週間でできるかと思われ。
むしろ、構造化とか、変数のスコープ、OO的な部品再利用のしくみ
(COM等)の方が、教育に時間が掛かるのではないかと?

515 :507:02/10/23 23:45
>>509
厨な質問でスマソ・・・・・・
コンソールアプリってなんでつか?(;・∀・)スマソ・・・・

516 : :02/10/23 23:46
>>510
すばらしいです。
わたしは並び替えだけのためにデータベースをつかわないとかんかなあという大げさなことを考えてました
SQL文でASCやDESCEをつかうのかなあなんて。

>>511
>>513
StrComp()をつかってやるような予想はつけたのですが。
http://www.geocities.co.jp/SilkRoad/4511/vb/strsort.htm
がみつかったのでコピペで手抜きしてみます。

>>510リストボックス使ってみたくなりました。

517 :デフォルトの名無しさん:02/10/23 23:47
>>513
son-na osoi houhou wo oshieruna.

518 :デフォルトの名無しさん:02/10/23 23:50
>>515

次の中から選択してください。

(1) コソーリ作るアプリ
(2) コンソメの味がするアプリ
(3) コンサルの業務を支援するアプリ
(4) GoTo >>1 : End

※ ちなみに、推奨する選択肢は(4)です。w


519 :517:02/10/23 23:56
バブルソートって隣接交換法だよね?
隣のものと比べるんじゃないの?

AryStr(0)とAryStr(1)を比べて0の方が小さかったら0と1を入れ替える。
AryStr(1)とAryStr(2)を比べて1の方が小さかったら1と2を入れ替える。
というのを配列の末尾までやると一番大きな値が配列の末尾にくる。
あとはソートする範囲をせばめて同じことを繰り返す。

520 :517:02/10/23 23:58
519
小さかったじゃなくて大きかったら。
>>513のをコピペして使ったから間違った。。。

521 : :02/10/23 23:58
文字コードを返す関数ってなんでしたっけ?
StrComp,StrConv,StrReverse いづれもちがうみたいでした。

522 :デフォルトの名無しさん:02/10/23 23:59
Asc。

523 :デフォルトの名無しさん:02/10/23 23:59
IPを詐称するにはどうしたらいいでしょうか?

524 :デフォルトの名無しさん:02/10/24 00:01
すれ違い

525 :513:02/10/24 00:01
>>515
適性検査の結果で、VB研修コースとVC研修コースに分けます。
さらに、VC研修コースで落ちこぼれた人たちにVB研修コースに行って貰います。

>構造化とか、変数のスコープ、OO的な部品再利用のしくみ(COM等)
を理解してもらおうとは思っていません。

でも、現実はVCいじってても、デバッグはできるけど
フルスクラッチはできないって人が多いでつ。

526 : :02/10/24 00:08
>>522
Ascをヘルプで見てみました。まさに求めていた関数でした。
はじめてAscをみたときは絶対値を返すのとおなじ関数なんだなあとおもいましたが、
ヘルプを読んでいくうちに絶対値はAbsだとわかりました。ありがとうございました。

>>506-525みなさま
ありがとうございました。

527 :513:02/10/24 00:09
>>519
そうでした。
大きな数字が泡のように登ってくるからバブルソートでしたね。
逝ってきます。

528 :デフォルトの名無しさん:02/10/24 00:52
>>525
>>構造化とか、変数のスコープ、OO的な部品再利用のしくみ(COM等)
>を理解してもらおうとは思っていません。
こうやってVBユーザに糞プログラマが量産されるんだな(ワラ


529 :デフォルトの名無しさん:02/10/24 05:16
コンソールアプリって コマンド入力するようなDOS画面などで使うアプリのことかな。

530 :デフォルトの名無しさん:02/10/24 08:17
時代を感じる・・・

531 :デフォルトの名無しさん:02/10/24 09:16
EnumWindowsっていうAPIを使いたいのですが、
VB上で実行すると「DLLが正しく呼び出せません」とエラーがでます。
Exeにすれば動くようなのですが、それではデバッグ時に激しく困ってしまいます。
どうすればよいのでしょうか?


532 :デフォルトの名無しさん:02/10/24 10:02
>>525
掃溜めなのか(w

533 :デフォルトの名無しさん:02/10/24 11:06
JetDBエンジンで
dim db as Database
set db = open(......

if db = 開けた? then
msgbox "やったー"
end if

みたいにオープンできたかどうか調べたいのですができますか?
On errorとかは使いたくないのですが

534 :デフォルトの名無しさん:02/10/24 11:22
JetDBエンジンで
dim db as Database
set db = open(......

if Err=0 then
msgbox "やったー"
end if


535 :デフォルトの名無しさん:02/10/24 11:25
>>534
にゃるほど。さんくす。

536 :デフォルトの名無しさん:02/10/24 11:45
> On errorとかは使いたくないのですが

ハア? 無理です。
悪いことは言わないから(w)、
転職、または他言語への異動を真剣に検討して頂きたい。

537 :デフォルトの名無しさん:02/10/24 11:48
>>536
いや、説明上そういっただけでほんとは使ってるよ。

538 :デフォルトの名無しさん:02/10/24 11:52
on error を必要以上に嫌う・恐れる必要はないよね。
よく使い道を理解した上で、必要最小限しか使わなければいいわけで。

539 :536:02/10/24 11:54
>>537
説明上って... じゃあ、
> On errorとかは使いたくないのですが
というのは一体どういう意味なの?

540 :デフォルトの名無しさん:02/10/24 11:56
>>539
on errorを意味なく嫌ってるアホって意味でしょw
538が書いたとおり、使い方さえ間違えなければいいだけなのに

541 :デフォルトの名無しさん:02/10/24 12:02
>>533
On Error使わんと無理。openでこけるよ。

542 :536:02/10/24 12:02
>>538,540
禿しく同意。

543 :デフォルトの名無しさん:02/10/24 12:35
On Error GoTo
がいやで、
On Error Resume Next
は別にいいとかではなくてかな

544 :デフォルトの名無しさん:02/10/24 12:47
On Error で 飛んで処理させる言語は クズだな。
んなもん、使用した関数で エラーを出して IF文で処理させろよ。


545 :デフォルトの名無しさん:02/10/24 12:49
>>531
そのソースを見てみないことには何とも...

546 :デフォルトの名無しさん:02/10/24 12:51
>>539
答えがOn Error以外のが欲しかったから。


547 :デフォルトの名無しさん:02/10/24 12:53
>>544
> 使用した関数で エラーを出して IF文で処理させろよ。

( ´,_ゝ`) プッ
ネタ?

548 :デフォルトの名無しさん:02/10/24 13:01
On Errorで思い出したけど、
On Error使わないで、On Errorに引っかかるようなエラーが出ると
「〜〜〜エラー 〜〜〜が〜〜〜です」とかメッセージボックスでたあと強制終了しちゃうけど、
メッセージボックスだけでだして終了しないようには出来ないの?
On Error Resume Nextしたみたいにエラーだしたあと、その処理を無視して
続行、みたいな。

549 :デフォルトの名無しさん:02/10/24 13:02
>>546
じゃあそもそも聞き方が間違ってる。
現在は on error で処理していますが、違う方法は
ないんでしょうか? が正しい。

550 :531:02/10/24 13:05
Private Sub Command1_Click()
Dim Ret As Long
Ret = EnumWindows(AddressOf Rekkyo, 0)
End Sub

Public Function Rekkyo(ByVal Handle As Long) As Boolean
〜コード〜
End Function
関数Rekkyoの中身に関わらずエラーがでます。

551 :デフォルトの名無しさん:02/10/24 13:07
>>549
そうなんだけどね。俺日本語不自由なんだよね。察してよ。

552 :536:02/10/24 13:11
>>546
541が書いてるように、OpenDatabaseでオープンできなかった時は
実行エラーが発生するのはわかってる?
それがわかっていれば On Errorなしではチェックできない
こともわかるはず。

>>550
Rekkyoの引数の数と戻り値の型が間違ってるよ。
(戻り値の型が違うのはエラーとは関係ないが)

Public Function Rekkyo(ByVal Handle As Long, _
ByVal lParam As Long) As Long

553 :531:02/10/24 13:14
お〜、動いた。ありがとうございました。
っていうかこのコード実はサンプル集から持ってきた奴だったりして(w
でもEXEにすると動いたのはなぜ??

554 :552:02/10/24 14:00
>>553
さあ。手元にVBがないのでわからんけど、
俺の手元のWin98では、EnumWindowsのコールバック関数の
引数のサイズや呼び出し規約が正しくなくても、
それを呼び出したDLL側でスタックポインタを復帰してくれてる。

そうなると、開発環境がエラーを検出できている方が不思議だけど。

555 :デフォルトの名無しさん:02/10/24 15:02
バブルソートなんか 使っていると そのうち バブルが はじけるぞ (謎)

556 :デフォルトの名無しさん:02/10/24 16:36
>>555
「この会社辞めようと思った上司の一言」ですか?

557 :デフォルトの名無しさん:02/10/24 16:51
ソニー製アプリケーションって、ボタンの色はもちろん、
メニューとか全部独自のカラー&デザインになってますよね。
でも機能や操作性はWindows標準コントロールと変わらない。
あれは独自にコントロールを作成しているのでしょうか?
それとも、Windows標準コントロールに何らかの方法で描画しているのでしょうか?
VBでコマンドボタンの色を変えようとしても表面だけで陰の部分は変わってくれませんよね?

558 :デフォルトの名無しさん:02/10/24 17:06
>>534
インライン エラー処理使えよ。

559 :デフォルトの名無しさん:02/10/24 19:31
>>557
そのソニー製は見たことないから知らんけど、
標準コントロールでも独自コントロールでも可能。

560 :デフォルトの名無しさん:02/10/24 19:46
>>557
標準コントロールと100%同じ独自コントロールだって作れるん
だから、自分でがんばれ!

561 :557:02/10/24 19:52
そうですね。どちらでも可能だとは思いますが。
まぁボタンとチェックボックスぐらいはできそうだけど、
リストボックスや、メニュー、タブストリップまでとなると。。
おそらくソニーのやつは標準コントロールになんらかのメッセージを送ってると思うのですが
どういったAPI使えばよいのでしょうか?

562 :557:02/10/24 19:54
あ、そういえばWindowBlindsってソフトありますよね。
あれと同じ事をしてると思うのですが。

563 :デフォルトの名無しさん:02/10/24 20:01
まぁオリジナルのオブジェとか見た目は良いかもしれないけど、見た目重視しすぎて
重くなったり動作が不安定にならないように気を付けてね・・・

564 :デフォルトの名無しさん:02/10/24 20:20
背景が半透明のエディタをつくる方法がまったくわかりません。
リッチテキストボックスを半透明にするコマンドとかあるんですかね。

565 :デフォルトの名無しさん:02/10/24 20:34
>背景が半透明のエディタをつくる方法がまったくわかりません。
WinME,XP,98でしか無理。

というか、
1)エディタは出来てるが半透明化が全く解からん
2)エディタもつくれないし、透明化も全く解からんアホ

どっち?



566 :デフォルトの名無しさん:02/10/24 20:40
>WinME,XP,98でしか無理。
Win2000,XPでしょう?

Windowsの透明レイヤー機能を使うか、
自分で全部描画するかすりゃいいとおもいます

567 :デフォルトの名無しさん:02/10/24 20:47
以下のように、オラクルに接続して接続失敗したらエラーコードを取得するコードを書いています。
接続とエラー処理は別のモジュール内にあります。
これを実行したとき、矢印の場所の”cnObj”の個所で
エラーメッセージ「名前が適切ではありません」と言うのが出てきてしまうのですが、
cnObjの宣言をFnc_Orasseion内で行うと上手く行きます。
Publicで接続オブジェクトを宣言しても、別モジュールでは使用出来ないのでしょうか。

basOra内
***********************
Public cnObj As New ADODB.Connection
Public rsObj As New ADODB.Recordset
Public er As ADODB.Error
Public Function Fnc_Orasession() As Boolean
Dim ret As Boolean
On err Goto ErrTrup
'データベース接続文字列
cnObj.Open pstrOraSource, pstrOraUser, pstrOraPass
Exit Function
ErrTrup:
call subErr
End Function
***************************
basErr内
***************************
public sub subErr
For Each er In cnObj.Errors ←
msgbox er.Number
Next
end sub


568 :564:02/10/24 20:49
>>565-566
エディタはつくれなくても、
テキストボックスやリッチテキストボックスを透けさしたり、それらに背景画像を表示させてみたいです。
あそびごころのあるテキスト入力ボックスですね。
WindowsはXPです。
透明レイヤー機能ははじめて聞きました。

569 :デフォルトの名無しさん:02/10/24 20:53
透明レイヤーはWin2000とXPしかつかえない。
でも結構簡単に実装できる。
でもちょっと重い。

570 :デフォルトの名無しさん:02/10/24 20:57
>>565
アフォ?
どのWinでもできるっつーの

571 :デフォルトの名無しさん:02/10/24 21:18
VBの場合、クラスモジュールに宣言したStatic変数は
どういうスコープになるのでしょうか?

確か、C++でクラス内にStatic宣言をすると、
各インスタンスから参照される定数が
メモリ上に一個だけできたはずなんだが。


572 :デフォルトの名無しさん:02/10/24 21:33
VB.NET環境でCORBA通信できるクライアントサーバのサンプルソースキボン

573 :564:02/10/24 21:44
まずは透明レイヤーでしらべてみます。

574 :デフォルトの名無しさん:02/10/24 22:02
レキシカルスコープでつ
http://homepage2.nifty.com/rohizuka/ka/pa_003_a.htm


575 :564:02/10/24 22:06
ttp://hp.vector.co.jp/authors/VA014315/vb6.htm
ttp://www.vector.co.jp/soft/winnt/prog/se254101.html?g
ttp://tokyo.cool.ne.jp/kanain/APIHTM/Blend.html
ttp://www.vector.co.jp/soft/winnt/prog/se154482.html?y
ttp://www.vector.co.jp/soft/win95/prog/se144994.html?y
ttp://dobon2.tripod.co.jp/dotnet/form.html#opacity
画像の半透明化は結構みつかる。
VB.NETではフォームを半透明にするコマンドも標準であるらしいこともわかった。
テキストボックスを半透明にするにはBitBltとかを勉強してみるしかないか。

576 :デフォルトの名無しさん:02/10/24 22:14
>>574
またそれか。しね。

577 :デフォルトの名無しさん:02/10/24 22:42
>>557
> まぁボタンとチェックボックスぐらいはできそうだけど、
> リストボックスや、メニュー、タブストリップまでとなると。。
メニューはともかくとして、リストボックスやタブなら
自前でも難しくはないと思う。

> おそらくソニーのやつは標準コントロールになんらかのメッセージを送ってると思うのですが
> どういったAPI使えばよいのでしょうか?
標準コントロールにメッセージを送るのではなく、
サブクラス化とか、オーナードローを使うのが普通。
(コールバック関数を用意して、送られてくるメッセージを自分で処理する)

578 :557:02/10/24 22:52
む、なにやら難しそうですな。
クラスはまだ全然分からないです。

>メニューはともかくとして、リストボックスやタブなら
>自前でも難しくはないと思う。
まぁタブはそれほどむずくはないですか。
リストボックスはちょっとむずそうというかどちらかというとリストビューのほうが良いし。
あとスクロールバーがあれば大抵はいけそうではありますが。

579 :デフォルトの名無しさん:02/10/24 23:20
>>578
> クラスはまだ全然分からないです。

オブジェクト指向のクラスのことを言ってるの?
ウィンドウのサブクラス化はそれとは別物なので、
一度ググッてみることをおすすめする。

580 :デフォルトの名無しさん:02/10/25 00:13
>>579
>オブジェクト指向のクラスのことを言ってるの?
>ウィンドウのサブクラス化はそれとは別物なので、

オブジェクト指向なAPIを持つWindowsに対する挑戦か?


581 :  :02/10/25 02:58
VBでマルチスレッドってできますか?

582 :デフォルトの名無しさん:02/10/25 03:02
>>581
VB.NETでは可能


583 :デフォルトの名無しさん:02/10/25 08:56
ヴァカな発言がネタなのか、天然なのかを効率よく判定するアルゴリズムを
教えてください。

584 :デフォルトの名無しさん:02/10/25 09:24
「ネタだったら寒い。本気だったら痛い。釣りならヘタ。」と言ってあげる。

585 :デフォルトの名無しさん:02/10/25 11:47
>>584
感謝。m(_ _)m
分岐条件が網羅的なところにセンスを感じますた。

586 :デフォルトの名無しさん:02/10/25 13:17
ToolTipTextで 改行させて 複数行表示させる方法を教えてください。

587 :デフォルトの名無しさん:02/10/25 13:20
>>586
改行文字を。

588 :デフォルトの名無しさん:02/10/25 13:23
>>586

Listboxなんですけど、表示を確認してから コーディングの仕方を
教えてもらえないでしょうか?

589 :デフォルトの名無しさん:02/10/25 13:23
まちげえた
>>587
です。

590 :デフォルトの名無しさん:02/10/25 13:26
>>589
改行文字を入れろって書いてあるじゃん

591 :デフォルトの名無しさん:02/10/25 13:30
>>590
日本語が読めない人をいじめたら可哀そうじゃん。

592 :デフォルトの名無しさん:02/10/25 14:13
>>590

おれやってみたけど、改行文字入れても ダメだった。


593 :デフォルトの名無しさん:02/10/25 14:14
>>592
ちなみに何入れたの?13 10だよ?OK?

594 :デフォルトの名無しさん:02/10/25 14:22
ああそういえば 改行文字ってなんだ?

\n か?
chr(13) & chr(10) か?
それとも 改行文字って 入れないとダメなのか?(w

595 :デフォルトの名無しさん:02/10/25 14:26
おっ 知ったかの糞厨 発見

596 :デフォルトの名無しさん:02/10/25 14:31
vbCrLf

597 :デフォルトの名無しさん:02/10/25 14:38
MDIで子フォームがいくつかあって
メニューエディタで設定できないショートカットキーで
特定の子フォームのイベントを発生させたい場合
どうしたらいいでしょう?
全ての子フォームにキーイベントを書かないとだめでしょうか?
メニューエディタのショートカットキーを増やす裏ワザとか
あったりするんでしょうか?

598 :デフォルトの名無しさん:02/10/25 14:52
vbCrlf でTooltip改行しようとしても文字化け起きて改行できなかった

Win2000(sp3) & vb6(sp5)

599 :デフォルトの名無しさん:02/10/25 14:54
ToolTipTextで改行はできないよ。
ToolTipText用のフォームを作るなりコントロールを作るなりしてゴマかせ。

600 :デフォルトの名無しさん:02/10/25 14:57
>>599
了解

601 :デフォルトの名無しさん:02/10/25 16:14
>>599
なーんだ できないのか。いくらやっても おかしいなぁと思ったんだよ。
だから、できるのを確認して、コードを出してって いうのに、
変なこと いう人いるんだから。

602 :デフォルトの名無しさん:02/10/25 16:20
>>601
・・・誰?


603 :デフォルトの名無しさん:02/10/25 16:22
>>601
誰 っつーか 無償の第三者に動作確認してから
コード出せとは相当図々しいぞ。学生だろお前?

604 :デフォルトの名無しさん:02/10/25 16:24
>>601
謎の半角スペースは何のつもりなんですか?句読点の使い方がいまいち理解できてない?

VBとかより今の義務教育の勉強を真面目にした方が良いと思われ。

後、煽りには国語必須な。
文章に隙があれば付け入られる。


605 :デフォルトの名無しさん:02/10/25 16:30
>>603
>学生だろお前?

と言うせりふをこの板で良く耳にしますが、社会人は偉いんですかいな?
立派な人は立派ですが>>603の様な痛い方も多いわけで。


606 :デフォルトの名無しさん:02/10/25 16:35
>>605
肝心な部分に反論できてないキミのほうがイタイよ・・

607 :デフォルトの名無しさん:02/10/25 16:36
学生には、社会の厳しさを知らない甘えんぼチャンが多い