(*´д`*)ハウァッ… VB初心者質問スレ Part16(2ちゃんねる)

FTP、CGI、SSI、telnetが自由に使える超高速レンタルサーバ。
工夫しだいで、楽しさ100倍。 www.binboserver.com
月額千円サーバ | サブドメインコース | BIGなサーバ

サブドメインコース:CGIやFTPが使いたい・お金を掛けたくない人のために。
 *****.syo-ten.com *****.gasuki.com *****.zansu.com
 お好きな名前を無料で使えます。早い者勝ち。

人気サイト 月額千円サーバ:.com .net .org で取得できます。.JPドメイン大歓迎!
 超高速・高機能サーバを1000円で!使ってみれば、分かります。

BIGなサーバ:Big なBig なサーバー。充実したサポートをお求めの方へ。
 インターネットでご活躍の皆様へ、そしてご活躍予定の皆様へ。
2ちゃんねるは、このサーバを使っているです。

■掲示板に戻る■ ■過去ログ倉庫めにゅーに戻る■

(*´д`*)ハウァッ… 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
学生には、社会の厳しさを知らない甘えんぼチャンが多い。
ということでしょうな


608 名前: デフォルトの名無しさん 投稿日: 02/10/25 16:38
>>607
禿同。605よ、言葉通りに受け取らず、そう言われた意味を察しろ。


609 名前: デフォルトの名無しさん 投稿日: 02/10/25 16:40
>>605
どうでもいいとこいじくるな。
>>603を含むこの板の住人は社会人がえらいとかどうとかじゃなくて
モラルとか常識のなさを学生並と皮肉ってるんだろ。


610 名前: デフォルトの名無しさん 投稿日: 02/10/25 16:50
>>605
生徒だろお前?


611 名前: デフォルトの名無しさん 投稿日: 02/10/25 17:31
>>610
生理だろお前?


612 名前: デフォルトの名無しさん 投稿日: 02/10/25 17:41
ToolTipって改行不可だと思ったけど
vbCrLfでも無理なはず。


613 名前: デフォルトの名無しさん 投稿日: 02/10/25 17:43
げっ!リロードしてなかった。
WinXPでもPCカード取り外したりするときにでてくるToolTipを使うとよいよ
み〜くんぱぱのところにサンプルがある


614 名前: デフォルトの名無しさん 投稿日: 02/10/25 18:12
ここで聞けないようなもっと初歩的なことは、どこで聞けばよいのですか?


615 名前: デフォルトの名無しさん 投稿日: 02/10/25 18:14
>>614
ここでいいよ


616 名前: デフォルトの名無しさん 投稿日: 02/10/25 18:18
>>614
なぁ、本とかで勉強してこい。


