v(・∀-)b VBプログラマ質問スレ(6.0以前) Part26

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
VB(6.0以前)の質問スレです。
VB.NETの話題はできるだけひかえてください。

前スレはこちら
  Part16 http://pc3.2ch.net/tech/kako/1034/10343/1034302532.html
  Part17 http://pc3.2ch.net/tech/kako/1036/10361/1036154952.html
  Part18 http://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
  Part19 http://pc3.2ch.net/tech/kako/1039/10398/1039859691.html
  Part20 http://pc2.2ch.net/tech/kako/1041/10418/1041879465.html
  Part21 http://pc2.2ch.net/tech/kako/1044/10440/1044028945.html
  Part22 http://pc2.2ch.net/tech/kako/1046/10463/1046354784.html
  Part23 http://pc2.2ch.net/tech/kako/1047/10477/1047743187.html
  Part24 http://pc2.2ch.net/tech/kako/1050/10501/1050151126.html
  Part25 http://pc2.2ch.net/test/read.cgi/tech/1052627913/

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

心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
五.荒らしは相手しない。
六. VB情報募集中。
七.VB.NETの話題できるだけひかえる。
ここの1さんはどれほどの実力なのでしょうか?
5デフォルトの名無しさん:03/06/09 22:29
久しぶりに答えてやろうかと思ったが
まだ未返答の質問の一覧とか無いのか?
今までにそんなことやっていたスレがあったと思うか?
7デフォルトの名無しさん:03/06/09 22:40
固定長のテキストファイルを、読み込むにはどうしたらいいですか?
読み込むテキストには、全角・半角混じっています。

今日、1日考えましたがどうしても分かりません。
ネットを探し回り、
ttp://www2.neweb.ne.jp/wc/hagimine/Programmer/STR004.htm
を見つけたんですが、このままコーディングすると、
udtDataRecord を認識しないみたいなんです・・・
あとDim udtDataRecord As DATARECORD で、配列の個数を定義しなくて
もいいのだろうか?

誰か、おながいします。
8デフォルトの名無しさん:03/06/09 23:05
何か固定長の意味を間違えている予感
てかアハァに直せやと。
>>7
VBは文字列をUnicodeで扱うから、全角も半角も2バイトだよ。
SiftJISに直して固定長処理Unicodeに戻す。
厨な質問ですいません。 (改めてこっちで質問させて下さい)

datagridオブジェクトは、貼り付けたフォームがロードされたとき、
1行分しか見えてませんよね。それを初期状態だとすると、
いったん何かデータを読み込んだものを、もう一度その状態に
戻すことは出来るのでしょうか?
12デフォルトの名無しさん:03/06/10 05:45
13デフォルトの名無しさん:03/06/10 12:03
>11

clearとかclsとかない?データからにしてrefreshとか、オブジェクトを作り直すとか。
14デフォルトの名無しさん:03/06/10 14:44
ウラワザ

テキストボックスに全角で「¥¥」を打つ。
すると・・・
Enter押す前に半角の「\\」になってしまう。
自作クラスのメソッドに引数として構造体を渡したいのですが
「パブリックユーザー定義型じゃないと駄目」とか怒られてしまいます。
一応、引数の構造体は標準モジュールにパブリックで書いてあるのですが。
ポインタを取得して渡すしかないでしょうか?
>>15
一番簡単なのは構造体ではなくクラスにする。
177です。:03/06/10 21:40
>>8
  固定長の意味は、XXXバイト固定とかそういう意味かと・・・
>>10
  そこまでは分かるんですが・・・構造体にデータを順番に格納していく
   コーディングの方法がわからないんです・・・おそらく貼り付けてある
   HPのコードを少し変えればいけるとは思うんですけど・・・

そもそも↓のHPのやり方は、あっているのでしょうか?
ttp://www2.neweb.ne.jp/wc/hagimine/Programmer/STR004.htm
ソースをコピペしてもエラーでるんですが・・・
本当にすみませんが、誰か教えてもらえませんか?
>>17
「エラーでるんですが」と言ってエラー内容を言わない人は論外です。
あの人がもっといいひとになってここに名無しで答えてくれたら神になれるのにな
>>19
無理言うな。嘘ばっかり書かれる。
>>19
間違った解答ばかりして追い出された過去を知らんらしいな
質問です、WisockコントロールのUDPプロトコルでは一回に何バイト
ずつぐらいで送るのが妥当でしょうか?
あ!
>22
64以内
25デフォルトの名無しさん:03/06/11 04:32
26_:03/06/11 04:41
初心者を見下すような雰囲気、こりゃだめだ
28デフォルトの名無しさん:03/06/11 08:42
ここで見下されるような質問する人にはプログラミングは向かないだけでしょ。
例え初心者でも質問の聞き方でこの先伸びるかどうかはすぐわかる。
プロジェクトウィンドウの選択が解除されることがあるのですがなぜでしょうか?
>>22
548バイト
>>29
もうすこし詳しく書かないとどんな症例なのかわかりませんよ・・・
VBからMSオフィスを操作するにはなんという本を読んだらいいですか?
フォントを変えようとするとフリーズするのをなんとかしてください。
34デフォルトの名無しさん:03/06/11 10:59
どなたか教えてください。

1  Dim bbb(0 To 1) As Long
2  bbb(0) = 60000
3  bbb(1) = 60 * 1000

上記のコードを実行すると3行目で必ず「実行時エラー'6' オーバーフローしました」
となってしまいます。どちらも60000をセットしてるので、
2行目と3行目に違いはないはずなのですが…。
どうすれば3行目のエラーを回避できるのでしょうか。
>>32
本屋に行って立ち読みもできないのですか?

>>33
フォントをどこでどのように変えるとフリーズするのですか?

