v(・∀-)b VBプログラマ質問スレ(6.0以前) Part26
1 :
デフォルトの名無しさん :
03/06/09 16:51
乙
ここの1さんはどれほどの実力なのでしょうか?
5 :
デフォルトの名無しさん :03/06/09 22:29
久しぶりに答えてやろうかと思ったが まだ未返答の質問の一覧とか無いのか?
今までにそんなことやっていたスレがあったと思うか?
7 :
デフォルトの名無しさん :03/06/09 22:40
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 一番簡単なのは構造体ではなくクラスにする。
>>17 「エラーでるんですが」と言ってエラー内容を言わない人は論外です。
あの人がもっといいひとになってここに名無しで答えてくれたら神になれるのにな
>>19 間違った解答ばかりして追い出された過去を知らんらしいな
質問です、WisockコントロールのUDPプロトコルでは一回に何バイト ずつぐらいで送るのが妥当でしょうか?
あ!
>22 64以内
25 :
デフォルトの名無しさん :03/06/11 04:32
初心者を見下すような雰囲気、こりゃだめだ
28 :
デフォルトの名無しさん :03/06/11 08:42
ここで見下されるような質問する人にはプログラミングは向かないだけでしょ。 例え初心者でも質問の聞き方でこの先伸びるかどうかはすぐわかる。
プロジェクトウィンドウの選択が解除されることがあるのですがなぜでしょうか?
>>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)
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)
は通らない
>>36 >>39 ありがとうございます。
結果を格納する変数だけがLongじゃだめなんですね。
Int同士の計算だとIntになってしまうと。
42 :
デフォルトの名無しさん :03/06/11 12:32
>40 >Int同士の計算だとIntになってしまうと。 それはどうかな
43 :
デフォルトの名無しさん :03/06/11 14:22
picturebox で文字を書くときにどのぐらいのサイズになるか知りたいです。 フォントと、サイズ・文字を指定したときに、どのぐらいのサイズになるか知るにはどのようにしたらよいでしょうか?
44 :
デフォルトの名無しさん :03/06/11 14:50
昔のBasicのpaintみたいに、 枠の色を指定してその中を塗りつぶす命令はありますか?
GetMetaFileBitsEx で lpvData に Null 又は 0 を指定しとるのだが データを格納するために必要なバイト数というのが取得できん 予め大きなサイズを割り当てれば関数自体は成功するが後味悪い やり方教えてくれ
>>43 TextWidth, TextHeight
>>45 それはVBなのかと小(ry
>>48 がーん、それでした!ありがとん
スレ跨いでまでつまらん質問してスマソ
イメージをフォームに貼り付けたのですが、 フォームがアクティブになるたびに イメージがチカチカしてしまいます。 なんとかならないものでしょうか。
>>51 ・・・たとえ548バイトづつ送ったところで実際に548バイトづつおくる
保証も到達の保証はないことは頭にいれておいてくれよ
>>51 もう一つ重要なことがあるが、スレタイの顔がキモいから教えない。
54 :
デフォルトの名無しさん :03/06/12 10:09
>50 そんなこと起きない。
>50 フォームのClicpControlプロパティをFalseにしてみる。
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 サブクラス化でもしてるんじゃないのでしょうか?
>>61 『サブクラス化』についてちょっと調べてみます。
藁にもすがる思いなので・・・。
サクブラス化って具体的に何ができるようになるん?分かるヤシ教えてみ
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で表示するには どうすればいいのでしょうか?
質問するときははしょるな
74 :
デフォルトの名無しさん :03/06/14 00:42
>72 毎度毎度すみません 今、自分の作成しているアプリとは別のVBのアプリのメッセージを 取得したいのですが方法がわかりません。
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 ありがとうございました さっそくやってみます
81 :
デフォルトの名無しさん :03/06/14 02:25
>>78 BSMTP DLLを使ってみてはいかがでしょう?
フリーで配布されています。
>>82 RFCを資料として教えてる人に脳なしってあんた・・・
なんと愚かな人間なんだろうか
>>83 あーすまん。
>>78 は資料を欲していたのか。
また一度も読んだことないくせにRFC読めって言っている奴かと思った。
>>80 というわけでごめん。
もしこんな経験をしてたら教えてください。 Windows2000上でAccess97で作ったmdbファイルにDAO3.5ライブラリを 参照設定してアクセスしています。 VBは、6.0 sp5 です。 このようなアプリケーションでフリーズを経験された方がいましたら 対処方法を教えてください。 ただ、フリーズがごくたまにしか起こらず再現できなくて困っています。 mdbファイルをAccess2000に変換したら直るならよいのですが。
>>80 さん
>>81 さん
ありがとうございます。
RFCなる規格?を勉強し仕組みを理解することですね
それでは、頑張って英文と格闘してきますw
IMAPは?
89 :
デフォルトの名無しさん :03/06/14 19:54
プロシージャ の パラメータ に、オブジェクト や コントロール を指定 するのは、間違いですか ? シンタックス エラー は出ませんが、実行時に "型が一致しません" と エラーが出ます。 ( 同じ型の オブジェクト を指定しています ) 初歩的な質問ですが、お願いします。
90 :
デフォルトの名無しさん :03/06/14 19:55
そう言わず、お願いします。
>>89 エラーになるプロシージャおよび呼び出し元を書いてみ。
>>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
>96 かぶった。スマソ。 既定のプロパティはFieldsだったんだ。間違えました。
>>96 解決しました。
ありがとうございます。 m(__)m
スレ違いだったらスマソ!C言語でもapp.pathみたいのあるん?
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 一応つっこんどくが、、、コンパイルしたら変数名なんて記憶してないぞ?
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 何が大変なんだろう?
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でもいいのかなぁ?
>>122 なるほど!マウス操作に限定すれば綺麗に動作しますね
その前に
ヤパーリ何かしらコーディングせにゃ実現できんってコトっすよね?
実はこれとは別の手法でやってたんすけど
ホントにんなことせにゃならんのかと思いましてね
まあダメなんでしょうね。。。どうもでした
プロジェクトエクスプローラの表示のバグなんとかならんのかい
SP入れると多少マシになる
127 :
デフォルトの名無しさん :03/06/17 18:01
すみません、VB6でアドバンス技研のExcelクリエーターを 使ってる方、教えていただけませんか?
>>124 どんな内容か仕様かバグかわからのに話しているお前らは(略
131 :
デフォルトの名無しさん :03/06/17 18:08
>>128 Call XlsOpenBook(FileName, sTemplate, Null) を実行したのですが
Null の使い方が不正です。(Error94)と出てしまいます。
Nothingにすれば?
133 :
デフォルトの名無しさん :03/06/17 18:32
135 :
デフォルトの名無しさん :03/06/17 18:36
Nothingも使えません。 コンパイルエラー オブジェクトの使い方が不正です と出ます。
137 :
デフォルトの名無しさん :03/06/17 18:41
>>136 あっ!?エラーは出なくなりました!ありがとうございます。
でもオーバーレイが上手くいてない・・・鬱
AlphaBlendAPIでソースのPictureBoxのVisible=Falseで 画像を転送すると描画されないんですけど、どうしたらいのでしょうか?
windowsがスクリーンセーバーを呼び出す事を、プログラムの中で置 き代えて実現するにはどうすればよいでしょうか?また、そういった 感じの事が載っているサイトがあったら教えてください。
141 :
デフォルトの名無しさん :03/06/18 12:32
ForステートメントやDo Whileステートメントを途中で抜ける、C言語で言うbreakは、 VB6.0ではどう記述すればいいのでしょうか。 適当なラベルにGoToで飛ばすんでしょうか?
>>141 Exit For
Exit Do
continue に相当するものは無し
144 :
デフォルトの名無しさん :03/06/18 12:39
VBで作ったOCXをまとめてRegistryに登録するのはどうするんです? 相手にVBが入っていないとできないみたいなんですが?
145 :
デフォルトの名無しさん :03/06/18 12:44
チェックボックスのコントロール配列を関数の引数にしたいのですが、どのように書けばよいでしょうか?
>144 ディストリビューションウィザードでセットアップ作りなされ。
148 :
デフォルトの名無しさん :03/06/18 13:02
やべ、激しく間違えた
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のせいにして逃げる
>フォームなんかは同時に動かすわけじゃないんで、 そういう風に考えるから判らなくなる
あー、オーバーロードしたい。。。
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か。恥ずかしい…
お蔭様で実装する事ができました。
ご報告まで・・・。
>>61 の方ありがとう~。
165 :
せっぱつまってます(>_<)。 :03/06/19 10:14
VB6でWORDのカレントフォルダ(文書の規定の保存先)を取得する方法と、 同じくEXCELのカレントフォルダ(シートの規定の保存先)を取得する 方法を教えてください。。 お願いします~~。。。
166 :
165の追加です。。 :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
176 :
デフォルトの名無しさん :03/06/19 17:10
チャント コタエテ ヤレヨ!
>>154 インスタンス管理がいい加減だから。
解説は、そのURLリンクに書いてある通り。
178 :
デフォルトの名無しさん :03/06/19 17:24
ずっとOKを押しつづければいずれ重複はなくなります。 結構根性がいりますがもう少しOKを押しつづけてください。
179 :
デフォルトの名無しさん :03/06/19 17:35
182 :
デフォルトの名無しさん :03/06/19 18:07
183 :
デフォルトの名無しさん :03/06/19 18:11
>180 正直そんなAPIしらないです。でもコントロールのtopとleftをとる方法は知っています。
思い出した!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))
lstrlenでもいいがな
vb6です 他のプログラムを起動して、そのプログラムを制御したいのですが、 shellとsendkeysを使う他に、どのような手がありますでしょうか? プログラムの状況を把握しながらsendkeysできれば、問題ないのでしょうが・・・ 出来る限り素早く制御したいので、無駄なsleepはできれば避けたいのです。 よろしくお願いします。
>>188 そのプログラムが他のプログラムから制御できるように
なっているならそれを使う。たとえばActiveX EXEに
なっているとかDDEをサポートしているとか。
そうでなければWindowsハンドルを取得してSendMessage。
× 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 それで希望の動作しているならいいけどウインドウを持たないコントロールはどうするんだろう?
>>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使ってフォームを常に手前に表示してるんですが、 そうると、ツールバーのボタンのツールチップがウィンドウの後ろに行っちゃいました。 これって回避できませんか?
VB6(SP5)です。
>>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はある。
質問者の口調には見えん
>>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って随分なつかしいな。一太郎か?
分かった。数え方の問題ね。 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でやれるかどうか知らん)
>198 とあるゲームの自動操作ツール(高速で同じ動作を繰り返す)をちょっと作ってみたのです が、sendMessageを使用した場合にかなり遅くなるのです。具体的には、マウスカーソル移 動→左ボタンプッシュダウン→マウスカーソル移動→左ボタンプッシュダウン...という動 作をさせています。で、これらの動作をsendMessageを2回発行して実現しているのですが setMousePos+mouse_eventで実現した時よりもあからさまに遅い、といった具合です。
>>219 ゲームの自動操作ってことは、左ボタンを押す場所には
ボタン(ウインドウハンドルを持ったコントロール)とかではないのか?
ウインドウハンドルを持っているのならそこへ直接マウスクリックを
送信できるし、そうでなくてもアプリ全体のウインドウからの相対距離を
lParamにセットすればいいので、マウスカーソル移動は送る必要ないと思うが。
221 :
データグリッド :03/06/21 03:20
データグリッド で 特定の列を不可視にして、追加行による レコードの追加の時に、その列に規定の値をセットしたいの ですが、どうすればいいか分かりません。 マニュアルには、Column オブジェクトに DefaultValue と いうプロパティが、あるのですが、プログラムで指定すると プロパティが見つかりませんとエラーになります。
222 :
デフォルトの名無しさん :03/06/21 04:58
(*´д`*)アハァ
>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にしても対して改善されないから。
VB6.0とORACLE8.??でOO4Oを使用してPG作成しています。 SELECT結果がDYNASETに作成されます。結果が0件の場合当然DYNASETは 作成されないと思うのですが、作成されない(空?)場合の判断式を 教えて下さい。(IF aaaDynaset = "" とかいった感じで・・・)
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にジョブを送信する 方法に関してなにかキーワードだけでも教えていただければあり がたいです。
>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
(*´д`*)アハァ
>>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イベントで状況保存処理やっちまえばいいじゃん。
>>246 こっそり監視する訳ではないので、電源落とされることは
まず無いという設定です。
>>247 サーバー上のとあるページにアクセスし、IDとパスワードを入れて
ログインし、ある順序でページ遷移して、その先にあるボタンを
押して・・・という手順を行う必要があります。
自動で実行できるものではないので・・・・難しいなあ。
>>248 それ何の処理?
そのアプリの処理と関係ないのでは?
説明不十分のため、ちゃんと説明します。 学校(一般大学)のゼミで、出席管理用のプログラムを 教授に頼まれて作っているのです。 各自が席についてから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%防げるとは限らんが、そんなもんでいいと思われ。
>>252 Win98,Win2000どちらでやっても強制終了になる。
以前Win95+VB5でやった時はその方法で問題なかったんだが・・・
環境の問題かな?
>>253 入れ忘れじゃなくて、帰りにPCの電源を切ったが退室入力を忘れたってのを
防ぎたいのが目的です。
わかりにくかったかな?ごめんなさい。
>>254 じゃぁ、退室入力処理をUnload時に自動でやるとか。
出入り口に一台タイムカード用のPCおけばいいじゃそ。
>254(240) タスクトレイ常駐形式だったね。見逃してた。 252 はごく普通のウィンドウを持つプログラムでの話し。 で、タスクトレイ常駐形式に拘らなければ方法はあると思うが... (タスクリストに出さないとか)
>>240 結論
無理、もしくはここのスレの人間の頭では解消不可能
あ き ら め ろ
(*´д`*)アハァ
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
ちゃんと整理してみよう。といっても俺は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の場合)
要注意かも
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 イベントを
> ブロードキャストし、操作を中断するためのアクセス権を要求します。
休止状態はこれで検出する? 電源オフボタンによる終了にも対応できるかも??
273 :
デフォルトの名無しさん :03/06/23 07:42
>>270 WinXP Home
両方発生した。こっからWindowsの終了をさせなくする方法はわからんけど
>>273 終了処理はそこでやればOK。
でもCancel=TrueとしてもWindowsの終了は
キャンセルされないって事?
279 :
デフォルトの名無しさん :03/06/23 13:37
UserControlにInterfaceをimplementsしても Interfaceの型で宣言した変数にインスタンスを代入できません UserControlでは特別なやりかたをしないといけないのでしょうか?
標準モジュールの数増やすと何か弊害ある? 極端な話関数ひとつに一個使いたいくらいなんだけど まとめてるとごちゃごちゃして可読性悪くて
読みにくいのは書き方がヘタなだけ。
>>276 らしいね。240には暗にタスクトレイ常駐でない形をほのめかしたんだけど、レスが無いからやる気しない。
285 :
デフォルトの名無しさん :03/06/23 16:11
アドイン作っているんですが、関数内の変数を取得する方法と、 取得した関数・変数の性質を調べる方法がわかりません。(public,private,function,sub等) お願いします。
286 :
デフォルトの名無しさん :03/06/23 16:40
VB6です。
>>283 タスクトレイは関係ないと思うよ。
Windowsには常駐って考えはなくて、起動していれば常駐。
あなたが言っている「タスクトレイ常駐」とは
ウインドウ非表示+タスクトレイにアイコン表示 状態のことだから。
ウインドウ表示/非表示で終了メッセージが変わることは無いから。
>>285 まずMSDNを「拡張モデルのオブジェクトと構造」で検索。
そこの「拡張モデルのオブジェクト」と「コードを操作できるオブジェクト」
の各項目に目を通す。
オブジェクトの階層をVBE→VBProject→VBComponent→CodeModuleと下っていって
Memberオブジェクトのとこに目的に適いそうなメソッドがあるな。
TypeプロパティとScopeプロパティとかいうの。
CodeModuleのMembersコレクションをFor eachか何かで一個ずつ調べて
Typeがvbext_MemberType型のどの値を取るかで変数か関数か判別できるし、
Scope(これはvbext_Scope型)の値でPublicかPrivateかFriendかがわかる。
ただし関数内の変数は取得できないようだな。
関数全体のコードは取得できそうなので検索と文字列操作を何とかすれば
できなくもなさそうだが。
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
逃走中の犯人292を警官293が追い詰めました。(w
>>292 access97のmdbファイルをAccess2000でインポートすれば官僚
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では特別なやりかたをしないといけないのでしょうか?
>>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()じゃ駄目かのう?
>>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を使ってオープン&表示したいのですが…。
>>313 TExT1.tEXt=WOrKSPaceS(0).oPendaTaBASe("hoge.mdb").OpeNRecoRDSet("SelECt nULlpo FRom gA").FIeldS(0).vALUe
>311 データベースを開く。...Database.Open テーブルを開く...OpenRecordset テキストボックスに表示する...Textプロパティ あとは自分でHelpりなさい。
>316 ワロタ!ここは通信教育講座か。
319 :
デフォルトの名無しさん :03/06/24 19:24
すごく基本的な質問ですみません。 文字列に「"」を追加するにはどうすればいいでしょうか? SQLでFormat関数を使いたいのですが、「"」が記述できなくて困っています。
>>319 SQL = """"""""""""""""""""""""""""""
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 モデムのほうはしらんが、電話の声をマイク入力に繋げて解析すれば?
UserControlがイーパイできたのだが、まとめるのって どうやる?
>>328 サンクスです。
波長かぁ。。。がむばってみるYO。
>>327 俺 も お 前 も 必 死 で す
331 :
デフォルトの名無しさん :03/06/25 18:26
TabStop を False にしたピクチャボックスをクリックする際に MouseUp で直前までフォーカスを持っていたコントロールへフォーカスを戻したいのだが フックしたり他のコントロールの GotFocus 時に値を保持する記述をしたり ラベルコントロール等で代用する以外でよい方法があれば教えてくれ
>>323 >
>>322 > Implements は、VB6 にある機能です。
すまんあったな。
SDKののみと恐竜の例を実験してみたら上手く行った。
結構高度なことができるんだ。
無料で使用できるC++のコンパイラはありますか?
>>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で括られた中身をコピペすることになります。 このままではメンテナンス性に欠けたクラス設計になってしまいますが、この問題を 解消する方法はあるのでしょうか。アドバイスいただけると助かります。
344 :
デフォルトの名無しさん :03/06/26 16:53
複数のコントロールを配置したユーザーコントロール一つだけだと Tab キーでのフォーカス移動でループしないのだが解決法は?
>>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 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イベントかなんかでいいんでない?
しらんけど
>>347 つまりコーディングせにゃアカンってことか...
356 :
デフォルトの名無しさん :03/06/27 08:48
メモリ上でのみ圧縮解凍を行いたい 具体的には文字列を圧縮してバイナリデータを返すのとその逆 方法を紹介してくれ
>>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 "モーダル" あたりがキーワードじゃないかな?
ヒャッホウ
スレ違いをしてしまったのでこちらに同じことを書かせて下さい。 strRet = InputBox("題名","新規ファイルの作成","無題") などとして入力を求める際に、 最初から入力モードが日本語になっているようにしたいのですが、 どうやったらできますか?
>>359 Set文でContainerにフレームを入れよう
Load text(1)
set text(1).Container=frame(2)
>>363 InputBoxに似せたものを自分でつくればいい。一番手っ取り早い。
>>240 解決したのかな。
QueryUnloadで、終了までにやるべき処理をやればいいのでは。
ただ、アプリケーションの終了までに、一定時間かかった場合、OSから強制終了される。
仮にアプリケーションが終了を拒否できたとしても、
その他のアプリケーションが終了すればOSは機能しないわけだから、
素直に終了されるしかない。
強制終了までの時間に処理できないなら、
強制終了までの待ち時間を長くしてやる必要がある。
この対策は、終了時にログを吐くサービスアプリケーションなどで意識する必要がある。
設定はレジストリだけど、どこだったかは失念。
"実行時エラー '380': プロパティの値が不正です。" このエラーがどの行で起こっているか(デザイン時ではなく)実行時に表示させるにはどうすればいいのでしょうか 開発マシンだとエラーは出ないのに、 違うマシンで実行するとこのエラーが起こってしまうので。 VB6.0です
Erl
>307 ログ吐きクラスでも作っておいて、地道に探すしか無いでしょう。
>>357 ,358
要するに馬鹿(356-358)には、出来ないってことですね?
>>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を返します。
>>375 QueryUnloadでCancel=Trueにするんじゃなくて、
そこで終了処理をやってしまうのはどう?ってことなんだけど。
あぼーん
>>375 ウィンドウ非表示にするだけで済む話しじゃないの?
タスクトレイに入れる方法は知らないけど、1つのexeで難しいならタスクトレイ用にもう1つ作ればいいだけかと。
>>377 ああすみません。
いや、QueryUnloadで終了処理をする・・・というのは目的達成ではないのです。
理由は既に書いてます・・。
>>379 その手もありますね。考えてみます。
>>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以外のブラウザ(とか)を使ってアクセスされたら?
>>385 それも考えて、専用のブラウザを作ろうかとも考えたけど、利便性を考慮すると
難しかったんですわ。
例えキャプチャを防いでも紙とペンで書き写されたらお仕舞いだし…。
それに、社内にはそれほど悪知恵の働く人はいないから大丈夫だと思われw
>>381 仕様に問題ありというが、ならあなたならどういう仕様にする?
なんか問題がある→仕様が無理だと言う。
で止まったらなにも解決しないよ。
最終目的は解決。解決を無視して問題だと言うだけなら簡単。
>384 技術的な事は判らんけど、専用ビューワ作った方がすんなり行きそうな気がする。 自分がそうなんだけど、メニュー使ってファイル保存するよりマウスで選択範囲をドラッグしてOutlookなんかにドロップってのを良くやる。後、Ctrl+C, Ctrl+Vもね。 って事で。
389 :
デフォルトの名無しさん :03/06/30 12:48
あ い う え お 上のようなテキストがあるとして 「い」 と 「え」 だけを読み込むにはどうしたらいいですか?
>>388 専用ビューワーはやっぱり難しいかな。なにせ、自分でソフトのインストールも出来ない
人たちだからね。他の方法を考えてみるよ。
>>390 なかなか参考になりそうなサイトを教えてくれてありがと。ちょっち調べてみます。
393 :
デフォルトの名無しさん :03/06/30 13:53
>389 とってもすてきな質問ですね。
>>389 全部読んで「い」と「え」だけ使ったらいい
395 :
デフォルトの名無しさん :03/06/30 14:16
>>394 全部読めるんだが、行の選び方が恐ろしく分からない
説明が足りなかったですね・・・すいません 2chの縦読みの要領なんです
>>396 一行ずつ読んで最初の文字だけ使ったらいい
釣
プゲラ
402 :
デフォルトの名無しさん :03/06/30 20:08
VBからB4横で打つ帳票を ある時はレーザープリンタ ある時はラインプリンタ で打ちたい。 レーザープリンタの場合は問題ないのだが、 その設定でラインプリンタで打つと 右に90度回転した形で出てしまう。 (印刷内容の左側が上、右側が下みたいに) こういう場合、どう制御したらいいんでしょ? (簡潔な回答難しいと思うので、取りあえずそんな経験ある人いたらレスきぼんぬ)
403 :
デフォルトの名無しさん :03/06/30 20:43
>>387 君が言ってることは正しい。ただし、それは開発の責任者に対しては。ここは
単なる掲示板で、たんにヒントを述べるだけでも全然問題ない。結局、あんたも
何も言ってないだろ?
>>403 > たんにヒントを述べるだけでも全然問題ない。
あなたが言っているのは解決のヒントではない。
単に批判しているだけ。どこがどう悪いかも言わない。
何で悪いかも言わない。どうすればいいかも言わない。
そんな信頼性にかける言い方じゃ、誰も信用しない。
子供の戯言と同じ。
> 結局、あんたも 何も言ってないだろ?
私はあなたに対して言っている。
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
よろしくお願いします。
>>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で質問しちゃうお前。
424 :
daidai :03/07/01 23:32
VBでAVI形式動画の全フレームをBMP形式の静止画にすることってできますか?どうすれば出来るのか教えてください。
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といった感じで重み付けをして計算すればいいよ。
>>440 こんなんがあるのですね
ありがとうございます
でも戻り値からさらに上位ワードを取り出さないとならないようで
443 :
デフォルトの名無しさん :03/07/02 14:51
>>442 エンディアンを変換したいんじゃないのか?
444 :
デフォルトの名無しさん :03/07/02 14:51
バイトオーダーというべきか・・・
>>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
を初期化ルーチンに挿入.あとは使いたい時にこの配列を
使うだけ。
>>440 んあ!ntohsとかhtonsとかあるんですね
もっとよく調べるべきでした
すみません
>>445 よかよさげです
>>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です。
>>439 ごめんなさい、質問の仕方がヘタでした
バイナリエディタもどきを作っているのですが、doubleの値を16進数で
表示したり戻したりしたいのですが、何かいい方法は無いでしょうか?
>>451 あなたはバイナリが何かわかっていないと思います
451はVBから始めてVB以外知らない。に関数3つ
454は何も知らない。に関数5つ
454はC++信者に関数5つ
なんか荒れてるし・・・ HEX関数だと小数点以下が四捨五入されますよね そのまま16進数にする方法って無いのでしょうか?
>>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
>>459 なるほど、バイト単位で変換するのですね
ありがとうございました、やってみます
アテー マクルト ベゲブラー ベゲドゥラー
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以前の違いは?
レスありがとうございます。 >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
ユーザーコントロールで 分割ペインのようなコンテナを作れますか?
ナルホド・・・。 全く別の物と考えてもいいくらいですか 初心者でスマソ なんかプログラムやりたいなぁ~とか思ってたんですが Cから始める事にします・・・。
473 :
デフォルトの名無しさん :03/07/03 10:40
WIOSOCKの通信プログラムでクライアントがデータを送ると、それに反応してサーバがデータを送り返すということをしているんですが クライアントがプロシージャを抜けて、DATAARRIVALイベントを処理できるようになる前に、データが返ってきてしまい、うまくいきません。サーバーがデータを送る前に負荷を与えればよいのかもしれませんが、よい方法ありませんか? DO EVENTSを使おうにも、関数が関数を呼ぶようなプログラムになっておりどこにどう置けばよいか分かりません。 SENDCOMPRETEとか上手に使えば良いんですかね? ご教授願います。
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も使えるよ。
>>482 コピーして出力結果を持っていかれないようにしたいのではなく、
貼り付けで変な値を入力されるのを防ぎたいのです。
>484 不正データ入力を防ぎたいってんなら、しっかりと入力チェックしてやればいいだけの話じゃ? 標準から外れた事をすると、色々とめんどくさいよ。
>>485 キー入力のほうは、KeyDownイベントつかって入力規制してますが、
コピペで貼り付けられた時の入力チェックが複雑そうだったので、
いっそのこと、テキストボックスにキーボード以外の入力を
許可しないようにしたほうが簡単かと思いまして…
487 :
デフォルトの名無しさん :03/07/03 16:14
>>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値に置き換えて しまっているのだと思いますが。 こんな場合の処理速度アップのためのテクニックありますでしょうか?
>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イベントを待つというのでも可能なのでしょうか?(自分で試せと言われそうですが、今ちょっとワケありで試せないんです) おねがいします。
イライラ
>>486 Changeイベントでがんばれ。
キャレット位置を調整しながら不正文字を排除する。これ最強。
>>497 この場合のValidateは所詮妥協案。
>500 どうでしょうね。可能だとは思いますが、それでは最初の状態に 逆戻りとなりそうなヨカーンもします。 DataArrivalイベントプロシージャに移行するのではなく、イベント 発生で何らかのフラグを立て、それをDoループを抜ける条件に する、というのなら有りかもしれません。
505 :
デフォルトの名無しさん :03/07/04 12:25
プログラムが非アクティブな時(他のアプリや別Window開いている時)に 押されたキーをそのプログラムに読み込ませてイベントを起こしたいのですが どのような方法があるのでしょうか? よろしければ教えてください いまいち判りにくい質問でごめんなさい。 なお製作はVB6.0です
506 :
デフォルトの名無しさん :03/07/04 12:36
>505 俺はDirectXを使う。 たぶんAPIでもできたとおもう。
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渡された上に
初心者なんです。
すいません。
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はライセンス違反。
自己レスです VSのCDから直接SETUP.exeを実行して再インスコしたら設定まで引き継いでOKでした。 突然試用版になって焦っちゃいました、スレ汚しスンマソです。
518 :
デフォルトの名無しさん :03/07/04 16:27
>>516 そうなんですけど、
ライセンス違反なのは重々承知の上なんですけど。
ないんです。
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 あ、すみません。プログラムグループの選択というのは、
インストール時のことです。ここまでは大丈夫なんですが、
その次にファイルをどやどやとコピーし始めるところで止まります。
ここでインストールが続かなくなってしまうので、ショートカットは
登録されていません。
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 という風にしました。知り合いに教えてもらいながらやったので自分もあまり理解できてない状態です。 どなたか教えていただけないでしょうか?
527 :
デフォルトの名無しさん :03/07/04 21:09
>>525 それの何がわからんのか言ってくれんことには説明のしようもない。
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って恰好悪い
すいません。なんとなくBoruが良かったもんで
>>529 横って考えるからわかんなくなるのかな?
上下左右4つを、ひとつずつゆっくり考えてみれ
top,height,left,widthがなんなのか分かってるんだろ?
>>532 はい。一応わかってるつもりですが525のレスでも書いた通り教えてもらいながらやったものでして・・・。
>>520 (524)
その現象はどっかで聞いたが何が原因か忘れた。
ソース付きのやつをデバッグモードで動かせば判るんじゃないか?
判ったら報告ヨロシコ。
>>520 ユーザー名が日本語だとそのエラーが出た気がするが
>>533 あの程度なら一から自分で考えたほうが早い。
そうすると最終的にあの形になる。
無事出来そうです。がんばります どうもお世話になりました
539 :
デフォルトの名無しさん :03/07/05 11:17
>>534-536 皆さんありがとうございます。
536の内容でビンゴでした。お世話になりましたm(__)m。
ユーザ名に日本語使うやつは逝ってよし
再び行き詰まりました。。。自分のスキルの無さに憂鬱 Hotkeyを使ってキーを読ませることは出来たのですが 複数やろうとすると強制終了状態(泣 Hotkeyって複数割り当てることは可能ですよね? またそれを行う為の参考例など教えていただけると助かります。 こんな質問ばかりで失礼 自分でも頑張ってみますが、よろしければお願いします
自己解決できました。板汚しすみませんでした
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
550 :
VB初心者 :03/07/06 12:59
VBで通信プログラムの勉強をしています。 TCP/IPで単純なチャットプログラムを作成しましたが、 サーバは1つのクライアントからの接続しか受付ません。 複数のクライアントからの要求をAcceptするためには、 どのような実装形態が考えられるのでしょうか? たとえば、複数のクライアントからの接続を受け付けるサーバを UNIXで作る時には、fork();を使ってマルチプロセスにしますが、 VBで、似たようなことができるなら教えてください。 よろしくお願いします。
>550 CreateThreadで新しいスレッドを、、、 嘘です。 Internetコントロールを使いました? だったら、8つくらいコントロールを配置して何とかしてください。 WinsockAPIを使ってるなら、素直にVCで作ってください。
>>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"); } } } }
コピペ荒らしみたいだね。
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すら使えないの。
>>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なんてわざわざ扱えません。
一カ所ミステイク > if ( (i%9)==0 ) { もとい > if ( (i%9)==8 ) {
wchar_t a=L'〇',b=L'●';
だから何でここでCやんの? C言語よりも日本語勉強しろ。
VBは死滅したから
>>576 死滅したかどうか知らんが使ってる奴は実際にいる。
その人の迷惑になるって考えられないのか?
荒らしている奴に言うのが筋だろ。馬鹿?
馬鹿はVB厨では。
581 :
デフォルトの名無しさん :03/07/07 21:14
VBで配列のなかに配列を格納することってできますか?
>>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で返り、$をつけると文字列で変える。
関数によっては$無しはNullが返って$ありだと空文字を返すものもある。
具体的な仕様はMSDNを見るべし。
>>586 ただの粘着だ。放置しろ。つーかC厨ウザイって言われるだけなのにな。
>>585 $ つけないと、Variant 型の関数になるから、微妙に遅くなると思う。
あと、型が違っててもコンパイルエラーにならないじゃないかな ?
今手元に処理系がないから、試せないけど...。
>584 DirListBoxコントロールとFileListBoxコントロールの話か? FileSystemObjectかDir()関数で、とってくればいいんじゃないの? ちなみにDir()関数で再起させるとエラーが起きるらしいので、 配列かCollectionにでもぶち込んどけ。
>590 = Replace(>590, "再起", "再帰")
592 :
デフォルトの名無しさん :03/07/07 21:49
VBでCGIスクリプトを書きたいです。 手引きとなるサイトを教えてください。
くそ、>587-589 もケコーンだったし。みんな暇だね。 でも>592 は「CGI」ではなくて、「ASP」をやりたいと見た。
みなさんありがとうございました。
参考にしてみます。
>>597 いえ、ASPではなくCGIがいいんです。
>598 奇特な人だ、VBは標準入出力も、URLEnc/Decもサポートされとらんし、 漢字コードの変換もうざいし、、、 ASPかPerlかPHPが楽だと思う。
でも普通のプロバイダじゃネイティブアプリを実行できるのって 少ないし、できてもマシンはUnix系じゃない? 自分や会社のマシンならASPの方がいいかもしれない。
参考までに言っておくとASPでもサーバーサイドでVBScriptを使える。 クライアント(ブラウザなど)がVBScriptに対応している必要はないし、 CGIと同じような感じ(もっと便利)に使える。
>>599 でも考え方によってはそれだけって気もするね。
そこらへん探せばソースやライブラリはすぐ見つかるわけだし。
>561 > そのデータグリッドはコントロール配列になってて、存在しない配列番号のものを渡している もしやそれか、と思い確認してみたのですが、存在しない配列番号のものを渡していることは ありませんでした。ADOでのレコードセットのオープンにも問題なく成功しており、もう何がなにやら、 という状態になってしまいました。 ああもう何が悪いんだか(涙
自分で作ったプログラムをサービス化させたいのですが、 容易にできるもんなんでしょうか? なかなか情報が無くて、、、。 ちなみに、exeファイルを無理やりサ-ビス化させるソフトでは うまくうごかんようです。。
>>603 なんにせよ、エラーコードから推測するとエラーが発生してるのはADOまわりじゃない気が
する
>>604 リソキのツールを使ってだめなら、グレープシティから出てるツールを使う
って手もあるね。
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
614 :
デフォルトの名無しさん :03/07/08 14:09
age
>572 AT限定免許の人の言い訳みたい。
>>615 VBはマニュアル車と申すか・・・
そう言い切れるならかっこいいね。ある意味。
とりあえずGTK使って見ろ。
>616 >VBはマニュアル車 ちがいまふ。 「自分がそれを使えない」という事を謙虚に受け止める事をせず 屁理屈をこねくりまわすあたりが、って意味。
VB6で、計算式を内蔵したエクセルみたいなインタフェイスで作りたいんですけど、表計算部分はどう出せばいいのでしょうか?
619 :
デフォルトの名無しさん :03/07/08 17:06
ちょっと質問させてください。 オラクルのDBにODBC(ADO)で接続しているんですが、 レコードセットでデータ抽出後、そいつを解放しても、 しばらくの間、セッションが残ってしまいます。 回避策ありませんか?
620 :
デフォルトの名無しさん :03/07/08 17:09
>>617 実際に使ったことあるし。
屁理屈?
んで、あんたは、GTKとかやったことあるのか?
>>617 = 目糞
>>621 = 鼻糞
両方ティッシュに包まれてゴミ箱の中でシコティッシュに紛れて終わり
623 :
デフォルトの名無しさん :03/07/08 18:47
質問です。 SQLサーバとVB6.0で開発してます。 開発をしていて一時保存テーブルが必要になったのですが、 一時保存テーブルとしてみなさんはmdbを使用されているのでしょうか?
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サーバーは接続したクライアントごとに
独立した一時テーブルが作れたはず。
>>629 規模にもよるけど基本的にはトラフィックは少ないほうがいいんじゃない?
632 :
デフォルトの名無しさん :03/07/08 20:08
Form1上のすべてのコントロールに発生するKEYPRESSイベントをForm1_keypressDa に集めたいのですが、この場合、 すべてのコントロールのメッセージをフックして、PostMessageを行う方法が あるとおもいますが、こまごましたコントロールがかなりあり面倒です。 なにか良い方法はないでしょうか?
>>632 一般的にはKeyPreviewをTrueにする。
あとはSetWindowsHookExを使ってキーボードをフックするとか。
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 いろいろありがとうございます。そうですね出来れば
テーブルに保存するのではなく、メモリーで全て出来れば
一番いいのですが、以前こちらで質問したときに
結構難しいと聞いたのでやめました。構造体の配列を
一時保存テーブルの代わりに使用したり出来るのでしょうか?
>>633 > 一般的にはKeyPreviewをTrueにする。
アリガト。やってみます。
どなたか教えて下さい。 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?等は買えません。 よろしくお願いいたします。
>>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=モビルスーツじゃないからな。念のため。
顔がキモイやつばっかいそうだな このスレは
664 :
デフォルトの名無しさん :03/07/09 21:07
>>650 簡単に書くと、
MDIフォームにPictureboxを配置します。
そのPictureboxに必要なコントロ-ルを配置します。
スクロールバーを配置します。
スクロールバーをクリックしたときに、
PictureBoxのtop・leftプロパティを変更するコードを書けば全体が表示できます。
665 :
デフォルトの名無しさん :03/07/09 22:10
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データベースではないので 削除できないと言われます。
673 :
デフォルトの名無しさん :03/07/10 13:56
>670 yareyare
>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
厨房な質問でスマソ ボタンでファイルリストから選んだファイルをテクストボックスに入れた名前にリネームしたいのでふが やりかたがまったくわかりませんウワァァ。'(゚´□`)゚'。ァン 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オブジェクトか?
終了するとき必ずunload meをやっているにもかかわらず、 次にこのフォームを立ち上げると 「すでにフォームは表示されています。モーダルにできません」 というエラー表示がでてとまる。 フォームはUNLOADされているのに、なぜだかさっぱり分からん。 VBのプロジェクトの中のフォームの場合、スレッドに なるのだろうか? このフォームの生成や消滅を探索したいのだが、 どうやったらいいのだろう。
テキストボックスを透過させたいんだがどうすれば・・・・
691 :
デフォルトの名無しさん :03/07/10 23:01
>>688 エラーが出る部分とUnloadしてる部分のコードを晒せ
>>687 ファイルリストボックスでつ。
おながいしまつ_| ̄|○lll
>>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
>>689 >
>>688 > formsコレクション参照
? forms(3).name
frmFontEdit
エラーしたところで、Directmodeで?するとやっぱりし
のこってる。
あちこち、とめてやってみま。
>>695 過去ログにあるから誰も答えないんだろう。
>>695 If KeyAscii = Asc(".") And InStr(Text1, ".") Then
>>690 Visible=False これで背景がばっちり見える。
>698 ありがとうございます。690です。 オブジェクトはなにをしていしたら・・・・
>700 690です。透過はテキストボックスの透過です。
根性あるならオーナードロー
くだらない質問で申し訳ないのですが、Winsockコントロールについて いくつか質問があります。 WinsockコントロールでGedtadaする時はデータを送って来た側が すでに接続を切ってしまっているとだめなのですか? あと、ソケットをクローズしないまま、アプリを終了してしまうと、そこの ポートは使用不可になってしまうのでしょうか? 通信プログラムの作成中に生き詰まっています。他になにか注意した 方がいい、また俺もこんなので引っかかったみたいなことがあったら合 わせて教えて頂きたいです。 教えて房ですいませんがおねがいします。
? Val("壱") 0 何故ですか?
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に対しての記述はたい
して役に立たない情報ばかりだし、質問の内容についても触れられて
いません。
それに、試したんですけど、よくわからなかったんです。
言い訳みたいになりましたけど、そういうことだと理解してください。
追記 xpで確認してみましたが 40GBでエラーは発生しませんでした。 2K pro 40GBで 3台 エラーです。2K pro 10GB は問題ありません。 試しに m=subf.size/1048576で試してエラーがでるので、推測ですが 大容量は xxx.size で拾えないかも知れません。 代替案も含めてご教授下さい。
ちょっとプログラムやってみたいだけーの人は 質問してはいかんの?
>707 処理を分けて、どこでエラーが出てるのか確認したら? Dim SubFolderSize SubFolderSize = subf.size MegaByteSize = SubFolderSize / 1048576 '1024 * 1024
>>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
727 :
名無し@沢村 :03/07/13 00:11
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
>720 バッチ作ってスタートアップに放り込んどけ。 [Netuse.bat] NET USE R: \\SERVER\SHARE /PERSISTENT:NO
>>722 hoge.scr /c
を実行すればいいと記憶していたんだけど、うまくいなかい(汗
Windows 9x系のCPU使用率は、定期的にレジストリを見るしかない。
>>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
VB使ってる癖に得意げな顔してんじゃネーよ
>>739 VBですら使いこなせないんですか?哀れですね。
>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 ファイル名を指定して実行>regedit
VBのプログラムをDistributionして、実行したときタスクバーに 表示されないのですが、タスクバーに表示するようにするには どうするのでしょ。
753 :
デフォルトの名無しさん :03/07/14 14:05
>>752 Distributionの意味がわからん。
>>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 って順番に出力したいだけなのですが。 どなたかご存知ないですか?
↑ ああ間違えたすみません。 MSComm1.output = Chr$(H2) & "HOGE" & Chr$(H3) です。他の言語も同時進行なので、頭の中がワケワカランです。
>759 CHR$のヘルプ読んだ? >指定した文字コードに対応する文字を示す文字列型 (String) の値を返します。 なんだけど。
スクロールバーをドラックしてる途中も 内容を表示したいです、どのイベントを拾えばいいのでしょうか
>>759 Chr$(H2)
これ Chr$(&H2) の間違いじゃないの?
VBだからという訳じゃなく、Windowsで制御コードをそのまま 画面に出すのは不可能じゃなかったっけか~。 うちはいちいち変換ツール解して<STX>とか表示させてるよ。 ちょっち遅くなるけど、デバッグする際はこっちのほうが便利だからね。
>>761 V, HScrollBar なら Scrollイベント
>>760 >>762 ありがとうー。俺がバカでした。
Chr$(&H2) でいけました・・・
納品終わったら回線切って首つって逝(ry
>>765 直ちに、「変数の宣言を強制する」にチェックしる!!!
>>759 > MSComm1.output = Chr$(H2) & "HOGE" & Chr$(H3)
MSComm1はバイナリ-転送はサーポート外のはず。APIを直接アクセスすべき
ではないだろうか?
ところで、上記752の質問を別の言い方で質問すると、
「
VBで作ったプログラムを、Excelみたいにプログラムを実行したら、タスクバーに
アイコンとプログラム名を表示するにはどうしたら良い?
」
なのだが、よろしく。
>767 フォームを作って「ShowTaskBar」をTrueにしる
もとい。 「ShowInTaskBar」ね。 デフォ値がTrueだからいいんだけど。
MsCommでバイナリ転送できるよ。 少なくともバイナリ受信はやったことあるもん
連結してるレコードセットが読み取り専用とか言うオチか?
>>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
>>779 ご指摘ありがとうございます。
おっしゃるとおり、サイズの変更をさせなくする方法です。
フォームのプロパティぐらい隅から隅まで見ろ
>>781 一応一通り眺めては見たのですが…
ヒント程度いただけないでしょうか?
>782 BorderStyle
適切な手段を自分で見つけられないひとの多くは、用語を適切に使えないんだよな。 少なくとも、用語を適切に使えるひとは、適切な用語で検索をかけられるから、 解答に行き着ける可能性が高い。 普段から、適切な用語を使おうと努力することは、プログラミング技術の向上になる。 どう表現するのが一般的か、どう表現するのが標準的か、どう表現するのがわかりやすいか、 どう表現するのが適切か、どう表現するのが安全か、どう表現するかがプログラミングだ。
>782 >783、もしくはサイズ変更のイベントのたびにそれを無効にする、とか。 ここまで書けば解るっしょ。
VBからXP Pro SP1の電源をきりたいんですけどどうすればいいでしょうか 試したことは Shell "shutdown -t -s 0" 電源を切れる状態にするまでしかいかない ExitWindowsEx 反応なし shell "c:\windows\system32\shutdown" 反応なし でした
>>769 > もとい。
> 「ShowInTaskBar」ね。
> デフォ値がTrueだからいいんだけど。
これはTRUEになってた。 でもだめ。でない。
なぜだ。
>>783 遅レスすみません
レスありがとうございました。
アホな質問ですみません。 例えばデスクトップ上で複数のファイル等をマウスで選択する時に 選択されたファイルは反転しますよね。 これをPictureBox内で実現するマウスイベント(?)とかありますか? PictureBoxに画像を貼り付けて、画像のどこを選択したかがわかるように したいんです。 よろしくお願いします。
>>789 モジュールからフォームを表示していたりするとだめ。あとは、ボーダースタイルとか。
タスクバーにボタンを出すためには、いくつか条件がある。
>>791 MouseDownでフラグを立てて、MouseMoveで矩形を描画、MouseUpで大きさ確定。
つまり、自分ですべてやらなくちゃだめ。
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
>>792 あ、やっぱりそうなんですか?
windowsの基本的な機能だから簡単にできると思ったけど・・・
ありがとうございました
796 :
デフォルトの名無しさん :03/07/15 14:01
20万行ほどあるテキストファイルを処理したいのですが、 どのようにして読み込めばいいのでしょうか? 定石テクニック等ありましたらご教授くださいm(_ _)m
>>796 どんな処理がしたいのかどれくらいのファイルサイズなのか固定長なのか可変長なのかどんなファイルフォーマットなのかDBにしていいのかわるいのか。
>>797 レスありがとうございます。
Webサイトのアクセス解析用にためているログなのですが、
20030601002400 host IP RequestURL U.A. ja 1024/768/16
フォーマットは上記のような感じで、半角スペース区切りになっています。
約20万行で、ファイルサイズは約40MBです。
このログをいろんな角度から解析するツールを作りたいのですが、
最初の最初でつまずいてしまいまして・・・。
よろしくお願いします。
>798 確かに角度は重要だな
>>798 その、どんな解析なのかがわからんので答え辛いが、
Accessなどのデータベースにつっこみゃ終わる気がするのは俺だけか?
>>800 お恥ずかしいのですが、DBの知識は皆無でして・・・。
まず「いろんな角度」が何なのかを決めろって。 それも決まらんうちからどう読むのかを考えても意味無いだろうが。
>>802 アドバイスありがとうございます。
とりあえず、日別でトップページへのアクセス回数を表示したいなぁと。
>>803 アクセスにでもブチ込め
どうしてもVBでってんならmdbにSQL文を発行してやれ
日別だろうがIP別だろうがUA別だろうが、持っているデータに対しては何とでもなる
>>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 趣味で軽くやってるだけかもしれんし、いいじゃん別に。
おまえらその程度か・・・
つーか、どの分野にでも初心者はいるわけで いちいち初心者を見つけてねちねちといじめるってのは 人間としてどうかと思うね。嫌われまっせ。
818 :
デフォルトの名無しさん :03/07/15 23:35
おまいら、ADO使う時、山椒設定に ActiveX Data Objects Recordset 2.x 入れてる?
819 :
デフォルトの名無しさん :03/07/15 23:39
>>810 MSDNのヘルプみた?コンボのヘルプ
ボタン押してとってきたらどうよ?
ADOとDAOがいつまでたっても混同する
コンピューター日本学院の厨房生徒&香具師集まれ
>810 1.値をコンボボックスに表示する方法 2.選択された値を使用して検索・抽出する方法 3.抽出されたデータを表示する方法 を調べろ。 1から手取り足取り教えてくれっていうならとっとと首吊れ。
>810 は何度かこのスレに書いているが、 課題か何かで、データ連結コントロールを使っているらしい。 VB.Netスレからこっちに誘導したのは俺なのだが、 データ連結は使わないので答えてやれないのだ。 >810 は口下手だが悪い奴じゃないんだ。誰か頼む。
825 :
デフォルトの名無しさん :03/07/16 09:22
810はコピペじゃねーの? こんなに長い間質問するかね MSDN読んで作れよ
>810 VBでデータベースを扱う入門書を嫁。 かならず同じ事例が載っている。 どっちにしろ、現状を説明する事もできず自分で考えようとも しない君をこれ以上助けてくれるヤシは少ないだろう。
827 :
デフォルトの名無しさん :03/07/16 11:53
>>823 さん
ありがとうございます。
助けになってくれようとしたこと
涙が出るほど嬉しかったです。
クエリからもう一度勉強しなおしてみます。
本当にありがとうございました。
初めてかきこさせていただきます。 この中にpowerpointのスライドショー機能を VBのコマンドボタンで制御された方 もしくは制御方法を知っている方は いらっしゃいますでしょうか? powerpointのobject libraryを組み込んで表示までは出来ました。 よろしくお願いします。
すみません ちなみにVB6です。
スレ違いかもしれませんが、知っている方教えてください。 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デザインは糞だって言われないようにしろよ
ある波形のピーク値とその時の時間の値を求めるという プログラムの作り方をご教授願えないでしょうか.
>>836 頭から順にseekしてって、比較値より大きければ比較値を書換え、それ以外はスルー
でいいじゃん
>>838 > 頭から順にseekしてって、比較値より大きければ比較値を書換え、それ以外はスルー
> でいいじゃん
それではだめです。
デジタイズしていますから、サンプルポイントとポイントの間にピークがあるのです。
ですから、サンプル値から波形を予測してそのピークを
求めなければなりません。
なにか良い方法はないでしょうか?
>>841 サンプル値から曲線を予測する場合は普通どの曲線に近似するかを決めると思うんだが。
二次曲線にするとか三次曲線にするとか三角関数で表すとか。。。
波形だから三角関数か?
いったいどんなサンプルよ?
>>842 あの、コンデンサーの一端にパルスをいれ
他端を観測したような波形
いわゆる微分波形なんですが、ピークは振動しています。
振動部分は窓かけて、袖(スカート)部から波形を予測したいのです。
サンプルは20ポイントしかありません。
そのうちピーク部の1割は振動しています。
ピーク部の2割を削って、他の8割から予測です。
とりあえず計算スピードは考慮する必要はありません。
845 :
デフォルトの名無しさん :03/07/17 20:10
初めまして。 ActiveReportで聞きたい事があります。 印刷するときにいま何ページ目を印刷しているみたいなプリンタのダイアログが出るのですが、 そこで1枚しか印刷されていない(プレビュー表示させても1枚)のにも関わらず、 実際の印刷は、その1枚目の印刷ページと、空白の紙が印刷されて出てしまいます。(2枚印刷されてしまう) MAXPageを1に設定しても2枚印刷されてしまいます。 どなたかこの症状の回避方法に思い当たる方はいませんでしょうか? よろしくお願いします。
846 :
デフォルトの名無しさん :03/07/17 20:26
何箇所かのプロットから方程式を求めるのは最小二乗法だろ
>>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されたことを調べることはできるのだろうか? そもそも、このようなやり方は正しいのだろうか?
続く 一般的な Form1.showの終わり方は内部でunload meをするが、 この場合unload が2回になる。 他の方法があるだろうか?
>849 Loadイベントは、「フォーム」がメモリにロードされるときに発生するイベントだよ。 プロパティにアクセスしただけでは、まだLoadイベントは発生しない。 インスタンスが作成された時に発生するイベントはInitialize。 あと、余計な事かもしれんが、フォームモジュール名を直に使うのはどうかと。 フォームをクラスに見立てるならなおさら。 ちゃんとオブジェクト変数宣言して、New使って新しいインスタンスを作った方がいい。 もちろん、いちいちそうやらなくても動くのがVBだが、それに甘えているとドトネトや 他の言語使うときに苦労する。
自己解決できました。 ありがとうございました。
854 :
デフォルトの名無しさん :03/07/18 16:42
フォームを移動したときのイベントハンドラが見つかりません form.top と form.leftの情報を移動したら取得したいのですが どうすればできますか?
856 :
デフォルトの名無しさん :03/07/18 16:57
それじゃないとむりか?
857 :
デフォルトの名無しさん :03/07/18 16:59
>>854 完全を求めるならね。おそらく、移動後(設定によっては移動中も)Paintイベントが
発生するので、そこでチェックするって方法もありかも。
>>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 ’これは必要か?
こんな感じね。
>>852 > インスタンスが作成された時に発生するイベントはInitialize。
Private Sub Command2_Click()
Form2.Top = 0
Form2.Left = 0
End Sub
上をテストすると
プロパティーのアクセスだけでも、Loadイベントが立つぜよ。
みんなサンクス 要はウィンドウの最小化ボタンを押す前のtop.left.widthなどを採取 したいわけです。ウィンドウ再起動時のウィンドウ状態を復元。 最小化時点で閉じられるとtop.leftなどの情報が-48000とかになる。 やっぱり、ウィンドウメッセージを監視するしかないのかもしれません でも、やっぱり面倒です。何かよい方法は、、、
863 :
デフォルトの名無しさん :03/07/19 08:42
ADOで2つのテーブルを連続で更新しています。 たとえば、名簿マスタと資格マスタ、、、という具合に いわゆるトランザクション的なことをしたいのですが ヒントを教えてください。 comitt,rollbackを使いたいわけです ACCESS2000を使ってます
自己レスです BeginTrans、CommitTrans、RollbackTrans メソッド を試験的に使ってますが transの途中でcommittrans3回かけるとして 2回目かけた後でパソコンやOSがクラッシュしたら 更新内容は保存されますか?
No
>>865 サンクス子
擬似的に更新エラーを発生させる命令はありますか?
867 :
デフォルトの名無しさん :03/07/19 10:04
870 :
デフォルトの名無しさん :03/07/19 11:47
VBでも、プログラマって言うのか教えて下さい。 小中学生でもできると聞いたのですが・・
871 :
デフォルトの名無しさん :03/07/19 12:00
5流大出か、もしくはそれ以下の方に多く使われているそうです。
プログラミングすれば、小学生だってプログラマだ。
>>870 もちろんVB使いもプログラマです。
簡単ではありませんが小中学生でプログラミングをしている人もいます。
これはVBだけに限らずC言語などでも同じで、ホビーからプロまで幅広く使われています。
実際私も小学生でBASIC、中学生でC言語とアセンブラを使っていました。
プログラミングにおいて言語なんて些細な違いでしかなく
主となるものは考え方であり、これはどの言語でも共通のものです。
よくVBを煽る人がいますが、煽る人が無知なだけなので気にする必要はありません。
876 :
デフォルトの名無しさん :03/07/19 12:12
>プログラミングにおいて言語なんて些細な違いでしかなく 実際にVBから抜け出せないヤツは沢山いる。 以前、ニュー速でVBスレがあったが、論理演算が何かという事も解ってないヤツが沢山いた。 >主となるものは考え方 VBプログラマは、考え方自体が間違っているのが多すぎ。 優秀なフリーソフトなどを見ても、VBで作られた物は見た事がない。 ・・・以上が、煽られる理由。 VBが煽られるのにはそれなりの理由がある。
> プログラミングにおいて言語なんて些細な違いでしかなく へぇ
>>876 そうやってVBとヘボプログラマをごっちゃにするから馬鹿だといわれるんだよ。
どんな言語にもヘボプログラマや初心者はいる。
もう少し冷静になれ。
VBを嫌う奴は厨房が多い。
880 :
デフォルトの名無しさん :03/07/19 12:21
厨房はVBしか使えない罠
なんか荒らしを招いたみたいですみません。
>>874 参考になりました。
882 :
デフォルトの名無しさん :03/07/19 12:23
884 :
デフォルトの名無しさん :03/07/19 12:24
885 :
デフォルトの名無しさん :03/07/19 12:26
VBしか使えない878必死だな
言い忘れましたが、荒らしは放置してください。
887 :
デフォルトの名無しさん :03/07/19 12:29
おまいら釣られすぎ
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しか使えないから
>892 くだ質へ行って下さい。
898 :
デフォルトの名無しさん :03/07/19 12:45
クソ、その通りだよ!! 漏れは高卒でVBしか使えねーよ!! 以前C言語とか色々やったけどどれも全然解らなかったよ・・・・ でも俺はプログラミングだけじゃなくて営業や広報もできるからな。 これでいいか、プログラムしかできない臭いオタク共が(藁
899 :
デフォルトの名無しさん :03/07/19 12:50
900 :
デフォルトの名無しさん :03/07/19 12:56
<`Д´>900ゲットニダ
まあ、とっつきやすいから厨房が群がってるだけだわな。 そういう漏れはインタープリタとしての利点があるからって割り切って使ってるだけでつ。
VBのアルバイトしませんか? プログラム本数2本で10万円差し上げます。 簡単に仕様を説明すると、 ①webページ上から毎日データを取得する。(平日のみ18:00頃) ②データからある指数を計算する。 ③自分の設定した指数になったら、画面上に何らかの表示をする。 です。 興味のある方はメール下さい。
まぁ、結論としてはVBしかできないヤツが駄目って事で。 他の言語でも同じ事だけどVBから入ったヤツの場合はなかなか 移行できないんだろうな・・
904 :
デフォルトの名無しさん :03/07/19 14:37
まあ、あまり深く考えずにコーディングをはじめてしまえることについては、
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しか使えないヤツを馬鹿にし続けます。 結局仕事で一通り覚えたし、今でも簡単なツールぐらいなら使うけどよぉ。
910 :
デフォルトの名無しさん :03/07/20 02:40
VBプログラマの常套ツバメ返し:VBしかできないヤツ→VBもできないくせに
911 :
デフォルトの名無しさん :03/07/20 03:05
CSAの登場キボンヌ
>>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
929 :
デフォルトの名無しさん :03/07/20 13:24
931 :
デフォルトの名無しさん :03/07/20 15:43
次すれ立てるの早すぎ。
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としたとき、どのような手順で求めれば良いでしょう?
>949 それで済めば良かったんですけどね、あいにく捨ててました(笑 一晩検索しまくって、やっとこ発見。ご迷惑おかけしました
(^^)
953 :
デフォルトの名無しさん :03/08/06 20:57
VBからEXCELのブックがあるかどうかを調べる方法ならわかるのですが、 そのBookの中身のSheetが何が入ってるかを検索する方法がわからないので教えてください。
>>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
マイク等からの録音時にピークメーターを設置したいのですが、 どこから現在の入力音量をとってくればいいかわかりません。 どなたかご存じの方よろしくお願いします。
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
1000げっと
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。