617 名前: デフォルトの名無しさん 投稿日: 02/10/25 18:24
半角スペースって謎か?(w




618 名前: 614 投稿日: 02/10/25 18:25
>>615
じゃあ、叩かれるのを承知で書いてみます。
全然初心者なんですけど、急きょVBをいじらされることになりました。
リストラは最悪です。(昔はSEがいたのだけど、今は庶務課の私が開発
も兼務・・・)

さて、作るAPなんですが、pdfファイルを3つ選択して、それをftpで送信するというものです。
こんな書くと簡単なものなのですが、作り方がさっぱりわかりません。
(今日VBをインストールしたばっかの初心者なんで。。。)

AP実行手順(イメージ)は、
 @アプリを.exeで起動
 Aあらかじめform上に用意してある3つのブランクBOXに.pdfファイルを選択してきて、入れ込む。
(pdfファイルは指定のフォルダに入れておくカタチでも良いですが、
   windowsのディレクトリを参照してファイルが選択できるようであれば尚良しです。)
 B3つのブランクにファイルが埋まって、「送信ボタン」を押すと指定したftpのサイトへそのファイルを転送する。
 C送信終了時に「送信完了(成功)」とかメッセージが出る。
 D終了ボタンでexeが落ちる

ってな具合です。


619 名前: デフォルトの名無しさん 投稿日: 02/10/25 18:28
VBをインストールしたばっかの初心者に開発させるなんて最悪の会社だな。


620 名前: デフォルトの名無しさん 投稿日: 02/10/25 18:28
なんかわざわざつくらなくてもいいようなソフトだね


621 名前: デフォルトの名無しさん 投稿日: 02/10/25 18:30
>>618
初歩的な質問とは言い難いがその会社すごい事させるな。(w

サンプルのソース探してそれをいじくるのが吉と思われ。


622 名前: 614 投稿日: 02/10/25 18:32
そうなんですよ、ヒドイ会社で・・・(泣

サンプル探しているんですけどねぇ。。。みつからなひ


623 名前: デフォルトの名無しさん 投稿日: 02/10/25 18:33
>>618
MS-DOSで、FTPっていうコマンドが、使えるから、それでバッチを
作ったほうが、簡単。


624 名前: デフォルトの名無しさん 投稿日: 02/10/25 18:35
>>622
じゃぁ、こんなのはどうだ?
ttp://www.vector.jp/soft/win95/net/se058005.html


625 名前: デフォルトの名無しさん 投稿日: 02/10/25 18:37
>>623
たぶん作ってもらいたいのはFTP送信というよりも
フォームにファイルを選択してボタン押すだけで送信できるツールだと思われる。


626 名前: デフォルトの名無しさん 投稿日: 02/10/25 18:44
給料払って車輪の再発明をさせるとは、素晴らしいDQN害社ですね。(w


627 名前: デフォルトの名無しさん 投稿日: 02/10/25 18:50
>>626
車輪すらまともに作れず威張ってるヤツよりましだと思われ。


628 名前: デフォルトの名無しさん 投稿日: 02/10/25 19:13
>>614
それ作ってやってもいいぞ、ただで。


629 名前: デフォルトの名無しさん 投稿日: 02/10/25 19:24
つか、IEで普通にできるよな。FTPぐらい
ミラーリングとか必要なさそうだし


630 名前: デフォルトの名無しさん 投稿日: 02/10/25 19:25
俺は>614 が女性だったら合コンで手を打とう。


631 名前: デフォルトの名無しさん 投稿日: 02/10/25 19:39
>>630
俺だったら、セクースさせて貰わんと、納得できんが。


632 名前: デフォルトの名無しさん 投稿日: 02/10/25 19:41
>>630-631
男だよ。


633 名前: デフォルトの名無しさん 投稿日: 02/10/25 19:42
俺は手を握ってもらうだけでいいよ


634 名前: 630 投稿日: 02/10/25 19:43
>628 さん、任せましたよ。


635 名前: 614 投稿日: 02/10/25 20:02
遅くなりました。
>>628さん、ご協力いただけると助かります、ホントに。
宜しくお願いいたします。
メアドは後ほどアップします。



636 名前: デフォルトの名無しさん 投稿日: 02/10/25 20:47
>>635 は犬猿の仲の同僚のメアドをアップして、嫌がらせするつもりだそうです。


637 名前: デフォルトの名無しさん 投稿日: 02/10/25 20:56
まだできないの?


638 名前: デフォルトの名無しさん 投稿日: 02/10/25 21:54
つーか NextFTP使え ゴラァ!


639 名前: デフォルトの名無しさん 投稿日: 02/10/25 22:29
>>638
フリーのFFFTPの方が明らかに優れているのに、なんでわざわざ
シェアウェアを使うよ?


640 名前: デフォルトの名無しさん 投稿日: 02/10/25 22:54
>>639
そうか?シンボリックリンクもまともに操作出来ないあのソフトが?


641 名前: デフォルトの名無しさん 投稿日: 02/10/25 22:55
>>639
制限解除する前の状態と比較するなよ・・・


642 名前: デフォルトの名無しさん 投稿日: 02/10/25 23:36
>>614
(1)IEを起動する。
(2)アドレス欄に「ftp://FTPサーバのアドレス」と入力しEnter。
  ユーザとパスワードを聞かれるので入力する。
  このとき「パスワードを保存」をチェックしておくと次回から楽。
  ついでにアドレスはお気に入りに入れておけばなお楽。
(3)エクスプローラでPDFファイルのあるフォルダを開く。
(4)3つのファイルを選択してIEにドロップ。

これでだめかい?



643 名前: 614 投稿日: 02/10/25 23:53
また別な雑用におわれて、レス出来ませんでした。
メールアドレスは、yama_yoshi701@hotmail.comになります。
よろしくお願いします。

>>642
お客さんに見せるデモの一部なんで、それではダメなんだそうです。
やってることはその通りでも、それっぽくみせることが大切とかで!?
(下請けなんで、ツライです。)
しかし、まともなプログラマいないのに・・・。


644 名前: デフォルトの名無しさん 投稿日: 02/10/25 23:56
配列ってどうやって作るんですか?



645 名前: デフォルトの名無しさん 投稿日: 02/10/25 23:57
>>643
おいおい。客がいるのかよ。だったら教えられないな。
客がかわいそうだ。


646 名前: デフォルトの名無しさん 投稿日: 02/10/25 23:57
>>644
マニュアル読めよ


647 名前: デフォルトの名無しさん 投稿日: 02/10/25 23:59
>>644
dim hoge()


648 名前: デフォルトの名無しさん 投稿日: 02/10/26 00:02
>>614
質問の内容は確かに初歩的だが以前に、本人に努力する意思が見られな
い以上、これ以上のアドバイスはする気にならんね。


649 名前: デフォルトの名無しさん 投稿日: 02/10/26 00:11
>>647
さんくす。
それをヒントに今からサーチします!!
ってかマニュアル買う金ねぇ...鬱。



650 名前: デフォルトの名無しさん 投稿日: 02/10/26 00:16
>>649
ヘルプでいいだろう


651 名前: デフォルトの名無しさん 投稿日: 02/10/26 00:18
>>649
(゚д゚)ハァ?


652 名前: デフォルトの名無しさん 投稿日: 02/10/26 00:18
>>649
本屋で立ち読みとか
サンプルコードを探すって手もある。


653 名前: デフォルトの名無しさん 投稿日: 02/10/26 00:22
ヘルプ?
私VBA(エクセルのヤツ)なんだけど、ヘルプ見ようとするとインストールがどうのって言われる゚・(。´Д⊂)゚。・
ネットで探すしかない。

あと本屋で立ち読みする程度では私には理解できないと思う。


654 名前: デフォルトの名無しさん 投稿日: 02/10/26 00:22
>>614
やれるだけやってみて、
そして解らないことが出てきたら、
個別にここで聞いてみたらどうでしょう?

それか、お金を払って別の会社に作ってもらっては?


655 名前: 614 投稿日: 02/10/26 00:24
>>648
628さんのお助けは、あくまで最後の切り札と考えています。
これでも自分なりに試行錯誤しています。
(本とか買ってきて、分からないなりにイジっています・・・)
こんな中年になって苦労するとは思いませんでした。
全然ダメダメ初心者ですが、頑張ります。


656 名前: デフォルトの名無しさん 投稿日: 02/10/26 00:24
>>653
インストールしろよ


657 名前: デフォルトの名無しさん 投稿日: 02/10/26 00:26
>>655
Inetコントロールを使えば簡単だよ。


658 名前: デフォルトの名無しさん 投稿日: 02/10/26 00:28
>>655
ほい!
http://www.microsoft.com/japan/developer/library/VBCon98/vbconusinginternettransfercontrol.htm


659 名前: デフォルトの名無しさん 投稿日: 02/10/26 00:29
>>653
ハァ?日本語も読めねーのか?

そりゃエラーメッセージ読めなきゃ本なんか読んでも意味ねーよな。
北鮮に帰れや。


660 名前: デフォルトの名無しさん 投稿日: 02/10/26 00:37
>>656
ですよねw。こないだからCD探し続けてます。



661 名前: デフォルトの名無しさん 投稿日: 02/10/26 01:56
現在フォーカスがあるコントロールの次のタブインデックスが設定されている
コントロールを知りたいんですが方法ないですかね?
どこかで見かけた記憶があったような気がするんですが・・



662 名前: デフォルトの名無しさん 投稿日: 02/10/26 07:18
FTPのソフトは、Delphiを買うと サンプルについてるからそれ使えば、便利だぞ。

無理に VBを使う必要なしっ!


663 名前: デフォルトの名無しさん 投稿日: 02/10/26 09:14
タイマー使ってイメージ動かすと途中でチカチカするんですが何とかなりませんか?


664 名前: デフォルトの名無しさん 投稿日: 02/10/26 09:30
この業界入って、何の資格も取らずに40歳までいっちゃうとリストラ対象になるってホントですか?


665 名前: デフォルトの名無しさん 投稿日: 02/10/26 09:37
>>664 コピペウザイ


666 名前: デフォルトの名無しさん 投稿日: 02/10/26 10:41
>>663
AutoRedrawとかClipControlsとかそこらへん。


667 名前: デフォルトの名無しさん 投稿日: 02/10/26 10:58
>>664

四角を取る → 角が取れて人間が丸くなる

という意味。要するに、テクニカルスキルだけでなく、対人関係にも
気を遣わないとダメですよ、という意味。


668 名前: デフォルトの名無しさん 投稿日: 02/10/26 12:03
>>667
目からうろこです。


669 名前: デフォルトの名無しさん 投稿日: 02/10/26 14:34
VBの派生テクノロジーを全部うpしてください。

VB VBA VBScript
とあとなにがあるんですか?


670 名前: デフォルトの名無しさん 投稿日: 02/10/26 14:51
>>669
派生というか全部サブセットです。以上。


671 名前: デフォルトの名無しさん 投稿日: 02/10/26 14:59
サブセットのくせにVBにできなくてVBScriptにできることがあるのは我慢ならん。


672 名前: デフォルトの名無しさん 投稿日: 02/10/26 15:24
ソフトの二重起動を防止したいのですが、
よくあるサンプルはApp.PrevInstanceとAppActivateを使う奴が多いようです
が、これだと別の場所にコピーしたExeから起動できてしまうし、
タイトルバーの名前を変えてしまうとアクティブにできません。
ミューテックスを作成するとかいうのはプログラムが正常終了しないと起動できなくなってしまいます。
ウィンドウのタイトルを取得してソフト名が含まれてたら〜ってやればいいじゃん
と思ってやってみたのですが、ウィンドウタイトル=Exeの入ってるフォルダ名
ってことがあるとダメなことに気がついてしまいました。
どういう方法が一番よいでしょうか?
プロセスからファイル名を取得してファイル名から判断するってなことも考えてみましたが、
どうだろうって感じです。


673 名前: デフォルトの名無しさん 投稿日: 02/10/26 15:49
> ミューテックスを作成するとかいうのはプログラムが正常終了しないと起動できなくなってしまいます。

そんなことはないと思うが?


674 名前: デフォルトの名無しさん 投稿日: 02/10/26 15:56
>>673
同意。NTオブジェクトである以上プロセスと運命をともにするはず。


675 名前: 672 投稿日: 02/10/26 17:45
どうやらVB上だとダメっぽいです。
一度実行するともう起動しなくなります。
EXEにすると問題ないのですが。


676 名前: デフォルトの名無しさん 投稿日: 02/10/26 17:47
インタプリタ実行した場合って事ね。そりゃそうか


677 名前: デフォルトの名無しさん 投稿日: 02/10/26 18:01
>>675
それでいいんじゃない? というか、
EXEの時にだけチェックするのでは不都合があるの?


678 名前: 672 投稿日: 02/10/26 18:15
おっと、QueryUnloadにReleaseMutexじゃなくてCloseHandleにしたらちゃんと起動するようになりました。
ただ、VBの終了ボタンで終了してしまうと当然起動しなくなりますが。
開発環境で実行してるかどうかのチェックをすればよいのかな?
VB5だとわり算だかで計算結果が違うのを利用できたそうなのですがVB6はどうなのでしょうか


679 名前: デフォルトの名無しさん 投稿日: 02/10/26 18:23
>>678
> 開発環境で実行してるかどうかのチェックをすればよいのかな?

気は確かか ? 一体どのタイミングでチェックするんだ ?


680 名前: 672 投稿日: 02/10/26 18:30
え?
If 開発環境=False then
 Unload Me
End If
ってやるだけですが。


681 名前: デフォルトの名無しさん 投稿日: 02/10/26 18:36
exe実行時だけのチェックで何がマズいのかさっぱりわからん(´ー`)


682 名前: デフォルトの名無しさん 投稿日: 02/10/26 18:50
>>68
だからexe実行時かどうか知りたいんでしょ?

デバック時にも2重起動禁止が働いて、2重起動してないのに走らないんじゃ不便だから


683 名前: デフォルトの名無しさん 投稿日: 02/10/26 18:56
方法はいくつかあると思うけど、
MSの技術情報ではApp.ExeNameで判定するのが
紹介されていたような気がする。
でも、条件付きコンパイルとか、EXEを作る時に初めて
チェックルーチン呼び出しを組み込んでもいいんじゃない?


684 名前: デフォルトの名無しさん 投稿日: 02/10/26 18:58
mutex


685 名前: 672 投稿日: 02/10/26 19:18
いや、その、VB上で実行しているときに、
アプリケーション側で終了していればQueryUnloadが呼び出されてMutexが解放されるけど、
VB側で終了させてしまうとMutexが解放されないので以降実行できなくなってしまうんですよ。
VBを終了させてプロジェクトを開き直さないといけません。

>>683
条件付コンパイルですか。なるほど。
それでもいいかな。


686 名前: デフォルトの名無しさん 投稿日: 02/10/26 20:21
>>685
なんで終了処理の方で使い分けようとするの?

終了時ではなく、起動時のMutex作成を
(開発環境での実行時は)行わないようにした方が
よいのでは?


687 名前: 683 投稿日: 02/10/26 21:09
>>683で App.ExeNameと書いてるけど、
これ多分 GetModuleFileNameの間違いだわ。ごめん。


688 名前: デフォルトの名無しさん 投稿日: 02/10/26 21:49
>>680
どこに書いておけば、そのコードが「VB側で終了させてしまうと」の時に走るんだ ?

(ったく、誰がチェック/対処 の仕方を聞いてるんだよ...。)
(しかも、Unload Me したってダメだし。)


689 名前: 672 投稿日: 02/10/26 22:19
>>686
そうですね。そうします。
ところで、Mutexの作成元のウィンドウはどうやったらわかるのでしょうか?
二重起動の時には既に起動しているウィンドウをアクティブ表示にしたいのですが。


690 名前: デフォルトの名無しさん 投稿日: 02/10/27 02:14
半角スペースって謎か?(w


691 名前: デフォルトの名無しさん 投稿日: 02/10/27 07:34
>>689
それこそウィンドウタイトルやクラス名でウィンドウを検索して
アクティブにすればいいのでは?
Mutexの作成元プロセスを取得する方法があるのかどうか知らないけど、
仮に方法があったとしても、多分、NT系OS限定(セキュリティ関連)
ではないかと思う。

それと、688の意味はわかった? 彼の言ってることは正しいと思うよ。


692 名前: 672 投稿日: 02/10/27 08:41
ああ、そういうことですか。>>688
いや、別にVBで終了させるときに走らせる必要はなくて
VB上なら問答無用で起動させるようにすりゃよいだけです。
というか686さんの方法でばっちりなのですが。


693 名前: デフォルトの名無しさん 投稿日: 02/10/27 12:01
・DB名,パスワード等の取得について
win2000は環境変数があってそこから取得すればよいと思うんですが、
win95の場合はどうやって取得すればよいと思いますか?iniファイルとか?
なにかよい案をください。
お願いします。





694 名前: デフォルトの名無しさん 投稿日: 02/10/27 12:08
>>693

パスワードは、ポストイットに書いたのをモニタに貼り付けておく。
それを見ながら、画面上でパンチすればよい。

iniファイルを使うのはセキュリティ上問題があるので、不可逆暗号化した方がよい。


695 名前: デフォルトの名無しさん 投稿日: 02/10/27 12:38
>>614
あなたと同じようなソフトを作りたいと思ってるんですが、
まったくのプログラム初心者ですが、私にも出来るでしょうか?


696 名前: 630 投稿日: 02/10/27 12:43
>695 が女性だったら合コンで手を打とう。


697 名前: 693 投稿日: 02/10/27 12:52
>>694
ありがとうございます。
自分の書き方が悪かったのですが、情報に持ちたいのは
DB接続に使うためのサーバー名,DB名,ユーザーID,パスワードなんです。

なにか良い案はありますか?


698 名前: デフォルトの名無しさん 投稿日: 02/10/27 13:27
VB検定対策問題集の出版元はアーティファイであっているでしょうか?


699 名前: デフォルトの名無しさん 投稿日: 02/10/27 13:33
MediaPlayer1.FileName = "C:\動画.avi"
メディアプレイヤーコントロールは
コードで直接ファイル名を指定して再生するのは簡単ですけど、
実行時にエクスプローラの動画ファイルをメディアプレイヤーコントロールにドラッグして
FileNameプロパティをドラッグファイルに設定する方法がわかりません。
メディアプレイヤーコントロールに
DragDropというものがありましたがそこに何を書いたらFileNameを設定できるのでしょうか。

Private Sub MediaPlayer1_DragDrop(Source As Control, x As Single, y As Single)

End Sub
↑こんなかんじにDragDropがなってました。


700 名前: デフォルトの名無しさん 投稿日: 02/10/27 13:46
>>695が女性だったら強姦で手を打とう


701 名前: デフォルトの名無しさん 投稿日: 02/10/27 13:48
>>695が女性だったら青カンで手を打とう


702 名前: デフォルトの名無しさん 投稿日: 02/10/27 13:50
「私を犯して!!」と言ってきた女とした場合、それは強姦なのだろうか?


703 名前: デフォルトの名無しさん 投稿日: 02/10/27 13:53
>>702
合意の上なら、「合姦」。(w


704 名前: デフォルトの名無しさん 投稿日: 02/10/27 14:13
なんか昔、女を強姦するときはわざとゴツゴツした地面の所を選び押し倒し、
痛がらせてから「じゃああっちの平らな所にする?」と聞き、
「うん」と答えさせたら強姦じゃなくなるとかいう話聞いたな。
激しくどうでもいい上にスレ違いだが。


705 名前: デフォルトの名無しさん 投稿日: 02/10/27 14:34
ひどいインターネットだな。


706 名前: デフォルトの名無しさん 投稿日: 02/10/27 14:36
>>704
んなわけねーだろ。


707 名前: デフォルトの名無しさん 投稿日: 02/10/27 14:40
残念ながら男ですw
当方、プログラマと言うわけでは無く、単純に仕事の流れの1部分を
楽にして他の作業に時間をかけようと思ってるので作ろうと思ってる
わけなんですが、過去プログラムで挫折クチであります。
女性も多い職場なので合コンぐらいだったらいくらでも用意しますが、
まずは私と友達になった上で信頼が置けるようであればいくらでも合コン
程度で良ければ用意できます。さすがに掲示板で知り合って初対面での合コンは
厳しいですね。と、マジレスはさておき、

ファイル選択には、TextBoxにとファイル参照用のCommandBoxの配置まで
やった上で、グーグル検索しコモンコントロールを使用するらしいという
ところまで来ました。
FTP送信部分には>>624のdllを組み合わせてみようかなと思ってます。
暖かく見守ってください。今日中に出来るかな?!


708 名前: 630 投稿日: 02/10/27 14:49
>707
そこまでできてんなら、俺の出番は無いな。
完成したら>614 にあげれば。


709 名前: 695=707 投稿日: 02/10/27 14:58
>>708
いい線まで行けてますか?
私も初心者なんで勉強にもなってますから、上手く行ったらUPしても良いとは思ってますが
はてさて成功するでしょうか…。
コモンコントロールでいつも見慣れてるファイルの参照ようのBOX表示までは成功したんですが、
それをTextBox表示させる部分に来て、グーグル検索繰り返してます。
10日で覚えるとかって本を見たことが有ったので、それでも買ってこようかな…。


710 名前: デフォルトの名無しさん 投稿日: 02/10/27 15:06
>>707
女性が多い職場かー
いいな。俺んとこには一人もいねー


711 名前: 630 投稿日: 02/10/27 15:44
>>709
Private Sub Command1_Click()
  Call Me.CommonDialog1.ShowOpen
  Me.Text1.Text = Me.CommonDialog1.FileName
End Sub


712 名前: 695 投稿日: 02/10/27 16:42
>>711
おぉ。ありがとうございます。
追加でこういう風に変更してみました。

----------------command box------------------
Private Sub Command1_Click()
CommonDialog1.DialogTitle = "ファイル選択"
CommonDialog1.FileName = ""
CommonDialog1.Filter = "テキストファイル  *.txt|*.txt;|アプリケーション  *.exe|*.exe"

Call Me.CommonDialog1.ShowOpen
Me.Text1.Text = Me.CommonDialog1.FileName

End Sub
----------------text box------------------
Private Sub Text1_Change()
Text1.Text = CommonDialog1.FileName
End Sub
------------------------------------------

なんとなくあぷりっぽくなってきました。ありがとうございます。
今度は、送信ボタンを押せばtextbox内のファイルを送信させる
と言うcommand box部分に入ってみようと思います。


713 名前: デフォルトの名無しさん 投稿日: 02/10/27 16:57
>>618

FTPとサンプルをキーワードに検索エンジンで探せばいろいろ見つかるが
WinInetを使用したVBによるこのサンプルがお薦め

http://www.aland.to/~e-biac/programming/library/index.html#bwFtp


714 名前: 695 投稿日: 02/10/27 17:17
>>713
ありがとうございます。今、見てる最中ですが、
初心者の私には何とも長いコードのように思えてf(^^;

イベントプロシージャをさっき理解したところでして…(汗
長い目で見て勉強になりそうです。
できれば単純にFTPコネクトしてputしてそれが成功したか、
その途中のどこかで失敗かをダイアログで出す所まで行きたいんですが…。

basファイルの標準モジュールが何なのかを調べ漁ってます。


715 名前: デフォルトの名無しさん 投稿日: 02/10/27 17:41
エクセルのVBAについて質問させてください。
xmlファイルを読み込んで処理したいのですが、
何か簡単な方法は無いでしょうか?



716 名前: デフォルトの名無しさん 投稿日: 02/10/27 17:58
>>715
外注に○投げする。


717 名前: 715 投稿日: 02/10/27 18:20
>>716
いや、仕事ではないので。


718 名前: デフォルトの名無しさん 投稿日: 02/10/27 18:37
画像を背景にしたいのですが、どうすればイイのでしょうか?


719 名前: デフォルトの名無しさん 投稿日: 02/10/27 18:44
ネットワーク上でやりとりされたデータのサイズ
(ようするにネットワーク接続があるときにタスクトレイに出てくるやつに表示されるバイト数)
を求めたいのですがどうやればよいでしょうか?
送受信共にです。
転送量モニターを作りたいのです。

WinSockとInetコントロールはみたところ送受信自体をやるもののようなのですが。


720 名前: デフォルトの名無しさん 投稿日: 02/10/27 18:56
>>719
ほい!
http://netpassport-wc.netpassport.or.jp/~whkama/vbasam/IfInfo.htm


721 名前:   投稿日: 02/10/27 20:05
VBでミリ秒単位の正確な時間管理ってできます?
プログラム開始から終了までを計測したいのですが
マルチスレッドにしないとできないような事を言われました。

・VBでミリ秒単位の管理は可能?
・VBでマルチスレッドってどうやって実現する??

どなたか教えてください。


722 名前: デフォルトの名無しさん 投稿日: 02/10/27 20:08
>>721
GetTickCountとか。
マルチスレッドは無理。
てか、プログラム開始から終了はかるのにマルチスレッドなど何に使うっつんだ?


723 名前: デフォルトの名無しさん 投稿日: 02/10/27 20:09
そもそもマルチタスクOSで正確な時間管理なんかできない。


724 名前: デフォルトの名無しさん 投稿日: 02/10/27 20:11
>>723
ほう、マルチタスクなハードリアルタイムOSはやたらとあるが。


725 名前: デフォルトの名無しさん 投稿日: 02/10/27 20:13
>>724
例を出してみ


726 名前: デフォルトの名無しさん 投稿日: 02/10/27 20:15
>>721
つーかウィンドウズ上で正確にexeの実行開始から終了までの時間なんて
計測できない


727 名前:   投稿日: 02/10/27 20:16
>>722-724

ありがとうございます。ついでに質問なのですが、こいつを使えば
起動後、正確に5秒後とかにイベントを発生させるような
事が可能でしょうか?

タイマーオブジェクトだと、微妙にずれてしまって
うまく行かなかったので・・・。


728 名前: デフォルトの名無しさん 投稿日: 02/10/27 20:18
まぁ721が求める結果は、
フォームロード時にGetTickCountして適当な変数にぶち込んでおき、
終了するときにまたGetTickCountして、そこから起動時に変数に入れた奴を引き算した奴で
上等なんだろ。
そんな細かい屁理屈こねるなよ。


729 名前: デフォルトの名無しさん 投稿日: 02/10/27 20:19
>>727
その正確ってのがまた微妙だなぁ。
誤差100msくらいなら正確と捕らえるのか、
1msでもズレたらあかんのか。


730 名前:   投稿日: 02/10/27 20:27
>>728
ありがとうございます!
これで難しいプログラミングしなくてすみます!!

>>729
外部デバイスの動作時間を計測したいので、
できれば正確なものがよいのですがー
それっぽい数字が出ればいいので、100msぐらいの
誤差ならかまわないです。
もっと正確に計測できる方法をご存知ならば
教えていただきいのですが・・・。


731 名前: デフォルトの名無しさん 投稿日: 02/10/27 20:40
>>730
だったらそれこそGetTickCountでいいべ。


732 名前:   投稿日: 02/10/27 20:49
>>731
ありがとうございます!!!
これですっきり解決です。


733 名前: デフォルトの名無しさん 投稿日: 02/10/27 20:53
timeGetTime()のほうがいいらしい


734 名前: デフォルトの名無しさん 投稿日: 02/10/27 21:10
再起動させるコードが知りたいのですが…


735 名前: デフォルトの名無しさん 投稿日: 02/10/27 21:33
>>734

> 再起動させるコードが知りたいのですが…

コンパイルエラー:
主語がありません。


736 名前: デフォルトの名無しさん 投稿日: 02/10/27 21:35
>>734
http://www.google.co.jp/search?sourceid=navclient&hl=ja&q=VB+%8D%C4%8BN%93%AE+tips


737 名前: デフォルトの名無しさん 投稿日: 02/10/27 22:30
>>735-736
リンク先に行って見ましたが、自分の探しているものは見つからないのです。
私が望んでいるものは、VisualBasicで作ったボタンで、Windowsを再起動させる為のVBのソースコードが欲しいのです。
どうか教えて下さい。お願いします。


738 名前: デフォルトの名無しさん 投稿日: 02/10/27 22:32
>>737
ほれ!
http://www.cc.rim.or.jp/~namas/vb/vb_api.html



739 名前: デフォルトの名無しさん 投稿日: 02/10/27 22:46
>>737
どこに目ぇついてんの?>>736を52回読め


740 名前: デフォルトの名無しさん 投稿日: 02/10/27 23:21

>>739
警告:
反復回数は2のべき乗で指定してください。


741 名前: デフォルトの名無しさん 投稿日: 02/10/27 23:23
>>740
マジですかΣ(゚Д゚)


742 名前: 614 投稿日: 02/10/27 23:24
丸2日かかって、FTPでサーバーにつながるところまで作りました。
もう、心底疲れました。

VB超初心者向け入門本とかには、簡単な計算プログラムとか載ってて
「やっぱ最初はこういうのからやるだよなぁ」と、いきなりファイル転送の
プログラムを作ってる自分の愚かを改めて感じます。

今、PDFのファイルをCmnDialogで拾ってきて、そのファイル名(パス)をlistboxに表示させ、
それをuploadするところを考えているのですが、

CmdBtnでCmnDialogを表示させ、pdfファイルを選択するとBOXに1つ表示。
で、また同じボタンを押して同様にpdfファイルを選択するとBOXの2段目に表示。
という具合にしたいのです。3回繰り返しで3つのファイル名を表示させたいんです。

で、それをInet1.Execute , "PUT"でuploadしようと思うのですが。

なんか695さんも私と似たようなものをお作りのようで、712とかもみて
みたんですが、ちょっと違うようなのでお聞きしたいと思って書きました。

それでは宜しくお願いします。


743 名前: デフォルトの名無しさん 投稿日: 02/10/27 23:36
コモンダイアログは一度に複数のファイルを選択するのが可能だから、そうした方が楽だけどどうかな


744 名前: 614 投稿日: 02/10/27 23:52
もう終電なのでiモードからです。
pdfファイルを選択するディレクトリが、
異なることも考えられるので、
別々に3回になるのかな?と思ったんですが。

あと、パスを表示させて、その内容を使って送信をしたい時は、
何のボックスを使えば良いのですか?

はぁ、ホントにダメ人間だな。(泣


745 名前: デフォルトの名無しさん 投稿日: 02/10/27 23:54
Accessとかにある帳票のウィザードのような機能をつくるよう頼まれて困っています。

1.エクセル、csv、mdbなどからの任意データのインポート
2.項目の自由な設定
3.一覧、宛名ラベル、伝票などの印刷

1,2は適当にいぇれそうですが、3で困っています。なんかツールとか
サンプルPGないでしょうか・・・困ったです。





746 名前: デフォルトの名無しさん 投稿日: 02/10/28 00:00
W2k,VB6sp5でMDIで作ってます。
子フォームを表示しない状態だと正常なんですが
子フォームを表示した状態だとMDIフォームにあるメニューを
クリックしてもメニューが表示されません。
なぜかWクリックすると表示されます。
この状態をなんとかしたいのですがどうすればいいのよいでしょうか?
ちなみに子フォームは BorderStyle無しでメニューもありません。


747 名前: デフォルトの名無しさん 投稿日: 02/10/28 00:16
age


748 名前: 695 投稿日: 02/10/28 00:52
>>614
お疲れ様です。
私の考えてたのよりも複雑な作りをしてるようですね。
私は、超初心者ですのでサンプルの寄せ集めのような感じになってしまってます。
単純にファイルを参照できるボタンとそれを表示させるボックス
それに対して、送信するボタンと終了のボタンのみです。
送信ボタン(Command)部分に次の行を入れてやりました。

-------------送信ボタン-------------------------
Private Sub Command2_Click()
Dim rCode As UDT
Dim lll As Long
lll = TsureFTP("ホスト名", "ユーザid", "パスワード", "リモートファイル名", "ローカルファイル名", _
"コマンド", "リモートのディレクトリ")
MsgBox rCode.sfatrv
MsgBox CStr(lll)
End Sub
--------------------------------------------
これでOKなのかどうかも謎なんですが、ホスト名・ユーザーid等は、自分のUPしたい
場所を記述するんだろうなと言うところまでは解かりました。
ローカルファイル名にCommonDialog1.FileName辺りを入れてやれば良いところまで
予想はつくんですが、同じくUPするサーバーへも同じ名前にする場合は、CommonDialog1.FileName
を追加してやれば良いのでしょうか?
コマンドにはもちろんputを置いてみます。
後、戻り値でエラーが出る際に数字だけでるので、それの数値をdllftpのbasに書かれてある
エラー表示と同じようにしたいと思ってます。

1日で作ろうと思ったけど間に合わなかった(涙


749 名前: デフォルトの名無しさん 投稿日: 02/10/28 01:47
VB.NETで最も簡単にwavファイルを再生するにはどうしたらいいんでしょうか?
本にはDirectXを使う方法しか書いてないのですがそれが一番早い方法なのでしょうか。
それも一冊だけであまりサウンド再生について触れている本が見つかりません。

VisualBasicでDirectXを使うなんて思いもしなかったんですが・・・


750 名前: 695 投稿日: 02/10/28 02:05
古典的ですがIF文使ってエラー表示は何とかなりました。
実際デバッグしてみると、どうもPUTでエラーが返ってきてるようです。
ファイル名辺りのエラーだと思うのですが、どなたかお解りになる方宜しくお願いします。

ローカルファイル名部分を参照したファイルにして、UPしたファイルも同じ名前にしたいんですが…。


751 名前: 695 投稿日: 02/10/28 02:08
>>749
初心者の聞きかじりですが、DirectShowのことじゃないでしょうか?

http://www.microsoft.com/japan/msdn/directx/japan/dxvb/dxvbdshow.asp


752 名前: 695 投稿日: 02/10/28 02:10
>>749
初心者なんでほんと申し訳ない。こちらが正解のようです。

http://www.microsoft.com/japan/msdn/directx/japan/dxvb/dxvbdmusic.asp


753 名前: 厨房マン 投稿日: 02/10/28 02:24
プログラマーみたいなパソコン関係の仕事で一番エリートな仕事は何?
ハッカーって仕事?



754 名前: 749 投稿日: 02/10/28 02:26
>>752
ありがとうございます。
参考にやってみます。やはりそれなりに面倒みたいですね。


755 名前: デフォルトの名無しさん 投稿日: 02/10/28 02:28
>>753
 ゲームキャラの著作権をもったグラフィックデザイナ(ただしメジャーなゲーム)だ。
 わかったか。
 くれぐれもプログラマとかになろうとするなよ。







 迷惑だから。


756 名前: 厨房マン 投稿日: 02/10/28 02:33
>>755
それ嘘なんでしょ?
本気でいまから一流大の情報学科目指してんのに( `_ゝ´)プンプン


757 名前: デフォルトの名無しさん 投稿日: 02/10/28 03:11
>>755
アフォ? 社長に決まってんじゃん。


758 名前: デフォルトの名無しさん 投稿日: 02/10/28 07:31
>>754
mciSendStringかPlaySoundあたりのが全然簡単


759 名前: デフォルトの名無しさん 投稿日: 02/10/28 13:06
>>757
いや,社長は会社が潰れたら責任とらなきゃならんので,
実際は偉くない.


760 名前: 初心者 投稿日: 02/10/28 13:18
基本だと思うのですが、ListViewの項目を選択した時Textを取得する
方法がわからなくて困ってます。
わかる方教えてください。


761 名前: デフォルトの名無しさん 投稿日: 02/10/28 13:48
Listview.text

Listview(listview.listindex)



762 名前: デフォルトの名無しさん 投稿日: 02/10/28 14:15
>>760

Me.Text1 = List1.List(Me.List1.ListIndex)


763 名前: デフォルトの名無しさん 投稿日: 02/10/28 15:40
>>759
責任を取らなきゃならないから偉くないってアフォ?
責任を取らない奴が偉いのかよ。


764 名前: 佳美 投稿日: 02/10/28 16:04
VBのプログラムから、たとえばメモ帳を呼び出して
メモ帳での編集が終了するまで待ってることって
できるでしょうか。


765 名前: デフォルトの名無しさん 投稿日: 02/10/28 16:08
責任を取らなきゃならないから偉いんだとしると、
株式会社の代表より、合資会社の無限責任社員の方が偉いわけか…


766 名前: デフォルトの名無しさん 投稿日: 02/10/28 16:18
>>764
できますよ


767 名前: 初心者 投稿日: 02/10/28 16:31
>761,762
ありがとうございます。
早速試してみます。


768 名前: 佳美 投稿日: 02/10/28 16:39
>>766
( ゚o゚) エッ! できるんですか!



769 名前: 佳美 投稿日: 02/10/28 16:48
あまりの感動で濡れてきました!


770 名前: デフォルトの名無しさん 投稿日: 02/10/28 17:07
ネカマを強制終了させる関数を教えてください


771 名前: デフォルトの名無しさん 投稿日: 02/10/28 17:17
>>769
そのネタ前にもどこかで見たことある・・・
最初はワロタが、二度目はつまらんよ

>>770
Call ItteYoshi()


772 名前: デフォルトの名無しさん 投稿日: 02/10/28 17:28
>>768
WaitForSingleObjectをググれ


773 名前: 630 投稿日: 02/10/28 18:05
>695
リモートファイルとローカルファイルがPUTの時は置き換わるらしいので注意。
エラー値から変数名に戻すのは無理なので、関数を用意した。
Private Sub Command2_Click()
  Dim nRet As Long
  Dim sHostName As String
  Dim sUserId As String
  Dim sPass As String
  Dim sFromFileName As String
  Dim sToFileName As String
  Dim sCommand As String
  Dim sRemotePath As String
  
  Me.MousePointer = vbHourglass
  Me.Command2.Enabled = False
  
  sHostName = "127.0.0.1"
  sUserId = "ftp"
  sPass = ""
  sFromFileName = Me.Text1.Text
  sToFileName = GetFileNameFromFullPath(sFromFileName)
  sCommand = "PUT"
  sRemotePath = ""
  
  nRet = TsureFTP(sHostName, sUserId, sPass, sFromFileName, sToFileName, sCommand, sRemotePath)
    
  Debug.Print "Ret=" & GetFtpErrorName(nRet) & "(" & nRet & ")"
  
  Me.Command2.Enabled = True
  Me.MousePointer = vbNormal
End Sub


774 名前: 630 投稿日: 02/10/28 18:05
Private Function GetFtpErrorName(n As Long) As String
  Dim sError As String
  Select Case n
    Case 1: sError = "OPEN_ERROR"
    Case 2: sError = "CONNECT_ERROR"
    Case 3: sError = "FILE_GET_ERROR"
    Case 4: sError = "SUCCESS"
    Case 5: sError = "FILE_PUT_ERROR"
    Case 6: sError = "FILE_DEL_ERROR"
    Case 7: sError = "CHNG_DIR_ERROR"
    Case 8: sError = "CLOSE_ERROR"
    Case 9: sError = "BUT_COMMAND"
    Case 999: sError = "ERROR"
    Case Else: sError = "UNKNOWN ERROR"
  End Select
  GetFtpErrorName = sError
End Function

Private Function GetFileNameFromFullPath(sFullPath As String) As String
  Dim nPos As Long
  For nPos = Len(sFullPath) To 1 Step -1
    If (Mid$(sFullPath, nPos, 1) = "\") Then
      GetFileNameFromFullPath = Mid$(sFullPath, nPos + 1)
      Exit For
    End If
  Next
End Function


775 名前: 佳美 投稿日: 02/10/28 18:26
>>772
769 はわたしぢゃありませんよ。 WaitForSingleObjectですね!
ありがとうございました。さっそくググってみます。

でもググるってどーゆー意味??



776 名前: デフォルトの名無しさん 投稿日: 02/10/28 18:29
>>774
>    Case 9: sError = "BUT_COMMAND"

しかしコマンド


777 名前: デフォルトの名無しさん 投稿日: 02/10/28 18:32
振るパスからファイル名は
GetFileTitle()だったような


778 名前: デフォルトの名無しさん 投稿日: 02/10/28 18:33
>>775
www.google.co.jpで検索しろってことだ。>ググれ


779 名前: 佳美 投稿日: 02/10/28 18:44
>>778
(ノ゚ο゚)ノ おー すばらしい! こんなサイトがあったんですね!
WaitForSingleObject の第一引数のハンドルは
shell関数が返すタスクIDぢゃないですよね、やっぱ。
とにかくいろいろやってみますよ。ありがとうございますた。



780 名前: 630 投稿日: 02/10/28 18:53
>776 TsureFtpの作者に行ってくれい。
>777 オメ GetFileTitle()では、漏れには機能が想像つかん。
汚いコード読んでくれてありがと。


781 名前: 614 投稿日: 02/10/28 19:07
ヘタレ614です、お疲れ様です。
VBにかかりきりで4晩目に突入しました。

コモンダイアログからファイルをListBoxに表示させるところまできました。
ListBoxに表示してあるフルパスの情報で、複数のファイルをFTP送信(PUT)
したいと思うのですが、ここが分かりません。

よろしくお願いします。


782 名前: 佳美 投稿日: 02/10/28 19:10
できますた、できますた。♪
あり。でございます。


783 名前: デフォルトの名無しさん 投稿日: 02/10/28 19:17
>>781
なんだか本当にかわいそうになってきたなー
まじで作ってやるか。


784 名前: デフォルトの名無しさん 投稿日: 02/10/28 19:19
>>781
ほれ
http://homepage2.nifty.com/inform/vbmania/source/ftpupload.htm


785 名前: 614 投稿日: 02/10/28 19:42
ソースを載せてみます。

Private Sub Command1_Click()
Dim GetUrl As String
Dim GetName As String
Dim GetPass As String
Dim i As Integer
'処理が終了するまでコマンドボタンを無効化
Command1.Enabled = False
'FTPサーバ名の取得
GetUrl = Combo1.Text
  'ログインユーザネームの取得
GetName = Text1.Text
  'パスワードの取得
GetPass = Text2.Text


786 名前: 614 投稿日: 02/10/28 19:43
With Inet1
'URLを指定
.URL = "ftp://" & GetName & ":" & GetPass & "@" & GetUrl
'ルートディレクトリへ移動
.Execute , "CD /"
'ビジー待ち
Do While Inet1.StillExecuting = True
DoEvents
Loop
'ルートディレクトリの一覧を要求
.Execute , "DIR /"
End With
'コマンドボタンを有効化
Command1.Enabled = True
End Sub


787 名前: 614 投稿日: 02/10/28 19:43
Private Sub Command2_Click()
'処理が終了するまでコマンドボタンを無効化
Command2.Enabled = False
Dim Fname As String
  'ファイルを選択するためにダイアログを開く
With CommonDialog1
.ShowOpen
Fname = .FileName
End With
If Fname = "" Then
Exit Sub
End If
  '選択したファイルをList2に表示
List2.AddItem Fname
'コマンドボタンを有効化
Command2.Enabled = True
End Sub


788 名前: 614 投稿日: 02/10/28 19:44

Private Sub Command3_Click()
'【疑問】Command1で接続しているのですが、ここの部分は再度必要ですか?
> Dim GetUrl As String
> Dim GetName As String
> Dim GetPass As String
> '処理が終了するまでコマンドボタンを無効化
> Command3.Enabled = False
> GetUrl = Combo1.Text
> GetName = Text1.Text
> GetPass = Text2.Text
>
> With Inet1
> 'URLを指定
> '.URL = "ftp://" & GetName & ":" & GetPass & "@" & GetUrl
> 'ルートディレクトリへ移動
> 'ビジー待ち
> 'Do While Inet1.StillExecuting = True
> ' DoEvents
> .Execute , "CD homepage/A"
> 'ビジー待ち
> Do While Inet1.StillExecuting = True
> DoEvents
> Loop
    'List2に表示されたファイルのパスでアップロードをする。
.Execute , "PUT" & List2.Text 【疑問】・・・← ここがよくわかりません
End With
MsgBox "アップロード完了!"

'コマンドボタンを有効化
Command3.Enabled = True
End Sub


789 名前: 614 投稿日: 02/10/28 19:45
Private Sub EndBtn_Click()
  '終了ボタン
On Error Resume Next
Inet1.Execute , "CLOSE"
Unload Me
End
End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim vntGetData As Variant
Dim strSplit() As String
Dim lngBufSize As Long
Dim lngCounter As Long


790 名前: 614 投稿日: 02/10/28 19:45
'リストボックスをクリア
List1.Clear
'Excuteメソッドによる処理要求が完了したら、
If State = icResponseCompleted Then
'1回で取得するデータサイズを指定
lngBufSize = 1024
Do
'サーバから返されたデータを取得
vntGetData = Inet1.GetChunk(lngBufSize, icString)
'戻り値が長さ0の文字列だったらループを抜ける
If Len(vntGetData) = 0 Then Exit Do
'取得したデータを基に配列を作成
strSplit = Split(vntGetData, vbNewLine)
'配列の各要素を調べる
For lngCounter = 0 To UBound(strSplit)
'長さ0の配列要素を除く
If Len(strSplit(lngCounter)) <> 0 Then
'リストボックスへ追加
List1.AddItem strSplit(lngCounter)
End If
Next
Loop
End If
MsgBox "接続しました"
End Sub


791 名前: 614 投稿日: 02/10/28 19:46
Private Sub List1_DblClick()
  ’リストBOX1
'処理が終了するまでコマンドボタンを無効化
Command1.Enabled = False
With Inet1
'選択されたディレクトリに移動
.Execute , "CD " & List1.Text
'ビジーの間待つ
Do While Inet1.StillExecuting = True
DoEvents
Loop
'現在のディレクトリのファイルと
'ディレクトリの一覧を要求
.Execute , "DIR"
End With
'コマンドボタンを有効化
Command1.Enabled = True
End Sub


792 名前: 630 投稿日: 02/10/28 19:46
>614
Dim n As Long
For n = 0 To Me.List1.ListCount - 1
  Debug.Print Me.List1.List(n)
Next


793 名前: 614 投稿日: 02/10/28 19:49
長くなりましたが、4日かかってゼロからこれだけです。

今、良く分かってないのは、

connect1で接続した後、connect3で再度接続が必要なのか?
Listに表示したパス名をPUTで使うにはどうすれば良いのか?

というところです。
すみません、宜しくお願いいたします。


794 名前: 614 投稿日: 02/10/28 19:52
>792(=630)さん

それを、どこへ書き足せばよいのですか?


795 名前: デフォルトの名無しさん 投稿日: 02/10/28 19:52
>>793
接続は1回でいい。
フルパスからファイル名だけを取り出すAPIはGetFileTitle()


796 名前: デフォルトの名無しさん 投稿日: 02/10/28 20:25
VB6付属のAPIViewerのデータベースって古いからのってないのいろいろあるけど、
新しいバージョンのデータベースってないの?


797 名前: 630 投稿日: 02/10/28 20:30
>614
いろいろまずいな。自分の力量以上に複雑にし過ぎ。
>618 のすっきりした仕様とぜんぜん違うじゃん。
FTPクライアントを再開発したいの?
送信を楽にするソフトを作りたいの?

StateChangedイベントハンドラがぜんぜん駄目。
これじゃあ、DIRの時しか対応できないし、
Executeが終わってないのに、各Buttonのイベントハンドラが終わっちゃうし。

ところで、同名のファイルがサーバに存在した時はどうする? 上書き?


798 名前: 614 投稿日: 02/10/28 21:04
>>797
すいません。
StateChangedイベントは、サンプルのパクリです。

とりあえず、ここまできたのでちゃんと動くものにするのが先ずの目標です。
最後の最後で動かずに、力が抜けそうです・・・。

サーバのファイル上書きは問題ないです。
(デモ用APなんで)


799 名前: 614 投稿日: 02/10/28 22:09
とりあえず動きました。
涙が止まりません(泣
さっきのUpされなかったのは、ファイル名を繰り返して入れてなかった
からでした。
Listからのファイル名取得はまだ出来ていませんが、コードに固定パス
打ち込みで、あたかもそのファイルを選んで送信しているかのように
見せかけようと思います。
(間に合うようなら、もう少しがんばってみたいのですが、本来の仕事も
全然停滞しているため)

皆様には大変お世話になりました。
ありがとうございました。


800 名前: 630 投稿日: 02/10/28 22:40
>614 直しきれんのでとりあえず複数ファイル送信できるようにしてみた。
Private Sub Command3_Click()
  Dim GetUrl As String
  Dim GetName As String
  Dim GetPass As String
  Command3.Enabled = False '処理が終了するまでコマンドボタンを無効化
  GetUrl = Combo1.Text
  GetName = Text1.Text
  GetPass = Text2.Text
  With Inet1
    '''''いきなりこのボタンを押してしまうかもしれないので一応やっとけ。
    .URL = "ftp://" & GetName & ":" & GetPass & "@" & GetUrl 'URLを指定
    Do While Inet1.StillExecuting = True 'ビジー待ち
      DoEvents
    Loop
    Call .Execute(, "CD homepage/A") 'ルートディレクトリへ移動
    Do While Inet1.StillExecuting = True 'ビジー待ち
      DoEvents
    Loop
    'List2に表示されたファイルのパスでアップロードをする。
    Dim n As Long
    For n = 0 To Me.List2.ListCount - 1
      Debug.Print Me.List2.List(n)
      Call .Execute(, "PUT " & Me.List2.List(n))
      Do While Inet1.StillExecuting = True 'ビジー待ち
        DoEvents
      Loop
    Next
  End With
  MsgBox "アップロード完了!"
  Command3.Enabled = True 'コマンドボタンを有効化
End Sub


801 名前: 630 投稿日: 02/10/28 22:44
nbsp;より全角スペースの方が綺麗に見えるな。
自分の仕事やる気無し、今日も進みませんでした マル


802 名前: 614 投稿日: 02/10/28 22:49
>>830(630!)
 神様です。すごいです。
 ありがとうございました。


#本当に初歩的なことで恐縮なんですが、保存した.vbpファイルと.frmファイル
を別なマシンで実行しようとすると「パスがみつかりません」とエラーが
出ます(実行できない)。
これは何故なんでしょうか?




803 名前: 614 投稿日: 02/10/28 22:50
× >>830
○ >>800

です、失礼しました・・・。


804 名前: デフォルトの名無しさん 投稿日: 02/10/28 22:52
>>799
よかったですね
他人事ながら、なんだか嬉しいです



805 名前: 630 投稿日: 02/10/28 23:16
>802
ちゃんとVBをインストールした端末?
プロジェクトを開く時にエラーが出るの?
それともF5キーで実行する時にエラーが出るの?
エラーのおこった行は表示されないの?

VBPファイルをメモ帳にドラッグしてフルパスで書かれたものが
その端末に存在するかチェックしてみ。


806 名前: 695 投稿日: 02/10/28 23:26
>>630
おぉ。ざっと過去ログみてたんですが、何か関数まで用意していただいて・・・(汗
ありがとうございます!!日曜プログラマ化してるんですが、
今から過去ログをしっかり見直してみたいと思います!

戻り値からのメッセージ化は、古典的ですがIf構文でこうやってみてたんです。

----------------------------------------
Private Sub Command2_Click()

Dim rCode As UDT
Dim lll As Long

lll = TsureFTP("ホスト名", "ユーザid", "パスワード", "", "Me.CommonDialog1.FileName", _
"コマンド", "ディレクトリ")

If CStr(lll) = 1 Then MsgBox "FTPのオープンに失敗しました"
If CStr(lll) = 2 Then MsgBox "サーバとのコネクトに失敗しました。"
If CStr(lll) = 3 Then MsgBox "ファイルのGETに失敗しました。"
If CStr(lll) = 4 Then MsgBox "処理に成功しました。"
If CStr(lll) = 5 Then MsgBox "ファイルのPUTに失敗しました。"
If CStr(lll) = 6 Then MsgBox "ファイルのDELETEに失敗しました。"
If CStr(lll) = 7 Then MsgBox "ディレクトリの移動(cd)に失敗しました。"
If CStr(lll) = 8 Then MsgBox "FTPセッションのクローズに失敗しました。"
If CStr(lll) = 9 Then MsgBox "不正なコマンドを発行しました。"
If CStr(lll) = 999 Then MsgBox "不明なエラー"

End Sub
-------------------------------------------------

今から、ちゃんと過去ログ読まさせていただきます。
ご丁寧にありがとうございました!


807 名前: ◆LL.98XOPJI 投稿日: 02/10/28 23:37
質問。VB6です

VisualStudio開発環境についてくる「Spy++」ってありますよね。
あれの機能でメッセージを監視できるじゃいですか。
ひとつのウィンドウハンドルを見張るようにして、
送られてきたメッセージを書き出していくっていう。

あれはどうやってやっているのでしょうか?
また、VBにてあれと同じような事がやりたいです。
ヒントでもヨロシクお願いします。


808 名前: デフォルトの名無しさん 投稿日: 02/10/28 23:56
情けない質問ですがデータレポートで宛名ラベルを印刷したいのですが
どうやれば2列、3列の指定ができるのかわかりません。。。どうか
ご教授のほどよろしくお願い致します(__)。



809 名前: 732 投稿日: 02/10/29 00:05
一昨日はどうも有り難うございました。
紹介されたサイトを見ました。が、あれを使ったのですが、ビルドエラーがでます。
何故でしょうか?VB6とVB.netとはコードが変わったのでしょうか?
変わっていたら、変更した無いようにしてください。お願いします。


810 名前: デフォルトの名無しさん 投稿日: 02/10/29 00:20
>>807
SetWindowsHookEx
ただし、他のプロセスのウィンドウを監視するなら
DLL内にフックプロシージャ(コールバック関数)を
用意する必要があるので、VBでは無理かも。
(9x系OS限定ならexeだけでもなんとか動くけど)


811 名前: デフォルトの名無しさん 投稿日: 02/10/29 05:55
VBって バージョンアップするたびにソース変えなきゃ いかんからなぁ。
Delphiだとそんなことない。



812 名前: デフォルトの名無しさん 投稿日: 02/10/29 10:07
VB6で、SSTABを使ってるんですが、
WinXPでSSTABのタブに改行コードを含む文字列を入れると正常に
改行されて表示されるのですが、
Win2Kで同じことをやると改行コードが「・・」で表示されてしまいます。
Win2Kで「・・」が表示されないようにするには、
なにかテクニック等ありますでしょうか?
先輩方、ご教授お願い致します。


813 名前: デフォルトの名無しさん 投稿日: 02/10/29 11:08
Screen.Fontsでフォント列挙して、んでそのフォント名をStdFont
に代入してみたのですが、MSゴシックなんかのCharSetが128になり
ません。
これは最近私の頭髪がうすくなりはじめたことと何か関係があるの
でしょうか?
どなたかご教授ください。
環境は、Win2k+SP2 VB6.0+SP5です。


814 名前: デフォルトの名無しさん 投稿日: 02/10/29 11:13
VB6.0+Access(バージョン関係なし)ですが、
拡張子がmdbだと、hProcessが0しか返してくれないのですが、
これは何が原因なのでしょう?
解決方法をお願いします。

Const PROCESS_QUERY_INFORMATION = &H400&
Const SW_SHOWNORMAL = 1

Dim hProcess As Long
Dim lret As Long

lret = ShellExecute(Me.hwnd, vbNullString, _
"ファイル名パス\sample.mdb", vbNullString, _
"c:\", SW_SHOWNORMAL)

hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 1, lret)



815 名前: デフォルトの名無しさん ◆Ez1ZxZMJoU 投稿日: 02/10/29 12:35
FindExecutable ?


816 名前: デフォルトの名無しさん 投稿日: 02/10/29 13:23
関数のParamArray指定された引数に、
ハードコーディングじゃ無しに
動的配列を渡せますか?

いろいろ試してみたのですが、
関数内ではからっぽのVariant型になってしまうのですが‥


817 名前: デフォルトの名無しさん 投稿日: 02/10/29 13:44
>>816
配列を格納した Variant が 1 つ渡るんだろ。


818 名前: デフォルトの名無しさん 投稿日: 02/10/29 13:47
>815
ダメだった。
hProcess取得してくれない。


819 名前: デフォルトの名無しさん 投稿日: 02/10/29 13:55
Private sub Main
Dim strtest() As String
ReDim strtest(0 To 2)
strtest(0) = "a"
strtest(1) = "b"
strtest(2) = "c"
Call test(strtest())
End Sub

Private Function test(ParamArray vntArr() As Variant) As Boolean
MsgBox UBound(vntArr())
End Function

て感じで UBound(vntArr()) = 0 になってしまうんですよ
VB6なんですが。根本的にボケてますか?


820 名前: デフォルトの名無しさん 投稿日: 02/10/29 14:13
>>819
その場合ParamArrayを使う理由がない気が...
Private Function test(var As Variant) As Boolean
MsgBox UBound(var)
End Function


821 名前: デフォルトの名無しさん 投稿日: 02/10/29 14:13
>>814
ShellExecuteの戻り値はプロセスIDではないよ。
つまりShellExecuteでは不可能。

ShellExecuteExならプロセスハンドルも取得できるが、
Shell関数で起動した方が簡単だと思う。


822 名前: デフォルトの名無しさん 投稿日: 02/10/29 14:35
>820
人様の作った関数‥そういう仕様なんです‥
使えんからラッパー作りたいんですが(。´Д⊂)


823 名前: デフォルトの名無しさん 投稿日: 02/10/29 14:45
>>822
んじゃ
MsgBox UBound(vntArr(0))


824 名前: 822 投稿日: 02/10/29 14:46
「使えん」は言い過ぎでした。ご免なさい
「諸々の都合」ってやつですね
私も大したもんではないですのでハイ


825 名前: デフォルトの名無しさん 投稿日: 02/10/29 14:56
>>821
実はその方法も考えたのですが、
起動させるファイル(拡張子)がmdbである為

lret = Shell("c:\winnt\notepad.mdb", vbNormalFocus)

のような起動だとエラーが発生してしまい

lret = Shell(SysCmd(acSysCmdAccessDir) & "MSACCESS.EXE " & "ファイルパス名", vbNormalFocus)

のようにするとmdbは起動するのですが、
指定mdb以外にもう1つmdbが起動してしまいます。



826 名前: 821 投稿日: 02/10/29 15:27
> lret = Shell(SysCmd(acSysCmdAccessDir) & "MSACCESS.EXE " & "ファイルパス名", vbNormalFocus)

このコードをVB側に書いてんの?

だったらSysCmd()の呼び出しでAccess.Applicationの
暗黙のインスタンスが作られるんだから当たり前。
ShellでやるならAccessのパスを別の方法で取得するか、
または
CreateObject("Access.Application").SysCmd(acSysCmdAccessDir)
のように一時的なインスタンスからパスを取得するか、

またはいっそのことShellでなくオートメーションで
Accessを起動してhwndAccessAppプロパティからプロセスIDを得る。



827 名前: デフォルトの名無しさん 投稿日: 02/10/29 15:43
Picture Boxについて質問です。
ペイントブラシ(MSPaint.exe)よりも簡易な描画・bmp保存ツールを作成中なのですが、
Picture Box上の絵を任意の位置に移動するという処理方法で、
Psetで1ピクセルづつ描き移すというのしか思いつかず、
これだと処理速度が遅く、困っております。
何か良い方法がないものでしょうか?


828 名前: ◆LXNeBqeuyE 投稿日: 02/10/29 15:44
フォントが使用できるキャラクターセットを列挙するには、どのようにすればいいのでしょうか?
ご教示お願いします。


829 名前: デフォルトの名無しさん 投稿日: 02/10/29 15:55
ボタンを押したらText1の URL に対し、
1.response header をText2 に表示
2.htmlソースを text3 に表示
3.htmlを解釈したものを???に表示

という動作をやりたいんですが、
1.2.を Inet、3を WebBrowser と2動作に分けてやれば出来るんですが、
一度の request にて上記123を満たすにはどうすればいいでしょうか?




830 名前: デフォルトの名無しさん 投稿日: 02/10/29 16:13
>828
Screen.Fontsでフォント名を取得して、StdFont.Nameにセットしてみる。
Win2k以外はこれでうまくいきます。
Win2kの問題の回避方法をご存知の方いませんか?


831 名前: デフォルトの名無しさん 投稿日: 02/10/29 16:27
IEを監視してURLの履歴を取るソフトを作っているのですが
件数が1000とかになるとメモリに格納できなくなります(当たり前ですが
そこで配列が100を超えると101件目からDatファイルなどに書き込んでそこから読み取ろうと思うのですがどうしたらいいでしょうか?

現在のやり方
リストボックスからX件前を表示
履歴(X)をTEXT1に表示。IEコントロールでページをプレビュー表示

やりたいやり方
履歴が100を超える
1件目のデータをDATの一行目に書き込む
さらにもう一度履歴を取る
DATカウント+1
2件目のデータをDATの2行目に書き込む
DATカウント+1
でリストボックスで1件目を選択
(DATカウント)行目を参照し
TEXT1に表示。IEコントロールでページをプレビュー表示

ってな感じにしたいのですが・・・・
説明が長文&わかりにくくてすいませんがご助言宜しくお願いします。
検索もしたつもりですがお勧めの参考ページなどありましたらそちらも教えていただけるとありがたいです。


832 名前: 614 投稿日: 02/10/29 17:09
昨日、630さんにいただいたソースで、listboxのファイルをupすること
ができました。

.Execute , "PUT " & Me.List2.List(n) & " " & Me.List2.List(n)

現在、Upするときに付けるファイル名もフルパスになっているのですが、
これをファイル名だけにするには、どうしたらよいのですか?
(上の行の後ろのMe.List2.List(n)を工夫すれば良いはずなんですが。


833 名前: デフォルトの名無しさん 投稿日: 02/10/29 17:18
>>832
.Execute , "PUT """ & Me.List2.List(n) & """ """ & Me.List2.List(n) & """
ってしといたほうがいいよ。
フォルダにスペースとかはいってたらうまくいかないから。



834 名前: デフォルトの名無しさん 投稿日: 02/10/29 17:22
>>832
Option Explicit
Private Declare Function GetFileTitle Lib "comdlg32.dll" Alias "GetFileTitleA" _
(ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer) As Integer

Private Sub Form_Load()
Dim fileName As String
fileName = String(256, vbNullChar)
GetFileTitle "c:\hoge.txt", fileName, 256
MsgBox fileName
End Sub



835 名前: デフォルトの名無しさん 投稿日: 02/10/29 17:31
FileName = Dir("c:\hoge.txt")



836 名前: デフォルトの名無しさん 投稿日: 02/10/29 17:33
>>835
おぃおぃ


837 名前: デフォルトの名無しさん 投稿日: 02/10/29 17:35
>>835
げっ!
動くじゃん。参りますた。


838 名前: 630 投稿日: 02/10/29 17:37
>832
IISでは"PUT ローカルフルパス"だけで、自動的にファイル名だけになったので
確認せんかった。
対処は>833 >834のとおり。


839 名前: 825 投稿日: 02/10/29 18:03
>>826
ShellExecuteExで動作しました。
ありがとうございます。

Shellの方は
パス名が取得できませんでした。

lret = Shell(パス名, vbNormalFocus)

この時点でパス名が狂い、エラーになってしまいます。



840 名前: 投稿日: 02/10/29 18:10
>831
やりたい事とかはともかくとして、何が分からないのかはっきりせぇよ。


841 名前: デフォルトの名無しさん 投稿日: 02/10/29 19:03
>>831
1000件くらい余裕だと思うが。10000件でも余裕だと思うが。


842 名前: デフォルトの名無しさん 投稿日: 02/10/29 19:24
そもそもIEは自力で履歴を取ってるのだが・・・。


843 名前: 807 ◆LL.98XOPJI 投稿日: 02/10/29 19:57
>>810
ありがとうございます。早速ぐぐってみました。
やはり、ローカルフックならVBでも可能だけれど
グローバルフックをするにはDLLを必要とするみたいですね。
しかもそのDLLをVBで、って訳にはいかないそうで・・・。

ちなみに自分がやりたいのは
他のプロセスのウィンドウ一つについて監視したいだけなのですが
それでもやはり自アプリ内の事ではないのでVBでは無理ですかねぇ。

調べていたら http://www.int21.co.jp/pcdn/vb/vb5/vb5adrof.html
にて、丁度自分がやりたい事のようなサンプルがありました。
そしてそこで使われているのは「SetWindowLong」なのですが
これでも外部プロセスのウィンドウを監視することは出来ないのでしょうか。


844 名前: デフォルトの名無しさん 投稿日: 02/10/29 21:10
>>807
一つ厳しい事聞いていいか?
SetWindowLongの意味もわからないのに
メッセージフックしてなにがやりたいんだ?

他プロセスのメッセージ取得したいだけなら
VBから使えるフックOCXなんていくらでも転がってると思うぞ。



845 名前: 695 投稿日: 02/10/30 00:14
お疲れです。

>>630さんのお蔭様でプログラムらしくなってきました。本当に有難うございました。
>>614さんのソースを見てて、TextBoxに何も入ってない時には送信ボタンを無効化させないと
まずい事に気づいてそれに関して調べたりしてます。
プログラムって完成に近づくにつれて不具合が見つけたり、問題点が分かったりして奥深いですね。
今まで使ってたソフトのプログラマの皆様には感謝感謝です。自分でプログラム始めて初めてわかる
有難さ。

さて、今日は自分が使いやすくする為にTextBoxをドラッグ&ドロップに対応させてみました。
ソースはこんな感じにしました。

-------------------------------------------------------------
Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, _
Button As Integer, Shift As Integer, X As Single, Y As Single)

Text1.Text = Data.Files(1)
End Sub
-------------------------------------------------------------
段々らしくなってきたので、アイコンを付けてみようかなとも思ってます。
後少し!頑張ります!


846 名前: 810 投稿日: 02/10/30 01:43
>>843
> 他のプロセスのウィンドウ一つについて監視したいだけなのですが
個数は関係ないよ。

> そしてそこで使われているのは「SetWindowLong」なのですが
> これでも外部プロセスのウィンドウを監視することは出来ないのでしょうか。

SetWindowLongは別プロセスで作られたウィンドウの
プロシージャを書き換えることはできないし、
そもそもアドレス空間が異なるという大前提は理解してるの?

その外部プロセス側のコードを変更できないとすれば、
とにかくVBだけでやろうとするなら、DLLの中に
静的なコールバック関数を作る方法を考えること。
(俺には方法が考えつかない)


847 名前: これではきっと何も解決しない 投稿日: 02/10/30 07:03
APIの引数にコールバックとしてDLLのハンドルと関数ポインタが必要
標準モジュールの関数ポインタはAddressOfで取得できる
ActiveX DLLを作成
標準モジュールの関数ポインタを取得するCOM用の関数を作成
ActiveX DLLをCOM経由で関数ポインタを取得
ActiveX DLLをLoadLibraryでロードしDLLのハンドル取得


848 名前: デフォルトの名無しさん 投稿日: 02/10/30 07:33
>>845
それじゃ一個しか登録されないから、
For i=1 to Data.Files.Count
 List1.additem Data.Files(i)
Next i
と。
何もみずに書いたので間違ってるかも
ん?TextBoxなの??


849 名前: デフォルトの名無しさん 投稿日: 02/10/30 11:15
>>827
PaintPictureかAPI


850 名前:   投稿日: 02/10/30 12:35
すごくシンプルなところでエラーが出てしまいました。

メディアプレイヤーコントロールを使っていて、フォームにファイルをドラッグすると再生するのはうまくいきました。

mediaplayer1.filename = data.files(1)

このときのdata.files(1)の中身はドラッグしたファイルのフルパスです。

でもアイコンにドラッグして再生するのはエラーが出てしまいました。

'フォームロードの中に記述
mediaplayer1.filename = command()

mediaplayer1.filenameの中は空文字でした。でもcommand()の中はdata.files(1)と同じフルパスが入っていました。

もしかしたらフォームロード時にはまだmediaplayer1オブジェクトがないのかなとおもって、いったんグローバル変数に入れてから
mediaplayer1.filename に入れてみましたが、同じ結果になりました。

なんでmediaplayer1.filenameに同じストリング型を代入しても入るときと入らないときがあるのでしょうか?


851 名前: デフォルトの名無しさん 投稿日: 02/10/30 12:39
>>850
いちいち空行入れるな、ボケ


852 名前: ↑↑↑↑↑↑↑↑↑↑ 投稿日: 02/10/30 13:16
(^Д^)ギャハ!↑みなさん、この人のレスどう思いますか♪
なんてありきたりなんでしょうね♪
誰もが皆、一瞬つけてみたくなる発想のレスです♪
しかし、賢明な人はその自らの短絡的思考を野放しにする事を嫌がり、
こういうレスは控えます♪
しかし、この人はしてしまったのです(^^;ワラ
「誰もが思い付くような事」を堂々と♪
この人にとってこのレスは何なのでしょうか♪
このレスをしている間にも時間は刻々と 過ぎ去っているのです♪
正にこの人のした事は「無意味」「無駄」でしかありません♪
ああ・・・何ていう事でしょう(^^;ワラ
図星で泣いちゃうかも(^^;ワラ  


853 名前: デフォルトの名無しさん 投稿日: 02/10/30 13:23
コピペウザイ


854 名前: デフォルトの名無しさん 投稿日: 02/10/30 13:27
>>852
お前も同レベル。


855 名前: デフォルトの名無しさん 投稿日: 02/10/30 13:54
>>850
いちいち空行入れるな、ボケ



856 名前: デフォルトの名無しさん 投稿日: 02/10/30 14:03
>>853

>>852


857 名前: デフォルトの名無しさん 投稿日: 02/10/30 14:09
>>854
( ´,_ゝ`)プッ
コピペに(略


858 名前: デフォルトの名無しさん 投稿日: 02/10/30 14:12


動物園の猿からかうようにちょっかいを出したくなる気持ちは分かるが、相手をしてはいかんよ。
いったいどんな人間と思っているのかな。学校の時クラスにいた変な奴とか職場にいる変わった奴とか、
そんなレベルで考えてたら大間違いちゃう?
そういうのはあくまでも健常者。カキコしてるのは、養護教育とか精神医療の対象者だよ。
興味の対象が固着して、前スレからエンドレスに同じ行動を繰り返してる。正常な人間ならとてもでき
ない。明らかに精神障害者でしょ。こういう人間は、健全な自我とか自尊心とかは、形成されていない
か崩壊してる。だから揶揄しても無駄。
精神科の個室に閉じこめられた患者が、孤独と退屈を紛らすため、廊下をとおる看護師や雑役婦を振り
向かせようとするにはどうするか。こいつは、ネットでそれと同じようなことをしているだけ。
無秩序な人格が、反応を求めて彷徨っているのよ。画面に反応が現れるという、その一点に興味と関心
が集中し、ずっとそのまんま。精神の荒廃は相当進んでいると思う。
何かポイントを突いたようなカキコをする場合もあるが、それは模倣によるもの。
他人を模倣する能力は、幼児など人格自律性が薄弱な者ほど高い。こういう人たちは、健常者の言った
立派な挨拶をそのまま他所で真似して喋り、その場の人をビックリさせるようなことがある。
>>855
こいつのカキコも、真似の結果たまたま意味のある内容になっているだけ。効果的と思われる幾つかの
パターンを学習しているにすぎない。意味にこだわってはいけない。
このスレでは、他の健常者との区別は截然としているのだから、別に支障もないでしょ。
憐れみつつ、放置しておきましょう。それが一番。


859 名前: デフォルトの名無しさん 投稿日: 02/10/30 15:41
VB4.0でラベル等に中国語を入力・表記したいのですが、
日本語版でそのような事が可能でしょうか?
ちなみにOSは98の2ndエディションです。
IMEもダウンロード済みですがVBを立ち上げると選択できなくなってしまいます。
宜しくお願いします。



860 名前: デフォルトの名無しさん 投稿日: 02/10/30 19:48
>>850
ほんとに入ってるのか?


861 名前: デフォルトの名無しさん 投稿日: 02/10/30 20:07
レコードセットのFields(0)が見当たらないのですがどうしてでしょうか?


862 名前: デフォルトの名無しさん 投稿日: 02/10/30 20:38
>>861
OSから入れなおせ


863 名前: デフォルトの名無しさん 投稿日: 02/10/30 20:46
>>859
諦めれ。


864 名前: ◆.OZsf3JbRk 投稿日: 02/10/30 21:52
質問です。
MSNメッセンジャーで、右下に出るような
ポップアップウィンドウを出したいです。

具体的には、枠無しのWindowで
最前面表示固定のWindowsで
表示されてもフォーカスは一切奪わないWindow
と、これだけの条件を満たすWindowを表示したいです。
現にこれを実装しているアプリを多く見かけるので
どうにか出来ると思うのですが、何故か上の3つが上手く噛み合ってくれません。
どうしたら↑のようなウィンドウを作成できるでしょうか。


865 名前: デフォルトの名無しさん 投稿日: 02/10/30 22:24
GetDiskFreeSpaceExを使ってドライブ容量を取得したのですが、
上位下位にわかれた64ビット変数に値が格納されています。
これはどうやったら処理できるのでしょうか?
DiskSize=(FreeSize.HighPart * 2147483647) + FreeSize.LowPart
ってやるとオーバーフローになってしまいますし


866 名前: デフォルトの名無しさん 投稿日: 02/10/30 22:42
>>865
こんなのあったよ
http://www.remus.dti.ne.jp/~y-mac/apilib/drvchkex.htm


867 名前: デフォルトの名無しさん 投稿日: 02/10/30 23:04
VB6ですが、Printerオブジェクトへの出力で印刷をしてるのですが
プレビューができず困っています。良い方法とかツールってないでしょうか?

あと、リストボックスのアイテムをドラッグして任意のテキストボックスに
ドロップってできないでしょうか?

もしよければお教え下さい。




868 名前: デフォルトの名無しさん 投稿日: 02/10/30 23:08
>>867
プレビューするには、PictureBoxに出力するしかない。
共通ルーチンに対してオブジェクト変数を渡すようにすれば、
コードもムダにはならない。これ基本中の基本。

アイテムのドラッグは自分で実装すればよい。



869 名前: デフォルトの名無しさん 投稿日: 02/10/30 23:08
>>867
http://www.systemyou.co.jp/tips/vb/tips1.htm


870 名前: デフォルトの名無しさん 投稿日: 02/10/30 23:08
>>867
VS-VIEWもいいよ。


871 名前: 865 投稿日: 02/10/30 23:11
>>866
つかってみますたが、オーバーフローでてダメですた。


872 名前: デフォルトの名無しさん 投稿日: 02/10/30 23:46
867>>869&>>870

サンキューです。さっそく試してみます。ドラッグ&ドロップもよろしくお願いします。
(一応ぐぐってはみたのですが見落としてますね・・・)



873 名前: デフォルトの名無しさん 投稿日: 02/10/31 00:00
>>870

さっそくトライアル判をダウンしたけど
VSPrinterって自由に使っても良いのかな?
結構良さそうです。謝謝♪



874 名前: デフォルトの名無しさん 投稿日: 02/10/31 00:04
>>873
再配布にライセンス料とかは必要ないはずだよ。


875 名前: デフォルトの名無しさん 投稿日: 02/10/31 00:11
>>874 安心しました。ありがとう



876 名前: デフォルトの名無しさん 投稿日: 02/10/31 00:13
>>865
Dim DiskSize As Variant
DiskSize = CCur(HighPart) * 2147483647 + LowPart

あたりでどうだろう。




877 名前: 695 投稿日: 02/10/31 00:13
>>848
レス頂きありがとうございます♪
Txtboxなの?と書かれてて頭に「?」が浮かんでたんですが、通常はListboxの方なのですね…。
全く解かって無いままでした。これからLISTに変えてみます!

皆さんのおかげで段々プログラムらしくなってきました。
アイコンは、32X32のBMPの拡張子をicoとすれば良いと思ってたんですが、大違いだったんですね(汗
32X32で作成したBMPのコンバーターはこれを使用しました。
フリーで高機能なグラフィック閲覧ソフト「XnView」です。
http://www.xnview.com/


878 名前: デフォルトの名無しさん 投稿日: 02/10/31 00:17
>>866
Currency型とか浮動小数点に変換して計算しな。

dim w@
w=ccur([下位32ビットが格納されている変数])
if w<0 then w=w+4294967296@
w=w+ccur([上位32ビットが格納されている変数])*4294967296@

hogehoge.caption=format$(w,"#,###0")+" Bytes"
bogeboge.caption=format$(w/1024@/1024@,"#,###0")+" MBytes"

こんな感じ。試してないけどうまくいくだろ、たぶん。



879 名前: 876 投稿日: 02/10/31 00:42
>>878
じぶん、符号の処理わすれてますた。
めんどくさいけど
 if w<0 then w=w+4294967296@
は必要な処理ですね。。。



880 名前: デフォルトの名無しさん 投稿日: 02/10/31 00:55
http://www.tripod.co.jp/guides/cgi2.html
このsendmail
と、上のWAUを使いたいです。
宜しくお願いします。JAVAアプレットオフの人をとばす文字列も教えてください・・
noscriptみたいな感じでしたっけ・・
又、CGIボーイのアクセス解析いれたら、
左下にGETIPIPPLET と表示されます、クリックしたときに。
これはCGIボーイですか?それとも関係ないでしょうか。宜しくお願いします。
CGIボーイって、アクセス売ってるって話ありますが、裏にどこがついてるんでしょう・・お願いします
もう一回はります。
http://www.tripod.co.jp/guides/cgi2.html
このsendmail
と、上のWAUを使いたいです。
宜しくお願いします。JAVAアプレットオフの人をとばす文字列も教えてください・・
noscriptみたいな感じでしたっけ・・
又、CGIボーイのアクセス解析いれたら、
左下にGETIPIPPLET と表示されます、クリックしたときに。
これはCGIボーイですか?それとも関係ないでしょうか。宜しくお願いします。
CGIボーイって、アクセス売ってるって話ありますが、裏にどこがついてるんでしょう・・お願いします  


881 名前: デフォルトの名無しさん 投稿日: 02/10/31 04:08
>>865
というか、わざわざULARGE_INTEGERなんて用意しなくても
64ビット整数であるCurrency型で直接処理すればいいと思うが。

Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" _
      Alias "GetDiskFreeSpaceExA" _
     (ByVal lpRootPathName As String, _
      lpFreeBytesAvailabelToCaller As Currency, _
      lpTtoalNumberOfBytes As Currency, _
      lpTtoalNumberOfFreeBytes As Currency) As Boolean

戻されたCurrency型引数に10000を掛ければ本当の数値が得られる。


882 名前: 881 投稿日: 02/10/31 04:15
あ、上の関数宣言は戻り値をLong型で宣言すべきだな。


883 名前: デフォルトの名無しさん 投稿日: 02/10/31 04:42
>880
逆に質問させてください。

1)Perlの質問と思われるのに、WebProg板(http://pc.2ch.net/php/index.html)で聞かずに、
VB初心者スレッドで質問したのは何故でしょうか?

2)「上のWAU」「とばす文字列」「CGIボーイ」「アクセス売ってる」とは何でしょうか?
不勉強ですいません。

3)日本人ですか?


884 名前: 865 投稿日: 02/10/31 08:38
なんかうまくいかないので自力で
Private Function fLowBit2HighBit(HighBit As Large_Int) As Currency
Dim cFlg As Currency
Dim w As Currency
cFlg = 0
w = HighBit.HPart
If HighBit.LPart < 0 Then
HighBit.LPart = HighBit.LPart - &H80000000
cFlg = 1
End If
fLowBit2HighBit = HighBit.LPart + (cFlg * &H7FFFFFFF) + (w * 4294967296#)
End Function
っての作ってあげたらうまくいきました。
>>881
それだと型が一致しませんですですっていわれます


885 名前: デフォルトの名無しさん 投稿日: 02/10/31 09:04
>>884
DLL作って文字列で返すとか


886 名前: デフォルトの名無しさん 投稿日: 02/10/31 09:13
>>884
http://ww3.enjoy.ne.jp/~kazu.ohara/SampleCode.html
みてやってみたけど
double型で/ 4.94065645841247E-324 で取れたよ。

Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" _
Alias "GetDiskFreeSpaceExA" _
(ByVal lpRootPathName As String, _
lpFreeBytesAvailabelToCaller As Double, _
lpTtoalNumberOfBytes As Double, _
lpTtoalNumberOfFreeBytes As Double) As Boolean

Private Sub Command1_Click()
Dim strRootPathName As String
Dim lintFreeByteAvail As Double
Dim lintByteSize As Double
Dim lintByteSpace As Double

Dim blnRet As Boolean

strRootPathName = "c:\"

blnRet = GetDiskFreeSpaceEx(strRootPathName, _
lintFreeByteAvail, _
lintByteSize, _
lintByteSpace)

MsgBox lintByteSize / 4.94065645841247E-324

End Sub




887 名前: デフォルトの名無しさん 投稿日: 02/10/31 09:25
フルパスからドライブ名を取得するのはどうやればよいのでしょうか?
単にLeft(DriveName,2)だとネットワークドライブ名が取得できませんし、
文字列操作だと区切りが\とか/、はたまたウォンとかあるようです。
ファイル名を取得するのはAPIがあるようですが。
VBScriptは使用しない方法がよいです。


888 名前: デフォルトの名無しさん 投稿日: 02/10/31 11:43
>>887
区切り文字がChr(&H5C)以外のWindowsってみたこと無いんだけど。


889 名前: デフォルトの名無しさん 投稿日: 02/10/31 12:25
>>887
ネットワークドライブの場合ドライブレターという概念がないのでは?

まぁ、どっちにしろ初めから一つの\までだろうけど。


890 名前: 887 投稿日: 02/10/31 12:37
え?そうなんですか?
「/」(文字コード42)でもいけちゃうじゃないですか。


891 名前: デフォルトの名無しさん 投稿日: 02/10/31 12:43
>>890
使う人いません。それでエラーが出て文句言う人はいません。


892 名前: 881 投稿日: 02/10/31 12:49
>>884
> それだと型が一致しませんですですっていわれます
はあ? 何言ってんの?

Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" _
   Alias "GetDiskFreeSpaceExA" _
   (ByVal pDirectoryName As String, _
   lpFreeBytesAvailabelToCaller As Currency, _
   lpTtoalNumberOfBytes As Currency, _
   lpTtoalNumberOfFreeBytes As Currency) As Long
Sub Sample()

  Dim a As Currency, b As Currency, c As Currency

  If GetDiskFreeSpaceEx("C:\", a, b, c) Then
    Debug.Print "使用可能", a * 10000
    Debug.Print "全容量", b * 10000
    Debug.Print "空き容量", c * 10000
  End If

End Sub

これだけでできるんだが。


893 名前: デフォルトの名無しさん 投稿日: 02/10/31 12:52
VBに型なんてあったのか・・・!?


894 名前: デフォルトの名無しさん 投稿日: 02/10/31 17:12
>>893
わざわざ書くな。部外者は他所言ってくれ。


895 名前: デフォルトの名無しさん 投稿日: 02/10/31 18:04
>>894
わざわざ書くな。部外者は他所言ってくれ。


896 名前: デフォルトの名無しさん 投稿日: 02/10/31 18:40
>>895
わざわざ書くな。部外者は他所言ってくれ。


897 名前: デフォルトの名無しさん 投稿日: 02/10/31 19:11
>893 あるよ、A香港型とか


898 名前: デフォルトの名無しさん 投稿日: 02/10/31 19:14
>>897
さぶすぎるー


899 名前: ワン 投稿日: 02/10/31 19:23
>>893
いろいろなスポーツに型があるようにVBにも
やはり型は存在します。型は、とくに日本古来の
武術において重要視されています。
たとえば弓道。これなどは、型がきっちりと
決められるようになるまでは矢を射ることが
禁じられているのです。そして、型を決めることが
できるようになった暁には、もうその矢がどこへ
飛んでいこうが知ったことではないのです。
ここに真の行き当たりばったりとはなにか、という
問いに対する答えのすべてがあるのですね。
VBの型もおなじです。まず型を徹底的に極めなさい。
そのあとはおのずとあなたの前にはすばらしい人生が
開けてくるはずです。



900 名前: デフォルトの名無しさん 投稿日: 02/10/31 19:34
やっぱDelphiだな。


901 名前: デフォルトの名無しさん 投稿日: 02/10/31 19:41


    D e l p h i   マ ン セ ー !


902 名前: デフォルトの名無しさん 投稿日: 02/10/31 21:31
すいません、テンパってます。
VB暦、6日目にして、明日今作ってるものの期限の者です。

FTPサーバー上から、フォルダを取得したいんですけど、
どうしたらよいんでしょうか?

自分なりに調べてみたんですけど、どうしても見つかりません。
なんでも良いんで、情報をお願いします。
今日は、会社に泊まりです。



903 名前: 630 投稿日: 02/10/31 21:50
>>902 なんだ? 素人がFTPクライアントを作るのが流行なのか?

DIRをExecuteして、後ろに / がついてるのがディレクトリ。
>>785-791 あたりにソースが出てたぞ。


904 名前: リンク房 投稿日: 02/10/31 21:52
[VB] : VB の WinInet API を使用した FTP の実装 (VBFTP.EXE)
ttp://support.microsoft.com/default.aspx?scid=kb;ja;JP175179

VBマニア - FTPでファイルダウンロード (INETコントロール)
ttp://homepage2.nifty.com/inform/vbmania/source/ftpdownload.htm

google [VB FTP サンプル]
http://www.google.com/search?q=FTP+VB+%83T%83%93%83v%83%8B&hl=ja&inlang=ja&ie=Shift_JIS


905 名前: デフォルトの名無しさん 投稿日: 02/10/31 22:04
labelについて質問です
labelでは、「文字に合わせてラベルのサイズを変更」はAutosizeで出来ますよね
逆に「ラベルのサイズに合わせて文字の大きさを変更」っていうのはできるのでしょうか?



906 名前: デフォルトの名無しさん 投稿日: 02/10/31 22:17
>>905
通常、動的にラベルの大きさ変えるヤツいないですから。


907 名前: デフォルトの名無しさん 投稿日: 02/10/31 22:22
できると思うし方法も思いついたけどあまり美しくないのでもっと美しい方法を教えてくれる人待ち


908 名前: デフォルトの名無しさん 投稿日: 02/10/31 22:24
>>907
取りあえずResizeイベント捕まえて高さと幅取得してもごもごすれば?



909 名前: デフォルトの名無しさん 投稿日: 02/10/31 22:33
>>907
君と同じ方法を思いついた。それでいけ。
もう一つ思いついたが、内緒。


910 名前: デフォルトの名無しさん 投稿日: 02/10/31 22:59
902>>903さん 904さん
ありががとうございました。
さっそく見ています。






911 名前: デフォルトの名無しさん 投稿日: 02/10/31 23:02
ボクのVBが風ひきました


912 名前: デフォルトの名無しさん 投稿日: 02/10/31 23:05
>>911
まず日本語の勉強からな。


913 名前: デフォルトの名無しさん 投稿日: 02/10/31 23:07
>>911
ネギでも巻いておけ


914 名前: デフォルトの名無しさん 投稿日: 02/10/31 23:24
テキストボクースにテキストボクースの横幅より長い文字列入れて、
そのテキストボクースからフォーカス外すと文字列の右側が切れますが、
これを左側が切れるようにはできますでしょうか。

具体的には文字列が「http://www.din.or.jp/~chorokin/laputa.mp3
だとしたら、

・通常
http://www.din.or.jp|

・こうしたい
horokin/laputa.mp3|

よろしくおながいします。


915 名前: デフォルトの名無しさん 投稿日: 02/10/31 23:29
テキストボクース


916 名前: デフォルトの名無しさん 投稿日: 02/10/31 23:35
昨夜はありがとう。

ところでVS-VIEWで手に入るVSPrinterですが、使用すると
バージョン情報なるダイアログが表示されて激うざです。
製品を購入しないと消えないのでしょうか?




917 名前: デフォルトの名無しさん 投稿日: 02/10/31 23:37
エクセルのデータをテキストのようにINPUTできないのでしょうか?


918 名前: デフォルトの名無しさん 投稿日: 02/10/31 23:55
>>914
ネタじゃなく教えてほしいんなら、ふざけた態度を改めよ。


919 名前: 914 投稿日: 02/11/01 00:13
(*´д`*) あっ、すみません。
じゃあ、テキストボックスってことでひとつお願いいたします。



920 名前: 905 投稿日: 02/11/01 00:20
>>908
>取りあえずResizeイベント捕まえて高さと幅取得してもごもごすれば?
"もごもご"の部分っていうのは、高さと幅に合わせてフォントサイズを拡大するっていうことですか?
"もごもご"の部分ってどうすれば?


921 名前: デフォルトの名無しさん 投稿日: 02/11/01 00:25
>>920
頭を使わないプログラマってさ、

PC初心者でも出来る!簡単な宛名の入力のお仕事です。
仕事をしながらPCに強くなれます。

とレベルが変わらないと思うんだがどうか?


922 名前: デフォルトの名無しさん 投稿日: 02/11/01 00:35
  アクティブウィンドウ上でのマウスイベントで
 例えば、ボタンがクリックされたなどの判定をするにはどうすればいいんでしょうか・・・
 どなたかお願いします。


923 名前: デフォルトの名無しさん 投稿日: 02/11/01 00:38
>>922
純粋にClickイベントをハンドリングすればいいのでは?


924 名前: デフォルトの名無しさん 投稿日: 02/11/01 00:40
日本語とネギしょったカモ


925 名前: デフォルトの名無しさん 投稿日: 02/11/01 00:40
悪いことはいわないから(以下略


926 名前: デフォルトの名無しさん 投稿日: 02/11/01 00:45
>>921
なるほど、ラベルとレベルをかけている訳か。
おい920君、座布団もってきてやれ。

920に言っておく。
こうすればできるかなと少しでも思ったら試してみろよ。
仕組みを確認するための小さなプログラムとか
みんな星の数ほど書いて技術を身に付けてきてんだぞ。
ここはVB初心者スレだが人間初心者スレじゃないぞ?

俺もかなり偉そうな事言ってるのはわかってるが、
「自分ができるけど面倒だから他人にやらせよう」ってスタンスのお前は
そんなに偉いのか?



927 名前: デフォルトの名無しさん 投稿日: 02/11/01 00:52
>>926
プログラムって言うのは文章を書くという行為に非常に似ている。

まず、文法を覚え、どういう表現が存在するのか把握する。

次に、いろいろなモノを参考にいろいろ書いてみる。初めはもちろんうまくいかない。
しかし、書き続けていればうまくなっていく。


彼女に気持ちを伝えたいんですがどんな文章を書けばいいですか?

ん?だから相手を好きになった経緯とかごにょごにょ書けば?

それはどうやって書けばいいんですか?


お前の手紙だ。お前の好きなように書けよと。

後、ついでに本厨にも言っておく。

初めのうちから「うまい文章の書き方」なんぞ読んでも文章はうまくならん。

自分のスタイルを理解しその問題点をきちっと把握してから読むものだ。

そんなんで育ったら融通の利かないお役所書類しか書けなくなるぞ。



928 名前: 905 投稿日: 02/11/01 00:55
>>926
Resizeで高さと幅を取得して、それをどうやってフォントサイズに生かすかがわからないんで試そうと思ってもできないんです。


929 名前: デフォルトの名無しさん 投稿日: 02/11/01 00:56
>>928
なぜ生かせないのかがわかりません。


930 名前: デフォルトの名無しさん 投稿日: 02/11/01 00:57
>>914
ふざけた態度を改めてるとは思えんな。
「じゃあ」ってなんだよ。おめぇは消防か?


とか言っておきながら回答つけてみたりw
LostFocusイベントにでもこれいれてみて。
 Text1.SelStart = Len(Text1.Text)
要はカーソルを一番後ろにもっていってやってるわけ。

ちなみにオイラの環境では文字列の右側が切れたりしないよ。
環境やプロパティの状態によっても違ってくるかもしれないから
今度からはそこら辺も書いた方がいいね。


わかったかボケ


931 名前: 922 投稿日: 02/11/01 01:19
>>923
もしよろしければ、コードを・・・

自分がやるとVBのフォーム内ではマウスイベントが発生するのですが
 アクティブにしたIEなどではマウスイベントが発生しなくて困ってます。


932 名前: デフォルトの名無しさん 投稿日: 02/11/01 01:31
>>928 >>905
高さと幅の取得方法は知ってるんだね?
フォントサイズって数値だってのはわかるよね。
高さと幅も数値だよね。
つまり数値から数値への変換な訳だよ。
で、どんな係数や式で変換できるか、これが問題だよね。

初めに戻るけど高さと幅の数値はわかる訳だよね。
そのときの君が最適と考えるフォントサイズってのもわかるよね。
まぁAutoSize=Trueしてみて値をとってみてもいいよね。
そうやっていくつかの組み合わせを「試して」
その数値の組み合わせを紙に書いて見てみよう。
どうだい?中学の数学の時間にやったような記憶はないかい?
数列とかの時間に等差数列とか等比数列とかやったような気がするでしょ。
(君がまだ中学生や小学生だというなら僕の見当違いだったかもしれないね。
 そのときは学校の先生に聞いてみるか、あと数年待った方がいいね)

別の考え方もしてみよう。

ヘルプにちゃんと書いてあるからわかっていると思って話してなかったけど、
フォントサイズってのはポイント単位だってのは知ってるよね?
高さや幅の単位はどうなってるかな?
君がコンテナオブジェクトのScaleModeプロパティをなににしているかは
僕にはわからないんだよ。とっても残念だけどね。
で、ScaleModeプロパティをよくみてみると・・・
おや?「2-ポイント」ってのがあるよね。
ってことは高さや幅の単位とフォントサイズの単位を同じにできるかも!
同じ単位ならあとはそのまま代入でいけるかもしれないね〜
さぁレッツ・トライ!「試せる」よ!



933 名前: デフォルトの名無しさん 投稿日: 02/11/01 01:45
>>922
IEって、他アプリ上でのクリックを取得したいってこと?
それならフックするのが一番かな。
システムフックをする必要があるからVBだけでやるのは茨の道。
VCとかでちょちょいっとDLLを書いてやるか、
システムフック可能なOCXとかあちこちで見かけるから
それ使わせてもらうのが簡単だね。

どんなアプリ作ろうとしてるのか知らんけど、
複数のアプリを動かせる仕掛けのOSでは
他アプリの情報は簡単には取得できないようになってるもんだよ。
もちろん裏技というか抜け道は必ずあるけどね。
そういう普通じゃないアプリ作成にはVBは向かんよ。



934 名前: 905 投稿日: 02/11/01 01:45
>>932
なるほど。ScaleModeプロパティと言う手があったんだ
ありがとうございました


935 名前: デフォルトの名無しさん 投稿日: 02/11/01 06:58
変な文章で、毎日煽り入れるだけで、回答してやれないヤシ(推定だが毎日同じヤシ)、
目障りだから氏ねよ。

さ、会社逝こうっと。


936 名前: デフォルトの名無しさん 投稿日: 02/11/01 07:53
TextOut でモノクロプリンタに出力するテキストの色の濃さを変えたいのだが
SetTextColor は効かんようだ
方法を教えてくれ


937 名前: 936 投稿日: 02/11/01 09:26
プリンタドライバ (もしくはOS?) によって結果が異なるようだ
スマソ無視してくれ


938 名前: デフォルトの名無しさん 投稿日: 02/11/01 09:29
そもそも全然VBの質問じゃないしな、それ。


939 名前: デフォルトの名無しさん 投稿日: 02/11/01 09:38
>>927
いちいち空行入れるな、ヴォケ


940 名前: デフォルトの名無しさん 投稿日: 02/11/01 09:39
>>916

そりゃ、評価版なんだからしかたないんじゃない


941 名前: 936 投稿日: 02/11/01 11:09
もうひとつ ExtCreatePen について
Win98 は問題ないが Win2000/XP だとハンドルが取得できん
方法を教えてくれ


942 名前: おまえしね 投稿日: 02/11/01 13:07
>>939

謝れとは言いませんがこちらもちょっと大人気ないのですが
ムカついたので友達のハッカーに頼んであなたの個人情報を
探してもらうことにしました。あ、もう遅いですよ。
もうすでに友達解析始めちゃってますから・・・(^^;
ちなみにこれは自慢じゃないんですがその友達は日本でも
5の指に入るくらいの凄腕のハッカーです。
この前彼の家に遊びに行ったらものの5分で他人の個人情報を
抜き取っていました。
彼にとってそれくらい赤子の指をひねるくらいの行いなんですよね(爆)
これであなたもいっかんの終わりってやつですね(^^;
まあせいぜい後悔してくださいね。
それからもう二度と荒らしはしないこと(その友達は荒らしが大嫌いらしいです。
荒らしを見つけたら即解析に入るみたいです。(^^;)
それでは、う〜ん二日後くらいかな?また例のところに来てくださいね。
あなたの住所本名住所その他もろもろのせておきますんで(笑)
あ、警察とかに言ったって無駄ですよ。
あなたは荒らし(犯罪)なんだから通報したところで捕まるのは アナタです
友達は掲示板のログを自在に操ることができるんです。
と、いうことでbye♪(^O^)/~~


943 名前: デフォルトの名無しさん 投稿日: 02/11/01 13:33
>>942
大まかなポイントは押さえてあるので,ほぼ良いのではないでしょうか.
欲を言うと,もう少し文章に力が欲しいところです.


944 名前: デフォルトの名無しさん 投稿日: 02/11/01 13:49
Me.Hide とやっても 非表示にならないFormがあるんです、
これを非表示にするには、どうしたらいいのでしょうか?


945 名前: デフォルトの名無しさん 投稿日: 02/11/01 13:50
>>944 非表示にならないFormについて詳細に書いてね。


946 名前: デフォルトの名無しさん 投稿日: 02/11/01 13:53
Shellを使って、外部.exeを起動させようと思うのですが、フルパスを
指定しないで(exe名のみで)、起動させたいのですが、うまくいきません。

Shell("calc.exe")とかShell("notepad.exe")は、これだけで起動するんですが、
Shell("c:\Program Files\Afolder\Bfolder\client.exe")は、
Shell("client.exe")だけでは、「実行時エラー53ファイルがみつかりません。」
となってしまい、うまく動作しません。

どうすれば解決できるのでしょうか?


947 名前: デフォルトの名無しさん 投稿日: 02/11/01 13:55
>>946 環境変数のPATHについて調べてね。


948 名前: デフォルトの名無しさん 投稿日: 02/11/01 14:04
エクセルのアプリケーションオブジェクトを操作するプログラムを書いています。
が、どんなプロパティやメソッドがあるのか、わかりません。
どこを探したら良いでしょうか。


949 名前: デフォルトの名無しさん 投稿日: 02/11/01 14:06
>>948
ヘルプ&マクロの記録


950 名前: デフォルトの名無しさん 投稿日: 02/11/01 14:13
>>948
VCでタイプライブラリをインポートする


951 名前: デフォルトの名無しさん 投稿日: 02/11/01 14:18
>>948 オブジェクトブラウザ


952 名前: デフォルトの名無しさん 投稿日: 02/11/01 14:20
>>948
エクセルのVBAのヘルプ


953 名前: 946 投稿日: 02/11/01 14:53
>>947
ありがとうございます。

WinXPを使っているのですが、
システム→詳細設定→環境変数→ユーザ環境変数と辿っていき、
pathのところに「;c:\Program Files\Afolder\Bfolder\client.exe」と追加
してみたのですが、状況が変わりません。

何かのバッチファイルとかを書かなくてはいけないのでしょうか?
それとも書き方がおかしいんですかね?

そもそもが良くわかっていないので、よろしくお願いいたします。
(何かに何かの設定をすれば、フルパスを打たずに実行できるように
なりそうだ、というのは理解しているのですが・・・)


954 名前: デフォルトの名無しさん 投稿日: 02/11/01 15:04
>>953
client.exeはいらないと思うがどうだろう


955 名前: 630 投稿日: 02/11/01 15:13
>946
分かってない割には的確だな。中途半端だけど。
「;c:\Program Files\Afolder\Bfolder」でよし。


956 名前: デフォルトの名無しさん 投稿日: 02/11/01 16:05
なんでわざわざシステムの環境変数をいじってまで
フルパス指定を避けたいんだろう?


957 名前: デフォルトの名無しさん 投稿日: 02/11/01 16:08
chdir
はダメ?


958 名前: デフォルトの名無しさん 投稿日: 02/11/01 16:09
>949-952
レスありがとうございました。
いろいろ見てみます。


959 名前: デフォルトの名無しさん 投稿日: 02/11/01 16:10
http://yahooo.s2.x-beat.com/


960 名前: 946 投稿日: 02/11/01 17:11
>>954-955(630)さん、ありがとうございます。
言われた通りにしてrebootしたら出来ました。

>>956
今作ってるアプリを使うのが特定のマシンとは限らないんです。
で、呼び出すEXEが格納されているディレクトリはマシンによって異なる
可能性があるんで、何か回避方法はないかな?と思ったのです。

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




961 名前: デフォルトの名無しさん 投稿日: 02/11/01 17:18
>>960
iniファイルとかレジストリとかに絶対パスを設定するようにしたほうがイクナイ?


962 名前: デフォルトの名無しさん 投稿日: 02/11/01 17:26
>>960
> 今作ってるアプリを使うのが特定のマシンとは限らないんです。
> で、呼び出すEXEが格納されているディレクトリはマシンによって異なる

だったら別にフルパスのままでいいじゃん。

s = "c:\Program Files\Afolder\Bfolder\"
( ↑ 実際にはレジストリや設定ファイルから取得)
Shell s & "client.exe"

わざわざシステムの設定を書き換える必要はないと思うが。


963 名前: 962 投稿日: 02/11/01 17:28
あ、ごめん。961とかぶってたわ。


964 名前: デフォルトの名無しさん 投稿日: 02/11/01 17:53
shellを使ってエクスプローラを開くときに指定したフォルダを開きたいときは
どうするんでしょうか?


965 名前: デフォルトの名無しさん 投稿日: 02/11/01 17:59
>>964
何で開きたいのかによるがな
Shell "EXPLORER.EXE C:\WINDOWS", vbNormalFocus


966 名前: 964 投稿日: 02/11/01 18:58
>>965さん
コマンドボタンを押したらお気に入りのフォルダがたちどころに開けるとベンリなのでつくってみたかったです。
ありがとうございました。


967 名前: デフォルトの名無しさん 投稿日: 02/11/01 19:07
2つのフォームを使って1つ目をメニューにして、2つ目で作業するとして、

フォーム1の「開始」みたいな感じのボタン
Dim frm2 As New Form2()
frm2.ShowDialog()
Me.Hide()

フォーム1の「終了」ボタン
Me.Close()

フォーム2の「メニューに戻る」みたいな感じのボタン
Dim frm1 As New Form1()
frm1.Show()
Me.Close()

とするとプログラムが終了してくれないんですけどどうしてでしょうか?
VB.NETです。


968 名前: デフォルトの名無しさん 投稿日: 02/11/01 19:15
>>967
VB.NET?

とりあえずフォーム1がフォーム2によって新規に作られてるかなじゃない?
Dim frm1 As New Form1()



969 名前: デフォルトの名無しさん 投稿日: 02/11/01 19:24
>>968
答えていただいてありがとうございます
確かにForm1がもうひとつ作られて、「終了」で閉じられているのは
1つだけになっているようです。
新しく作らないようにするにはどうやってfrm1を宣言すればいいのでしょうか。
As NewのNewを何かに変えればいいのですか?

>>VB.NET?
ごめんなさい勝手に略しました。VisualBasic.NETです。
6.0と.NETではだいぶ違うらしいので・・・
(最近やり始めたので6.0はわかりません)


970 名前: デフォルトの名無しさん 投稿日: 02/11/01 19:37
>>969
VB.NETわかんない
http://pc3.2ch.net/test/read.cgi/tech/1025848458/l50
できいてみそ


971 名前: 967 投稿日: 02/11/01 19:45
すみません。VB.NET用のスレがあるの知りませんでした。
そっちで聞いてきます。


972 名前: デフォルトの名無しさん 投稿日: 02/11/01 20:26
( ´,_ゝ`)プッ





973 名前: デフォルトの名無しさん 投稿日: 02/11/01 21:50
次スレ たてたよ
http://pc3.2ch.net/test/read.cgi/tech/1036154952/


974 名前: デフォルトの名無しさん 投稿日: 02/11/01 22:24
>>973
小津。


975 名前: デフォルトの名無しさん 投稿日: 02/11/02 11:24
VB6でActiveX EXE形式でコンパイルしたファイルを
削除しようとしたのですが、
REGSVR32ではActiveX Dll,Ocxなどはレジストリから削除できるのですが、
ActiveX EXEはできないようです。
どなたか方法知っていたら教えてください


976 名前: デフォルトの名無しさん 投稿日: 02/11/02 14:27
>>975
hoge.exe -Unregserver
(hoge.exeがそのActiveX EXEのフルパス名ね)


977 名前: デフォルトの名無しさん 投稿日: 02/11/02 17:09
>>976
解決しました!!
ありがとうございました。


978 名前: デフォルトの名無しさん 投稿日: 02/11/02 17:33
テキストボックスをコントロール配列にして使用していますが、
要素がある場合にも、「実行時エラー"340" コントロール配列の要素"xxxx"がありません」
となることがあります。
一度終了して、再実行すると直りますが、
何でこのエラーが発生する場合とそうでない場合があるのでしょうか。
このバグの修正方法はコントロール配列を使用しないことなのでしょうか。
どなたかアドバイスいただけませんか。



979 名前: デフォルトの名無しさん 投稿日: 02/11/02 17:45
>>978
ソースにバグがあると思われ


980 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:15
>>979
ソースはこのようになっています。
コントロール配列(txtMenu(0)〜txtMenu(3)まであります。
  
Dim MenuStr(3, 3) As String
Dim StaffStr(10, 1) As String

For i = 0 To 3
If Len(txtMenu(i).Text) > 0 Then

       rsSalesInfo.AddNew

rsSalesInfo!stfStatus = StaffStr(i, 1)
rsSalesInfo!stfID = StaffStr(i, 0)
rsSalesInfo!mpID = Val(MenuStr(i, 0))
rsSalesInfo!mpName = MenuStr(i, 1) + " " + MenuStr(i, 2)
rsSalesInfo!mpPrice = Val(MenuStr(i, 3))
rsSalesInfo!mpQnt = 1

rsSalesInfo.Update

End If
Next
このような感じでデータベースに新規レコードを追加しています。
発生するときと発生しないときがあり、どうしても解決できません。



981 名前: 小人 投稿日: 02/11/02 18:31
ダレモイナイ…


982 名前: 小人 投稿日: 02/11/02 18:31
1000get スルナラ…


983 名前: 小人 投稿日: 02/11/02 18:31
イマノウチ…


984 名前: 小人 投稿日: 02/11/02 18:32
ランタンタン♪ ランタンタンタン♪


985 名前: 小人 投稿日: 02/11/02 18:34
2重カコキにもマケナイゾ…ット。


986 名前: 小人 投稿日: 02/11/02 18:35
ランタンタン♪


987 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:37

        まもなくここは 乂1000取り合戦場乂 となります。

      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )



988 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:38
( ´,_ゝ`)プッ…


989 名前: 小人 投稿日: 02/11/02 18:39
989get


990 名前: 小人 投稿日: 02/11/02 18:40
今だ!990番ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
                  ∧∧       (´⌒(´
            ⊂(゚Д゚ )≡≡≡(´⌒;;;≡≡≡
        ⊆⊂´ ̄ ⊂ソ  (´⌒(´⌒;;
           ̄ ̄ ̄   ズザーーーーーッ



991 名前: 979 投稿日: 02/11/02 18:41
ヾ(;゚∀゚)ノシ ガッセンハジマル

>>980
わるいけど、次スレ持ち越しってことで


992 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:41
(゚∀゚)


993 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:41
(´∀` )



994 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:41
(,,゚Д゚)


995 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:42
(´д`)



996 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:42
(・ω・)



997 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:42
(゚∀゚)~°アヒャヒャ


998 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:42
1000


999 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:43
1000


1000 名前: 小人 投稿日: 02/11/02 18:43
               ┌┐                                ●●●
    人          ││                              ●\  ●\
   ノ二\  ナ ゝゝ   V                 ●●●        ●\     ●\
     /   / 乙 つ  O               ●\   ●\      ●\       ●\
                  ●●●        ●\     ●\    ●\       ●\
                 ●\   ●\      ●\      ●\    ●\        ●\
       ●●\     ●\     ●\    ●\       ●\   ●\        ●\
        ●\    ●\      ●\    ●\       ●\    ●\       ●\
        ●\    ●\      ●\    ●\      ●\    ●\     ●\
       ●\    ●\       ●\    ●\      ●\      ●\    ●\
       ●\    ●\      ●\    ●\     ●\        ●●● \
      ●\     ●\      ●\      ●\   ●\           \\
      ●\     ●\     ●\        ●●● \
     ●\      ●\   ●\           \\\
     ●\        ●●● \                              ┌┐ ┌┐
    ●\          \\\      ┣━┳┃┃      ┃          ││ ││
   ●●●\                      ┃   ┃┃┃ ┣┓ ━╋ ━╋  V   V
   \\\\                     ┛     ━┛ ┃   ┏┫ ┏┫  O  O
                     (´´
     /■\    )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;



1001 名前: 1001 投稿日: Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。



2ちゃんねるは、ここのサーバを使ってるです。。。