>>27
努力しているか否か、文章をみていれば一目瞭然です。
努力もしない人間にどんな敬意を払えと言うのですか?
bbb(1) = CLng(60) * CLng(1000)
>>35
学級委員登場!(w
38デフォルトの名無しさん:03/06/11 11:09
ドキュメント(詳細設計)の自動生成ツールの比較ってあります?googleで最初に
引っかかったVαにしようかとは思ってるんですが
39デフォルトの名無しさん:03/06/11 11:10
>>36
蛇足だが、cLng()は片方だけでも可。つまり
bbb(1) = CLng(60) * 1000

bbb(1) = 60 * CLng(1000)
でも通る
しかし
bbb(1) = CLng(60 * 1000)
は通らない
4034:03/06/11 11:17
>>36
>>39
ありがとうございます。
結果を格納する変数だけがLongじゃだめなんですね。
Int同士の計算だとIntになってしまうと。
41_:03/06/11 11:19
42デフォルトの名無しさん:03/06/11 12:32
>40

>Int同士の計算だとIntになってしまうと。
それはどうかな
43デフォルトの名無しさん:03/06/11 14:22
picturebox で文字を書くときにどのぐらいのサイズになるか知りたいです。

フォントと、サイズ・文字を指定したときに、どのぐらいのサイズになるか知るにはどのようにしたらよいでしょうか?
44デフォルトの名無しさん:03/06/11 14:50
昔のBasicのpaintみたいに、
枠の色を指定してその中を塗りつぶす命令はありますか?
45前スレ943:03/06/11 15:04
GetMetaFileBitsEx で lpvData に Null 又は 0 を指定しとるのだが
データを格納するために必要なバイト数というのが取得できん
予め大きなサイズを割り当てれば関数自体は成功するが後味悪い
やり方教えてくれ
>>44
ExtFloodFill API
>>43
TextWidth, TextHeight

>>45
それはVBなのかと小(ry
>>45
ByVal 0 じゃない?
4945:03/06/11 17:13
>>48
がーん、それでした!ありがとん
スレ跨いでまでつまらん質問してスマソ
イメージをフォームに貼り付けたのですが、
フォームがアクティブになるたびに
イメージがチカチカしてしまいます。
なんとかならないものでしょうか。
>>30
センキューです。
>>51
・・・たとえ548バイトづつ送ったところで実際に548バイトづつおくる
保証も到達の保証はないことは頭にいれておいてくれよ
>>51
もう一つ重要なことがあるが、スレタイの顔がキモいから教えない。
54デフォルトの名無しさん:03/06/12 10:09
>50

そんなこと起きない。
>>53
しつこすぎ。

>>51
その他の重要な点は、ここらへん読んどくといいよ。
http://www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja-5.html
>50
フォームのClicpControlプロパティをFalseにしてみる。
>>50
ディスプレイの電源を落してみる
58デフォルトの名無しさん:03/06/12 20:08
これだと大丈夫なんですけど
Const TEST = "a,b"
Dim strTemp() As String
Dim VarTemp As Variant

ReDim strTmp(2)
VarTemp = Split(TEST, ",")
strTemp = VarTemp


これだと駄目です
Const TEST = "a,b"
Dim strTemp(2) As String
Dim VarTemp As Variant

VarTemp = Split(TEST, ",")
strTemp = VarTemp


動的配列じゃないとうまく動かない理由分かる方いませんか?
59デフォルトの名無しさん:03/06/12 22:16
DAO.Databaseの
Closeメソッドに関しての質問です。
ずばり言いますと、呼び出す必要がありますか?
代わりにSet Db=Nothing することを前提とした話しです。
ヘルプにはこうあります。

Close メソッドの代わりに、オブジェクト変数の値の設定を
Nothing にすることも可能です (Set dbsTemp = Nothing)。

つまり、NothingするとそのDatabaseオブジェクトが
Closeされていない時、暗黙的にCloseされると理解していいのでしょうか?

気になります。
よろしくお願いします。


60デフォルトの名無しさん:03/06/12 22:26
質問です。

VB6.0SP3にてFormを移動させた時にイベントを取得したいのですが
どのようにすれば取得出来るのでしょうか?
イメージとしてはRarUtyのオプション画面が
くっついて移動するようなものを作りたいと思ってます。
RarUty自体VB6.0で作られてるので不可能ではないと思うのですが、
きっかけすら掴めずにいます・・・。

教えて君ですいませんがよろしくお願い致します。
>>58
Const TEST = "a,b"
Dim strTemp() As String
Dim VarTemp As Variant
ReDim strTemp(5)
Debug.Print UBound(strTemp)
VarTemp = Split(TEST, ",")
strTemp = VarTemp
Debug.Print UBound(strTemp)
これとsplitのヘルプ見たら、どんな動きしてるかわかりませんか?

>>59
Closeの一行くらいいれときましょうよ。ドライバのバージョンアップにいつ裏切られるかわからないんだから。

>>60
サブクラス化でもしてるんじゃないのでしょうか?
6260:03/06/12 22:42
>>61
『サブクラス化』についてちょっと調べてみます。
藁にもすがる思いなので・・・。
サクブラス化って具体的に何ができるようになるん?分かるヤシ教えてみ
>>63
失礼、サブクラス化やね
>>63
さすがにここで全部説明するのは辛いので
ttp://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9802/subc/
やGoogleで VB サブクラス化 などをキーワードに検索してみて下さい。
VBでvectorクラス相当品ってありませんか?
不便で不便で・・・
Collection、Dictionaryじゃいかんのか?
68デフォルトの名無しさん:03/06/13 23:15
>>66
自分でツクレ。Dictionaryあたりもいいけど、実はADO.Recordsetでもいける。
69デフォルトの名無しさん:03/06/14 00:03
msgboxの第1引数を取得するにはどうすればいいのでしょうか?
MsgBoxの第1引数取得?
表示するメッセージだし、取得する必要なんてないと思うけど。
71デフォルトの名無しさん:03/06/14 00:28
>70
すみません質問の仕方をおもいっきり間違っていました
別のアプリのメッセージをVBのmsgboxで表示するには
どうすればいいのでしょうか?
>>71
別アプリのメッセージとはなんのこと?
質問するときははしょるな
74デフォルトの名無しさん:03/06/14 00:42
>72
毎度毎度すみません
今、自分の作成しているアプリとは別のVBのアプリのメッセージを
取得したいのですが方法がわかりません。
>>74
なにをしたいのか具体的に書け。
76デフォルトの名無しさん:03/06/14 01:39
>74
自分が作成してるアプリはキーボードやマウスの動きを記憶して
作業を自動化するというもので
textのデータをコピーして帳票作成用アプリのデータ入力項目に貼り付けて
保存するまでのキーの動きやマウスの動きを記憶して繰り返し処理させて
いるのですが、textのデータが間違えてた場合それをコピーして
帳票作成用アプリの入力項目に貼り付けるとIDが違います等のエラーメッセージ
が出てきますが、マウスやキーの動きを記憶して繰り返し処理しているので止めることが
出来ません。そこで、帳票作成用アプリの特定のエラーメッセージが出た場合に
msgboxの情報を取得して、もしこのエラーメッセージなら処理を止めるという
処理を作りたいのです。ちなみに帳票作成用のアプリはVBで作られています

>>76
EnumWindows、EnumChildWindows、FindWindowなどで
対象のウインドウを検索し、GetDlgItem、GetDlgItemTextなどで
テキストを取得する。
78デフォルトの名無しさん:03/06/14 01:56
初心者ですm(__)m
メーラーを作りたいと思い調べているのですが、なかなかみつかりません。
MAPISessionとMAPIMessagesよりメールの送受信はできるのですが
Outlookに依存しないオリジナルを作りたいと思っています。
winsockコントロールを使ってやるのかなとも思ったのですが、
なんせメーラー作成の参考HPや資料がなく、何をやっていいのかわからない
状態です。どなたか参考になるHPやヒント教えてください。
79デフォルトの名無しさん:03/06/14 02:01
>77
ありがとうございました
さっそくやってみます
>>78
"RFC メール"で検索してください。
81デフォルトの名無しさん:03/06/14 02:25
>>78
BSMTP DLLを使ってみてはいかがでしょう?
フリーで配布されています。
>>80
能なし
>>81
優秀
>>82
RFCを資料として教えてる人に脳なしってあんた・・・
なんと愚かな人間なんだろうか
>>83
あーすまん。>>78は資料を欲していたのか。
また一度も読んだことないくせにRFC読めって言っている奴かと思った。

>>80
というわけでごめん。
もしこんな経験をしてたら教えてください。
Windows2000上でAccess97で作ったmdbファイルにDAO3.5ライブラリを
参照設定してアクセスしています。
VBは、6.0 sp5 です。
このようなアプリケーションでフリーズを経験された方がいましたら
対処方法を教えてください。
ただ、フリーズがごくたまにしか起こらず再現できなくて困っています。
mdbファイルをAccess2000に変換したら直るならよいのですが。
8678:03/06/14 13:52
>>80 さん
>>81 さん
ありがとうございます。
RFCなる規格?を勉強し仕組みを理解することですね
それでは、頑張って英文と格闘してきますw
IMAPは?
89デフォルトの名無しさん:03/06/14 19:54
プロシージャ の パラメータ に、オブジェクト や コントロール を指定
するのは、間違いですか ?
シンタックス エラー は出ませんが、実行時に "型が一致しません" と
エラーが出ます。 ( 同じ型の オブジェクト を指定しています )
初歩的な質問ですが、お願いします。
90デフォルトの名無しさん:03/06/14 19:55
>>89
プログラマに向いていない
9189:03/06/14 20:03
そう言わず、お願いします。
>>89
エラーになるプロシージャおよび呼び出し元を書いてみ。
9389:03/06/14 21:21
>>92

Public Sub proc1()
Dim rs As New ADODB.Recordset
proc2 (rs)
End Sub

Public Sub proc2(rs As ADODB.Recordset)
End Sub

これで、コンパイルエラー は出ませんが、実行時に、proc2 を呼ぶ時に、
"型が一致しません" とエラーが出ます。
94デフォルトの名無しさん:03/06/14 21:24
初心者の質問はここでも良いのでしょうか…スレ違いならすみません。

VB6.0で、自分のファイル名を取得する方法はどうすれば良いのでしょうか?
実行されている時に自分のファイル名が何に変更されていたとしても、動作が変わらないようにしたいのです。
App.Pathではファイル名までは分かりませんし…。
>>94
App.EXEName & ".exe"
>>93
proc2 (rs) → proc2 rs または Call proc2(rs)

Callをつけない場合はかっこはいらない。
かっこをつけるとCall proc2((rs))と解釈される。
この結果、第一引数はrsではなく(rs)となる。
(rs)とするとrsを評価した結果、つまり(rs)からの戻り値となる。
rsの省略されている規定のプロパティはFields。よって(rs)の戻り値とは
rs.Fields。故に型が一致しないのでエラーになる。

Public Sub proc2(v As Variant) としてTypeName(v)とすれば実際
何の型になっているのかが分かる。
>93
オブジェクトを値にキャストしちゃダメじゃん。
proc2 rs
9897:03/06/14 21:49
>96
かぶった。スマソ。
既定のプロパティはFieldsだったんだ。間違えました。
9989:03/06/14 22:10
>>96
解決しました。
ありがとうございます。 m(__)m
スレ違いだったらスマソ!C言語でもapp.pathみたいのあるん?
102103:03/06/15 13:31
public pub_aaaNO(100) as Integer って変数があります。

関数 damepo("aaaNO",0) が呼ばれたら pub_aaaNO(0)の値を取得
したいのです。
つまり"aaaNO"の頭に"pub_"を付けてindex 0 として。

誰か教えて下さい。
>>102
select arg1
case "aaaNO"
return pub_aaa(arg2)
end select
>>102
一応つっこんどくが、、、コンパイルしたら変数名なんて記憶してないぞ?
105102:03/06/15 14:21
102です。
damepo("aaaNO",0)とかdamepo("bbbCODE",0)とか・・・一杯あるんです。
なもんで、103さんのcaseで対応だとチョト大変。
何とか効率的な変更は出来ないかと思いまして。
public pub_aaaNO(100) as clsNO
public pub_bbbCODE(100) as clsNO
public sub damepo( vClsNo as clsNO)
Call damepo(pub_aaaNO(4))
public property get value() as integer
>>105
だいたいなんでそんなことしたいの?
>>105
何が大変なんだろう?
Excel なんかで引数名だけ入れるように雛型作れば100や200位、あっと言う間に終わると思うが...
pingして、OKだったら接続処理を行う。みたいにしたいのですが、pingの
結果ってどうやって得ればよいのでしょうか?教えて下さい。
最小化ボタンが押された時に、イベントを行いたいのですが、どうすれば
よいのでしょうか?なんか地味にちょうどいいイベントとかがないんです。
既出だったらごめんなさい。
>>109
それは明らかにあなたの探し方が不足してるのでしょう。
>>110
ResizeイベントでWindowStateの変化を判断・・・カナ
>>112
即レス感謝です
>>111
resizeイベントは知っていたのですが、そこからがわかりませんでした。

課題なんですが、どうしてもわからないので教えてください。

ファイルシステムコントロールを使って、HDに保存されてるファイルに一覧表を作って、
txtファイルならテキストボックスに表示。
exeファイルなら実行というのを作ったのですが、exeを開くと実行はされるのですが、txtを表示するテキストボックスに文字化けして表示されてしまいます。
どうすればいいか教えてください。

↓作りかけです。
http://www.kari.to/upload/source/d/0351.zip
age
>>114
Right関数で右4文字を取得。
Ifで分岐して、".exe"だったらテキストボックスに読み込む処理を飛ばし、".txt"だったらShell関数で起動するのをやめればいい。
ファイル名を取得した後。
Form1.Caption = openfileの下を消してこれを書く。

Select Case Right(openfile, 4)
Case ".txt"
  'ファイルの読み込み
  fileNum = FreeFile()
  readdata = ""
  Open openfile For Input As #fileNum
    Do Until EOF(fileNum)
      Line Input #fileNum, temp
      readdata = readdata & temp & vbCrLf
    Loop
  Close #fileNum
  Text1.Text = readdata
Case ".exe"
  If Shell(openfile, vbNormalFocus) = 0 Then Call MsgBox("プログラム起動エラー")
End Select
ポップアップメニューで、常駐のプログラムとしてと、スクリーンセーバ
としての2通りから選択できるようにしたいのですが、なんたら.scrに
しなくてもスクリーンセーバのような事をさせる事はできるのでしょうか?
(つまり、常駐のプログラムとしてスクリーンセーバの仕事もできるよう
にする)
 もしくは、スクリーンセーバーとして設定しておいても、常駐プログラム
として働く。というような方法は可能でしょうか?
教えて下さい。
*.scrは常駐プログラムを起動するだけにして
実際には常駐プログラムにスクリーンセーバーの仕事をやらせれば良いんじゃないの。
もちろん工夫がいるけど。
>>118
formのborderstyleを0にして最大化して、なんか適当な描画じゃ駄目なのか?
もしくはsrcとexeを完全分離して、exeから必要に応じてsrc起動。
121デフォルトの名無しさん:03/06/17 15:09
チェックボックスのクリックで 2 - 無効 も含めた三つの値が切り替わるようにするには?
>>121
Private Sub Check1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static n As Long
n = (n + 1) Mod 3
Check1.Value = n
End Sub

Check1.Tagでもいいのかなぁ?
123121:03/06/17 17:17
>>122
なるほど!マウス操作に限定すれば綺麗に動作しますね

その前に
ヤパーリ何かしらコーディングせにゃ実現できんってコトっすよね?
実はこれとは別の手法でやってたんすけど
ホントにんなことせにゃならんのかと思いましてね
まあダメなんでしょうね。。。どうもでした
プロジェクトエクスプローラの表示のバグなんとかならんのかい
SP入れると多少マシになる
>>125 5なのだが
127デフォルトの名無しさん:03/06/17 18:01
すみません、VB6でアドバンス技研のExcelクリエーターを
使ってる方、教えていただけませんか?
>>127
何を?
しかも社名変わってるし
>>124
どんな内容か仕様かバグかわからのに話しているお前らは(略
>>129
神といいたいんだね
131デフォルトの名無しさん:03/06/17 18:08
>>128

Call XlsOpenBook(FileName, sTemplate, Null) を実行したのですが

Null の使い方が不正です。(Error94)と出てしまいます。
Nothingにすれば?
133デフォルトの名無しさん:03/06/17 18:32
>>132
省略はできません。
>>133
省略という意味じゃないよ。
135デフォルトの名無しさん:03/06/17 18:36
Nothingも使えません。

コンパイルエラー

オブジェクトの使い方が不正です

と出ます。
>>131
これがなんなのか知らないけど、ここを見る限り、
http://www.adv.co.jp/products/excelcrt/api.htm
C言語のNULLみたいだから、0を入れるんじゃない?
137デフォルトの名無しさん:03/06/17 18:41
>>136
あっ!?エラーは出なくなりました!ありがとうございます。

でもオーバーレイが上手くいてない・・・鬱
AlphaBlendAPIでソースのPictureBoxのVisible=Falseで
画像を転送すると描画されないんですけど、どうしたらいのでしょうか? 
139118:03/06/17 21:16
windowsがスクリーンセーバーを呼び出す事を、プログラムの中で置
き代えて実現するにはどうすればよいでしょうか?また、そういった
感じの事が載っているサイトがあったら教えてください。
141デフォルトの名無しさん:03/06/18 12:32
ForステートメントやDo Whileステートメントを途中で抜ける、C言語で言うbreakは、
VB6.0ではどう記述すればいいのでしょうか。
適当なラベルにGoToで飛ばすんでしょうか?
142_:03/06/18 12:32
>>141
Exit For
Exit Do

continue に相当するものは無し
144デフォルトの名無しさん:03/06/18 12:39
VBで作ったOCXをまとめてRegistryに登録するのはどうするんです?
相手にVBが入っていないとできないみたいなんですが?
145デフォルトの名無しさん:03/06/18 12:44
チェックボックスのコントロール配列を関数の引数にしたいのですが、どのように書けばよいでしょうか?
>144
ディストリビューションウィザードでセットアップ作りなされ。
>>145
もうちょっと具体的に
148デフォルトの名無しさん:03/06/18 13:02
>>145
Me.Check1.Index
149148:03/06/18 13:03
やべ、激しく間違えた
150148:03/06/18 13:06
Private Function hoge (ByRef objChk As Object) As Boolean
  MsgBox objChk(0).Caption
End Function

でもできる。でも、かっこ良くないよな。
151デフォルトの名無しさん:03/06/18 13:29
VBのプログラムが大きくなりすぎて、メモリーが足りませんがでる。
どこかメモリー食いすぎているとこがあるらしい。ちなみにWin2000ではOK。
MEでエラー。
 ソースはFormが30個、modが30個クラスが10個位あるんですが、こういう
場合どうやったらいいでしょ。
 フォームなんかは同時に動かすわけじゃないんで、何でこうなるんかわからんなー。
>>151
1.なにがなぜ食ってるか調べる。
2.メモリ増設しちまう
3.MSのせいにして逃げる
>フォームなんかは同時に動かすわけじゃないんで、
そういう風に考えるから判らなくなる
154148:03/06/18 14:10
>>153 に追加

一度ロードされたフォームはメモリに残ってますよ。

http://www.gj.il24.net/~nakasima/vb/tech/end/index.htm

もちろん、そのフォーム内の変数やRecordsetオブジェクトもそのまま残って
いる可能性が高い。
あー、オーバーロードしたい。。。
156デフォルトの名無しさん:03/06/18 19:41
質問なのですが、あるディレクトリの文字列(例:C:\WINDOWS\SYSTEM\)に対して
trimやinstrrevなどを使って"C:\WINDOWS\"という文字列を抜き出したいのですが
最後から2番目に出現する\の場所を取得する方法はありますか?
157デフォルトの名無しさん:03/06/18 19:51
ある
158デフォルトの名無しさん:03/06/18 20:08
Dim strToken() as String
strToken = Split("C:\Win\Sys\", "\")
MsgBox (strToken(Ubound(strToken) - 1))

でどう?ただし、一番右に\あるかどうかとか、空白の時のエラー処理していないが
159デフォルトの名無しさん:03/06/18 20:19
(*´д`*)アハァ…
160デフォルトの名無しさん:03/06/18 20:21
>>158
その方法で処理できました。あとはif right(dirName,1) then ~~
などを使って\があるない場合を判断して処理します。
ありがとうございました。
161デフォルトの名無しさん:03/06/18 22:08
vb6でメトロノームを作りたいんですが、一番の基本形はどう書けばいいんですか?
これまた大雑把な質問だな

Timerでそれっぽい音の .wav ファイル鳴らせばいいのだろうが、
tempo⇔ミリ秒の変換方法は知らない。
と思ったらテンポってBPMか。恥ずかしい…
16460:03/06/18 22:43
お蔭様で実装する事ができました。
ご報告まで・・・。
>>61の方ありがとう〜。
165せっぱつまってます(>_<)。:03/06/19 10:14
VB6でWORDのカレントフォルダ(文書の規定の保存先)を取得する方法と、
同じくEXCELのカレントフォルダ(シートの規定の保存先)を取得する
方法を教えてください。。
お願いします〜〜。。。
166165の追加です。。:03/06/19 10:25
追加です。
EXCELは開いた状態になっています。
今開いているEXCELのカレントフォルダ(シートの規定の保存先)の
取得方法です。。おねがいします〜〜(>_<)タスケテー
167デフォルトの名無しさん:03/06/19 10:27
test
コントロールのLeftとTopを取得できるWin32API教えれ
169デフォルトの名無しさん:03/06/19 16:04
いや
170デフォルトの名無しさん:03/06/19 16:09
VB4で作成されたソースをVB6で開きました。

VB6に変換しますか?と出たので変換しました。

この時に
「×××.frmの中で重複した名前が見つかりました。
 名前をfrm××××に変更します。」と出たので

OKボタンを押し保存し、プロジェクトを終了ました。

ところが、またプロジェクトを開くと

「×××.frmの中で重複した名前が見つかりました。
 名前をfrm××××に変更します。」

と同じメッセージが出力されます。

どーすれば、このメッセージが出なくなるのでしょうか?
「×××.frmの中で重複した名前が」見つからないようにすればいい。
ソース読めないんだろ、アンタ。
172デフォルトの名無しさん:03/06/19 16:18
>>171
重複した名前を変更しますと通知してるんだから
OK押した時点で重複して無いだろ?
VB4で作成されたソースをVB6で開きました。
VB6に変換しますか?と出たので変換しました。
この時に
「×××.frmの中で重複した名前が見つかりました。
 名前をfrm××××に変更します。」と出たので
OKボタンを押し保存し、プロジェクトを終了ました。
ところが、またプロジェクトを開くと
「×××.frmの中で重複した名前が見つかりました。
 名前をfrm××××に変更します。」 と出たので
OKボタンを押し保存し、プロジェクトを終了ました。
ところが、またプロジェクトを開くと
「×××.frmの中で重複した名前が見つかりました。
 名前をfrm××××に変更します。」 と出たので
OKボタンを押し保存し、プロジェクトを終了ました。
ところが、またプロジェクトを開くと
「×××.frmの中で重複した名前が見つかりました。
 名前をfrm××××に変更します。」 と出たので
OKボタンを押し保存し、プロジェクトを終了ました。
ところが、またプロジェクトを開くと
「×××.frmの中で重複した名前が見つかりました。
 名前をfrm××××に変更します。」 と出たので
OKボタンを押し保存し、プロジェクトを終了ました。
ところが、またプロジェクトを開くと
.......
174デフォルトの名無しさん:03/06/19 16:36
>>173 無限ループか?(w
>>170のまねをした荒らしだと思われ。
176デフォルトの名無しさん:03/06/19 17:10
チャント コタエテ ヤレヨ!
>>154
インスタンス管理がいい加減だから。
解説は、そのURLリンクに書いてある通り。
178デフォルトの名無しさん:03/06/19 17:24
ずっとOKを押しつづければいずれ重複はなくなります。
結構根性がいりますがもう少しOKを押しつづけてください。
179デフォルトの名無しさん:03/06/19 17:35
>>178
ウソ ツクナ!
ヲイお前ら >>168 教えれ
>>176
ぬるぽ
182デフォルトの名無しさん:03/06/19 18:07
>>180

ボツ!
183デフォルトの名無しさん:03/06/19 18:11
>180

正直そんなAPIしらないです。でもコントロールのtopとleftをとる方法は知っています。
184168:03/06/19 18:23
思い出した!ScreenToClientだったな
逝ってくる
185デフォルトの名無しさん:03/06/19 18:49
ListBoxをMSゴシックにして
for i= 0 to 10
cc = 30 - TextWidth(Name(i)) / TextWidth(" ")
mes = Name(i) & space(cc) & "*"
List1.AddItem mes
next

 30文字目に*をそろえて表示したいのだが、どうしてもそろわない。
 なぜだ?
>>185
cc = 30 - LenB(StrConv(Name(i), vbFromUnicode))
187186:03/06/19 19:06
lstrlenでもいいがな
vb6です

他のプログラムを起動して、そのプログラムを制御したいのですが、
shellとsendkeysを使う他に、どのような手がありますでしょうか?
プログラムの状況を把握しながらsendkeysできれば、問題ないのでしょうが・・・
出来る限り素早く制御したいので、無駄なsleepはできれば避けたいのです。
よろしくお願いします。
>>188
そのプログラムが他のプログラムから制御できるように
なっているならそれを使う。たとえばActiveX EXEに
なっているとかDDEをサポートしているとか。
そうでなければWindowsハンドルを取得してSendMessage。
190189:03/06/19 23:15
× Windowsハンドル
○ ウインドウハンドル
191デフォルトの名無しさん:03/06/20 10:21
Animation1.Open constPathName & "\avi\file.avi"
としたときに、「.aviファイルが開けません」と出てきます。
ファイルがないときは「ファイルが見つかりません」とでるので、パスとファイル名はあっているようです。
また、メディアプレーヤーでは開けます。
どのような原因が考えられるでしょうか?
>>191
そりゃアレだ、えと・・・アレ。うん間違いない。
>>185
MSゴシックはポイントを1.5の倍数
9.0 とか 10.5 にしないとそろわない
194デフォルトの名無しさん:03/06/20 12:37
>192

あれだよな。コーデックの問題だよな
>>184
それで希望の動作しているならいいけどウインドウを持たないコントロールはどうするんだろう?
196168:03/06/20 14:57
>>195
フックしてあり得ん値に設定したコントロールの位置を取得したかった
ピクセルで-16384未満16383超過のことな
でウインドウを持たないコントロールはそもそもん値にできんのでオレは困らない

どのみち値を保持することにしたからもう関係なくなったがな
SendMessageでのマウス制御なんですが、SetMousePos/mouse_eventでの制御に比べて
パフォーマンスが悪いのですが、そんなものなのでしょうか?また、SenMessageを多用する
場合、パフォーマンスを挙げるとしたらいっそVC++に移行した方が良い結果が得られたり
してしまうのでしょうか?
>>197
普通はmouse_eventよりもパフォーマンスも信頼性もいいはずだよ。
VC++にしたっていっしょ。VC++もVBもたいして速度変わらないから。
やり方が悪いんじゃない? どうしてパフォーマンスが悪いと思ったのか。
その根拠を教えて。
199デフォルトの名無しさん:03/06/20 18:51
エクセルVBAでフォントビューアを作りたいんですが
フォントをどうやって読み込めばよいでしょうか?
200デフォルトの名無しさん:03/06/20 20:54
インターネット上のhtmlファイルのソースを取得したいです(タグで書かれた
テキスト)
webブラウザーコンポーネントを使用して↓のようにして
WebBrowser1.Document.All(0).outerHTML
String型変数に取り出すことができました。
しかし、ソースだけを取得するのにこのコンポーネントを使うのって
なんか無駄が多いのかな?と思ってしまったのですがどうなんでしょう・・
他に良い方法ありましたら、どなたかご教授ください。

201デフォルトの名無しさん:03/06/20 20:56
インターネット上のhtmlファイルのソースを取得したいです(タグで書かれた
テキスト)
webブラウザーコンポーネントを使用して↓のようにして
WebBrowser1.Document.All(0).outerHTML
String型変数に取り出すことができました。
しかし、ソースだけを取得するのにこのコンポーネントを使うのって
なんか無駄が多いのかな?と思ってしまったのですがどうなんでしょう・・
他に良い方法ありましたら、どなたかご教授ください。

202デフォルトの名無しさん:03/06/20 20:57
2重カキコすんません、すんません><
203すんまそん:03/06/20 21:04
SetWindowPos使ってフォームを常に手前に表示してるんですが、
そうると、ツールバーのボタンのツールチップがウィンドウの後ろに行っちゃいました。
これって回避できませんか?
204203:03/06/20 21:09
VB6(SP5)です。
>>200
WinSock or Inet
206185:03/06/20 22:38
>>186
cc = 30 - LenB(StrConv(Name(i), vbFromUnicode))
これで上手く行ったぞ。
タンクス

>>187
>lstrlenでもいいがな
 いみわかんねー。そんな関数ないずら。

>193
>MSゴシックはポイントを1.5の倍数
>9.0 とか 10.5 にしないとそろわない
 何かの勘違いと思われ。
 10、でも9 でもうまくいった。10.5ってのは
 VB6にはなかったぞ。
>>206
lstrlenはAPI。10.5ptはある。

質問者の口調には見えん
Windows XP での全角固定ピッチフォントの仕様変更 が関係しているかもしれない。
http://www.microsoft.com/japan/msdn/windows/windowsxp/FixedPitchFont.asp
209185:03/06/20 23:12
>>207
>lstrlenはAPI。10.5ptはある。
あ、APIなのか。アリガト。
そうか。おれのPCではプロパティーで選択しても
9,10,11、、、、で10.5ってのが出てこん。
たしかにExcelとかでは10.5があるよな。
なんでだ。
>質問者の口調には見えん
分からんことがあったら遠慮無しに聞いてくれ。回答者にも
なっちゃル。
210デフォルトの名無しさん:03/06/20 23:19
(*´д`*)アハァ
プロパティからじゃなくて
Label1.FontSize = 10.5
ってやるんじゃないの?
List1だったね。Label1で適当にやってたのそのまま貼っちゃった
213デフォルトの名無しさん:03/06/20 23:47
>>211
いやListBoxのプロパティーでFontを選ぶと箱がでてくるだろ。
右端のサイズのところにスクロールバーがあって、これを
上から下までぜー-んぶ覗いてみたが、10.5なんて中途半端な
サイズはないぞ。
 で無理やり10.5って入れるだろ。そうするとサイズが不適当
っちはねられる。
214デフォルトの名無しさん:03/06/20 23:48
しかしStrConvでなんで上手くいくんだ。
cc = 30 - LenB(StrConv(Name(i), vbFromUnicode))
これで上手くいくが、よく考えたらおかしいとは
おもわんか?
Unicodeにコード変換して文字数数えたら、ぴっ足しあう。
MSはコードを刻んどるんか? 文字数の問題じゃないだろう
ちゅうのに。文字のピッチがそろってないから、上下で
不ぞろいになるんだろ。意味わからん。
215デフォルトの名無しさん:03/06/20 23:56
>>213
10.5って随分なつかしいな。一太郎か?
216185:03/06/20 23:58
分かった。数え方の問題ね。
name = "ms はわからん"
Debug.Print "nama:"; LenB(name)
Debug.Print "conv:"; LenB(StrConv(name, vbFromUnicode))

結果
nama: 16
conv: 13
217デフォルトの名無しさん:03/06/21 00:25
(*´д`*)アハァ
>>203
出来ないんじゃないかなぁ。
やるとしたらツールチップウィンドウを自作か。
(VBでやれるかどうか知らん)
219197:03/06/21 01:02
>198
とあるゲームの自動操作ツール(高速で同じ動作を繰り返す)をちょっと作ってみたのです
が、sendMessageを使用した場合にかなり遅くなるのです。具体的には、マウスカーソル移
動→左ボタンプッシュダウン→マウスカーソル移動→左ボタンプッシュダウン...という動
作をさせています。で、これらの動作をsendMessageを2回発行して実現しているのですが
setMousePos+mouse_eventで実現した時よりもあからさまに遅い、といった具合です。
>>219
ゲームの自動操作ってことは、左ボタンを押す場所には
ボタン(ウインドウハンドルを持ったコントロール)とかではないのか?

ウインドウハンドルを持っているのならそこへ直接マウスクリックを
送信できるし、そうでなくてもアプリ全体のウインドウからの相対距離を
lParamにセットすればいいので、マウスカーソル移動は送る必要ないと思うが。
221データグリッド:03/06/21 03:20
データグリッド で 特定の列を不可視にして、追加行による
レコードの追加の時に、その列に規定の値をセットしたいの
ですが、どうすればいいか分かりません。
マニュアルには、Column オブジェクトに DefaultValue と
いうプロパティが、あるのですが、プログラムで指定すると
プロパティが見つかりませんとエラーになります。
222デフォルトの名無しさん:03/06/21 04:58
(*´д`*)アハァ
223197:03/06/21 09:23
>220
はい、クリックする個所(ゲーム画面内)には特にボタン等はありません。
で、クリックの送信ですが、SendMessage(ハンドル, WM_LBUTTONDOWN, 0, 座標)では
カーソルが動かなかった為、SendMessage(ハンドル, WM_MOUSEMOVE0, 座標)+
SendMessage(ハンドル, WM_LBUTTONDOWN, 0, 0)という書き方にしています。確かに
SendMessageの発行回数を減らすことが出来るとかなり速くなるので、出来ればSend
Message1回で実現したかったのですが...
カーソルを移動する必要があるのか?
ゲームならDirectInput絡みでカーソルを移動する必要がありそうかもしれないな。

これで改善するかは知らんが、SendMessageじゃなくてPostMessageにしてみるとか。

あと98以降になるがSendInputの方が途中に割り込まれない分、mouse_eventよりも
いいかもしれない。

mouse_eventでもいい気がするけどね。ちなみにVCにしても対して改善されないから。
225三橋:03/06/21 18:09
VB6.0とORACLE8.??でOO4Oを使用してPG作成しています。
SELECT結果がDYNASETに作成されます。結果が0件の場合当然DYNASETは
作成されないと思うのですが、作成されない(空?)場合の判断式を
教えて下さい。(IF aaaDynaset = "" とかいった感じで・・・)
226三橋:03/06/21 18:14
225です。書き忘れました。
RecordCountで件数を取得できるのですが、
Select max(hoge) from xxxTBL... などとすると
該当テーブル0件なのにカウント1が取得されて、Dynasetを参照した
ところでコケてしまいます。Dynasetが作成されていないんですから
当然ですよね。。。
どなたか同じような問題の経験がある方、よろしくお願いします。
227デフォルトの名無しさん:03/06/21 20:18
ループに使う変数はintよりlongの方が早いというのは都市伝説でしょうか。
228デフォルトの名無しさん:03/06/21 20:21
intってVBにあったっけ・・・
>>227
本当。
longは32ビットで32ビットCPUに最適化されたサイズだから。
ループではほとんどlongの方が速いと思うけど、
配列のデータとかはキャッシュ絡みでintの方が速いこともある。
>226
Nothing判定あたりだと思うけど。
オラクルスレで聞いたほうがいいと思う。
>>225-226
いや、Dynasetは作成されている。
select * from xxxTBLでデータが無いならDynaset.Eof(?)でチェックして、
select max(hoge) from xxxTBLなら、maxの答え
(xxxTBLが空ならNULLだっけ?)が一レコードになって返る。
232デフォルトの名無しさん:03/06/21 20:37
(*´д`*)アハァ
>>229
最近のバージョンではintegerも32bit対応になったんじゃなかったっけ?
これこそ都市伝説か?
>>233
このスレではVBといったらVB6以前を指す。
や、VB5かVB6から、とか。
記憶違いかも。ごめん、死ぬるわ。
236デフォルトの名無しさん:03/06/21 21:50
>>221
多分ColumnSize=0にスりゃできるんじゃない?
at.exeのようにリモートのサーバにジョブを登録したいのですが
Win9xクライアントからでもできる方法ありますか?
Win9xからWin2KサーバのSchedule Serviceにジョブを送信する
方法に関してなにかキーワードだけでも教えていただければあり
がたいです。
>>237
それが可能だとすごく怖い
>238
権限をもつアカウントでWin9xにログオンしてからやる。
権限のないアカウントだとジョブ登録はアクセスエラー
ではねられるよ。at9x.exe \\Win2kServerName 11:11 "c:aborn.bat"
てなカンジのat9x.exeを作りたいのだが・・・。
240デフォルトの名無しさん:03/06/22 09:28
どなたか教えて下さい。

プログラム動作中にWindowsのシャットダウンもしくはログオフを行おうとした時、
それを禁止するようにしたいのですが・・・

現時点では
 ・QueryUnloadでシャットダウンもしくはログオフ時に
  メッセージボックスを出し、まだプログラムが動作中であることを
  警告する
ことまでは出来ているのですが、これでcancelをTrueにしても
Windowsはフツーに終了してしまいます。
終了する前に「これだけは必ずやること」を忘れないよう、
タスクトレイに常駐させておき、きちんと実行してから終了しなかった場合は
終了確認を出し(vbOkCancel)、Cancel時はタスクトレイから復帰させ、
Windowsの終了をキャンセルさせ、プログラムを手動で終了したら
Windowsを終了させる(ここは手動でもOK)という流れにしたいのです。

どうやれば、Windowsの終了を中断させることが出来ますか?
241デフォルトの名無しさん:03/06/22 09:41
(*´д`*)アハァ
242ボトン:03/06/22 10:01
>>240
スタートボタンのところにピクチャーを貼り付ける。
ピクチャーのイベントでそれらしいプログラムを走らせる。
ってのはだめ?
243デフォルトの名無しさん:03/06/22 10:06
ネットで稼ぐならこれ。完全無料!!
リンクスタッフになれば小遣い稼ぎができます!!(左下に詳しい説明があります) 
バナー1クリック10円や自分の貼った広告から誰かが会員になったら一人につき1000円ももらえる!
他にもいろいろな報酬があります。
http://www.hptouroku.com/cgi-bin/affiliates/clickthru.cgi?id=252

↑俺も最初は半信半疑で暇つぶし程度でやっていたけれど、
先月15万振り込まれたよ。( ゚д゚)ポカーン
そこらへんの掲示板に広告を貼り付けてっただけなのに・・・。

2ちゃんにはこういう広告がそこら中にあるけれど、
これはマジでおすすめです!!
バンバン広告貼ってバンバン稼いでください!!
>>242
(ctrl+alt+del)*2で再起動してしまう。
>>244
強制リセットなんだからそれはしかたが無いだろ。
>>240
それ絶対止めた方がいい。
電源ブチされてかえって面倒になる。
>>240
Q_Unloadイベントで状況保存処理やっちまえばいいじゃん。
248240:03/06/22 11:11
>>246
こっそり監視する訳ではないので、電源落とされることは
まず無いという設定です。

>>247
サーバー上のとあるページにアクセスし、IDとパスワードを入れて
ログインし、ある順序でページ遷移して、その先にあるボタンを
押して・・・という手順を行う必要があります。
自動で実行できるものではないので・・・・難しいなあ。
249_:03/06/22 11:18
>>248
それ何の処理?
そのアプリの処理と関係ないのでは?
251240:03/06/22 12:42
説明不十分のため、ちゃんと説明します。

学校(一般大学)のゼミで、出席管理用のプログラムを
教授に頼まれて作っているのです。
各自が席についてからPCを起動し、ゼミ開始前に出席入力を行い、
退席時にチェックして帰る・・・ということを行います。

以前はブラウザで行っていたようですが、ID&パスワードの不正使用により
欠席しているのにこっそり出席にしてもらっていた、という事がありましたので
色々な改善が行われています。
そこで、何故専用プログラムにすることになったのかはわかりませんが、
VBをかじったことのある私に依頼がきたのです。
IDカードをPCに接続された機器に入れ、それを読み取り、その情報から
自動ログインし、、、という事は出来たのですが、(これは以前からですが)帰る時に
PCをシャットダウンしてから「忘れていた」というのが非常に多く起きています。

ということで、シャットダウン時にチェック出来るようにしたいのですが
うまくいかない・・・ということです。どなたか助言宜しくお願いします。

(IDカードも一人で複数使えばわからねーんじゃないのか、という事については
 別途対処済みです。)
>240(251)
環境がおかしいと思われ。
次のようなコードだけ書いたフォームを作って実行すると普通の操作では閉じないはず。
(タスクマネージャ等でしか終われない)

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = True
End Sub

これがうまくいかなきゃ話しが進まない。
それと休止状態は無視? こっちは多分介入出来ない。
>>251
つまりIDカードを忘れるのを防げば良いんだろ?
Unload時に警告メッセージかなんか出せばいいだけなんじゃないの。
まぁ100%防げるとは限らんが、そんなもんでいいと思われ。
254240:03/06/22 14:13
>>252
Win98,Win2000どちらでやっても強制終了になる。
以前Win95+VB5でやった時はその方法で問題なかったんだが・・・

環境の問題かな? 

>>253
入れ忘れじゃなくて、帰りにPCの電源を切ったが退室入力を忘れたってのを
防ぎたいのが目的です。
わかりにくかったかな?ごめんなさい。
255253:03/06/22 14:20
>>254
じゃぁ、退室入力処理をUnload時に自動でやるとか。
出入り口に一台タイムカード用のPCおけばいいじゃそ。
257252:03/06/22 15:00
>254(240)
タスクトレイ常駐形式だったね。見逃してた。
252 はごく普通のウィンドウを持つプログラムでの話し。
で、タスクトレイ常駐形式に拘らなければ方法はあると思うが...
(タスクリストに出さないとか)
>>240とか
OSによってQueryUnload、Unloadが反応したりしなかったりがあったと思う。

>>252
> それと休止状態は無視? こっちは多分介入出来ない。
↓これがVB製っぽい。
スリープキャンセル
Power、Sleepキーを無効にするユーティリティ
http://www.vector.jp/soft/dl/win95/util/se242823.html
>>240
結論
 無理、もしくはここのスレの人間の頭では解消不可能

 あ き ら め ろ
(*´д`*)アハァ
取り敢えず>>259は離脱。
262デフォルトの名無しさん:03/06/22 20:25
マルチセレクト可能にしたリストボックスの複数の選択項目を
順に取得するのって、どのようにしたらいいのですか?
>>262
Selectedで調べるんちやうのん?
264デフォルトの名無しさん:03/06/22 21:20
>>263
一個一個ですか?
なにかやり方があるのかと思いまして。
>>264
お望みの結果が返ってくる関数でもつくりなされ
分かりました。ありがと。
267デフォルトの名無しさん:03/06/23 00:54
>>240
Windowsのシャットダウンのダイアログを監視して、
退出処理を行っていなかったら警告を出す。
とかできそうな気がするな。

それかスタートメニューからWindowsの終了できなくして(レジストリいじって)
退出処理をしたらそのままwindowsを終了するとか
普段学生にはそうやってもらって・・・
もちろん他にツールかなんか作る必要があると思うが

あと、他には常にユーザー入力待ちにしといて、
Windows終了時に出てくる強制終了ダイアログの監視とか
SendMessageでキャンセル扱いにできるんじゃないかな?
これなら最初のほうがいいかも・・・
>>267はVBを知らなさすぎる。標準の処理で全部可能
269デフォルトの名無しさん:03/06/23 02:15
>>268
どうやるの?
ちゃんと整理してみよう。といっても俺はw2kしか持っていないし、
現在終了できる状態に無いのでみなさん協力お願いします。

まず、QueryUnloadやUnloadが発生するか?
なんとなくEXEにしてからテストした方がいいと思うが、
この結果にOSのバージョンを沿えて書いてください。
これがすべてのOSで使えるのなら何の問題も無い。


Windowsメッセージレベルで見ると、終了時には
WM_QUERYENDSESSIONで確認後WM_ENDSESSIONが送られ終了する。
もしQueryUnloadやUnloadが発生しないならこっちを利用する。

ExitWindowsEx(Windowsを終了させるAPI)の説明より
EWX_FORCEで終了した場合WM_QUERYENDSESSION、WM_ENDSESSIONを送信しない。
EWX_FORCEIFHUNGで終了した場合WM_QUERYENDSESSION、WM_ENDSESSIONに応答
しない場合、強制終了させられる(w2kの場合)
271その2:03/06/23 06:27
要注意かも
http://support.microsoft.com/default.aspx?scid=kb;ja;417225
> Windows 2000 では、[コントロールパネル] - [電源オプション] -
> [詳細]タブで、[電源ボタンを押したとき] - [電源オフ] の設定ができます。
> これはクリティカルシャットダウンと呼ばれるもので
〜略〜
> クリティカルシャットダウンでは、OS による電源スイッチの制御処理と、
> 起動中のプロセスの強制終了を行います。Windows 2000 は、それまで動作していた
> アプリケーションや動作中のサービスを強制的に終了するので、
> WM_QUERYENDSESSION、 WM_ENDSESSION メッセージは通知されず、
> またシャットダウンスクリプトも実行されずに、最終的にコンピュータの電源をオフにします。

SetSystemPowerState(休止状態とかに使われる奴?)の説明より
> fForce
> 強制的に中断します。TRUE を指定すると、関数は各アプリケーションやドライバに
> PBT_APMSUSPEND イベントをブロードキャストした後、直ちに操作を中断します。
> FALSE を指定すると、関数は各アプリケーションに PBT_APMQUERYSUSPEND イベントを
> ブロードキャストし、操作を中断するためのアクセス権を要求します。
休止状態はこれで検出する? 電源オフボタンによる終了にも対応できるかも??
272その3:03/06/23 06:38
273デフォルトの名無しさん:03/06/23 07:42
>>270
WinXP Home
両方発生した。こっからWindowsの終了をさせなくする方法はわからんけど
274_:03/06/23 08:28
275_:03/06/23 09:37
>>273
終了処理はそこでやればOK。
でもCancel=TrueとしてもWindowsの終了は
キャンセルされないって事?
277_:03/06/23 11:03
278_:03/06/23 12:31
279デフォルトの名無しさん:03/06/23 13:37
UserControlにInterfaceをimplementsしても
Interfaceの型で宣言した変数にインスタンスを代入できません
UserControlでは特別なやりかたをしないといけないのでしょうか?
標準モジュールの数増やすと何か弊害ある?
極端な話関数ひとつに一個使いたいくらいなんだけど
まとめてるとごちゃごちゃして可読性悪くて
読みにくいのは書き方がヘタなだけ。
282_:03/06/23 13:57
>>276
らしいね。240には暗にタスクトレイ常駐でない形をほのめかしたんだけど、レスが無いからやる気しない。
284_:03/06/23 15:47
285デフォルトの名無しさん:03/06/23 16:11
アドイン作っているんですが、関数内の変数を取得する方法と、
取得した関数・変数の性質を調べる方法がわかりません。(public,private,function,sub等)

お願いします。
286デフォルトの名無しさん:03/06/23 16:40
VB6です。
287_:03/06/23 17:16
>>283
タスクトレイは関係ないと思うよ。
Windowsには常駐って考えはなくて、起動していれば常駐。
あなたが言っている「タスクトレイ常駐」とは
ウインドウ非表示+タスクトレイにアイコン表示 状態のことだから。
ウインドウ表示/非表示で終了メッセージが変わることは無いから。
289_:03/06/23 18:24
>>285
まずMSDNを「拡張モデルのオブジェクトと構造」で検索。
そこの「拡張モデルのオブジェクト」と「コードを操作できるオブジェクト」
の各項目に目を通す。
オブジェクトの階層をVBE→VBProject→VBComponent→CodeModuleと下っていって
Memberオブジェクトのとこに目的に適いそうなメソッドがあるな。
TypeプロパティとScopeプロパティとかいうの。

CodeModuleのMembersコレクションをFor eachか何かで一個ずつ調べて
Typeがvbext_MemberType型のどの値を取るかで変数か関数か判別できるし、
Scope(これはvbext_Scope型)の値でPublicかPrivateかFriendかがわかる。

ただし関数内の変数は取得できないようだな。
関数全体のコードは取得できそうなので検索と文字列操作を何とかすれば
できなくもなさそうだが。
291_:03/06/23 20:12
292通りすがり:03/06/23 20:23
VB6を最近使い始めた、初心者プログラマーです。
教えて頂きたいのですが、
VBにてaccess97のmdbをaccess2000に変換したいのですが、
いろいろ調べたつもりですが、さっぱりわかりません。
どうも、超初歩的なことのようで、変換した後のエラーについて
などは、いろいろ見かけるのですが・・・。
本当にしょうもない質問かもしれませんが、
どなたか、助けてください。
お願いします。
>>292
あんた最悪なヤツだよ。Accessスレで答えてもらってるのに!
できなかったらどうできなかったとかの返答も無しかよ!!
294デフォルトの名無しさん:03/06/23 20:42
SQLServer2000とVB6+ADO2.6を使用しています。

コモンダイアログで選択したクライアントのファイルを
SQLServerのImage型に登録したいのですが、うまくいきません。

AppendChunk メソッドとGetChunk メソッドを使用するのは
わかったんですが。。。MSDNの例を読んでもイマイチよくわからず。

どなたかこのようなプログラムを組んだ方がいらしたら
教えてください。お願いします。
295デフォルトの名無しさん:03/06/23 20:52
☆可愛い彼女が貴方のために・・・☆
↓ ↓ ↓☆見て見て☆↓ ↓ ↓
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
逃走中の犯人292を警官293が追い詰めました。(w
>>292
access97のmdbファイルをAccess2000でインポートすれば官僚
298240:03/06/23 21:53
240です。ヒント下さったかた、ありがとうございます。
今日は1限から5限までフルで詰まっていたうえ、その後バイトがあったのでPC部屋に来れませんでした。

>>267
>Windowsのシャットダウンのダイアログを監視結局この方法が一番いいかもしれませんね。
シャットダウンが実行されてからそれをキャンセルしようとしているのが根本的に間違っているような気がしてきました。

>それかスタートメニューからWindowsの終了できなくして(レジストリいじって)
この方法も考えてみましたが、レジストリをいじる方法は(場所がわかっていても)他の問題に繋がるかもしれませんので、
控えておくことにします。どうしてもうまくいかなければ、参考にさせていただくかもしれません。

>>270
>まず、QueryUnloadやUnloadが発生するか?
発生します。前述の通り、システムのシャットダウン処理の際に発生しますのでQueryUnload でメッセージボックスを出して
Cancelを実行しても、メッセージボックスを閉じた後に強制終了させられます。強制終了までにサーバーにアクセスさせて
更新を…とも思いましたが、シャットダウンの優先度が高いため、何も出来ずに終わってしまう模様です。

>>271,272
情報ありがとうございます。このレスの後に読ませていただきます。

>>276
>でもCancel=TrueとしてもWindowsの終了はキャンセルされないって事?
そうですね。アプリケーションの終了をキャンセルさせることは出来ても、
シャットダウンやログオフの処理まではキャンセルされないようです。

>>283
別にタスクトレイと関係なく、裏で存在している状態でも構わないのですが、普通はタスクトレイのアイコンをクリックして呼び出して、
退室にしてから終了させて欲しいのです。シャットダウン監視は、忘れた場合の「特別な」処理のつもりです。
299デフォルトの名無しさん:03/06/23 23:31
>>298
もっと良いUIを考えたほうが良いのは確かだ。
>>299
保存せずに終了したらダイアログがでるのは普通だと思うぞ。
アプリケーションを終了するまでwindowsが終了できないアプリってあるよね。
302デフォルトの名無しさん:03/06/24 07:56
UserControlにInterfaceをimplementsしても
Interfaceの型で宣言した変数にインスタンスを代入できません
UserControlでは特別なやりかたをしないといけないのでしょうか?
303:03/06/24 08:46
>>298
IDE上だとシャットダウンのキャンセルは出来ないようです。
EXEを作って、そっちで試してみてくださいな。
304デフォルトの名無しさん:03/06/24 09:40
特定のメッセージ(MouseMove)の受信をOnMouseMoveの処理中は中止したいです。
どのような方法があるでしょうか?
305デフォルトの名無しさん:03/06/24 10:19
>>290
返答Thxです。
一応そこまではいったんですが、どうやっても関数内の変数にとどかないので・・・・
関数内は駄目なんですね。
文字列検索で行ってきます。
>240
出遅れた亀レスですが、ユーザーがadmin権限を持っていないと
アプリからのシャットダウンとかは出来ないんじゃなかったっけ?
307デフォルトの名無しさん:03/06/24 10:43
.frxファイルに保存されている画像などを取り出すには、
バイナリエディタなどで地味に取り出すしかないのでしょうか?
それともVB6の機能、あるいはツール等あるのでしょうか?
>307
SavePicure()じゃ駄目かのう?
>>304 無視じゃいかんのか?
>>307
.frxがあって元画像がない状況が理解できん。
311デフォルトの名無しさん:03/06/24 17:32
accessで作成したデータベースに、VBからオープンして、その内容をテキストボックスに表示したいのですが、
その、コードが分かりません。教えて下さい。
>311
this.oleDbDataAdapter1.Fill(this.DataSet1);
this.TextBox1.DataBind();
313デフォルトの名無しさん:03/06/24 17:44
312さん、ありがとうございます!!
DAOを使ってオープン&表示したいのですが…。
>>311
わからないなんてありえない
>>313
TExT1.tEXt=WOrKSPaceS(0).oPendaTaBASe("hoge.mdb").OpeNRecoRDSet("SelECt nULlpo FRom gA").FIeldS(0).vALUe
>>311
課題だろ!
>311
データベースを開く。...Database.Open
テーブルを開く...OpenRecordset
テキストボックスに表示する...Textプロパティ

あとは自分でHelpりなさい。
>316 ワロタ!ここは通信教育講座か。
319デフォルトの名無しさん:03/06/24 19:24
すごく基本的な質問ですみません。
文字列に「"」を追加するにはどうすればいいでしょうか?

SQLでFormat関数を使いたいのですが、「"」が記述できなくて困っています。
>>319
SQL = """"""""""""""""""""""""""""""
321240:03/06/24 22:59
Becky! Internel Mailは、シャットダウンしようとした時に送信予定のメールがあると
シャットダウンを強制キャンセルしますね。やっぱり何か方法はあるみたいです…検討中。

>>306
僕はシャットダウンがしたい訳じゃないです。

>>302
> UserControlにInterfaceをimplementsしても
> Interfaceの型で宣言した変数にインスタンスを代入できません
> UserControlでは特別なやりかたをしないといけないのでしょうか?

 なんだとー。VB6.だぞ。だれがそんなことできると言った。
Interfaceなんかできるわけねーだろ。
>>322

Implements は、VB6 にある機能です。
>>321

WM_QUERYENDSESSION に応答すれば、シャットダウンはキャンセルできる。
QueryUnload でのキャンセルがそれと一緒なんだけど・・・
>324 それが240の環境ではキャンセルされない、ってのが発端ですぜ。
じゃぁ何故?って普通は考えるんだが...
326デフォルトの名無しさん:03/06/25 17:38
モデムを制御して音声案内作りたいんです。
相手が押した番号をどう判別するのかわかる人いますか?
是非。


俺 必 死 だ な 。
>>326
うん。必死だな。
>>326
モデムのほうはしらんが、電話の声をマイク入力に繋げて解析すれば?
UserControlがイーパイできたのだが、まとめるのって
どうやる?
330326:03/06/25 18:19
>>328サンクスです。
    波長かぁ。。。がむばってみるYO。

>>327 俺 も お 前 も 必 死 で す
331デフォルトの名無しさん:03/06/25 18:26
TabStop を False にしたピクチャボックスをクリックする際に
MouseUp で直前までフォーカスを持っていたコントロールへフォーカスを戻したいのだが
フックしたり他のコントロールの GotFocus 時に値を保持する記述をしたり
ラベルコントロール等で代用する以外でよい方法があれば教えてくれ
>>331
俺は2番目の方法を使うなぁ…
>>323
> >>322
> Implements は、VB6 にある機能です。

すまんあったな。
SDKののみと恐竜の例を実験してみたら上手く行った。
結構高度なことができるんだ。
334c++1234:03/06/25 20:01
無料で使用できるC++のコンパイラはありますか?
>>334
何 故 こ こ で 聞 く ?
336319:03/06/25 21:53
>>320

ありがとうございました。
最初見たとき意味がわかりませんでした(ニガ
337デフォルトの名無しさん:03/06/25 22:21
338デフォルトの名無しさん:03/06/26 11:29
VBでフラッシュ画像を表示できるコンポーネントはありますか?
>>338
ある。
FlashのユーザーならMacromediaのサポートを受けろ
>>338
いつのまにか入っていたocxで表示できたけど
ライセンス的に問題があるのかな?
そこも含めて調べてねということでコンポーネント名は内緒。
>326
そういう処理の為のコンポーネントがあるから素直に買うのが吉。
いくらの仕事か知らんけど、自前で作ってたら時間がイクラあっても足りない。
342デフォルトの名無しさん:03/06/26 14:39
質問があります。
実装をともなうクラスの継承をうまく行う方法をご存じの方はご教示ください。
具体的にはFooというインターフェイスと実装を備えたクラスがあり、

[Foo]
Public Sub Show()
MsgBox "test"
End Sub

Public Sub VirtualFunc()
End Sub

このShowの実装を継承先で使用するためのBarというクラスがあったとすると、

[Bar]
Implements Foo
Private super As New Foo

#If 1 Then
Private Sub Foo_Show()
Show
End Sub
#End If

Private Sub Foo_VirtualFunc()
' Bar独自の記述
End Sub

Fooから派生したクラスでは#If 1 Thenで括られた中身をコピペすることになります。
このままではメンテナンス性に欠けたクラス設計になってしまいますが、この問題を
解消する方法はあるのでしょうか。アドバイスいただけると助かります。
>>342
委譲
344デフォルトの名無しさん:03/06/26 16:53
複数のコントロールを配置したユーザーコントロール一つだけだと
Tab キーでのフォーカス移動でループしないのだが解決法は?
345342:03/06/26 17:06
>>343
委譲を使うということで、以下のようなコードにしてみました。
実装をFooImplというクラスに分離し、

[FooImpl]
Public Sub Show()
MsgBox "test"
End Sub

FooではFooImplの実体を持ちます。

[Foo]
Public Impl As New FooImpl

Fooから派生したBarでもFooImplを公開します。

[Bar]
Implements Foo

Private super As New Foo
Private Property Get Foo_Impl() As FooImpl
Set Foo_Impl = super.Impl
End Property

これでImplというプロパティ経由ではありますが、プロパティを公開す
る部分の記述だけで実装部分にアクセスすることができました。

ちょっと自信ないのですが、こんな感じでいいのかな。ヒントをくださっ
た343さん、ありがとうございました。
346デフォルトの名無しさん:03/06/26 20:15
VB6.0からSQLserverのデータベースを複製したいんですけども、
やり方がわかりません。
SQLDMOを使用し、バックアップと復元はできたんですが、
復元で違うデータベース名をつける方法が分かりませんでした。
教えてください。
>>344
最後のコントロールのKeyPressに

If KeyAscii = vbKeyTab Then
  Hoge.SetFocus
  KeyAscii = 0
End If
348デフォルトの名無しさん:03/06/26 21:08
16進数のFBをAAAというファイルに保存したいのですが、
やり方がわかりません。バイナリエィデタで見た時に
適切に保存されるようにしたいのです。

ヘルプを見たのですが、Hexという関数では、
10進数を16進数の文字列に変換するだけなので使えませんでした

どなた方ご教授お願います

これでは使えません
↓↓↓

【例】'** 13 を 16 進へ変換
dim h as string
h = hex(13)
>>348
chr
>>348
bytHoge = &HFB
Open "AAA" For Binary As #1
Put #1, , bytHoge
Close #1
351デフォルトの名無しさん:03/06/26 23:06
たとえばTextBoxに2と入れたらランダムアクセスファイルから2番の名前などを引っ張ってきて表示したいんですけどどうやればいいんですか?
TextBoxに入力した後にCommandボタンを押すようにしたら出来るんですけど出来れば入力したら何もしなくても表示されるようにしたいです。
どなたか教えていただけないでしょうか?
352デフォルトの名無しさん:03/06/26 23:08
VBからCANONのPIXUS-850iで印刷させているのですが
カラー印刷の扱いになってしまうのか印刷時間が遅くなってしまいます。

強制的に白黒印刷にするにはどうすればよいのでしょうか?

.ColorMode =  vbPRCMMonochrome ではうまくいきません。

それとも別の原因でしょうか?
漠然としててすみませんが教えてください。
>>351
keypressイベントかなんかでいいんでない?
しらんけど
354351:03/06/26 23:45
>>353
ありがとう
うまくいきました。
355344:03/06/27 08:13
>>347
つまりコーディングせにゃアカンってことか...
356デフォルトの名無しさん:03/06/27 08:48
メモリ上でのみ圧縮解凍を行いたい
具体的には文字列を圧縮してバイナリデータを返すのとその逆
方法を紹介してくれ
>>356
圧縮アルゴリズムでもぐぐってくれば?
>>356
方法もなにも、それを考えるのが君の仕事だろ。
VBと何の関係もない。宿題か?
359デフォルトの名無しさん:03/06/28 15:37
テキストボックスの配列があります。
この配列の個数に合わせて、タブとフレームを生成しこのフレーム上に
テキストボックスを配置したいのですが、どのように処理をすればよいのでしょうか?


実行時に決定された配列の個数に従って、
text1(1)〜text1(5)をtab1のframe(1)上に置き、text1(6)〜text1(10)をtab1のframe(2)上に
置くという具合にしたいのですが、この場合text1(1)をframe(1)上に作っておくと
load text1(i)とすると全てがframe(1)上に生成してしまいます。

厨房な質問ですいませんが是非教えてください。
360デフォルトの名無しさん:03/06/28 16:16
オリジナルのダイアログボックスを開いて、そのダイアログが消えるまではアプリケーションの他のWindowが反応しないようにしたいです。
どようようにすればよいでしょうか?
>>359
Load ステートメントで調べてみては?

>>360
"モーダル" あたりがキーワードじゃないかな?
362(・∀-)チェキラッ!:03/06/28 21:40
ヒャッホウ
スレ違いをしてしまったのでこちらに同じことを書かせて下さい。

strRet = InputBox("題名","新規ファイルの作成","無題")

などとして入力を求める際に、
最初から入力モードが日本語になっているようにしたいのですが、
どうやったらできますか?
>>359
Set文でContainerにフレームを入れよう
 Load text(1)
 set text(1).Container=frame(2)
>>363
InputBoxに似せたものを自分でつくればいい。一番手っ取り早い。
>>240
解決したのかな。

QueryUnloadで、終了までにやるべき処理をやればいいのでは。
ただ、アプリケーションの終了までに、一定時間かかった場合、OSから強制終了される。

仮にアプリケーションが終了を拒否できたとしても、
その他のアプリケーションが終了すればOSは機能しないわけだから、
素直に終了されるしかない。

強制終了までの時間に処理できないなら、
強制終了までの待ち時間を長くしてやる必要がある。
この対策は、終了時にログを吐くサービスアプリケーションなどで意識する必要がある。
設定はレジストリだけど、どこだったかは失念。
"実行時エラー '380':

プロパティの値が不正です。"
このエラーがどの行で起こっているか(デザイン時ではなく)実行時に表示させるにはどうすればいいのでしょうか
開発マシンだとエラーは出ないのに、
違うマシンで実行するとこのエラーが起こってしまうので。
VB6.0です
>>367
できないんじゃない?
Erl
>307
ログ吐きクラスでも作っておいて、地道に探すしか無いでしょう。
371359:03/06/29 14:28
>>364
ありがとうございました
>>357,358
要するに馬鹿(356-358)には、出来ないってことですね?
>>372
教えてくれなかったからって僻むな。
374367:03/06/29 19:37
>>369,370
ありがとうございました
375240:03/06/29 19:41
>>366さん

色々試してみたところ、ShowInTaskBarをFalseにしていると
QueryUnloadでキャンセルを有効にしてもシステムにもっていかれるようです。
タスクトレイ常駐にしたかったので、タスクバー非表示にしていたのが原因のようです。

ShowInTaskBarをTrueで、最小化時にAPIでタスクバーから消して、
通常サイズに戻った時にタスクバーに復帰させても駄目な模様。
今色々と試行錯誤中です。
376デフォルトの名無しさん:03/06/29 20:21
質問です。
アイコン変更のダイアログを表示させようと思い、隠しAPIのページを参考にしつつ
以下のコードを作成しました。実行するとダイアログは正しく表示されるのですが、
ファイルパスに2バイト文字が含まれると 「最臑??罅.exe」 のようにところどころ
文字化けしてしまいます。
原因がわからないのですがどうしてでしょうか?
OSは WinXP Home です。

Private Declare Function SHChangeIconDialog Lib "shell32" Alias "#62" (ByVal hWnd As Long, ByVal szFilename As String, ByVal

Reserved As Long, lpIconIndex As Long) As Long

Function ChangeIconDialog(hWnd As Long, strPath As String) As Long
Dim Iconidx As Long, strbuf As String * 260
strbuf = strPath
If IsWinNT Then strbuf = StrConv(strbuf, vbUnicode)
Call SHChangeIconDialog(hWnd, strbuf, -1, Iconidx)
MsgBox "ファイル:" & Strconv(strbuf, vbFromUnicode) & vbCr & "アイコン:" & Iconidx
End Function

※ IsWinNT はNT系OSだとTrueを返します。
377366:03/06/29 20:43
>>375
QueryUnloadでCancel=Trueにするんじゃなくて、
そこで終了処理をやってしまうのはどう?ってことなんだけど。
378あぼーん:あぼーん
あぼーん
>>375
ウィンドウ非表示にするだけで済む話しじゃないの?
タスクトレイに入れる方法は知らないけど、1つのexeで難しいならタスクトレイ用にもう1つ作ればいいだけかと。
380240:03/06/29 22:46
>>377
ああすみません。
いや、QueryUnloadで終了処理をする・・・というのは目的達成ではないのです。
理由は既に書いてます・・。

>>379
その手もありますね。考えてみます。
381366:03/06/29 23:19
>>380
退出処理が終了処理でできないのかと問いたいけど、
それよりも、OSのシャットダウンを中止させるよりは、
仕様や運用の見直しをやったほうがいいような気がする。

どの言語のスレでもそうだけど、実装で悩んでいるひとって、
そもそも仕様に無理のあるケースが多い。
で、なぜか仕様の見直しより、実装にこだわる。
>>381
「俺の仕様に文句あんのか?」みたいなこと言う
頭の弱いヤシとかもいるわけで、
立場の弱いPGじゃ言えないことも多い。
>>381
240ではないが・・・もしOSの異常発生や、指示により
強制終了させなければいけない場合や、有無を言わさず
強制終了というケースの場合でも自動で退出処理を行ってしまっていいものか?

OS終了→自動退出、という仕様のほうが問題ありだと思うが。
まっ、Sヨの一部には正常ケース以外想定できない人種もいるから仕方がないがね・・・・
384デフォルトの名無しさん:03/06/30 11:11
イントラネットでIEを用いて情報公開をしようと思っています。
その中には持ち出して欲しくない文書もあるので、HTMLのヘッダーなどで
判断させて、メニュー内の「保存」や「印刷」を使用不可にしたいのですが、
ActiveXなどの技術で可能でしょうか?
調べてみたけど、そのような技術に触れてるサイトが見つかりませんでした。
どんな単語で調べればいいかだけでも教えてくれると助かります。

参考:http://www.ffc.co.jp/products/infobarrier/
↑こんなのみたいなことをしたい。
>>384
たとえばだけど、画面表示をキャプチャとかは気にしない?
IE以外のブラウザ(とか)を使ってアクセスされたら?
386384:03/06/30 11:43
>>385
それも考えて、専用のブラウザを作ろうかとも考えたけど、利便性を考慮すると
難しかったんですわ。
例えキャプチャを防いでも紙とペンで書き写されたらお仕舞いだし…。
それに、社内にはそれほど悪知恵の働く人はいないから大丈夫だと思われw
>>381
仕様に問題ありというが、ならあなたならどういう仕様にする?
なんか問題がある→仕様が無理だと言う。
で止まったらなにも解決しないよ。
最終目的は解決。解決を無視して問題だと言うだけなら簡単。
>384
技術的な事は判らんけど、専用ビューワ作った方がすんなり行きそうな気がする。
自分がそうなんだけど、メニュー使ってファイル保存するよりマウスで選択範囲をドラッグしてOutlookなんかにドロップってのを良くやる。後、Ctrl+C, Ctrl+Vもね。
 って事で。
389デフォルトの名無しさん:03/06/30 12:48






上のようなテキストがあるとして
「い」 と 「え」
だけを読み込むにはどうしたらいいですか?
391384:03/06/30 13:17
>>388
専用ビューワーはやっぱり難しいかな。なにせ、自分でソフトのインストールも出来ない
人たちだからね。他の方法を考えてみるよ。

>>390
なかなか参考になりそうなサイトを教えてくれてありがと。ちょっち調べてみます。
392_:03/06/30 13:29
393デフォルトの名無しさん:03/06/30 13:53
>389

とってもすてきな質問ですね。
>>389
全部読んで「い」と「え」だけ使ったらいい
395デフォルトの名無しさん:03/06/30 14:16
>>394
全部読めるんだが、行の選び方が恐ろしく分からない
396389:03/06/30 14:17
説明が足りなかったですね・・・すいません
2chの縦読みの要領なんです
>>396
一行ずつ読んで最初の文字だけ使ったらいい
399389:03/06/30 14:34
プゲラ
400_:03/06/30 15:20
>>389
禿げしく課題
402デフォルトの名無しさん:03/06/30 20:08
VBからB4横で打つ帳票を
ある時はレーザープリンタ
ある時はラインプリンタ
で打ちたい。

レーザープリンタの場合は問題ないのだが、
その設定でラインプリンタで打つと
右に90度回転した形で出てしまう。
(印刷内容の左側が上、右側が下みたいに)

こういう場合、どう制御したらいいんでしょ?
(簡潔な回答難しいと思うので、取りあえずそんな経験ある人いたらレスきぼんぬ)
403デフォルトの名無しさん:03/06/30 20:43
>>387
君が言ってることは正しい。ただし、それは開発の責任者に対しては。ここは
単なる掲示板で、たんにヒントを述べるだけでも全然問題ない。結局、あんたも
何も言ってないだろ?
>>403
> たんにヒントを述べるだけでも全然問題ない。
あなたが言っているのは解決のヒントではない。
単に批判しているだけ。どこがどう悪いかも言わない。
何で悪いかも言わない。どうすればいいかも言わない。
そんな信頼性にかける言い方じゃ、誰も信用しない。
子供の戯言と同じ。

> 結局、あんたも 何も言ってないだろ?
私はあなたに対して言っている。
405403:03/06/30 22:06
381 <> 403なんだが。
で、あんたは「解決」になることなんか言ったか?
406デフォルトの名無しさん:03/06/30 22:13
>>404
「使用を見直せ」って言うのは良く使う開発の手段だが?
407デフォルトの名無しさん:03/06/30 22:17
s/使用/仕様/
スマソ
s/使用/仕様/

とかいう表記を、意味もわからず使うアホって多いよな。
2ちゃんで覚えた単語みたいな意味で使うバカとか
>406 = >406.Replace("使用", "仕様")
410ディフォルトの名無しさん:03/06/30 23:54
gooのフリーメールに自動的にログインするプログラムを作ろうとしてるんですが、
どうもうまくいきません。

Error 438
オブジェクトは、このプロパティまたはメソッドをサポートしていません。Error 438

とでてしまい、実行できません。
ログインしようとしているユーザ名等を指定するソースは次のようになっています。

<INPUT maxLength=32 size=15 name=uname>
<INPUT type=password maxLength=32 size=15 value="" name=pass>

っで、つくったプログラムは以下の通りです。
コマンドボタンと、webbrowserコントロールを貼り付けました。

Sub Command1_Click()
Dim URLocation As String

URLocation = "http://community.goo.ne.jp/freemail/index.ghtml"
WebBrowser1.Navigate URLocation
WebBrowser1.Document.getElementsByName("uname").Value = "hoge"
  WebBrowser1.Document.getElementsByName("pass").Value = "pasuwado"
End Sub

よろしくお願いします。

>>408
お前、つい最近意味知っただろ?
>>409
ちょっとワロタ
412366=381:03/07/01 02:11
>>387
少なくともオレはWindowsのシャットダウンをキャンセルするよりは、
退出処理とやらをアプリケーションの終了処理でやるほうがいいと提案したけど。

オレは情報システム部に所属しているから、
なにかべつのアイデアを考えるのはやぶさかじゃないが、
仕事でもないのに、解決の手助けを強要される筋合いはない。
批判しっぱなし上等。2ちゃんねるだもん。
413デフォルトの名無しさん:03/07/01 07:34
>>387
実際どういう仕様がいいかはここだけの情報じゃわからんよ。結局質問したヤシ
が解決するしかないんだよ。
>>402
それって、紙の入れ方を間違えているだけじゃないの?
>402
レポートツール使ってるの?
416デフォルトの名無しさん:03/07/01 11:57
>>414
そんなわけでもない。

>>415
CR8.5

で、本来はB4横なのだが
用紙:15×11インチ
向き:縦
にすると、それなりに出ます。

・・・という事はプリンタによって制御を変えないといけない羽目になる。
なんて(・∀・)イイ!方法ない?
417デフォルトの名無しさん:03/07/01 15:35
RestoreToolbar はバグ持ちだそうで
Timerコントロール使ってActivate以後にRestoreToolbarをよぶようにしたのですが
区切りボタンを入れると、それ以降のボタンが出てきません。
正しい回避方法を教えてください
418デフォルトの名無しさん:03/07/01 17:28
コールスタックの状態をコード中から参照したいのですが、どうすればいいですか?
>418
まず、その必要性を明確にする。
420デフォルトの名無しさん:03/07/01 20:33
InetのOpenURLを使ってHTMLのコードを取得しているんですが、
Yahooや朝日新聞のHPは取得しても日本語が文字化けしてしまいます。
文字コードがEUCだからなんでしょうが、これをちゃんと読み取ることはできないのでしょうか?

教えてください。お願いします。
>>420
検索くらいしましょうよ。"VB EUC SJIS 変換"ですぐ出ます。
422デフォルトの名無しさん:03/07/01 21:05
access2000で、フォームに検索機能をつけたのですが
2回目の検索を行うと、1回目の検索キーワードで
検索を行い、結果を表示してしまいます。
抽出メソッドDoCmd.ApplyFilterを使っています。
ApplyFilterを初期化する方法はあるのでしょうか?
>>420
以前同じ問題にぶち当たって

検索した漏れ、2chで質問しちゃうお前。
424daidai:03/07/01 23:32
VBでAVI形式動画の全フレームをBMP形式の静止画にすることってできますか?どうすれば出来るのか教えてください。
>>424
DirectXとか調べてみたら?
426デフォルトの名無しさん:03/07/02 00:10
フォームにファイルをドロップできるようにしたのですがフォーム上の
コントロールすべてに対して OLEDragDrop を書くのが面倒でたまりません。
何かい省略方法はないでしょうか?
>>426
・サブルーチン化なんかして丸投げする。
・コントロールを減らす。コントロール配列にする。
てかどのくらいあんの?
>>426
なんでコントロールすべてに書かないといけないのさ・・・
>>427-428
今はこんな風にずらーっと。
『すべてのコントロールに対して』なイベントはないものかと思ったんですが
欲張りというものでしたね。

Private Sub Command5_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
Call OLEDragDrop(Data)
End Sub

Private Sub Command6_OLEDragDrop(Index As Integer, Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
Call OLEDragDrop(Data)
End Sub

Private Sub Command7_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
Call OLEDragDrop(Data)
End Sub

Private Sub Command8_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
Call OLEDragDrop(Data)
End Sub

Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
Call OLEDragDrop(Data)
End Sub

Private Sub Label1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
Call OLEDragDrop(Data)
End Sub

Private Sub Picture1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
Call OLEDragDrop(Data)
End Sub
430デフォルトの名無しさん:03/07/02 08:02
プログラムは単純作業の繰り返し
面倒でもやらなければいけないことを1つずつこなしていけば、
そのうちいいものが出来上がるさ


結論
 手を抜こうとするな
431デフォルトの名無しさん:03/07/02 08:10
>>408
こんだけLinuxがはやってる時代にsedを使ってるヤシなんざゴマンといるんだが、
>430
VB以外の言語も勉強しようね。
>430
コボラーはすっこんでろよボケが
>429
どのコントロールにドロップされても同じ処理をしてる訳?
その仕様自体に問題は無いのか?
>>429
なんで引数をオブジェクトにして(ry とかコントロール配列にしてとか考えつかないんだろうか
すいません。質問です。
VBでMSCOMM.ocxを使って電話をかけるプログラムを
作りたいのですがうまく使い方がよくわかりません。
自分でも調べたのですがおながいします。

437デフォルトの名無しさん:03/07/02 12:00
すいません、ちょっと過去ログを見たり他のサイトを見ても
わからなかったので質問します

小数点付き16進数を10進数に変換したり、
その逆はどうやってやればいいのでしょうか?

整数の変換はいくらでもあるのですが、小数点付きとなるとなかなかなくて・・・
すいませんが、よろしくおねがいします
438デフォルトの名無しさん:03/07/02 13:55
整数型の値に対して上位と下位のバイトを逆にしたいのですが
一番効率の良い方法を教えてください
>>437
2進数の少数第一位が0.5、第二位0.25、第三位が0.125といった感じで重み付けをして計算すればいいよ。
>>438
ntohlとかhtonlとか
>>436
モデムでも繋がないと無理です。
442438:03/07/02 14:39
>>440
こんなんがあるのですね
ありがとうございます
でも戻り値からさらに上位ワードを取り出さないとならないようで
443デフォルトの名無しさん:03/07/02 14:51
>>442
エンディアンを変換したいんじゃないのか?
444デフォルトの名無しさん:03/07/02 14:51
バイトオーダーというべきか・・・
445438:03/07/02 15:14
>>443-444
どうもそのようです
でまあやりたいことはこういうことなんですが
これをもっと最適化できないかなぁと

Dim a As Integer

a = Asc("あ")
Debug.Print Hex(a)
If a < 0 Then
    Debug.Print Hex((a And &HFF&) * &H100& Or (a + &H10000) \ &H100&)
Else
    Debug.Print Hex((a And &HFF&) * &H100& Or a \ &H100&)
End If
446デフォルトの名無しさん:03/07/02 15:26
>>438
Dim henkan(&h0FFFF) as integer
henkan(0)=0
henkan(1)=&h0100
henkan(2)=&h0200
...............
henkan(&hFFFE)=&hFEFF
henkan(&hFFFF)=&hFFFF
を初期化ルーチンに挿入.あとは使いたい時にこの配列を
使うだけ。
447438:03/07/02 15:26
>>440
んあ!ntohsとかhtonsとかあるんですね
もっとよく調べるべきでした
すみません
>>445よかよさげです
448438:03/07/02 15:28
>>446
なるほど!そういう方法もあるんですね
ありがとうございます
Option Explicit

Private Declare Function htons Lib "wsock32.dll" (ByVal hostlong As Long) As Long

Private Sub Command1_Click()

Dim a As Integer
a = Asc("あ")
Debug.Print Hex(a)

Debug.Print Hex(htons(a))

End Sub
aspでエラーが発生した場合にOSのイベントログにメッセージをはかせたいのですが、
方法をご存知の方はいますでしょうか?
OSはWindows2000Serverです。
451437:03/07/02 15:52
>>439
ごめんなさい、質問の仕方がヘタでした
バイナリエディタもどきを作っているのですが、doubleの値を16進数で
表示したり戻したりしたいのですが、何かいい方法は無いでしょうか?
452_:03/07/02 15:57
>>451
あなたはバイナリが何かわかっていないと思います
451はVBから始めてVB以外知らない。に関数3つ
454は何も知らない。に関数5つ
454はC++信者に関数5つ
457437:03/07/02 17:21
なんか荒れてるし・・・
HEX関数だと小数点以下が四捨五入されますよね
そのまま16進数にする方法って無いのでしょうか?
>>451

この辺が参考になるかも。
http://docs.sun.com/source/806-4847/ncg_math.html
459458:03/07/02 17:44
>>457
質問の意図を勘違いしてたみたい。458であげたURIは参考にならないね。

こんな感じでどうかな。

Private Type bytes
v(7) As Byte
End Type

Private Type dbl
v As Double
End Type

Private Sub Command1_Click()
Dim a As dbl
Dim b As bytes
Dim i As Long

a.v = 1
LSet b = a

For i = 7 To 0 Step -1
Debug.Print Hex$(b.v(i))
Next
End Sub
460437:03/07/02 17:57
>>459
なるほど、バイト単位で変換するのですね
ありがとうございました、やってみます
461 :03/07/02 18:31
アテー マクルト ベゲブラー ベゲドゥラー
VBとMSSQLを使ったプログラムの修正をしています。
あるDBのTABLEからselectしたデータを元に、
別のDBのTABLEを検索し、表示するという処理があるのですが、
他DB間joinが難しい(できない?)ため、
現在のソースでは、
TABLE1より検索し、コレクションに格納
TABLE2よりselect * で全部抜き出して、コレクションにあれば、表示
という処理を行っています。
しかし、TABLE2のデータ量が大きくなればなるほど、時間がかかってしまいます。

TABLE1と2を同じDBに乗せることができれば
joinで簡単にできるのですが、別の事情で難しいため、
プログラムレベルで時間を短縮できるような方法はないでしょうか。
>462
sSql = "SELECT * FROM table2 "
sSql = sSql & "WHERE field IN ("
For Each v In Table1Collection
  sSql = sSql & v & ","
Next
sSql = Left$(sSql, Len(sSql -1) & ")"

てな感じではだめ?
>462
コレクションに格納する理由はあるのか?
TABLE2から全ての行をSELECTする必要があるのか?
>462
既存の修正で出来る範囲でって事なら、まずどの処理に時間が費やされているかプロファイルした方がいいと思うよ。
どのみち何%改善しましたって報告しなきゃならん訳だろ。
466デフォルトの名無しさん:03/07/03 01:31
.netと6.0以前の違いは?
467462:03/07/03 01:52
レスありがとうございます。
>463
なるほど、この方法だとSQL文にwhereがつけられます。
ただ、TABLE1のデータが何百、何千とある場合、SQL文が
とても長くなってしまいますが、問題ないのでしょうか。

>464
TABLE2の検索条件が別TABLEのデータであるため、
whereが使えなかったからです。(463さんのやり方は考えてなかったです。)
もし、よろしければ簡単にできる方法を教えていただけないでしょうか。

>465
>どのみち何%改善しましたって報告しなきゃならん訳だろ。
その通りです。
一応、プログラム全体の処理時間を調査して、一番時間かかっている
部分についてここで質問させていただきました。
更に、この部分について細かく時間を調査しなければいけないですね。
VBでもMVCモデルを意識して書いてる人いる?
469デフォルトの名無しさん:03/07/03 07:33
>>466
激しく違います。リストアップできる量ではありません。
470デフォルトの名無しさん:03/07/03 08:11
>>466
テキストボックスのプロパティ構成や初期化方法まで違うようなレベル
シングルラインエディットは標準じゃないで?
471デフォルトの名無しさん:03/07/03 08:32
ユーザーコントロールで
分割ペインのようなコンテナを作れますか?
472466:03/07/03 10:21
ナルホド・・・。
全く別の物と考えてもいいくらいですか
初心者でスマソ

なんかプログラムやりたいなぁ〜とか思ってたんですが
Cから始める事にします・・・。
473デフォルトの名無しさん:03/07/03 10:40
WIOSOCKの通信プログラムでクライアントがデータを送ると、それに反応してサーバがデータを送り返すということをしているんですが
クライアントがプロシージャを抜けて、DATAARRIVALイベントを処理できるようになる前に、データが返ってきてしまい、うまくいきません。サーバーがデータを送る前に負荷を与えればよいのかもしれませんが、よい方法ありませんか?
DO EVENTSを使おうにも、関数が関数を呼ぶようなプログラムになっておりどこにどう置けばよいか分かりません。
SENDCOMPRETEとか上手に使えば良いんですかね?
ご教授願います。
>>473
んな、あほな。
475デフォルトの名無しさん:03/07/03 11:33
VBのフォームでもACCESSのようにtext1に入力した文字のふりがなを
text2に入れることってできないでしょうか?いろいろ試したんです
がわからなくて困ってます。
>>473
> WIOSOCKの通信プログラムでクライアントがデータを送ると、
> それに反応してサーバがデータを送り返すということをしているんですが

それ、リクエストとレスポンスの関係なんだよね?

クライアントがリクエストを出して、
サーバがリクエストを受け付けて、処理して、結果を返すんだよね?
なんで、クライアントがリクエストしてる最中にサーバからレスポンスが返ってくるんだ?

リクエストとレスポンスの関係じゃない・・・っていうなら、
クライアントからのデータを送った のと サーバーからデータを送った のは、ほぼ非同期に考えて良いはずだけど。
477デフォルトの名無しさん:03/07/03 13:06
〉〉473
即レス感謝です。
えーと、関係はリクエスト・アクセプトではないです。
ご意見については、私もそう思うのですが、残念ながらそうなってないようです。その証拠に、サーバがデータを送る前に一定時間ウェイトをいれたらひとまず動きました。しかし、機種の性能に依存してしまうので、完璧な解決法を探しています。
どなたか助けて下さい。
>>477
VBのソケットはさほど詳しく無いんだけどさ。

VBって
サーバからパケットが飛んできたら、強制的に即座にイベントが発火されて、
そのイベントに反応しなきゃいけないようになっているのか?
後回しには出来ないのか?

C/C++/Java とかを経験してきた私から言わせると、
ソケットプログラムにおいて、そういう処理が出来ないはずない
クライアント(サーバだろうが)アプリが必要なときに、パケット(バッファから)受信すればいいはずなんだが。
479デフォルトの名無しさん:03/07/03 14:21
テキストボックスで、切り取り/コピー 貼り付けをさせないようにするためにはどうすればいいでしょうか?
aspはOn Error Goto ラベル みたいな Goto文は使えないのでしょうか?
On Error Goto 0 は可能なんですが、意味が違うしx
>>475
IME関係のAPI(Imm*)を使うか市販コントロールを使います。

>>479
わざわざそんな不便なUIにする理由はなんでしょう?
>>479
テキストじゃなくてフォームに直に出力すればいいじゃん
>480
On Error Resume Next
して、
If (Err.Number <> 0) Then
とかで捕まえて。

ASP.Netなら Try Catchも使えるよ。
484479:03/07/03 15:51
>>482
コピーして出力結果を持っていかれないようにしたいのではなく、
貼り付けで変な値を入力されるのを防ぎたいのです。
>484
不正データ入力を防ぎたいってんなら、しっかりと入力チェックしてやればいいだけの話じゃ?
標準から外れた事をすると、色々とめんどくさいよ。
486479:03/07/03 16:13
>>485
キー入力のほうは、KeyDownイベントつかって入力規制してますが、
コピペで貼り付けられた時の入力チェックが複雑そうだったので、
いっそのこと、テキストボックスにキーボード以外の入力を
許可しないようにしたほうが簡単かと思いまして…
487デフォルトの名無しさん:03/07/03 16:14
☆貴方のハートをキャッチします☆
http://endou.kir.jp/yuminet/link.html
>>486
プログラマに向いていないですね。
489Change/Validate:03/07/03 16:46
>>486
キーチェックもチェック漏れがある予感・・・
>486
貼り付けたデータが不正な物だった場合どういう挙動をさせるべきなのか、
他の有名ソフトの処理を参考にしてみ。
>>486
明らかに、Validateでチェックした方が良さそうなんだが
>473-477
送信したあとのレスポンス受信を、DataArrivalイベントでなく
ソケットのBytesReceivedプロパティの変化で判断するように
したらどうでしょう?

あんまりスマートじゃないですが、

  Sock.SendData

  Do
    if( Sock.BytesReceived > 0 ) Then Exit Do
  Loop

  Sock.GetData

てなかんじで。
あ、もちろん、応答が帰ってこなかったときのために
Loopは受信タイムアウトで抜けるようにしておいてね。
どなたか助けてください。
現在Oracle Object for OLEで開発しているのですが
NULL値の扱いで困っています。
今は hoge = oraDynaset.Fields("hoge").value & ""
という形でnull値を""に変換しています。
ですが、これでは処理が重いので
SQLを SELECT NVL(hoge, '') as hoge from tableA;
として
hoge = oraDynaset.Fields("hoge").value
にしました。
するとこの代入でnull値の扱いが不正ですというエラーが出ます。
NVLでnull値を長さ0の文字列に変換されていないようです。
というかたぶんoo4oが長さ0の文字列をnull値に置き換えて
しまっているのだと思いますが。
こんな場合の処理速度アップのためのテクニックありますでしょうか?
494480:03/07/03 18:26
>483さん
ありがとうございます。
やはり Resume Next は使えませんか・・・
なんとか無しでがんばってみます。
495デフォルトの名無しさん:03/07/03 19:16
改行コード等を表示できるテキストコントロールってないでしょうか
>495
自作したほうが早いとオモワレ
497デフォルトの名無しさん:03/07/03 20:31
>>491
というか、Validateってまさにそのためのイベントだよね
498デフォルトの名無しさん :03/07/03 22:33
(・∀・)バリダテ?

>>486(479)
考えは悪くないと思われ。
VBで実現できるか判らないが、Cでなら次のようにしてやったよ。

TextBoxを読み取り専用(Read Only)にする。
背景が灰色になるので標準の色に変える。
後は入力規則に従い通過させる。

こうするとコピペはもちろんIMEも起動せず、クリックメニューも完璧。
やってみれ!
500デフォルトの名無しさん:03/07/04 04:06
》492
ナイスアイデアですね。それと同じようにDO EVENTSを回してDATA ARRIVALイベントを待つというのでも可能なのでしょうか?(自分で試せと言われそうですが、今ちょっとワケありで試せないんです)
おねがいします。
501_:03/07/04 04:15
イライラ
>>486
Changeイベントでがんばれ。
キャレット位置を調整しながら不正文字を排除する。これ最強。
>>497
この場合のValidateは所詮妥協案。
504492:03/07/04 09:54
>500
どうでしょうね。可能だとは思いますが、それでは最初の状態に
逆戻りとなりそうなヨカーンもします。

DataArrivalイベントプロシージャに移行するのではなく、イベント
発生で何らかのフラグを立て、それをDoループを抜ける条件に
する、というのなら有りかもしれません。
505デフォルトの名無しさん:03/07/04 12:25
プログラムが非アクティブな時(他のアプリや別Window開いている時)に
押されたキーをそのプログラムに読み込ませてイベントを起こしたいのですが
どのような方法があるのでしょうか?
よろしければ教えてください
いまいち判りにくい質問でごめんなさい。
なお製作はVB6.0です
506デフォルトの名無しさん:03/07/04 12:36
>505

俺はDirectXを使う。
たぶんAPIでもできたとおもう。
507505:03/07/04 12:38
DirectXは判らないのでAPIでできる方法探してみたいと思います
できるといいな^^;
即レス&アドバイスありがとう
ADSIで、ActiveDirectoryのユーザーのプロパティを取得したいのですが、
セキュリティタブの一覧の属性名がわかりません。どなたかご存知ないでしょうか?
509デフォルトの名無しさん:03/07/04 13:46
ラベル等を印刷する時に、
Locate 3,3 ラベル名.captionって記述しました。
ラベルの途中で
例えば4文字以上は改行とかって
できないですか?
510デフォルトの名無しさん:03/07/04 14:55
すいません。
VB6.0で住所録を作りたいのですが、
DBコンボボックスに名前を反映させて
プルダウン選択できるところまできたのですが、
名前から住所や電話番号等の個人情報を開くには
コマンドボタンにどういうコードを使えばよいですか?

また、保存や削除等のコードも教えて下さい。
511デフォルトの名無しさん:03/07/04 15:03
なんつー質問だ
512デフォルトの名無しさん:03/07/04 15:08
>>511
すいません。
MSDNも入ってないVB渡された上に
初心者なんです。

すいません。
>>512 偽者ウザイ。
514デフォルトの名無しさん:03/07/04 15:38
Delphi2.0の再インストール、Delphi4.0の再インストールDelphi5.0の再インストール,
Office2000のアプリケーションの追加と削除から「Officeの修復」
とやったら、VB6.0proが試用版に変わっちゃいました。
VS6.0を再インストールしようとするとVS98PCD.infが無いって文句いってきます。
スレチガイでしょうか?誰か助けてください。
Win2000,VS6.0proです。
515デフォルトの名無しさん:03/07/04 15:56
>>513
偽者じゃないんです。
本当に困ってるんです。
すいません。初心者で。
>>515
じゃあちゃんとMSDNを貰ってくる。
MSDNがついていないVBはライセンス違反。
517514:03/07/04 16:09
自己レスです
VSのCDから直接SETUP.exeを実行して再インスコしたら設定まで引き継いでOKでした。
突然試用版になって焦っちゃいました、スレ汚しスンマソです。
518デフォルトの名無しさん:03/07/04 16:27
>>516
そうなんですけど、
ライセンス違反なのは重々承知の上なんですけど。
ないんです。
>>518 じゃあそこまで。
520デフォルトの名無しさん:03/07/04 19:47
VB6SP5でプログラムを作って、ディストリビューションウィザードで
セットアッププログラムまで出来ました。

動作確認でNT4.0とか2000とかに入れてみたときは問題なかったのに
うちのXP(PRO)に入れようとすると、プログラムグループの選択の次の
「Path or File Not Found」と2回くらい怒られて、先に進めなくなってしまい
頭を抱えています。

何かアドバイスしていただけることがあればよろしくお願いしますm(__)m
>>520
たぶんショートカットが死んでるんじゃないかな?
ショートカットを右クリックして、
「作業フォルダ」にEXEのPathを入れると動くのでは。

違ってたらスマソ
522デフォルトの名無しさん:03/07/04 19:59
>>520
選択の次の→選択の次に

>>521
あ、すみません。プログラムグループの選択というのは、
インストール時のことです。ここまでは大丈夫なんですが、
その次にファイルをどやどやとコピーし始めるところで止まります。

ここでインストールが続かなくなってしまうので、ショートカットは
登録されていません。
523_:03/07/04 20:00
524デフォルトの名無しさん:03/07/04 20:10
>>520
参考になるのかどうか分かりませんが、追加の情報です。
setup.lstの[Setup1 Files]のセクションには32個のファイルを
コピーするように設定してますが、この部分を全部削除して
インストールプログラムを回してみると、途中でストップせずに
セットアップの完了までは進みました。
(ファイルをコピーしてないので実際には動きませんが)
525デフォルトの名無しさん:03/07/04 20:35
初心者チックな質問で申し訳ないのですがどうしてもわからない事があります。
それは今ブロック崩しを作っているのですがブロックの当たり判定(ボールがブロックの横に当たった時の判定とブロックの下に当たった時の判定)
がわかりません。一応に当たったときの判定はできたのですが。
If block(1).Left <= Boru.Left And Boru.Left <= block(1).Left + block(1).Width Then
If block(1).Top <= Boru.Top + Boru.Height And block(1).Top + block(1).Height >= Boru.Top Then
という風にしました。知り合いに教えてもらいながらやったので自分もあまり理解できてない状態です。
どなたか教えていただけないでしょうか?
526直リン:03/07/04 20:39
527デフォルトの名無しさん:03/07/04 21:09
>>525
それの何がわからんのか言ってくれんことには説明のしようもない。
>>509
vbCrlf
529525:03/07/04 21:22
If block(1).Left <= Boru.Left And Boru.Left <= block(1).Left + block(1).Width Then
If block(1).Top <= Boru.Top + Boru.Height And block(1).Top + block(1).Height >= Boru.Top Then
↑のソースをどのようにいじればボールがブロック横&下の判定ができるか。
つまりボールがブロックの横とブロックの下に当たったときにブロックが消えるという判定をしたいんです。
ややこしい文章ですいません。
Boruって恰好悪い
531525:03/07/04 21:31
すいません。なんとなくBoruが良かったもんで
>>529
横って考えるからわかんなくなるのかな?
上下左右4つを、ひとつずつゆっくり考えてみれ
top,height,left,widthがなんなのか分かってるんだろ?
533525:03/07/04 21:40
>>532
はい。一応わかってるつもりですが525のレスでも書いた通り教えてもらいながらやったものでして・・・。
>>520(524)
その現象はどっかで聞いたが何が原因か忘れた。
ソース付きのやつをデバッグモードで動かせば判るんじゃないか?
判ったら報告ヨロシコ。
>>520
ユーザー名が日本語だとそのエラーが出た気がするが
536535:03/07/04 22:30
http://www.microsoft.com/japan/support/kb/articles/416/5/85.asp
見つけた。
Win2k, XPで発生する障害。これじゃない?
>>533
あの程度なら一から自分で考えたほうが早い。
そうすると最終的にあの形になる。
538505:03/07/05 00:15
無事出来そうです。がんばります
どうもお世話になりました
539デフォルトの名無しさん:03/07/05 11:17
>>534-536
皆さんありがとうございます。
536の内容でビンゴでした。お世話になりましたm(__)m。
ユーザ名に日本語使うやつは逝ってよし
>>540
スマソ
542505:03/07/05 16:31
再び行き詰まりました。。。自分のスキルの無さに憂鬱
Hotkeyを使ってキーを読ませることは出来たのですが
複数やろうとすると強制終了状態(泣
Hotkeyって複数割り当てることは可能ですよね?
またそれを行う為の参考例など教えていただけると助かります。
こんな質問ばかりで失礼
自分でも頑張ってみますが、よろしければお願いします
543505:03/07/05 17:25
自己解決できました。板汚しすみませんでした
544デフォルトの名無しさん :03/07/05 19:23
VB6でADO使ってるソースがあって

参照設定で
Microsoft Active X Data objects Recordset 2.1 Library
だけで一応動くんですが、

Microsoft Active X Data objects Recordset 2.7 Library
使ってるのがあります。
(チェックはずしても動作は普通にする)

後者って何者なんですか?
何者って、両者の名前の違いを見て解るだろフツー・・・
546デフォルトの名無しさん :03/07/05 20:21
>>545
後者を入れた場合と入れない場合でナニが変わるんよ?
2.7でサポートしてる機能が使えるようになる。
VB6.0(SP5)と、DataGridコントロールを用いて、AccessのMDBファイルを表示させるプログラムを
作っています。表示まで一通り開発環境で確認を行ったのですが、テストのために複数の環境で
試したところ、いくつかの環境で「データ連結を初期化できません。」「実行時エラー'9' インデックス
が有効範囲にありません。」というエラーで表示が出来ないという問題が発生しました。
 ランタイムの入れ直しなど、複数の手段を試したのですが上手く行きません。

Set adoCon = New ADODB.Connection
adoCon.ConnectionString = strConnectionString
adoCon.Open

Set adoRec = New ADODB.Recordset
Set adoRec.ActiveConnection = adoCon
adoRec.CursorLocation = adUseClient
adoRec.Source = strSQL
adoRec.CursorType = adOpenKeyset
adoRec.LockType = adLockOptimistic
adoRec.Open
Set dgData.DataSource = adoRec

'dgDataはDataGridコントロール

  "dbgBindError"というエラーのようなのですが、MSDN(2001年10月)での確認や、googleでの
検索を見ても、はっきりとした原因が分かりませんでした。
 どなたか、原因と解決法についてご教示願えませんでしょうか?
549デフォルトの名無しさん :03/07/06 02:30
>>547
その詳細は何処見れば分かりますか?
550VB初心者:03/07/06 12:59
VBで通信プログラムの勉強をしています。
TCP/IPで単純なチャットプログラムを作成しましたが、
サーバは1つのクライアントからの接続しか受付ません。
複数のクライアントからの要求をAcceptするためには、
どのような実装形態が考えられるのでしょうか?

たとえば、複数のクライアントからの接続を受け付けるサーバを
UNIXで作る時には、fork();を使ってマルチプロセスにしますが、
VBで、似たようなことができるなら教えてください。
よろしくお願いします。
>550
CreateThreadで新しいスレッドを、、、
嘘です。
Internetコントロールを使いました?
だったら、8つくらいコントロールを配置して何とかしてください。

WinsockAPIを使ってるなら、素直にVCで作ってください。
552550:03/07/06 14:08
>>551
多謝。
大変参考になりました。
>>548
テメーがノータリンだからだろうが!うせろ、ボケが!
退職願だせや!無能力者め!
>548
ランタイムってのはVBランタイムの事?
MDAC関連のバージョン違いは大丈夫なんだろうか。
あと、表示だけでいいなら、カーソルタイプをStatic、ロックタイプをReadOnlyにしてみるとか。
>550
MSDN見た?
新しく接続要求が来るたびにLoadするサンプルソース載ってるよ。
556デフォルトの名無しさん:03/07/06 14:34
入力された文字が、「全角ひらがなであるか」チェックしたいのですが、
どういう処理が一般的なのですか?
>>556
バイナリエディタで「ぁ〜ん」を列挙して確認すればよかろう。
558デフォルトの名無しさん:03/07/06 15:24
>>557
よく分からないので、Asc()でやってみました。
ありがとう。
559デフォルトの名無しさん:03/07/06 15:26
626 名前:デフォルトの名無しさん :03/07/06 11:51
Visual Studio 6.0 Service Pack 6 が出るようです。
560デフォルトの名無しさん:03/07/06 16:32
>554
MDACのバージョンは確認していませんでした。しかし、ほぼ同じ設定の
もう一台では動作に問題がありませんでした(参照設定でADO2.5にチェック、
動作を試した環境はWinXP)。CursorTypeをStatic、LockTypeをReadOnlyは、
別の箇所で行っている更新が出来なくなるので問題があります。
561デフォルトの名無しさん:03/07/06 20:06
>>548
そのデータグリッドはコントロール配列になってて、存在しない配列番号のものを渡している
ってことない?おれはそれではまったことが以前ある。
562デフォルトの名無しさん:03/07/06 20:09
#include <stdio.h>
int main(){
char a='〇',b='●';
int c,n;
for(c=1;c<=91;c++){
if(c%2==1){
printf("%s",a);
}
else if(c%2==0){
printf("%s",b);
}
for(n=1;n<=9;n++){
if(c==9*n){
printf("\n");
}
}
}
}
>>562
あんた普通に間違ってるよ。
コピペ荒らしみたいだね。
565デフォルトの名無しさん:03/07/06 20:24
>>562
のコードを直してみると、
#include <stdio.h>
int main(){
char a='〇',b='●';
int c;
for(c=1;c<=91;c++){
if(c%2==1){
printf("%s",a);
if(c%9==0){
printf("\n");
}
}
else if(c%2==0){
printf("%s",b);
if(c%9==0){
printf("\n");
}
}


}
}
こんな感じかな?これでも間違ってるだろうけど
>>565 相手にするならC言語のスレでやれ。荒らしの仲間か?
>565
そーだそーだ、ここはC言語を理解できなかった者たちのスレだぞ。
どんな簡単なコードでも、Cなんざ見たくねーんだよ。
>>565
てかchar型に2バイト文字は入らんと思うが。
はぁぁ なんでVBを嫌う奴ってこうも性格が歪んでるんだろ。
しかたがないよ。厨だもの。
で、そういう奴に限ってVBすら使えないの。
572青履:03/07/07 18:57
>>565
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
vector<string> ab(2);
ab[0] = "○";
ab[1] = "●";
for (int i=0;i<=91;i++) {
cout << ab[i%2];
if ( (i%9)==0 ) {
cout << endl;
}
}
}

>>570
香具師は、たしかに厨かもな

>>571
Ruby/GTKとかPerl/GTKのほうが楽ですから、VBなんてわざわざ扱えません。
573青履:03/07/07 18:58
一カ所ミステイク
> if ( (i%9)==0 ) {
もとい
> if ( (i%9)==8 ) {
wchar_t a=L'〇',b=L'●';
だから何でここでCやんの?
C言語よりも日本語勉強しろ。
VBは死滅したから
>>576
死滅したかどうか知らんが使ってる奴は実際にいる。
その人の迷惑になるって考えられないのか?
>>577
文句は引導を渡したMSにしてくれ。
荒らしている奴に言うのが筋だろ。馬鹿?
馬鹿はVB厨では。
581デフォルトの名無しさん:03/07/07 21:14
VBで配列のなかに配列を格納することってできますか?
>>581
できます
>>580
言ってる意味がさっぱりわからん。なんで?
Cのスレはある。なのにわざわざCの話題をここでするのかが分からん。
MSが死滅に引導したからと言って荒らしてるのか?荒らす基準は全てMSか?
もう手が加えられない物についての話題を扱ったスレは荒らされなきゃいけないのか?
これらの疑問を納得いくように説明してくれ。
584デフォルトの名無しさん:03/07/07 21:17
dirオブジェクトとfileオブジェクトを使っています。
dirオブジェクトで選択したフォルダの、以下に入っているフォルダを取得して、
それから全てのファイル名称を全部取得したいと思ってます。

If File1.ListCount <> 0 Then

For i = 1 To File1.ListCount

File1.ListIndex = i - 1
Text1.Text = Text1.Text & File1.FileName & vbCrLf

Next

End If

選択したフォルダ内のファイルはこれで表示させることができますが、
そのフォルダ以下に入っているフォルダ内のファイルの取得方法がわかりません。
誰か詳しい人教えてもらえると助かります。よろしくお願いします。
いつも思うんだが、VBの文字列操作関係の関数にわざわざ$をつける意味ってあるノカー?
VB使いの中にもC言語を使える香具師が多くいるのを知らず
これ見よがしにC言語の知識を自慢してくる馬鹿のいるスレはここですか?
>585
$をつけると、VariantからStringへの変換時間がなくなるので速くなると
この本に書いてあった。
http://www.cbook24.com/bm_detail.asp?sku=99915666
>>585
関数にもよるが$をつけないと、Variantで返り、$をつけると文字列で変える。
関数によっては$無しはNullが返って$ありだと空文字を返すものもある。
具体的な仕様はMSDNを見るべし。


>>586
ただの粘着だ。放置しろ。つーかC厨ウザイって言われるだけなのにな。
>>585
$ つけないと、Variant 型の関数になるから、微妙に遅くなると思う。

あと、型が違っててもコンパイルエラーにならないじゃないかな ?

今手元に処理系がないから、試せないけど...。
>584
DirListBoxコントロールとFileListBoxコントロールの話か?
FileSystemObjectかDir()関数で、とってくればいいんじゃないの?
ちなみにDir()関数で再起させるとエラーが起きるらしいので、
配列かCollectionにでもぶち込んどけ。
591590:03/07/07 21:39
>590 = Replace(>590, "再起", "再帰")
592デフォルトの名無しさん:03/07/07 21:49
VBでCGIスクリプトを書きたいです。
手引きとなるサイトを教えてください。
>592
「VBでCGIをつくろう」
http://tokyo.cool.ne.jp/taquino/vbcgi/index.shtml
595594:03/07/07 21:57
>>593 ケコーン
>>592
ここの「[VB]コンソールに出力する。」も参考になるかもしれない。
http://www.geocities.co.jp/SiliconValley/9928/geobook.html
597593:03/07/07 22:00
くそ、>587-589 もケコーンだったし。みんな暇だね。

でも>592 は「CGI」ではなくて、「ASP」をやりたいと見た。
598592:03/07/07 22:02
みなさんありがとうございました。
参考にしてみます。

>>597
いえ、ASPではなくCGIがいいんです。
599593:03/07/07 22:06
>598
奇特な人だ、VBは標準入出力も、URLEnc/Decもサポートされとらんし、
漢字コードの変換もうざいし、、、
ASPかPerlかPHPが楽だと思う。
でも普通のプロバイダじゃネイティブアプリを実行できるのって
少ないし、できてもマシンはUnix系じゃない?
自分や会社のマシンならASPの方がいいかもしれない。
参考までに言っておくとASPでもサーバーサイドでVBScriptを使える。
クライアント(ブラウザなど)がVBScriptに対応している必要はないし、
CGIと同じような感じ(もっと便利)に使える。
>>599
でも考え方によってはそれだけって気もするね。
そこらへん探せばソースやライブラリはすぐ見つかるわけだし。
603548:03/07/07 23:34
>561
> そのデータグリッドはコントロール配列になってて、存在しない配列番号のものを渡している

 もしやそれか、と思い確認してみたのですが、存在しない配列番号のものを渡していることは
ありませんでした。ADOでのレコードセットのオープンにも問題なく成功しており、もう何がなにやら、
という状態になってしまいました。
 ああもう何が悪いんだか(涙
自分で作ったプログラムをサービス化させたいのですが、
容易にできるもんなんでしょうか?
なかなか情報が無くて、、、。

ちなみに、exeファイルを無理やりサ−ビス化させるソフトでは
うまくうごかんようです。。
605561:03/07/08 00:34
>>603
なんにせよ、エラーコードから推測するとエラーが発生してるのはADOまわりじゃない気が
する
>>604
リソキのツールを使ってだめなら、グレープシティから出てるツールを使う
って手もあるね。
607604:03/07/08 01:22
>>606
そっかーありがd
608デフォルトの名無しさん:03/07/08 11:00
本を見ても分からなかったのですが、
VBでデータを使い、エクセルと連動させ住所録を作りました。
DBコンボボックスを使って、氏名のフィールドをプルダウン表示させ、
そこから氏名を選択して実行ボタンを押すとVBのフォームに
そのほかの電話番号や住所などが表示されるというプログラムを作りたい
のですが、実行のコマンドボタンにはどういうソースを書けば
よいのでしょうか?
教えて下さい。
氏名を取得して住所を表示するプログラムをかく。 それ課題か何か?だとしたらもう少し参考書とにらめっこして考えれ。
610デフォルトの名無しさん:03/07/08 11:16
>>609
課題です。
もし、ヒントになるような参考書をご存知であれば
教えていただきたいと思います。
実行のコマンドボタンのソースには現在以下のソースを
書いているのですが、
Data1.Recordset.Bookmark = DBCombo1.SelectedItem
これだとプルダウン表示で名前を選択すると、
選択前の番号に上書き登録されてしまいます。

ヒントでもよいので教えて下さい。
611デフォルトの名無しさん:03/07/08 11:50
VBでコールバック関数を登録するとき、Form1にWndProcを作成すると
SetWindowProc関数のAddressOfでエラーになります。
modXXX.basに登録すると問題ありません。
これはなぜでしょうか?
612デフォルトの名無しさん:03/07/08 12:15
>>604
サービス化って何
>>611
そういう仕様だから。
614デフォルトの名無しさん:03/07/08 14:09
age
>572
AT限定免許の人の言い訳みたい。
616青履:03/07/08 16:26
>>615
VBはマニュアル車と申すか・・・

そう言い切れるならかっこいいね。ある意味。

とりあえずGTK使って見ろ。
>616
>VBはマニュアル車
ちがいまふ。
「自分がそれを使えない」という事を謙虚に受け止める事をせず
屁理屈をこねくりまわすあたりが、って意味。
VB6で、計算式を内蔵したエクセルみたいなインタフェイスで作りたいんですけど、表計算部分はどう出せばいいのでしょうか?
619デフォルトの名無しさん:03/07/08 17:06
ちょっと質問させてください。
オラクルのDBにODBC(ADO)で接続しているんですが、
レコードセットでデータ抽出後、そいつを解放しても、
しばらくの間、セッションが残ってしまいます。
回避策ありませんか?
620デフォルトの名無しさん:03/07/08 17:09
>>618
OLEを使えばよいと思います。
621青履:03/07/08 18:22
>>617
実際に使ったことあるし。
屁理屈?
んで、あんたは、GTKとかやったことあるのか?
>>617 = 目糞
>>621 = 鼻糞
両方ティッシュに包まれてゴミ箱の中でシコティッシュに紛れて終わり
623デフォルトの名無しさん:03/07/08 18:47
質問です。
SQLサーバとVB6.0で開発してます。
開発をしていて一時保存テーブルが必要になったのですが、
一時保存テーブルとしてみなさんはmdbを使用されているのでしょうか?
>>623
使ってます。
625デフォルトの名無しさん:03/07/08 18:59
>>624
お返事ありがとうございます。
ひとつ質問させていただきたいのですが、
クライアントにEXEとMDBを置く事になると思いますが、
MDBのテーブルととSQLサーバのテーブルをつなげてさらに検索を書けた場合
かなり遅くなりませんか?
>>623
SQLサーバ上に一時テーブル作るのじゃだめなの?
627デフォルトの名無しさん:03/07/08 19:42
>>626

クライアントによって検索条件が違うので同時に同じ作業
をした場合に不具合が起きるんですよ。
>>625
MDBとSQLサーバのテーブルを直接つないだことは無いのだが、
SQLがローカルで実行され不必要なデータが大量にクライアントに
送信されるようだとかなり遅くなるだろうな。

パスするークエリーで一旦必要なデータのみをローカルの一時テーブルに
持ってきてそれをつなげた方がいいような気がする。
>>627
たしかSQLサーバーは接続したクライアントごとに
独立した一時テーブルが作れたはず。
>>627
いや問題ないだろ。
頭に#つければ。
http://homepage2.nifty.com/inform/vbdb/sql_temptable.htm
>>629
規模にもよるけど基本的にはトラフィックは少ないほうがいいんじゃない?
632デフォルトの名無しさん:03/07/08 20:08
Form1上のすべてのコントロールに発生するKEYPRESSイベントをForm1_keypressDa
に集めたいのですが、この場合、
すべてのコントロールのメッセージをフックして、PostMessageを行う方法が
あるとおもいますが、こまごましたコントロールがかなりあり面倒です。
なにか良い方法はないでしょうか?
>>632
一般的にはKeyPreviewをTrueにする。
あとはSetWindowsHookExを使ってキーボードをフックするとか。
634_:03/07/08 20:16
>>612
サービスとして動作できるようにすること。

サービスとは WindowsNT 系の OS で、ユーザーのログインとは関係なく (ある奴もあるが) 動作するプログラムで...

http://www.geocities.co.jp/SiliconValley-PaloAlto/8896/

等が動作している。
636デフォルトの名無しさん:03/07/08 21:33
>>619
それは「接続プール」のことでしょうか。だとしたら、下手にプールを切ると
パフォーマンスが落ちてメモリの使用量が上がるんで、理解が中途半端なうち
はそのまま西といた方がいいですよ。
637デフォルトの名無しさん:03/07/08 21:37
>>623
たいがい普段使わないADO.Recordsetのメソッドやアルゴリズム、デザインパ
ターンで乗り切るけどな
638デフォルトの名無しさん:03/07/08 22:47
>>628
>>629
>>630
>>631
>>637

いろいろありがとうございます。そうですね出来れば
テーブルに保存するのではなく、メモリーで全て出来れば
一番いいのですが、以前こちらで質問したときに
結構難しいと聞いたのでやめました。構造体の配列を
一時保存テーブルの代わりに使用したり出来るのでしょうか?
639632:03/07/08 23:05
>>633
> 一般的にはKeyPreviewをTrueにする。
アリガト。やってみます。
640いけ:03/07/08 23:52
どなたか教えて下さい。
MS-ACCESS2000にあるテーブルにVB+ADOを使用して
OLEデータ型のフィールドにビットマップを作成したいのですが
バイナリデータを書き込むだけではACCESSではロングバイナリ
データとなってしまいます。OLEの形式として正しく書き込む方法を
教えて下さい。よろしくお願いいたします。
>>638
select * into #hoge from tbl;
ってやってもトラフィックはあまり食わないわけだが。

insert #hoge values();
を繰り返すようならトラフィックは食うが。
642デフォルトの名無しさん:03/07/09 01:15
VBでwindowsXPのシステムフォントの切り替えを
したいのですが可能でしょうか?
 例:メニューのファイル(F)をFile(F)に...

個人ユーザなのでMSのMUI?等は買えません。
よろしくお願いいたします。

643ADO:03/07/09 01:27
>>638
ADOはメモリ内でも使えたはず。
ADODBのレコードセットをNEWで確保してそのまま
Fields.Append [フィールド名]
CursorType =[カーソルタイプ]
LockType = [ロックタイプ]
Open
の順で実行すればADOがメモリ内で実行できたと思います。
検索やフィルタが使えるので配列を使うより少し扱いやすいかも。
644デフォルトの名無しさん:03/07/09 02:04
環境はVB6SP2です。抽象的な書き方になりますが、

処理が連続してある場合、前の処理が実行されない事があるのはどうしてなのですか?
間にmsgboxを挟んだり、F8で一つずつ実行していくと大丈夫なのですが、
ブレークポイントを作らず一気に実行すると、無視される事があります。

処理1
処理2
とあると、処理1が無視されることがある、という意味です。
しかし
処理1
msgbox
処理2
とすると、処理1も実行されます。

具体的には処理1=キャプ、処理2=貼り付けです。
画像キャプはkeybd_eventで&H2C&を指定し、プリントスクリーンを使っています。

解決方法は無いんでしょうか。宜しくお願いします。
>>644
処理2までに処理1が間に合ってないだけでしょ。

クリップボードを空にする
処理1
クリップボードに中身が入るのを待つ
処理2
646デフォルトの名無しさん:03/07/09 02:52
>>645
即レスありがとうございます。処理が間に合わないってこともあるんですね。

clipboard.clearは必要なので不可してありますた。
中身が入ったのを確認すればいいわけですね。参考になりますた。
旦早速やってみまつ。ありがとうございますた( ゚Д゚)⊃
647デフォルトの名無しさん:03/07/09 02:53
>>646でつ
×不可
 ↓
○付加


y=ー( ゚д゚)・∵. ターン
648デフォルトの名無しさん:03/07/09 07:51
>>643
他の方法

Set rs = New ADODB.Recordset
With rs.Fields
  .Append "field1", adChar, 20
  .Append "field2", adVarChar, 50, adFldIsNullable
End With

With rs
  .AddNew Array("field1", "field2"), Array("value1", "value2")
End With
rs.MoveFirst

参考
ADO集中講座
649デフォルトの名無しさん:03/07/09 07:59
>>640
結構大変なので、キーワードだけ。
GetChunkでデータを取得して、AppendChunkでデータをあげる。
650デフォルトの名無しさん:03/07/09 11:18
MDI子フォームが画面に入りきらなかったので、スクロールを
つけたいのですが、やり方がどうしてもわからないので教えて
ください。まだ素人なのでできるだけ詳しく教えていただけた
らうれしいです。
>>650
現在の状態がどうなっているか詳しく教えていただけた
らうれしいです。
652デフォルトの名無しさん:03/07/09 11:34
>651
フォームが大きくなりすぎて親フォームから開いた時に、画面
の下の方がきれてしまって見れない状態です。試しに親にして
スクロールバープロパティをtrueにしてみたんですが、それで
もスクロールバーが表示されませんでした。
>>650
MDIフォームのScrollBarsがデフォルトのTrueならついていると思うが?
>>652
MDIの中で表示したいFormのMDIChild はTrueにしてますか?
655デフォルトの名無しさん:03/07/09 11:39
>653
はい。ついています。
656デフォルトの名無しさん:03/07/09 11:42
>654
trueにしています。
657デフォルトの名無しさん:03/07/09 11:42
VB6.0を使ってエクセルのレコードに
新規保存したいのですが、
SAVEとADDNEWを使うまでは分かりますが、
どういう風に組み立てたらよいのでしょうか?

658デフォルトの名無しさん:03/07/09 14:02
VB5.0を使ってる初心者ですが
form上にDBgridを配置しようとするとエラー429がでて
レジストリ内の情報が破損の恐れありといわれます
これってどういうことなのでしょうか?
activeXコントロールを再セットアップって
VBを再インストールすればいいってことですか?
CreateObject("Excel.Application")でExcelを操作しています。
そこで処理が終わったらメッセージボックスを出したいのですが
VBから出すとExcelの裏にでてしまい意味がありません。
そこで、Excelからメッセージボックスを出したいのですが
どのように書けばよいでしょうか?
MSFlexGridを使うには、どんな奴を参照設定すりゃいいですか?

VB6 SP5です。
>660
略さない名前のそのものズバリを参照設定すりゃいい。
MS=モビルスーツじゃないからな。念のため。
顔がキモイやつばっかいそうだな このスレは
>>662
2chに入り浸ってる奴全員が(ry
664デフォルトの名無しさん:03/07/09 21:07
>>650
簡単に書くと、
MDIフォームにPictureboxを配置します。
そのPictureboxに必要なコントロ−ルを配置します。
スクロールバーを配置します。
スクロールバーをクリックしたときに、
PictureBoxのtop・leftプロパティを変更するコードを書けば全体が表示できます。
665デフォルトの名無しさん:03/07/09 22:10
>>657
ADO + OLE DB か?
666デフォルトの名無しさん:03/07/09 22:25
>>666は「【質問】 ASP.NETスレ 【議論】」スレの「大文字は、普通 定数 だろ? 」の繰り返しの無意味なスレ
VB6.0です。
 作成したアプリケーションのセットアップを作りたいのですが、付属のディストリビューション
ウィザードではアプリケーション本体・関連DLL以外のデータ等をセットアップに含む事は
できないのでしょうか?
 ウイザードを進めていく中で、そういった物を指定するような画面が無いようなのですが。

具体的には、アプリケーションがあるフォルダの中にDataというフォルダを作り、その中に
色々なデータファイル(Accessデータベースやテキストファイル等)を置くようにしたいのですが・・・
>>668
できるよ。「含まれるファイル」の画面の「追加」ボタンで追加できる。
配置する場所の指定はもっと後だな。
Inetコントロールってバグある?

PWDしてDIRするだけなんだけど、icResponseComplete(12)が返ってこなくなっちゃう。
Executeする前にSleep APIで500ミリ秒待ってからやると問題ない。

俺の一週間を返してくれ。
671デフォルトの名無しさん:03/07/10 13:37
VBでエクセルのレコードを
選択して削除することは可能ですか?

保存まではできるようになりました。

現在、JETデータベースではないので
削除できないと言われます。
672_:03/07/10 13:39
673デフォルトの名無しさん:03/07/10 13:56
>670

yareyare
674668:03/07/10 13:56
>669
なるほどそこですか。
てっきり、exeやdllしか扱えないと思っていました。
もう一度挑戦します。ありがとう。
675デフォルトの名無しさん:03/07/10 17:28
すいません、ちょっと教えてください。VB6です。
ファイルを送信するためのプログラムを作成しており、
進捗をProgressBarで表示しようと思っています。
今、ProgressBarとWinsockをForm2に設置しており、
Form2はForm1に以下のような形で呼び出されます。

set objForm = New Form2
objForm.Show

そこでForm2上のWinSockのSendProgressイベントに従って、送信の
進捗をProgressBarで表示させたいのですが、困った問題が起きています。

例1
Sub Winsock1_SendProgress で試しにProgressBar1.Value=50を設定すると、
Valueは変更される。しかし、ProgressBarに■として反映されない。
例2
試しにForm2にボタンを設置し、Sub Command1_Click()でProgressBar1.value
=50を設定すると■で反映される。
例3 例1→例2の順に行い、例2で50を設定する前にDebug.PrintでValueを
表示したところ、例1で50に設定されたはずなのに、0になってしまっている。

なんか、違うオブジェクトをもってきてしまって、そこに格納しちゃってるんで
しょうか・・・。でも、他にProgressBarは設置してないし・・・。どなたか
おわかりの方教えていただけないでしょうか。 

>675
プログレスバーコントロールのMaxとMinプロパティは設定済みなんだよね?
677デフォルトの名無しさん:03/07/10 18:05
>>676
あ、早速のご返事ありがとうございます。
設定はしてあります。0〜100になってます。

ボタンクリックのイベントで設定したProgressBarと
Winsockのイベントで設定したProgressBarが、
それぞれ別のオブジェクトみたいな感じなんですよね。

ボタンクリックだとProgressBarに■が反映されるのですが、
Winsockだと■がでません。かつ、WinsockでValueを設定
しても、ボタンクリックのSubの中からみると、そのValueが
でてこないんでつ・・・謎です。

う〜む。
WinSock_SendProgress()イベントの中でプログレスバーのValueを
設定してんだよね?
その直後にDoevents()挟んでみたらどうだろう。気休めだけど。
あ、さげ進行でしたか・・すいません
ありがとうございます。SendProgressでのValue設定
についてはその通りです。
しかし、DoEventはやはり、ダメみたいです。

ちなみに、FormLoad()でValue設定したらokでした。
ボタンクリックでもOK。
なぜかWinsock_SendProgressからだと無理みたいです。

WinsockでIndexを設定してloadしていたり、
Form1でも受信用にWinsockをのっけているんですが、
それは関係ないですよね・・・
やはりWinsockのイベントプロシージャ内から、というのは何か制限が
あるのかねぇ……

SendProgressイベントの中では、bytesSentの値とプログレスバーの
Valueの代入結果が一致しないってことなのかな?
VB6.0SP5です。
Microsoft Script Contol 1.0を使ってコンソールプログラムを作っており、
exeを実行したコンソールと同じコンソール上でメッセージを出力したいのですが、

Dim objScript As MSScriptControl.ScriptControl
Set objScript = CreateObject("MSScriptControl.ScriptControl")
objScript.Language = "VBScript"
objScript.AddCode "WScript.echo(" & Chr$(32) & "メッセージ" & Chr$(32) & ")"

で、止まっています。
WScriptはどういう宣言をすれば良いのでしょうか?
682デフォルトの名無しさん:03/07/10 21:14
>>680
まだ実験段階で、bytesSendの値は入れてないのですが、
SendProgressイベント内でProgressBarのValueに入れた値と、
Command_Click等のイベント内で観たValueが一致しないのです。

まるで別々のオブジェクトに代入しているかのような感じです。

SendProgress内で50を代入し、そこで値を見れば50です。
ところが、そのあとにCommand_Click内でValueをみると
ゼロになってます(0というのは、デフォルトという意味です)

次に、上記の後でSendProgress内で100をいれてみます。
そこでみれば、当然100です。
さらに、Command.Click内でみると、こんどは50です。
そして、ProgressBarの■が反映しているのは、Command_Clickの
ほうなんです。

仕方ないので、
Private Sub Test_Progress()
(Me.)ProgressBar1.Value = 50
End Sub
を作り、SendProgress、Command_Clickから呼んでみましたが、
反映するのはCommand_Clickだけでした。

さらに、その都度
Dim objProgressBar as Object
とグローバル変数を作り、
Set objProgressBar = New ProgressBar1
などとしてもダメでした。

もうわけわかめです・・・・泣
683デフォルトの名無しさん:03/07/10 21:19
>>681
object.Echo ????
>>681
日本脳園 - Visual Basicアプリケーションによる標準入出力の利用−VBScriptの併用
http://homepage2.nifty.com/nihon-nouen/programming-stdinout.htm
171654 - [VB] Visual Basic プログラムでコンソールウィンドウを扱う方法
http://support.microsoft.com/default.aspx?scid=kb;ja;171654
厨房な質問でスマソ

ボタンでファイルリストから選んだファイルをテクストボックスに入れた名前にリネームしたいのでふが
やりかたがまったくわかりませんウワァァ。'(゚´□`)゚'。ァン

Private Sub Command1_Click()
fname = File1.FileName
Name "fname" As "text1"
End Sub

こんなので出来ないのでしょうか…
誰か教えてください_| ̄|○lll
686デフォルトの名無しさん:03/07/10 22:28
テキストボックスに数値を入力しようとしているのですけど、
小数点(.)を1つだけ入力できるようにするにはどうすればいいでしょうか?
簡単な入力規制の方法を教えてください。
687デフォルトの名無しさん:03/07/10 22:30
>>685
File1ってなんだ?FileSystemObjectのFileオブジェクトか?
688688:03/07/10 22:38
終了するとき必ずunload meをやっているにもかかわらず、
次にこのフォームを立ち上げると
「すでにフォームは表示されています。モーダルにできません」
というエラー表示がでてとまる。
フォームはUNLOADされているのに、なぜだかさっぱり分からん。

VBのプロジェクトの中のフォームの場合、スレッドに
なるのだろうか? このフォームの生成や消滅を探索したいのだが、
どうやったらいいのだろう。
>>688
formsコレクション参照
テキストボックスを透過させたいんだがどうすれば・・・・
691デフォルトの名無しさん:03/07/10 23:01
>>688
エラーが出る部分とUnloadしてる部分のコードを晒せ
692685:03/07/10 23:16
>>687
ファイルリストボックスでつ。
おながいしまつ_| ̄|○lll
693688:03/07/10 23:31
>>691
> >>688
> エラーが出る部分とUnloadしてる部分のコードを晒せ
frmFontEdit.Show vbModal '****ここでエラーする何で?
For i = 0 To (16 * 32 - 1)
addR(i) = frmFontEdit.FontData(i)
Next


’UNLOADするところ
’ ボタン押して500msec待ってunloadする。なぜかっていうと
’すぐに終わると、おそらくPictureにたくさん書いてるせいで
’なんかおかしい。
Private Sub Timer1_Timer()
Unload Me ’MeはfrmFontEditです。
End Sub
694688:03/07/11 00:17
>>689
> >>688
> formsコレクション参照

? forms(3).name
frmFontEdit

エラーしたところで、Directmodeで?するとやっぱりし
のこってる。
あちこち、とめてやってみま。
695686:03/07/11 00:38
>>686
どなたかいいアイディアお願いします
>>695
過去ログにあるから誰も答えないんだろう。
>>695
If KeyAscii = Asc(".") And InStr(Text1, ".") Then
698アルファブレンド:03/07/11 09:04
>>690
Visible=False これで背景がばっちり見える。
>698
ありがとうございます。690です。
オブジェクトはなにをしていしたら・・・・
>700
690です。透過はテキストボックスの透過です。
根性あるならオーナードロー
くだらない質問で申し訳ないのですが、Winsockコントロールについて
いくつか質問があります。
 WinsockコントロールでGedtadaする時はデータを送って来た側が
すでに接続を切ってしまっているとだめなのですか?
あと、ソケットをクローズしないまま、アプリを終了してしまうと、そこの
ポートは使用不可になってしまうのでしょうか?
 通信プログラムの作成中に生き詰まっています。他になにか注意した
方がいい、また俺もこんなので引っかかったみたいなことがあったら合
わせて教えて頂きたいです。
教えて房ですいませんがおねがいします。
? Val("壱")
0

何故ですか?
>>704
VB.Net なら 1 になるよ。
706686:03/07/11 18:35
>>697
遅レススマソ
回答どもでした。
707デフォルトの名無しさん:03/07/11 21:01
vbsでスクリプトを作りましたが、以下のエラーが出ます。
Microsoft VBScript 実行時エラー:書き込みできません

スクリプトは指定したフォルダ以下のサブフォルダ全てを検索して
指定した以上の容量を csvファイルに出力するものです。

容量が10GB程度ならエラーがでませんが、40GB位だと上記のエラー
がでます。エラーがでる明確な条件は分かっていません。

エラーがでる可能性のある以下の事は問題ありません。
・Excelは閉じている
・adminのフルコントロールで実施
・csvファイルへ書き出し後、ソース上 closeで終了している

エラー自体は以下の部分です。
m=CLng(subf.size/1048576)
変数 m は dim で宣言しています。環境は Win2K、WSH5.6です。
subf.sizeでフォルダ容量を拾い、1048576で割ってCLngでlong型
で変数 m に代入します。

どなたか分かる方、ご教授下さい。
>>703
なんで自分でやってみないの ?

ちゃんとしたことが知りたいと言うなら、MSDN 嫁。
>>708
もちろん読みましたよ、でもMSDNのWinsockに対しての記述はたい
して役に立たない情報ばかりだし、質問の内容についても触れられて
いません。
それに、試したんですけど、よくわからなかったんです。
言い訳みたいになりましたけど、そういうことだと理解してください。
710707:03/07/12 10:32
追記

xpで確認してみましたが 40GBでエラーは発生しませんでした。
2K pro 40GBで 3台 エラーです。2K pro 10GB は問題ありません。
試しに m=subf.size/1048576で試してエラーがでるので、推測ですが
大容量は xxx.size で拾えないかも知れません。

代替案も含めてご教授下さい。
711野次馬:03/07/12 11:14
ちょっとプログラムやってみたいだけーの人は
質問してはいかんの?
712_:03/07/12 11:18
>>711
どうぞ
>707
処理を分けて、どこでエラーが出てるのか確認したら?
Dim SubFolderSize
SubFolderSize = subf.size
MegaByteSize = SubFolderSize / 1048576 '1024 * 1024
715707:03/07/12 13:39
>>714
有難うございます。
色々調べましたが、m=subf.size 自体がNGでした。
xpではうまくいくので 2K pro の仕様かも知れません。
仕様か調べましたが、見当たらないのであくまで推
測です。

代替案か、根本原因があれば教えて頂きたくお願いします。
すいません、ちょっと教えてください。Windwos2000、VB6です。
ディスク内のテキストファイルをCD−Rに書き込むプログラムを
作成したいのですが、書き込みツールなどを使わずにVBだけで行う
って事は可能なのでしょうか?
こういう事された事がある方、いらっしゃれば教えていただけないでしょうか?
よろしくお願いします。 m(_ _)m
>716
無理です。
>>716
2000では無理だな。
XPならできるかもしれんが
716です。。
やっぱり無理ですか・・・
ありがとうございました。 m(_ _)m
720デフォルトの名無しさん:03/07/12 19:36
ここでいいのかちょっと不安なのですが質問させてください。
起動と同時に既にネットワークドライブに割り当ててある
別PCの共有ディレクトリにあるmdbに接続するように作成しました。
その際、接続前に接続先mdbが存在するかFileSystemObjectの
FileExistsメソッドで確認するようにしました。
そこで問題が発生しました。
普通に動かしていると問題ないのですが、
Windows起動後、ネットワークドライブにまだアクセスしていない状態で
ネットワークドライブ内のmdbの存在確認をする部分で
FileExistsメソッドがFalseを返す場合があるようです。
一度発生した後は何度やっても同じ結果です。
仮にネットワークドライブをR:に割り当ててある場合、
「ファイル名を指定して実行」にて「R:\」などとタイプし、
一度ネットワークドライブを手動で開くことで以降FileExistsはTrueを返すようになります。
これはつまりWindowsの起動時にネットワークドライブの割り当てがうまくいかず、
初回アクセス時に今一度接続を試み、ネットワークドライブとの接続が確立される。
ただし、FileExistsメソッドではネットワークドライブ(R:)が存在しないので
接続を試みず、Falseを返す。
ということだと理解したのですが、
どうやればネットワークドライブ上のmdbにうまく接続できるのでしょうか?
よろしくお願いします。
いちいち手動で「ファイル名を指定して実行」「R:」とするのはつらいです。
>>716
DirectCDとか入れとけばいいんでないかい。
パケットライト、だっけ? なんかそんなやつ。
スクリーンセーバーをVBから設定する方法を知っている方教えてくだ
さい。
あと、プロセスのCPU使用率を得る方法で2000とかならわかったの
ですが、Meとかでもできる方法ありませんか。
ご教授願います。
クライアントとサーバー1対1でサーバーから計算の指示を出して、それを
クライアントが計算して返すというプログラムを作ったのですが、
例えば1〜1000まで何かの計算をさせる時、本来なら少しずつ何回
も計算させる方が通信のオーバーヘッドから遅くなるはずなのに、
なぜか、そちらの方が早いという結果になりました。
プログラムの方に原因があるのかと考えたのですが、特に思い当たる
所もありません。メモリーとかCPUの使用率とかかな?なんて思うので
すが、どなたか思い当たる事があったら何でもいいので教えてください。
ペコリ
>>720
至極あたりまえの挙動だと思うが...。

OS がわからんけど、Windows2000 とかなら、ネットワークドライブの割り当ての時に、「ログイン時に再接続する」にチェック入れとけば済むんじゃないの ?
725デフォルトの名無しさん:03/07/12 23:30
for〜〜nextがわからなくて過去ログとか読んでみたけど、
そもそもどーゆー時に使うものなのかがわからん。
726デフォルトの名無しさん:03/07/13 00:10
>>725
必要になるまで待て
727名無し@沢村:03/07/13 00:11
おまいら、VBはそろそろ卒業しろ!!
おまいらはタンスがあるからいかんのだよ。

http://jbbs.shitaraba.com/computer/7294/
A  U  T  H  O  R   D  A  T  A

本田 守さん

--------------------------------------------------------------------------------

名前
本田 守/ほんだ まもる

ハンドル
Mr.あねさん

ホームページ
http://www2.neweb.ne.jp/wd/wonder/
http://hp.vector.co.jp/authors/VA015412/

MESSAGE
プログラムの勉強をはじめて1年とちょっとになります。まだまだ高度なものを作るには程遠いですが、先だっては某社のプログラミングコンテストに入賞させていただきました。

--------------------------------------------------------------------------------

S  O  F  T  W  A  R  E

--------------------------------------------------------------------------------

Windows95/98/Me/アミューズメント
●KIKU おど〜る
 音楽CDをかけるとキャラクターが踊ります
>725
If文が1000行くらい連続したコード書きそうだね、君w
730デフォルトの名無しさん:03/07/13 01:31
http://www.microsoft.com/japan/msdn/vstudio/downloads/sp/vbdownload.asp
Windows2000で、全角ユーザー名の環境でVB6のSP5を入れようとしたんですが、
全角ユーザー名のためかMDAC_typ.exeを実行してもパスが見つからないというエラーがでて導入できません。
(パスが見つかりませんのところにかかれているパスのユーザー名部分が文字化けしているので、
そう判断しました。Windows2000では全角ユーザー名だとインストールできないの結構ありますし。
というか、vbのディストリビューションウィザードを未修整で作ったインストーラもそうだし)
なんとか手動でも導入する手段はありませんか?
また、導入しないでsp5を入れた場合はどういう不都合がでるんですか?
731デフォルトの名無しさん:03/07/13 01:32
◎無修正画像をご覧下さい◎2日間無料です◎
http://endou.kir.jp/betu/linkvp2/linkvp.html
>720
バッチ作ってスタートアップに放り込んどけ。
[Netuse.bat]
NET USE R: \\SERVER\SHARE /PERSISTENT:NO
>>722
hoge.scr /c
を実行すればいいと記憶していたんだけど、うまくいなかい(汗

Windows 9x系のCPU使用率は、定期的にレジストリを見るしかない。
734720:03/07/13 03:13
>>724>>732
>720の
>起動と同時に既にネットワークドライブに割り当ててある
>別PCの共有ディレクトリにあるmdbに接続するように作成しました。
にあるとおりネットワークドライブの設定は済ましており、
もちろん、「ログイン時に再接続する」にもチェックは入ってます。
私の状況ではマイコンピュータ上では普通にネットワークドライブが表示されている
のですが、メソッドでアクセスすると接続されてないかのような動作をされ、
困っています。
前述の通り手動でネットワークドライブにアクセスした後は
メソッドでもネットワークドライブにアクセスできます。
こういう場合どうしたらいいでしょうか?
よろしくお願いします。
>>734
いきなりオープンしたらどうなるの?
いきなりオープンして開けるのなら、いきなりオープンする。
ファイルが無い場合は、エラールーチンでファイルを指定させる。

いきなりオープンした場合もメソッド同様に、
失敗後はその後も失敗するようなら、
どんな方法を使っても同様だろうから、
アプローチを変える必要があるね。

例えば、
任意のドライブにダミーファイルを作成するなどしてアクセスを発生させておくとか、
ネットワークドライブの作成をプログラムでおこなってみるとか、
アプリケーション起動まえにバッチファイルでドライブにアクセスを発生させるとか、
アプリケーション自体をネットワークドライブに置くとかね。
>>730
SPなら、Administrators権限のある
どのユーザが入れても適用されるだろうから、
素直にAdministratorで入れたら?
737デフォルトの名無しさん:03/07/13 11:18
実行中の他のプログラムのコマンドライン文字列を取得する方法はありますか。
実行ファイルAが実行ファイルBを起動するのですが、その実行ファイルBに
渡されたコマンドライン文字列をコソーリ見たいのです。
738デフォルトの名無しさん:03/07/13 11:22
とりあえずサンプルムービーで逝っときなさい
http://www.k-514.com/sample/sample.html
VB使ってる癖に得意げな顔してんじゃネーよ
>>739
VBですら使いこなせないんですか?哀れですね。
741732:03/07/13 13:07
>734
うるせーぐだぐだ言わずに>732 を実行してみろ。
お前の言う現象は経験済みなの。
先にエクスプローラで切断しとけよ。
742デフォルトの名無しさん:03/07/13 17:32
コモンダイアログコントロールを張り付けて、
ShowPrinterメソッドを呼び出すと、
出てくる画面がWindows9xと2000で違います。
9xの場合はドロップダウンからプリンタを選択してOKとキャンセルを押すダイアログなのに、
2000の場合はデフォルトのプリンタのプロパティタブが表示され、
印刷とキャンセルボタンが表示されます。
しかも、2000の場合は、そのプロパティタブで設定した内容が
Printerオブジェクトに反映されません。
2000の場合でも9xのようにプリンターを選択するダイアログを表示するにはどうすればいいですか。
どなたかスクリーンセーバーの設定をVBからする方法を教えて。
おねがいします。
G(o^-^o)gle < 「スクリーンセーバー VB」
ソースもゴロゴロしてるぞ。
>>744
作るんじゃなくて、On・Off、をするんでもなくて、自作の物を設定したい
んですが、なかなかみつからないんです。というか、調べると調べるほど
VBからは設定できないみたいな香りが・・・・
>>745
スクリーンセーバーの有効無効などを切り替えるには
SystemParametersInfoというAPIを使う
スクリーンセーバーに使用するファイルパスの設定は
レジストリに格納してある
>>746
レジストリはどこを読めばよいのでしょうか?失礼ですが、よろしければ
教えてください。
>>747
試しに登録してからレジストリ検索するとか考えろよ馬鹿
>>748
まだ初心者なもので、レジストリをいじるのは初めてなんです。検索とかは
レジストリエディタとかがないとだめなんですよね?
>>749
聞く前にためせっつーの
>>749
ファイル名を指定して実行>regedit
752751:03/07/14 13:57
VBのプログラムをDistributionして、実行したときタスクバーに
表示されないのですが、タスクバーに表示するようにするには
どうするのでしょ。
753デフォルトの名無しさん:03/07/14 14:05
☆頑張ってまーす!!☆女の子が作ったサイトです☆
       ☆見て見て!!
http://yahooo.s2.x-beat.com/linkvp2/linkvp2.html
>>752
Distributionの意味がわからん。
755752:03/07/14 15:03
>>754
> >>752
> Distributionの意味がわからん。
ディストリビューションウイザードでパッケージを作ることでーす。
みんな違う方法でパッケージするのか?
>755
少なくとも、一般的にその行為を「Distributionする」とは言わない。断じて。
でもまあ、VB使いならピンと来てもおかしくはないな。
他のツールを使っていたらなんのことかさっぱり分からないだろうが。
758デフォルトの名無しさん:03/07/14 15:41
教えてください。
MSCommコントロールで、バイナリとテキストを同時に出力するにはどうしたらいいですか?

MSComm1.output = Chr$(H2) + "HOGE" + Chr$(H3)

とかやっても、機械(RS232Cでつないでます)が反応してくれないのです。
信号自体が出てるのは確認してるし、QuickWatch で 上記の出力を見てみると

・HOGE・

みたいになってて、コントロールコードは出てるみたいだけど、それが何なのかまでは
確認できないんです。

要は STX 命令 ETX って順番に出力したいだけなのですが。
どなたかご存知ないですか?
759758:03/07/14 15:42

ああ間違えたすみません。

MSComm1.output = Chr$(H2) & "HOGE" & Chr$(H3)

です。他の言語も同時進行なので、頭の中がワケワカランです。
>759
CHR$のヘルプ読んだ?
>指定した文字コードに対応する文字を示す文字列型 (String) の値を返します。
なんだけど。
スクロールバーをドラックしてる途中も
内容を表示したいです、どのイベントを拾えばいいのでしょうか
>>759

Chr$(H2)

これ Chr$(&H2) の間違いじゃないの?
VBだからという訳じゃなく、Windowsで制御コードをそのまま
画面に出すのは不可能じゃなかったっけか〜。

うちはいちいち変換ツール解して<STX>とか表示させてるよ。
ちょっち遅くなるけど、デバッグする際はこっちのほうが便利だからね。
>>761
V, HScrollBar なら Scrollイベント
765759:03/07/14 17:04
>>760 >>762

ありがとうー。俺がバカでした。
Chr$(&H2) でいけました・・・
納品終わったら回線切って首つって逝(ry
>>765
直ちに、「変数の宣言を強制する」にチェックしる!!!
767752:03/07/14 18:03
>>759
> MSComm1.output = Chr$(H2) & "HOGE" & Chr$(H3)

MSComm1はバイナリ-転送はサーポート外のはず。APIを直接アクセスすべき
 ではないだろうか?
 
ところで、上記752の質問を別の言い方で質問すると、
 「 
  VBで作ったプログラムを、Excelみたいにプログラムを実行したら、タスクバーに
  アイコンとプログラム名を表示するにはどうしたら良い?
 」
なのだが、よろしく。
>767
フォームを作って「ShowTaskBar」をTrueにしる
もとい。
「ShowInTaskBar」ね。
デフォ値がTrueだからいいんだけど。
MsCommでバイナリ転送できるよ。
少なくともバイナリ受信はやったことあるもん
VB6 SP5 使ってます。
いままでACCESS使ってたんですが、今度VBでシステムを組むことになり
明細関係の入力で困っております。
いろいろ調べてデータリピータコントロールというのを使おうと思い、
以下のサイトで調べて試したのですが
http://www.microsoft.com/japan/developer/library/VBCon98/vbconusingdatarepeatercontrol.htm
データの表示はできても入力ができないようで・・
これは仕様でしょうか?
もしできるのであればご教授願いたいです。
連結してるレコードセットが読み取り専用とか言うオチか?
773771:03/07/14 19:12
>>772
連結してるのはADO Data Control で、レコードセットには連結できないと
思ったのですが私の調べ方が悪いのでしょうか?
現在はテストでテーブルに直接連結してます。
レコードソースをSQLで設定するのはできたのですが表示のみなのは変わりませんでした。
774デフォルトの名無しさん:03/07/14 19:17
VB6SP5、ADO使ってMDBの更新処理やってるます。
(大量のRecoreSet作ったり、Updateしたり、Insertしたり、Deleteしたり)

で、途中で応答なしになっちゃうんですが、こういう現象に出会った人いませんか?

775デフォルトの名無しさん:03/07/14 20:04
タスクバーにキャプションが出るタイトルバー無しウインドウを作るにはどうしたらいいんでしょう?
>>766
これすでに書いてあるソースにも適用 (= Option Explicit が自動でつく ?) されるんだっけ ?

>>767, >>770
VB5.0 からサポートされた。
VB4.0 の時は、仕方なく Win32API 呼んでたけど、VB5.0 でその部分全面書き直したことがある。
777デフォルトの名無しさん:03/07/14 21:08
777
778デフォルトの名無しさん:03/07/14 21:54
exeファイルにした時、フォームの変更をさせないようにするためには
どうすればいいのでしょうか?
779デフォルトの名無しさん:03/07/14 22:01
>>778
フォームの変更って何?サイズの変更?
780778:03/07/14 22:16
>>779
ご指摘ありがとうございます。
おっしゃるとおり、サイズの変更をさせなくする方法です。
フォームのプロパティぐらい隅から隅まで見ろ
782778:03/07/14 22:22
>>781
一応一通り眺めては見たのですが…
ヒント程度いただけないでしょうか?
783:03/07/14 22:39
>782
BorderStyle
適切な手段を自分で見つけられないひとの多くは、用語を適切に使えないんだよな。
少なくとも、用語を適切に使えるひとは、適切な用語で検索をかけられるから、
解答に行き着ける可能性が高い。

普段から、適切な用語を使おうと努力することは、プログラミング技術の向上になる。
どう表現するのが一般的か、どう表現するのが標準的か、どう表現するのがわかりやすいか、
どう表現するのが適切か、どう表現するのが安全か、どう表現するかがプログラミングだ。
>782
>783、もしくはサイズ変更のイベントのたびにそれを無効にする、とか。

ここまで書けば解るっしょ。
>>785
電波?
>>785
どーして紛らわしくするかな
VBからXP Pro SP1の電源をきりたいんですけどどうすればいいでしょうか

試したことは
Shell "shutdown -t -s 0"  電源を切れる状態にするまでしかいかない
ExitWindowsEx 反応なし
shell "c:\windows\system32\shutdown" 反応なし
でした
789752:03/07/15 00:11
>>769
> もとい。
> 「ShowInTaskBar」ね。
> デフォ値がTrueだからいいんだけど。

これはTRUEになってた。 でもだめ。でない。
なぜだ。
790778:03/07/15 00:12
>>783
遅レスすみません
レスありがとうございました。
アホな質問ですみません。

例えばデスクトップ上で複数のファイル等をマウスで選択する時に
選択されたファイルは反転しますよね。
これをPictureBox内で実現するマウスイベント(?)とかありますか?
PictureBoxに画像を貼り付けて、画像のどこを選択したかがわかるように
したいんです。

よろしくお願いします。
>>789
モジュールからフォームを表示していたりするとだめ。あとは、ボーダースタイルとか。
タスクバーにボタンを出すためには、いくつか条件がある。

>>791
MouseDownでフラグを立てて、MouseMoveで矩形を描画、MouseUpで大きさ確定。
つまり、自分ですべてやらなくちゃだめ。
793山崎 渉:03/07/15 09:38

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
>>788
shutdown -s では電源を切ることはできない。

ExitWindowsEx API でOKだが、XPだと権限の設定がある。
ttp://www.bcap.co.jp/hanafusa/VBHLP/WinXPEnd.htm
795791:03/07/15 11:28
>>792
あ、やっぱりそうなんですか?
windowsの基本的な機能だから簡単にできると思ったけど・・・
ありがとうございました
796デフォルトの名無しさん:03/07/15 14:01
20万行ほどあるテキストファイルを処理したいのですが、
どのようにして読み込めばいいのでしょうか?
定石テクニック等ありましたらご教授くださいm(_ _)m
>>796
どんな処理がしたいのかどれくらいのファイルサイズなのか固定長なのか可変長なのかどんなファイルフォーマットなのかDBにしていいのかわるいのか。
798796:03/07/15 14:31
>>797
レスありがとうございます。
Webサイトのアクセス解析用にためているログなのですが、

20030601002400 host IP RequestURL U.A. ja 1024/768/16

フォーマットは上記のような感じで、半角スペース区切りになっています。
約20万行で、ファイルサイズは約40MBです。

このログをいろんな角度から解析するツールを作りたいのですが、
最初の最初でつまずいてしまいまして・・・。

よろしくお願いします。
>798
確かに角度は重要だな
>>798
その、どんな解析なのかがわからんので答え辛いが、
Accessなどのデータベースにつっこみゃ終わる気がするのは俺だけか?
801796:03/07/15 14:56
>>800
お恥ずかしいのですが、DBの知識は皆無でして・・・。
まず「いろんな角度」が何なのかを決めろって。
それも決まらんうちからどう読むのかを考えても意味無いだろうが。
803796:03/07/15 15:10
>>802
アドバイスありがとうございます。

とりあえず、日別でトップページへのアクセス回数を表示したいなぁと。
>>803
アクセスにでもブチ込め
どうしてもVBでってんならmdbにSQL文を発行してやれ
日別だろうがIP別だろうがUA別だろうが、持っているデータに対しては何とでもなる
806804:03/07/15 16:23
>>805
いやいや、これから覚えればいいこと
開発なんてものはそういうもんだろ
40Mくらい全部読み込んだって楽勝じゃん
808デフォルトの名無しさん:03/07/15 18:18
>>764
どうもありがとうございました。
たすかりました。
御礼が遅くなってすみません。
> 少なくとも、一般的にその行為を「Distributionする」とは言わない。断じて。
配布物を生成する と言いたいのだろう・・・たぶん。
810デフォルトの名無しさん:03/07/15 21:15
教えて下さい。

コンボボックスから選択し、
コマンドボタンを押すと
コマンドボックスで選択したレコードのフィールドが
テキストに表示されるというコードを作りたいのですが
どうすればよいのでしょうか?

ちなみにVB6.0でDAOを使って上記の動作がしたいのですが。
教えてください。
811デフォルトの名無しさん:03/07/15 21:20
★★★★★★★★★★★★★★★★★★★★
★  激安アダルトDVDショップ   ★
★    開店セール1枚500円!急げ! ★
★★★★★★★★★★★★★★★★★★★★
        激安でDVDをGET!
      http://www.get-dvd.com
   何と! 1枚 500円均一 セール中!

   インターネット初!「きたぐに割引」
  北海道・東北の皆様は送料も激安!!
      http://www.get-dvd.com
       ゲットDVDドットコム!
   
    今すぐアクセス  Let's go !!!!!!!
812デフォルトの名無しさん:03/07/15 21:23
それぐらい自分で考えろよ・・・
そんなコードも思いつかないようならプログラムやめとけ
ってか、やっぱりVB使ってる(しか使えない)ヤツなんてこんな程度か・・・
813デフォルトの名無しさん:03/07/15 21:28
>>812さん
複数のフィールドを複数のテキストに出力させて
表示させたいのですが、、、、
>>812 煽りは荒れるからやめとけ。
>>812
趣味で軽くやってるだけかもしれんし、いいじゃん別に。
おまえらその程度か・・・
つーか、どの分野にでも初心者はいるわけで
いちいち初心者を見つけてねちねちといじめるってのは
人間としてどうかと思うね。嫌われまっせ。
818デフォルトの名無しさん :03/07/15 23:35
おまいら、ADO使う時、山椒設定に
ActiveX Data Objects Recordset 2.x
入れてる?
819デフォルトの名無しさん:03/07/15 23:39
>>810
MSDNのヘルプみた?コンボのヘルプ
ボタン押してとってきたらどうよ?
ADOとDAOがいつまでたっても混同する
821cong:03/07/16 00:31
コンピューター日本学院の厨房生徒&香具師集まれ
>810
1.値をコンボボックスに表示する方法
2.選択された値を使用して検索・抽出する方法
3.抽出されたデータを表示する方法
を調べろ。
1から手取り足取り教えてくれっていうならとっとと首吊れ。
>810 は何度かこのスレに書いているが、
課題か何かで、データ連結コントロールを使っているらしい。

VB.Netスレからこっちに誘導したのは俺なのだが、
データ連結は使わないので答えてやれないのだ。

>810 は口下手だが悪い奴じゃないんだ。誰か頼む。
824823:03/07/16 01:45
825デフォルトの名無しさん:03/07/16 09:22
810はコピペじゃねーの?
こんなに長い間質問するかね
MSDN読んで作れよ
>810
VBでデータベースを扱う入門書を嫁。
かならず同じ事例が載っている。
どっちにしろ、現状を説明する事もできず自分で考えようとも
しない君をこれ以上助けてくれるヤシは少ないだろう。
827デフォルトの名無しさん:03/07/16 11:53
>>823さん
ありがとうございます。
助けになってくれようとしたこと
涙が出るほど嬉しかったです。

クエリからもう一度勉強しなおしてみます。
本当にありがとうございました。
初めてかきこさせていただきます。
この中にpowerpointのスライドショー機能を
VBのコマンドボタンで制御された方
もしくは制御方法を知っている方は
いらっしゃいますでしょうか?
powerpointのobject libraryを組み込んで表示までは出来ました。
よろしくお願いします。

829828:03/07/16 12:55
すみません
ちなみにVB6です。
830Null:03/07/16 18:41
スレ違いかもしれませんが、知っている方教えてください。
Access2000のVBAでフォームにコントロールを作成することってできませんか?
VBだと、コントロール配列を作っておいて、
For i = 1 To 10
Load(Check1(i))
Next i
チェックボックス{Check1(?)}が10個出来るのですが、
Accessにはコントロール配列すらないですよね・・・。
やり方を知っている方いればお願いします。
831デフォルトの名無しさん:03/07/16 20:13
>>830
txtTestというテキストボックスの場合、
for i = 1 to 10
Me("txtTest" & i).value
next i
とか?
これって便利だよね。
832デフォルトの名無しさん:03/07/17 00:39
すいません。LOADイベント中に、
フォームを開かないでプログラムを終了させる方法を教えて下さい。
EXIT SUBでOKかと思ったら駄目でした。
>>832
Showせずに、Loadだけする。で、Loadイベントの最後でShow。
こういう仕組みにしておけば、Exit Sub で抜けられるよ。
>>833
なるほど、Main関数からはじめるんですね。
Load後終了するときはUnloadを忘れないようにします。
でもひょっとしたらLoad自体必要ないかもしれません。
とにかくありがとうございました。
v(・∀-)b  < VBプログラマのUIデザインは糞だって言われないようにしろよ
836250:03/07/17 15:48
ある波形のピーク値とその時の時間の値を求めるという
プログラムの作り方をご教授願えないでしょうか.
>>836
微分汁
>>836
頭から順にseekしてって、比較値より大きければ比較値を書換え、それ以外はスルー
でいいじゃん
>>837
こんな質問する奴には不可能と思われる
840836:03/07/17 17:03
>>838
> 頭から順にseekしてって、比較値より大きければ比較値を書換え、それ以外はスルー
> でいいじゃん


 それではだめです。

デジタイズしていますから、サンプルポイントとポイントの間にピークがあるのです。
ですから、サンプル値から波形を予測してそのピークを
求めなければなりません。
 なにか良い方法はないでしょうか?


 
841836:03/07/17 17:07
>>837
> >>836
> 微分汁
 問題は微分の前処理です。
842837:03/07/17 17:13
>>841
サンプル値から曲線を予測する場合は普通どの曲線に近似するかを決めると思うんだが。
二次曲線にするとか三次曲線にするとか三角関数で表すとか。。。
波形だから三角関数か?
いったいどんなサンプルよ?
843836:03/07/17 17:25
>>842
あの、コンデンサーの一端にパルスをいれ
他端を観測したような波形
 いわゆる微分波形なんですが、ピークは振動しています。
 振動部分は窓かけて、袖(スカート)部から波形を予測したいのです。
 
 サンプルは20ポイントしかありません。
 そのうちピーク部の1割は振動しています。
 ピーク部の2割を削って、他の8割から予測です。
 
 とりあえず計算スピードは考慮する必要はありません。

844837:03/07/17 17:26
てゆーか式求めるんだったら数学版池。
http://science.2ch.net/math/
微分が出来てからこっちに鯉。
845デフォルトの名無しさん:03/07/17 20:10
初めまして。
ActiveReportで聞きたい事があります。

印刷するときにいま何ページ目を印刷しているみたいなプリンタのダイアログが出るのですが、
そこで1枚しか印刷されていない(プレビュー表示させても1枚)のにも関わらず、
実際の印刷は、その1枚目の印刷ページと、空白の紙が印刷されて出てしまいます。(2枚印刷されてしまう)
MAXPageを1に設定しても2枚印刷されてしまいます。

どなたかこの症状の回避方法に思い当たる方はいませんでしょうか?
よろしくお願いします。
846デフォルトの名無しさん:03/07/17 20:26
何箇所かのプロットから方程式を求めるのは最小二乗法だろ
848836:03/07/17 22:55
>>847
> 何箇所かのプロットから方程式を求めるのは最小二乗法だろ

ではだめですね。
Form1.V = iro '...(1)
'---------------------------------------------------
Form1.Show vbModal ' ...(2)
'---------------------------------------------------
cmd = Form1.cmd ' ...(3)
Unload Form1 ' ...(4)

フォームをクラスに見立てて、Form上に変数(プロパティー)を
配置する場合。
こんな風にやってみたのだが、(1)で
BreakしてトレースするとForm1のLoadを通過しないで
いきなり内部のPropertySetに入る。
同時にFormsコレクションを見てもまだこのときは
Form1は登録されてない。このときはすでにインスタンスは
できているはずなのだが、
Form1がメモリーにLoadされたことを調べることはできるのだろうか?

そもそも、このようなやり方は正しいのだろうか?
>>848
いいじゃんかよ、一直線に近似しろよ。
851849:03/07/18 09:01
続く

一般的な Form1.showの終わり方は内部でunload meをするが、
この場合unload が2回になる。
他の方法があるだろうか?
852山太郎:03/07/18 09:31
>849
Loadイベントは、「フォーム」がメモリにロードされるときに発生するイベントだよ。
プロパティにアクセスしただけでは、まだLoadイベントは発生しない。
インスタンスが作成された時に発生するイベントはInitialize。

あと、余計な事かもしれんが、フォームモジュール名を直に使うのはどうかと。
フォームをクラスに見立てるならなおさら。
ちゃんとオブジェクト変数宣言して、New使って新しいインスタンスを作った方がいい。
もちろん、いちいちそうやらなくても動くのがVBだが、それに甘えているとドトネトや
他の言語使うときに苦労する。
853845:03/07/18 11:17
自己解決できました。
ありがとうございました。
854デフォルトの名無しさん:03/07/18 16:42
フォームを移動したときのイベントハンドラが見つかりません

form.top と form.leftの情報を移動したら取得したいのですが
どうすればできますか?
>>854
フックしる
856デフォルトの名無しさん:03/07/18 16:57
それじゃないとむりか?
857デフォルトの名無しさん:03/07/18 16:59
>>856
タイマーで監視する?
>>854
完全を求めるならね。おそらく、移動後(設定によっては移動中も)Paintイベントが
発生するので、そこでチェックするって方法もありかも。
860849:03/07/18 21:58
>>852
> インスタンスが作成された時に発生するイベントはInitialize。
> ちゃんとオブジェクト変数宣言して、New使って新しいインスタンスを作った方がいい。

アリガト。知らなかった。Newをつかうのか。
 後生成したインスタンスを終わるとき Me.Hideで終わるのだろうか?
 
Set frmVin = New Form2
frmVin.V = 10 '初期値を設定
frmVin.Show vbModal
Text1.Text = frmVin.V '結果を取り出す。
Unload frmVin    ’unloadする
Set frmVin = Nothing ’これは必要か?

こんな感じね。

861849:03/07/18 22:14
>>852
> インスタンスが作成された時に発生するイベントはInitialize。


Private Sub Command2_Click()
Form2.Top = 0
Form2.Left = 0
End Sub

上をテストすると
プロパティーのアクセスだけでも、Loadイベントが立つぜよ。
862854:03/07/19 08:36
みんなサンクス
要はウィンドウの最小化ボタンを押す前のtop.left.widthなどを採取
したいわけです。ウィンドウ再起動時のウィンドウ状態を復元。
最小化時点で閉じられるとtop.leftなどの情報が-48000とかになる。
やっぱり、ウィンドウメッセージを監視するしかないのかもしれません
でも、やっぱり面倒です。何かよい方法は、、、

863デフォルトの名無しさん:03/07/19 08:42
ADOで2つのテーブルを連続で更新しています。
たとえば、名簿マスタと資格マスタ、、、という具合に

いわゆるトランザクション的なことをしたいのですが
ヒントを教えてください。
comitt,rollbackを使いたいわけです

ACCESS2000を使ってます
864863:03/07/19 09:10
自己レスです
BeginTrans、CommitTrans、RollbackTrans メソッド
を試験的に使ってますが
transの途中でcommittrans3回かけるとして
2回目かけた後でパソコンやOSがクラッシュしたら
更新内容は保存されますか?
No
866863:03/07/19 09:28
>>865
サンクス子
擬似的に更新エラーを発生させる命令はありますか?
867デフォルトの名無しさん :03/07/19 10:04
>>866
釣りですか?
868_:03/07/19 10:10
869863:03/07/19 10:32
>>867
釣りとはなんぞ?
専門用語わからん
870デフォルトの名無しさん:03/07/19 11:47
VBでも、プログラマって言うのか教えて下さい。
小中学生でもできると聞いたのですが・・
871デフォルトの名無しさん:03/07/19 12:00
5流大出か、もしくはそれ以下の方に多く使われているそうです。
872_:03/07/19 12:01
プログラミングすれば、小学生だってプログラマだ。
>>870
もちろんVB使いもプログラマです。
簡単ではありませんが小中学生でプログラミングをしている人もいます。
これはVBだけに限らずC言語などでも同じで、ホビーからプロまで幅広く使われています。
実際私も小学生でBASIC、中学生でC言語とアセンブラを使っていました。
プログラミングにおいて言語なんて些細な違いでしかなく
主となるものは考え方であり、これはどの言語でも共通のものです。
よくVBを煽る人がいますが、煽る人が無知なだけなので気にする必要はありません。
>>871 無知だね。
876デフォルトの名無しさん:03/07/19 12:12
>プログラミングにおいて言語なんて些細な違いでしかなく
実際にVBから抜け出せないヤツは沢山いる。
以前、ニュー速でVBスレがあったが、論理演算が何かという事も解ってないヤツが沢山いた。

>主となるものは考え方
VBプログラマは、考え方自体が間違っているのが多すぎ。

優秀なフリーソフトなどを見ても、VBで作られた物は見た事がない。
・・・以上が、煽られる理由。
VBが煽られるのにはそれなりの理由がある。
877トリビア:03/07/19 12:18
> プログラミングにおいて言語なんて些細な違いでしかなく

へぇ
>>876
そうやってVBとヘボプログラマをごっちゃにするから馬鹿だといわれるんだよ。
どんな言語にもヘボプログラマや初心者はいる。
もう少し冷静になれ。
VBを嫌う奴は厨房が多い。
880デフォルトの名無しさん:03/07/19 12:21
厨房はVBしか使えない罠
881870:03/07/19 12:21
なんか荒らしを招いたみたいですみません。

>>874
参考になりました。
882デフォルトの名無しさん:03/07/19 12:23
>>881
何故俺を騙る?
>>882
聞くまでもなかろうよ
884デフォルトの名無しさん:03/07/19 12:24
>>878
あくまで統計的な問題
885デフォルトの名無しさん:03/07/19 12:26
VBしか使えない878必死だな
886870:03/07/19 12:28
言い忘れましたが、荒らしは放置してください。
887デフォルトの名無しさん:03/07/19 12:29
おまいら釣られすぎ
>>870=>>874=釣り師
889デフォルトの名無しさん:03/07/19 12:32
釣られるヤツ=VBしかできない香具師
釣った奴=VBもできないやつ
891デフォルトの名無しさん:03/07/19 12:35
以上、自作自演でした(・∀・)
892デフォルトの名無しさん:03/07/19 12:39
高い金を払ってVBを使うメリットはなんですか?
言語の違いは些細なものでしかないのなら、無駄な気がするんですが。
うん、そのとおり。
VBを買うやつはうんこ
895デフォルトの名無しさん:03/07/19 12:41
釣りはもういいって。
答:VBしか使えないから
>>894
MSとACCSに通報しました
>892 くだ質へ行って下さい。
898デフォルトの名無しさん:03/07/19 12:45
クソ、その通りだよ!!
漏れは高卒でVBしか使えねーよ!!
以前C言語とか色々やったけどどれも全然解らなかったよ・・・・
でも俺はプログラミングだけじゃなくて営業や広報もできるからな。
これでいいか、プログラムしかできない臭いオタク共が(藁
899デフォルトの名無しさん:03/07/19 12:50
>>897
どこですか?
900デフォルトの名無しさん:03/07/19 12:56
<`Д´>900ゲットニダ
まあ、とっつきやすいから厨房が群がってるだけだわな。
そういう漏れはインタープリタとしての利点があるからって割り切って使ってるだけでつ。
VBのアルバイトしませんか?
プログラム本数2本で10万円差し上げます。
簡単に仕様を説明すると、
@webページ上から毎日データを取得する。(平日のみ18:00頃) 
Aデータからある指数を計算する。
B自分の設定した指数になったら、画面上に何らかの表示をする。
です。
興味のある方はメール下さい。
まぁ、結論としてはVBしかできないヤツが駄目って事で。
他の言語でも同じ事だけどVBから入ったヤツの場合はなかなか
移行できないんだろうな・・
904デフォルトの名無しさん:03/07/19 14:37
905_:03/07/19 14:43
まあ、あまり深く考えずにコーディングをはじめてしまえることについては、
Visual Basicのメリットではあるけども、大きなデメリットでもあるね。
ちゃんとしたものを作るには、それ相応の努力が必要なのはVisual Basicも同じなんだけど、
それを理解しないままにVisual Basicを選択し、安易に助けを求めるひとが多いのも事実。

Visual Basicがだれにでも使える開発ツールとして登場した背景があるいっぽうで、
現在のVisual Basicは著しく進化し、他の言語に比べても遜色ないものになった。
いっぽうで、決してだれにでも使えるツールでもなくなったのだが、安易に選択するひとは後を絶たない。

こうした負の遺産をVisual Basicの欠点として述べるのは、べつにまちがってないと思う。
>>876は当たらずとも遠からず。実際、アルゴリズムやOSのしくみを理解しようともせずに
コーディングして行き詰まり、ここで助けを求めるものが少なくないことは事実。

オレは、いまでこそ開発の仕事はやっていないが、最初にVisual Basicを触って、
ただの一行も書かずにWindowsアプリケーションができたあの感動はいまも忘れていない。
オレはVisual Basicが好きだ。Windowsの作法やGUIにも、一家言あるつもり。
たぶん>>835も、同じような気持ちではなかろうか。煽り上等、Visual Basicプログラマを誇れ。
漏れはV安易なVBに移行しなかったからこそ、VBしか使えないヤツを馬鹿にし続けます。
結局仕事で一通り覚えたし、今でも簡単なツールぐらいなら使うけどよぉ。
>>907
( ´,_ゝ`)プッ
>>908
VBしかできないヤツ発見
910デフォルトの名無しさん:03/07/20 02:40
VBプログラマの常套ツバメ返し:VBしかできないヤツ→VBもできないくせに
911デフォルトの名無しさん:03/07/20 03:05
CSAの登場キボンヌ
912908:03/07/20 10:19
>>909
漏れはvb以外にもc++とかjavascriptとか使えるよ。
もちろん覚えたのは必要だったからに過ぎないわけで。
必要なければ使えるようになる必要もない。
だから漏れはわざわざVBしか使えない香具師を馬鹿にすることはない。
ここまで言えば>>907を嘲笑した理由はわかるよな。
913デフォルトの名無しさん :03/07/20 11:22
たかがプログラマーの分際で
たかだか言語に精通してる程度の理由で
人を子馬鹿にする香具師が一番イタい
最下流工程の引篭もりでもできる仕事だという事を自覚しろよ
建築でいえばセメント捏ねたり釘打つのと同じ仕事だぞ(ワラ
このVBスレって性格の悪い人が何人かいる
915デフォルトの名無しさん:03/07/20 11:55
人間は差別したがるものなんです。

>最下流工程の引篭もりでもできる仕事
こういう事いう奴に限ってロクにスキルもないVBプログラマだったりする
・・・というと
>漏れはvb以外にもc++とかjavascriptとか使えるよ。
って嘘返してくるんだろうな。( ´,_ゝ`)プッ
質問ドゾー
917デフォルトの名無しさん:03/07/20 12:00
ボタンに画像を貼り付ける方法を教えてください
さて、もうすぐ次スレなわけだが、
今度はスレタイに(*´Д`*)アハァ復活キボンヌ
919デフォルトの名無しさん:03/07/20 12:10
(*´Д`*)アハァ復活っつーか、昔は毎回顔文字が変わっていたのに、
誰かが次スレを立てる時に今スレと同じ(*´Д`*)アハァを使ったために、
いつのまにかそれが連続で使われてしまったって感じじゃなかったっけ?
>>917
Styleプロパティを1にしてPictureプロパティで選ぶ
>>918
同意(*´д`*)アハァ …дは大文字?
921デフォルトの名無しさん :03/07/20 12:23
>>915

>・・・というと
>>漏れはvb以外にもc++とかjavascriptとか使えるよ。
>って嘘返してくるんだろうな。( ´,_ゝ`)プッ


顔真っ赤だぞ(≧m≦) ププ
922デフォルトの名無しさん:03/07/20 12:31
こういう事は、昔からあったのぉ。
オールマシン語で書かれたゲームは、それだけで騒がれたもんじゃ。
BASICがいつの時代でもいじめられっ子なのは変わらないようじゃのぉ・・・
923デフォルトの名無しさん:03/07/20 12:35
図星さされて反論できなくなって、悔しくてしょうがないから話と関係ない
適当な煽りしか書けなくなった哀れなVB房>>921がいるスレはここですか?
(*´д`*)アハァ
925デフォルトの名無しさん:03/07/20 12:55
ホ、ホォォォォォーってのもあったな。
926デフォルトの名無しさん:03/07/20 13:03
(・ロ・)ホ,('ロ')ホ--ッッ!!!… VB初心者質問スレ Part17

これまた微妙なタイトル(藁

どんなスレタイだよボケ。

なんだよ、この顔文字。絶対、前のが良いと思う。
こんなの見つけづらいだろ。
次スレ立てるヤシは、前のに戻しておくれよ。

質問です。
指定したプロセスを終了させるにはどうすればよいのでしょうか?

928デフォルトの名無しさん:03/07/20 13:19
>>927
Kill
929デフォルトの名無しさん:03/07/20 13:24
2ちゃん初心者ですけど次スレ立てました

Part27
http://pc2.2ch.net/test/read.cgi/tech/1058674927/
これでいいですか?
>>929
乙華麗
931デフォルトの名無しさん:03/07/20 15:43
こんなに見えちゃってヤバクない???
抜いても抜いてもボッキしっぱなし・・・
 ↓ ↓ ↓

◆◇◆◇ 海外サイトだから安心無修正 ◇◆◇◆
http://upbbs.s2.x-beat.com/linkvp/linkvp.html
http://upbbs.s2.x-beat.com/linkvp/linkvp.html
◆◇◆◇ 本気汁丸出しのお○○こが! ◇◆◇◆
次すれ立てるの早すぎ。
933名無しさん:03/07/20 22:51
俺はむしろ煮込みうどんが好き
まだこっちに書き込めばいいですよね?Part27じゃなくて、
えーと、今スクリーンセーバーを作っていて、フォームを最大化した
状態に、ラベルで大きなタイトルを入れています。
しかし、自分のパソコンではいいのですが、他の人のパソコンでは字が
大きすぎて画面に入りきりません。配置は動的にやれば、いいのですが
文字の大きさはどうにもなりません。
こういう場合、文字を画像ファイルで用意して、Pictureコントロールとか
で適当な大きさにして表示するしかないんでしょうか?(結構表示する
文字が種類あるので、面倒くさい)
何かLabelのままでうまくやる方法ないでしょうか?
初心者ですがお願いします。
>>934
フォントサイズを変更すればいいでしょ?
>>934
「画面サイズ 1284x1048 以外はサポートいたしません」
と明記すればいいでしょ?
>>935
フォントサイズも動的に変更すればいい、という意味でしょうか?それは
私も考えたのですが、フォントサイズは?ポイントとかと表される
ので、画面サイズに合わせてフォントサイズを変える、よい方法が思い浮
かびませんでした。もしいいアイデアがあれば教えてください。
ついでにそんな事をやってるプログラム見たことありませんか?
>>936
いや、それはちょっと・・・・
>>937
起動時に画面サイズを変更すりゃいいじゃないの。
死ね死ね死ね〜
>>938
なるほどそれはナイスアイデアですね。でも、それって結構簡単にでき
るんでしょうか?
>>939
?、ほっときましょう
>>940
自己レスなんですけど、なんか調べてみたら、ラベルのHeightとかを
20で割ったものがポイント数になるみたいな事が書いてありました。
これは正しいのでしょうか?
>>940
ふたたび、自己レスです。えーと、最大化したフォームのHeightを
(72/1440)でかけて、単位をポイントに変換し、そこから、画面との
比からどの程度の大きさにすればいいか考えて、そのパーセンテージ
をかける事によって調整できました。結局ひとりで言って、ひとりで
解決してしまったのですが、みなさんご協力ありがとうございました。
>> 942
解決したんならいいんだけど、
ScaleModeを「2 - ポイント」とかで使えば簡単に計算できるよ。
フォームの大きさが変わっても常に半分のサイズで表示するならこんな感じ。
Private Sub Form_Resize()
  Me.ScaleMode = vbPoints
  Label1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight / 2
  Label1.FontSize = Label1.Height
End Sub
>>943
そんな手もあったんですね。親切にありがとうございました。参考にさ
せていただきます。
945デフォルトの名無しさん:03/07/22 13:35
>862

最小化状態も復元しては?
ウィンドウのサイズや位置は最小化状態のときは取得しなければいい
vbでエクセルファイルを開いて、アクティブセルの値を
参照したいんですがどうやればよいのでしょうか?
教えてください。
VBからエクセルを開く方法を調べる。
VBからエクセルのアクティブセルを取得する方法を調べる。
VBからセルの内容を取得する方法を調べる。
ラインコントロールで引いた線(A)の片方の端に、同じくラインコントロールを2つ(B,C)使って
矢印を作ろうとしてます。
 Aは斜めにもなるので、BとCの、Aと接さない側の端を計算で求めないといけないのですが、
あろう事か手順を忘れてしまいました(死
 AとB,Cの開く角度を15度ずつ、長さをnとしたとき、どのような手順で求めれば良いでしょう?
>>948
手順1
中学の数学の教科書を開く。
>949
それで済めば良かったんですけどね、あいにく捨ててました(笑
一晩検索しまくって、やっとこ発見。ご迷惑おかけしました
次スレ

v(・∀-)b VBプログラマ質問スレ Part27
http://pc2.2ch.net/test/read.cgi/tech/1058702281/
952山崎 渉:03/08/02 02:26
(^^)
953デフォルトの名無しさん:03/08/06 20:57
VBからEXCELのブックがあるかどうかを調べる方法ならわかるのですが、
そのBookの中身のSheetが何が入ってるかを検索する方法がわからないので教えてください。
954:03/08/06 21:57
>>953
Set xlsBook = xlsApp.Workbooks.Open("C:\Target.xls")
If xlsBook.Sheets(1).Name<>"シート名" Then
MsgBox "シート名が「シート名」ではない"
End If
955デフォルトの名無しさん:03/08/07 03:08
ADOでACCESS2000につなげてます。

MySql = "SELECT MAX(年齢) FROM 表"
'レコードセットを取得
Set rs = New ADODB.Recordset
rs.Open MySql, cn, adOpenStatic

で、MAX(年齢)を吐き出したいのですが、

Set Text1.DataSource = rs
Text1.DataField = "MAX(当選番号)"では上手くいきませんでした。。
956デフォルトの名無しさん:03/08/07 03:43
>>955
ADODB.Command
あたりを調べたら幸せになれるかもなんばん
cn.Execute("SELECT MAX(当選番号) FROM 表").Fields(0).Value
マイク等からの録音時にピークメーターを設置したいのですが、
どこから現在の入力音量をとってくればいいかわかりません。
どなたかご存じの方よろしくお願いします。
959山崎 渉:03/08/15 15:56
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
次スレ

v(・∀-)b VBプログラマ質問スレ Part27
http://pc2.2ch.net/test/read.cgi/tech/1058702281/
 
  
   
    
     
       
        
         
          
次スレ

v(・∀-)b VBプログラマ質問スレ Part27
http://pc2.2ch.net/test/read.cgi/tech/1058702281/
 
  
   
    
      
 
  
   
    
次スレ

v(・∀-)b VBプログラマ質問スレ Part27
http://pc2.2ch.net/test/read.cgi/tech/1058702281/
  
   
    
     
 
 
  
   
    
次スレ

(*´д`*)アハァ… VB初心者質問スレ Part27
http://pc2.2ch.net/test/read.cgi/tech/1058674927/
 
  
   
    
次スレ

(*´д`*)アハァ… VB初心者質問スレ Part27
http://pc2.2ch.net/test/read.cgi/tech/1058674927/
1000げっと
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。