(・ロ・)ホ,('ロ')ホ--ッッ!!!… VB初心者質問スレ Part17(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初心者質問スレ Part17
1 名前: デフォルトの名無しさん 投稿日: 02/11/01 21:49

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/
Part14 http://pc3.2ch.net/test/read.cgi/tech/1030947162/
Part15 http://pc3.2ch.net/test/read.cgi/tech/1032706491/
Part16 http://pc3.2ch.net/test/read.cgi/tech/1034302532/

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


2 名前: デフォルトの名無しさん 投稿日: 02/11/01 21:49
  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 名前: 3げと 投稿日: 02/11/01 21:51



4 名前: デフォルトの名無しさん 投稿日: 02/11/01 22:00
これまた微妙なタイトル(藁
スレ立て乙>>1


5 名前: デフォルトの名無しさん 投稿日: 02/11/01 22:10
乙kare


6 名前: デフォルトの名無しさん 投稿日: 02/11/01 22:13
どんなスレタイだよボケ。


7 名前: デフォルトの名無しさん 投稿日: 02/11/01 22:26
なんだよ、この顔文字。絶対、前のが良いと思う。
こんなの見つけづらいだろ。
次スレ立てるヤシは、前のに戻しておくれよ。


8 名前: デフォルトの名無しさん 投稿日: 02/11/02 00:26
8歳ぷろぐらまー
http://www.geocities.co.jp/Milkyway-Orion/4054/



9 名前: デフォルトの名無しさん 投稿日: 02/11/02 00:43
>>8
可愛いねぇ。
親がBBSで愚痴ってるのがキモいが・・・。


10 名前: デフォルトの名無しさん 投稿日: 02/11/02 01:08
8歳で既にプログラミングやってるんか(´д`;)
でも、子供はかわいいよな・・・


11 名前: デフォルトの名無しさん 投稿日: 02/11/02 02:23
お願いします。リストボックスの値をドラッグして別のテキストボックスに
ドロップすることできないでしょうか?

あ⇔か





12 名前: デフォルトの名無しさん 投稿日: 02/11/02 02:28
あ⇔か?


13 名前: デフォルトの名無しさん 投稿日: 02/11/02 02:34
L⇔R


14 名前: デフォルトの名無しさん 投稿日: 02/11/02 07:01
半透明スプライトを表示したいのですが

Private Sub Sprite_Ini(ByRef Sprite() as SpriteObjectEx)
VsyncMode=True
Call Get@(hMemDC,0,0,32,32,Pat0%)
Call Get@(hMemDC,32,0,32,32,Pat1%)
Def Sprite(0)=Pat0%:Alpha 0,.5
Def Sprite(1)=Pat1%:Alpha 1,.5
End Sub

とした時にこの2つのスプライトが重なるとBGが
NORされてしまいます。何が原因でしょうか?

WinXPとVB.NETとDairectXを使用しています。



15 名前: デフォルトの名無しさん 投稿日: 02/11/02 07:22
ラベルコントロ−ルを使ってカ−ソルがコントロ−ルの上を通過している間だけ
テキストの色を変えたいです
マウスがコントロ−ルから離れたのを検出するにはどこをみればいいのやら・・・
Mouse_Moveイベント見てもわからないっすよね
なにか良い方法有ったら教えてください


16 名前: デフォルトの名無しさん 投稿日: 02/11/02 09:44
ポートの80が開いてるかどうか確認したいのですが
どの関数使えば確認できるのか教えてください。


17 名前: デフォルトの名無しさん 投稿日: 02/11/02 10:42
>>16
connect


18 名前: デフォルトの名無しさん 投稿日: 02/11/02 11:30
>>8-10

小さい子がディスプレイとにらめっこというのは、健康面でいかがなものかと思う。


19 名前: デフォルトの名無しさん 投稿日: 02/11/02 11:49
>>15
FormのマウスMOVEのイベントで ラベルの位置にあればラベルの色を変えるようにすればいい。
ラベルの位置は top left width height で 知るがよい。


20 名前: デフォルトの名無しさん 投稿日: 02/11/02 12:03
それだとうまくいかないから、SetCaptureもつかったほうがいいんでない?


21 名前: デフォルトの名無しさん 投稿日: 02/11/02 14:13
>>15
Form1_Mousemove()とAPIのWindowFromPointを併用。
タイマーもいる?


22 名前: デフォルトの名無しさん 投稿日: 02/11/02 16:42
age


23 名前: デフォルトの名無しさん 投稿日: 02/11/02 16:56
>>11
あ⇔か

イメージですか?




24 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:44
小人必死だな


25 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:49
小人すごいな…


26 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:54
(;゚∀゚)ヤラレター


27 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:54
前スレの 978 щ(゚Д゚щ)カモォォォン


28 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:59
>>25=小人


29 名前: 小人 投稿日: 02/11/02 19:18
|ー゚)☆ニヤリ


|彡サッ


30 名前: デフォルトの名無しさん 投稿日: 02/11/02 20:22
ハハハ


31 名前: デフォルトの名無しさん 投稿日: 02/11/02 20:33
ほんの少し刺激を求めてる主婦のサークルを作りました!
私たち主婦が楽しめる安全でちょっとトキメキのある出会を求めて
只今男性会員を募集中です!! 女性会員も募集(^○^)/"
http://f-cc.com/~tokimail/


32 名前: デフォルトの名無しさん 投稿日: 02/11/02 20:38
荒れ放題の無法恥帯だな・・・。


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


34 名前: 転載 投稿日: 02/11/02 21:55
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
このような感じでデータベースに新規レコードを追加しています。
発生するときと発生しないときがあり、どうしても解決できません。


35 名前: デフォルトの名無しさん 投稿日: 02/11/02 23:18
>>34
原因はわからんけど、アドバイス。

(1) マジックナンバー(0〜3のリテラル値の記述)はやめなさい。
  仕様変更の度に余計な仕事が増えて胸糞悪くなる。
  (コントロール以外の)配列なら、LBound / UBoundを使うのが
  スジだし、コントロール配列やコレクションなら、For......Each
  でアクセスするのが健全な感覚。

(2) レコードの操作は、原則、SQLでやれ。

(3) rsSalesInfoが何の型で定義されているか、どこでインスタンス化
  されているか、不明。
  MLやBBSで他人に尋ねるなら、必要な情報は省略せず、開示すべき。

(4) データベースが関係する質問なら、DBMSと接続方法(使用ミドルウェア等)
  も示せ。

以上。


36 名前: デフォルトの名無しさん 投稿日: 02/11/02 23:23
>>35に補足。

> コントロール配列なら、For......Eachでアクセスするのが健全な感覚。

コントロール配列の場合、何らかの設計上の事情で、要素の一部が削除された場合、
番号が再定義される訳ではないので、Index番号に欠番が生ずる。
だから、For...... Nextステートメントを使用したIndex番号によるアクセスでは、
エラーにならない保証はどこにもない。

それから、

For ...... Each

と書いたのは、

For Each ...... Next

の誤り。

以上。


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

>>35

更に補足。(藁

> MLやBBSで他人に尋ねるなら、必要な情報は省略せず、開示すべき。

こう書くと、数100行の長文コードをまんま○投げしてくるヴァカが
少なからずいるが、不要な情報は問題解決の助けにはならないと知る
べし。

情報の開示は、必要分のみ、過不足なく、ということだ。

以上。


38 名前: デフォルトの名無しさん 投稿日: 02/11/03 00:50
>>35-37
簡潔に言うと・・・ググってこいや!って事ですか?



39 名前: デフォルトの名無しさん 投稿日: 02/11/03 00:52
( ´_ゝ`)<分かってんじゃん。


40 名前: 15 投稿日: 02/11/03 04:09
>>19-21
レス有難う御座います
APIやらタイマ−やら使わないとダメですか
と言う事はラベルなんか使わず自前で描画した方が楽そうっすね。
RECT構造体のテ−ブル作ってフォ−ムのMouse_Moveで比較とかが
スマ−トかな・・・つぅかVB痛いなぁ



41 名前: デフォルトの名無しさん 投稿日: 02/11/03 06:09
>>40
まぁ・・・頑張れ・・・


42 名前: デフォルトの名無しさん 投稿日: 02/11/03 11:57
>>40
そっちのほうが面倒に一票。


43 名前: デフォルトの名無しさん 投稿日: 02/11/03 13:13
>>40
何と比較して痛いと言っているのか。

まず、おまいの得意な言語でどうやるのか書いてみな。


44 名前: デフォルトの名無しさん 投稿日: 02/11/03 13:49
当時、仕事を辞めたばかりで一人でフラフラしてた頃。
両親が遊びに来て、色々買ってくれた上に
家で作ってきたVB製家計簿プログラムを、机に置いて行ってくれた。

その次の日、母は入院。
あっという間に亡くなった。
葬儀を終え自宅に戻ると、Windows98にはまだ
母が作ったVBプロジェクトがあった。
大泣きしながらソースを読んだ。

あれ以来、VBプロジェクトは開けない。


45 名前: デフォルトの名無しさん 投稿日: 02/11/03 13:51
>>44 ツマラン


46 名前: デフォルトの名無しさん 投稿日: 02/11/03 13:52
>>44
ageるなよ。そんなことで


47 名前: デフォルトの名無しさん 投稿日: 02/11/03 15:26
>>40
> RECT構造体のテ−ブル作ってフォ−ムのMouse_Moveで比較とかが
> スマ−トかな・・・

20と21のレスの意味を全然わかってないね。


48 名前: デフォルトの名無しさん 投稿日: 02/11/03 16:29
Option Explicit
のすぐ下で宣言するときの
DimとPrivateの使い分け方がわかりません。
どういうときはどちらをつかうのでしょうか。


49 名前: デフォルトの名無しさん 投稿日: 02/11/03 16:57
どっちもまったく同じ。


50 名前: デフォルトの名無しさん 投稿日: 02/11/03 17:41
>>48
DQNじゃないならそこではPrivate使っておけ。


51 名前: デフォルトの名無しさん 投稿日: 02/11/03 17:42
>>49
そこで平気でDim使うやつのソースは危険な佳織がぷんぷん。


52 名前: デフォルトの名無しさん 投稿日: 02/11/03 17:53
>>50-51
後学の為に理由を教えてくだされ。


53 名前: 49 投稿日: 02/11/03 18:00
>>51に誤解されたかな?
意味・動作はまったく同じということであって、
可読性の面においては Privateと書くことを
おすすめしておく。


54 名前: デフォルトの名無しさん 投稿日: 02/11/03 20:38
SetWindowLong(hWnd, GWL_WNDPROC, AddressOf MainFormWindowProc)
Public Function MainFormWindowProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
〜省略〜
MainFormWindowProc = CallWindowProc(lngDefaultProc, hWnd, uMsg, wParam, lParam)
ExitFunction
てなことをかくとマウスカーソルを動かすたびにMainFormWindowProcの内容が実行される
サブクラスみたいなのですが、どういうことなのか、どういう順番で実行されているのかわかりません。
カーソルを動かすとSetWindowsLong関数が実行されるようになっているのでしょうか?
それともMainFormWindowProcが実行されてSetWindowLongが呼び出されているのでしょうか


55 名前: デフォルトの名無しさん 投稿日: 02/11/03 21:18
>>44
それを母のメッセージだと思ってガンガレよ!

おれも亡くなった人のソース読んだことがある。
なにやら切なかったな。


56 名前: デフォルトの名無しさん 投稿日: 02/11/03 22:38
>>54
誰の書いたソースか知らんが、ちゃんとソース読め。
サブクラス化でぐぐれ。



57 名前: デフォルトの名無しさん 投稿日: 02/11/04 00:12
>55
ただのコポペ改変です。


58 名前: デフォルトの名無しさん 投稿日: 02/11/04 01:18
VB6で,希望のデータファイルを関連付けられた標準アプリで開く方法を
教えてください。
たとえば,image.jpgやdata.txt をアプリケーションの指定なしに
標準アプリで開くという場合です。
Shell() やCreateObjectをためしたのですが,,,
VBにはうといもので,,低次元な質問で申し訳ない。どなたかお救いくだされ。


59 名前: VC厨 投稿日: 02/11/04 01:35
ShellExecute(NULL,"open","ほげほげ.jpg",NULL,NULL,SW_SHOWNORMAL);


60 名前: デフォルトの名無しさん 投稿日: 02/11/04 01:57
(・<>・)ほぅ・・・ほーほほっほ・・・ 


61 名前: デフォルトの名無しさん 投稿日: 02/11/04 01:57

●<>●


62 名前: デフォルトの名無しさん 投稿日: 02/11/04 02:12
はっきり言って全然初心者にやさしくない糞スレだね。( ´,_ゝ`)プッ



63 名前: 58 投稿日: 02/11/04 03:33
>59
即答,感謝。Cだけど手がかり得たり。
VBではらくちんにはできないのね。あとは,自力で。
やさしくなかったけど,サンクスです。


64 名前: デフォルトの名無しさん 投稿日: 02/11/04 03:38
>>63
VBでもヘッダ読む代わりにAPIビューアからコピペするだけじゃん。
APIビューアで使用するテキストファイルを単にプロジェクトに加えてもいいけど。


65 名前: デフォルトの名無しさん 投稿日: 02/11/04 04:20
>>43
比較してるんじゃなくてWM_MOUSELEAVEもキャッチしない
ウインドウプロ-シジャが痛いなぁと思ったわけっす
と思っていたらTrackMouseEvent()ってWin98SE以降
なんすね
しちれいい足しました


66 名前: デフォルトの名無しさん 投稿日: 02/11/04 08:13
>>62
初心者にやさしいとは、どこにも書いてない。
糞スレではない。
糞レスがあるだけだ。


67 名前: デフォルトの名無しさん 投稿日: 02/11/04 09:45
>>65
>と思っていたらTrackMouseEvent()ってWin98SE以降
そそ、WM_MOUSELEAVEメッセージじたいが新しいからね。
VB.NETならWM_MOUSELEAVEもサポート済み。


68 名前: デフォルトの名無しさん 投稿日: 02/11/04 11:02
>VB.NETならWM_MOUSELEAVEもサポート済み。
え〜そうなんだ。いいなぁ。


69 名前: ◆kB.Rp6wEqA 投稿日: 02/11/04 15:12
前にこの前スレあたりで
Inetコントロールを使ってExecuteした際に
漢字が文字化けしてしまうと、いう質問をしたものです。
VB6SP5 WindowsXPです。

また同じような話題で疑問が解けません・・・。

Dim TempStr as String
If State = 12 Then



70 名前: ◆kB.Rp6wEqA 投稿日: 02/11/04 15:18
あー ↑のコード無しにして下さい。

InetコントロールのStateChangeイベントで
Stateが12になった時にGetChunkしてデータを取得しますよね。
で、前の質問でその際に icStringでなく、icByteArrayを使って、
バイト配列を結合してやれば漢字が文字化けしないとわかりました。
んで、そこまでは確かにOKなのですが、
どこまで取得していいのか分かりません。
あー 意味不明ですね・・・
icStringで取得していた時には文字列型なので
もうデータが無い、つまり最後まで取得できた場合は
取得したデータの中身が無いので、それで判断してループを抜けてやればOKでしたが
icByteArrayで取得しているとバイト配列なので
その中身が無いかどうかをどう調べればいいのかわかりません。
if CStr(TempStr) = "" then とかで判定しようとしてみたのですが、全然ダメでした。
どうやって、今GetChunkしたデータが空でもうこの先のデータがないと判断できますか?


71 名前: ◆kB.Rp6wEqA 投稿日: 02/11/04 15:25
ageわすれ 


72 名前: PC教室で 投稿日: 02/11/04 15:41
オリジナルのプログラミングの宿題が出ています。

身長、体重の偏差値を出すプログラミングを考えています。
VB暦半年ぐらいですが、可能ですか?


73 名前: デフォルトの名無しさん 投稿日: 02/11/04 15:49
>>72
http://tokyo.cool.ne.jp/kanain/APIHTM/Hensa.htm

ここ見れば一発


74 名前: デフォルトの名無しさん 投稿日: 02/11/04 15:51
>>72
お前には不可能。


75 名前: デフォルトの名無しさん 投稿日: 02/11/04 16:48
53 名前:PC教室で :02/11/04 15:44
     ~~~~~~~~~      ~~~~~~
オリジナルのプログラミングの宿題が出ています。

身長、体重の偏差値を出すプログラミングを考えています。
VB暦半年ぐらいですが、可能ですか?



54 名前:デフォルトの名無しさん :02/11/04 15:46
>VB暦半年ぐらいですが、可能ですか?
はっきり言って意味わかんないです。


55 名前:デフォルトの名無しさん :02/11/04 15:47
>53
なんでここで聞くの?
VBの板あるやろ


56 名前:PC教室で :02/11/04 16:29
     ~~~~~~~~~      ~~~~~
>55
VBの板なんかねーよ。氏ね

で、
>>72__15:41
ワープしまくりか?


76 名前: デフォルトの名無しさん 投稿日: 02/11/04 16:52
>>73
こんな奴に教えるな。


77 名前: 72 投稿日: 02/11/04 17:52
おまえらじゃまだ


78 名前: もまずにパピコ 投稿日: 02/11/04 18:02
宿題自分でやらないならなんでPC教室なんか通ってんだ。


79 名前: デフォルトの名無しさん 投稿日: 02/11/04 18:04
>>78

最近の学校やPC教室では、他人のリソースで問題を解決するアプローチを
推奨しているようです。(w




80 名前: デフォルトの名無しさん 投稿日: 02/11/04 19:08
>79
そ、そうなのか?
…って本気で信じるところだったじゃねーかゴルァ!!






……………ネタダヨネ?


81 名前: デフォルトの名無しさん 投稿日: 02/11/04 19:21
>>80

ネタというより、皮肉。反面教師とご理解ください。


指導者が、「わからないところはインターネットで調べてください」(検索エンジン等を利用した
情報収集の意味)と言ったのを、カン違いしたDQN学生が教えてクンと化す罠・・・。

ネチケットも指導して欲しい。


82 名前: デフォルトの名無しさん 投稿日: 02/11/04 19:39
質問ですVb66

改行を含むテキストがある。
その中から、1行だけを抜きたい。
取得したいという「抜きたい」ではなく、消してしまいたいという「抜きたい」だ。
abc
def
ghi
とあったら、2行目を消して
abc
ghi
とするような事。
こういう風にひとつとかなら簡単なんだが
これが4行めと28行目と71行目と121行目と143行目と187行目を抜きたい!
ってなったときに何か難しくてできねーんです。
こういう処理を一般化する方法無いでしょうか?
やり方教えてくださいでつ・・・。


83 名前: デフォルトの名無しさん 投稿日: 02/11/04 19:41
MSFグリッドのヘッダー部のみ文字列をセンター寄せしたいのですが、
ヘルプに載っているようにMSFGrid01.ColAlignmentHeaderってのを入力してもエラーが出ます。
これはどうやって使うものでしょうか。


84 名前: デフォルトの名無しさん 投稿日: 02/11/04 19:44
>>82
後ろから抜いたら? (´ー`)


85 名前: デフォルトの名無しさん 投稿日: 02/11/04 19:55
>>82

ファイルに対して直接どうこうしようとするのは、たぶんドツボに
ハマルと思うので、

(1) 配列
(2) コレクション
(3) RDB

のどれかで処理してみては?

# 最善解かどうか、わからないけれど・・・。


86 名前: デフォルトの名無しさん 投稿日: 02/11/04 19:57
>>85
listはいいやねぇ。


87 名前: デフォルトの名無しさん 投稿日: 02/11/04 19:57
>>82
一行ずつカウンタ回しながら該当行を改行コードごと消すだけじゃないの?
1行だけの時に対して何が難しくなるの?


88 名前: ワン 投稿日: 02/11/04 19:59
>>85
そーだな。メモリーが有り余ってるなら配列に
全部ぶちこんじまうのが一番らくだな。



89 名前: デフォルトの名無しさん 投稿日: 02/11/04 20:01
>>82
何で一つだと簡単で、複数だと難しいの?


90 名前: デフォルトの名無しさん 投稿日: 02/11/04 20:02
>>89
確かに。最悪でもその関数を複数回呼べば良いだけで。


91 名前: デフォルトの名無しさん 投稿日: 02/11/04 20:32
>>89

要件の汎化(抽象化)ができていないものと思われ。


92 名前: デフォルトの名無しさん 投稿日: 02/11/04 21:18
VB初めて5年ほど。
といってもブランクありまくったり、とろくさい手法ばかりでやってきたおかげで
ちぃとも上達しませんでした。
が、ここ半年でずいぶんと理解が深まりました。
長年の謎だった「.hwnd」とか、WinAPIもMSDNみて自分で使えるようになったし、
(今まではサンプルからコピペしてた)
hwndがらみでWindows自体の仕組みも少し理解が深まりました。
え〜と、ようするに

ヽ(´ー`)ノ ワーイ。


93 名前: デフォルトの名無しさん 投稿日: 02/11/04 21:19
>>92

で?


94 名前: デフォルトの名無しさん 投稿日: 02/11/04 21:32
ファイルを読み込んで、
そのファイルの内容を小文字に変換してから
そのファイルを読み込むプログラムを作成したのですが
FileName = "index.dat"
Open FileName For Append As #1
Data1 = StrConv(InputB(LOF(1), 1), vbUnicode)
Komoji1 = LCase()
Print #1, Komoji1;

Close #1
これだと「ファイルモードが不正です。」と出てしまいます。
どうすればよいでしょうか?


95 名前: 94 投稿日: 02/11/04 21:33
すみません。
FileName = "index.dat"
Open FileName For Append As #1
Data1 = StrConv(InputB(LOF(1), 1), vbUnicode)
Komoji1 = LCase(Data1)
Print #1, Komoji1;

Close #1
でした。



96 名前: デフォルトの名無しさん 投稿日: 02/11/04 21:34
SQL="select * from temp where Feild1='" & Str1 & "'"
Feild1はAccessのテキスト型で、
文字列変数Str1に'が含まれているとSQL文の実行にエラーが出るのですがどうすればいいのでしょうか。
フィールドに格納したい文に'が含まれていることがあります。


97 名前: デフォルトの名無しさん 投稿日: 02/11/04 21:39
>>96

InStr関数で、変数Str1に'が含まれている場合と含まれていない場合を
分岐する。
含まれている場合は、
シングルクォート1つ → 2つに置換すれば、メタ文字扱いではなくなる。

以上。


98 名前: 96 投稿日: 02/11/04 21:42
>>97
シングルクォート2つ重ねる技を与えてくださりありがとうございました。


99 名前: デフォルトの名無しさん 投稿日: 02/11/04 21:49
>>92
一度VBででもいいからウィンドウシステムってのを自分で書いてみな。
使える使えないを考えずに(間違いなく使えないがw)、
汎用的なものを自分なりに考えてとりあえず動くものを作ってみる。
できるだけ細かく、特に汎用的に作ってみるという所が大切。
こんなこともあんなこともサポートできるようにって考えて作ってみる。
すると既存のものがなぜそういう仕様になっているのか
それによりどこに問題が発生するのかとかががよーくわかるよ。
自分が理解できないことや、表面だけみてクソの一言ですますDQNが
かわいらしく思ってくるしね。

ああ、年取ってくると偉そうなこと言いたくなるな・・・


100 名前: デフォルトの名無しさん 投稿日: 02/11/04 21:52
>>99

> 汎用的なものを

再利用性ゼロのハードコーディングを一生卒業できない椰子もいてますが。(w
(茶々スマソ)


101 名前: デフォルトの名無しさん 投稿日: 02/11/04 21:53
>>94
追加書き込みなのにInputBで読み込もうとしてるからでは?
読み込みはInputモードで。


102 名前: 92 投稿日: 02/11/04 21:56
>>99
よく分からないのですが、ウィンドウや、ボタンやテキストやなにやらを
全部自分で描画するシステムってことでしょうか?
ActiveXコントロールみたいな。
ゲームのインターフェースを作るってな感じですかね?


103 名前: デフォルトの名無しさん 投稿日: 02/11/04 21:57
>>102
ウインドウシステムだから外枠だけだろう。

とか言ってみる。


104 名前: デフォルトの名無しさん 投稿日: 02/11/04 22:09
99が言ってるのは
http://www.vector.co.jp/magazine/softnews/020420/n0204201.html
こういう物だと予想。


105 名前: デフォルトの名無しさん 投稿日: 02/11/04 22:10
>>104
絶対違うと予想。

ただのspyじゃん。


106 名前: デフォルトの名無しさん 投稿日: 02/11/04 22:15
>>104
全然違うと思われ。

汎用的なもの。
不特定多数のプログラムから呼び出されることを考慮したdllとか、
エミュレータもどんなROMでも実行できるという面で汎用的だしな。





107 名前: デフォルトの名無しさん 投稿日: 02/11/04 22:58
DBGLIDのデータソースをクリアする方法を教えて下さい。
(表示されてるデータをクリアしたいです)
よろしくお願いします。




108 名前: デフォルトの名無しさん 投稿日: 02/11/05 04:03
>>95
AppendモードでOpenしたファイルから読み取ろうとしてるから?
Binaryとかで開けばできるけど。

読み取るファイルと書き込むファイルを分けたほうが簡単。
小文字のファイルが完成したら、元ファイルを削除。
小文字のファイルを元のファイル名にリネーム。


109 名前: デフォルトの名無しさん 投稿日: 02/11/05 06:01
>>107
ソースを外せばいいんじゃん?
SQLなりテーブルなりをソースにしてんでしょ?


110 名前: デフォルトの名無しさん 投稿日: 02/11/05 15:19
ListViewで 選択されている行が 何行目か知るには どうしたらいいでしょうか?



111 名前: デフォルトの名無しさん 投稿日: 02/11/05 16:05
ListView.SelectedItem.Index


112 名前: デフォルトの名無しさん 投稿日: 02/11/05 16:17
>>111
どうも。
逆に何行目を選択させるには どうしたらいいんでしょうか?


113 名前: デフォルトの名無しさん 投稿日: 02/11/05 17:09
ListViewを抜けると、選択されているのが消えてしまうんですが、
選択表示のままにしとくには、どうしたらいいんでしょうか?



114 名前: デフォルトの名無しさん 投稿日: 02/11/05 17:38
みなさん、こんにちは

VB6.0からLinux上のPostgreSQLのデータを取得するには
どうしたらよいでしょうか?

・・・そういうことは、出来るんでしょうか?


115 名前: デフォルトの名無しさん 投稿日: 02/11/05 17:41
>>114
できる


116 名前: デフォルトの名無しさん 投稿日: 02/11/05 18:14
>>114

[VB製プログラム]           [ PostgreSQL ]
   ↓↑                 ↓↑
[  Windows  ]←ネットワーク→[   Linux   ]

こういうイメージだな。


117 名前: デフォルトの名無しさん 投稿日: 02/11/05 18:22
>>112
'iは選択したい行列目
ListView1.ListItems(i).Selected = True
>>113
ListviewコントロールのHideSelectionプロパティが
TRUEなら、フォーカスを失った後も選択されている。
失ったように見えても、フォーカスを戻せば表示は復帰する。
選択は解除されていない訳だから。

ListViewは確かに他のコントロールに比べてMSDNのドキュメントが弱いね。
私も、最初はよくわからなかった。

MSDN「リスト ビュー (ListView) コントロールの使い方」
SampleのDatatree(TreeViewとListView)をみれば、理解が深まるよ。


118 名前: デフォルトの名無しさん 投稿日: 02/11/05 19:37
ボタンを押したときに、labelやpictureboxなどに書かれた文字に
フェード効果を加えたいのですが、どうやってやったらいいのでしょうか?


119 名前: デフォルトの名無しさん 投稿日: 02/11/05 19:53
>>118
TimerコントロールでJOJOに色薄くしたらどうかね。


120 名前: デフォルトの名無しさん 投稿日: 02/11/05 20:04
>>119
必ずしもTimerコントロールは必要ないと思う。
DoEvent や Sleep 関数で適宜ウェイトを入れれば、滑らかな動作になるのでは?


121 名前: 118 投稿日: 02/11/05 20:44
>色薄くしたらどうかね
RGBの値じゃなくて"明るさ"ってことですよね。明るさを変える方法なんてあるんですか?


122 名前: デフォルトの名無しさん 投稿日: 02/11/05 21:29
>>121
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Label1_Click()
  Dim n As Long
  For n = 0 To 255 Step 16
    Label1.BackColor = n * 256 * 256 + n * 256 + n
    DoEvents
    Call Sleep(100)
  Next
End Sub


123 名前: デフォルトの名無しさん 投稿日: 02/11/05 22:03
こんばんわ。VB6で宛名ラベルを印刷するのにデータレポートを検討しています。
(友人のライブなどお知らせするために使う予定です)

Accessのレポートは使えるのですが、ぱっと見たところ列の指定方法がわからず
困っています。単純に印刷すると一列で改ページすると思うのですが何か方法が
あれば教えて下さい。よろしくお願いします。





124 名前: 118 投稿日: 02/11/05 22:09
>>122
ありがとうございます


125 名前: デフォルトの名無しさん 投稿日: 02/11/05 23:01
>>123
Accessにはレポートのウィザードではがきサイズにするヤシがあったと思うが
激しくスレ(板)違いなのでAccess採用するならビジネスソフト板へ。
君の技能にもよると思うが、Excelに書き出すのがもっとも幅決め簡単じゃないかな。


126 名前: デフォルトの名無しさん 投稿日: 02/11/05 23:11
>>124

レスありがと。幅決めが必要なのですか?う〜ん、困ったな。
VB採用は決定なんですよ<ディベッロパーツールも買えないし。

どうもその辺がピンと来ないので教えて頂けると嬉しいのすが・・・
よろしくお願いします!ちなみにPrinterオブジェクトはちょっと
厳しいものを感じております(TT。



127 名前: デフォルトの名無しさん 投稿日: 02/11/05 23:40
寝ます。



128 名前: デフォルトの名無しさん 投稿日: 02/11/06 00:34
>>122
>Label1.BackColor = n * 256 * 256 + n * 256 + n
RGB関数でよかろうに。nがLongなのが味噌だな。


129 名前: デフォルトの名無しさん 投稿日: 02/11/06 01:09
>126
どう考えても決定を覆した方が楽な気がするぞ。
VBでやると余計面倒だって事を説得しる。

VBだと配置から出力まで全部自分で設計しなくちゃいけないし、
印刷に少し癖があってノウハウがないときついし、
それなりのもん作るならサードパーティのコントロールがいるしと、
色々面倒なのよ。その辺りを強調して何とか踏ん張れ。


130 名前: デフォルトの名無しさん 投稿日: 02/11/06 06:41
んー。クリスタルレポート買え。


131 名前: デフォルトの名無しさん 投稿日: 02/11/06 09:21
>>117
ありがとうございます。

フォーカスがなくなっても、選択された状態になりました。
が、選択色が、違う色になってしまうので、この色を変えるには
どうしたらいいのか教えてください。


132 名前: デフォルトの名無しさん 投稿日: 02/11/06 09:24
宛名印刷くらいPrinterオブジェクト使え


133 名前: デフォルトの名無しさん 投稿日: 02/11/06 11:13
VB+ADOで、OracleからEXCELシートへテーブルを落としたいのですが、
項目名を含めて落とすにはどうしたらいいのでしょうか。
お願いします。




134 名前: デフォルトの名無しさん 投稿日: 02/11/06 12:03
DRIVEリストボックスに表示された、ネットワークドライブを選択すると、
そのドライブの元のPATHを取得する、なんてことは可能でしょうか。

例えば、Xドライブに「\\server\java\」をマウントしていたとして、
DRIVEリストボックスからX:を選択することで、別途用意したディレクトリリストボックスに
「\\server\java\」と表示したいのですが。

APIかなんか使うといけますか?(APIの知識が薄くてアレです...)


135 名前: 134 投稿日: 02/11/06 12:13
あああ、すいません。
最終的にFileListBoxを選択し、別途用意したTextBoxに
「\\server\java\aaa.java」みたいに表示したい、ってのを書きそびれました。


136 名前: 134 投稿日: 02/11/06 12:35
>>133
ADOのFieldsコレクションでいけませんか?
Helpに載ってると思います。


137 名前: デフォルトの名無しさん 投稿日: 02/11/06 13:19
Formをリサイズしたあと、マウスをUPした時に 処理をいれたいんですが
どのようにすればいいのでしょうか?


138 名前: デフォルトの名無しさん 投稿日: 02/11/06 13:35
>>137
???
resizeイベントじゃだめなの?


139 名前: デフォルトの名無しさん 投稿日: 02/11/06 13:39
>>137
フォームのサイズ(Width,Height)をどこかに格納しておいて、
マウスをUPするごとにフォームのサイズをチェックしたら?


140 名前: マジレス 投稿日: 02/11/06 14:27
>>137
「画面のプロパティ」の「効果」の
「ドラッグ中にウインドウの内容を表示する」のチェックをはずす。


141 名前: 72 投稿日: 02/11/06 14:45
>>139
あんた天才


142 名前: 137 投稿日: 02/11/06 14:47
画面のサイズが変更された時、画面の表示しなおしの処理を入れたいんですが、
それが重いので、サイズ変更してマウスをはなしたときに 一発 処理を入れて
表示するようにさせたいんです。

とりあえず、サイズの変更だけやっておいて、表示しなおしは
PAINTのイベントでやってなんとか うまくいきました。


143 名前: デフォルトの名無しさん 投稿日: 02/11/06 14:49
>>139
マウスをUPするイベントが 入ってこないので 失格。


144 名前: デフォルトの名無しさん 投稿日: 02/11/06 15:03
>>142
フォームをサブクラス化してWM_EXITSIZEMOVEメッセージを
拾えばリサイズが終わったっていうイベントが取れるよ。


145 名前: デフォルトの名無しさん 投稿日: 02/11/06 21:13
>>144
素人にはお勧めできない


146 名前: デフォルトの名無しさん 投稿日: 02/11/06 21:39
データレポートについて

空のデザインを作っておいて、印刷時に設定(マスタとか)を見て
レポートサイズ、印刷項目を作成したいのですが可能でしょうか?

例えば、フォーマット時のイベントでこう書けとか助言をお願い
いたします(__)。まず項目を作成するコードがわかりません(TT。






147 名前: デフォルトの名無しさん 投稿日: 02/11/06 22:16
>146
とりあえずサンプルプログラムを探せ。


148 名前: デフォルトの名無しさん 投稿日: 02/11/06 22:17
設定されたファイルがあるかチェックしようと、Dir関数を使おうとしたものの、

  s = "\\NetworkPath\"
  If Dir(s) <> "" then

と、ネットワークパス(\\〜)を指定すると、「""」じゃなく、普通にエラーが帰ってきます。
これをErrorトラップ以外でチェックする方法はないのでしょうか。

おながいします。


149 名前: デフォルトの名無しさん 投稿日: 02/11/06 22:43
lmhosts or hostsにIPを指定しておくか、Win98以降なら\\IP\〜で良いような
記憶があいます。



150 名前: デフォルトの名無しさん 投稿日: 02/11/06 22:46
>>146>>147

探して見たのですがそのようなサンプルにたどり着けませんでした。
誰かヒントあればお願い致します。うぇ〜ん



151 名前: 148 投稿日: 02/11/06 22:52
>>149
Win98(会社)で作り、Win2K(家)で確認ですが駄目です。
家では当然ネットワークがありませんので、エラーが出るワケです。

lmHostsにわざわざ書き込まないと無理なんすか…ダラーン…


152 名前: デフォルトの名無しさん 投稿日: 02/11/06 22:53
>>151
API使ったら?


153 名前: 148 投稿日: 02/11/06 23:03
>>152
く、詳しく教えてつかぁさい!


154 名前: デフォルトの名無しさん 投稿日: 02/11/06 23:06
>>153
こんな感じじゃない
http://plaza5.mbn.or.jp/~heropa/vb122.htm#PathFileExists


155 名前: 148 投稿日: 02/11/06 23:12
>>154
どうもです。
よく見てみます。


156 名前: デフォルトの名無しさん 投稿日: 02/11/06 23:39
Vbで帳票は厳しいな。


157 名前: デフォルトの名無しさん 投稿日: 02/11/07 00:05
is予約語(文字列)=True,False
みたいに、ある文字列がJavaScriptなどの予約語かどうかを判別する関数はあるのでしょうか?


158 名前: デフォルトの名無しさん 投稿日: 02/11/07 00:30
>>157
少なくともJavaScriptの予約語を判別する関数なんてあるめーよ。
VBの予約語を判別する関数もない。予約語の一覧もない。


159 名前: 157 投稿日: 02/11/07 00:35
そうですか・・・。
あと音の出ないメッセージボックスはどうやってつくるのでしょうか?
ピコンピコンうるさいです。


160 名前: 157 投稿日: 02/11/07 00:54
あきらめます。


161 名前: デフォルトの名無しさん 投稿日: 02/11/07 01:13
20分弱の間に何があったんだ?


162 名前: 157 投稿日: 02/11/07 01:27
自分で音の出ないメッセージボックスをつくるから別にいいんです。


163 名前: デフォルトの名無しさん 投稿日: 02/11/07 09:54
msgbox("なんとか")
って 音でるんだっけ?


164 名前: デフォルトの名無しさん 投稿日: 02/11/07 10:05
ファイルをドラッグアンドドロップして、OLE_DragDropを発生させているのですが、
そこで
Data.Files.Count
とやっています。
特に問題はないのですが、
エクスプローラーから「マイコンピューター」や、「マイネットワーク」辺りの
ファイルじゃない物をドラッグアンドドロップすると
「エラー461 データの形式が一致しません」
となってしまいます。
どうすればよいのでしょうか?


165 名前: デフォルトの名無しさん 投稿日: 02/11/07 10:11
>>164
On Error Resume Next これ最強。すべてのプロシージャの最初に入れとくべし。


166 名前: デフォルトの名無しさん 投稿日: 02/11/07 10:13
>>164
ぐぐれが一発で出てくると思うが
' ドロップされたデータがファイルであるかを判断する
If Data.GetFormat(vbCFFiles) Then



167 名前: デフォルトの名無しさん 投稿日: 02/11/07 10:42
>>165
それはちと怖い。
>>166
できました!ありがとうございました。


168 名前: デフォルトの名無しさん 投稿日: 02/11/07 13:53
VB.NETで
textboxの値をlong型に取り込みたいのですがうまく取得できません

dim i as integer
i = val(trim(TextBox1.text))

てなカンジで i に入力したテキストボックスの値を代入したいのですが
上記の書き方だとエラーが出てしまいます
VB6とかでやっていたのと同じように書いているのですが

Microsoft.VisualBasicとか前置きしてもダメです

どういう記述をしたら良いのかご存知の方がいましたら教えて頂けないでしょうか?


169 名前: デフォルトの名無しさん 投稿日: 02/11/07 13:56
>>168
>textboxの値をlong型に取り込みたいのですがうまく取得できません
         ^^^^^^
>dim i as integer
      ^^^^^^

ネタか?


170 名前: 168 投稿日: 02/11/07 13:58
まちがえますた。
別にintegerでもlongでもどちらでも失敗してるんでどちらでもいいんですが。

dim i as long
i = val(trim(TextBox1.text))

因みにstring型への代入はできるんですが、
これにぶっこんでからの代入もうまくできません。


171 名前: デフォルトの名無しさん 投稿日: 02/11/07 14:02
>168
マジレスすると、それだとDouble型が返るからだ。
オーバーロードぐらい覚えておけ。
つーか、タスクウィンドウ見れば一発だろーが。


172 名前: デフォルトの名無しさん 投稿日: 02/11/07 14:03
つーか、スレ違い


173 名前: デフォルトの名無しさん 投稿日: 02/11/07 17:37
Dirを使うと、そのモジュールが終了するまでエクスプローラーが操作不能になってしまうので
回避したいのですがどうしたらできますか?


174 名前: デフォルトの名無しさん 投稿日: 02/11/07 18:35
>>173
APIのFindFirstFileとかに変える。


175 名前: デフォルトの名無しさん 投稿日: 02/11/07 19:35
>>173
というか、どういうもの組んだらそうなるのか知りたい。


176 名前: デフォルトの名無しさん 投稿日: 02/11/07 20:00
>>173
スレッドとかどうだ?

>>175
同意。



177 名前: 投稿日: 02/11/07 20:00
>>163 出るかも


178 名前: デフォルトの名無しさん 投稿日: 02/11/07 20:15
vbInformationとかvbCriticalとかによって、Windowsのサウンドの
メッセージ(警告)とかメッセージ(通知)とかのサウンドがなるよ。


179 名前: デフォルトの名無しさん 投稿日: 02/11/07 20:20
>>173
つーかエクスプローラーが操作不能になるという意味がわからん。


180 名前: デフォルトの名無しさん 投稿日: 02/11/07 20:21
>>>173
OS入れなおせ


181 名前: デフォルトの名無しさん 投稿日: 02/11/07 20:43
VBで、一つのクラスから生成した複数のオブジェクトを
そのオブジェクトの名前で検索して取り出す事ってできますか?
要はオブジェクトのIndexを作りたいんですが……


182 名前: デフォルトの名無しさん 投稿日: 02/11/07 20:44
>>181
コレクションを使えばできるのでは?(未確認)


183 名前: デフォルトの名無しさん 投稿日: 02/11/07 20:44
>>181
オブジェクトの名前ってなんだよ?
どこから取り出すんだ?
オブジェクトのIndexってのも意味不明。
なにがしたいんだ?


184 名前: デフォルトの名無しさん 投稿日: 02/11/07 20:49
>>183

その発想を突き詰めていけば参照とかポインタに行き着く。
勉強する良い機会だ。温かく見守ってやろうや。



185 名前: 173 投稿日: 02/11/07 20:49
ファイルをエクスプローラーからドラッグアンドドロップしてコピーするとかすると、
コピー中エクスプローラーが操作不能になりませんか?
やっぱAPI使うしかないですかね。
APIだとFindCloseすれば大丈夫ですた。


186 名前: デフォルトの名無しさん 投稿日: 02/11/07 20:51
>>185
いつの時代のWIndowsですか・・・?
VB2.0とかなら確かにそんなことも起こっただろうけど。


187 名前: デフォルトの名無しさん 投稿日: 02/11/07 21:11
>>184
クラスとか書いてるんだから参照は知ってんじゃないのか?
発想を突き詰めるまでもなく。


188 名前: デフォルトの名無しさん 投稿日: 02/11/07 21:12
>>187
じゃあ出来ないとおかしいわけで。


189 名前: 173 投稿日: 02/11/07 21:13
いや、普通に起きますって。
コピーって、エクスプローラからエクスプローラーってことじゃないすよ。
エクスプローラーから自作のソフトへドラッグアンドドロップして、
自作ソフト内でコピー処理をするんですよ。


190 名前: デフォルトの名無しさん 投稿日: 02/11/07 21:19
>>188
そんな事はない。知っていることと使いこなすことにはレベルの差がある。
クラスとか知っていてもデザインパターンにたどり着くまでには時間がかかるように。


191 名前: デフォルトの名無しさん 投稿日: 02/11/07 21:26
>>189
シェルAPIを使えばどうかな?
しらんけど。
http://www.ab.wakwak.com/~greenspace/dev-api/theapi/reference/shfo.html


192 名前: デフォルトの名無しさん 投稿日: 02/11/07 21:27
こういうことじゃねーの?
Dim o1 As clsTest
Dim o2 As clsTest

Set o1 = New clsTest
Set o2 = New clsTest

Call o1.PrintName
Call o2.PrintName

希望する出力
o1
o2


193 名前: デフォルトの名無しさん 投稿日: 02/11/07 22:42
>>173
他のパソコンで試してみ。


194 名前: デフォルトの名無しさん 投稿日: 02/11/07 23:17
VBの参考サイトでお勧め教えて下さい。色々な問題がカテゴリで
別れいてサンプルソースなんてあれば最高ですが・・・業者の
サイトでも結構です(良いとこならお金出します)。




195 名前: デフォルトの名無しさん 投稿日: 02/11/07 23:28
vbvbvb.com


196 名前: デフォルトの名無しさん 投稿日: 02/11/07 23:47
>>194
新山(へろぱ)
みーくんパパ
空耳工房


197 名前: デフォルトの名無しさん 投稿日: 02/11/07 23:54
194>>195>>196

ありがとう!ぐぐっても色々出てきて、どこが良いか困ってました。さっそく拝見(活用)させて
頂きます。今更VBなんですが、、、仕事ですんで。



198 名前: デフォルトの名無しさん 投稿日: 02/11/08 10:19
あるスレで楽勝で組めると書いてありました。
できる限り短いコードで書けますか?

問題:

WINDOWS上でDirectX使ってフルスクリーンモードにしたのちに、
適当なキャラクタをチピキャラをてくてく歩いくアニメを表示する。



199 名前: デフォルトの名無しさん 投稿日: 02/11/08 10:39
>>198
このスレでは無理です。


200 名前: デフォルトの名無しさん 投稿日: 02/11/08 10:46
今更な質問で恐縮ですが、「Nothing」を使うべき時ってどんな時なんでしょう?
どこからもオブジェクトが参照されなくなった時点で勝手に解放されるので、
Nothingは要らないって聞いて、自分のPGを見直してみたのですが…。

例えば私はDBを扱うPGで、プロシージャを抜ける時に、
使用したRecordsetを一々解放しています。
DBも必要なくなり次第解放しています。
が、For Each obj In xxx文で使用するオブジェクトは解放していません。
また、FieldオブジェクトやQueryDefなんかも解放していません。
今までOpenやCreateした時だけ消せばいいと思っていたのですが…。

あれこれ調べたのですが、考えれば考えるほど悩みのツボに入ってしまってます。
どうするのが正しいんでしょうか?


201 名前: デフォルトの名無しさん 投稿日: 02/11/08 10:50
>200 暗黙の参照がなされていて循環参照になってしまう場合。


202 名前: デフォルトの名無しさん 投稿日: 02/11/08 11:01
>>201
暗黙の参照ってなに?


203 名前: 201 投稿日: 02/11/08 11:31
単に、「循環参照になってしまった場合」でよかったか。

暗黙の参照はプログラマーがNewしてないのに使えるオブジェクトの事。
AppとかFormsとかControlsとかかな。
TextBoxDecoratorとか作った時にはForm_UnloadでNothingしないとね。


204 名前: デフォルトの名無しさん 投稿日: 02/11/08 12:27
>>200
さっさと解放したいときとか。
関数内のFor Eachだけで使う変数はFor Eachがすんだらすぐ要らないだろうけど
Nothingしなけりゃ関数が終わるまでオブジェクトが生きてる。
関数内ならまだマシだけど、これがグローバル変数だった場合
アプリが終了するまでオブジェクトが解放されないわけで。
それで良いのか悪いのはかは場合によるけど。


205 名前: 200 投稿日: 02/11/08 12:49
ということはグローバルじゃない限り、
特別解放に気を使わなくても大丈夫なのかな?
Nothingしないと、リソース減ったままで
解放されなくなると思ってたんですけど、違うみたいですね。
心配ならとりあえずNothingしとけって事でしょうか。

なんだか判ったような判らないような…
とりあえず ありがとうございました〜。


206 名前: 201 投稿日: 02/11/08 12:57
>205
基本的には変数のスコープが無くなれば自動的にNothingされる。
Class_Terminateで遊んでみれば分かるよ。

例えばButton1_Clickとかで、MousePointerをvbHourglassにするオブジェクトを
生成すると、関数を抜けると自動的にClass_Terminateが実行されて
MousePointerがNormalに戻るとか。


207 名前: デフォルトの名無しさん 投稿日: 02/11/08 12:59
>205
VBに限らず、「自動で云々」に頼った作りは極力避けるのが基本だ。
自分で確保した領域は自分で明示的に解放するほうが絶対にいい。
OpenしたらClose、SetしたらNothingって決めとけ。




208 名前: 201 投稿日: 02/11/08 13:04
>>207 AutoPointerの立場は?


209 名前: 204 投稿日: 02/11/08 13:22
>>205
>>201じゃないけど、循環参照には気をつけてな。
要するにクラスAのインスタンスaがクラスBのインスタンスbを参照して、かつ
bがaを参照している場合。明示的にNothingにして循環を断ち切らないと
(アプリを終了しないと)どこからも参照されない状態にならないから。


210 名前: 207 投稿日: 02/11/08 13:30
>208
とりあえずそういったものは置いといて、あくまで「基本」って事で。
最初から便利なものに頼りがちなVBだからこそこういった部分は大事にしたいな、と。


211 名前: デフォルトの名無しさん 投稿日: 02/11/08 16:02
>>210
うっせーバカ。



212 名前: 201 投稿日: 02/11/08 16:10
Set 211 = Nothing


213 名前: デフォルトの名無しさん 投稿日: 02/11/08 16:15
Nothingしたらすぐインスタンスは破棄されるの?



214 名前: デフォルトの名無しさん 投稿日: 02/11/08 16:48
>>213
インスタンスは二つ以上から参照される可能性があるので、Nothingしても他から参照されていれば破棄されないし、
一つだけから参照されているならNothingした時点で破棄される。


215 名前: 201 投稿日: 02/11/08 16:49
>213
一応Class_Terminateはすぐに実行されるようだけど、
実際にメモリーから破棄されてるかどうかまでは分からない。

[Form1]
Private Sub Command1_Click()
  Dim o As Class1
  Debug.Print "AAAA"
  Set o = New Class1
  Debug.Print "BBBB"
  Set o = Nothing
Debug.Print "CCCC"
End Sub
[Class1]
Private Sub Class_Initialize()
  Debug.Print "Class_Initialize"
End Sub
Private Sub Class_Terminate()
  Debug.Print "Class_Terminate"
End Sub
[結果]
AAAA
Class_Initialize
BBBB
Class_Terminate
CCCC


216 名前: デフォルトの名無しさん 投稿日: 02/11/08 16:58
某所によると

第2の理由は、インスタンスを消滅させるメカニズムが変化したことにある。
VB 6では、あるインスタンスへの参照がなくなると、その時点でインスタンスは消滅させられる。
しかし、VB.NETでは、.NET Frameworkのほかの言語と同様に、不要となったインスタンスはガベージ・コレクタと呼ばれる自動ゴミ掃除機能が回収する。
そのため、VB.NETではデストラクタが実行されるタイミングはガベージ・コレクタ次第であり、プログラマーからは予測できない。

とあるのな。


217 名前: デフォルトの名無しさん 投稿日: 02/11/08 17:27
>>215
COMとかあんまり詳しくないんで、つっこみ所があると思うけど、
Nothingするって事はCOM的に言えばRelease()を呼び出すこと。
(ちなみに参照することはCOM的に言えばAddRef()を呼び出すこと)
オブジェクトはAddRef()したら参照カウンタを+1してRelease()したら-1して
参照カウンタが0になったら自分で自分自身を削除しなければいけないことになっている。
だからVB6では参照がなくなった時点でメモリーも解放されると思うよ。
というか巨大な配列を持ったクラスで試したら解放されているのがわかるけどね。


218 名前: デフォルトの名無しさん 投稿日: 02/11/08 17:31
でも、破棄に関しては、いつ破棄されてもいいようなプログラムにしといたほうがいいね。
だって、他の言語はいつ破棄されるかわからないんだよね。VB6.0で変な癖つけたくないな。


219 名前: デフォルトの名無しさん 投稿日: 02/11/08 17:44
>>218
いつ破棄されてもいいようにするのは当たり前なんだがVBで変な癖つけるってどんな癖だ?
他の言語に比べて注意すべき違いがあったか?


220 名前: デフォルトの名無しさん 投稿日: 02/11/08 17:46
>>219
NothingしたらすぐにClass_Terminate() が実行されるという前提でプログラムすること


221 名前: デフォルトの名無しさん 投稿日: 02/11/08 17:58
>>220
VBをちゃんと使えている人はNothingをしてもすぐにClass_Terminate()が
実行されないのを知っているのでVBで変な癖がつくことはありませんけど?


222 名前: デフォルトの名無しさん 投稿日: 02/11/08 18:02
>>221
いや、VB6はNothingしたらすぐにClass_Terminate()が実行されるらしいです。


223 名前: デフォルトの名無しさん 投稿日: 02/11/08 18:07
>>222
間違いです。VB6ではどこからも参照されなくなったときにClass_Terminate()が実行されます。
知識不足のままVB6.0で変な癖つくとか言ってると笑われますよ。


224 名前: デフォルトの名無しさん 投稿日: 02/11/08 18:09
Recordset.Close しないで
Set Recordset = Nothing
するとどんな副作用があるの?





と煽ってみるテスト。


225 名前: デフォルトの名無しさん 投稿日: 02/11/08 18:23
>>224
これも中途半端な知識かつかなり想像だが、もしRecordsetがOpenされたまま
Nothingをされたとき(正確にはどこからも参照されなくなったとき)Closeを
実行しないような実装になっているのならOpenされたままになる。
Openされたままほったらかされるのが良くないのなら何かまずいことが起きるだろう。

もっとも普通の感覚を持っている人ならOpenされたまま解放されたら
Closeやそれと同等の終了処理をするだろうがそれは作り手にかかってる。

ADOやDAOでCloseしなくて解放しても大丈夫と仕様で決まっているのなら
大丈夫だろうが決まっているのかどうかは知らん。

ってこれは煽りにマジレスなのか? というよりどこが煽りなのかな?


226 名前: 投稿日: 02/11/08 18:31
え、副作用あるの?


227 名前: 投稿日: 02/11/08 18:32
>>224
HELPにNothingでCloseされますって書いてあったような…。


228 名前: デフォルトの名無しさん 投稿日: 02/11/08 18:36
MSFlexGridコントロールで
書き込んだ文字色を例えば「青」としても
文字の色を変えた行にカーソルを合わせると
文字色が「黒」になってしまいます。
文字の色を変えた行にカーソルを合わせても
「青」のままにできるのでしょうか?


229 名前: デフォルトの名無しさん 投稿日: 02/11/08 18:42
>>223
うーん。話がかみ合わないなー
他の言語では、どこからも参照されなくなった時点ですぐにClass_Terminate()が
実行されるわけではないってこと。
その点がVB6と違うっていってるんだけどな。
Nothingって書いてたのが誤解をうんだのかな。


230 名前: デフォルトの名無しさん 投稿日: 02/11/08 18:43
>>226
If 仕様で副作用がないと決まっている() = True Then
  If 実際にやって副作用がでていない() = True Then
    MsgBox "仕様通り副作用はない"
  Else
    MsgBox "実装のバグ(もしくは仕様のバグ)"
  End If
Else
  If 実際にやって副作用はでていない() = True Then
    MsgBox "この場合は大丈夫みたいだがやめたほうが良い"
  Else
    MsgBox "副作用がある。でも実装がバグっていると言ってはいけない"
  End If
End If


231 名前: デフォルトの名無しさん 投稿日: 02/11/08 18:48
でも話の流れはNothingだったんだよなー


232 名前: デフォルトの名無しさん 投稿日: 02/11/08 19:05
VBScript(ASP)で質問っ(マジレスください)

OpenTextFileを使ってcsv(カンマ区切り)ファイルを読み出して、カンマでsplitして配列としてデータをもつじゃんか。
んで、もし1データの中にカンマが存在したらそこもまた切られちゃうでしょ。
それを防ぎたいんだけど、どうしたらいいの?

(例

あいうえお,か,きくけこ,さしすせそ,たちつてと

誰かたすけてくださいっ


233 名前: デフォルトの名無しさん 投稿日: 02/11/08 19:16
Public Sub Main()
Dim str as Stirng
 str = "123"
 Call Test(str)
End Sub

っていう形でTestというプロシージャが呼び出される時、
Testというプロシージャの引数がByRef↓だとコンパイルエラーが出て、
Private Sub Test(ByRef arg As Integer)

逆にByVal↓だとコンパイルが通ります。
Private Sub Test(ByVal arg As Integer)

ByValの時でもコンパイルエラーにするようなオプションって無いでしょうか?


234 名前: デフォルトの名無しさん 投稿日: 02/11/08 19:32
>>232
ダブルコーテーションでくくるのはダメ?

"あいうえお","かきくけこ","さしすせそ","た,ち,つ,て,と"


235 名前: デフォルトの名無しさん 投稿日: 02/11/08 19:49
>>234ありがとう。

いや。ダブルコーテーションでかこんであることを想定してのことです。
ダブルコーテーションでくくった中をのぞいてんでSplitしたいんですけど、
簡単な方法ないですかねー???



236 名前: デフォルトの名無しさん 投稿日: 02/11/08 20:04
>>235
Write # ←→ Input # じゃなくてあくまで Split() で話をするなら、
分割後の最初と最後にごみが入るけど
デリミタを 「,」じゃなくて、「","」 にするのはどう?


237 名前: 201 投稿日: 02/11/08 20:09
>236
http://pc.2ch.net/test/read.cgi/prog/1033612037/515-


238 名前: デフォルトの名無しさん 投稿日: 02/11/08 20:19
>>236

いや。無事出来ました。
reg.Pattern = "(""([^""]|"""")*""|[^,]*),"
↑こんな感じのパターンマッチを作ってやってみたらうまく行ったよ。
皆さんさんきゅー!



239 名前: デフォルトの名無しさん 投稿日: 02/11/08 20:46
>>204
> 関数内のFor Eachだけで使う変数はFor Eachがすんだらすぐ要らないだろうけど
> Nothingしなけりゃ関数が終わるまでオブジェクトが生きてる。
ループを途中で抜けない限りはループ終了時に解放されるはずだが。

>>207
ならお前は可変長文字列も動的配列も常に明示的に解放しろ。

>>217
> オブジェクトはAddRef()したら参照カウンタを+1してRelease()したら-1して
> 参照カウンタが0になったら自分で自分自身を削除しなければいけないことになっている。
それは単なるガイドラインであって、そのように実装しないといけない
という決まりはない。


240 名前: デフォルトの名無しさん 投稿日: 02/11/08 21:06
37=32+4+1
みたいに数字を分解するのってどうやるのでしょうか?
設定の保存とかで使われてたりするアレです。


241 名前: 201 投稿日: 02/11/08 21:09
>239
本当だ、ビクーリしました。

For n = 1 To 10
  Debug.Print "n= " & n
Next
Debug.Print "n= " & n 'n = 11

For Each oTest In oTests
  Debug.Print oTest.nNumber
Next
Debug.Print oTest.nNumber 'オブジェクト変数またはWithブロック変数が宣言されていません。


242 名前: 207 投稿日: 02/11/08 21:54
>239
そんな噛み付かなくてもいいじゃんかよー。
SetしたらNothingってのを基本にするのはそんなに悪か?
実際オブジェクトの解放し忘れでプロセス残ってた例も多々ある訳だし。


243 名前: デフォルトの名無しさん 投稿日: 02/11/08 22:29
>>240
なにそれ。


244 名前: デフォルトの名無しさん 投稿日: 02/11/08 22:57
>>240
何通りもあるんですが


245 名前: 240 投稿日: 02/11/08 23:04
自分で10進数から2進数に変換するルーチンを書きました。
多分コレでOKかな。


246 名前: デフォルトの名無しさん 投稿日: 02/11/08 23:21
>>245
やっと意味がわかった。











氏ねや


247 名前: デフォルトの名無しさん 投稿日: 02/11/08 23:31
Sub 罫線作成()
On Error Resume Next

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone

罫線作成proc (xlEdgeBottom, 3) 'コンパイルエラー
End Sub

Sub 罫線作成proc(xlEdge, color)
With Selection.Borders(xlEdge)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = color
End With
End Sub

↑なんでコンパイルエラーなの?


248 名前: デフォルトの名無しさん 投稿日: 02/11/08 23:33
>>247
ネタかもしれんが、
引数をカッコで括るのはCallステートメントでの呼び出しか
プロシージャの戻り値を利用する時だぞ。


249 名前: 248 投稿日: 02/11/08 23:35
引数というより引数リストと言うべきか。


250 名前: 201 投稿日: 02/11/08 23:38
>>242
SetしたらNothingってのは悪いことではないが、
基本というべきものじゃないと思うよ。
俺はスコープから抜ければNothingされるのに、無駄なことをと思う。

まあ、mallocしたらfreeすべきかという問題と同じかもしれんので、
人に強制はしないほうが良いかと。


251 名前: デフォルトの名無しさん 投稿日: 02/11/09 00:21
もうしつこい。ヘルプ載せるから、こんなのでダラダラすな。

>Nothing キーワード

>複数のオブジェクト変数が同じオブジェクトを参照することがあります。
>キーワード Nothing をオブジェクト変数に代入すると、その変数は実際の
>オブジェクトを参照しなくなります。複数のオブジェクト変数が同じオブジェクトを
>参照すると、各変数が参照するオブジェクトに関連付けられたメモリと
>システム リソースは、Set ステートメントを使ってすべての変数を明示的に
>キーワード Nothing に設定するか、またはキーワード Nothing に設定した
>最後のオブジェクト変数が、暗黙のうちに適用範囲 (スコープ) 外になった後でなければ
>解放されません。



252 名前: デフォルトの名無しさん 投稿日: 02/11/09 00:40
>247
ってか日本語のプロシージャ名使うなって。


253 名前: 239 投稿日: 02/11/09 00:44
>>242
俺も250とまったく同じ考え。

悪いとは思わないが「絶対にいい」という類のことでもないと思う。
個人的には、End Subの直前でローカルな変数にNothingをセット
してるコードを見ると、なんだかな、と思う。


254 名前: 207=242 投稿日: 02/11/09 02:00
>250 >253
俺はどうも、昔これ(明示的なNothing無し)で苦労した記憶の呪縛から抜けきらんらしい。
逝ってくる。


255 名前: 201 投稿日: 02/11/09 02:23
Nothing入れたら直ったから、必ずNothingしときゃいいや
なんて消極的じゃダメ!!原因を追求しる!!


256 名前: デフォルトの名無しさん 投稿日: 02/11/09 06:48
Nothingするのは、当然だと思うが・・・。
当然すべきことを 怠っていただけの話だろ。


257 名前: デフォルトの名無しさん 投稿日: 02/11/09 08:11
典型的なVB厨ですな。
とにかく何でもかんでもNothingしとけば間違いないってか。
自分が使ってる言語の仕様がよっぽど信用できないんだろな。


258 名前: デフォルトの名無しさん 投稿日: 02/11/09 08:28
使い終わったらnull/NULLの代入
はc/c++/C#/javaでもよくやるよー。

拒絶反応を示すのが居るっぽいけど2ch限定だから無視すれ〜


259 名前: デフォルトの名無しさん 投稿日: 02/11/09 08:34
> はc/c++/C#/javaでもよくやるよー。
やるヤツもいるが、当然すべきとは言わないな〜
まあ頑張って文字列にもvbNullstringをセットしとけ〜


260 名前: デフォルトの名無しさん 投稿日: 02/11/09 08:36
コーディングルールがまだないならセットすることを薦めるよん

当然?ルールに従うのが当然ですが?


261 名前: デフォルトの名無しさん 投稿日: 02/11/09 08:41
典型的なVB厨ですな。
他人にNothingをすすめる理由は
「俺の所のコーディングルールで決まってるからそれに従え」ってか。


262 名前: デフォルトの名無しさん 投稿日: 02/11/09 08:52
>>257
VBの仕様なんて あてになるかいっ(w



263 名前: デフォルトの名無しさん 投稿日: 02/11/09 08:56
>>261
というより、典型的な石頭な。
VBしか知らない連中は特に物心ついた時からそういうコーディングルールを
たたき込まれてる奴が多い。何も理解せず当然だと思い込んでるんだろう。


264 名前: デフォルトの名無しさん 投稿日: 02/11/09 08:56
じゃあ明示的な解放が処理されるかどうかもあてにならんな(w


265 名前: デフォルトの名無しさん 投稿日: 02/11/09 10:49
不要なところの
Set xxx = Nothing
はただのゴミ。
入れたきゃ入れてもいいが、
その前にお前のコードを一度自分で追ってみろ。
1つのプロシージャを何行書いとんじゃ、ぼけ。
そんな目を覆いたくなるコードには盲目的にSet xxx = Nothing。



266 名前: デフォルトの名無しさん 投稿日: 02/11/09 10:58
すげえ、入れ食いだ


267 名前: デフォルトの名無しさん 投稿日: 02/11/09 11:00
不要でなければ入れてよい、と。


268 名前: 207 投稿日: 02/11/09 11:14
>257
何でもかんでもなんて誰も言ってないよ。
言語の仕様が信用できないってのはあるかも。
実際、それで難儀したんだから。

>263
それはあるかも。
未だにGlobalキーワード使ってる奴いるしw

>264
WinCE版のVBは明示的に解放してもメモリリークしたりするし

>265
そうか?
ウン百行の酷いコード書く奴って、Nothing以前にオブジェクト変数の意味自体を
知らない奴が多いと思うけど。

ま、ともかく色々と参考になった。
みんなあんがと。


269 名前: デフォルトの名無しさん 投稿日: 02/11/09 12:41
http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet09/vb6tonet09_01.html


270 名前: デフォルトの名無しさん 投稿日: 02/11/09 14:30
>>233について誰か知りませんかぁ?


271 名前: デフォルトの名無しさん 投稿日: 02/11/09 14:39
>>270
無理に決まってるじゃん。(受け側がオブジェクト型でもない限り)

Dim s As String
Dim i As Integer
i = s
この代入がエラーかどうか実行時にしかわからないのと一緒。


272 名前: デフォルトの名無しさん 投稿日: 02/11/09 15:03
>>270
VBの暗黙の変換だから無理。


273 名前: 名無し 投稿日: 02/11/09 15:22
相手のパソコンからデータを取得するにはどうしたら良いですか?ハッカーではないでしよ。


274 名前: デフォルトの名無しさん 投稿日: 02/11/09 15:23
>>273
意味不明。なんだよ相手って。


275 名前: 名無し 投稿日: 02/11/09 15:26
取得するファイルを持っているパソコンのことです。


276 名前: デフォルトの名無しさん 投稿日: 02/11/09 15:40
意味不明。FileCopyでフロッピーにコピーして受け渡せ。


277 名前: 233 投稿日: 02/11/09 17:49
>271 >272
どうもです。やはり無理ですか...
という事は、コンパイル時に双方の型が一致しているかを確認するにはByRefに
する以外無いという事ですよね。なんか納得いかない...
他の言語でもこうなのでしょうか?


278 名前: デフォルトの名無しさん 投稿日: 02/11/09 17:54
VBから16BitのDLL(具体的にはuser.exe)のAPIを呼びたいのですが
いい方法はありませんか?


279 名前: デフォルトの名無しさん 投稿日: 02/11/09 18:02
>>278
Call16bitDllを使え


280 名前: あっちの118 投稿日: 02/11/09 18:05
初心者じゃないんであっちに書いたんですが、一応こっちでも人捜しさせてください。

***すれ立てるまでもない質問はここで 第25刷***
http://pc3.2ch.net/test/read.cgi/tech/1036597434/118



281 名前: 278 投稿日: 02/11/09 18:07
>>279
Googleでも手持ちのMSDNライブラリでも見つからないのですが、
それはどういったものですか?


282 名前: デフォルトの名無しさん 投稿日: 02/11/09 18:59
>>281
Call16bitDllってのは>>279がそんなものがあれば便利だな〜と思ってるだけ。
あったらいいね。>>279

VBに限らず32bitプログラムから16bitDLLを呼ぶのは面倒。
具体的にどのAPIを呼び出すのか、何がしたいのかを書けば
他の解決策がわかるかもね。


283 名前: デフォルトの名無しさん 投稿日: 02/11/09 20:01
>>277
VBはBASICの家系だから、そういう言語なんだYO!
そもそもStringをそのままIntegerに渡すことは普通ない。
事前に入力値のチェックするだろが。
型を知りたければTypeName関数でも使ってロジックチェックしろ、ぼけ。


284 名前: デフォルトの名無しさん 投稿日: 02/11/09 20:02
VBAであるブックを開いてある領域をコピーして
そのブックを閉じるときに現れる
”クリップボードに大きな情報があります。この情報(略”
というダイアログを表示させない方法ってありますか?


285 名前: デフォルトの名無しさん 投稿日: 02/11/09 20:03
ちなみに”いいえ”を自動的に選択させたいです。?


286 名前: デフォルトの名無しさん 投稿日: 02/11/09 20:29
>>284
あるよ


287 名前: デフォルトの名無しさん 投稿日: 02/11/09 20:32
>>286
是非とも教えてくださいませ


288 名前: デフォルトの名無しさん 投稿日: 02/11/09 20:58
Application.DisplayAlerts = False


289 名前: デフォルトの名無しさん 投稿日: 02/11/09 21:08
その程度の事も解決できないようなやつが作ったフロントエンドって、ど
んな人が使うんだろう?

教えてほしい。


290 名前: 278 投稿日: 02/11/09 21:12
>>282
user.exe内のexitwindowsexecを呼び出したいのです。
今のところはrundllから呼んで何とかしてるんですが…直に呼び出したほうが
スマートだと思いまして。


291 名前: デフォルトの名無しさん 投稿日: 02/11/09 21:18
>>284
まーがんばれ。

>>289は性格に問題ありと..._〆(゚▽゚*)




292 名前: デフォルトの名無しさん 投稿日: 02/11/09 21:19
>>290
exitwindowsexecはよく知らんのだがWindowsの終了かリスタートなら
ExitWindowsExとかを使えばいいんじゃないのか?


293 名前: デフォルトの名無しさん 投稿日: 02/11/09 21:21
Excel97のVBAで、ボタンおしたら通常使うブラウザが開いて
指定したURLのページを表示させるにはどうしたらいいでしょう?


294 名前: デフォルトの名無しさん 投稿日: 02/11/09 21:22
>>293
ShellExecuteEx API


295 名前: 278 投稿日: 02/11/09 21:23
>>292
Windowsのみの再起動(終了ダイアログでShiftを押しながら再起動した
時の動作)を再現したいのです。ExitWindowsExには無いようです。


296 名前: デフォルトの名無しさん 投稿日: 02/11/09 21:26
>>294
VBAからAPIを使う方法がわからん


297 名前: デフォルトの名無しさん 投稿日: 02/11/09 21:27
>>296
VBと一緒だよ


298 名前: デフォルトの名無しさん 投稿日: 02/11/09 21:27
>>297
VBなんて知らん


299 名前: デフォルトの名無しさん 投稿日: 02/11/09 21:29
>>298
まじで?


300 名前: デフォルトの名無しさん 投稿日: 02/11/09 21:30
スーパーブイバーになりたいんだけど、何で勉強すればいいの?
山本のVB3部作の次は?


301 名前: デフォルトの名無しさん 投稿日: 02/11/09 21:39
>>300 MSDNライブラリ。


302 名前: デフォルトの名無しさん 投稿日: 02/11/09 21:40
293です。できますた。
なんかコンパイルエラーになると思ってたら、
VBAって関数呼ぶときはCall付けないとだめなんですね。


303 名前: デフォルトの名無しさん 投稿日: 02/11/09 21:43
>>293に便乗だけど、VBから通常使うブラウザ書き換える術を教えて下さい。


304 名前: デフォルトの名無しさん 投稿日: 02/11/09 21:52
>>303
レジストリをいじる


305 名前: デフォルトの名無しさん 投稿日: 02/11/09 22:06
レジストリを弄ることそのものはAPIを使えば簡単なんだが、目的に
あった操作(どのキーをどのように弄るか)を調べるのがむずかしい。
FAQ、定番的なものなら、ググればいくらでも見つかるからよいが、
WEBで事例が見つからない場合、みんな、どうやってるんだろう?


306 名前: デフォルトの名無しさん 投稿日: 02/11/09 22:07
2chで聞く


307 名前: デフォルトの名無しさん 投稿日: 02/11/09 22:09
>>305
検索、勘。それらしいのが見つかったらトライ&エラー。
バージョン上がってキーが変わったら泣く。


308 名前: デフォルトの名無しさん 投稿日: 02/11/09 22:10
VBを勉強するのに良いテキスト教えてください。


309 名前: デフォルトの名無しさん 投稿日: 02/11/09 22:11
>>308 MSDNライブラリ。


310 名前: デフォルトの名無しさん 投稿日: 02/11/09 22:11
>>302
> なんかコンパイルエラーになると思ってたら、
> VBAって関数呼ぶときはCall付けないとだめなんですね。

んなわきゃない。VBもVBAも基本的な文法は同じ。


311 名前: デフォルトの名無しさん 投稿日: 02/11/09 22:16
>>309
本を頼む。


312 名前: 310 投稿日: 02/11/09 22:19
あ、302はVBも知らんかったのか。すまん。

proc(a1, a2) と書くとエラーだが、
Call proc(a1, a2) または
proc a1, a2     または、戻り値を返す関数なら
戻り値 = proc(a1, a2) と書ける。


313 名前: デフォルトの名無しさん 投稿日: 02/11/09 22:38
>>307
ある意味、食用キノコと毒キノコの判別法に近いものが感じられる。



314 名前: デフォルトの名無しさん 投稿日: 02/11/09 23:05
>>310
302 は、戻り値を受けない関数呼び出しに括弧をつけていたと思われ。


315 名前: 314 投稿日: 02/11/09 23:06
312 が見えなかーたよ。。。


316 名前: デフォルトの名無しさん 投稿日: 02/11/09 23:19
>>314
Call ステートメントを使用した方が、可読性が多少はよくなる。(場合もある)
命名に一貫性がないソースコードの場合、変数名、関数名、オブジェクト名の
区別が付きにくい場合もあるので。

# だからこそ、命名規約が必要なのだ、という話もある。


317 名前: デフォルトの名無しさん 投稿日: 02/11/09 23:51
VB6.0使ってます。
コントロールボタンを375×375にして、CaptionをCAにしますた。
文字のフォントはMS Pゴシック、サイズは11。
で、実行してそのボタンをクリックすると、
それまでボタンに横に表示されている文字が縦に表示されるのです。
なんでですか?


>>311
自分で本屋逝って良いと思うものを買ってくるのが一番だろうけど、自分は↓コレを買いますた・・・
  VisualBasic6.0パーフェクトマスター Perfect Master
  見有 哲久 (著), 青空研究会 (著) 秀和システム
オールカラーで見やすいし、内容も平均的。初めての人にもとっつきやすいかと。


318 名前: デフォルトの名無しさん 投稿日: 02/11/10 00:16
>>316
命名がクソなのと、Call のある無しが何の関係あるんだ?
ThisIsNotFuncCall a1, a2
って書いてあっても、普通それが関数呼び出しだと分かるぞ。


319 名前: デフォルトの名無しさん 投稿日: 02/11/10 00:19
>>317
フォーカスの点線のせいだ。
もうちょっとボタンの大きさに余裕を持たせろ。


320 名前: 278 投稿日: 02/11/10 00:22
すいません、いい感じで流されてるんですが…(;´Д`)


321 名前: デフォルトの名無しさん 投稿日: 02/11/10 00:24
>>320
VC++でラッパーDLL書く。

って言うかVCとかでも妙に面倒な手続きが必要だったと記憶。
サンクレイヤとか言う奴?


322 名前: 317 投稿日: 02/11/10 00:29
>>319
レスありがとうございます。
ボタンを大きくすればいいのは分かるのですが、フォーカスの点線のせいっていうのは?
詳しく教えてください。お願いします。


323 名前: デフォルトの名無しさん 投稿日: 02/11/10 00:35
>>318
ワロタ。
無理やり挙げれば、
ThisIsLabel  をラベルと間違えるとか、
Statc a, b  をStaticと間違えるとか。

俺はCallがない方がスッキリして読みやすいけどね。
メソッドの呼び出しだと Callを付けない人が多いし。


324 名前: デフォルトの名無しさん 投稿日: 02/11/10 01:14
>>322
フォーカスを持ったボタンは、自分がフォーカスを持っていることをユーザーに
アピールするために、ボタンのふちのすぐ内側に点線を引く。
その点線の描画領域の為に、ボタンの文字の表示領域が減る。
で、文字をきちんと表示させるために、文字列をワードラップする。
(だから "CA" が C と A の間で改行される)
ところが、幅は考慮していても高さは考慮していないようだ。
(ボタンの文字列には普通改行が含まれないから当然と言えば当然)
こんな説明で OK か?


325 名前: デフォルトの名無しさん 投稿日: 02/11/10 01:49
>>328
>俺はCallがない方がスッキリして読みやすいけどね。

オレはCall付いてる方が安心感があるかな。
ま、好みのレベルかもな。

b a
例えばさ、上みたいなんなんだと思う?>>318


>メソッドの呼び出しだと Callを付けない人が多いし。

それはいえてる。


326 名前: 318 投稿日: 02/11/10 01:54
>>325
はじめ 「2 ちゃんねるのレス」 として見たから何の事かわからなかったけど、
「VB のソース」 として見るなら引数 a を指定したルーチン b の呼び出しと
すぐ分かる。
まあ他言語、特に C/C++ から来た人なら騙されやすいかもね。


327 名前: 322 投稿日: 02/11/10 02:18
>>324
なるほど。親切に教えていただき、ありがとうございます。おかげさまで理解できました。


328 名前: デフォルトの名無しさん 投稿日: 02/11/10 02:27
>b a
>例えばさ、上みたいなんなんだと思う?>>318

あほの書いたソース。見る価値もない。
仕事なら作り直した方が早い。

って思うかな。
でも実際いるんだよなぁ。わざと読みにくくしてねぇかお前ってやつ。



329 名前: 277 投稿日: 02/11/10 06:45
>283
>そもそもStringをそのままIntegerに渡すことは普通ない
普通無くても、できてしまうから困る訳で。
呼ばれる側はIntegerで宣言していても、呼び元では違う型を使って呼び出している可能性が
あり、それによるバグが生まれる場合もあるのだから、事前に機械的にチェックする方法が
無いか?って考えるのはおかしいことじゃないと思うけど。

そういう意味では
>型を知りたければTypeName関数でも使ってロジックチェックしろ
ってのは本末転倒。

そういう言語なんだよと言われればそれまでなんですけどね。
とりあえず、デバッグ時はByRef使う方向で行きます。


330 名前: デフォルトの名無しさん 投稿日: 02/11/10 07:10
> 呼ばれる側はIntegerで宣言していても、呼び元では違う型を使って呼び出している可能性が

設計や管理がずさんなだけじゃん。

普通は、関数が整数を要求することがわかってるのに
文字列型を使ったりはしないよ。
そもそもそんなこと言ってたらきりがない。


331 名前: 330 投稿日: 02/11/10 07:16
あ、でも読み返してみると、確かに329の言ってることも
よくわかるな。


332 名前: デフォルトの名無しさん 投稿日: 02/11/10 07:25
>329
複数人で開発していると必ずいるんですよ。
引数の型無視して呼び出してバグ生む奴・・・


333 名前: デフォルトの名無しさん 投稿日: 02/11/10 15:49
フォーム1のテキストボックスにテキストを入力する際に直接キーボードで入力せず、
そのテキストボックスをクリックすると、新しくフォーム2を表示させて、
フォーム2上の複数のコマンドボタンの中から1つおすと、押したボタンの
Captionがもとのテキストボックスに入力されるというのをやりたいのですが、
フォーム2からどうやってそこのテキストボックスを指定すればいいのかわかりません。
ちなみに、テキストボックスはコントロール配列になっていて、複数あります。
どなたかお教えください。宜しくお願いします。



334 名前: デフォルトの名無しさん 投稿日: 02/11/10 15:52
form1.textbox(1).text = form2.label1.caption


335 名前: デフォルトの名無しさん 投稿日: 02/11/10 15:59
>>333
入門書とかヘルプ、読んでないだろ?
ちゃんと読めよ。


336 名前: デフォルトの名無しさん 投稿日: 02/11/10 16:07
>>334
ありがとうございます。具体的に決まっている場合はわかりました。
どのテキストボックスが選択されたかわからない場合は、
何か変数に渡すのですか。
具体的にはここまでできてます。

frmForm1のコード '↑でいうForm1

Private Sub txtName_Click(Index As Integer)
frmSelectName.Show '↑でいうForm2
End Sub

frmSelectNameのコード '↑でいうForm2
Private Sub cmdName_Click(Index As Integer)
frmForm1.txtName(?).Text = cmdName(?).Caption
Unload Me
End Sub

?のところが良くわかっていません。





337 名前: デフォルトの名無しさん 投稿日: 02/11/10 16:16
>>336
frmForm1.txtName(?).Text = cmdName(?).Caption

右の?は引数のIndexだからわかるっしょ。
左の?は frmForm1.ActiveControl.Index でわかるけど
あんまりオススメしない。


338 名前: Not (Me Is 333 Or Me Is 336) 投稿日: 02/11/10 16:47
>>337

> frmForm1.ActiveControl.Index

今、手元にぶいびの環境がないので、確認できないんだが、
ActiveControlがコントロール配列でない場合、エラーに
なんないかい?



339 名前: 336 投稿日: 02/11/10 17:20
たぶんエラーになるよ…
ダイレクトに参照したいなら
こんな方法もあるよってことでし。
好みの問題だろうけど
自分だったら関数でくるむかRaiseEventかなぁ



340 名前: 339 投稿日: 02/11/10 17:25
スマソ、339は337から338へね


341 名前: デフォルトの名無しさん 投稿日: 02/11/10 19:18
おれならこうする。(未検証ですが。)

<frmForm1>
Private Sub txtName_Click(Index As Integer)
 txtName(Index).Text = Form2.GetStrSelected
End Sub

<Form2>
'モジュール変数
Private strSelected As String
'ダイアログ表示→文字列選択待ち→ダイアログ閉じる→選択された文字列を返す
Public Function GetStrSelected() As String
 strSelected = ""
 Show Me, vbModal
 GetStrSelected = strSelected
Exit Function
'選択されたボタンのキャプションをモジュール変数に格納→ダイアログを閉じる
Private Sub cmdName_Click(Index As Integer)
 strSelected = cmdName(Index).Caption
 Unload Me
End Sub

これでForm2はいろんなダイアログから呼び出せるようになる。
Form1上のテキストボックスに文字列をセットするという作業は
Form1が自分でしなければいけない。
Form2は選択された文字列を外部に公開するだけ。


342 名前: 341 投稿日: 02/11/10 19:23
>336
あれ?モードレスってのが仕様?
だったらとりあえず341却下。
ささやかに339のRaiseEventに1票。


343 名前: 283 投稿日: 02/11/10 23:49
>>329
君のいわんとすることは277の書き込みで理解はしているよ。
ただ、
>そういう言語なんだよと言われればそれまでなんですけどね。
これが現実。そういう言語を選んだのだから。(君が選んだかどうかは別にして)
君が指導して周りのプログラマのレベルアップをはかった方が懸命。

>とりあえず、デバッグ時はByRef使う方向で行きます。

デバッグ時はByRefと書いておいて、後でByValになおすってこと?
それは現実的だと思えないし、
そういう行為(ソースの二重持ちするのか、毎度書き換えするのか知らないけど)
の方がバグ生むと思うけど。
「ByRefを型を厳密に使うのに使います」という使い方がトリッキー。



344 名前: デフォルトの名無しさん 投稿日: 02/11/10 23:51
>>332=329?
そんなDQNを教育するか、それでダメなら、
まずプロジェクトからはずすのが先決かと。



345 名前: デフォルトの名無しさん 投稿日: 02/11/10 23:59
>>329
もひとつおまけ。
VB.NETなら、Option Strict Onで厳密な型指定、型変換を強制できる。



346 名前: デフォルトの名無しさん 投稿日: 02/11/11 00:12
>>329
一応書いとくけど、
いくらByRefで定義していても、呼び出し時にパラメータを
カッコで括るようなアホがいたら、コンパイル時のチェックに
引っかからないからね。(それと、定数渡しもアウト)

Dim s As String
Func (s)
Func "ABC"
--------
Sub Func(ByRef n As Integer)
End Sub

というわけで、344と同じく、一定のレベルに達していないDQN
はプロジェクトに入れないのが一番の策と見た。


347 名前: デフォルトの名無しさん 投稿日: 02/11/11 00:30
なんて、DQNな話してんだよー


348 名前: デフォルトの名無しさん 投稿日: 02/11/11 00:37
WinsockコントロールでTCPで通信、インターネットを想定した場合、
ただ単にIPアドレスを指定しただけでは通信できないのでしょうか?
ローカルIP、グローバルIPが関係してくるのかな?



349 名前: 329 投稿日: 02/11/11 01:05
>343
もちろん、コーディング規約への追加や、教育によるレベルの底上げは行っていきます。

>344
同意なんですけど、そういうレベルの話じゃないんです。
機械的にチェックする事で型の不一致によるミスを100%なくす手段が無いか?という話なので。

>345
.NETはよさげですね。
少なくとも今の平均レベルでは移行できませんけど(泣

>346
ありがとうございます。
普通はないけど、ありえないとは言い切れない現象ですね。
参考にさせて頂きます。


350 名前: デフォルトの名無しさん 投稿日: 02/11/11 02:12
>>349
ByRefにしといてあとからByValに手動で変えるのは全然機械的じゃない。


351 名前: デフォルトの名無しさん 投稿日: 02/11/11 02:19
>>350
手動じゃないかもよ。


352 名前: デフォルトの名無しさん 投稿日: 02/11/11 02:24
>>351
自動でByRefを全部ByValに変えるのか? こわいな。
そもそも、本来の使い方が全く無視されてると思うが。


353 名前: 351 投稿日: 02/11/11 03:55
> 自動でByRefを全部ByValに変えるのか?
全部じゃないかもよ。
ソース上ではデフォルト(ByRef記述の省略)と明示的な記述の
2通りが使えるわけだし。


354 名前: デフォルトの名無しさん 投稿日: 02/11/11 11:49
>>348
portも指定するよ


355 名前: デフォルトの名無しさん 投稿日: 02/11/11 13:43
Windows98&VB6&ディストリビューションウィザードで作成したexeを
Windows95にインストールした所、右寄せを設定していたテキストボックスが
全て左寄せになってしまいました。
Windows95でも右寄せのテキストボックスはありますし、設定自体はいけると
思うのですが、どのようにしたら受け付けてくれるのでしょうか。


356 名前: デフォルトの名無しさん 投稿日: 02/11/11 14:16
excelファイルをドラッグアンドドロップしてVBで作ったexeを起動するにはどうしたらいいですか?


357 名前: 投稿日: 02/11/11 14:20
うっさい、ハゲ


358 名前: デフォルトの名無しさん 投稿日: 02/11/11 14:21
>>355
MultilineをTrueにするんじゃなかったか


359 名前: デフォルトの名無しさん 投稿日: 02/11/11 14:22
>>358
・・・マジですか?


360 名前: デフォルトの名無しさん 投稿日: 02/11/11 14:25
>>359
ホレ
ttp://www5b.biglobe.ne.jp/~yone-ken/VB/TextBox.html


361 名前: デフォルトの名無しさん 投稿日: 02/11/11 14:40
>>356
ドラドロで普通に起動できると思いますが。

アイコンにドロップすると、ファイルのフルパスが引数として渡ります。
Command で引数を取得してファイルパスなら・・
という処理を書いてくだせぇ


362 名前: デフォルトの名無しさん 投稿日: 02/11/11 14:51
Inetコントロールを使ってVBで簡易webブラウザを作ろうと思うのですが、

UserAgentがデフォだと「Microsoft URL Control - 6.00.8862」です。
これを変更する方法が知りたいです。


363 名前: 355 投稿日: 02/11/11 15:04
>>359
なんで騙る必要があるのですか。
すごいナチュラルに誰にも被害もなく騙ってますけど(w

>>360
サンクス!できますた。
もともとEnterキーで次のコントロールにフォーカスを移す仕様だったので
何の問題もなくできますた。
マジサンクスです。


364 名前: デフォルトの名無しさん 投稿日: 02/11/11 15:09
画像の情報取得をして表示させたいのですが、jpegで
24ビットフルカラー(各8ビット)他モノクログレースケール画像(8ビット)
の判別の方法がわかりません。
どうすればよいのかどなたか教えてください。



365 名前: デフォルトの名無しさん 投稿日: 02/11/11 15:14
>>363
糞仕様


366 名前: 359 投稿日: 02/11/11 15:20
>>363
言い訳させてもらえれば、煽ったつもりも騙ったつもりも無いんだけど。
マジで疑問に思ったから。


367 名前: デフォルトの名無しさん 投稿日: 02/11/11 15:22
>>365
お客さんの前で言ったらお金が出なくなります。


368 名前: デフォルトの名無しさん 投稿日: 02/11/11 15:34
Shellで呼び出した別のEXEファイルが呼び出し元のフォームより
後ろに回るのですが、これに対処法はありますか?
引数にはノーマルフォーカスを指定しています。


369 名前: んばばんばんば 投稿日: 02/11/11 15:52
凄い初歩的な質問なんですが。今クイズを造っているのですが
その初期段階として「VBでコマンドボタン押したらテキストボックスに
ランダムに問題が表示される」って言うのはどうやったらよろしいんでしょうか?



370 名前: デフォルトの名無しさん 投稿日: 02/11/11 15:53
>>369
配列とRndとRandomizeを調べれ。


371 名前: んばばんばんば 投稿日: 02/11/11 16:00
>>370
持ってる本には書いてないっす。配列宣言しか。


372 名前: デフォルトの名無しさん 投稿日: 02/11/11 16:02
>>371
ヘルプ(MSDNライブラリ)があるだろ。それを見れ。


373 名前: んばばんばんば 投稿日: 02/11/11 16:16
わかりもうした。調べてみます。


374 名前: デフォルトの名無しさん 投稿日: 02/11/11 16:21
>>368
ShellExecuteのヨカン


375 名前: デフォルトの名無しさん 投稿日: 02/11/11 17:00
ボタンを1回押すと数字が1大きくなって
ボタンを押している間は数字が大きくなり続けるようにするには
どうすればよいですか?


376 名前: デフォルトの名無しさん 投稿日: 02/11/11 17:00
スピンコントロール(適当


377 名前: デフォルトの名無しさん 投稿日: 02/11/11 17:00
質問なんですけど。
メッセージボックスのボタンの文字を変更する事ってできますか?
VB標準では無理ですよねぇ?


378 名前: デフォルトの名無しさん 投稿日: 02/11/11 17:01
無理です


379 名前: デフォルトの名無しさん 投稿日: 02/11/11 17:01
>>375
タイマー

>>377
それっぽいフォームを自作しれ


380 名前: 377 投稿日: 02/11/11 17:02
>>379
やっぱそれしかないか〜
ありがとう


381 名前: デフォルトの名無しさん 投稿日: 02/11/11 17:06
364です jpgの24bppと8bppの深さの取得の方法どなたかおねがいできませんか?
SOFセグメントには縦、横のサイズを取得するものがあるのですが、
bmp見たいにbitcountみたいなものが構造上見当たらないのです。
お知り方いましたらご教授ください


382 名前: 375 投稿日: 02/11/11 17:12
>>379
ありがとうございます
できればもう少しヒントください


383 名前: デフォルトの名無しさん 投稿日: 02/11/11 17:15
>>382
試してないが、mousedownでフラグ立ててmouseupでフラグ解除
タイマーで定期的にフラグが立ってるか見て、立ってれば処理すればいいのでは?
あ、それよかmousedown時にタイマー始動、up時に解除のほうがスマートか・・・
でも前に別の人が書いてたけど、スピンコントロールが
使えるならそっちのほうがスマートだし楽だと思うぞ


384 名前: デフォルトの名無しさん 投稿日: 02/11/11 17:30
試してみた。フォーム作って、ボタンとタイマー貼り付けて
以下のソースで試してみれ。なお、タイマーのEnabledはデザインではFalseでな。

Option Explicit

Private cnt As Integer

Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Timer1.Enabled = True
End Sub

Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Timer1.Enabled = False
End Sub

Private Sub Timer1_Timer()
cnt = cnt + 1
Caption = CStr(cnt)
End Sub


385 名前: 375 投稿日: 02/11/11 17:49
何も起きないのですが...


386 名前: デフォルトの名無しさん 投稿日: 02/11/11 18:04
>384
↓Command1でマウスダウン
↓ALT+TABでアプリ切替
↓マウスアップ(もちろんMouseUpイベントは起きない)
↓ALT+TABでもとのアプリに戻す
↓>385が正しければ何も起きない


387 名前: 375 投稿日: 02/11/11 18:13
Intervalが0になってました。
ありがとうございました!&すみませんでした


388 名前: デフォルトの名無しさん 投稿日: 02/11/11 18:23
>>48
やべ〜オレ普通にDim使ってるわ。
今度からPrivate使おう・・・


389 名前: デフォルトの名無しさん 投稿日: 02/11/11 20:03
PrintFormでフォームを印刷したいのですが
フォーム上に配置したPictureBoxが真っ白になってしまいます
フォームごとPictureBoxの内容を印刷することは無理なのでしょうか?
PictureBoxはビットマップを読み込んでるわけではなく
コードで図形を描画してます


390 名前: デフォルトの名無しさん 投稿日: 02/11/11 20:12
>>389
PictureBoxのAutoRedRawは?


391 名前: デフォルトの名無しさん 投稿日: 02/11/12 01:06
>>364 >>381
JPEG にはフルカラーしかなく、しかも RGB じゃなくて YCbCr だったと思う
のだがどうよ?
ちっとは Web 検索した?
ちなみに漏れも良く知らない。


392 名前: デフォルトの名無しさん 投稿日: 02/11/12 01:24
TXT形式のファイルに出力したいのですが、
どうしても上手くいきません。
開く方は何の問題もなくいけたのですが・・・

Dim Strfilename As String
Open Strfilename For Input As #1
StrData = Text1.Text
Print #1, Stroutput
Close #1

という感じです。
ファイルのパスもあっているのですが、、、
どなたか教えていただけないでしょうか?


393 名前: 392 投稿日: 02/11/12 01:41
StrDataとStroutputは同じものです。
直し忘れた><
それでもやっぱり動かない・・・


394 名前: デフォルトの名無しさん 投稿日: 02/11/12 01:46
Open Strfilename For Output As #1


395 名前: デフォルトの名無しさん 投稿日: 02/11/12 06:13
>>392
http://www.google.com/search?num=50&hl=ja&inlang=ja&ie=Shift_JIS&q=VB+%83t%83@%83C%83%8B+%93%FC%8Fo%97%CD+Open+Close&btnG=Google+%8C%9F%8D%F5&lr=lang_ja


396 名前: デフォルトの名無しさん 投稿日: 02/11/12 06:45
初めまして。

ネタではなく、まじめなご相談なのですが。。
とある、ソフトウェアとハードウェアを持っています。
ハードウェアは、USB経由でICチップにクリップで繋ぎ、データをリード
ライトする為のものです。
ソフトウェアは、上記ハードウェアに付属している開発ツールを使って作られ
たもののようで、ディレクトリ構造的に

SETUP.LST
SETUP.EXE
キャビネットファイル(解凍すると以下)
  各種DLL、各種OCX、TLB、BIX、VXD、EXE、INF、
  TXTファイル

からなっており、上記ハードウェアのドライバとリードライト制御を行う機能
を持っています。このソフトウェアは、同じ上記ハードウェアで動作してるの
ですが、もう一つの同種の(シリアルは異なります)ハードウェアで動作しま
せん。これを動作させる事はできるのでしょうか。ハードウェアに付属の開発
ツールのソースコードとVBによって、ハードウェアに対応した各種のアプリ
ケーションが作成できる、とあった為に、ここに質問させて頂きました。
もし、どなたかこれを解決できる方がいらっしゃいましたら、是非お願いした
く、ご相談させて頂きました。ソフトウェアは、CD−Rで保有していますの
で、必要に応じて出す事が可能です。
当方、ソフトウェアの素人である為、この問題を解決出来ません。
レジストリの問題なのか、ソフトウェアを改造する必要があるのかすら分かり
ません、解決して頂ける方には、成功報酬として、非常に少ないですが、10
万円ほどご提供させて頂きたいと思います。
素人ではありますが、もう少し詳細な情報も出す事が可能です。
もし場違いであれば、削除して頂いて構いません。

よろしくお願いします。


397 名前: デフォルトの名無しさん 投稿日: 02/11/12 07:02
>>396
マジレス。
報酬が用意できるくらいなら、ここで訊くよりメーカーに訊け。


398 名前: デフォルトの名無しさん 投稿日: 02/11/12 08:43
>>396
よく読んでねーけど、それってHASPキーみたいはハードウェアプロテクトをはずせと言ってるんじゃないだろうな。



399 名前: デフォルトの名無しさん 投稿日: 02/11/12 12:29
>>362
変えることできないんじゃなかった?
まえにどこかのFAQ掲示板でそんなやりとりを見た。

しかし変えれないとなると使えねーな。


400 名前: デフォルトの名無しさん 投稿日: 02/11/12 14:14
VB初心者です。
ADODBでデータベースを作って検索しようとSQLを使ったのですが、
「演算子がありません」とか出てきて検索できません。
どうしたら検索できるのでしょうか?
あと、SQLでの複数条件の記述式を教えてもらえませんか。




401 名前: ゆうじ 投稿日: 02/11/12 14:17
パスワードのかかったACCESSのデータベースをVBで読み込みたいのですが、案の定
エラーが出てしまいます。どなたコーディングの仕方を教えていただけませんでしょうか。
VBは6.0でACCESSは2000を使用しています。よろしくお願いいたします。                         


402 名前: デフォルトの名無しさん 投稿日: 02/11/12 14:30
>>400
それはVB使ってるってだけでSQLの質問でしょ?
だからスレ違いだし、そもそも情報少なすぎ。
>あと、SQLでの複数条件の記述式を教えてもらえませんか。
にいたっては、SQLの文法書でも読めとしか言いようがない。

>>401
ADOかDAOかぐらい書け。キーワードはpwdで検索しる!


403 名前: デフォルトの名無しさん 投稿日: 02/11/12 14:31
>>400
ってこいつSQLスレとのマルチかよ。死ね。


404 名前: ゆうじ 投稿日: 02/11/12 14:50
すみませんでした。ADOを使用しています。よろしくお願いします。


405 名前: デフォルトの名無しさん 投稿日: 02/11/12 15:50
>396
あるハード用に作られたソフトを他の同種のハードに
流用したいって事かな?

なぜ動作しないのかはハードの情報が無いので何とも言えない。

あなたの持っているソフトはコンパイル済みのようで、
ソースを持っている人以外は修正することが出来ない。

解決策1: ソフト作成元に他ハードに対応するように依頼する。
解決策2: ソフト作成元からソースを購入し、自分でまたは
      他者でソースを変更する。
解決策3: 他者に現在のソフトウェアの機能を説明し、
      同様のソフトを一から作成してもらう。



406 名前: 405 投稿日: 02/11/13 02:35
なんか変な事書いたかな? みんな固まっちゃったよ。


407 名前: デフォルトの名無しさん 投稿日: 02/11/13 03:15
人は誰しも自分の発言の後に発言がないと不安になるものである

まぁ、レスの付かない夜もあるさ>>405


408 名前: 392 投稿日: 02/11/13 03:47
394,395>ありがとうございます!
    なんとか分かりました!


409 名前: デフォルトの名無しさん 投稿日: 02/11/13 07:55
>>391
グレースケールのJPEGもあるよ。



410 名前: デフォルトの名無しさん 投稿日: 02/11/13 07:59
>>409
そういうならフォーマットを呈示しなさい。


411 名前: デフォルトの名無しさん 投稿日: 02/11/13 08:07
// Create an instance of the scripting Shell Object
shell = WScript.CreateObject("WScript.Shell");

// Have the Shell Object call ShellExecute on our file
shell.Run(WScript.Arguments(0), 1, 0);

// Destroy the Shell Object
WScript.DisconnectObject(shell);



412 名前: デフォルトの名無しさん 投稿日: 02/11/13 11:24
Option Explicit
のすぐ下で宣言するときの
DimとPublicの使い分け方がわかりません。
どういうときはどちらをつかうのでしょうか。


413 名前: デフォルトの名無しさん 投稿日: 02/11/13 11:30
>>412
効果は変わりないけど、PublicはPrivateと対になってるので、論理上正解。


414 名前: 412 投稿日: 02/11/13 12:31
効果は同じと聞いて安心しますた


415 名前: デフォルトの名無しさん 投稿日: 02/11/13 13:18
待った。Dim=Privateだろ。


416 名前: デフォルトの名無しさん 投稿日: 02/11/13 13:47
異議あり!! Dim=Privateだろ。

と言え。


417 名前: デフォルトの名無しさん 投稿日: 02/11/13 14:11
あ、そうだっけ Dim使ってないから忘れてた。スマソ。
ちなみにGlobalと同じで過去の遺物なんだよね、これ。。


418 名前: デフォルトの名無しさん 投稿日: 02/11/13 14:49
417 が、ローカル変数を使わない DQN である事をカミングアウトしました。


419 名前: デフォルトの名無しさん 投稿日: 02/11/13 14:52
>>418
揚げ足取り カコ(・A・)ワルイ


420 名前: デフォルトの名無しさん 投稿日: 02/11/13 15:18
VB6 なんですが、VBA のトグルボタンコントロールに相当する
トグルスイッチを作ろうと思ったら、どうしたらようござんしょう?


421 名前: デフォルトの名無しさん 投稿日: 02/11/13 15:22
つーか、(モジュールレベルで使うにしても) Global と Dim を同列で並べてる
ところが痛い。
せっかく遠まわしながら間違っている事を 418 が指摘したのを、揚げ足取りとして
非難してるのはもっと痛い。
そもそも、記憶があやふやなのにドキュメントを調べもしないで堂々と回答してる
姿がとっても痛い。
そして、「論理上正解」 って意味不明。

って、こうして煽られたいからそういう書き込みするの? >>419


422 名前: 420 投稿日: 02/11/13 15:23
↑ただし、CheckBox は不可です。あしからず。


423 名前: デフォルトの名無しさん 投稿日: 02/11/13 15:29
結局、VB6で開発しているのにGlobalやDimで宣言してるヤシには気をつけろってこった。


424 名前: 420 投稿日: 02/11/13 15:32
Microsoft Forms 2.0 Object Library コンポーネントを追加すれば
ようござんした。失敬。


425 名前: デフォルトの名無しさん 投稿日: 02/11/13 15:35
>>420
どのレベルから作り込みたいのかはっきりさせてくれないと、アドバイスの
しようがない。
カスタムコントロール作る?
既存のコントロール改良しる?
フォームに直接ガリガリ書く?


426 名前: 425 投稿日: 02/11/13 15:36
ヽ(´ー`)ノ


427 名前: デフォルトの名無しさん 投稿日: 02/11/13 15:40
>>421
なに過剰反応、っつーか拡大解釈してるんだ? 譫妄?
419は、417の言ってるDimが当然ローカル変数のでは
ないことぐらい文脈で分かるだろと指摘しただけだろ。
それと、俺はGlobalもモジュールレベルでのDimも過去の記述方法として
同列に書かれることにはちっとも違和感おぼえなかったが。


428 名前: 413 投稿日: 02/11/13 15:41
Option Explicitも面倒なので使ってませんが、何か?


429 名前: !421 投稿日: 02/11/13 15:44
>>427
そう思ったなら 419 が素直にそう書けばいいだろ。
419 は煽りにしか見えん。


430 名前: デフォルトの名無しさん 投稿日: 02/11/13 15:44
>>413だけど、騙りまで出てきたか。どうせ>>421と同一人物だろうが・・
あー、あと、>>427の人あんがとね


431 名前: 413 投稿日: 02/11/13 15:45
>420
OptionButtonのStyleプロパティを1 - グラフィックスにするとそれっぽいぞ。


432 名前: 419 投稿日: 02/11/13 15:47
>>429
418が分かってて書いてるのがミエミエだから
あえて指摘しなかっただけだが何か?
もういいでしょこの話題。421で結論でてるし


433 名前: 419 投稿日: 02/11/13 15:47
421じゃないや 結論でてるのは427だった スマソ


434 名前: デフォルトの名無しさん 投稿日: 02/11/13 15:49
>>413
「PublicはPrivateと対になってるので、論理上正解」の意味がサパーリわからんから説明してくれ


435 名前: 434 投稿日: 02/11/13 15:51
あ、「PublicはPrivateと対になってる」はわかる
それが「論理上正解」とどう結びつくのかサパーリ


436 名前: デフォルトの名無しさん 投稿日: 02/11/13 15:51
>>434
書いたままだが、何か?日本語不自由なのか?


437 名前: デフォルトの名無しさん 投稿日: 02/11/13 15:55
>>435
しつこいなー マジで聞いてるのか?
Dim <-> Public が対になってるのは文法的に理解しがたい
Private <-> Public のほうがスマートでしょって意味
正解と断言したのが気に入らないのか?
それなら正解に近い とでも言い直すが


438 名前: 434 投稿日: 02/11/13 15:56
>>436
ああ書き方が悪かったよ
「DimとPublicの使い分け方がわかりません」に対して
「PublicはPrivateと対になってるので、論理上正解」なのがわからん


439 名前: 413 投稿日: 02/11/13 15:57
>434 >435 ケコーン(藁藁


440 名前: 434 投稿日: 02/11/13 15:58
>>437
それなら納得できるが>>413はその意味に取れない


441 名前: デフォルトの名無しさん 投稿日: 02/11/13 15:58
>>438
なぜ部分的に抜き出す?
その前に書いた「効果は変わりないけど、」の部分は目に入らないのか?
効果は同じだけど、さっき書いたとおり、Privateにしたほうが
Publicとも対になって論理的整合性が取れてるでしょってこと。


442 名前: 413 投稿日: 02/11/13 15:59
しまった、本人じゃん


443 名前: 434 投稿日: 02/11/13 16:01
>>412=414は「効果は変わりないけど」に気を取られて帰ってもーたみたいだし、
どうせ回答するなら>>437のように最初からちゃんと書いた方がいいかと思うがどうよ?


444 名前: デフォルトの名無しさん 投稿日: 02/11/13 16:01
>>440
言葉足らずだったのは認めるが、そこまで赤ちゃんに
言ってきかすほど噛み砕いて説明する義務は俺にはないんだが。


445 名前: デフォルトの名無しさん 投稿日: 02/11/13 16:02
>>443
ほんとにしつこいなあ・・ (´д`;)
繰り返すけど、そんな義務はないって。
そう思ったならあなたがそうやって教えてやれば
良かったでしょうが。
こんな話題でこれ以上スレ伸ばすのは無駄と思うがどうか?


446 名前: デフォルトの名無しさん 投稿日: 02/11/13 16:03
>>441
客観的に見て、437 や 441 に書いてある情報は 413 にはちっとも書いてないよ。


447 名前: デフォルトの名無しさん 投稿日: 02/11/13 16:04
>>446
>>444
これ以上は相手しません スレの無駄遣い。


448 名前: デフォルトの名無しさん 投稿日: 02/11/13 16:04
>>445
義務が無いと言うなら、あなたは何で回答しているの?


449 名前: 419 投稿日: 02/11/13 16:09
>>448
それは「言ってきかすほど噛み砕いて説明する」義務でしょ
なんかさっきから勝手に言葉切りとって、無理やり
揚げ足取ろうしてるヤシがいるみたいだけど、なんか413に
個人的な恨みでもあるのか?(w


450 名前: デフォルトの名無しさん 投稿日: 02/11/13 16:10
こういうアフォな人たちがいるから回答者が減っていくのですね・・・


451 名前: デフォルトの名無しさん 投稿日: 02/11/13 16:16
正直、人のやったことにグダグダとケチつけてるだけの奴らより、
413のように短くても回答くれる人のほうがよっぽど有益と思われ


452 名前: デフォルトの名無しさん 投稿日: 02/11/13 16:28
ということで、次の質問者の方、どうぞ



453 名前: デフォルトの名無しさん 投稿日: 02/11/13 16:37
はじめまして、質問させてください。
VB6で、Excelファイルを出力したいのですが、
.Quit処理を行ってもExcelのプロセスが残ってしまいます。
お手数ですがよろしくお願いいたします。

''ソース抜粋
Private xlApp As Object
Private xlbook As Object
Private xlsheet As Object

Set xlApp = excel.Application
Set xlbook = xlApp.Workbooks.Add
Set xlsheet = xlbook.Worksheets(1)

xlsheet.Cells(1, 1) = "データを入力"

xlsheet.Unprotect
xlbook.Close True, "C:\Book.xls"
xlApp.Quit

Set xlApp = Nothing
Set xlbook = Nothing
Set xlsheet = Nothing


454 名前: デフォルトの名無しさん 投稿日: 02/11/13 16:52
>>453
Set xlApp = excel.Application を
Set xlApp = New Excel.Application にしてみ。


455 名前: デフォルトの名無しさん 投稿日: 02/11/13 17:34
>>454
ありがとうございました、無事解決できました。
感謝感謝です;;


456 名前: 434 投稿日: 02/11/13 17:44
>>451
うっさい、ハゲ


457 名前: 猿並初心者 投稿日: 02/11/13 18:25
本当に猿並な質問ですみませんがVBSで、
1個220円の商品が1ダースなら2500円として、
26個なら2500円*2+220円*2=5440円
というように金額が出るようにしたいのですが、
いくらやっても全部1ダースあたりの金額で小数点以下まで計算されるか、
12個以下の個数だとエラーになるかで、どうにもなりません。
どんなに罵倒されてもかまいません。どなたか助けてください、お願いします。


458 名前: デフォルトの名無しさん 投稿日: 02/11/13 18:43
1ダースは20コぐらい?


459 名前: デフォルトの名無しさん 投稿日: 02/11/13 19:16
winsockを使ってプログラムしているのですが、
チャットの他にいくつかの機能を付けようかと思ってます。
そこで、データを受け取った時にそのデータがチャット用なのか、
その他1用なのか、その他2用なのか・・といった風にCASE文あたりで振り分けたいのですが、
何かいい方法はありますか?
いろいろ見てみたんですが、それっぽいものが見つからなかったので><
どなたかお願いします!



460 名前: デフォルトの名無しさん 投稿日: 02/11/13 19:19
>>457
なんかよくわからんけどこれでいいの?
Dim lngIn, lngAns
lngIn = 25
lngAns = ((lngIn \ 12) * 2500) + ((lngIn Mod 12) * 220)
MsgBox lngAns & "円"


461 名前: デフォルトの名無しさん 投稿日: 02/11/13 19:32
>>459
> データを受け取った時にそのデータがチャット用なのか
> その他1用なのか、その他2用なのか・・
てことは、データ送る側が「それ」を送るデータにくっつけて送ればよいのでは???
微妙にスレ違いかもね。


462 名前: 猿並初心者 投稿日: 02/11/13 19:39
>>460 ありがとうございます。lngIn = 25というのがよくわからないのですが
例えば単価220円として、本来30個なら6600円
でも1ダースなら2500円なので30個の合計金額は
2ダース*2500円+6個*220円=6320円
になるように個数を入れれば合計金額が出るようにしたいのです。
説明不足ですみません。


463 名前: デフォルトの名無しさん 投稿日: 02/11/13 20:19
>>462
Int or Fix 、mod関数を調べてみれ


464 名前: デフォルトの名無しさん 投稿日: 02/11/13 20:38
>462
プログラムを欲嫁。lngInが商品の数。


465 名前: 猿並初心者 投稿日: 02/11/13 21:03
こんな猿にみなさんご親切にありがとうございます。
INT関数でダース、MOD関数でその余りというのはよくわかりました。
後は個数が12個以下だとエラーが出るのを何とかしたいのですが。


466 名前: デフォルトの名無しさん 投稿日: 02/11/13 21:05
ユーザーが同じソフトを2つ起動しないようにするにはどうすればよいのでしょうか?


467 名前: 最凶VB厨房 投稿日: 02/11/13 21:20
>>466
http://www.google.com/search?num=100&lr=lang_ja&q=App.PrevInstance


468 名前: 466 投稿日: 02/11/13 22:00
ありがとうございます。
App.PrevInstanceは知りませんでした。


469 名前: 466 投稿日: 02/11/13 22:10
Private Sub Form_Load()
  If App.PrevInstance = True Then
   フォームロードのところで End とか Unload Me とかやってみます。
  End If
END


470 名前: デフォルトの名無しさん 投稿日: 02/11/13 22:23
フォームモジュールに書いた Sub (〜_clik みたいなやつ)の中で、
標準モジュール内にある変数を呼ぶ時にパブリック変数を多用しているのですが
まずいですか?


471 名前: 最凶VB厨房 投稿日: 02/11/13 22:24
GoodLuck!


472 名前: 466 投稿日: 02/11/13 22:33
感謝です。
無事成功しました。


473 名前: デフォルトの名無しさん 投稿日: 02/11/13 22:34
フラットボタンとか作りたいんですけど、
オーナードローって、ウィンドウをサブクラス化して、メッセージ受信して、
そのメッセージによって後は自分で全部描画するってことでしょうか?
とりあえずボタンの色変えるぐらいはそんな面倒な事しなくてもできるだろ
と思ったんですが・・・できないんでしょうか。


474 名前: デフォルトの名無しさん 投稿日: 02/11/13 23:01
>>473
ボタンの代わりにピクチャボックスを使う。
とりあえず周りに線引いてボタンっぽいものを書いておく。
MouseMoveで浮き上がる絵を書いてタイマーON。
タイマーの中でAPIのWindowFromPoint使ってマウスがボタンの外に移動したのを
検出できるようにしとく。検出したらまた普通のボタンを描画。
MouseDownでボタン押下、イベント発動。

サブクラス化しない方法としてこんなのはどう?かなり横着してるけど。


475 名前: 473 投稿日: 02/11/13 23:36
なるほど。それは簡単ですね。
しかしボタン、チェックボックスぐらいは簡単に出来そうですが、
スクロールバーやリストボックス、タブストリップとかになると・・・う〜ん。
まぁ無駄なことはやめとけってことでしょうか・・


476 名前: デフォルトの名無しさん 投稿日: 02/11/14 00:25
空のテキストファイルを作成するにはどうしたらよいのでしょうか?
Open "test.txt" For Output As #1
Print #1,
Close #1
とやっても、改行コードが含まれたファイルが作成されてしまうのですが・・・


477 名前: デフォルトの名無しさん 投稿日: 02/11/14 00:29
>>476
Print #1, ;


478 名前: デフォルトの名無しさん 投稿日: 02/11/14 00:35
>>477
おお!できました。ありがとうございました。


479 名前: デフォルトの名無しさん 投稿日: 02/11/14 01:01
>>476てか、Print #の行かかなきゃいいだけじゃ・・・


480 名前: デフォルトの名無しさん 投稿日: 02/11/14 01:23
ExcelのVBAで質問です。
条件付書式で文字の色が変更されている状態の色を
マクロから取得することってできますか?
Cell(x,y).Font.ColorIndex だと、元々の色が取れてしまいます。


481 名前: んばばんばんば 投稿日: 02/11/14 09:57
質問です。データベースに入ってる複数項目のデータ
1 あああ  123 
2 いいいい 212
とかのレコードをVBのリストボックスに格納したら
1あああ123 
2いいいい212
となってずれてしまうのですがどうやったら列ごとにずれないで
格納できるのでしょうか?


482 名前: デフォルトの名無しさん 投稿日: 02/11/14 10:07
>>481
どうやって格納してるの?
というか、どの段階のことが聞きたいのかよくわからん・・
文字列の整形? それとも同じ位置になるように空白
入れてるつもりなのにズレるのか?
それなら、MS ゴシックとかの等幅フォントにすれば問題ない。
しかし個人的には、そういう場合にはリストボックスじゃなくて
グリッド系コントロール使うがな。


483 名前: デフォルトの名無しさん 投稿日: 02/11/14 10:09
ちなみに文字列整形のことから聞きたいのであれば、
どこまでやったかソースかなんか出したほうがいいと思われ


484 名前: んばばんばんば 投稿日: 02/11/14 10:11
やっぱグリッドのほうがいいですかねぇ。
別にテキストボックスにこだわる必要性はないんだけど・・・・

格納は各項目に当たる変数を作って(上の例なら番号、名前、数みたいな3つ)
それをテキストボックスの中で表示してます。


485 名前: デフォルトの名無しさん 投稿日: 02/11/14 10:21
>>484

だからそうじゃなくて、空白はちゃんと入れてるの?
”A”と”B”と”C”をただ連結しただけなら
”ABC”になるのはあたりまえでしょ。
”A ”と”B ”と”C”を連結したら
”A BC”になるよね。
そういう風に、ちゃんとそれぞれの文字列の位置が合うように
文字列への空白はしてるつもりなのか?


486 名前: デフォルトの名無しさん 投稿日: 02/11/14 10:24
”A B C”になるんだった。間違い。
ちなみにこういう空白挿入処理自体のやり方が
分からないなら、LenB StrConv String$ あたりを
キーワードに検索しる!


487 名前: んばばんばんば 投稿日: 02/11/14 11:41
みんな、ありがとさんくす。
えらく簡単にできた。


488 名前: デフォルトの名無しさん 投稿日: 02/11/14 12:57
すいません、質問なんですが
VBで参照するADO(.NETではなく)タイプライブラリのバージョンによる
違いを説明しているページを教えてもらえないでしょうか?
どれを参照すれば最適か調べたいもんで。
よろしくお願いします。


489 名前: デフォルトの名無しさん 投稿日: 02/11/14 15:31
はじめまして。
VB6.0でEXCELを使ったプログラムを組んでいます。
EXCELファイルを参照し、中身を編集した後に保存して終了したいのですが、
終了時にQuitメソッドを使うと、事前に保存しても
メッセージで”保存しますか”と聞かれてしまいます。
このメッセージを出さないようにすることは出来ないでしょうか。

よろしくお願いします。






490 名前: デフォルトの名無しさん 投稿日: 02/11/14 15:59
>>489
DisplayAlerts


491 名前: 489 投稿日: 02/11/14 16:36
>>490
ありがとうございました!
見事に表示されなくなりました。

重ねて質問しても宜しいでしょうか。
EXCELをQUITで終了した後、なぜかプロセスにEXCELが残ってしまい(終了しきれてない?)
保存したファイルが開けなくなってしまいます。
これを回避するにはどうしたらよいでしょうか。
もちろん、オブジェクトの開放(SET objEXCEL = Noting)は行っております。

何度も申し訳ありませんが、よろしくお願いします。





492 名前: デフォルトの名無しさん 投稿日: 02/11/14 16:43
>>491
ちょっと前にそっくりな質問があったが、それとは違うのか?
探してみ


493 名前: 489 投稿日: 02/11/14 16:44
>>492
すいません、同じような質問があったのですね。
確認してみます。



494 名前: 489 投稿日: 02/11/14 17:13
今確認して、同じように書き換えてみたのですがやはりダメでした。
どうしたらよいでしょうか。。。
以下ソースです。(関数名が日本語なのは仕様なので許してください)
Fnc_Excel出力 = False
Set objexcel = New Excel.Application
rsRecordset.ActiveConnection = cnObj
rsRecordset.CursorType = adOpenStatic
Call rsRecordset.Open(strSQL, cnObj)
If Dir(strFileName) = "" Then
Open strFileName For Output As #1
Close #1
End If
Set xlBook = objexcel.Workbooks.Open(strFileName)
Set xlSheet = xlBook.Worksheets(1)
xlSheet.Cells(1, 3).Value = strTitle
varFiledName = Split(strFiledName, ",")
intMax = CInt(UBound(varFiledName))
For i = 0 To intMax
xlSheet.Cells(2, i + 1).Value = varFiledName(i)
Next
xlSheet.Cells(3, 1).CopyFromRecordset rsRecordset
xlSheet.SaveAs strFileName
Application.DisplayAlerts = False
objexcel.Quit
Application.DisplayAlerts = True
Set xlSheet = Nothing
Set xlBook = Nothing
Set objexcel = Nothing
Set rsRecordset = Nothing
Fnc_Excel出力 = True


495 名前: 489 投稿日: 02/11/14 17:20
見づらくてすいません。。。
改行規制で引っかかってしまいまして。



496 名前: デフォルトの名無しさん 投稿日: 02/11/14 17:21
>>494
ざっと見た感じおかしなところはないようだが・・
とりあえず余分なコードを削って、現象が出る
最小限のサンプルを作ることをオススメする。
デバッグ手法の基本だよ。
ほかの人にも提出して確かめてもらいやすいし。


497 名前: 489 投稿日: 02/11/14 17:27
>>496
そうですね。すいません。
ちょっとシンプルにまとめてみます。


498 名前: 489 投稿日: 02/11/14 17:36
Public sub sub_Excel出力()
Dim objexcel As Excel.Application 'Excel
Dim xlBook As Excel.Workbook 
Dim xlSheet As Excel.Worksheet
Dim rsRecordset As New ADODB.Recordset
Dim i As Integer
Dim varFiledName As Variant '項目名保存
Dim intMax As Integer '項目数カウンタ

Set objexcel = New Excel.Application

Set xlBook = objexcel.Workbooks.Open("c:\test.xls")
Set xlSheet = xlBook.Worksheets(1)

rsRecordset.ActiveConnection = cnObj
rsRecordset.CursorType = adOpenStatic
Call rsRecordset.Open("select * from test", cnObj)

xlSheet.Cells(3, 1).CopyFromRecordset rsRecordset

xlSheet.SaveAs strFileName
Application.DisplayAlerts = False
objexcel.Quit
Application.DisplayAlerts = True

Set xlSheet = Nothing
Set xlBook = Nothing
Set objexcel = Nothing
Set rsRecordset = Nothing

End Function


499 名前: 猿並初心者 投稿日: 02/11/14 18:03
皆様昨日はおかげさまで助かりました。
私は今日も猿なので本日もよろしくお願いします。
VBSで元金X円、年利Y%、年数Z年をそれぞれテキストボックスに入力し、
複利計算として元利合計を出したいのですが。
さらに元利合計とX、YからのZの求め方や、
さらに元利合計とY、Zからの求め方などもお願いします。


500 名前: デフォルトの名無しさん 投稿日: 02/11/14 19:17
>>499
そんなもの調べれば分かるだろ。


501 名前: デフォルトの名無しさん 投稿日: 02/11/14 19:19
>>499
VBScriptでテキストボックス使えるレベルなら
自分で調べられるはず

> 複利計算として元利合計を出したいのですが。
> さらに元利合計とX、YからのZの求め方や、
> さらに元利合計とY、Zからの求め方などもお願いします。

ていうか激しくスレ違い
VBと全く関係ない
ウザイ


502 名前: デフォルトの名無しさん 投稿日: 02/11/14 19:34
関係ないけどVBSってランタイム無しでも動くの?

何かランタイム無しで動く言語やってたら便利そうなので、
必要なければやってみようかと。


503 名前: 最凶VB厨房 投稿日: 02/11/14 20:00
>>502
ほれ。
http://pc.2ch.net/win/kako/1009/10091/1009175619.html
http://pc3.2ch.net/test/read.cgi/win/1022248379/


504 名前: デフォルトの名無しさん 投稿日: 02/11/14 20:20
frmMainという名のフォームがあり、そこにはリストボックスがあって3種類のテキストファイル名が表示されてるとします。
そしてfrmTextViewというフォームがあり、frmMainのリストから選んだテキストを表示するフォームだとします。
その時、同時に複数のfrmTextViewを開けるようにしたいのですが、どうすればいいでしょうか。

つまりえーと、frmMainのあるテキストをfrmTextViewで開いた上、
更にそのfrmTextViewを開いたまま、また別のテキストを表示する全くおなじfrmTextViewを表示するような。

要するにSDIでありながら、MDIみたいに使える感じにしたいのです。
可能でしょうか。


505 名前: デフォルトの名無しさん 投稿日: 02/11/14 20:25
Newすればいいんでない


506 名前: 504 投稿日: 02/11/14 20:45
あー、こんな感じって事ですか?
Dim frmTextView As New frmTextView
frmTextView.Show

たしかに動いた(複数同じフォームが表示できた)。
けど、これがどういう意味なのか分からない。
MSDN読むか。


507 名前: デフォルトの名無しさん 投稿日: 02/11/14 20:48
宣言段階でNewするの駄目なんじゃなかったっけ。
なんでかすら知らないけど。


508 名前: デフォルトの名無しさん 投稿日: 02/11/14 20:52
dim hoge as frmtextview
set hoge = new frmtextview
がいいってこと?


509 名前: デフォルトの名無しさん 投稿日: 02/11/14 20:58
>>507
コレクションはNewで宣言するような


510 名前: 504 投稿日: 02/11/14 21:00
うーん、サッパリわからん。


511 名前: 502 投稿日: 02/11/14 21:02
>>503
サンキューっす。
今、MicrosoftのサイトからDLしてインストールしてみました。

これ、今、インストールしたものを実行する端末にもインストールしなくても動くものですか?
あと、これをVB6上で作って拡張子vbsで保存する方法ないっすか?
メソッドとかプルダウンで出た方が作るの早いですし。


512 名前: デフォルトの名無しさん 投稿日: 02/11/14 21:11
>>510
Javaとかやってればわかるんだけどね。


513 名前: 最凶VB厨房 投稿日: 02/11/14 21:28
>>511
win2000なら問題ないはずだ。
最初からver5.6(だっけ?)がインストールされている(はず)
win98とかだと、versionが古いから動かない可能性は高い。

後者は知らん。


514 名前: デフォルトの名無しさん 投稿日: 02/11/14 21:36
A = Inputbox(msg)

数字を入力してもAはVariant型なので文字列になりまが,数字にするにはどうしたら良いでしょうか。


515 名前: デフォルトの名無しさん 投稿日: 02/11/14 21:39
vbs厨ばっかだな・・・。


516 名前: デフォルトの名無しさん 投稿日: 02/11/14 21:46
なんでわざわざ「厨」をつけて馬鹿にする必要があるのだろう・・・。


517 名前: デフォルトの名無しさん 投稿日: 02/11/14 21:47
>>515
あっち行け


518 名前: デフォルトの名無しさん 投稿日: 02/11/14 21:48
>>515
vbsって何?


519 名前: デフォルトの名無しさん 投稿日: 02/11/14 21:53
vbsはWin板のWSHスレに逝け


520 名前: デフォルトの名無しさん 投稿日: 02/11/14 21:54
ここでいいじゃん。


521 名前: デフォルトの名無しさん 投稿日: 02/11/14 21:55
>>519
ぼちぼち胴衣。


522 名前: 最凶VB厨房 投稿日: 02/11/14 21:57
>>514
Val関数とかな。

>>519
>>1を100回読んで首吊って来い。


523 名前: デフォルトの名無しさん 投稿日: 02/11/14 21:57
>507-508
ttp://www.gj.il24.net/~nakasima/vb/tech/end/index.htm
ttp://www.interq.or.jp/www-user/komurak/progtec/030.htm



524 名前: デフォルトの名無しさん 投稿日: 02/11/14 22:00
つーかなにげにレベル高いぞ>WSHスレ
ここで質問している香具師に往かせてもなぁ…


525 名前: デフォルトの名無しさん 投稿日: 02/11/14 22:45
おとといVB始めたばっかりですが、今までExcel-VBAを多少。
こんなレベルで質問させて下さい。

ボタンをクリックしたら特定のテキストを、メモ帳なりエディタなり、
とにかくほかのアプリケーションに貼り付けたいのですが…。
ご指導よろしくです。


526 名前: デフォルトの名無しさん 投稿日: 02/11/14 22:53
>>525
clipboard.settext "hoge"


527 名前: デフォルトの名無しさん 投稿日: 02/11/14 23:08
VB使って、フォルダ内のWordファイルの全文検索って無理でしょうか。
Textファイルだと簡単なんですが。


528 名前: デフォルトの名無しさん 投稿日: 02/11/14 23:17
>>527
VBでWordを呼び出すなら簡単。
自力でやるならWord文書のフォーマットを調べる。


529 名前: 525 投稿日: 02/11/14 23:22
>>526
申し訳ないです。全く分かっていません。
たとえばbutton1をクリックすると同時に、
メモ帳に"hoge"という文字を貼り付けるには?

Private Sub Button1_Click(ByVal sender ........

の次に何が必要でしょうか。
なにせほかのアプリケーションとのやりとりが全く分からないもので。




530 名前: デフォルトの名無しさん 投稿日: 02/11/14 23:26
>>529
clipboardオブジェクトをヘルプなりGoogleなりで調べろ。
ちなみに、クリップボードにコピーするものであり、自分でペーストしないといけないので注意。


531 名前: デフォルトの名無しさん 投稿日: 02/11/14 23:27
>>529
メモ帳はボタン1をクリックしたときに起動するのか?


532 名前: 525 投稿日: 02/11/14 23:33
>>530
ひとしきり調べたのですが、出てくるのは上でおっしゃっているのと同じ
クリップボードへのコピーばかりで、その点は理解しています。

自分でペーストせずに(もちろんクリップボード経由でもいいですが)
メモ帳に貼り付けられないかということです。
初心者には無理がありますか??



533 名前: 525 投稿日: 02/11/14 23:35
>>531
一応起動させておいてから…。


534 名前: デフォルトの名無しさん 投稿日: 02/11/14 23:39
>>529
ttp://www.bekkoame.ne.jp/~ilgg/VBMain/VB/Memo/PlayMemo1.html
ttp://www.bekkoame.ne.jp/~ilgg/VBMain/VB/Memo/PlayMemo6.html


535 名前: デフォルトの名無しさん 投稿日: 02/11/14 23:39
>>525
ふーん。まあ、簡単だな。



536 名前: デフォルトの名無しさん 投稿日: 02/11/14 23:45
>528
>Word文書のフォーマットを調べる。
それやったらマイクソに訴えられそうな気が。
まあ、ほぼ100%無理だけど。


537 名前: 525 投稿日: 02/11/14 23:45
>>534
>>535
ありがとうございます。何とか解決しそうです。


538 名前: 525 投稿日: 02/11/14 23:47
>>534
ありがとうございます。何とかなりそうです。


539 名前: デフォルトの名無しさん 投稿日: 02/11/15 00:07
>>525
とりあえず、できた。
Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Sub Command1_Click()

Dim hwnd As Long, hcwnd As Long
hwnd = FindWindow("notepad", vbNullString)
hcwnd = FindWindowEx(hwnd, 0, "edit", vbNullString)
Clipboard.Clear
Clipboard.SetText "hoge"
Call SendMessage(hcwnd, &H302, 0, 0)

End Sub



540 名前: デフォルトの名無しさん 投稿日: 02/11/15 00:24
どうせなら直接 WM_SETTEXTすればいいのに


541 名前: デフォルトの名無しさん 投稿日: 02/11/15 00:35
>>530-540
525はVB.NETだということにまず気づけ。


542 名前: 525 投稿日: 02/11/15 06:09
>>541
.net 6.0 どちらでも試してました。
しかし助かりました。皆さんありがとうございました。


543 名前: デフォルトの名無しさん 投稿日: 02/11/15 08:16
>>541
.NETだとおもたけど.NET持ってないしー


544 名前: デフォルトの名無しさん 投稿日: 02/11/15 09:06
>>498
めちゃ遅レスだが、原因わかったぞ。
ソース出せと言った手前、答えないとなw

原因は、
>Application.DisplayAlerts = False
>objexcel.Quit
>Application.DisplayAlerts = True
この部分。
Application を objExcel.Application に置き換えてみ。

あと余談だが、「現象が確認できる最小ソース」ってのは

Dim objexcel As Excel.Application 'Excel

Set objexcel = New Excel.Application
objexcel.Visible = True
Application.DisplayAlerts = False
objexcel.Quit
Application.DisplayAlerts = True
Set objexcel = Nothing

こういうのを言うんだ。これでも現象は出せる。
テマヒマを惜しんでいたら、デバッグはできないよ。ほいじゃ。


545 名前: デフォルトの名無しさん 投稿日: 02/11/15 09:23
最大化のボタンをクリックした時に
Formの大きさをある程度の大きさ以上にしたくないのですが、

Private Sub Form_Resize()
Me.Width = 7500
とかすると エラーになっちゃいます。
どうしたら、最大化で サイズを変更できますでしょうか?




546 名前: デフォルトの名無しさん 投稿日: 02/11/15 09:33
>>545
WindowStateで調べて処理を分けるか、めんどくさきゃ
On Error Resume Next でエラーをシカトしてもいいんじゃない?


547 名前: デフォルトの名無しさん 投稿日: 02/11/15 09:36
>>545
最大化ボタンを無効にする


548 名前: デフォルトの名無しさん 投稿日: 02/11/15 09:37
つか最大化ボタンおしても最大化しないインターフェースって、すっげぇ気持ち悪いよ。


549 名前: デフォルトの名無しさん 投稿日: 02/11/15 09:39
>>545
これでいい?
Private Sub Form_Resize()
If Me.WindowState = vbMaximized Then
Me.WindowState = vbNormal
End If
Me.Width = 750
End Sub



550 名前: デフォルトの名無しさん 投稿日: 02/11/15 09:40
まちがた
Private Sub Form_Resize()
If Me.WindowState = vbMaximized Then
Me.WindowState = vbNormal
Me.Width = 7500
End If
End Sub



551 名前: 545 投稿日: 02/11/15 09:42
>>549
おおっ さんきゅっー

できたよー。


552 名前: デフォルトの名無しさん 投稿日: 02/11/15 09:42
>>551
でもそのインターフェースが糞だってのは
多分全員の意見だぞ。


553 名前: 545 投稿日: 02/11/15 09:57
いや 縦長で、横には 広げられないんだよなぁ。



554 名前: デフォルトの名無しさん 投稿日: 02/11/15 09:57
実行プログラムを選択するフォーム上で以下のようにプログラムを指定し:

FullExePath = App.Path & "\program1.exe"
中略:選択条件
FullExePath = App.Path & "\program2.exe"
中略:選択条件
FullExePath = App.Path & "\program3.exe"

プログラムを実行するフォーム上で以下のように実行すると、ときどき失敗することがあります:

RetVal = Shell(FullExePath)
If RetVal = 0 Then
MsgBox FullExePath & "の実行に失敗しました。"
End If

失敗した場合に備えて上記のようなメッセージボックスを指定しておくと、実行に失敗したときには正しいフルパスが表示されます。

なぜ、プログラムの実行に失敗することがあるのでしょうか?
失敗するのは最初に選択して実行したときではなくて、2回目以降選択したときのようです。

Visual Basic Version 6を使用しています。
Windows XP、Windows 98いずれでも同じ状況です。



555 名前: デフォルトの名無しさん 投稿日: 02/11/15 10:10
>>554
プログラムがない時は、エラーになる。


556 名前: デフォルトの名無しさん 投稿日: 02/11/15 10:28
>>554
ただのバグだろ


557 名前: デフォルトの名無しさん 投稿日: 02/11/15 10:41
>>554
「プログラムの実行に失敗」って、具体的にはどういう症状が出るんだ?
ただ指定プログラムが起動しないだけ?
それともなんかエラーメッセージが出るの?(あなたのMsgBox以外に、ね)


558 名前: デフォルトの名無しさん 投稿日: 02/11/15 11:56
>>554
On Error でエラーを潰したりしてないか?
Shell の前で On Error Goto 0 をしる。
または、
Shell の前で Err.Clear して、
Shell の後で MsgBox Err.Description をしる。


559 名前: 558 投稿日: 02/11/15 12:02
>>554
どうしてもエラーがわからなかったら、
ShellExecute() API や CreateProcess() + GetLastError() API を試す。


560 名前: デフォルトの名無しさん 投稿日: 02/11/15 12:05
>>554
> 失敗するのは最初に選択して実行したときではなくて、
> 2回目以降選択したときのようです。

「選択」 の意味がわからん。


561 名前: デフォルトの名無しさん 投稿日: 02/11/15 12:09
>>545-553
今更だが、こんなページを見つけたぞ。
「ウィンドウのサイズの範囲を制限するには?」
http://fumiyuki-web.hp.infoseek.co.jp/tech/tech005/


562 名前: Cogy 投稿日: 02/11/15 13:21
質問です。VBでSQLつかってデータをもってきてデータグリッドに入れて
表示させたいのですがデータグリッドの設定や使い方がよくわかりません。
(データの入れ方や、それ以前に行や列の設定の仕方も)
教えていただけませんか?


563 名前: デフォルトの名無しさん 投稿日: 02/11/15 13:26
>>562
何がわからないのかわからない。
とりあえずマニュアル嫁にしろ。


564 名前: Cogy 投稿日: 02/11/15 13:31
フォームにグリッド張り付けて・・・
そこから先がわかりません。マニュアル詳しい説明ないし。
MSDNでもわからず。


565 名前: デフォルトの名無しさん 投稿日: 02/11/15 13:37
>>564
ま。気長にやれや


566 名前: デフォルトの名無しさん 投稿日: 02/11/15 13:37
>>564
それだけじゃ誰も分かんないって。
グリッド貼り付けて、あなたはどうしたいの?
せめて疑問点をはっきりしろ。
いくら初心者スレとはいえ、使い方を1から全部
教えてくれるほどのお人よしはさすがにいないと思うぞ。
マニュアル読め。


567 名前: デフォルトの名無しさん 投稿日: 02/11/15 13:39
>>564
荒らすな


568 名前: デフォルトの名無しさん 投稿日: 02/11/15 13:40
>>564
データグリッドの仕様だけ調べたってどうしようもないでしょ。
SQL (何使ってるか知らないけど) 側の仕様も調べて、データグリッドでできることと
SQL (何使ってるか知らないけど) でできることをすり合わせていかなきゃ。


569 名前: Cogy 投稿日: 02/11/15 13:43
データグリッドにデータベースからSQLで持ってきたデータを
貼り付けたいのです。ですがサンプルコードなどもなく
データグリッドにデータを入れる事すらままなりません。
マニュアルというか与えられた資料には(新VB入門・林晴比古)
データグリッドには全く触れていないので役に立ちません。

ということです。


570 名前: デフォルトの名無しさん 投稿日: 02/11/15 13:49
>>569
つーか正規ユーザーならMSDN持ってるだろ。
それ参照しれ。
あと、与えられた参考書に載ってない・・・なんて文句は上司に言えw
ここではそんな個人的な事情言われても、困る。


571 名前: デフォルトの名無しさん 投稿日: 02/11/15 13:50
とにかく 「SQL」 って何なのかはっきりさせてくれないとどうしようもない。


572 名前: デフォルトの名無しさん 投稿日: 02/11/15 13:54
>>569
Data Grid は、ADO Data コントロールとセットで使うのが基本。


573 名前: デフォルトの名無しさん 投稿日: 02/11/15 13:58
■データグリッド(DataGrid)

・データグリッド(DataGrid) に Adodc から、データをセットするには、次の
ようにする。
実際には、Set DataGrid1.DataSource = Adodc1 はデザイン時に連結する。
あまりコードで連結はしない。

Dim dsn As String
Dim sql As String

dsn = "dsn=SAK3_ADO;uid=SAK;pwd=SAK"
sql = "select * from 受注m order by 受注番号"

Adodc1.ConnectionString = dsn
Adodc1.RecordSource = sql
DataGrid1.AllowAddNew = False
DataGrid1.AllowDelete = False
DataGrid1.AllowUpdate = False
Set DataGrid1.DataSource = Adodc1

・連結済みデータグリッド(DataGrid) の表示内容を変更するには、次のよう
にする。Adodc1.Refresh しないと、表示は変わらない。

Dim sql As String

sql = "select * from 受注m where 品番 like 'a%' order by 受注番号"

Adodc1.RecordSource = sql
Adodc1.Refresh



574 名前: デフォルトの名無しさん 投稿日: 02/11/15 13:59
http://www.nara-edu.ac.jp/~asait/data_base/grid_vb/grid_vb.htm


575 名前: デフォルトの名無しさん 投稿日: 02/11/15 14:48
>>544
545-560のご回答をありがとうございました。
おかげさまでエラーの原因がわかりました。

FullExePath = App.Path & "\program3.exe"
中略
RetVal = Shell(FullExePath)
If RetVal = 0 Then
MsgBox FullExePath & "の実行に失敗しました。"
Else
Set MyObject1 = CreateObject("Scripting.FileSystemObject")
Set MyObject2 = MyObject1.GetFile(SrcPath & "\" & SrcFile)
End If

質問には書かなかったのですが、上記Else以下で実行結果ファイルのコピー先を
指定していました。FullExePathが正常に実行されているときにShellから0以外が
返されるため、ファイルのコピー先が指定されないでエラーとなっていました。
exeファイルが正常に実行されてもShell()から0が返されないことがあるようですね?



576 名前: デフォルトの名無しさん 投稿日: 02/11/15 14:55
> exeファイルが正常に実行されてもShell()から0が返されないことがあるようですね?

・・・え?


577 名前: デフォルトの名無しさん 投稿日: 02/11/15 15:44
>>575
On Error Resume Next 等していたら
> RetVal = Shell(FullExePath)
これが失敗するとRetValへの代入は行われないわけだが。

つまり、呼ぶ前から RetValが初期化されてなければ
いけないのだが、その辺は大丈夫?


578 名前: 577 投稿日: 02/11/15 15:57
いや、575の文章をよく読むと俺の勘違いだわ。
というか一体何を言ってるのかサッパリわからんな。


579 名前: デフォルトの名無しさん 投稿日: 02/11/15 16:00
もう解決済みって言ってると思われ。


580 名前: デフォルトの名無しさん 投稿日: 02/11/15 16:42
自分のPCにIIS設定して、Basp21を使ってメールを送ろうとしました。
したら以下のようなエラーメッセージが。

553 xxx@xxxxx.xx.xx... Relay operation rejected to xxx@xxxxx.xx.xx

どうやっても直りません。。
なにか解決策ないでしょうか?
アドバイスお願いしますっ!


581 名前: デフォルトの名無しさん 投稿日: 02/11/15 16:58
>>580
そりゃスレ違いだろ。Basp21のスレ(あるのか?)で聞けば?


582 名前: デフォルトの名無しさん 投稿日: 02/11/15 17:01
>581
そうですか。。
すみません。。一応ASPでメール送信しようとしているので書き込ませていただきました。



583 名前: デフォルトの名無しさん 投稿日: 02/11/15 17:04
>>582
VB(Script)使ってるのは分かるんだけど、
エラーメッセージ出してるのはBasp21だろうから、
本質的な問題はVBにはないって意味でスレ違いね。
今調べてみたらBasp21の有益なスレはないみたいだが、
ASP系のMLではよく話題を見るので、エラーメッセージを
Googleしてみたら、なんか情報見つかるかもね。
がんがれ!


584 名前: デフォルトの名無しさん 投稿日: 02/11/15 17:19
がんがるほどのことではないが


585 名前: デフォルトの名無しさん 投稿日: 02/11/15 20:11
VB6.0から(IEを起動して)以下のようなページを参照する方法について
教えてください。(POSTです)

"http:// ip address /cgi/login.cgi"

パラメタとしてIDを渡したいです。

技術的にどのような方法がありますか。
サンプルソースなどあれば、教えていただけたら
うれしいです。

よろしくお願いします。




586 名前: デフォルトの名無しさん 投稿日: 02/11/15 22:04
>>585
Option Explicit
Public Explorer As SHDocVw.InternetExplorer
----------------
Private Sub Command1_Click()
Set Explorer = New SHDocVw.InternetExplorer
Explorer.Visible = True
Explorer.Navigate "http://doc"
End Sub
プログラム自体はこんなかんじだが、
その前に参照設定で
shdocvw.dll
を呼び出しておく必要がある。


587 名前: デフォルトの名無しさん 投稿日: 02/11/15 22:16
postについてはjavascriptの出番のような気がする。
(javascriptを埋め込んだドキュメントを上記の方法で開くとか。)


588 名前: デフォルトの名無しさん 投稿日: 02/11/15 22:25
navigateの引数でpost送信すれば?


589 名前: デフォルトの名無しさん 投稿日: 02/11/16 00:15
Private Sub Form_Load()
 Me.Show
End Sub
Private Sub Command1_Click()
 Dim a As Object
 Set a = New Form1
 Load a
End Sub
のような感じでフォームを再帰的に呼び出したいのですが、
このような使い方をして何か問題はありますか?(スタックオーバーフローは除く)

具体的に言うとオブジェクトレベルで宣言したオラクルセッションの変数が
上手く認識してくれないのですが、理由がわかりません/-;


590 名前: デフォルトの名無しさん 投稿日: 02/11/16 05:51
複数起動を禁止して、もう一度実行されそうになったらコマンドライン引数をすでに起動しているほうで取得したいんですが、
どうすればいいでしょうか。
複数起動禁止はApp.PrevInstanceをつかって。
コマンドライン引数の取得はcommand関数で出来たんですが、
もう一つ起動しようとしたときにコマンドライン引数を得る方法が分からないです。

ようするにタブブラウザとかで、すでに起動している状態で
URLをコマンドラインに付けて更に起動しようとすると、もう一つ起動したりしないで、
すでに起動しているほうで新しいタブでそのURLが開かれたりしますよね。
あんな感じのインターフェースを作りたいです。


591 名前: デフォルトの名無しさん 投稿日: 02/11/16 06:17
>>590
DDE使え


592 名前: デフォルトの名無しさん 投稿日: 02/11/16 08:32
>589
Newキーワードを使ってるって事は新しいインスタンスが生成される訳で、決して再帰している訳ではないのだが。
つぅか上手く認識してくれないって何よ?
もう死ぬほど繰り返されてきたことだが、具体的なエラーメッセージや必要と思われるソースを提示すれ。




593 名前: 590 投稿日: 02/11/16 08:36
>>591
どもです。
MSDNとにらめっこして送られてきたDDEコマンドに対しては処理するようには出来ました。
(ファイルタイプの設定でDDE通信の設定してやったらうまいこと動きました)
今度は多重起動されそうになったときにDDEコマンドを自分に対して送るような処理を書けって事ですよね。


594 名前: デフォルトの名無しさん 投稿日: 02/11/16 11:31
>>593
それよか、2重起動禁止はミューテックスでやって
引数は、FindWindowしてSendMessegeしたほうがよくない?


595 名前: デフォルトの名無しさん 投稿日: 02/11/16 12:32
USBで、MSCommのシリアル通信と同じようにデータを取り込みたいのですが、
どうすればデータを取り込めますか?
目的はGPSデータの取り込みです。


596 名前: デフォルトの名無しさん 投稿日: 02/11/16 14:43
http://www.otto.to/~kasiwano/toppage12.htm


597 名前: デフォルトの名無しさん 投稿日: 02/11/16 14:55
http://www.picfun.com/usb07.html


598 名前: デフォルトの名無しさん 投稿日: 02/11/16 16:30
ファイル操作のopenしっぱなしでプログラムを終了させていると不良セクタかなんかできてヤベーって
聞きますが、RecordsetやADOConnectionなんかもCloseせずに終了しちゃったりしたらヤベーのでしょうか。


599 名前: デフォルトの名無しさん 投稿日: 02/11/16 16:36
やばくないよ


600 名前: デフォルトの名無しさん 投稿日: 02/11/16 16:42
>>598
基本的に、Open したものは Close しないとヤバイ。
VB の場合、多くの資源は終了時に勝手に Close されるので問題無いが、
時々終了時に自分の持っている資源 (データベースのコネクションやロック)
を解放してくれない粗悪なコンポーネントが存在するので注意する。


601 名前: 600 投稿日: 02/11/16 16:45
あと、実行しているプログラムがクラッシュすると、かなりの終了時処理が
実行されない。
Close できるものは、できる時にそうしておくべきだ。

>>599
どういう根拠で?


602 名前:   投稿日: 02/11/16 16:47
>>601
VBランタイムが自動的に参照をクリアするから


603 名前: デフォルトの名無しさん 投稿日: 02/11/16 16:47
>>598
今時(つーか昔も?)openしたまま終了した程度で不良セクタが出来ることはない。
読み書き中にリセットとか電源を切ったらやばいかもしれんが。


604 名前: デフォルトの名無しさん 投稿日: 02/11/16 17:32
>>602
>>600


605 名前: 595 投稿日: 02/11/16 20:01
>>596-597
情報ありがとう!勉強してきまーす。


606 名前: デフォルトの名無しさん 投稿日: 02/11/16 21:51
>>600,601
( ´,_ゝ`)プッ



607 名前: デフォルトの名無しさん 投稿日: 02/11/16 22:25
今日からVBを始めたのですが質問させてください。

ボタンを押すと図形が一定の場所に移動する、というプログラムを組んでいるのですが
図形が移動している様子(アニメーションとして)はどうやったら表示できるのでしょうか。
例えば図形を上方へスライドさせたい時、

Do Whileで回して
オブジェクト名.Top = オブジェクト名.Top - 1

などとしてもうまく動かないです。何か他にやり方はあるのでしょうか?
超初心者な質問で大変心苦しいのですがどうかご教授願います。


608 名前: デフォルトの名無しさん 投稿日: 02/11/16 22:35
>>607
タイマーコントロールを使う


609 名前: デフォルトの名無しさん 投稿日: 02/11/16 22:35
>>607
Refresh?
あと、X 座標と Y 座標を同時に動かすなら Move の方が良い。


610 名前: 609 投稿日: 02/11/16 22:36
>>608
ああ、それだ。


611 名前: デフォルトの名無しさん 投稿日: 02/11/17 02:17
Form1のcommand1_clickに
Form2.Show:Unload Form1
と書いて、
Form2のCommand1_Clickに
  Dim tmevent As Long
  tmevent = timeSetEvent(10, 1, AddressOf TimeProc, 0, 1)
Form_QueryUnloadに
  Load Form1:timeKillEvent tmevent
と書き、
標準モジュールに
API timeKillEventとtimeSetEventを宣言し
Public Function TimeProc(ByVal IDEvent As Long, ByVal uReserved As Long, ByVal dwUser As Long, ByVal dwReserved1 As Long, ByVal dwReserved2 As Long) As Long
  Unload Form2
End Function
と書いて実行するとかならずVBごと落ちるのですが、どこに問題があるのでしょうか?
タイミングの問題かと思い、unloadのタイミングを多少変えてみたのですが効果はありませんでした。


612 名前: 607 投稿日: 02/11/17 02:59
>>608-610
ありがとうございました。やっと動きました!
ただまた質問が出てきてしまいました。
タイマーコントロールに条件をつけてプロシージャから抜け出すことは出来ますか?
指定した位置まで図形が達したと同時にタイマーも止めたいのです。
ExitやWhileではうまく止まらなかったのですが、これもまた別の方法があるのでしょうか。
ご指摘あればどうぞよろしくお願いします。


613 名前: デフォルトの名無しさん 投稿日: 02/11/17 02:59
>>611
MSDN に載っていなかっただろうか。(バージョンによってはそうでないかも知れない)
| アプリケーションは、PostMessage、timeGetSystemTime、timeGetTime、timeSetEvent、
| timeKillEvent、midiOutShortMsg、midiOutLongMsg、および OutputDebugString を
| 除いて、コールバック関数の中から、どんなシステム定義された機能も呼ぶべきでは
| ありません。

これに反する事はやってはいけない。
それを守らなければ、何が起こるかわからない。
Unload なんかしたら、DestroyWindow() やら DeleteObject() やら、おびただしい量の
API が呼ばれる。
これらを見切れないようでは、timeSetEvent() を呼んではいけない。

そもそも VB は途方も無く遅いので、高精度タイマを使うのには向いていない。
本当に高精度タイマが必要なのか?
タイマーコントロールが使えないかを検討する事。

なお、コールバック関数が 1 度しか呼ばれない事を期待する場合は、最後の引数に 1
ではなく 0 を指定する。
これにより、timeKillEvent() を呼び出す必要がなくなる。
より良い方法では、マジックナンバーの代わりに TIME_ONESHOT、TIME_PERIODIC 定数
を定義する。


614 名前: デフォルトの名無しさん 投稿日: 02/11/17 03:01
>>613
指定した位置まで図形が達したと判定できた瞬間に、タイマーコントロールの Enabled を
False に設定する。


615 名前: 607 投稿日: 02/11/17 03:10
>>614
速レスありがとうございます!
試したところうまく動きました。本当に助かりました〜。


616 名前: デフォルトの名無しさん 投稿日: 02/11/17 11:42
>>589

> のような感じでフォームを再帰的に呼び出したいのですが、
> このような使い方をして何か問題はありますか?(スタックオーバーフローは除く)

(1) 個別のインスタンスごとのライフサイクル(「寿命」)を意識してきっちり管理しないと
  めちゃくちゃなことになる。

(2) ヘタレが小手先の技に走ると、バグの温床となりやすい。

(3) 大半の場合、そのテのテクニックは開発者の自己満足に過ぎず、実用性に欠ける。
  (↑これが一番重要)


617 名前: デフォルトの名無しさん 投稿日: 02/11/17 12:38
SetFocusはフォームが画面の一番上に無いと実行できませんでしたが、
あるフォームが画面の一番上にあるかどうかはどうやって取得するのでしょうか。
If 一番上 Then
Text1.SetFocus
End If
とやってみたいです。


618 名前: デフォルトの名無しさん 投稿日: 02/11/17 12:40
GetActiveWindowとか。


619 名前: 617 投稿日: 02/11/17 16:58
>>618さんありがとうございます
そのキーワードで検索してきます



620 名前: デフォルトの名無しさん 投稿日: 02/11/17 19:49
検索してからレスした方がいいと思った


621 名前: デフォルトの名無しさん 投稿日: 02/11/17 20:00
http://tokyo.cool.ne.jp/masapico/api_GetForegroundWindow.html


622 名前: 620 投稿日: 02/11/18 01:07
>>618-621さん
なるほどお。
GetForegroundWindowいうのもあるんですね。
GetActiveWindowもどちらもよさげですね。
ところで
ユーザのWindowsフォルダが
C:にあったりD:にあったりでこまってます。
ユーザのwindowsフォルダにアクセスするにはどうすればいいでしょうか?



623 名前: デフォルトの名無しさん 投稿日: 02/11/18 03:49
>>622
620は俺だが?

質問の答えはGetWindowsDirectory。ぐぐっても出てくるぞ


624 名前: デフォルトの名無しさん 投稿日: 02/11/18 14:18
質問でつ。WinXP VB6

かなり大きな(300kほど)csvデータを読み込んで
それに複数条件で検索をかけ、条件に合うものだけを
ListViewに表示する、というものを作っているのですが
何か重いです。多分私の組み方が悪いためだと思うのですが。

ちなみに現時点でのコードは
最初にscvの全データを読み込んで一行ずつ解析し、
配列を組んである変数に各データを格納して
検索時にはその配列内をガーっと検索かけてやって
全部の条件に合う配列番号を取得して、
ListViewにその配列番号のデータを表示しています。

これだと検索は速いのですが、最初の格納にかなり時間がかかります。
どうにかもっと効率的なやり方は無いものでしょうか?


625 名前: ◆fy3fqyFzv2 投稿日: 02/11/18 14:20
外部アプリケーションのListViewコントロールの内容を取得したいのですが、
どうすればいいですか?
どうもそのListViewはオーナードローのようなので
どうやって取得していいのかわからないのです。


626 名前: デフォルトの名無しさん 投稿日: 02/11/18 14:29
>>624
1 行を取り出すには Line Input の方が速かったと思う。

あと、VB を使うのを諦めれば速くなるかも知れない。
VB は大量データの処理に向いていない。


627 名前: デフォルトの名無しさん 投稿日: 02/11/18 14:39
>>624
格納に時間がかかるってのは、もしかして
格納時にListViewをVisible=Falseにしてやればいいって
だけのオチじゃないだろうね?
「どこで時間を食ってるのか」を、憶測じゃなく、実際に
計ってみるのが高速化への第一歩と思われ。
いわゆるボトルネットを探すというやつだ。がんがれ。


628 名前: デフォルトの名無しさん 投稿日: 02/11/18 14:47
VB6で
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
とやると、実行時エラー「オートメーションエラーです」
とでてしまいます。いい方法は無いでしょうか。


629 名前: デフォルトの名無しさん 投稿日: 02/11/18 14:49
>>628
エラーにならないぞ
当方Win2K + IE6 + VB6


630 名前: デフォルトの名無しさん 投稿日: 02/11/18 15:02
>>629
IEがはいってないんでないの


631 名前: デフォルトの名無しさん 投稿日: 02/11/18 15:05
>>630
普通に考えたらそうだよね。
でも今時そんなマシン探すほうが難しいような・・
まったくの推測だけど、少なくともIE4以上が
入ってれば上記のソースは問題なさそう。


632 名前: デフォルトの名無しさん 投稿日: 02/11/18 15:14
IE(3.0以上)が入ってなければ
「ActiveXコンポーネントはオブジェクトを作成できません」
というエラーになるはずだよね。

多分 IEは入っていて、本当はCreateObjectの行ではなく
その後ろの省略してる行でエラーになってんじゃないの?


633 名前: デフォルトの名無しさん 投稿日: 02/11/18 15:16
>>632
きっとそうだ。


634 名前: デフォルトの名無しさん 投稿日: 02/11/18 15:24
じゃあ、628はDQNってことで。


635 名前: 628 投稿日: 02/11/18 15:30
今までいけてたのに、急にそうなったから
何でかな?と思って聞いてみました。
Win98+5.5SP2


636 名前: デフォルトの名無しさん 投稿日: 02/11/18 15:36
>>627
ボトルネット、って何だ?


637 名前: 628 投稿日: 02/11/18 15:40
ちなみにVBSで
Set IE = WScript.CreateObject("InternetExplorer.Application")
とやると通ります。。。


638 名前: デフォルトの名無しさん 投稿日: 02/11/18 15:43
>>637
WindowsUpdateをしたらいいかも。つーか、IEの再インストールつーか。


639 名前: デフォルトの名無しさん 投稿日: 02/11/18 16:26
>>636
ボトルメールの.NET対応版・・・って書こうと思ったけど
あまりにもつまらなくてやめにした

>>638
そういうので直るんだったら、VBSのも通らないような・・
628よ、ほんとのほんとに、さっき書いたソース「のみ」を
書いた状態でエラーが出るんだな?
ほかの行でエラーが出てるなんてDQNなオチは勘弁だぞ。


640 名前: 628 投稿日: 02/11/18 16:26
タスクトレイで常駐状態(非表示+最小化)の
場合になるようです…。


641 名前: デフォルトの名無しさん 投稿日: 02/11/18 16:27
>>640
主語が抜けてるが。
「なにが」タスクトレイで・・ なんだ?
自分のアプリ?


642 名前: デフォルトの名無しさん 投稿日: 02/11/18 16:37
>>628
ほかのPCでも試してみたの?


643 名前: 628 投稿日: 02/11/18 16:50
>>641
すんません。自アプリです。
右クリックメニューを出してそのメニュー
選択時にその処理をしてます。
>>642
開発環境が1台しかありません。。。
exe化してもう一台でやってみましたが、
やっぱりエラーが出ます。


644 名前: デフォルトの名無しさん 投稿日: 02/11/18 16:54
しつこいようだが、

Dim IE As Object
Call MsgBox("1")
Set IE = CreateObject("InternetExplorer.Application")
Call MsgBox("2")

と書いた場合、1が表示されて、2が表示される前にエラーが
出るんだな? 推測じゃなくて、実際に試して報告して欲しい。


645 名前: デフォルトの名無しさん 投稿日: 02/11/18 17:01
タスクトレイのサンプル拾ってきてやってみたけど問題ないよ


646 名前: 628 投稿日: 02/11/18 17:23
>>644
その通りです。2の表示が出る前に
オートメーションエラーが出ました。
普通のフォーム(最小化もせず、
非表示でもない)から同じコードを
流すと、1も2も表示されます。
エラーも出ません。


647 名前: デフォルトの名無しさん 投稿日: 02/11/18 17:28
>>646
うへえ。疑ってすまんかった。
それじゃ俺には原因分からんわ。
ほかの人、よろしこ。


648 名前: 628 投稿日: 02/11/18 17:30
とりあえず自分で解決策を見つけてみます。
考えていただいた方、ありがとうございました。


649 名前: デフォルトの名無しさん 投稿日: 02/11/18 17:30
タスクトレイの処理がおかしいのかな。
どのサンプルから拾ってきたの?
それとも全部自作?
サブクラス化した?
しないやり方?


650 名前: デフォルトの名無しさん 投稿日: 02/11/18 17:35
サブクラス化で思い出したが、
サブクラス化するとVBの停止ボタンで停止できない(押すと不正落ちする)のはなんとかならないの。
これが嫌でサブクラス化を敬遠してしまう。


651 名前: デフォルトの名無しさん 投稿日: 02/11/18 18:00
フォームからフォームを開いて、双方のフォームをタスクバーに表示したいのですが、
プロパティの ShowinTaskbar = True にしても、最初のフォームのみしかタスクバーに表示されません。
双方ともタスクバーに表示するにはどうしたらよいのでしょうか。


652 名前: デフォルトの名無しさん 投稿日: 02/11/18 18:08
>>651
・・・されるけど?


653 名前: デフォルトの名無しさん 投稿日: 02/11/18 18:11
>>651
まさか、デザイン時に False に設定してて、それを実行時に True に変えようと
してる?


654 名前: 651 投稿日: 02/11/18 18:22
プロジェクト>プロパティからスタートアップの設定をフォーム1にし、
標準モジュールからフォーム1を呼び出し、フォーム1でオブジェクトとして
フォーム2を呼び出しています。
判りづらい説明で申し訳ありません(汗



655 名前: デフォルトの名無しさん 投稿日: 02/11/18 19:09
>>654
だから、再現しないってばさ。
653 についてはどうなの?


656 名前: 651 投稿日: 02/11/18 19:11
ソース抜粋です。

標準モジュール(Module1)
Public Sub Main()
Dim obj As Object
Set obj = Form1
Load obj
obj.Show 1
End Sub

フォーム1(form1 ボタン一つだけのフォーム)
Private Sub Command1_Click()
Dim obj As Object
Set obj = Form2
Load obj
obj.Show 1
Set obj = Nothing
End Sub

>>653
ShowinTaskbarはプロパティウィンドウで変更していますが、やっぱり表示されません…


657 名前: デフォルトの名無しさん 投稿日: 02/11/18 19:26
>>656
モーダルフォームはタスクバーに表示できない。

あと、何でそんな面倒な事やってるの?
obj に代入しなくてもいきなり Form1.Show 1 とかで済むのに。
Load も要らない。


658 名前: 651 投稿日: 02/11/18 19:33
>>657
ありがとうございました。
お手数をおかけして申し訳ありませんでした。


659 名前: デフォルトの名無しさん 投稿日: 02/11/18 19:38
だね。Loadするんならshowじゃなくてvisible=trueにするよね


660 名前: デフォルトの名無しさん 投稿日: 02/11/18 19:45
つーかまあ、モーダルフォームをタスクバーに表示する必要性が感じられないんだが・・・。

>>659
それではモーダルにできめぇ。


661 名前: デフォルトの名無しさん 投稿日: 02/11/18 20:45
>>658
検索したらこんなページ見つけたYO!!!
http://www.fukkey.dyndns.org/pins/vb/020425/36425.html
不気味だ・・・。


662 名前: デフォルトの名無しさん 投稿日: 02/11/18 21:00
.netでウィンドウズ9Xのアプリケーション作成できるの?


663 名前: デフォルトの名無しさん 投稿日: 02/11/18 21:08
そういや、.netより前のVisual StudioでDOSのアプリケーションって作成出来たっけ?


664 名前: デフォルトの名無しさん 投稿日: 02/11/18 21:09
PC初心者も安心して使えるこのソフト!

 http://hp.vector.co.jp/authors/VA031513/


665 名前: 617 投稿日: 02/11/18 21:41
>>623さんありがとうございす。
>620は俺だが?
書き間違いに今気が付きました。



666 名前: デフォルトの名無しさん 投稿日: 02/11/18 21:43
DTPicker以外にも日付の入力が出来るコントロールって標準でありますか?

うちの会社の先輩、DTPickerでカレンダーを表示して、
月を変更して他の部分を押しただけで日付が確定されるってことを気にしているんですよ。。
禿げしくどうでもいいことなのに。

もう一つ質問。DTPickerで日付をWクリックした時のみ日付の変更を確定するってことは出来ますか?


667 名前: デフォルトの名無しさん 投稿日: 02/11/18 22:37
ExcelVBAでなのですが、
WindowsMediaAudioファイルの
再生時間を取得することってできますか?

何か特別なモノが必要なのでしょうか?
よろしくお願いします。



668 名前: デフォルトの名無しさん 投稿日: 02/11/18 23:13
>>662
95以外ならね。


669 名前: デフォルトの名無しさん 投稿日: 02/11/18 23:44
>>667
CurrentPositionプロパティは現在の再生経過時間をあらわしている。


670 名前: デフォルトの名無しさん 投稿日: 02/11/19 02:12
>>624
今どのくらいかかってて、目標がどのくらいとかよくわからないからなんとも言えないけど、
ちなみに Redim は遅いよ。
あと、ListView は Add Set Set ... より Add一発の方が早い。
With を使って無駄な解決を減らすとか。

というか、そもそも
[1] ファイル読み込み [2]配列に格納 [3]配列の全要素を対象に検索条件の判定 [4]表示
よりは
[1] ファイル読み込み [2]検索条件の判定 [3]表示
の方が早いような気がする。。。


671 名前: 667 投稿日: 02/11/19 08:34
>>669
すいません。
現在の再生時間ではなく、
1ファイルの長さです。

例)1:30/5:45の場合、5:45の方です。

よろしくお願いします。


672 名前: デフォルトの名無しさん 投稿日: 02/11/19 09:15
>>671
ファイル全体の時間は
Durationプロパティ


673 名前: 質問です 投稿日: 02/11/19 11:51
VBScriptで文字列の全角→半角の変換を行いたいのですが、
VBにあるStrConvのような関数が無いようですので、
これは力技で総当り変換のロジックを組むしか無いのでしょうか?

ぐぐっていろいろ検索しましたがズバリなページを見つけることが
出来ませんでした。もし何かいい方法がありましたらよろしくお願いします。


674 名前: デフォルトの名無しさん 投稿日: 02/11/19 13:10
>>673
VBで半角に変換するActiveX作って、それを呼び出したら?


675 名前: デフォルトの名無しさん 投稿日: 02/11/19 13:28
>>673
総当り変換関数作ったら公開してください


676 名前: デフォルトの名無しさん 投稿日: 02/11/19 14:23
>>675
総当り関数なんて必要? >>674の方法が楽でいいと思うが。
VBランタイム入れたくないとか、理由あるなら別だが。


677 名前: デフォルトの名無しさん 投稿日: 02/11/19 14:31
>>676
>>674のやり方なら自分でやっても楽だけど
総当り関数は自分で作るのはめんどいから作ってくれっていってるの。
いつか役に立つこともあるかもしれないし。


678 名前: デフォルトの名無しさん 投稿日: 02/11/19 14:51
>>677
なるほど
でもVBScriptで作った総当たり関数なんてクソ重そうだな。
使い道にもよるが・・・


679 名前: デフォルトの名無しさん 投稿日: 02/11/19 15:49
SQL文でカンマをエスケープさせる方法がわからずになやんでいます。
where MOJI='〜,〜'←エラーが出る
,,2こ重ねたり\,としてもダメでした。


680 名前: デフォルトの名無しさん 投稿日: 02/11/19 15:50
>>679
何に対してSQL文を発行してるかも言わずに
答えろというのか。無茶なヤシだな。


681 名前: 679 投稿日: 02/11/19 16:17
Accessのテーブルに対してです。



682 名前: 679 投稿日: 02/11/19 16:41
わかりました。では。


683 名前: 667 投稿日: 02/11/19 16:46
>>672
ありがとうございます。

ところでこの場合必要なものって
WindowsMediaFormatSDKがですか?
自分なりに探しては見たのですが、
いまいち詳しく紹介してるところが見つからなかったので…。

よろしくお願いします。


684 名前: デフォルトの名無しさん 投稿日: 02/11/19 16:57
>>683
こちらはVBAでなくVBを使用していて、
VBの画面から
表示→オブジェクト ブラウザ→MediaPlayer
を選ぶとMediaPlayerコントロールのメソッドやプロパティ一覧が表示された。
これにもあまりくわしくはのってなく、
Durationに関してもわざわざ英語辞書で意味を調べる苦労をしたぐらいだ。



685 名前: デフォルトの名無しさん 投稿日: 02/11/19 17:00
Excelでメディアプレイヤーを使ったことはないのでオレからはこれ以上は何も言えない。


686 名前: デフォルトの名無しさん 投稿日: 02/11/19 17:53
Excel以外でメディアプレイヤーを使ったことがあれば情報を提供できるはずなんだが、
VB厨はよく言語とコンポーネント等をいっしょにして考えるよね。
VBで〜を使うにはどうすればいいですか? みたいに。


687 名前: デフォルトの名無しさん 投稿日: 02/11/19 19:16
じゃなんと考えれば良いの?


688 名前: デフォルトの名無しさん 投稿日: 02/11/19 23:45
VB6です。
メニューエディタでメニューを作っているのですが、
セパレータ(?)が作れません。

 上書き保存(S)
 名前をつけて保存(A)...
 -------------------   ←これ
 終了

どうやったら作れるか教えてください。


689 名前: デフォルトの名無しさん 投稿日: 02/11/19 23:52
エクセルのVBAについてここできいてもいいでしょうか、っていっても聞くけど。
再描画を行われないようにするにはどうすればいいのでしょうか?
データの書き換えが終わるまで再描画を切っておきたいのですが。


690 名前: デフォルトの名無しさん 投稿日: 02/11/19 23:54
>>688
Captionを"-"に。


691 名前: 688 投稿日: 02/11/20 00:13
>>690
ありがd
できますた。


692 名前: デフォルトの名無しさん 投稿日: 02/11/20 01:57
>>688
ヘルプ見ろよ


693 名前: デフォルト名無しさん 投稿日: 02/11/20 02:12
Visual Basic 6 です
ビープ音10回鳴らして終了するプログラムってどうやるんですか?


694 名前: デフォルトの名無しさん 投稿日: 02/11/20 02:25
beep
beep
beep
beep
beep
beep
beep
beep
beep
beep
end


695 名前: 693 投稿日: 02/11/20 02:37
ヽ(`Д´)ノウワァァン 


696 名前: デフォルトの名無しさん 投稿日: 02/11/20 06:36
>>689
Application.ScreenUpdating = False
詳しくは ScreenUpdating でヘルプ


697 名前: 696 投稿日: 02/11/20 07:36
>>696
ありがとうございます。
worksheetやworkbookのメソッドで捜していたから見つからなかったみたいでした。


698 名前: デフォルトの名無しさん 投稿日: 02/11/20 07:39
(゚Д゚)??


699 名前: デフォルトの名無しさん 投稿日: 02/11/20 08:40
島谷タソに強引に迫られてみたい…ハァハァ(´Д`;)

島谷「あのね、今日実はお願いがあるんだ…うふふ…」
漏れ「えっ何?言ってみてよ、ひとぴょん」
島谷「私も男の子がオシッコしてるとこ見てみたいなぁ〜…な〜んてねっ♪クスッ」
漏れ「えっ!?も、漏れの!?」
島谷「ねぇいいでしょ?私オチンチンの先からオシッコ出てるの見ると、何だか『可愛い〜』って思っちゃうの…♪」
漏れ「うん…じゃぁいいよ、ひとぴょん」

ジョボボボ…

島谷「立ってオシッコするのって、何か不思議だね…私、ずっと見てても全然飽きないの…」
漏れ「えっ別に普通だよ…ねぇ、ど、どこ持ってるの?ひとぴょん」
島谷「ここ持ってると、オシッコ通ってるのが物凄くよく分かるね…うふふ…」
漏れ「やめてよひとぴょん…恥ずかしいよ…」

(省略されました・・全てを読むにはここを押してください)


700 名前: デフォルトの名無しさん 投稿日: 02/11/20 08:43
>>694

For文使えや。


701 名前: デフォルトの名無しさん 投稿日: 02/11/20 09:51
>>694

Sleepも使えや。


702 名前: デフォルトの名無しさん 投稿日: 02/11/20 10:37
>>694

End使うヤシはDQN。


703 名前: デフォルトの名無しさん 投稿日: 02/11/20 10:50
>>700-702
つーかおめーら文句逝ってる暇有ったら書けよ屑


704 名前: デフォルトの名無しさん 投稿日: 02/11/20 11:36
RealPlayerで複数のファイルを連続で再生するのに合わせて
テキストを表示させたいのですが、できるでしょうか?

1.aaaa.rmの再生と同時にaaaa.txtを表示
2.bbbb.rmの再生と同時にbbbb.txtを表示
.
.
.

という感じです。ヒントだけでもいいので何か教えてください。

shellとGetExitCodeProcessを使おうと思ったのですが、
shellで動かしたRealPlayerが一つのrmを再生し終わっても
終了コードが返ってくるわけではないのでダメでした。


705 名前: デフォルトの名無しさん 投稿日: 02/11/20 11:46
RealPlayerを起動して表示するなら無理です。
自分のウインドウにrmを表示させてやれば再生してるか
終了してるかわかりますよね?


706 名前: 投稿日: 02/11/20 12:44
うっさい、ハゲ


707 名前: デフォルトの名無しさん 投稿日: 02/11/20 12:46
>>706
ハゲはおまえじゃ、ハゲ


708 名前: 704 投稿日: 02/11/20 13:22
ありがとうございます。RealPlayerのOCXを使えばいいってことですね?
で、
http://www.jp.realnetworks.com/resources/sdk/vbplay.html
http://service.jp.real.com/help/library/guides/extend/methods.htm#1019460
に辿り着いたのはいいんですが、
「一つのrmが終わってから次のrmへ」というのが、どうもできません。
できたら、またヒントをお願いします。

「自分のウインドウにrmを表示させる」というのはできました。


709 名前: 704 投稿日: 02/11/20 13:26
× OCX
○ ActiveX コントロール


710 名前: すみませんが 投稿日: 02/11/20 13:33
エクセルのVBAなんですが
空のセルを以下のように0という文字で所得しようとするとエラーになります。
If Cells(a, b) = "" Then age(a, x, y, b) = "0"
調べてみても良く分からないので簡単に教えて頂けないでしょうか。


711 名前: デフォルトの名無しさん 投稿日: 02/11/20 13:40
>>709
おなじことやんか。

>>710
前後の状況を説明せずに断片的かつ中途半端な情報だけをまる投げして
他人のリソースで問題を解決しようとする姿勢が間違っています。

ジグソーパズルのピース1、2枚だけで全体の完成イメージを推理しろと
要求するようなものです。


712 名前: 704 投稿日: 02/11/20 13:48
>>711
「同じか、似たようなもん」っていうあいまいな知識はあるんですけど、
コンポーネントのファイルは、dllになってたので。
また見当違いなこといってますかね。


713 名前: デフォルトの名無しさん 投稿日: 02/11/20 13:48
>>708
http://service.jp.real.com/help/library/guides/extend/methods.htm#1019460
再生状態の情報
GetPlayState()
0 停止中
になればいいんじゃない?


714 名前: デフォルトの名無しさん 投稿日: 02/11/20 13:50
あいまいであれば、調べる事も大切かと。


715 名前: 704 投稿日: 02/11/20 13:57
>>713
ケアレスミスでした。
やっぱりGetPlayStateでいいんだって安心してすぐ発見できましたです。
助かりました。


716 名前: デフォルトの名無しさん 投稿日: 02/11/20 13:58
おっと
http://service.jp.real.com/help/library/guides/extend/events.htm#1014246
OnPlayStateChange(newPlayState)
でイベントがくるとおもうので、その中でだろうね。



717 名前: デフォルトの名無しさん 投稿日: 02/11/20 13:59
OnPresentationClosed()
は違うんかぃ>>716 @自分


718 名前: デフォルトの名無しさん 投稿日: 02/11/20 14:02
>>704
なぜそんなことをしたいのか知らんが、SMILとか使えば解決する問題じゃないのか?


719 名前: デフォルトの名無しさん 投稿日: 02/11/20 14:09
そこにVBがあるから
じゃないのでしょうか。


720 名前: 704 投稿日: 02/11/20 14:33
やっぱりだめでした。ケアレスミスはそのとおりだったんですが、根本的に。

Form1.RealAudio1.Source = strRm
Form1.RealAudio1.DoPlay

Do Until Form1.RealAudio1.GetPlayState = 0
Loop

という感じにしたのですが。

>>716
ありがとうございます。
「その中で」っていうと、どういうことでしょう?

>>718
SMILって??

また、あとで来ます。


721 名前: デフォルトの名無しさん 投稿日: 02/11/20 14:40
RealAudio1には
OnPlayStateChange(newPlayState)
というイベントでてきません?
そのイベントの中で、やるのじゃないかなあ
OnPresentationClosed()
というイベントはファイル終了時に来ないでしょうか?
それと、DoPlayの直後ってGetPlayState = 0になってる可能性ありません?
Do-Loopの中、DoEventとかないと、停まってしまったりして。
そのまえに、失敗したらエラーか停まったか、状況がわからんと、レスできないような。



722 名前: デフォルトの名無しさん 投稿日: 02/11/20 14:46
ShowOpenでファイルを開くときに、
Text1.Text = CommonDialog1.FileName
だったらテキストボックス1に絶対パスでファイル名が入りますが、
これを相対パスでそこのフォルダのファイル名だけを表示させるには
どうしたらいいでしょうか?


723 名前: 投稿日: 02/11/20 15:04
うっさい、ハゲ


724 名前: デフォルトの名無しさん 投稿日: 02/11/20 15:09
>>722
App.Path を引く。
"..\" を先頭に付加。


725 名前: デフォルトの名無しさん 投稿日: 02/11/20 15:15
>>722
文字の右から取っていって、¥や.や:とかがあったら、そこまで。とか。


726 名前: 724 投稿日: 02/11/20 15:17
訂正
"..\"

".."の間違い。


727 名前: デフォルトの名無しさん 投稿日: 02/11/20 15:19
>>722
InStr関数やMid関数やLen関数やらを駆使しろ


728 名前: デフォルトの名無しさん 投稿日: 02/11/20 15:21
相対パスが得たいのか?ファイル名が得たいのかどっちだ?
相対パスを得る必要なんてあるのか?


729 名前: デフォルトの名無しさん 投稿日: 02/11/20 15:24
別ドライブにファイルあってApp.Path轢いても。。。


730 名前: デフォルトの名無しさん 投稿日: 02/11/20 15:33
つーか、コモンダイアログってカレントディレクトリ変えるから、その都度
相対パスも変わるべ。
引くなら App.Path じゃなくて CurDir だろ。


731 名前: デフォルトの名無しさん 投稿日: 02/11/20 15:34
ネットワークパスはどーするんだ。


732 名前: デフォルトの名無しさん 投稿日: 02/11/20 15:36
CurDirの文字数とFileNameの文字数ひいて、Right関数で、、、
顧問ダイアログって、複数のファイル選択できたっけ?できたらコレ使えないんだろうけど。


733 名前: デフォルトの名無しさん 投稿日: 02/11/20 15:37
ネットワークパスでおかしくなることありましたっけ?


734 名前: 718 投稿日: 02/11/20 16:06
>>720
SMILっていうのは・・・といいたいとこだが、使っているのを見ただけで俺もよく知らん。
もしかしてなんか間違っているかもしれんので調べてくれ。もはやVBの話題ではないが。
とりあえず、出来ることを適当に書く。もしかしたらプラグインが要るかもしれない。見当ハズレの事を書いていたらごめん。

複数のファイルを連続で再生。↓という内容のファイルを拡張子ram(rmでもいいかも)作り開く。
file://aaa.rm
file://bbb.rm
file://ccc.rm

動画の下に歌詞をつける(動画:aaa.rm 歌詞:aaa.rt) ↓という内容のファイルを拡張子smiで作成
<smi>
 <head><layout type="text/smil-basic-layout">
  <region id="videoregion" top="0" left="0" width="316" height="236" background-color="#000000" fit="hidden"/>
  <region id="textregion" top="237" left="0" width="316" height="25" background-color="#000000" fit="hidden"/>
 </layout></head>
 <body><seq><par>
  <video src="aaa.rm" id="aaa1" region="videoregion" fill="freeze"/>
  <textstream src="aaa.rt" id="aaa2" region="textregion" fill="freeze"/>
 </par></seq></body>
</smil>

歌詞 ↓という内容のファイルを拡張子rtで作成
<window duration="00:30.0" bgcolor="black" height="25" width="316" type="generic" loop="false" wordwrap="true">
<required><B><CENTER><font size="1" face="Arial" color="#FFFFFF">
<time begin="00:00.00"/><clear/>aaaaa<br/>bbbbb
<time begin="00:10.00"/><clear/>ccccc
<time begin="00:20.00"/><clear/>ddddd
</B></required></CENTER></font>
</window>


735 名前: デフォルトの名無しさん 投稿日: 02/11/20 16:24
>>732
Flags プロパティ に cdlOFNAllowMultiselect をセットすれば複数選択できる。
分解した後のファイル名に対してなら、その方法で逝ける。

ファイル名はスペースで区切られる。
やめてくれ。
vbNullChar とかだったら Split で一発分解できるのに。


736 名前: デフォルトの名無しさん 投稿日: 02/11/20 16:27
スペースでバラバラにしたら、ファイル名の中のスペースまでバラバラなんだろうね(笑)


737 名前: デフォルトの名無しさん 投稿日: 02/11/20 17:08
cdlOFNNoLongNames 使ってもいいんだが、いちいちロングネームに変換するのが結局面倒。
コモンダイアログ API は vbNullChar 区切りの名前を返すから、それをそのまま戻して
くれればいいのに余計な事しやがる。


738 名前: デフォルトの名無しさん 投稿日: 02/11/20 17:08
すみません、インストーラについての質問なんですが、

複数のプロジェクト(exe)を含めたインストーラって作れるんでしょうか?
(そもそもインストーラ自体作ったことがない厨なモンで^^;どなたか親切な方よろしくm(__)m)


739 名前: デフォルトの名無しさん 投稿日: 02/11/20 17:10
>>738
まずVBのバージョンぐらい書け。
VB6のディストリビューションウィザードのことを言ってるなら、
複数のEXEを含めることはできるぞ。


740 名前: デフォルトの名無しさん 投稿日: 02/11/20 17:10
age ちった・・・

ファイルのオープンとセーブのダイアログなら、自分でクラスモジュール書いた方がいいな。
カスタムコントロールも要らなくなるし。


741 名前: 738 投稿日: 02/11/20 18:07
>>738 です。バージョンは6.0SP5です。

みすずん検索で見つけた、「(´-`).。oO(VB初心者質問スレ Part11)」
http://pc.2ch.net/tech/kako/1024/10243/1024380249.html

のスレで、ディストリビューションウィザードの記述を見つけました。

さっそくいじってみましたが、SETUP.LSTを直接編集するということでしょうか?
どう直せばよいのかわかりません。


742 名前: デフォルトの名無しさん 投稿日: 02/11/20 18:11
>>741
ウイザード中、GUIでもできますよ。
ファイルを追加するのにEXEをつっこみゃOKでは


743 名前: 738 投稿日: 02/11/20 18:52
できました、できました!
途中にファイルを追加する所があったんですね(^^;
あとは、追加するexeの依存ファイルも確実に加えてあげればいいわけですね。
ありがとうございました。


744 名前: デフォルトの名無しさん 投稿日: 02/11/20 19:02
beep * 10 で 10回鳴らすことは可能でしょうか?


745 名前: デフォルトの名無しさん 投稿日: 02/11/20 19:10
できないのでしょうか?BEEPを10回は。
BEEPの音を録音して、編集して10回リピートさせたWAVをつくり、再生<おいおい
すなおにWAVを10回ならしてはだめですか。


746 名前: デフォルトの名無しさん 投稿日: 02/11/20 19:12
for i = 0 to 9
beep
next
じゃだめなの?


747 名前: 744 投稿日: 02/11/20 19:22
>>745-746さんありがとうございます。


748 名前: 704 投稿日: 02/11/20 19:40
>>721
Sub RealAudio1_OnPresentationClosed()
を作ることで解決しました。
(実は「イベント」というのが分からなかった)

>>718
おお!これいいですね。一変にテキストが表示しきれないので、
テキストのスクロールを自動化したいなぁと思っているのですが、
SMILだと、このtime beginってので解決できそうですね。
ちょっと迷うところです。

でも、はじめに欲しかったものができて満足に使ってます。
レスくれた人ありがとうございました。


749 名前: デフォルトの名無しさん 投稿日: 02/11/20 19:49
どういたしまして。<と普通に書いてみる


750 名前: デフォルトの名無しさん 投稿日: 02/11/20 21:38
教えてください。
VBAでディレクトリへのパスを取得するダイアログを使うことはできるのでしょうか?
できるのなら関数名でいいので教えてください。よろしこ。


751 名前: デフォルトの名無しさん 投稿日: 02/11/20 21:42
>>750
SHBrowseForFolder() API、続けて SHGetPathFromIDList() API を呼ぶ。
初期ディレクトリを設定する場合はコールバック関数が要るのでやや面倒。


752 名前: デフォルトの名無しさん 投稿日: 02/11/20 22:00
>>751

> コールバック関数が要るのでやや面倒。

一度きっちりしたものを作り込んだら、コンポーネント(または共通関数)化
して使い回すのが正解かも?


753 名前: デフォルトの名無しさん 投稿日: 02/11/20 22:42
クライアントPCに受信されているメール文書を読み込むことのできるAPIとかクラスってあります?
OE、Outlook、Becky、Eudora、Almailといったあたりはみんな受信メールの保存方法が違うから
統一したアクセス手段なんてないのかな?
ADOみたいな感じで、メーラが何であるかを意識しないでメール文書を取得できたら最高なんだけど・・・








754 名前: デフォルトの名無しさん 投稿日: 02/11/20 22:49
Datula がリストに挙がっていない・・・

>>753
無理じゃないか?


755 名前: デフォルトの名無しさん 投稿日: 02/11/20 22:50
なんか、お馬鹿な質問が多いね、、、
さすがVBすれだ(藁


756 名前: デフォルトの名無しさん 投稿日: 02/11/20 22:50
サーバにメールが云々ならわかるけど、クライアントに取り込んだメールを、
ましてやいろんなメーラのデータを奪うのは無理かと。


757 名前: デフォルトの名無しさん 投稿日: 02/11/20 22:51
作成可能ならすごいウイルスつくれそうだな


758 名前: デフォルトの名無しさん 投稿日: 02/11/20 23:18
>>753 >>756
クライアントに簡易メールサーバを立てれば良いんだけどね。
なんかいいソフト無いかな。
前はLinuxマシンにimapサーバ立ててやってたんだけど今Linuxマシン壊れてて。


759 名前: デフォルトの名無しさん 投稿日: 02/11/20 23:19
>>755
うるさい。ボケ。



とか言ってあげると喜ぶのかな?


760 名前: デフォルトの名無しさん 投稿日: 02/11/20 23:27
>>758
□サーバにメールを残す
にチェックとか?


761 名前: デフォルトの名無しさん 投稿日: 02/11/20 23:39
>>759
うるさい。ボケ。


762 名前: デフォルトの名無しさん 投稿日: 02/11/20 23:40
>>759
うるさい。ヴォケ。


763 名前: デフォルトの名無しさん 投稿日: 02/11/20 23:54

 はい
           
 ε ⌒ヘ⌒ヽフ   ブヒー
 (   ( `ω´) ≡3
  しーし─J

    っと。

↓次の質問ドゾー。


764 名前: デフォルトの名無しさん 投稿日: 02/11/20 23:56
オレってすげーんだがどうしたらよろしいでしょうか?


765 名前: デフォルトの名無しさん 投稿日: 02/11/20 23:55
オレってすげーんだがどうしたらよろしいでしょうか?


766 名前: デフォルトの名無しさん 投稿日: 02/11/21 00:04
>>765の方が>>764よりタイムスタンプ早いのはどゆこと?


767 名前: デフォルトの名無しさん 投稿日: 02/11/21 00:14
>>764-765
確かにすげーわ・・・(;´Д`)


768 名前: デフォルトの名無しさん 投稿日: 02/11/21 00:19
どちらかが光の速さに近いスピードで動いてるのでは?


769 名前: デフォルトの名無しさん 投稿日: 02/11/21 00:22
グラフを描かせて、カーソルを当てると、要素の情報を表示させたいのですが。
ピクチャボックスに点を打たせるだけじゃムリですよね?
教えてください。


770 名前: デフォルトの名無しさん 投稿日: 02/11/21 00:27
>>769
AutoRedraw を True にしてグラフを書く。
MouseMove で座標を判定してそれに応じて情報を表示する。


771 名前: デフォルトの名無しさん 投稿日: 02/11/21 01:22
質問です
IEのインスタンス(複数)実行中に、
それらの中から任意のDocumentオブジェクトを参照することは可能ですか?
VBSでやろうとしてます。


772 名前: デフォルトの名無しさん 投稿日: 02/11/21 01:47
>>735-737
本気でそんなこと言ってるの?
FlagsプロパティにcdlOFNExplorerフラグついてりゃ、
vbNullChar区切りだって。
何も付加していないデフォルト状態でこのフラグは付いてるし。



773 名前: デフォルトの名無しさん 投稿日: 02/11/21 02:15
 ∧||∧
(  ⌒ ヽ
 ∪ 。ノ
  ∪∪


774 名前: デフォルトの名無しさん 投稿日: 02/11/21 07:49
VBSって、VB6みたいにプロパティなどのヒントが出る、プログラミング環境っつうか、
そういうエディタとか無いでしょうか。
ヘルプも欲しいな。。。素人が始めるにはキツいっす。。。


775 名前: デフォルトの名無しさん 投稿日: 02/11/21 08:40
>>774
VBでプロトタイピングしてから、VBSに書き換える。
(なんか違うような予感・・・)


776 名前: 投稿日: 02/11/21 09:44
λ...... ここ変だよ・・        λ......       λ......
  λ......            λ...... 失敗だったネ…
 λ......      λ......
        λ......                  λ...... 逃げていく…
    λ......             λ......
                λ......
 λ......       λ......          λ...... みんな逃げていく…
λ...... ここ変だよ・・        λ......       λ......
  λ......            λ...... 失敗だったネ…
 λ......      λ......
        λ......                  λ...... 逃げていく…
    λ......             λ......
                λ......
 λ......       λ......          λ...... みんな逃げていく…


777 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:01
ボタンにキーボードショートカットをつけるにはどうしたら良いのでしょうか。
いわゆる、どこにフォーカスがある時でも、Alt+Aでリスト項目を全部選択する、みたいな。
まさか全コントロールのKeyPressに書かないといけないのでしょうか…。



778 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:30
Image15.Picture = LoadPicture()
などするときにこの「15」の部分をを変数に置き換える方法って
あるのでしょうか?情報求ム!


779 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:32
>>778
オブジェクト名変えれやタコ


780 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:34
>>779
オブジェクト名を変数名と同一にするてこと?


781 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:34
>>778
Controlsプロパティについて調べれ。


782 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:39
>>778

Me.Contorls("Image" & Afo_Na_778_Wa_Itte_Yoshi).Picture = LoadPicture()



783 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:40
みたが使い方がいまいちわからん。
説明無さ過ぎ。
object は、「対象」一覧内のいずれかのオブジェクトを指すオブジェクト式です。
解説
コントロール オブジェクトを操作するには、Controls プロパティから取得した参照を使います。
これじゃ初心者にはわからん。


784 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:43
>>783
お前、質問する側ならまず言葉遣いなんとかしたほうがいいぞ。
あと答えは782が書いたのがそのものズバリだ。


785 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:43
>>782
アりガトサンクス。ただどこを変えればいいのか教えてください。


786 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:44
>>784
以後気をつけます。


787 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:45
ここまで書かれて分からないのか・・・・・?
初心者スレとはいえ・・・・・
これはひどすぎる・・・・・


788 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:47
Afo_Na_778_Wa_Itte_Yoshi
この部分が変数なのかなんなのか
みたことの無い人間にはわからないのが普通かと思うんですが・・


789 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:52
>>788
アンダーバーで繋がっているのは一つの単語として認識されるのは分かるよな?
つーことはこれ以外に変数っぽいのは無いだろうが、このバカチンが!!

ヘルプと見比べてみろ。
あと、ヘルプでダメなら、教えてもらったプロパティ名などで
Googleかけるなり機転を効かせられる知能を持て。
人間はいまだ日々進化し続ける生物ですよ?


790 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:53
>>788
常識的に考えて変数に決まっとろーが。
なにかを返す関数の可能性もあるが、
それにしたって文字列と結合してる以上、
何かの文字列を返すものだと推測するのが妥当。
それぐらいも推測できないんだったら、プログラミングは
ちょっと適性がないと言わざるを得ないぞ・・・・
繰り返すが、782が答え「そのものズバリ」だ。
あれ以上を求めるなら、それは完全動作するサンプルをくれってこと、
つまり丸投げをするってことだぞ。


791 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:55
               (´⊆`)?<788

     パシャ パシャ
   ∧_∧
   (   )】   すごい人がいる!
.   /  /┘    記念に一枚撮っておこう。
  ノ ̄ゝ


792 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:57
だいたいImage15のまま使うヤシがいまだに現存するんだなぁ。
不思議。


793 名前: デフォルトの名無しさん 投稿日: 02/11/21 11:59
788さん、ありがとう。
あなたのおかげで、自尊心がかなり回復しますた。


794 名前: デフォルトの名無しさん 投稿日: 02/11/21 12:00
すんませんなぁ。まだ扱って2日目なもんでね。
みなさんごりっぱごりっぱ。よほど初めからできたらしい。

教えてくれたことには感謝。


795 名前: デフォルトの名無しさん 投稿日: 02/11/21 12:01
↑こいつ偽物。


796 名前: デフォルトの名無しさん 投稿日: 02/11/21 12:02
これ以上いじくると、こいつ荒らしに変貌するぞ。
もう放置、放置。

次の方どうぞ



797 名前: デフォルトの名無しさん 投稿日: 02/11/21 12:03
言い訳キタ━━━━━━(゚∀゚)━━━━━━ !!!!


798 名前: デフォルトの名無しさん 投稿日: 02/11/21 12:04
ブチャラティィィィィィィィィィィ!!!!!!!


799 名前: 777 投稿日: 02/11/21 12:12
ええっと、じゃあ、この空気の中申し訳ないです。>>777おながいします。


800 名前: デフォルトの名無しさん 投稿日: 02/11/21 12:15
AltじゃなくてCtrlでよければCtrl+Aをメニューに仕込んで非表示


801 名前: デフォルトの名無しさん 投稿日: 02/11/21 12:17
>>799
それってそもそもUI的に変じゃない?
メニューを作って、それにショートカット&望む動作を
割り当てるんじゃダメなのか。


802 名前: デフォルトの名無しさん 投稿日: 02/11/21 12:18
ケコーン


803 名前: デフォルトの名無しさん 投稿日: 02/11/21 12:21
アイーン


804 名前: 777 投稿日: 02/11/21 12:33
なるほど、メニューかぁ。
ありがとうございます。

>>801
例にと思って考えたのですが、確かにおかしかったですね。スマソです。


805 名前: 771 投稿日: 02/11/21 15:02
>>774
Visual InterDev使うとそこそこ入力支援してくれます。
VB6を使うなら 参照設定で「Microsoft Html Object Library」をチェックすると
入力支援やらオブジェクトブラウザやら使えて便利になるんだけど
移植しないといけないです。

ちょっと変えて再質問です。
CreateObject("InternetExplorer.Application") で新しく作ったインスタンスの制御はできるのですが、
既にあるインスタンスの参照を取るにはどうしたらよいのでしょうか?
GetObject() あたりを調べているのですが、クラス名がさっぱしわかりません。
そもそもGetObject()であってますか?


806 名前: デフォルトの名無しさん 投稿日: 02/11/21 15:24
>>777
ボタンのCaptionに"hoge(&A)"って設定するんじゃダメですか?


807 名前: 投稿日: 02/11/21 15:34
>>795
うっせえんだよ!このたこが!


808 名前: デフォルトの名無しさん 投稿日: 02/11/21 17:40
>>777
もしかして質問の内容は
テキストボックスが画面にたくさんあります。
全ての Changeイベント、KeyPressイベント、、、で共通の処理をやりたいです。
全てのコントロールに同じことを書かなくてよい方法はありませんか?
ってこと?


809 名前: デフォルトの名無しさん 投稿日: 02/11/21 17:40
Gridって言うと、MSFlexGridばっかり使っているのですが、
Excelみたいな直接セルに書き込めるGridを最近よく見るので
使いたいのですが、何というGridなのでしょうか。
また、これは昔からあるのですか?


810 名前: デフォルトの名無しさん 投稿日: 02/11/21 17:41
>>809
VS-FlexGrid


811 名前: 628 投稿日: 02/11/21 18:20
>>808
多分そう。
KeyPreview使うだけなのになぁ、と思いながら
見てた。


812 名前: 811 投稿日: 02/11/21 18:27
名前が…。


813 名前: デフォルトの名無しさん 投稿日: 02/11/21 21:24
VB6.0+access98で開発してます。
ADOを使ったレコード単位の排他ロックについて教えてください。
rs.Open時に,adLockPessimisticを指定しても,ロックされません。
rs.Update のところで一瞬ロックされているようです。
あるレコードの編集中は登録またはキャンセルされるまで、
ずっとロックしていたいのです。
他端末からそのレコードにアクセスした際にエラーが返るように
したいのです。
上手く出来る方法ありませんか?



814 名前: デフォルトの名無しさん 投稿日: 02/11/21 21:31
Accessを使わないという手はだめですか


815 名前: sakura 投稿日: 02/11/21 21:36
皆さんはじめまして。
教えてください。

VB6のプログラムです。
FTPを使ってファイルを送信(ADD)したあとに、
送信元と送信先のファイルのサイズを比較して、
全件送信成功したかどうかを判別したいのですが、
サイズの比較をするようなコマンド(?)が見当たりません。

手順としては、
@送信元ファイルのサイズ取得(このサイズをAとします)
A送信先ファイルを受信してサイズ取得(このサイズをBとします)
Bファイルを送信(ADD)する
C再度、送信先ファイルを受信してサイズ取得(このサイズをB’とします)
DB’−B=Aであれば正常終了

このような方法を考えています。
上記以外によい方法はないのでしょうか?
よろしくお願いします。

おわり。



816 名前: デフォルトの名無しさん 投稿日: 02/11/21 21:45
FTPを自作してるのかコントロールつかってるのか外部コマンドかわかりませんが、
FTPが成功していればそれを信じてはだめ?


817 名前: デフォルトの名無しさん 投稿日: 02/11/21 21:50
Bファイルをよみこむんなら、Aと足してBに上書きすればいいのでは。


818 名前: デフォルトの名無しさん 投稿日: 02/11/21 21:50
>>815
SIZEコマンドで取得できるよ。


819 名前: デフォルトの名無しさん 投稿日: 02/11/21 21:55
>>815
どうじょ
http://x68000.startshop.co.jp/~68user/net/ftp-1.html


820 名前: sakura 投稿日: 02/11/21 22:06
みなさん、お返事ありがとうございます

「インターネットトランスファコントロール」を使ってます。
も一度いうと、VBのプログラム内でサイズの比較をしたいです。

ちなみに、SIZEコマンドは引数はどんなかんじですか?



821 名前: デフォルトの名無しさん 投稿日: 02/11/21 22:13
そのコントロールは使ったことが無いでよくわかりませんが、
サイズを取ってくるくらいであれば>>819さんのだしたとこと
winsockコントロールで
http://www.mars.dti.ne.jp/~torao/rfc/rfc959-ja.txt
を見ながら作れるとおもいますよ。


822 名前: デフォルトの名無しさん 投稿日: 02/11/21 22:42
↑のは中途半端な翻訳でしたか、、、
http://hp.vector.co.jp/authors/VA002682/rfc959j.htm
もちろん原文もみたほうがいいのかもしれませんが。


823 名前: ぼぼぼ 投稿日: 02/11/22 00:00
質問です。WinsockでTCPセッションを張った状態でデータ長を指定して、
送れますか?ループ文にsenddataを繰り返すとどうしても2つ目のデータ
の後ろに3つ目のデータがくっつき、またくっつき、、、、、^^;
大変大きいパケットとなり送信してしまいます。
dim data(46) as byte
for i = 0 to 10000
winsock1.senddata data
doevents
'この後dataの一部を変更
next i

結果:一発目は100byteくらい?・その後はくっつくので1518Byteでとんでく 笑
目標:一発目と同様にデータ長でデータを送信したい


824 名前: デフォルトの名無しさん 投稿日: 02/11/22 00:07
くっつき、、、といわれても、、、
データに区切りようのデータとか、データ長とか、含めてないのでしょうか?
socketとはそんなもんです。


825 名前: デフォルトの名無しさん 投稿日: 02/11/22 00:15
>>823
TCP はストリーム。
ストリームを理解しろ。


826 名前: ぼぼぼ 投稿日: 02/11/22 06:38
>824
>825

う〜ん、それはわかるのですが、実現できているソフトも
あるのですよ。それはVCで作成しているのですが、VBでも
ストリームをうまく扱えないかなぁと思いまして。


827 名前: デフォルトの名無しさん 投稿日: 02/11/22 07:04
>>826
実現できているソフトはどうやって実現できていると判断したのか?


828 名前: ぼぼぼ 投稿日: 02/11/22 07:36
SnifferでTCP1セッションで104Byteで5000発10秒以内に送れていました。
まぁ経路注入ツールなんですけどね


829 名前: ぼぼぼ 投稿日: 02/11/22 07:45
訂正。
Snifferででなく、Snifferは確認するアプリとしてです。


830 名前: デフォルトの名無しさん 投稿日: 02/11/22 08:22
受信側はどうしてんの?
区切りは?




831 名前: 投稿日: 02/11/22 09:30
>>828
SendCompleteイベントで送信を確認してから次を送ってはどうでしょう。

効率悪そうだけど。


832 名前: デフォルトの名無しさん 投稿日: 02/11/22 11:26
VBでFor文中でCのcontinueのような感じで
ある条件の時、For文の頭に戻りたいんだけど
goto使うしかないですか?


833 名前: デフォルトの名無しさん 投稿日: 02/11/22 11:27
>>832
うん。


834 名前: 832 投稿日: 02/11/22 11:29
>>833
了解です
ありがとう


835 名前: デフォルトの名無しさん 投稿日: 02/11/22 11:31
>>832
でっかいif文書くとかな。


836 名前: 832 投稿日: 02/11/22 11:34
そうですね
あんまりgoto使いたくないんでif文使って逃げます>>835


837 名前: デフォルトの名無しさん 投稿日: 02/11/22 11:35
俺は、gotoの方がいいと思うが。


838 名前: デフォルトの名無しさん 投稿日: 02/11/22 11:38
>>837
うむ。制御構造を意図に反した使い方をすべきではないな。
continueとかbreakはどちらかというとgoto寄りだな。


839 名前: デフォルトの名無しさん 投稿日: 02/11/22 11:40
俺はどんなにネストが深くなろうともだんぜんifだな・・・


840 名前: デフォルトの名無しさん 投稿日: 02/11/22 11:41
on error以外でgotoは使いたくない
構造化をみっちり仕込まれたからな


841 名前: デフォルトの名無しさん 投稿日: 02/11/22 11:44
HTML + VBScript の質問です。
<Script src="age.vbs" type="text/VBScript"></Script>
という方法以外で、別ファイルに定義した関数を呼び出す方法ってありますか?


842 名前: デフォルトの名無しさん 投稿日: 02/11/22 11:45
>>839,840
なんかVB房っぽいな


843 名前: 832 投稿日: 02/11/22 11:48
あやっぱ修正2行で済むんでgoto使います。
ちんぽー


844 名前: デフォルトの名無しさん 投稿日: 02/11/22 11:49
>>842
だな。

適材適所。使った方がより良いのなら使うべき。

って言うかそれ一昔前のgoto理論だな。


845 名前: デフォルトの名無しさん 投稿日: 02/11/22 11:50
ジサクジエン・・・ (・∀・)


846 名前: デフォルトの名無しさん 投稿日: 02/11/22 11:52
>>844
俺もおもた。
なんか古い考えを真に受けちゃってるって感じ。



847 名前: デフォルトの名無しさん 投稿日: 02/11/22 11:54
goto理論・・・・・・?
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=goto%E7%90%86%E8%AB%96


848 名前: デフォルトの名無しさん 投稿日: 02/11/22 11:57
>>847
非常にシンプルだ。

gotoは死んでも使うな。

そういわれる理由も考えずそれを振り回すだけのバカが最近やたらと多い。と。
ルールは理由があって出来るもんだ。



849 名前: デフォルトの名無しさん 投稿日: 02/11/22 11:57
釣りだろ。gotoだとスパゲッティーソースになるから
どーだこーだとか噛み付いてくるのを待ってる感じ。
そんな論争はスレ違いだし、もう飽き飽きだ。
それより誰か>>841に答えてやれ。
漏れは無理だがw


850 名前: デフォルトの名無しさん 投稿日: 02/11/22 11:58
>>848
だから噛み付くなってば。不毛だ。


851 名前: デフォルトの名無しさん 投稿日: 02/11/22 12:01
>>849
>そんな論争はスレ違いだし
そうなのか?

VB厨はアルゴリズムとか美しいコードとかは無視してとにかく動くもん納入しろと。
アホなんだから。

ってことか?


852 名前: デフォルトの名無しさん 投稿日: 02/11/22 12:04
>>851
どういう拡大解釈だよ それはw
ここは初心者”質問スレ”だぞ
gotoとifの論争がどうしてもやりたきゃ、よそに
専用スレでも立ててそこで好きなだけやれ


853 名前: デフォルトの名無しさん 投稿日: 02/11/22 12:08
誘導しておくか

goto文を恐れなく使う兵達のスレ
http://pc3.2ch.net/test/read.cgi/tech/1021364372/l50


854 名前: デフォルトの名無しさん 投稿日: 02/11/22 13:46
gotoを選択するやつも、If文でどんどん深いネストを作るやつも
どっちもcontinue使いたがるやつも、どれもいけていない。
関数化で意味ごとに小分けしろ、アルゴリズムを見直せ。逆転の発想だ。



855 名前: デフォルトの名無しさん 投稿日: 02/11/22 13:49
>>854=空気の読めないヤシ


856 名前: デフォルトの名無しさん 投稿日: 02/11/22 13:58
はい、次の質問者の方、どうぞ



857 名前: デフォルトの名無しさん 投稿日: 02/11/22 14:15
gotoは使うべき


858 名前: わからねー 投稿日: 02/11/22 15:42
VBからwininet.dllのFtpFindFirstFileを使ってファイルの情報を取ったのですが、
ファイル名の所に”21ニ・17:36 .”ていう値が入ってしまうのです。
欲しいのはファイル名だけ(この場合は”.”)なんですけど、
解決策の分かる方はいらっしゃいませんでしょうか?



859 名前: デフォルトの名無しさん 投稿日: 02/11/22 16:08
>>858
使い方を間違っているんだから、
どういうコード(API宣言、APIで使用している構造体の宣言、その関数を読んでる箇所)を
提示してよね。


860 名前: 投稿日: 02/11/22 16:24
>>858
参考になりそうなページを見つけたので貼っておきます。
http://vbvbvb.com/jp/gtips/0101/gFtpFindFirstFile.html



861 名前: 858 投稿日: 02/11/22 17:05
>860
既に参考にしてたりします。
というかそれを、そのまま盛り込んだんだけどね。

>859
というわけで、860さんの紹介してくれたサイトのソースで
何処を直すというか教えてくれるとうれしいです。



862 名前: 858 投稿日: 02/11/22 17:13
補足します。860が照会してくださったサイトの

Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternateFileName As String * 16
End Type
の構造体のうち、dwFileAttributes、nFileSizeHigh、nFileSizeLow
dwReserved0は正しく取れているようです。



863 名前: デフォルトの名無しさん 投稿日: 02/11/22 17:23
typedef struct _WIN32_FIND_DATA {
 DWORD dwFileAttributes;
 FILETIME ftCreationTime;
 FILETIME ftLastAccessTime;
 FILETIME ftLastWriteTime;
 DWORD nFileSizeHigh;
 DWORD nFileSizeLow;
 DWORD dwReserved0;
 DWORD dwReserved1;
 TCHAR cFileName[ MAX_PATH ];
 TCHAR cAlternateFileName[ 14 ];
} WIN32_FIND_DATA, *PWIN32_FIND_DATA;

合わせてなおるかどうかわからないけど
cAlternateFileName の長さちがうyo


864 名前: デフォルトの名無しさん 投稿日: 02/11/22 17:25
>>863 補足。
VB側は
cAlternateFileName As String * 14



865 名前: 863 投稿日: 02/11/22 17:38
>>862
ていうか今 >>860 のサイトの内容をコピって貼り付けたけど
なんも修正しないで、そのままで動いてるっぽいぞ。
くわしく検証はしてないけど、リストボックスにはファイル名の一覧が表示された。


866 名前: 投稿日: 02/11/22 17:43
>>861
> 既に参考にしてたりします。
それを先に言って欲しかった・・・。

ファイル名の取得は、 cFileName と cAlternateFileName のどちらを使用していますか。
ざっと調べた所 cAlternateFileName はファイル名を返さない場合があるという記述を
見つけましたが、その辺が原因ではありませんか。

それと、先にあげたページのサンプルは、私の環境では正常動作しました。
おそらく、組み込むときにエンバグしたんじゃありませんか。


867 名前: デフォルトの名無しさん 投稿日: 02/11/22 17:45
>>866
いいえ。


868 名前: デフォルトの名無しさん 投稿日: 02/11/22 17:50
>>863
> cAlternateFileName の長さちがうyo

パディングを考慮してあえて変えてるんだと思うが。


869 名前: 投稿日: 02/11/22 17:55
>>867
では、>>860 のサンプルは動作しますか。
アプリに組み込んだものではなく、そのままコピペで。接続先も変えずに。


870 名前: 858 投稿日: 02/11/22 18:07
ファイル名はcFileNameを使用してます。

組み込みのミスも考えて何度か試したのですけどね・・・
ところで、ちょっと気になることがあったのですが、
ファイル名の前に入っている変な文字って、EUCコードのようなので、
変換してみたところ日と時間なんですよ。

DOSプロンプトからftpで接続して、lsコマンド打ちこんでみると
drwxr-xr-x 3 xxxx XXXX 1024 3月 21日 17:36 .
と表示されるのですが、どうもこれの21日という所以降を持ってきてしまってるようです。
なんか関係があるのでしょうか?

>860さんの所だと、lsコマンドを打った時に
drwxr-xr-x 3 xxxx XXXX 1024 Mar 21 17:36 .
というように表示されませんか?



871 名前: デフォルトの名無しさん 投稿日: 02/11/22 18:10
>>870
ごちゃごちゃ抜かさずソースコード書け。


872 名前: 858 投稿日: 02/11/22 18:11
867は俺じゃないっすよ。

サンプルのテストは、今ちょっと出来ない状態なので、
後で試してみます。


873 名前: 858 投稿日: 02/11/22 18:14
>871
860のサイトの内容をそのままコピぺしただけなんですけど。
載せた方が良いですか?
長いと思うんだけど。


874 名前: デフォルトの名無しさん 投稿日: 02/11/22 18:18
>>868
パディングってなに?


875 名前: デフォルトの名無しさん 投稿日: 02/11/22 18:33
>>874
パッドを入れること。


876 名前: 投稿日: 02/11/22 18:43
>>870
私の環境では、後者の形式で表示されます。
そうすると、wininet.dllのバグという可能性も出てきましたね。

後者の形式で返すftpサーバに接続した時の動作はどうですか?



877 名前: 858 投稿日: 02/11/22 18:48
>876
うーん、後者の環境だと、今すぐには試せないです。
もし試せたらここに報告にします。



878 名前: デフォルトの名無しさん 投稿日: 02/11/22 18:49
>>876
>そうすると、wininet.dllのバグという可能性も出てきましたね。

低い。断じてお前のせいだと思われ。



879 名前: デフォルトの名無しさん 投稿日: 02/11/22 18:50
ごちゃごちゃ言ってないで問題のソースコード晒せば?
それでどこがおかしいかはっきりする。

まぁ、いきなりDLLのせいにするようなDQNが書くコードだ。ツッコミどころは4つ以上あるに8ラーニングエディション。


880 名前: デフォルトの名無しさん 投稿日: 02/11/22 18:53
>>879
しつこいなー
860のをそのままコピペだって本人が言ってるじゃん。
そこを見ろよ。


881 名前: 投稿日: 02/11/22 18:57
>>873
こちらで再現できるだけの情報が欲しいですね。
どこどこのサーバ(出来れば一般に公開されているサーバ)に、このプログラムで接続すると失敗するとい
うような形で。コードについては、完全なコピペなら貼らなくてもいいと思います。

出かけないといけないのそろそろ落ちます。
役に立てなくてスマン。



882 名前: 投稿日: 02/11/22 19:08
>>858
1個書き忘れた。
860 のサンプルは FtpFindFirstFile の 戻り値をチェックので、その辺も確認してみてください。

>>878
おっ、俺が悪いの!?


883 名前: 投稿日: 02/11/22 19:10
あげ


884 名前: デフォルトの名無しさん 投稿日: 02/11/22 19:28
>>882
878は君と元質問者の858とごっちゃにしている勘違いさん。


885 名前: デフォルトの名無しさん 投稿日: 02/11/22 19:55
しかしまあ、安易に 「wininet.dll のバグ」 と言い出すのはアフォだ。
FTP のリストのフォーマットが規格で決まっていて、wininet.dll がそれを
まともに認識できないと言うならそれでもいいが、実際はそうではない。


886 名前: デフォルトの名無しさん 投稿日: 02/11/22 19:57
こんなのあったよ
http://www.users.gr.jp/ml/archive/vb/5327.asp


887 名前: デフォルトの名無しさん 投稿日: 02/11/22 20:09
http://support.microsoft.com/default.aspx?scid=kb;ja;JP172712
MSDNで検索しる!

で、パディングを教えれ


888 名前: デフォルトの名無しさん 投稿日: 02/11/22 20:21
>>886
そのリンク先のヤシは論外だな。
DLL呼び出しでも文字列の後ろにスペースが埋められると
勘違いしてるか、NULL終端を知らないだけ。


889 名前: 意味不明@名無し 投稿日: 02/11/22 20:25
教えて下さい! AccessのデータベースをもととしてVB上の画面でグラフを
作成する方法。(ツールがあればツールってどこにあるんですか?)
VB上の画面に表があるんですがそこにもAccessのデータを持っていきたいん
でその方法も!
もしくはVB上の画面の表にデータをもっていき、そのデータからグラフを作
成するんですか?お願いします!



890 名前: デフォルトの名無しさん 投稿日: 02/11/22 20:27
>>889
もう少し落ち着いて文章を書かないと煽りか釣りとみなされてレスつかないよ。


891 名前: デフォルトの名無しさん 投稿日: 02/11/22 20:27
>>889
氏ね


892 名前: デフォルトの名無しさん 投稿日: 02/11/22 20:30
ハンドルそのまんまだな


893 名前: デフォルトの名無しさん 投稿日: 02/11/22 20:31
>>887
パディング 構造体
でぐぐる!


894 名前: デフォルトの名無しさん 投稿日: 02/11/22 20:33
>>887
http://yougo.ascii24.com/gh/33/003305.html
用語辞典くらい調べれ


895 名前: 意味不明@名無し 投稿日: 02/11/22 20:34
教えて下さい! AccessのデータベースをもととしてVB上の画面でグラフを
作成する方法。(ツールがあればツールってどこにあるんですか?)
VB上の画面に表があるんですがそこにもAccessのデータを持っていきたいん
でその方法も!
もしくはVB上の画面の表にデータをもっていき、そのデータからグラフを作
成するんですか?お願いします!



896 名前: デフォルトの名無しさん 投稿日: 02/11/22 20:35
>>895
もう少し落ち着いて文章を書かないと煽りか釣りとみなされてレスつかないよ。


897 名前: デフォルトの名無しさん 投稿日: 02/11/22 20:36
>>895
マルチ氏ね


898 名前: デフォルトの名無しさん 投稿日: 02/11/22 20:40
ハンドルそのまんまだな


899 名前: 意味不明@名無し 投稿日: 02/11/22 20:43
プログラムも初心者なんですいません。
ていうか調べてるけどわからないっす。
会社の方針?ですべて自学みたいなんで・・・


900 名前: 意味不明@名無し 投稿日: 02/11/22 20:45
デフォルトっていうかブラックホールじゃん
萌え。


901 名前: デフォルトの名無しさん 投稿日: 02/11/22 20:48
>>899
ここは VB 初心者のスレであって、質問初心者のスレではないから
そこのところ了承してくれ。


902 名前: デフォルトの名無しさん 投稿日: 02/11/22 20:51
>>895
Text1.Text = "グラフ"
表.Text = OpenDatabase("hoge.mdb").OpenRecordset("Table")(0).Value


903 名前: 意味不明@名無し 投稿日: 02/11/22 20:54
了解!てか質問レベル高かったみたいっすね


904 名前: デフォルトの名無しさん 投稿日: 02/11/22 20:57
>>903
そんな煽りしても何も出ないぞ


905 名前: 意味不明@名無し 投稿日: 02/11/22 21:01
でもオレの勝ちだろ


906 名前: デフォルトの名無しさん 投稿日: 02/11/22 21:02
意味不明度では勝る者なし


907 名前: 意味不明@名無し 投稿日: 02/11/22 21:03
負けました。
902のやつはそれっぽいっすね。
ありがと!やってみます


908 名前: デフォルトの名無しさん 投稿日: 02/11/22 21:05
「インターネットで調べてごらん」とか言われたら
最初にすることが2chでスレ立てる奴
全員梱包してどっか別の星に送ってくれ


909 名前: 意味不明@名無し 投稿日: 02/11/22 21:07
906うるさい!意味不明意味不明
いつか負かしてやる



910 名前: 意味不明@名無し 投稿日: 02/11/22 21:08
調べて分からなかったからここ来たんじゃん
そこまでじゃないっす


911 名前: ひげ 投稿日: 02/11/22 21:09
winsockで、tcpセッションをはり、1つストリーム送信後、
送信バッファをクリアするまで2つ目なげないっての
できますか?教えてください


912 名前: 意味不明@名無し 投稿日: 02/11/22 21:09
俺まだ童貞なんだよなー


913 名前: 意味不明@名無し 投稿日: 02/11/22 21:10
ひげのヴぉけ
お前の番はまだだろ


914 名前: 意味不明@名無し 投稿日: 02/11/22 21:12
912、913は荒らし


915 名前: デフォルトの名無しさん 投稿日: 02/11/22 21:17
何で winsock をここで質問するんだよ


916 名前: 意味不明@名無し 投稿日: 02/11/22 21:23
914はおれじゃないよ


917 名前: 意味不明@名無し 投稿日: 02/11/22 21:28
915も相手してんなよばか!


918 名前: デフォルトの名無しさん 投稿日: 02/11/23 00:22
質問させていただく。VB6SP5

とあるコンソールアプリケーションに引数を与えて
VBから起動したい。
具体的には
Checksum.exeに、
C:\Folderを引数に指定して、さらにその結果をファイルに吐かせる。
つまりdos上から
Checksum.exe C:\Folder > C:\tmp.txt
と打った場合と同じように実行させたいのです。

どうやりゃぁ実装できるんでしょうか。
お願いします。


919 名前: デフォルトの名無しさん 投稿日: 02/11/23 00:22
念の為age


920 名前: デフォルトの名無しさん 投稿日: 02/11/23 00:29
>>918
パイプ。


921 名前: デフォルトの名無しさん 投稿日: 02/11/23 00:34
パイプってネットワークのソレじゃないよね?
何?


922 名前: デフォルトの名無しさん 投稿日: 02/11/23 00:39
man | more


923 名前: デフォルトの名無しさん 投稿日: 02/11/23 00:45
>>918
面倒だからbatでその処理を書いておいて
そのbatをVBからShellで呼んでやればぁ?


924 名前: デフォルトの名無しさん 投稿日: 02/11/23 00:49
Command 関数で引数よみとって、
hoge.exe -iFilename -oOutName
とかするとか


925 名前: aaa ◆wSaCDPDEl2 投稿日: 02/11/23 01:47
VB6 Windows2000
ListViewコントロールを使っていて
今カラムをクリックした時のソート部分作ってたんですけど
数字をソートさせると、左側の数字が大きい方が下にいっちゃって
数字の大小で比較できるソートではなくなってしまいます。
どうやれば独自ソートが出来ますか?
それとも他に回避法とかありますか?


926 名前: デフォルトの名無しさん 投稿日: 02/11/23 02:13
>>925
文字としてソートされるから、そうなる。
スペースでケタをそろえればオッケー。



927 名前: デフォルトの名無しさん 投稿日: 02/11/23 02:15
>>926 レベル低っ


928 名前: デフォルトの名無しさん 投稿日: 02/11/23 04:10
927 ( ゚д゚) ポカーン


929 名前: デフォルトの名無しさん 投稿日: 02/11/23 04:29
WSHをVBのようにデバッグするには、どうやればよいのでしょうか?
スクリプトデバッガって使える?


930 名前: デフォルトの名無しさん 投稿日: 02/11/23 05:07
WSHって何で使うの?
せいぜい、Explorer,Excel あたりしかコントロールできないでしょ


931 名前: デフォルトの名無しさん 投稿日: 02/11/23 05:09
>>930 ごめんね。ネタはよそでやってね。


932 名前: デフォルトの名無しさん 投稿日: 02/11/23 05:40
WSHで検索したら、
「 Office2000にはMicrosoft Script Editorというツールが付属しているそうで、これを利用するのもいいでしょう。
 また、Visual Studio(Visual Basicはこれの一部です)にも同様のエディタが付属しているそうです。」
だそうです。


933 名前: デフォルトの名無しさん 投稿日: 02/11/23 05:42
なんか読んでたら、インタプリタで実行したい気分になったよ。
HyperCardみたい。(W

Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run "C:\Progra~1\Outloo~1\msimn.exe" 'OEを立ち上げる。
WScript.Sleep 5000 '5秒ウェイトを入れ起動を待つ。適宜調整してください。
WSHShell.AppActivate "Express" 'タイトルが"Express"で終わるウィンドウを探し、それを前面に表示させる。
WScript.Sleep 100
WSHShell.SendKeys "^+M" 'Ctrl+Shift+MのキーコードをOutlook Expressのウィンドウに送る。「すべてダウンロード」のショートカットキーです。
WScript.Sleep 100
WSHShell.SendKeys "%Y" 'Alt+Yのキーコードを送る。オンラインに切り替えますか?というダイアログで「はい」を押す操作です。


934 名前: デフォルトの名無しさん 投稿日: 02/11/23 09:31
>>921-923

http://www.kumei.ne.jp/c_lang/sdk3/sdk_242.htm

勉強しろよ。すこしは。


935 名前: デフォルトの名無しさん 投稿日: 02/11/23 09:35
>>934
それCじゃ?


936 名前: デフォルトの名無しさん 投稿日: 02/11/23 09:38
>>935
朝っぱらから清々しいこと言うなよ・・・。



937 名前: デフォルトの名無しさん 投稿日: 02/11/23 11:17
>>903 >>905-906 >>910
なんか、人間的に欠陥がある椰子が一匹いるね。



938 名前: 意味不明@名無し 投稿日: 02/11/23 11:40
構って欲しいのか?


939 名前: デフォルトの名無しさん 投稿日: 02/11/23 11:42
おまえらバカじゃないのか?ほんと自分は出来る風ですか?
ほんとにバカ、オメーラ、みんな、ネット荒らしとどこが違うんだ!?
ほんとな、おまえらはみんな、ここに来る資格ねーな!!
デフォルトの名無しさんだっけ!!おまえしね!!人が頼んでるってのに何が
あやしいっておまえみたいのがいるから日本がだめになるんだ!!
分かったバーカ!!もう荒らしでも何でもいいよ!!
オメーラみたいなバカどもにつき合ってもしかたないから!!
あんたらみたいのはもうこのよにもいらない !!
 


940 名前: デフォルトの名無しさん 投稿日: 02/11/23 11:46
>>939
君をスカウトしたい!
来たれ!自衛隊!


941 名前: デフォルトの名無しさん 投稿日: 02/11/23 11:53
Excel VBAスレで返事がもらえなかったのでこちらでも質問します。

Excel VBAで英語の発音練習に使うソフトを作るつもりです。
マイク入力をwavで保存し、更に波形まで表示したいのですが、
どうすれば良いでしょうか。
Windows APIを使うらしいのですが、いまいち分かりません。


942 名前: デフォルトの名無しさん 投稿日: 02/11/23 12:02
>>941
具体的に書かないと漠然としすぎて誰にも答えられない。
API関数の呼び出し方がわからないのか、どの関数を使えばいいかわからないのか、
どこまで出来ていてどこでつまずいているのか。



943 名前: デフォルトの名無しさん 投稿日: 02/11/23 12:51
質問です。VB.Netにて 以下のクラスA,Bを定義した場合

Dim a As A
Dim b As New B()
a = b.func1()

でクラスAを利用できますよね

Public Class A
Public Sub New()

End Sub
End Class

Public Class B
Public Sub New()

End Sub
Public Function func1() As A
Dim mA As New A()
Return mA
End Function
End Class



944 名前: デフォルトの名無しさん 投稿日: 02/11/23 13:05
>>941
水野にでも訊けばぁ(w


945 名前: 941 投稿日: 02/11/23 14:24
>942
どの関数を使えばよいのかが分かりません。
参考になるソースがあればいいのですが。
>944
水野さんとは?



946 名前: デフォルトの名無しさん 投稿日: 02/11/23 14:47

>>945

> 水野さんとは?

伝説の水○を知らないとは、モグリだな。
↓をよく読んでおくように。

ttp://members.tripod.co.jp/ms_mzn/


947 名前: デフォルトの名無しさん 投稿日: 02/11/23 16:32
例えば、フォームにあるボタン(OkButton)を押すと動くsub(OkButton_Click)
に、他のモジュールで宣言した変数を渡すにはどうしたらいいんでしょう?


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

>>947

(1) INIファイルから読み込む。
(2) レジストリから読み込む。
(3) DBから読み込む。
(4) 大逝変数を使う。
(5) 回線を切って首を吊る。

のいずれか (w


949 名前: デフォルトの名無しさん 投稿日: 02/11/23 16:40
バウチャー安いの見つけた!!
なんと、5000円!!
アクセスしてみて!
http://www.bidders.co.jp/item/12162690



950 名前: ◆SYTcmgF.Zs 投稿日: 02/11/23 20:44
ListViewコントロールで
一番上にスクロールさせる処理はどう書けばいいですかねぇ?



951 名前: デフォルトの名無しさん 投稿日: 02/11/23 20:54
>>950

MsgBox "1番上までスクロールアップしてください。" & vbCrLf & "おながいします。", vbExclamation, "ネタレスすまそ"


952 名前: デフォルトの名無しさん 投稿日: 02/11/23 21:02
>>950
ヘルプ見ようね。


953 名前: デフォルトの名無しさん 投稿日: 02/11/23 21:03
>>952

>>950のようにロースキルの開発者には、>>951の方が有力な選択肢だと思うが。


954 名前: 952 投稿日: 02/11/23 22:00
>>953
諒解(w



955 名前: デフォルトの名無しさん 投稿日: 02/11/24 08:41
Lcaseはラージという意味のLなのになんで大文字を小文字に変換するんですか?
逆だと思うんですけど。
それともラージを小文字に、という意味なんでしょうか。
小文字をラージに、という意味にも取れますし。


956 名前: デフォルトの名無しさん 投稿日: 02/11/24 08:54
>>955

> Lcaseはラージという意味のLなのに

お前がヴァカなのはよくわかった。
だから、思い込みで間違ったことを書くのはやめれ。

LCase (lower case) は UCase (upper case) の反対語だ。

ttp://dictionary.goo.ne.jp/cgi-bin/ej-more_print.cgi?MT=Lower&ID=EJ-179830.txt&sw=0

ttp://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=upper&sw=0


貴様の知能では、理解できんだろうがな。


957 名前: デフォルトの名無しさん 投稿日: 02/11/24 08:54
> Lcaseはラージという意味
(゚Д゚)ハァ?

逆の動作をする UCase が何で U かを考えてみれ。
さらにその逆が L になる事を考えてみれ。


958 名前: デフォルトの名無しさん 投稿日: 02/11/24 08:55
>>956
みなまで書くなよ・・・


ところで、誰か次スレ立ててくれ。


959 名前: 955 投稿日: 02/11/24 09:05
>>956-958
なるほど〜
ズバリの回答で助かりました。
ポテトのエルとかしか知らないからわかりませんでした。


960 名前: 955 投稿日: 02/11/24 09:06
Uはアンダーだから変換前よりも小さくなるはずだなー
とおもってました。


961 名前: デフォルトの名無しさん 投稿日: 02/11/24 09:18
>>959-960

「恥の上塗り」って言葉は知ってるか?

知らなかったら、↓ここで勉強してこい。

ttp://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%BE%E5%C5%C9%A4%EA&sw=2


962 名前: デフォルトの名無しさん 投稿日: 02/11/24 09:22

>>961

こっちもなー。↓

ttp://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%C3%D1&sw=2


963 名前: 955 投稿日: 02/11/24 09:25
わかりました。
今回は比較級の用語だったのでむずかしかったです。


964 名前: デフォルトの名無しさん 投稿日: 02/11/24 09:54
いいから次スレ立てろ矢(゚д゚)フォルァ!!


965 名前: デフォルトの名無しさん 投稿日: 02/11/24 10:01
>>964
いらん。さっさと滅んでくれ。


966 名前: デフォルトの名無しさん 投稿日: 02/11/24 10:35
966を踏んだ人が次スレたてて、そしてここにそこへのリンクを書き込んでね


967 名前: デフォルトの名無しさん 投稿日: 02/11/24 10:36
978おねがいします。


968 名前: デフォルトの名無しさん 投稿日: 02/11/24 10:37
968と書くつもりだった。
またやっちまった。
969おねがいします。


969 名前: テンプレ(HTML化チェック済) 投稿日: 02/11/24 10:50
立てられず。誰か立てれ。

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

1 名前:デフォルトの名無しさん

  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/
  Part14 http://pc3.2ch.net/test/read.cgi/tech/1030947162/
  Part15 http://pc3.2ch.net/test/read.cgi/tech/1032706491/
  Part16 http://pc3.2ch.net/test/read.cgi/tech/1034302532/
  Part17 http://pc3.2ch.net/test/read.cgi/tech/1036154952/

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

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


970 名前: テンプレ(HTML化チェック済) 投稿日: 02/11/24 10:50
2 名前:デフォルトの名無しさん
  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


971 名前: デフォルトの名無しさん 投稿日: 02/11/24 11:05
Form1に
Form2.Form_load
というステートメントを書いてもエラーがでました。
どこがダメなのでしょうか?


972 名前: デフォルトの名無しさん 投稿日: 02/11/24 11:09
>>971
Private Sub Form2.Form_load()
ってことか?そりゃピリオド入ったら怒られるだろ。


973 名前: デフォルトの名無しさん 投稿日: 02/11/24 11:10
たてたよ

http://pc3.2ch.net/test/read.cgi/tech/1038103769/l50


974 名前: 971 投稿日: 02/11/24 11:19
>>972
そうです。
別のフォームのイベントハンドラというか、プロシージャは呼べないみたいです。


975 名前: 971 投稿日: 02/11/24 11:23
Form2の
Private Sub Form_load()

End Sub
をForm1から呼びたかったんです。


976 名前: デフォルトの名無しさん 投稿日: 02/11/24 11:27
>>973
乙だけど、ひでーことになったな。
君、>>2貼ったの?


977 名前: デフォルトの名無しさん 投稿日: 02/11/24 11:29
>>975
Subから呼ぶんじゃない。
だいたいForm2のLoadイベント呼ぶ必要あるなら、Form2開けよ。


978 名前: 971 投稿日: 02/11/24 11:47
>>977
Call Form2.Sub Form_load
ってかんじですか?



979 名前: 971 投稿日: 02/11/24 11:49
Call Form2.Command1_Click
とかもForm1に書くとエラーでました。


980 名前: 971 投稿日: 02/11/24 12:07
Form2.text1.text="aaa"
のようなプロパティ操作はForm1からでもできるけど
Form2サブプロシージャはForm1から呼び出せないということで結論にしたいと思います。


981 名前: デフォルトの名無しさん 投稿日: 02/11/24 12:11
なるほど。


982 名前: デフォルトの名無しさん 投稿日: 02/11/24 12:11
>>980
Form2を開きたいなら
  Form2.Show
で良いじゃん。

Form2のCommand1_Clickなどは、Form2側でPublic指定していないと予想。


983 名前: 971 投稿日: 02/11/24 12:22
どわって〜 Form_Load以外に
Form2.List1_DblClick
とか
Fom2.text1_Change
とかもForm1から呼び出したかったから、Form2.Showを使うわけにはいかなかったんだもん。
Publicを使うというのなら、これからは
わざわざ標準モジュールを用意して共通の処理を書かないとかぁ。
それとも今までどおり
Form1とForm2でダブっているプログラムがあるのは仕方がないとするか。



984 名前: デフォルトの名無しさん 投稿日: 02/11/24 12:28
ダブってんなら別のサブプロシージャに飛ばせよ。


985 名前: 971 投稿日: 02/11/24 12:30
あるフォームから別のフォームには飛べなかったのだ


986 名前: 971 投稿日: 02/11/24 12:39
984はこのことを言ってるのだとおもうけど、さっき実験してみてこれはできた。
Form2のなかにオリジナルのサブプロシージャを作って、
'--------------
Sub inForm2()
Form1.Caption = "bbb"
End Sub
'--------------

それをForm1から呼び出すことはできた。
'----------------
Private Sub Command3_Click()
Form2.inForm2
End Sub
'----------------

つまり、VBが自動的に書く
Private Sub Command3_Click()

End Sub
は別のフォームから呼び出せないが、自分で作ったSubプロシージャは別のフォームから呼び出せる。



987 名前: 971 投稿日: 02/11/24 12:44
だからこれからはいちいち
'-------------------
Sub myCommand3_Click
ステートメントいろいろ
End Sub
'-----------------
Private Sub Command3_Click()
myCommand3_Click
End Sub
'----------------------
のようにイベントハンドラのところからサブプロシージャに飛ばせる方法でプログラミングしていくのがよいかもしれない。
そうすればどのフォームからも再利用可能だ。



988 名前: デフォルトの名無しさん 投稿日: 02/11/24 12:53
971はバカか?
すべての関数・変数にはスコープというものがあるんだよ
イベントの定義文には Private Sub 〜 とあるだろ。
Private と Public の違いくらい自分で調べてから能書きたれろ。ぼけ


989 名前: 971 投稿日: 02/11/24 12:58
>>988
Sub の中身が他から呼び出せないのはわかるけど、
Subプロシージャ自身も他から呼び出せないのか、と思った。


990 名前: デフォルトの名無しさん 投稿日: 02/11/24 13:00
>>988
BASIC使いにスコープを説くなんて正気の沙汰とは思えない。


991 名前: デフォルトの名無しさん 投稿日: 02/11/24 13:10
>>990
BASIC と Visual Basic の区別がつかないのにこのスレに居るなんて気の沙汰とは思えない。
あ、区別がつかないからスレに居るのか。


992 名前: デフォルトの名無しさん 投稿日: 02/11/24 13:25
>>971はもう氏ね。
書き込みすぎ。
だいたい質問するにも値しないレベルだ。まず本買え。


993 名前: 971 投稿日: 02/11/24 13:31
結論でたし、なっとくしたからもう書き込まない。


994 名前: デフォルトの名無しさん 投稿日: 02/11/24 13:44
↑馬鹿( ´_ゝ`)


995 名前: 971 投稿日: 02/11/24 13:49
うましか?


996 名前: デフォルトの名無しさん 投稿日: 02/11/24 14:11
     \ 馬 /   \ 鹿 /
               ∩     ∩
               | つ   「,"|
        ヾ∧     !,'っ_ ⊂_,!
      / ・ |ミ    /  ・ ヽつ
     (_'...  |ミ   ▼,__  |
      (゚Д゚; )..|ミ     (゚Д゚ ,)・|
      (|  .、)|      (|   、)|
       |    |       |   ・・|
       ヽ.._人     ヽ._・ν
       U"U        U"U


997 名前: 971 投稿日: 02/11/24 14:18
カワユイ


998 名前: デフォルトの名無しさん 投稿日: 02/11/24 15:07
998


999 名前: デフォルトの名無しさん 投稿日: 02/11/24 15:09
999


1000 名前: デフォルトの名無しさん 投稿日: 02/11/24 15:09
1000。


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



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