(*´д`*)ウッ… VB初心者質問スレ Part15
1 :
エロチカセブン :
02/09/22 23:54
(゚Д゚≡゚Д゚)
ドピュ
| | \ |  ̄| ̄ \ | _|_ | \ |/|/ / / \  ̄| / ∧ ∧ / ・ / ';, . / '; ./ '; / ;______/ ; / \ / / \ \ /´ |____| | | ///// | | ///// | | .| | | | | | | | '; / / \ \/ .. / ヽ ........:::::::<
VBの小ネタとかTipsとかもOK。前スレ1000は綺麗に終わったね。
とりあえず、スレの最後だったので途中になってしまったみたいなので、 前スレでの質問を答えると同時に、もう一回載せます。 −−−−−−−−−−−−−−−− A,B,C,Dという四つの変数(整数型)を作って、(1 ≦ A, B, C, D ≦ 100 ) それぞれを乱数にして A>=B And A>=C And A>=D And A+B+C+D=100 の条件を満たすA,B,C,Dの値を作りたいのですが Do While A>=B And A>=C And A>=D And A+B+C+D=100 A=int(rnd*100)+1 B=int(rnd*100)+1 C=int(rnd*100)+1 D=int(rnd*100)+1 loop と書くと非常に効率が悪いです。 もっと効率のいいプログラムってあるでしょうか? 私にはどうしてもこれしか思いつきません… −−−−−−−−−−−−−−− 是非とも知恵を貸してください
(*´д`*)アハァ… のほうがよかった
9 :
デフォルトの名無しさん :02/09/23 00:16
Winsockコントロールについて質問があります。 サーバと複数のクライアントとの間でデータのやり取りをしているのですが、 ループなどを使ってサーバから複数のクライアントに一気にデータを送りたい のですが、どのような方法があるでしょう? 例えば、 For i = 0 To 5 Winsock( i ).SendData "test" Next i みたいに書いても、最後のクライアント(5個目)には送られるのですが、 それ以前のクライアントには送られないのです。
前スレ
>>984 977ではないが、VBのCurrency型はかなり癖があるぞ。
VB5では「Int(100@/1@)」がP-Codeでは100,ネイティブでは99になったりする。
(開発環境か実行環境かの判断に使えたりするw)
ちなみにVB6ではどっちも100なんだよな。(まぁ仕様らしいが)
その他にもCurrency型の挙動不審はあったとおもう。(まぁ仕様だろうが)
・Currency型は保存と計算以外には使わない。
・Currency型以外と計算させない。(変換させるときは細心の注意)
・ネイティブできっちり検証する。
ってのがおいらの脳内ルールだな。
(Currencyに限らんがな。ヘルプに書いてあったと思うし)
>>1 そのAAはアハァ…だろ。
文字変える余裕あるならAA変えてみせろ。
>9 Winsock( i ).SendData "test" の後にDoEventsいれたら?
>>7 サンプルを作ってみた。
Private Sub Command1_Click()
Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim D As Integer
Dim n As Integer
Dim datenow As Date
A = Int((100 - 0 + 1) * Rnd() + 0)
B = Int(((100 - A) - 0 + 1) * Rnd() + 0)
C = Int(((100 - (A + B)) - 0 + 1) * Rnd() + 0)
D = 100 - (A + B + C)
datenow = Now()
Debug.Print datenow; "A ="; A
Debug.Print datenow; "B ="; B
Debug.Print datenow; "C ="; C
Debug.Print datenow; "D ="; D
Debug.Print datenow; "A + B + C + D ="; A + B + C + D
End Sub
これじゃだめなのかな?
やべえ、nが意味ないよ・・・ Dim n As Integer を脳内あぼーんして読んでください。 スマソ
前スレの978、984へ >Currency型の変数をFor文の制御変数に使っちゃだめよん。 の理由は、正常にループできない範囲があるから。 214748辺りの値からおかしくなるらしい。(V友より) 以下のコードを試すと暴走します。 Dim i As Currency For i = 214747 To 214748 Debug.Print i Next
前すれ
>>999 > A,B,C,Dが自然数だったら、
> n = 100
> A = int( rnd * ( n - n / 4 -2 )) + n / 4
> B = int( rnd * iif( A >= n / 2 - 1, n - A - 2 , n / 2 - 1 )) + 1
> C = int( rnd * iif(( A + B ) >= n / 2, n - ( A + B ) - 1, n / 2 - 1 )) + 1
> D = n - A - B - C
> かな ?
ダメ。A = 25, B = 1, C = 1, D = 73 とかなるよ。B, C, D の下限値も必要。
A が決まっている時は、n = A + B + C + D ≦ 3A + B だから、n - 3A ≦ B が下限値となる。(もちろん 1 ≦ B も必要だよ。)
同様に、A, B が決まっている時は、n = A + B + C + D ≦ 2A + B + C だから n - 2A - B ≦ C が下限値。
>>12 ( ゚Д゚)お!出来ました。
ありがとうございます。
>>19 >前スレの978、984へ
これ読める?
>16 n = 100 D = int(rnd * (n / 2 - 1)) + 1 C = int(rnd * ( n / 2 - D )) + 1 B = iif((D + C) =< (n + 2)/ 3, int(rnd * (int((n - (D + C))/ 2))) + 1, int(rnd * (n - 2 * (D + C) + 1)) + 1) A = n - D - C - B これでどう? 心配なので50000回ぐらい試してみたけど、一度も例外なしだった。
22 :
デフォルトの名無しさん :02/09/23 11:12
ありがとう。でも、その話題はもういいよ。
24 :
HAIRETU :02/09/23 12:41
dim add(16*32) as byte sub Fget for l=0 to 15 call Lget(l,add(l*32)) next end sub のように配列のN番目を引数にして、addのNからN+31にLgetで値を設定したいのですが Lget(i,add())のように配列全体をわたすのはできますが、 配列の途中を渡すことができません。 Lget(i,add(),i*32)としてインデックスを別に引数として渡すことは できますが、VBではこのような方法しかないのでしょうか?
25 :
デフォルトの名無しさん :02/09/23 12:42
VB上からフォルダに共有をかけるっていうはいったいぜんたいどうすればいいんでしょうか?
>>27 > これは見つけたんだが、NT以上対象らしく、
MSDN では...
Import Library: Use netapi32.lib (Windows NT) or svrapi.lib (Windows 95).
ってなってるから、単に API 定義している Declare 文の Lib オペランドを "svrapi.dll" にするだけじゃないの ?
新山(へろぱ)さんを抱きたい
きしょ。
VBで作ったアプリを、、NT系等のタスクマネージャのアプリケーションの タブの所に表示しない様にするにはどうすれば良いのでしょうか? (プロセスのタブには表示されるが、アプリケーションのタブの、 タスクと状態の表示に、アイコンや実行中、等の表示が無い様に) 例えば、タスクトレイに常駐しているアプリがタスクマネージャに 表示されないのと同じ様にしたいのですが… 色々プロパティやAPIを試してみたのですが、上手くいきません。 どうか宜しくお願いします。
>>28 svrapi.dllに置き換えていろいろ試してるんだけど、全然成功しないです。
SHARE_INFO_2 の構造体の定義が、上のURLとMSDNでは違う気がして
そこの部分を変えたりしてるんですが一向にうまく行く気配を見せないです。
>>32 > SHARE_INFO_2 の構造体の定義が、上のURLとMSDNでは違う気がして
確かに違うね。svrapi.h と lmcons.h では..
#define LM20_NNLEN 12 // LM 2.0 Net name length
#define SHPWLEN 8 // Share password length (bytes)
struct share_info_2 {
char shi2_netname[LM20_NNLEN+1];
char shi2_pad1;
unsigned short shi2_type;
char FAR * shi2_remark;
unsigned short shi2_permissions;
unsigned short shi2_max_uses;
unsigned short shi2_current_uses;
char FAR * shi2_path;
char shi2_passwd[SHPWLEN+1];
char shi2_pad2;
}; /* share_info_2 */
となってる。netname[] なんかは、Unicode か Ansi かよくわからないので、両方試す必要があるかも...。
>>21 > これでどう?
単純に数値を求めるだけなら OK だと思うけど、これでは n = 100 の時に A = B = C = D = 25 とかはでてこなくなるよ。
新山(へろぱ)さんのことを抱かずにはいられない
36 :
デフォルトの名無しさん :02/09/23 18:48
Sin(0)は0 Cos(0)は1をちゃんと返してくれるんだけど ほかの数だと値がおかしくなる 例えばsin(180)は0のはずなのに-0.801152...となる 角度からsin,cosを求めるにはSin,Cosじゃだめなのか? どうしたら求められるか教えてくれる親切な人、教えてください
37 :
デフォルトの名無しさん :02/09/23 18:50
ListViewコントロールで、アイテムを選択した時を検出したいのですがうまくできません。 エクスプローラーみたいに、ファイルを選択すると容量とか表示されるようにしたいです。 もちろん、マウスでドラッグしての複数選択や、Shift,Ctrlキー押しながらの複数選択も検出します。 どうやればよいでしょうか?
>>36 > 例えばsin(180)は0のはずなのに-0.801152...となる
ねぇ、「ラジアン」って言う単位知ってる ?
知らないから聞いてるんですよ、たぶん
>>39 > 知らないから聞いてるんですよ、たぶん
知らないなら調べろ。
42 :
デフォルトの名無しさん :02/09/23 19:02
ここに書き込んで調べてるんですよ、たぶん
「ラジアン」っていう言葉を知らなかったら調べようがないでしょう?
>>43 > 「ラジアン」っていう言葉を知らなかったら調べようがないでしょう?
MSDN 読んだことないの ? Sin 関数の一番下に...
角度の単位を度からラジアンに変換するには、度にπ/180 を掛けます。ラジアンから度に変換するには、ラジアンに 180/πを掛けます。
と書いてある。これでわからないなら、プログラマー辞めたほうがいい。
46 :
nobukiti :02/09/23 19:49
VB6 + Oracle で本社と各拠点をOCNエコノミーの128kbpsで常時接続し 普通のクライアントサーバーシステムを作りたいのですが、問題点等は ありますでしょうか? 本社にOracle Serverを置いて、各拠点からoo4oで繋いでデータの参照、 更新等するつもりです。データ件数的には1000件未満を想定しています。 速度面、パフォーマンス等で遅かったりするのでしょうか? 今までLANでの普通の10Base-Tで使用する事を前提とした開発しか経験した ことがないので、128kbps程度の回線速度だとどうなるかよくわからないのです。 ご面倒でしょうが、お知りの方おられましたらお教え下さい。
47 :
デフォルトの名無しさん :02/09/23 19:51
ADOでMDBにアクセスするVBアプリ作ってマス! 日付型の項目がNULLの場合のSQL文書いてるンですけど WHERE 日付 = ## ではないのですか?
48 :
nobukiti :02/09/23 19:51
答えろオラ
50 :
デフォルトの名無しさん :02/09/23 19:59
>>46 そりゃ、LANよりは遅いけど、気を配って作れば問題なし。
51 :
nobukiti :02/09/23 20:01
>>50 ご返答ありがとうございます。
ちなみに 48は私じゃないです。
そうですか、、、
>気を配って作れば問題なし。
この、気を配ってというところはストアドとかを使って
できるだけネットワーク上のトラフィックを減らした
作り込みが必要という意味ですかね?
ストアドはあまり組んだことがないので不得意なので
どうしようか迷っています。
>47 Is Nullじゃないの?
53 :
nobukiti :02/09/23 20:06
私という戦うバディ♪
54 :
デフォルトの名無しさん :02/09/23 20:15
質問があります。 VBSでGifヘッダーを取得したいのですが、セーフアレイなバイト配列を どうしても文字列にする事が出来ません。 s(0)〜(5)までを6文字の文字列に変換したいのですが。 Set astImage = WScript.CreateObject("ADODB.Stream") Set oFS = WScript.CreateObject("Scripting.FileSystemObject") Const adTypeBinary = 1 astImage.Type = adTypeBinary astImage.Open WScript.CreateObject("WScript.Shell").CurrentDirectory = oFS.GetParentFolderName(WScript.ScriptFullName) astImage.LoadFromFile ".\fileStock\test.gif" Dim s() ReDim s(12) For i = 0 To 12 s(i) = astImage.Read(1) '←これ Next
>>51 もちろんストアドにするのも大事だ。
例えばOO4Oをよく理解してる?
ダイナセットひとつとってもいろいろパラメータあるでしょ?
あれも、最適なものを指定してやるとか。
56 :
nobukiti :02/09/23 20:27
>>55 やはり、色々あるんですねー
パラメーターとか調べてみます。
ありがとうございました
>56は苦労しそう
ぎゃーだめだー。 バックアップはサーバ機のみで取れるという仕様にしよう!
>58 ありがとうございます。 For i = 0 To 12 s(i) = AscB(astImage.Read(1)) Next で、出来るようになりました。
61 :
デフォルトの名無しさん :02/09/23 23:20
NULLで埋めるってどういうことですか? NULLってなんですか?
62 :
デフォルトの名無しさん :02/09/23 23:27
タクスバーのプロパティ「自動的に隠す」を切り替える、VB関数か、 APIを教えてください。見つからないよぅ(つд`)
WINSHELLAPI UINT APIENTRY SHAppBarMessage( DWORD dwMessage, PAPPBARDATA pData ); Parameters ABM_ACTIVATENotifies the system that an appbar has been activated. ABM_GETAUTOHIDEBARRetrieves the handle of the autohide appbar associated with a particular edge of the screen. ABM_GETSTATERetrieves the autohide and always-on-top states of the Windows taskbar. ABM_GETTASKBARPOSRetrieves the bounding rectangle of the Windows taskbar. ABM_NEWRegisters a new appbar and specifies the message identifier that the system should use to send notification messages to the appbar. ABM_QUERYPOSRequests a size and screen position for an appbar. ABM_REMOVEUnregisters an appbar, removing bar from the system's internal list. ABM_SETAUTOHIDEBARRegisters or unregisters an autohide appbar for an edge of the screen. ABM_SETPOSSets the size and screen position of an appbar. ABM_WINDOWPOSCHANGEDNotifies the system when an appbar's position has changed.
64 :
デフォルトの名無しさん :02/09/23 23:56
>>63 キタ━(゚∀゚)━( ゚∀)━( ゚)━( )━( )━(゚ )━(∀゚ )━(゚∀゚)━!!!!!
ありがとうございます。
現在実験中です、AppBarDataがちょと難しいです・・・がんばります。
>>61 その文字列をすべてChr(0)の文字にする、ということだと思われ。
>>63 君の資料は古いと思われ。
>>64 ABM_SETSTATUSを使う。ただし、WinXPでしか効かない。
Win95、98、NT4、2000でダメなことは確認済み。
それ以外の環境だと10個くらいのAPI駆使して、
無理やり設定ダイアログだして「自動的に隠す」を切り替える方法を
取ろうとしていた人もいたがうまくいったかどうかは知らない。
68 :
デフォルトの名無しさん :02/09/24 00:34
>>66 win98です、だめそうですね・・・
あきらめます、ありがとうございました。
VBってさ、メモリリークを 起こすかな? 配列とか 確保しても 解放しなくてもいいよね? 誰か 教えて。
循環参照がだめなんじゃなかったっけか。
VB6のSP5を入れてます。 画面を作るときに、リストボックスの大きさをFORMの大きさにより 変更したいのですが、標準でそのようなコントロールは、あるのでしょうか? 教えてください。
72 :
デフォルトの名無しさん :02/09/24 14:17
>>69 その配列を private で使用しているフォームのunload時に、
set frmXXX = Nothing
とすればそのfrm内の配列は開放される。
逆にこれを入れないとform内の全ての保持値がメモリに残ったままになっているので
(VBアプリを終了するともちろん解放されるが)
保持しておく必要がないなら入れるべきだろう。
73 :
デフォルトの名無しさん :02/09/24 14:18
>>66 WinAPI使うたびに思うんだけど、なんでもっと便利関数にしないのかな。
TaskBarAutoHide(TRUE);
みたいなAPIを用意してくれればいいのに。
追記 フレームみたいに 二つのリストボックスの大きさを調整したいんです。
追記は 71に対してです。
76 :
デフォルトの名無しさん :02/09/24 14:25
77 :
デフォルトの名無しさん :02/09/24 14:51
VB.Netでつくったアプリは、 Win98以下は対応にならないんですか?
>>71 >>74 >>75 何をやりたいのか意味不明です。
>画面を作るときに、
もしやデザイン時に、って事?
>リストボックスの大きさをFORMの大きさにより変更したいのですが、
普通に変更すればいいんじゃ・・・
>標準でそのようなコントロールは、あるのでしょうか?教えてください。
どのようなコントロールかわからないので答えられないです。
>フレームみたいに 二つのリストボックスの大きさを調整したいんです。
フレームもリストボックスもサイズ変更の仕方は同じでは。
80 :
デフォルトの名無しさん :02/09/24 15:42
>>72 >>80 Unload時にNothingを代入しても配列は解放されていませんが何か?
ヒント Main関数のDim〜の行をコメントアウトすると解放されるけどね。
<Module1>
Sub Main()
Dim Form1 As New Form1
Form1.Show vbModal
MsgBox Form1.arraysize
End Sub
<Form1>
Private m_a() As Long
Public Property Get arraysize() As Long
On Error Resume Next
arraysize = UBound(m_a)
End Property
Private Sub Form_Load()
ReDim m_a(100)
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set Form1 = Nothing
End Sub
82 :
デフォルトの名無しさん :02/09/24 16:16
誰か教えてください… マウスの右クリックとctrlキーの使用が禁止されているアプリケーションから、 テキストデータをコピーするプログラムを作成中です。 しかし、上記の禁止事項の為に、クリップボードの中にテキストデータを持ってくることが 出来ません。 コピーを行いたいテキストを反転させる事までは可能です。 使用言語はVB6.0とVC++6。0です。
上記の禁止事項に引っかからずにクリップボードの中にテキストデータを持ってくるような仕組みを作りなされ。
>>79 エクスプローラーとかで フォルダが出てる部分とファイルが出てる部分がありますよね。
そのフォルダのフレームの大きさとファイルのフレームの大きさは、
両方の真中にある区切りで調整できます。
また、エクスプロラー自体の大きさを変えても、
フォルダやファイルの部分の大きさが変わります。
こういうのをやりたいのですが、その真中の区切りみたいなのは
何かコントロールでできないかと いうことです。
>>84 アプリケーションウィザードで、エクスプローラースタイルのを
作ってみてコード見てみ。やってること分かるから。
>>84 真中の区切りというのは左右のコントロールの境い目という事ですね。理解しました。
左のコントロールのWidthプロパティ、右のコントロールのLeft及びWidthプロパティを調節すればOKです。
ちなみに「フレーム」というと通常VB組み込みのフレームコントロールの事を指すと思います。
混同するので
>>74 >>84 のような意味では使わない方がよろしいかと。
87 :
デフォルトの名無しさん :02/09/24 17:10
あぅ
89 :
デフォルトの名無しさん :02/09/24 17:39
Split 関数のデリミタに2個以上の文字を指定する事は可能ですか? 1個ずつ指定した Split 関数を何回か呼ばないとダメかな?
90 :
デフォルトの名無しさん :02/09/24 17:46
誰か教えてちょー。 画像をクリックしたりして移動させたり特定の場所にくると吸い付いたり その他の場所だと元にもどたっりするようなソリティアみたいな感じの・・
>88 教えるもなにも、仕様の問題だから何ともいえないよ・・・ パッと思いつく方法としては、テキストを選択すると、その周辺にコピーボタンが表示されるとか。 Officeみたいな奴ね。
>>91 他のアプリケーションって書いてあるだろ。ちゃんと読んでやれよ。
Shift+Deleteの切り取りを使えるならそれ
>>89 一方の区切り文字をReplaceでもう一方の区切り文字に置き換えてからSplit
>92 取得元が他のアプリだと何か不都合でもあるの? どっかのパッケージで中身が一切さわれません、ってならともかく。
>>94 おおっ! かしこい!
そんなやり方があったんだ。感謝。
>>95 だからどっかのパッケージで中身が一切さわれないんだろ。
98 :
デフォルトの名無しさん :02/09/24 18:57
プロージャ内で Dim str as String などと宣言しておいてからにまったく使用していなければ、 コンパイル時にこの str の領域をわざわざ確保しないようにしてくれますか?
ええと、ctrlキーまたはshiftキーを押下げ、または 右クリックをすると、「そのキーは使えません」、 と言ったメッセージボックスが出るようになっていて、 コピーをすることが出来ません。今のところ、 clipboard.settext screen.activecontroll.seltext でやってみようと思って居るのですけど、このままでは動かないみたいです。 フォーカスがあっていないみたいなのですが、それに関する記述が 必要なのでしょうか?
>>82 = 99
著作者がコピーさせたくないと思ってるであろうものをコピーしようとするのはどうなんでしょう・・・
てのは置いといて、パッと思いつくのは
そのアプリが使用しているデータファイルを直接読み込んでそのアプリの機能も統合したソフトを作る(w
>ええと、ctrlキーまたはshiftキーを押下げ、または >右クリックをすると、「そのキーは使えません」、 >と言ったメッセージボックスが出る そのてのキーを無効にするってんならともかく、いちいちメッセージ出すあたり そのへんの糞シェアウエア並みの仕様だなw
配列はEraceで消すんだよ
× Erace ○ Erase
105 :
デフォルトの名無しさん :02/09/24 20:05
37なんですが。 誰か教えて。。
とっくにみてますよぉ。
>>107 リストボックス特有のイベントになにがあるか言えるか?
それを全部試せ。
>>107 ListView_ItemClickかな。
罠があった気がするけど。
>>81 > Unload時にNothingを代入しても配列は解放されていませんが何か?
ったく、VB 厨はいつまでたっても進歩しないな。
お前が、Form1 の Form_Unload() で代入している、Form1 は Module1 の Form1 じゃねーぞ、ヴァカ。
>>110 わかってるよ。お前は文章も読めないのか? 勝手に三行目を消すな。
>>73 そうするとAPIの数が数十倍に膨れ上がる罠。
>>77 >VB.Netでつくったアプリは、
>Win98以下は対応にならないんですか?
Win98は対応している。Win95が対象外。
116 :
デフォルトの名無しさん :02/09/24 22:47
BorderStyleを可変や固定-実線にすると、 タスクバーに切り替えボタンが表示されますよね? BorderStyleをなしにしてそのボタンを表示させたいのですが、 どうしたらいいでしょうか?
>>111 > わかってるよ。お前は文章も読めないのか? 勝手に三行目を消すな。
真からヴァカだな。大体、VB 厨の
>>81 が Set Form1 = New Form1 なんてことするから、わからなくなるんだよ。
Set FormX = New Form1 とかしてみれ、ヴォケ。
念のために言っとくけど、その下もちゃんと修正するんだぞ。その行だけ変えて、ププッとか書いてくるなよ。
(Form1 の Form_Unlaod の中をどう修正するのかが、楽しみだよ。)
>>117 お前
>>72 読んでないだろ。だから文章読めないって言われるんだ。
>>81 は
>>72 に対する皮肉。わざと問題のある例をだしてるんだよ。
日本語から勉強しなおして来い。
> その行だけ変えて、ププッとか書いてくるなよ。 ( ´,_ゝ`) ププッ
皮肉というより問題定義と言った方がいいな。
> 真からヴァカだな。大体、VB 厨の
>>81 が
仲間割れですか?
123 :
デフォルトの名無しさん :02/09/25 00:07
ていうか、Unload時にちゃんと = Nothing しても、 そのフォーム以外からの参照されるコーディングがあれば = Nothing の記述の時点では実は解放されていないだけ。 他から参照されるコーディングがなければちゃんと解放されてる。 formsコレクションでどういう場合にフォームが残っているか確認してみそ。
UnloadでSet FormX = NothingなんてしなくてもFormsコレクションを含め 参照しているものがなくなればフォーム内の配列なんかは自然と解放される。 自分のフォームがたまたまグローバルなFormXで作成されているときはUnload時に グローバルな参照を解放することによりその時点でフォームが削除されるけど、 自分のフォームがグローバルなFormXじゃない時にグローバルなFormXにNothingを 代入するのは意味ない。むしろ関係ないものをNothingしているからバグといってもいい。 Set FormX = Nothingで万事解決みたいな言い方をするのはよくわかってない奴の言うことさ。
ItemCheckだとそれらしい感じだけど 選択数を増やしていくのは問題ないけど減らしていくときイベントが起きないです。 あと、なんか選択している数分イベントが起きてしまいます。 MouseMoveでやろうとしたら、なんかドラッグしても最初しかイベントが起きなかったです
127 :
デフォルトの名無しさん :02/09/25 02:04
VB.NETについて質問させてください。 .NET FrameworkのCLR上で動作する.NETアプリケーションでは、 VB6.0まではレジストリに記録していたパラメータを「メタデータ」 なるものに記録することで、レジストリの操作が不要になったと本で 読みました。これは、どのような手法によって実現するのでしょうか。 例えば、ウィンドウの位置や大きさなどを、レジストリに頼らずに 起動時などに読み込みたいのです。基本的な記述方法を教えて いただけるとありがたいです。よろしくお願いします。
>>126 とりあえず、Timerと組み合わせて誤魔化せ。漏れはそうした。
Timerはさけたいなぁ
>>129 要はやりたい事がListViewの仕様と合ってないんでしょ。
なら違うコントロール探すか、無ければ作るか、
または他のもので代用するか、やりたい事をある程度妥協するか。
131 :
nobukiti :02/09/25 09:20
画面を常に最前面に表示ってSetWindowPos使うしかないんでしたっけ? プロパティちょちょっといじってできませんでしたっけ?
>>130 補足
B表形式のコントロールを使うに0.7票 Cに0.3票
133 :
nobukiti :02/09/25 09:37
答えろオラ
134 :
nobukiti :02/09/25 09:38
自分で調べろオラ
>>131 何故SetWindowPosじゃダメなの
∧ ∧ /.::ヽ /.:: ヽ /.::: ヽ /.:::: ヽ /.::: ヽ /.:::: ヽ このスレは一体 /.::::::. ヽ,,,,,,,,,,,,,,,,,,,,,,,,,,,/.::::::::. ヽ /.::::::::::: ヽ 何なのですか /.::::::::: / ヽ ヽ /.::::::: / ‐・‐ ‐・‐\ ヽ ヽ.:::::: .:::: / ヽ.::::: .::::: / ヽ.:::: \__/ / ヽ.:::: \/ / \.::::: /
>139 その耳のズレは一体何なのですか?
frm_呼び先.Show 1, frm_次画面 で最前面表示できるべヨ?
自分がつくってるソフトにいつのまにか Microsoft Data Formatting Object Library( MSSTDFMT.DLL) に参照設定がついてしました ランタイムにはこれがはいってないものもあるらしくつかわないで済むなら 使いたくないのですが どのようなものに必要とするのでしょうか? また参照設定をはずしても問題なさそうなのでそのままコンパイルしましたが 環境によって MSSTDFMT.DLL がないとエラーがでて起動しませんでした
前なったことがあるけど普通に切った。なんとも無い。
145 :
nobukiti :02/09/25 13:56
ちんこ
VBで作ったActiveXのDLLなんですが、VBでは使用するとちゃんと DLL内でイベントを発生するんですが、ExcelのVBAで用いると イベントが 発生しません。 どうしてか どなたか わかりますでしょうか?
147 :
デフォルトの名無しさん :02/09/25 14:25
質問させてくださいませ。 chck_cntの値が◆の時点で消えちゃうんだけど、 原因は何なんですかね?こんな現象初めてで、 困ってます。。。 function checkbox() dim iDatLoop dim iDatArray dim chck_cnt chck_cnt = 0 Response.Write chck_cnt▲ iDatArray=session.Contents("GHERLST_Dat") for iDatLoop = 0 to session.Contents("GHERLST_Cnt")-1 if request("ErrSend" & iDatLoop)="1" then iDatArray(iDatLoop,0)=1 chck_cnt = chck_cnt + 1 Response.Write chck_cnt◆ else iDatArray(iDatLoop,0)=0 end if next Response.Write chck_cnt○ session.Contents("GHERLST_Dat")=iDatArray checkbox=chck_cnt end function
取り敢えずLongとか型宣言しろ
ASPなんですが・・・。
「消えちゃう」ってスゲェよ。 次はハトが出そうだなヲイw
>>147 ?さんの登場を待て。
彼ならなんとかしてくれる
ずびばぜん、 フォーム上でExcelのワークシートを表示したいのですが、 どういう方法で実現できるのでしょうか。。 Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open("hogehoge.xls") Set xlSheet = xlBook.Worksheets("Sheet1") xlApp.Visible = True ↑これだと、Excelが起動してシートがひょうじされますが、 そうでなくて、フォーム上にグリッドのように表示したいのです。 全ての値をグリッドに放り込むしかないのでしょうか??
解決しました。 エクセル側での入力ミスでした〜〜 宣言した時に設定したオブジェクト名が 間違えてました。
>>147 消えちゃう、でなくてゼロになるとかNullになるとか具体的に言う癖付けたほうがいいかも。
で、こんな感じになってないかな?
Option Explicit
Dim flg As Boolean
Sub a()
Dim cnt As Long
cnt = 0
If flg = 0 Then
cnt = cnt + 1
b cnt
End If
MsgBox cnt
End Sub
Sub b(cnt As Long)
flg = 1
a
End Sub
>>154 自己解決しますた(*´д`*)
IISの環境にデバッガが導入されてなかったから
見つけ出すのに苦労しました(*´д`*)
session.Contents("GHERLST_Dat")に代入する
変数のRedim時に値の入ってない変数を使ってた(*´д`*)
変えたの誰だよ!って感じです(*´д`*)
ODBC経由(DAO3.6)で AccessのMDBを使用しています。 この時、このMDBに含まれるテーブル名をすべて 取得するには どうしたらいいのでしょうか?
う〜ん、そうか。 実現できないわけはない気がするけど。
ListBoxで リストに加えた文字列がリストボックスから はみ出すほど長い 場合、下に スクロールバーとか出ればいいなと思うのですが、出せないでしょうか? また、このようなコントロールは ありますでしょうか?
>>158 わしが今悩んでるListView使えばいいんでないかいな?
160 :
教えて!! :02/09/25 16:37
ACEESSでフォームを開く時に最大化するモジュールを教えて!!
>>158 SendMessage分かる?
ListBoxに「横スクロールバー表示しろやゴルァ!!」ってSendMessageすれば表示されるよ。
156の続き オラクルで テーブル名を取得する場合、 select * from tab; とかやります。 こういうの ないでしょうか?
ぽん太氏ね
>>162 ADODB.ConnectionとADODB.Recordset を使っては 可能でしょうか?
168 :
デフォルトの名無しさん :02/09/25 17:47
Windows2000とかXPだと、確か英語版のランタイムがインストールされていましたよね? ときどき文字化けしますってメールとかくるので、英語版のランタイムが入っていたら 「日本語版にしろやゴルァ」ってメッセージをだしたいのですが、 どうやったら判断できるでしょうか? 表示先ですけど、MsgBoxなら化けないですよね?
169 :
デフォルトの名無しさん :02/09/25 18:06
教えてください。 フレキシブルグリッドコントロールってMAX何行まで逝けるんですか? 12501行目に行を追加しようとするとあぼーんしてしまいす。
12500件も一度に表示させる必要あるの? 表示件数の上限を超えましたとかメッセージだして アプリ側で表示件数制御させたら?
>>167 SELECT MSysObjects.Name FROM MsysObjects where type=1;
で出来ると思います。
172 :
デフォルトの名無しさん :02/09/25 19:16
よ〜しらんけど、表示も遅くなりそうだし、 配列で保存しておいてある程度スクロールしたら書き換えるようにするもんじゃないの? >フレキシブルグリッド
173 :
分かる人お願い :02/09/25 20:28
花見.bmpをPicture1.pictureにセット "a"をかく Picture1.ScaleMode = 3 Picture1.FontSize = 100 Picture1.CurrentX = 0 Picture1.CurrentY = 0 Picture1.Print "a" 'Picture2にPicture1をコピーする Picture2.PaintPicture Picture1, 0, 0 このときPicture2には花見.bmpだけで、 プリントした"a"が表示されません。 どうしたら"a"も表示できるか教えてください。
174 :
デフォルトの名無しさん :02/09/25 21:21
すいません、質問させて下さい。 test.mdbというMDBにTESTとTMP_TESTという2つのテーブルがあります。 (二つのテーブルはまったく同じ形です) TESTには一件のレコードがあり、SELECT文の実行でrs_testに取得します。 rs_testに格納されたレコードをrs_test2にコピーして TMP_TESTテーブルにINSERTを行いたいのですが、どうしたら良いのでしょう? 色々試行錯誤してみたのですが、駄目でした。 どなたかアドバイスお願いします
これがソースです。 Dim cnn As New ADODB.Connection ' ADOコネクションオブジェクト Dim rs_test As ADODB.Recordset Dim rs_test2 As ADODB.Recordset Dim str_SQL As String ' 接続 cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test\test.mdb;" Set rs_test = New ADODB.Recordset Set rs_test2 = New ADODB.Recordset str_SQL = "" str_SQL = "SELECT * FROM TEST" rs_test.Open str_SQL, cnn, adOpenStatic, adLockPessimistic rs_test2.Open "TMP_TEST", cnn, adOpenStatic, adLockPessimistic Set rs_test2 = rs_test.Clone rs_test2.AddNew rs_test2.Update rs_test.Close rs_test2.Close ' 切断 cnn.Close
>>126 正直に言えよ。ホントはItemCheckじゃなくてItemClickなんだろ?
>>127 VB.NETネタは専用スレにお願いしまふ。
でもって、マルチポスト先でレスついてまふ。
>>176 うぉ、ホントじゃん。その通りって言うかなんでItemCheckなんて書いたんだか全く分けわからんです
>>178 何で書いたかわからないだと? ただの誤植だろ。heとliの違いしかないからな。
間違えても当然だ。それくらいわからんのか。
うむ、まぁそうではありますが。。
>156 (= >162) SQLDMOでも使ってくれい。
>>174 cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test\test.mdb;"
cnn.Execute "insert into TMP_TEST select * from TEST"
cnn.Close
[Access2000] VBからMDBへADOで接続し、 MSysObjects内のNameプロパティ値を取得しようと思ったのですが、 「MSysObjectsの読み取り権限がない」 というエラーメッセージが表示されてしまいます。 全てのオブジェクト名(テーブル、レポート、モジュール)を取得したかったのですが、 なにかよい方法はありませんか?
テーブル名一覧取得 Dim cnnDB As ADODB.Connection Dim rstList As ADODB.Recordset Set cnnDB = New ADODB.Connection ' 接続を開きます。 With cnnDB .Provider = "MSDASQL" .Open "DSN=DSN名を書く" End With ' テーブル スキーマ行セットを開きます。 Set rstList = cnnDB.OpenSchema(adSchemaTables) ' 結果をループして、イミディエイト ウィンドウ ' に名前と種類を出力します。 With rstList Do While Not .EOF If .Fields("TABLE_TYPE") <> "VIEW" Then Debug.Print .Fields("TABLE_NAME") & vbTab _ & .Fields("TABLE_TYPE") End If .MoveNext Loop End With cnnDB.Close Set cnnDB = Nothing
答えろオラ
DAOツカエ DAO最強 DAOマンセー
>>184 Dim str As String
Dim ac As Access.Application
Dim ag As Object
Set ac = New Access.Application
ac.OpenCurrentDatabase "c:\db1.mdb"
For Each ag In ac.CurrentDb.TableDefs
str = str & ag.Name & vbNewLine
Next
For Each ag In ac.CurrentProject.AllReports
str = str & ag.Name & vbNewLine
Next
For Each ag In ac.CurrentProject.AllModules
str = str & ag.Name & vbNewLine
Next
MsgBox str
アクセスが入ってないとダメぽ?
192 :
デフォルトの名無しさん :02/09/26 13:09
DataGridの列数はどうやって増やすのですか? プロパティ上にColumnなどのプロパティが見当たらないんです。 どなたかよろしくおねがします。
TWAINを使ってしてスキャナーを操作したいのですが、どうしても上手くいきません。 プレビューは出来たのですが、パソに取り込む事が出来ません。 取込する前に関数から戻ってきてしまっているみたいです。 よろしくお願いします。 また、TWAINの操作方法のサンプル等が有りましたらこちらも教えて貰いたいのですが・・・
自分のPCのシステム秒が50になったときに、 実行させてる画面で、テキストボックスと コンボボックスが消えちゃうんですけど。。。 visibleがfalseになる感覚です。 助けてください。
システム病ってなによ?
いまさらですが...
>>120 :118 :02/09/24 23:53
>>皮肉というより問題定義と言った方がいいな。
問題提起の間違いですか?ププ
? len("3333123") とやると 7が表示されます。 ? lenb("3333123") とやると 14となります。 実際、バイト数は11のはずなんですが、どうしたら11と取得できるのでしょうか?
>>197 VBはUnicodeで文字を管理しているので半角も2バイトです。
>>188 どうでもいいことだが、strという変数名はいやだなあ。
>>197 FAQだけど
LenB(StrConv(文字列, vbFromUnicode))
>>197 普通は LenB(StrConv("hogeほげ",vbFromUnicode)) かな。
他に方法あったかな?
ActiveXDLL側で、そのDLLを呼び出した側のウィンドウのハンドルを 取得できるのでしょうか?
203 :
デフォルトの名無しさん :02/09/26 17:53
スタンダード版を買ってきてインストールしようとしたのですが、 最初の方のコンポーネントチェックでIE6でなと駄目と言われて 無理矢理インストールされそうになります。 2chのAAの関係でどうしても今使ってるIE5.01を残したいのですが、 IE6を入れてからIE5.01に戻すなんてことはできるのでしょうか? ひょっとしてIE6を入れなくてもインストールできる方法があったりします?
204 :
デフォルトの名無しさん :02/09/26 18:01
206 :
デフォルトの名無しさん :02/09/26 18:20
>>204 何のことか分からないので検索してみます。
>>205 はい、VisualBasic.net Standard です
>>203 .NETって事は、OSは2000かXP使うんだろ?
だったらIE6でも何もせずにフォント設定できるからAA問題なしじゃん。
仮に9x系でもズレを直すパッチってあるぞ。
つうわけで、IE6いれなされ。
え、IE6でもずれないんですか? OSはWindows2000の英語版使ってます。 とりあえず試してみますね。 駄目だったらそれまでということで(^^; みなさんありがとうございました。
VB(Access)ではNULLと空の文字列("")って同じですか?
210 :
デフォルトの名無しさん :02/09/26 19:16
・オ・ヨ・ヘ・テ・ネ・゙・ケ・ッ、霹タ、ケ、?、ヒ、マ、ノ、ヲ、キ、ソ、鬢、、、、ホ、ヌ、キ、遉ヲ、ォ。」
211 :
デフォルトの名無しさん :02/09/26 20:16
>>209 「VB(Access)では」っていう書き方が気になるが
違うものだろ 普通 <NULLと空の文字列("")
VBで、FlashGetや、Irvineにあるような 分割ダウンロードを実装するにはどうしたらいい? ちなみにもう普通のダウンロード部分は出来てるんですが・・・。
まず最初に普通にGET投げてContent-Lengthを得る。 その値を分割数で割り、 それぞれRangeヘッダ付けて分割数ぶんだけコネクション張りってな感じでは。
215 :
デフォルトの名無しさん :02/09/26 22:23
サブネットマスクを得るにはどうしたらよいのでしょうか。
そりゃやろう思えばできるんじゃないかな。 でも既存のソフトに対抗できるクラスのものをVBで作ろうとしたら、 無謀とういうもので、やろうとは思わん。
>>213 どうもです。
>Rangeヘッダ付けて分割数ぶんだけコネクション張り
ここが私が知りたかった核心部分でした。助かります。
ちなみに、こんなことしてる理由はといいますと、実は
ダウンロードツールを作ろうとしているのでは無いです。
とあるオンラインゲームを作ってるんですが、そういうのってソフト側から
自動でパッチ落としてきて適用しますよね。
そのパッチを落とすときに必要っぽいんですわ。
あ、
>>214 は「あんたデキるナ?」って書いてあったのか。
「あんたデキる?」って聞かれたのかとオモタ。
219 :
デフォルトの名無しさん :02/09/27 01:03
>>221 質問に答えるのを拒絶したか。答えられないなら別にそれでいいがね。
>>222 コマンドまたはファイル名が違います.
C:\>
224 :
デフォルトの名無しさん :02/09/27 02:15
VisualBasic6.0でクラスにMultiUseプロパティを定義してActiveXDLL を作っています。 おもに、IIS上のASPからCreateObjectで関数を呼び出して使うた めです。その関数は、別のWebサーバへHTTP通信をして値を取得 するという動作をします。 HTTP通信をするためにWinsockコントロールを使用しました。開発環境 (Windows2000)では動作しましたが、それをWindows2000Server上 で動かそうとするとWinsockのConnectでコケてしまうんです。 セットアップ媒体を作成したり、ocx周りの不足は散々確認したのですが どうしても動きません。同じソースをNT4.0Server上で展開してステップ 実行して確認すると動作します。pingも通ります。他のコントロールは 使っていません。 なにか考えられることはありませんか・・・。
コケるというのは、間髪入れずに、接続エラー番号9を受信して しまうと言うことです。
プログラムは ベテランですが VBは 最近、始めたので 初心者ですが、何か?
現在VB6.0SP5.0を使用しております。TreeViewコントロールでエクスプローラのような階層の 表示をさせております。 例) +神奈川県 +蒲生町 +米五町 +東京都 +安芸町 +三輪町 のように上記のようなデータがあるとします。(100件ほど上記のデータが続きます)そこで検索 の画面をだして該当する場所を指定したいのです(カーソルが移る)「神奈川県」の「米五町」を指定 させた場合そこの階層が開いてわかるようにしたのです。何かよい方法はないでしょうか? サンプルなどがあればそこのHPなども紹介して欲しいのですが・・・。 よろしくおねがいします。
>>228 町名が 複数ある場合は、どうするんだ?
>229 ユーザー側に検索させる時は、「県」と「町名」を必ず指定させます。 町名の重複はあっても県名の重複はないですよね。
県のすぐ下が町ってのも変だに。 東京は 東京都なんとか区なんとか 1−1−1 というふうに 町名がつかない場合がある。 神奈川県なんとか市なんとか町 なんとか 1−1−1 というパターンもある。 また、田舎だと なんとか県なんとか郡なんとか町なんとか大字なんとか小字なんとか 1 とかいうのもある。 つーか 配列に 階層に入ってるもの(入れるときに)別に入れてやって その配列で、何番目か調べて 開けばいいじゃん。 っーか TreeViewの何番目を開けってのは知らん(爆)
>>230 ツリービューにノードを追加する時にキーを設定する。
キーは検索入力させるデータ("神奈川県米五町"など)と同じにする。
あとは検索画面(テキスト検索ならInputBoxでいいんじゃない)を表示して
その返り値をtre.SelectedItem = tre.Nodes("神奈川県米五町")って感じにすれば出来上がり。
>231 >232 なるほどそういう手もありますね。 早速参考にさせていただきます ご教授ありがとうございます。 >233 えっと、中島みゆきの歌の「ファイト」ですかね? ギリギリわかりました。ちょっとかんがえてしまいました。 結構古い歌ですね。なつかしい。ちなみにオタではありませんyo。
232補足 存在しないキーを指定した場合はエラーになるのでその対応も忘れずに。
>>235 に補足
キー文字列には罠があるので注意。勝手に文字の同一視したりする。
できればHexエンコードなどを行った方が安心。
>TreeViewの何番目を開け TreeViewを追加すると自動的に追加された順番でインデックスが付加されます。 後は同様にtre.SelectedItem = tre.Nodes(インデックス)って感じです。
237訂正 TreeViewを追加→TreeViewにノードを追加
ループ処理で ListBoxにアイテムを追加しているんですが、 追加する件数が多いので、ListBoxの表面に出てる部分の数を追加した 時点で、一旦表示したいんですが、可能でしょうか? なお、表示後、listbox1.AddItemを 続けます。
>>225 の続きです・・・。
同じクラスをPrivateにしてexeを作成したら
アッサリ動作しました。ActiveXDLLではダメな
ようです・・・。
VB6.0でWebBrowserを使いVBのフォームの中にページを表示させるようにしました。 それでなんですが表示されたページの懸賞などの入力フォームなんかに自動入力させたいのですが 教えてください、お願いします
VisualBasic6での質問です。 コモンダイアログで選択した複数のファイルを、 1つずつ取り出したいのですが、うまくいきません。 実際、選択したファイル群は、 "パス ファイル名1 ファイル名2 ・・・" のようにスペースで区切られた形で取れるのですが、 Split関数を使って以下のようにしたいのですが、だめでした。 (1番目の配列にすべて入っています・・・) F() : 配列 Files : ファイル群 F=Split(Files," ") Split関数の使い方の間違い、またはその他のよい方法がありましたら お教え願います。
>>242 それホントに半角スペース区切り? NULLだったりしない?
コモンダイアログコントロールは使ったこと無いから知らないけど、
APIならNULL区切りだから、Split(Files,vbNullChar)ってやらなと
駄目だと思うが。
>>242 スペース区切りだったら C:\My Documents や C:\Program Filesは
どうなる?
>241 君の文章には「何を」という言葉がぬけているぞ。
>>242 ロングファイル名を有効にするフラグを立てた場合はNULL区切り、
無効にする場合はスペース区切りだな。
ちゃんとコモンダイアログのヘルプ(Flags プロパティ)に載ってるよ。
APIの場合でも同様だな。
あ、すいません。 自動入力させたいのは、iniファイルから読み込んだデータです。 懸賞なんかであれば名前や住所などです。 では改めてお願いいたします。 >245さん、ご指摘ありがとうございます。今自分で文章読んでみてアホだなと思いました。
MSDNより --- [ファイル名]ボックスで複数のファイルを選択できるようにします。 ユーザーは、実行時に Shift キーと上下の方向キーを使って複数の ファイルを選択できます。 複数のファイルが選択されると、選択されたすべてのファイルの名前を 含む文字列が FileName プロパティに設定されます。 FileName プロパティの文字列内のファイル名は、スペースで区切られます。 --- のようになっています。 特にスペースとしかかかれていません。一応全角、半角、space(1)で 確認しましたがだめでした。 実際の戻り値は、debug.printしたところ、 C:\Documents and Settings test.txt test2.txt のようになっています。 C:\Documents and Settingsの部分はどうなるんでしょう?
>>243 さん
>>246 さん
cdlOFNLongNamesを設定して、vbNullCharでSplitできました。
ありがとうございます。
>>244 さん
実際上記の方法で取得したときには、
1番目の配列 "C:\Document and Settings"
2番目の配列 test1.txt
・・・
となりました。
>>249 >>248 のMSDN、下の方の「解説」の部分にちゃんと書いてあるので読んでおくよーに。
もしかしたら、OSのバージョンなどでcdlOFNLongNamesかcdlOFNExplorer
あたりが勝手に立ってしまうことがあるのかもしれない。無いかもしれないが。
>>239 Refresh(かDoEvents)すればいいんじゃないかな。
でもひとつ追加するたびにRefreshするととても遅くなるので
ループカウンタがいくつになった時、とかにすればいい。
もしくはループを分割してしまえばループ内で分岐判定する必要も無くなる。
コード汚くなるけど。
>>251 そのボックスに表示できる数にいったら、一旦 Refreshさせてるけど
ダメなようです。
その後は、Refreshさせてませんが。
DoEventsはよ。
>>253 ああ なるほど!
DoEventsでokだ。
さんくすこ
>>251 Refresh(かDoEvents)って 書いてあったらから 同じもんかと
思っちゃったヨ!
Delphiだったら どうやったらいいか知ってたんだけどね。
VBは あんましやってなかったからさ。
おかげで 表示が 速くなったヨ。
Winsockコントロール使って、サーバアプリケーションを作っています。 ConnectionRequestイベントの中で、acceptしたあと、 すぐにErrorイベントが2回続けて発生することがあるんですけど。 エラーの内容は、エラーコード=10053 「タイムアウトまたは他の問題によって、接続が中断されます」。 具体的になにが原因なのでしょうか?
257 :
デフォルトの名無しさん :02/09/27 14:47
LAN上にあるVB製exeを起動したら、 ランタイムやコンポーネント(ocx)などは、 そのLAN上のマシンから読みとられるんですか? それとも起動したマシンから読みとられるんですか?
Dim lRtn As Long lRtn = SetWindowPos(form1.hWnd, -1, 0, 0, 0, 0, &H40) これで 最前面に表示させようとしてますが、 実行すると タスクバーにもうひとつバーが表示されて ほかの画面をクリックすると それが 最前面になってしまいます。 常に 最前面にするには どうしたらいいのでしょうか?
>>256 サーバーアプリはVBじゃないほうがいいと思う
>>258 Private Const HWND_TOPMOST = -1
Private Const SWP_SHOWWINDOW = &H40
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_NOMOVE Or SWP_NOSIZE
多分、SWP_NOMOVEとSWP_NOSIZEを入れてないせいでしょう。
lRtn = SetWindowPos(Me.hWnd, -1, 0, 0, 0, 0, &H43) とやったら OKでした〜〜 ActiveX DLLだと Form1のハンドルという取得の仕方ができないらしい
264 :
デフォルトの名無しさん :02/09/27 15:37
VB画面(frmAA)上からコマンドボタンを押したら MDBへのデータ登録を行い、 登録が上手く行ったら その画面(frmAA)のForm_Load処理を通すようにしたいんですけど、 その場合、 unload me frmAA.show と書く以外に良い方法ありますか?
>>264 単純にForm_Load呼び出したら?って言うかその仕様妙かも。
VB6+ADOでアプリを組んでいます。 あるレコードのフィールドAが更新されたら、その値に応じてフィールドBを更新しようと、 FieldChangeComplete イベント内に pRecordset.files("B").Value=hoge と言うコードを書いたのですが、「コンシューマのイベントハンドラはプロバイダの再 入不可能なメソッドを呼び出しました」となりうまくいきません。WillChangeFieldイベ ントでも同様でした。 いい解決方法があれば教えていただけませんか。 OLD DB Provider は ODBC 、サーバはPostgreSQLを使用しています。
>>241 無視されてかわいそうだから教えてあげる。
でもその手の垢取りツールまがいのものはあんまり好まれないから
こういう場で堂々と質問するのはちょっとマズったね。
それで、質問についての回答だけど。
ずばり、良い方法は無いと思って良い。俺も前やったことあるので。
無理矢理やるなら、WebBrowserコントロールにフォーカスを当てて
SendKeysでTabキーを送ってやれば、WebBrowser内で次のフォームか何かにフォーカスが移る。
そうして{TAB}{TAB}{TAB}{TAB}とやっていって、入力欄にフォーカスが行ったら
これもスマートな方法じゃないが、一旦入力したい文字列をクリップボードにコピーし
SendkeysでCtrl+Vを送る。(貼り付け)
こうすることでWebBrowserのフォーカスのある項目に文字列をセットできる。
次の項目にまた文字列を入れたい場合は、一旦クリップボードの内容をClearしてから
その項目に入れたい文字列をクリップボードにまたコピー、SendKeysでCtrl+V。
みんなよけろ あきやまれん だけは ゆるせない!
269 :
デフォルトの名無しさん :02/09/27 17:30
VBでシステム時刻(通算秒)を取りたいのですがどうしたら良いでしょうか? わかる方教えてください。お願いします。
Time関数ちゃうのン?
271 :
デフォルトの名無しさん :02/09/27 19:05
>>241 受け取ったHTMLのStringを解析し、
input タグ内の value プロパティを任意の文字列に入れかえたHTMLを表示ってのが好きそうなやりかただけど。
何に使うのかわからないけど、決まりきったフォーム内容なら
最初からPOSTメソッドを作成して送るほうが手っ取りばやいと思うけど。
その場で図書券のスリーマンモスの時はそれにしたなぁ(藁
クッキーデータも取得して作成しなければならなかったけけど。
272 :
デフォルトの名無しさん :02/09/27 19:08
>>271 ユニックスタイムスタンプみたいに、
通算秒にできればいいんですけど。
TIME$ でふたつの時間さを求めるには、秒や分が60までしかなかったり、
23の次が0だったり、
2月が28や29だったり30や31の月があったりするところで大変なので。
つづき。 または、onLoad関数に、 document.forms[0].name.value='hoge' とかいうのを付加してHTMLを表示させるとか。
274 :
デフォルトの名無しさん :02/09/27 19:17
275 :
デフォルトの名無しさん :02/09/27 21:23
ディスプレイの解像度を変更してフルスクリーン化するプログラムを作りたいです。 DirectXとか使わないと無理なんでしょうか?
ChangeDisplaySettings?
>>267 >>271 お二方ありがとうございます!!
>でもその手の垢取りツールまがいのものはあんまり好まれないから
>こういう場で堂々と質問するのはちょっとマズったね。
なるほどそうだったんですか・・。大変勉強になりました。
では、早速両方の方法で試して見ます。本当にありがとうございました!!
>>272 Time関数から時分秒がわかるから、後は掛け算足し算だけじゃん。
279 :
デフォルトの名無しさん :02/09/27 21:55
サブネットマスクの取得はどうすればいいのでしょうか。
280 :
デフォルトの名無しさん :02/09/27 21:58
サブネットマスクって洗濯機に入っているゴミを集めるあれですか?
282 :
デフォルトの名無しさん :02/09/27 22:09
ある絵の上にマウスポインタを持っていくと、別の画像に切り替えるようなことはできますか?
283 :
デフォルトの名無しさん :02/09/27 22:24
質問させていただきます。 フォーム上にコントロールがいくつかある時、現在フォーカスを持っている コントロールは Screen.ActiveControl で確認できますが、 「今現在の"一つ前"にアクティブだったコントロール」を取得するにはどうしたらよいですか? グローバルな変数を用意して、全てのコントロールの LostFocus 時に コントロール名を保存しておく……と、これくらいしか思い浮かびません。 よろしくお願いします。
285 :
デフォルトの名無しさん :02/09/27 23:15
Window98なんだけど、どういうシリアルキーで登録したかみるにはどうしたらいいでしょうか?
>>284 なんでそんなものを取得したいの?
何をやりたいのかわからんけど、
たぶん別のアプローチで解決できると思うよ。
どうしても!ってことなら、
サブクラス化とかで方法がない訳でもないだろうけど。(思いつき発言)
一つ前のアクティブコントロールなんて
普通必要がないから簡単に取得できないんだと思わない?
>>286 ありがとうございます。
一つ前のアクティブコントロールを取得したい訳は、
「あるボタンが押されるとある処理が走るが、それがエラーになった場合、
フォーカスを元の位置(ボタンをクリックする前の位置)に戻したい」
という仕様にしたいのです。
別のアプローチとはどういうことでしょうか。
>>287 「状態」を保存しておく変数をひとつ持ってそれをもとにアクティブにするコントロールを割り出すとか。
各コントロールの状態からアクティブにすべきコントロールを返す関数を用意しておくとか。
いろいろあるじゃん。
>>287 タイマーコントロールでグローバル変数にアクティブコントロールを
保存しとくってのがVB房らしくていいぞ
>>287 タイマーコントロールで1秒おきにグローバル変数にアクティブコントロールを
保存しとくってのがVB房らしくていいぞ
>>288 ありがとうございます。
>「状態」を保存しておく変数をひとつ持って〜
つまり、状態Aならこれ、状態Bならこれ……という感じですかね。
その状態の"変化"を感知するにはやはりすべてのコントロールのイベントプロシージャが
必要になってくるのかな、と思いますが、どうでしょうか。
>各コントロールの状態から〜関数を用意しておく
その関数内ですべてのコントロールを調べて該当のものを返す、と。
つまりコントロールになにかしらの目印(フラグ)が必要になってきますね。(Tagプロパティを使ったり)
だとするとやはり、各コントロールのイベントプロシージャを記述する必要が……(?)。
>>289 >>290 ありがとうございます。
タイマーを使うとは考えつかなかったです。
確かにこれで要件は満たせそうですが、極力無駄なイベントを発生させたくないのと、
タイマーコントロールは規約で使用不可だった気が……スイマセン。
293 :
デフォルトの名無しさん :02/09/28 00:22
>>292 タイマーはおそらくネタだから無視しろ。
>>293 あっ、そうなんですか(笑)
失礼しました。
「そういう方法もあるな」とマジメに思ってしまいました(笑)
>>269 UNIX時間が欲しいなら、
UnixTime = DateDiff("s", #1/1/1970#, dateVB) - 32400 'JST-9
で取れる。
>>291 フォーカスの移動自体を無くせばいいと思います。
イメージコントロールはフォーカスを取得しないので、
押されてない状態のボタンの絵と押された状態のボタンの絵を
イメージコントロールで切り替えてそれをコマンドボタンの代わりにすればよろしいかと。
キーボードで操作できないボタンってのも、VBらしくてス・テ・キ。
>>297 マジだったのか。これだから VB 厨は...。
300 :
デフォルトの名無しさん :02/09/28 15:26
VB初心者スレ 歴代1位の厨は誰ですか?
?はドラマ板のロッカーの花子さんスレにも書き込んでたな
VB6でFormのタイトルバーを独自のものにしたいです。(色とか) どうやれば出来ますか?簡単には出来そうもないので質問してみます・・・
>>302 タイトルバーなしにして、自分で描画すればー。
>>296 ありがとうございます。
イメージを使った「偽コマンドボタン」ですか。
おもしろいかもしれませんね。
結局、「一つ前のコントロールにフォーカスを移す」仕様はやめました(笑)。
そこまで要求されませんでした。
皆さんありがとうございました。
307 :
デフォルトの名無しさん :02/09/29 00:59
すみませ〜ん。 ピクチャーボックスで文字を表示してるのですが、 ピクチャーボックスに自動改行機能を付けるには どうしたらいいのでしょう? それと、適当な文字が左から何ドット上から何ドットの 位置にあるか取得できたら、自動改行ができるような 気がするのですが、取得方法はありますか?
308 :
デフォルトの名無しさん :02/09/29 01:06
>>307 プログラムしろよ!
なにかわからないところがあるならそれを質問しろ。
>>298 キーボード操作なんて簡単に実装できますよね?
>>299 タイマー使うのそんなに実害あるかな?そんな事より、
使う使わないはともかく、一番短いコードで実現できる点を評価したい。
自分じゃ何も思いつかない能無しが見当違いの煽りしてんじゃないよ。
とかたまには言ってみたりしていいですか?
>>301 別の人ですね。今のところ?はこのスレでしか使ってないです。
でもあのドラマは何回か見ましたよ。面白かった。
>>307 TextWidthで文字幅がわかるから、文字の描画位置は自己管理しる。
APIのDrawText関数を利用する手もあるかな。
文末の vbCrLf を削りたいのですけど、どういった方法がいちばんスマートでしょうか。 たとえば、Foo = "ABC" & vbCrLf & "DEF" & vbCrLf の場合の、 Perl で言うところの chop Foo や、Foo =~ s/\n$// です。
すんまへん。あげます。
>>312 hoge = Replace(hoge,vbCrLf,"")
じゃ駄目なの?
>>314 それだと文中の vbCrLf も削られます。
>>315 あぁ、なるほど。
If Right$(hoge,2)=vbCrLf Then
hoge = left$(hoge,Len(hoge)-2)
End If
ってやって地道にやるしかないよーな…。
>315 hoge = Left(hoge, Len(hoge) - 2)& Replace(hoge, vbCrLf, "", Len(hoge) - 1, 2) か?
Perlと同じように正規表現使ってやればいいじゃん
>>319 > .NET ぢゃないんです。
わかってるって。
>320 Microsoft VBScript Regular Expressions 5.5を参照設定しる。(WSH5.6必要) でもたかだかそのためだけにって感じも無きにしも非ず。
322 :
デフォルトの名無しさん :02/09/29 11:56
VBSってここで聞いていいでちゅか?
325 :
デフォルトの名無しさん :02/09/29 21:32
>>309 実害以前に、耐えられない仕様だ。
1秒おきの場合、
最後にTimerの関数が実行された後、ボタンが押されるまでに、
フォーカスが複数移動したらどうするんだ?
ってことは思いつかなかったんでしょうか?
すなおに TabStop = True であるコントロールの GotFocus イベントに書くのが余計な負荷をかけない。
GotFocusにイベントを書くとめんどくさいから、クラスを作って コントロールごとインスタンスを割り当ててそこから、 フォームに通知した方がいいね。
>327 サンプルきぼん
>>328 適当に作ったけどこんな感じかな。
Formにいくらコマンドボタンを置いても共通のIAllGotFocus_AllGotFocusが発生する。
この例はコマンドボタンだけ対応。他のコントロールに対応したかったら、
それ専用のClass1を作成するか、Class1を改造したり、まぁ他にも色々工夫してくれ。
<Form1>
Implements IAllGotFocus
Private m_controls As New Collection
Private Sub IAllGotFocus_AllGotFocus(ByVal ctrl As Control)
Debug.Print ctrl.Name
End Sub
Private Sub Form_Load()
Dim ctrl As Control
For Each ctrl In Controls
If TypeOf ctrl Is CommandButton Then
Dim c1 As Class1
Set c1 = New Class1
c1.SetControl ctrl, Me
m_controls.Add c1
End If
Next ctrl
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set m_controls = Nothing
End Sub
<Class1> Private WithEvents m_cmd As CommandButton Private m_AllGotFocus As IAllGotFocus Public Sub SetControl(ByVal ctrl As Control, ByVal AllGotFocus As IAllGotFocus) Set m_cmd = ctrl Set m_AllGotFocus = AllGotFocus End Sub Private Sub m_cmd_GotFocus() m_AllGotFocus.AllGotFocus m_cmd End Sub <IAllGotFocus> Public Sub AllGotFocus(ByVal ctrl As Control) End Sub
要するにDecoratorパターンだな。
>329 thx− なるほど。たしかにスッキリしてていいすね Implementsってこう使うのか。。
へ〜そんなことができるんだ。 <IAllGotFocus> ↑ってどういうこと?モジュールかな?
いちばん便利なのはGoToだ
>>325 >実害以前に、耐えられない仕様だ。
つまり目立った実害は無いという事ですか?
タイマーイベント内もたった一行だし余計な負荷がかかると言ってもたかが知れてますしね。
>1秒おきの場合、最後にTimerの関数が実行された後、ボタンが押されるまでに、
>フォーカスが複数移動したらどうするんだ?ってことは思いつかなかったんでしょうか?
インターバルを調節すればいいってことは思いつかなかったんでしょうか?
>すなおに TabStop = True であるコントロールの GotFocus イベントに書くのが余計な負荷をかけない。
だったらそう書けばいいのになんで余計な煽りするんですか?
質問者が他に手段はないかと聞きに来てる時に手段の1つとして上げてる、適切なレスだと思いますが。
つまらない言い合いしてすみません。。。
でも自分的にはくだらない煽りより面白い意見を聞きたいと思うんです。
>>329 そんなことが出来るんですか。勉強してみます。
>>336 > インターバルを調節すればいいってことは思いつかなかったんでしょうか?
インターバルを調整しても、本質的には解決しませんよ。
Timerは優先順位が低いので、負荷がかかるとイベントが後回しになり
取りこぼすことになります。
338 :
デフォルトの名無しさん :02/09/30 15:05
date型の変数の初期化ってどうするのが最良ですか?
339 :
デフォルトの名無しさん :02/09/30 15:11
ファンタジィと呼ばれるピンク色の汁を出すよ
Emptyを代入。それでいいのだな?
>>336 以上のような理由でネタもしくは、
質問者を混乱させようという悪意かと思っただけ。
なので、質問者が混乱しないようにネタだと注意をしておいただけ。
あおってはいない。
>>337 にもあるとおり、実際取りこぼしのないようにインターバルを
を小さくすればするほど余計な負荷がかかる上に、
どれだけ小さくしても完全ということはない。
>質問者が他に手段はないかと聞きに来てる時に手段の1つとして上げてる、適切なレスだと思いますが。
質問を良く見てみろ。
この手法はすでに質問者が自分で言っていて、他にいい手段はないのかと問ういている。
だからわざわざ質問者に対して書くべきことでもなかったのだ。
342 :
デフォルトの名無しさん :02/09/30 15:44
質問です。 Dim Date1 As Date Dim Date2 As Date Dim Min As Integer Date1 = "2002/09/30 12:00:00" で、Date2にDate1のMin分後の日時を入れたいんですが、 スマートな方法教えてください。 お願いします。
343 :
デフォルトの名無しさん :02/09/30 15:47
344 :
デフォルトの名無しさん :02/09/30 15:51
>>343 ありましたね。
ありがとうございました。
>>333 あぁ、そうか。使ったことが無い人にはいきなり名前だけ書いてもわからんわな。
<Form1>はフォームモジュール、<Class1><IAllGotFocus>はクラスモジュール。
ちなみにIAllGotFocusのIはこれがインタフェースであることを表している。
VBはクラスもインタフェースも宣言が同じなので名前でわかりやすくしている。
VB6.0初心者です。相談に乗ってもらいたくて来ました。モマー(;´Д⊂ MSDNのヘルプを見ながらTCPのサーバーを作ってます。 クライアントからの通信を、クライアントそれぞれに返したいのですが、 色々いじっても、1つのクライアントにしか返送できませんでした。 (最初に立ち上げたクライアントしか返らない、通信を送ったクライアントにしか 返送しない。最後に立ち上げた〜以下略。下のソースは、最初に〜の一部です。) Winsock1(Index).GetData strData txtData(Index).Text = strData For i = 1 To intMax Step 1 If Winsock1(i).State = sckConnected Then Winsock1(i).SendData strData End If Next 通信が確立しているソケット全てに対して、データを送っているイメージで、 プログラミングしています。 ちなみにクライアントとサーバ間はどれも通信はできていました。 通信できる状態でも、sckConnected 以外の値を取ったりしているのでしょうか? それとも何か根本的な間違いをしてるんでしょうか? わかる方がいたら教えて下さい、お願いします。
347 :
デフォルトの名無しさん :02/09/30 17:46
DeveloperとかProfessionalっていうのはどう違うんですか? 単語の意味はわかるがあらわそうとしているものがわからない。
348 :
デフォルトの名無しさん :02/09/30 18:17
6.0Enterprise Edition に付属のMSDEは配布可能なんでそうか?
>>347 ちゃんとパッケージに書いてあるよ。
(あなたがVBを不法な手段で手に入れたのでなければね)
メーカーのテクニカルサポートサイトにも明示されているはず。
351 :
デフォルトの名無しさん :02/09/30 18:38
>>350 あんがと。
まだ買ってないので<パッケージ
どれがいいかなと。
microsoftのページみてるけど、書いてることがいまいち意味がわからなかったりする。
例:右記の製品インストール時の追加必要システム > Microsoft Data Engine
これがあらわしてることがわからない。
352 :
デフォルトの名無しさん :02/09/30 18:44
それから、6.0にするか.NETにするかもなやみどころ。
>327 (=>329 =>345) 合格です。このスレでコテハンになる許可が下りました。
355 :
デフォルトの名無しさん :02/09/30 22:55
はじめまして。 RaiseEventを使ってイベントを発生させております。 イベント発生先の処理が終わるまではイベント発生元の処理は 進展しないのでしょうか? スレッドのように処理を同時に行いたいのですが、 VBではどのような方法があるのでしょうか? みなさま、宜しくお願いします。
>>355 VBのバージョンを明記すべき。
VB6.0以前と.NETでは、答えが全然違うものと思われ。
(つうか、VB6.0以前では、スレッド並行処理は不可能では??)
357 :
デフォルトの名無しさん :02/09/30 23:15
申し訳ありません。 VBのバージョンは6.0です。
360 :
デフォルトの名無しさん :02/09/30 23:18
皆さん、VBの検定は難しいのでしょうか??今年か来年に受けるのですが・・・・経験者の方いますか??
>>361 MSがやってるベンダー試験のことじゃないか?
VB以外にもNT ServerとかSQL Serverとか色々有った気がする。
363 :
デフォルトの名無しさん :02/09/30 23:33
VC検定ってのも聞いたことがあったが本当にそんなのがあるのか。 MSぼろもうけだな。
学校でVBの授業があって、検定に向けて授業をやってるんですけど・・・ どのくらいの難易度なのか分からないんですよね・・3級だからそんなに難しくは 無いと思うけど・・・どうなんでしょう??
366 :
デフォルトの名無しさん :02/10/01 00:32
文字数制限に引っかかったので分割しました。 '標準モジュールのコード--------------------- '-- API 定数 Public Const WM_USER = &H400 : Public Const EM_SETPARAFORMAT = (WM_USER + 71) '-- API 関数 Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long '-- 構造体 Type PARAFORMAT2 cbSize As Long : dwMask As Long : wNumbering As Integer : wEffects As Integer dxStartIndent As Long : dxRightIndent As Long : dxOffset As Long : wAlignment As Integer cTabCount As Integer : rgxTabs(31) As Long : dySpaceBefore As Long : dySpaceAfter As Long dyLineSpacing As Long : sStyle As Integer : bLineSpacingRule As Byte : bOutlineLevel As Byte wShadingWeight As Integer : wShadingStyle As Integer : wNumberingStart As Integer : wNumberingStyle As Integer wNumberingTab As Integer : wBorderSpace As Integer : wBorderWidth As Integer : wBorders As Integer End Type 'フォームのコード--------------------------- '-- タブ幅設定 ' パラメータをセット Dim udtParaFormat As PARAFORMAT2 With udtParaFormat .dwMask = PFM_TABSTOPS .cTabCount = ? 'ここがわからない .rgxTabs(0) = ? 'ここがわからない End With 'SendMessageでメッセージを投げる Call SendMessage(RichTextBox1.hwnd, EM_SETPARAFORMAT, 0, udtParaFormat) RichTextBox1.Refresh '--ここまで-------------------------------
テキストファイルを、任意の行から読み取りたい場合はどうすればいい? 一行のバイト数は不定です。 Line Inputを行分ループするしかないのかなー。 もっと高速に動作させたい。
369 :
デフォルトの名無しさん :02/10/01 01:13
>>365 なんじゃそこは。
ソースにパスワードが書いてある。
>>368 ファイルの最初にインデックスでも持たせたら。
>>366 .cbSize = Len(udtParaFormat) 'これを忘れずに
.cTabCount = MAX_TAB_STOPS '=32
for x=0 to .cTabCount-1
.rgxTabs(x) = タブ幅 * (x + 1)
next
タブ幅はtwipsで指定。
ちなみにヘルプにちゃんと書いてある。
>>370 インデックスを持ってもこの場合は意味無くない?
>>371 ありがとうございます。
もうちょっとよくヘルプを見るようにします。。
サイト覗いてたらなんかむかついてきたな。 誰かがここに直接アドレスを貼り付けてそこから飛んだら 不正アクセスにはならんよな。 普通ならちゃんとしたアクセス制限かけてあるはずだし。普通なら。
375 :
デフォルトの名無しさん :02/10/01 01:39
>>374 だよな。HTMLソース自体にパスワードが書いてあるものを、
ページ見たからといって不正アクセスだと言われても困る。
>>372 Seek ステートメント使って読みたい位置まで移動すればいいじゃん。
377 :
デフォルトの名無しさん :02/10/01 07:52
フォルダの判定とか、"\"で判定しています。 でも英語のソフトとかだと"/"のが多いですよね。 英語版Windowsで動かすとこの辺の仕様とか変わってくるのでしょうか?
FileSystemObject使えよ
CreateThreadを使えばできるようなことを聞いたのですが、 VBでCreateThreadは使えるのでしょうか?
>>379 CreateThreadできることはできるのだが、スレッド内で何か操作すると
途端にアプリが落ちる(w
他モジュールやフォームをいじると落ちるんだっけかな。
よって、実際は使えない。VB6の場合ね。
VB5の場合は一応使いようによってはOKらしい。
>>380 返答ありがとうございます。
スレッドではORACLEへのストアドコールを行います。
数分返答がないようなストアドをコールします。
スレッドが処理中(ストアドコール中)にGetExitCodeThread,
ExitThread等を行うとやはりエラーとなるのでしょうか?
自分で作成したDLL内部でスレッド生成を行いたいのですが、
重い処理をしてもEXEが返答待ち(固まらない)しない事を
実現したいと思っております。
>>381 スレッドを使わなくてもストアドコールとかは非同期で実行できるんじゃないか?
>>382 本当ですか!
よろしければ実現方法を教えて頂けないでしょうか。
>>383 すまん。しらないんだ。ADOとかで非同期で実行するという引数やらなんやら
あって常識的に考えれば出来そうだなぁと思っているだけ。
今までやったこと無い。個人的にはやりたいんだがなんで要望でないかなぁ(w
>>383 ADO をつかっているなら、 execute メソッドの options に adAsyncExecute
を指定すれば出来ると思います。
やったことないので、外してたらゴメン。
387 :
デフォルトの名無しさん :02/10/01 11:59
すいません、超初歩的な質問なんですが… ランダム関数で、1〜100までの乱数を発生させるのは Int(Rnd() * 100) + 1 ですが、50〜100までの乱数が必要な場合はどの様に求めればいいのですか?
388 :
ふなはすです(QOO) :02/10/01 12:00
横スクロールのシューティングゲームのソース (VB) があるサイト教えて♪
>>387 おまえのレスの
> Int(Rnd() * 100) + 1
Int(Rnd() * 100) は乱数の範囲:0〜99
1 は乱数の最低値
あとは自分で考えてみ。
390 :
デフォルトの名無しさん :02/10/01 12:14
>>389 あ!
Int(Rnd() * 100) + 50
ですよね!?
どうもありがとうございました!
>>390 ・・・自信満々で間違うなよw
ネタだよな?
焦っただけだよな?
そうだと言ってくれ!
392 :
デフォルトの名無しさん :02/10/01 12:25
>>391 え!!
違うの…
かなり自身満々だったのに
ウチュ
>>392 次も自信満々で
Int(Rnd() * 50) + 50
とかやってくるんだろーなー
395 :
デフォルトの名無しさん :02/10/01 12:37
>>393 ,394
まんまと394の様にしようと思ってたよ…。
('・ε・`)ショボーン
+ 激しく偏り + + 激しく失敗 + Int((Rnd() + Rnd()) * 51 / 2) + 50
397 :
デフォルトの名無しさん :02/10/01 13:02
ゲッ! 俺Rnd関数、0〜1が返ると思ってた。
398 :
デフォルトの名無しさん :02/10/01 13:18
>>396 これが正解なんですか?
ありがとうございます。
使ってみます!
Rnd 関数は 0 以上、1 未満の範囲の値を返します。 引数 number の値によって、Rnd 関数が返す乱数が決まります。 初期シード値が変わらない限り、一連の Rnd 関数が返す乱数系列は同じになります。 これは、連続する各 Rnd 関数が乱数系列の中の直前の乱数をシード値として、次の乱数を それぞれ生成するためです。 システム タイマーから取得した新しいシード値を使って、乱数ジェネレータを初期化するには、 Rnd 関数を呼び出す前に、引数を指定せずに Randomize ステートメントを実行してください。 任意の範囲の整数の乱数を生成するには、次の式を使ってください。 Int((upperbound - lowerbound + 1) * Rnd + lowerbound) この式では、変数 upperbound には範囲の上限の値を指定し、変数 lowerbound には 範囲の下限の値を指定します。
>>387 おれならこうするな
do while true
r=int(rnd()*200)
if r>=50 and r<=100 then exit do
loop
402 :
デフォルトの名無しさん :02/10/01 13:30
403 :
デフォルトの名無しさん :02/10/01 13:40
>>400 、401
どうもありがとうございます。
今、Accessでテストデータを1万件作るためのミニアプリ作成中なのです。
For i = 1 To 10000
rs.AddNew
rs("Key") = Format(Int(Rnd() * 1000) + 1)
rs.Update
Next i
↑こんな感じでにRnd()はループの中にあるのでループはあまり使いたくなくて
質問しました。でも
>>394 の方法で上手くいきましたけど…
間違ってるのかな??ウーン、ワカラン。
>>403 任意の範囲の整数の乱数を生成するには、次の式を使ってください。
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
この式では、変数 upperbound には範囲の上限の値を指定し、変数 lowerbound には
範囲の下限の値を指定します。
これでも分かんなきゃ人間やめたほうがいいよ。マジで。
406 :
デフォルトの名無しさん :02/10/01 13:49
>>404 ありがとうございます。
今、その方法で取組中です。
たくさんアドバイスいただけてホント感謝です。
>>405 大丈夫です!何とか理解できました(,,゚Д゚)ギリギセーフ
すいません、入社したばかりのヘタレ女性プログラマです。
どうもアリガトございました。
>>406 これぐらい カンタンだとレスは たくさんくるよ(w
しかも 突込みどころ 満載だったし。
409 :
デフォルトの名無しさん :02/10/01 15:57
VB初めて3日の初心者です。 過去スレで一応調べてみたのですが、訊かせてください。 どうかよろしくお願いします。 環境はVB7.0です。 Module1.vbに構造体を以下のように定義したのですが、 Public Structure data { Public x As Double Public y As Double } ビルドすると、 「Public class 'Form1' の外にある Friend 型を公開できません。」 のようなコンパイルエラーが出てしまうのです。」 構造体を別モジュールで定義したくてこんなことをしているのですが、 外部Moduleで宣言されている構造体を使うには、どのようにしたら良いの でしょうか?
411 :
デフォルトの名無しさん :02/10/01 17:30
でもさ、Rnd使ってると、な〜んかいまいちランダムじゃないなぁと思うんだけども どうでほ。
412 :
デフォルトの名無しさん :02/10/01 17:32
カウントしてみ。ランダムさがよくわかる。 400回くらいまでは偏るけどね。(0から9までのとき)
Randomizeしてないだけとか言うなよ。
>>411 Randomizeしても同じ数値が連続したことがあった
>410 ごめんなさいわかんないっす… (:A;)ハウー 「作成したモジュールに、フォームのインスタンスを渡す」 ってところなのでしょうか?
416 :
デフォルトの名無しさん :02/10/01 22:44
shell関数とOpenProcess関数ではどちらの方が 起動時間がはやいんですか?
自分でやってみるのもオツなものです
>>414 何度もRandomizeしたとか言わないでね。
>>414 100回振って、一度も同じ目が連続して出ないサイコロはイカサマです。
420 :
デフォルトの名無しさん :02/10/02 03:29
美容室向けの予約システムを作っているのですが、 どうしてもスケジュール表(時間割)部分の作り方がわかりません。 Gridのコントロールだと時間軸の上に「10:00」というような表示ができないのでこまっています。 横が時間軸で縦にスタッフの名前でただ該当の時間がいろで塗りつぶせて その上にお客さんの情報を書きたいのですが、 どなたかいいやり方教えていただけませんでしょうか。 よろしくお願いします。
421 :
デフォルトの名無しさん :02/10/02 04:06
今どき VB6で動作想定環境をWIN98にして開発するのは VBSのHPを作るようなものでしょうか?w
>>420 いろいろ方法がありすぎて、、、
>>421 VB6でWin98の何がおかしいのか?
.netでだったら問い詰めても良いけどね。
>>420 表示部は、ラベルを貼りまくってやれ。
表示する中身を管理して 表示しまくれ。
もしくは、文化オなんとか社が出してる スプレッドを使うんだな。
424 :
デフォルトの名無しさん :02/10/02 09:31
ドラッグ&ドロップで質問したいです。 今、ファイル名を指定してそこにあるデータを配列に落としているんですが、 これをドラッグ&ドロップが行われた時にドロップされたファイルを 配列に落とすにはどうしたらいいんでしょうか?今、使っている命令は こんな感じです。 Open "D:\data\all.txt" For Input As #1 For i = 1 To Ypixel For j = 1 To Xpixel Input #1, MOT(i, j) Next Next Close #1 お願いします。
Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single) Open Data.Files(1) For Input As #1 ... Close #1 End Sub 但しFormのOLEDropModeプロパティを1-手動にしとく。
ありがとうございます。試してみます。
427 :
デフォルトの名無しさん :02/10/02 11:18
>>423 そういったOCX等使うと、msiインストーラー作るとき、
OCXやらDLLやらがたくさんアプリケーションフォルダにいれられてごっちゃになるんですがいいほうほうはないでしょうか?
じつはiMode用のメール保存閲覧ソフトを作りたいと思うのですが、 有効な情報がなかなか得られません。 もしよろしかったら少しでも結構ですので作成のヒント、 関連する情報など教えていただけないでしょうか? 一方的ですみませんが何卒よろしくお願いします。
429 :
デフォルトの名無しさん :02/10/02 12:43
>>428 一方的もなにも、わけわからんぞ。
・必要と思われる機能の定義
・利用しようと思っているOS、開発環境、アプリ
ぐらいは書け。なるべく具体的に。
まいった
431 :
デフォルトの名無しさん :02/10/02 14:51
教えて下さい double型の変数の小数点以下を切り捨てたいのですが 「¥」を使うと、以下の様な場合答えが4になってしまいます。 a=3.99 b = a \ 1 何か方法はありませんか?
IntかFix
433 :
デフォルトの名無しさん :02/10/02 15:18
434 :
デフォルトの名無しさん :02/10/02 15:21
VB6 で、フォームの width と height をiniファイルに保存しておいて、 フォームを開くときに保存されていた値を読んでその値にフォームのサイズを変更しておこうとおもって、 Form_Load でiniファイルの値を読んでセットしているんですがうまくいきません。 なにか足りないことでもあるのでしょうか?
できた。
436 :
デフォルトの名無しさん :02/10/02 15:32
>>432 Int(1.15*100) ではまる罠
大変失礼しました(汗) ☆必要な機能 携帯電話とPCをUSBにて接続し、ウインドウズアプリより携帯に対し、メールを送受信したい ☆希望する動作OS WindowsXP ☆開発環境 Microsoft VisualStudio 6.0 のVBまたはVC、VJ ☆アプリ 外部アプリは使用しない 以上です。すみません初投稿なもんで(汗)もしご存知でしたらよろしくおねがいします<(_ _)>
追加です 現状として、携帯電話になんらかのコマンドを送出すると、対応した情報 (電話帳データ等)が返ってくるのはわかっています。 どんなコマンドを送出するとメール内容が取得できるのか、またクラスやAPI が提供されているのか、当方では力不足で調べられませんでした。
439 :
デフォルトの名無しさん :02/10/02 16:12
>>438 そんなの機種によって違うんじゃないの?一緒なの?
>>425 うまく取り込めました。ありがとうございました。
442 :
デフォルトの名無しさん :02/10/02 17:25
ヘルプなんですけど、HTMLヘルプ使ってます。 FormとかにHelpContextIDってプロパティーがありますが、この項目は従来のヘルプにしかつかえないんでしょうか?
443 :
デフォルトの名無しさん :02/10/02 18:04
ここってクリスタルレポートとかの質問もありですか?
444 :
デフォルトの名無しさん :02/10/02 18:42
それではすいません、質問させてもらいます。 詳細に10行だけ出力して改ページしたいんですが、 どこでどういう風にすればよいのかわからないんですが・・・。 ちなみにverは8.5です。
すいません何に関しての質問か抜けました。 クリスタルレポートに関してです。
>>438 そいうものが公開されてないのにはそれなりの理由がある。
ネタじゃなければ今後気をつけなよ。
448 :
デフォルトの名無しさん :02/10/02 19:07
MOVEFILE_WRITE_THROUGHという定数って値なんでしょう? 手持ちのAPI Viewerにのっていないんですが・・
449 :
デフォルトの名無しさん :02/10/02 19:17
>>445 1.明細にサブレポートを使う。
2.10行印刷されるとちょうどページの縦の幅がなくなるように、ページヘッダ、ページフッタなどの高さを調節する。
3.印刷する前のレコードに、10件づつインクリメントする番号を振っておいて、それでグループ化。
など思いつきました。
>>448 #define MOVEFILE_WRITE_THROUGH 0x00000008
WINBASE.Hにあった。
お、ありがとございます。 これってようするに8のことですよね?
452 :
デフォルトの名無しさん :02/10/02 20:59
454 :
デフォルトの名無しさん :02/10/02 21:47
すごく大きな数(倍精度浮動小数点数型)が見にくいので 1.23456E+8 というような表示にして出力したいんですがどうしたらいいですか?
>>454 Format関数で第二引数"Scientific"指定とかどうかね。
MSDNで調べたんですが Format関数というのがどういうものかわかりませんでした。 具体的な使い方を教えてくれるとありがたいです。 使っているのはVB6.0です。
>MSDNで調べたんですが どんな風に調べたんさ。Format関数に辿り着けなかったのかい? そんなあほな。 イミディエイトウィンドウで下のように打ってみ。 ? Format(123.456789, "Scientific")
イミディエイトウィンドウでは確かにできましたが、 プログラムで出そうとしたらエラーが出てしまいました。 double型が入ったsumという変数の値を Label2.caption = sum で出したいんですがどうでしょう? format関数は出てきたんですがc言語とか書いてあったので違うかなーと 思っちゃったんです。
>>454 どうやったらエラーになるねん。
ヘルプには使用例まで載ってるのに
それでわからん奴にどうやって教えたらええんや?
おいおい…
461 :
デフォルトの名無しさん :02/10/03 00:27
>>458 エラーメッセージを正確に引用する。
必要最低限のコードは見せる。
変数に入れた値を示す。
これ質問者の基本。
エラーメッセージはコンパイル時にでて コンパイルエラー 修正候補:式 関係しているコードは sum = ?Format(sum, "Scientific") Label2.Caption = sum sum は変数で、整数部分が7〜8桁のdouble型が入っています 例えば 70840747.888806 が得られます。 コードの?部分をなくすとコンパイルはできるんですが 有効数字が3桁になっただけで指数表記にはなってくれません。 例えば 70800000 というようにです。
463 :
デフォルトの名無しさん :02/10/03 01:31
>>462 format(num,"0.00E+00")
0の数は自分で好きなように。?ってなんだ?何を読んだ?
それからformatは文字列を返すんだからね。 気をつけて。
うんこ
チェックのためにsumを一定にしました。コードは sum = 12345678.999999 sum = Format(sum, "0.00E+01") Label2.Caption = sum こんな感じです。 ここで""の中を"0.00E+00"とすると12300000が得られ ""の中を"0.00E+01"とすると1.23E+71が ""の中を"0.00E+03"とすると1.23E+73が ""の中を"0.00E+10"とすると「オーバーフローしました」とでます。 期待している数字は1.23E+07なんですけどどうしたら得られますか?
467 :
デフォルトの名無しさん :02/10/03 02:04
>>466 だからformatは文字列を返すんだって。
dim sumStr as string
sumStr = Format(sum, "0.00E+00")
とかすればいい。
"0.00E+00" の0は桁数を表しているので
01とか10とかやっても意味がない。
sum = Format$(sum, "#.##E+") だと思う
>>462 >sum = Format(sum, "Scientific")
このsumは両方ともDouble型なのでFormat関数で整形してもほぼ同じ値が入るだけです。
この場合左辺はString型で宣言された変数に代入した方がいいと思われます。
あとSumはSQLとData Reportでの予約語なので変数名に使うのもどうかと。
試しに新規のプロジェクトでDim sum as Doubleの宣言をせずに同じコードを
入力すると小文字で入力したはずの"s"が"S"に置換されるはずです。
Dim Total As Double
Dim sTotal As String
Total = 70840747.888806
sTotal = Format$(Total, "0.000000000000E+")
Label2.Caption = sTotal
こんなかんじで。
あ、ヘルプの”プロシージャの引数”でSum関数作ってますね。
>>467 デキターーーーー!!!
ありがとうございます!ものわかりが悪くてすいませんでした。
●●●●●●●●「オセロさえ納期内に作れない=OO役立たず 」祭り●●●●●●● /| | |_____ΦΦΦΦΦΦΦΦΦΦΦ||ΦΦΦ | | | ̄ ̄ ̄ /| || | | | / /|TTTTTT TTTTTTTTTT||TTTTT | /\ | /|/|/|^^^^^^ |三三| ^^^^^^^^^^^||^^^^^^^ | / / |// / /| | / / |_|/|/|/|/| | / / |文|/ // / |/ /. _.| ̄|/|/|/ Λ_Λ /|\/ / / |/ / (___) /| / / /ヽ /〔 非OO 〕〕つ | | ̄| | |ヽ/l `/二二ヽ | | |/| |__|/ Λ_Λ / /(_) | |/| |/ ( ´∀`) (_) Λ_Λ | | |/ // / ^ ̄]゚ (` ) | |/ ゚/ ̄ ̄_ヽ ⊂〔〔 非OO 〕
あ、ぼやっとしてたら答えてたのね。 遅すぎました
>449 返信遅れてすいません、ありがとうございました。 とりあえず今教えていただいたのを実行中です。
>
>>475 お、そうですか。
なんか
HH_HELP_CONTEXT called without [MAP] section
って表示されたので。
HTMLヘルプの作り方が悪いんでしょうが・・
HTMLヘルプコンパイラみてもどこで設定するのかわからんです。
できました。 hファイルを作成するんですね。
ListBOX内の一行 一行 個別に 色を設定する方法を 教えてください。
479 :
デフォルトの名無しさん :02/10/03 11:11
全く同レイアウトのテーブルAA,BBのレコードをAA→BBに移す時に ↓以外の書き方ありますか?レコード中の全ての項目を下記の様に 代入するように書かないと駄目なのでしょうか? With rs_bbb .AddNew .Fields("field1").Value = rs_aaa.Fields("field1").Value .Fields("field2").Value = rs_aaa.Fields("field2").Value .Fields("field3").Value = rs_aaa.Fields("field3").Value End With
>>479 for i=0 to rs_aaa.fields.count -1
.Fields(i).Value = rs_aaa.Fields(i).Value
next
>>480 ありがとうございます。
そういうやりかたもありましたか
482 :
デフォルトの名無しさん :02/10/03 15:25
483 :
デフォルトの名無しさん :02/10/03 15:31
windows media player コントロールを使っているのですが、 alt+enterを押すとfullscreenで見れるのですが、 キーを使わずプログラムからfullscreenにする方法はないでしょうか? また windows media player コントロールのヘルプや解説が見つからないのですが、 どこにあるのでしょうか。
ASP.NETでWebUserControlを使用した汎用的なツールを作りたいと思っています。 そこで、Webフォームから同画面上のWebUserControlに対して値をわたしたいのですが どうしたらいいでしょうか?
自己解決しました。 ヘルプはないのですが、 オブジェクトブラウザでそれらしきものをみつけたので、いけました。 コンポーネントに以下の文を入れました。 MediaPlayer1.DisplaySize = mpFullScreen
>>482 自分が使ってる奴。あんまよくないかも。
aStr=元の文字列
nTarget=変換したい元の文字列
nChangeTo=返還後の文字列
nOpt=おぷしょん。
Public Function fReplace(ByVal aStr As String, ByVal nTarget As String, nChangeTo As String, Optional nOpt As Integer) As String
Dim oStr As String
Dim nStr As String
Dim nCurPos As Long
oStr = aStr
If Len(oStr) > 0 And Len(nTarget) > 0 Then
Do
nCurPos = InStr(1, oStr, nTarget)
If nCurPos = 0 Then Exit Do
nCurPos = nCurPos - 1
If Not Mid(oStr, nCurPos + Len(nTarget) + 1, Len(nTarget)) = nTarget Or nOpt = 0 Then
nStr = nStr & Mid(oStr, 1, nCurPos) & nChangeTo
Else '改行文字が重なっていたら、改行文字自信に置き換える(nOpt=1の場合)
nStr = nStr & Mid(oStr, 1, nCurPos + Len(nTarget))
nCurPos = nCurPos + Len(nTarget)
End If
oStr = Right(oStr, Len(oStr) - nCurPos - Len(nTarget))
Loop
nStr = nStr & oStr
End If
fReplace = nStr
End Function
487 :
デフォルトの名無しさん :02/10/03 16:29
VB初心者ですが、どなたか教えて下さい。 プログレスバーを使ってファイルの保存状況を表示したいのですが Label1.Caption = "保存中" ProgressBar1.Min = 0 ProgressBar1.Max = List1.ListCount For LoopCnt = 0 To List1.ListCount - 1 SavData = SavData & List1.List(LoopCnt) & vbNewLine ProgressBar1.Value = LoopCnt Next とするとプログレスバーが100%になってから「保存中」と表示されて しまいます。処理の優先順位みたいなのがあるのでしょうか? このような場合、どういう風にするのがよいのでしょうか? 環境はVB6 Win2000 です。よろしくお願いします。
>>487 Refresh DoEventsあたりか?
489 :
デフォルトの名無しさん :02/10/03 16:40
>>488 できました。
ありがとうございました!(感謝)
490 :
print() :02/10/03 17:16
ListBOX内の一行 一行に個別に 色を設定するのは Delphi などでしか できんのかなぁ〜〜〜
492 :
デフォルトの名無しさん :02/10/03 17:26
>>479 Insert Into BB Select * From AA
というのが一番理想。
493 :
デフォルトの名無しさん :02/10/03 17:27
すいません、ちょっとクリスタルレポートに関してお聞きしたいんですが。 グループヘッダの下にページヘッダを表示したいんだけど、なにか方法はありますか? イメージ的にはこんな感じにしたいんですけど・・・↓ 【グループヘッダー】 請求先 ○○商事 請求商品金額 消費税 請求合計額 100,000 5,000 105,000 【明細見出し】 日付 品名 数量 単価 金額 【ディテール】 2001/01/01 ○○○○ 1 100,000 100,000
>>486 様
お返事ありがとうございます。
>>482 の書き込み内容と例が悪かったのですが、
http等の頭から問題は最後の文字です。
どこまでをURLとして認識するかが問題でした・・・。
感じとしては、2ちゃんねるの書き込みにURLを含む場合、
あああ
http://www.neko.comいいい と書き込むと「いいい」の前でURLの認識としては止まりますよね?
他に"("カッコやスペースなんかでもURLの認識が止まると思います。
それをどうやって判断するのか・・・・。
1コずつ全角文字やスペースやカッコがあるかを判断するしかないでしょうか?
それだと、どんな文字でURLの認識が止まるのかを全て把握できなきゃいけないし・・・
>>494 URLには絶対に含まれない文字がある(日本語対応とかで多少状況は変わってきつつあるけど)。
単にその文字移行を認識しなければいい。
>>494 >それだと、どんな文字でURLの認識が止まるのかを全て把握できなきゃいけないし・・・
RFC読んでね。
どうでも良いけど使用できる文字の集合とできない集合を把握するなら明らかに前者の方が楽だと思うが。
>>495 様
>>496 様
お返事ありがとうございます。
とりあえず、これからRFCを検索して調べてみます。
ただ・・・使用できる文字の集合を把握したら、仮に1000文字だとして、
1000回分、Loop なり If なりで見ていかないとダメですよね?
かなり、厨プログラミング的な質問かもしれませんが・・・
おっと、ごめんよ。 全然文章読んでなかった(w 文字の比較はLike演算子を使えば楽勝です。多分。 ってかどうやったら1000文字もあるんだ(w
>>497 httpから1文字ずつループを回しながらLikeでチェック。
Likeなら範囲指定できるから幾分楽だよ。
chrHoge Like "[#-)+-;=?-~]"
って具合かな?
範囲がこれで正しいかは不明(^^; とりあえず実用上は支障無いと思うけど、
RFCをちゃんと調べた方がいいね…。
500 :
デフォルトの名無しさん :02/10/03 22:16
どなたか教えてくだされ〜 SetステートメントのHelpに >Set ステートメントを使って、オブジェクトへの参照を変数に代入します と書いてあるのですが、ここで言う"参照"ってメモリのアドレスの事を言っ ているのですか?それとも他のことですか? 教えてくだされ〜!
VBでOCR技術みたいなのを実装したいです。 無茶なのは100も1000も承知なんですが・・・。 どうにか出来ませんかねぇ? そもそもフリーソフトでOCRなんて使ってるソフト無いような。 ヤパーリ技術的に相当レベル高いのでしょうか。
502 :
デフォルトの名無しさん :02/10/03 22:39
>>500 ポインタだけど、直接メモリ操作はするなってことだろ。
>>501 不可能じゃないだろうけど、遅くて無茶だと思われ。
>>501 VBだから無茶なわけでないよ。
自分の技術の無さを言語の所為にすんなよ。
505 :
デフォルトの名無しさん :02/10/03 23:31
>>502 やっぱポインタですよね!って事は
-------------------------------------
1:Dim A As Object
2:Dim B As Object
3:
4:Set A = New ClassObject
5:Set B = A
6:Set A=Nothing
7:Set B=Nothing
-------------------------------------
5行目ではAのインスタンスのコピーが作成されるのでは無く、Aに代入された
Objectインスタンスの参照がBに代入される。
したがって、6行目ではClassObjectのインスタンスは削除されずに
7行目でClassObjectのインスタンスが削除されると言う事でよろしいのでしょうか?
グラスには、いくつかの氷が音も鳴くたたずんでいる。 喧騒が過ぎ去り、優雅な時を過ごした証のみが、そこにはあった。 琥珀色の液体と、懐かしい歌声が、少しの間忘れていた感覚を呼び覚ます。 少しの間・・・いや、何年も忘れていたのかも知れない。 夜の空白を埋めるために、ずっと探していた。 今となっては既に過去だが、そんな時の感覚を不意に思い出した。 楽しい未来の夢を見ていたわけではなく、ただ思いを受け取って欲しかった。
>>508 レスありがと〜
今日会社の先輩に
>>505 の事が全否定されたので、
激しく動揺していましたが、ぐっすり眠れそうです。
510 :
デフォルトの名無しさん :02/10/04 00:52
VBのスクロールバーに関する質問ですが MAX値が32767になっているのですが これをもっと増やすことってできるのですか? どなたかよろしくお願いします。
増やさなくてもn倍すればいいじゃん
>>510 マッピング、マッピングやっほ〜やっほ〜。
>>512 本当に初心者質問ですいません。
マッピングとは具体的にどのように
やればいいのですか?
よろしくお願いします。
株価のデータ集計ソフトを作っています。 株価は単位株でしか買えないので1000株単位なら 10260株−>10000株 10830株−>11000株 のようにある単位で四捨五入したいのですが、FORMAT関数の使い方がわかりません。 今のコードは KABUSU = Format$(KABUSU, "#.") とやっていますが何も変わらないのです。上の方の書き込みをみて色々試したのですが。。 vb6.0を使ってます。 KABUSUの値は10526.3157... という数字が入っており 結果は11000になってほしいのですが。 ある桁数で四捨五入はできないのでしょうか?
515 :
デフォルトの名無しさん :02/10/04 05:05
>>514 そのままでは出来ないから、1000で割ってあとで1000を掛ける。
516 :
デフォルトの名無しさん :02/10/04 06:17
そうかー全然気づかなかった。 どうもありがとうございます。 四捨五入ってできないんですね。EXCELとかはRound関数とかでできたような 気がしたので頑張ってやろうとしていました。
517 :
デフォルトの名無しさん :02/10/04 07:47
>>510 増やしても意味ないよ。
たいてい32767より小さくして使ってる。
>516 Excelの関数と同機能のVB用関数はいっぱい公開されてるよ。 ぐぐってみなはれ。
519 :
デフォルトの名無しさん :02/10/04 13:21
VBからCOBOLを呼ぶことできるの? VBを部品にしてCOBOLで制御したいんだけど。
>>519 VBからCOBOLを使いたいの?
COBOLからVBを使いたいの?
521 :
デフォルトの名無しさん :02/10/04 14:06
ExcelのVBAでデータ処理をしているのですが、Excel or VBAだからか やたら処理が遅い。VCがあるので、これをCに変換したらもっとサクサク 動くかなと思うのだが、VB自体よく分かんない。 ということで、VBからCとかJavaにコードを変換してくるフリーのソフトって ないですかね?
>>521 ない。あったとしてもコードの問題の可能性が大きいからどっちみち速くならないだろう。
>>521 VBでDLL化などして使ったら エクセルよりは 速いよ。
説明不足でした。 COBOLから、VB(画面制御部品P)を呼んで、 COBOLに値を返したいんですけど。
>>514 四捨五入のソースは結構公開されてるんですが、あえてFormat関数を使うなら
Dim D As Double
D = 10830
D = Format(D / 1000, "#0") * 1000
Debug.Print D
という手もあります。ただFormat関数は文字列を返すはずなのであまり誉められた方法では
ありませんが。(cDbl()で変換した方がよいかも)
>>510 元々プログレスバーは進捗状態を表すのでパーセントに変換してます。
>>524 どんな種類のCOBOLを使ってるか分からないけどBPCなんかだとCOBOLからプログラムを
実行できたはず。状態によって少し違いますが、
最初に起動するのがCOBOL以外の場合
COBOLランタイムのコマンドラインにexeを指定して起動する必要があります。
COBOLからexeを呼び出すShell関数はあったはず(メーカーによってまちまち)
値を渡すにはファイル経由orDB経由で渡してたと思います。
>521 やたら処理が遅いって、まず何処が遅いのかハッキリさせんと何もできんぞ。 どうせExcelのオブジェクトをムダにグリグリ弄繰り回してるだけだろうけど。
>>525 とあるOS(たしかXP)ではFormatは四捨五入じゃないから気をつけてな。
>>514 KABUSU=((KABUSU+500)\1000)*1000
浮動小数点の丸め誤差にも気をつけよう
VB5CCE試用中なんですが、 Freeで .EXE 作成ソフトってありますか?
実験データの解析用VBAで、先輩の置き土産です。 データ数が多いのと統計解析があるので、どうしても計算量が多いので 遅くなるのです。うーむ、VBからCへの変換ソフトってのは無いようですね。 Cへ変換できたら、計測からそのまま解析に繋げられて楽だなと思ったのですが。。。 BASICと名がつくものはN88BASIC以来さわってなかったが、VB勉強して 処理の流れを把握してから移植するしかないかな。
>>534 コードの最適化と、Professional以上でネイティブコンパイル、
CPUのアップグレード
なんてところがいいんじゃない?
>>534 なんかしたり顔で言っているけど、処理速度向上にJAVAを上げているようじゃ
全然分かってないだろ。
(°Д°)<言ってません。書き込んでるだけです。(プ お前は何か?PCの前でひとりでしゃべってんのか?あ?
>>537 はまともに会話すら出来ないわけですな...
>534 実際にVBA使った経験で演算は困るほど遅くなかったから、 セルからデータの取得、またはその逆の個所を見直して 配列を使って範囲を一気にって言う風に変えれば見違えるほど早くなったよ。
#とりあえず521≠537です(念のため)。
>>536 書き方が悪かったですね。Javaを上げたのは処理速度向上のためではなく、
VBよりはJavaの方が読めるので、Javaからなら自分でCに直せるなという
ことで、あのように書きました。誤解するような文章で申し訳ないです。
>>539 なるほど。まずそちらから検討してみます。
>>529 まじで。今使ってるのがWin2Kやからできたんか。使ってなくてよかった〜
そのうちやりかねんからな。でも何で今頃...調べてみよ。
大変ありがとー
Set fs = CreateObject("Scripting.FileSystemObject") これのScriptingって、なんのことでしょう?VBScriptのことでしょうか? 古いOSだと使えないとかありますか?
543 :
デフォルトの名無しさん :02/10/05 02:20
>>543 ありがと。
今みれないから後でみてみるよ
む、みてみたけど微妙。 とりあえずWin98以降なら標準でいけるようですね。
547 :
デフォルトの名無しさん :02/10/05 21:06
デスクトップとか、送るメニュー(SendTo)にショートカットを作りたいのですが たいていST4KIT.DLLだったかを使う物ばかりです VBではむりなんでしょうか?
548 :
デフォルトの名無しさん :02/10/05 21:19
どう言ったらいいのかわからないんですが、 電卓を作りたいです。 そこでウィンドウがアクティブな時に キーダウンイベントに反応できるようにしたいのですが、 上手くいきません。 ウィンドウに送られるキーダウン全てに反応するには どこに記述したらいいのでしょうか? つまりウィンドウのどこにフォーカスがあっても キーダウンをキャッチしたいわけです。 どうすればいいでしょうか? よろしくお願いします。
>>547 Delphiなら.lnkの作成もパスの取得も簡単ですよ♪
>>548 DelphiならKeyPreviewプロパティをtrueにするだけだよ♪
>>547 IShellLinkインタフェースを実装するとか。ぐぐって。
>>548 コマンドボタン上にあるときの←キーとかは取れないが、
KeyPreview=Trueで。
>550 助かりました、無事成功しました。 ありがとうございました。
>>552 なんで、作者に聞かんの ? 掲示板みたいな奴もあったよ。(あまり活発そうじゃないけど...。)
>>552 ビルドできない。
さらに、このソースコードはVB.NET用に直すのにも手間がかかるパターン。
VB6までのVBとVB.NETは別の言語と思ってもらった方がいい。
VB.NETで一から勉強して作るがよろしかろう。
お〜WindowsScriptオブジェクト使えばショートカット作れるんじゃん と思ってやったら Norton先生が反応しますた。 いや、つくれたんですけどね。これじゃだみだ。
>>546 世話が焼けるなあ。
プリインストされてるWSHのバージョン
Windows95 なし
WindowsNT4.0 なし
Windows98 WSH1.0
Windows2000 WSH2.0
WindowsME WSH5.5
WindowsXP WSH5.6
98や2Kはバージョン古すぎるから、最新版をインスト。
95やNTは新規インストすればいいだけ。
レスありがたう。
>>553 そうなんです、BBSあまりにもアレだったんで、
こちらでお聞きした次第です。
>>554 流用は無理ですか。。。
VB.NETって、VBと同じことができるんでしょうか。
他にUSBカメラからの画像キャプチャもしたいんです。
実は、簡易プリクラを作ろうと思ってるんですが、
そんな用途にもVB.NETは向いてますか?
どっちかというと、VB6の方がいいような。。。
ご意見をお願いします。
>>529 >>541 >>545 WinXPではFormat関数が内部で利用しているAPIの仕様変更の影響で
動作が四捨五入じゃなくなった。MSはそれを仕様だと逃げようとしたが、
苦情殺到のため、SP1で元の仕様に戻した。
SP1を入れないWinXPへの対応として、そのFormat関数を四捨五入する
仕様に戻すパッチも単独で提供されている。
>>556 なるほど、全然バージョンが違いますね
オンラインソフトにはむかないかなぁ?
今のところFileSystemObjectしかつかってないけど
やっぱりWinAPI使った方がいいかな
560 :
デフォルトの名無しさん :02/10/06 07:57
.iniファイルに書き込もうと思って調べたら WritePrivateProfileSection などを使用することがわかったのですが、 うまくいきません。 VB6.0で書くと構文エラーで赤字で表示されます。 これはなぜでしょうか? よろしくお願いします。
561 :
デフォルトの名無しさん :02/10/06 09:56
>>560 構文エラーだからです。それ以上でもそれ以下でもありません。
>>560 > .iniファイルに書き込もうと思って調べたら
> WritePrivateProfileSection
> などを使用することがわかったのですが、
> うまくいきません。
何で、.ini ファイルなんか使うの ?
GetSetting() / GetAllSettings() / SageSetting() / DeleteSetting() じゃダメなん ?
編集しやすいから
俺はiniを読むときはAPI使うが書くときは普通に開いて整形しながら書き込み
566 :
デフォルトの名無しさん :02/10/06 11:06
ファイルのopenについて聞きたいんですが、ファイルのopenに失敗した時 エラーのメッセージボックスを出したいと思っています。でもどうやって ファイルのopenに失敗したことを知ればいいのか分かりません。 どうすればいいでしょうか? 今は実行されると同時に次のようにしてファイルを読み込んでいます。 Public Sub Form_Load() Open "C:\AtomCount\M.txt" For Input As #1 For i = 1 To Ypixel For j = 1 To Xpixel Input #1, A(i, j) Next Next Close #1 'これと同じような動作を後2回します。
>>564 ならしょうがないね。
>>560 には declare 文を勉強してもらうしかないみたいね。
>>565 > 俺はiniを読むときはAPI使うが書くときは普通に開いて整形しながら書き込み
なんでそんなことを... ?
>>566 On Error Goto ...
を使う。これを使ってファイルが存在するか調べるって方法があったっけ。
ありがとうございます。使い方を調べてみます。
存在チェックならdir関数で充分だぽ 入力用で開くならエラーはこんくらいか
存在チェックならFindFirstFile()
ファイルを開く時の失敗を検出したいんです。On Error Gotoでは エラーナンバーが必要なようですが、ファイルを開くのに失敗した時 エラーナンバーは何になるんでしょうか?
Err.Numberでエラーナンバー取得しる
>>573 > ファイルを開くのに失敗した時エラーナンバーは何になるんでしょうか?
試せばいいと思うが ?
全部のエラーを知りたいなら、ヘルプで「トラップできるエラー」を調べるべし。
mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VS\1041\vbenlr98.chm::/HTML/vamsgtrappableerrors.htm ここみれ。 (インストールフォルダ違ったらなおして) というか読みとりエラーが発生するなんてファイルが存在しないときぐらいしかないんじゃないの? なら If Dir("C:\AtomCount\M.txt")="" then MSGBOX "エラーなのですです。。" Else Open〜〜〜 End If みたいなのじゃだめ?
577 :
デフォルトの名無しさん :02/10/06 12:21
VBでBase64エンコードしたいんだけど いいサンプル載ってるページ知ってる人いませんか? Googleでいくつかは見つけたんだけどいまいち。 いつもはVCでやってるんだけど久しぶりにVBに手ぇ出したら引っかかった。
>>576 ありがとうございます。見てみます。開くファイルは
データ数が指定されたテキスト形式の数字の羅列なので
簡単に「読み込みできない」状態にできるんではないかと思い、
できればファイルオープン時のエラーにしたいんです。
>データ数が指定されたテキスト形式の数字の羅列なので >簡単に「読み込みできない」状態にできるんではないかと思い ごめん俺には意味が分からない
>>575 試してみたら分かりました53でした。ありがとうございます。
53だとDirでやったのと同じじゃない?
>>542 ほんとだ。53ではないですね。でもデータを変えたらそれなりのメッセージが
出るように始めからなっているんですね。VB賢いなー
データの形式が
11,12,13,14,15
21,22,23,24,25
31,32,33,34,35
みたいな感じのテキストファイルということです。
>>576 ちゃんとやるならダメだろ。Dir() と Open の間にファイルが消されてるかもしれないしね。
つーか、Open でエラーとラップできるんだからそうすりゃいいと思う。
On Error Goto Next
Open "C:\AtomCount\M.txt" For ...
If Err.Number <> 0 Then
MsgBox "エラーなのですです。"
...
End If
ひょっとして For j = 1 To Xpixel Input #1, A(i, j) Next でエラーがおきるってこと? 読み込み回数を指定しているようだけど そうだと仮定して書くけど Do Until EOF(#1) = True Input #1, A(i, j) Loop こういう風にやるもんだよ。
>>584 行列の行数と列数の違うデータも後々取り込みたいので行数と列数
を指定していたほうがいいかな・・・・と思いました。
588 :
デフォルトの名無しさん :02/10/06 13:41
VisualBasic本体はどうやって手に入れるのですか?
>>588 > VisualBasic本体はどうやって手に入れるのですか?
お金もって、近所のヤ○ダ電機か LA○X にでも逝けよ。
591 :
デフォルトの名無しさん :02/10/06 13:52
便乗質問です。 これから秋葉行ってVB買ってこようと思ってます。 1万円のVB Standard版でもアプリケーションの配布ってできるもの? 教えてくだされ
>>558 笑える対応だね。仕様をコロコロ変えるのは、ほんとにみっともない。
>>594 ごめん、SP1へのリンクがあるね。(見落としてた)
逝ってきます・・・。
>>591 > いくらくらいですかね?
お店の Web ページ見るとか、お店に電話するとか考えつかないの ?
視野が狭くて考えられないんでしょ
>>550 さん
IShellLinkは、どうもProfessional以上じゃないとダメのようです
Leaningでは使えないらしいです。
Cで作られたDLLを利用するぐらいしかないでしょうか
Access2000でテーブル中の何も無い項目には NULLを入れたいと考えています。 >dim str as string >str = vbNullChar > >lrs.Open "testtbl", cnn, adOpenForwardOnly, adLockPessimistic > >With rs >.AddNew >.Fields("aaa") = "01" >.Fields("bbb") = str >.Update >End With の様な形でtesttblというテーブルにレコードをINSERTして "select * from testtbl where bbb is NULL" というようなSQL文でSQLを発行しても レコードはヒットしませんでした。 上記の様なSQL文でレコードを引っ張ってこれるようにするには どうしたらいいでしょうか?
あ〜朝から〜 朝からステーキ食べたら笑顔もドカンと世界一!!(ヨイショ!)
>>599 いいかげん、vbNullChar と vbNullString の違いを覚えれ。
>>601 お前こそいいかげん、vbNullString と Null の違いを覚えれ。
>>599 悪いことは言わないから(w)、転職、または他部門への異動を真剣に
検討して頂きたい。技術のない技術者(言葉が矛盾しているが w)の
存在は、顧客にとっても、同業者にとっても、迷惑(足手纏い)以外の
何者でもない。
デスクトップのフォルダーと、SendToのフォルダーってどうやって調べます? これまたWindowsScriptオブジェクトならわかったんですが、WinAPIでどうやるのか GetSystemDirectoryあたりとEnvironつかうっぽいですが
さっさと答えろよオラ
じゃヒントね。 名前がSHから始まる関数。
SHIT
SHOP
Get
SP
Path
ちなみにinfファイルを使う方法もあるぞ
僕は学生です。
615 :
デフォルトの名無しさん :02/10/06 19:06
僕も学生だよ。
無職をバカにすんな
俺は留年中です。
vbNullChar・・・Chr(0)と同じ。いわゆるヌル文字。C言語では(Windows的にはLPSTRでは)文字列の終端を表す。 vbNullString・・・String型の初期値。アドレスが0で値が""。APIに渡すときの(文字列型の)ヌルポインタとして利用する。 InputBox関数でキャンセルされたときの戻り値もこれ。 Null・・・Variant型の値の1つで有効な値が設定されていないことを示す。 DBから取得した値がNullのときはこれが返る。
>>618 丁寧な説明は大いに結構だが、肝心の
>>599 氏が理解できるかどうか、
甚だ疑問と思われ。
無駄な努力(猫に小判、豚に真珠に値する行為)は放棄すべし。w
・・・他のROM者にはプラスになるのかもしれないが・・・。
>>619 だから599宛てにしてないんだろうな。
>>619 答えるかどうかはお前の知ったことじゃない。
>>602 > お前こそいいかげん、vbNullString と Null の違いを覚えれ。
すまん、勘違いしてた。
>>618 >>619 がぐちゃぐちゃ言ってるけど、気にすることはないと思うよ。
役に立つ情報だしね。
逆切れですかな?
そんな基本中の基本でもめるな。
もしプログラムを職業としてるなら
>>603 が正しい。
>>627 =619=603
今度は自作自演ですかな?
629 :
デフォルトの名無しさん :02/10/06 19:59
ネットワークにつながったマシンのCDトレイをOPENすることは できますか?
>>605 ここまで露骨な偽物は2ch初めて以来初めてだ(w
>>606 あ〜これがIShellLinkってやつですね。
う〜んわりとめんどくさそう
正直WindowsScript使いたいけど、ダメかな?
95とNTは切り捨てるってことで
98,2000,Me,XPのバージョンの違いで挙動がどう違うか心配だけども。
>>630 SHGetSpecialFolderLocation+SHGetPathFromIDList
のことだったんだが。IShellLinkとは無関係。
98でもインストールオプションによってはWSHが
入ってない可能性がある。
どうせ95とNTを捨てるならShellオブジェクトを
実行時バインディングで利用した方がいい。
(95とNTでもIE4が入っていれば使える)
632 :
デフォルトの名無しさん :02/10/06 20:13
>>629 できる。
そのマシンの前に行って、CD-ROM ドライブのボタンを押しな。
なぜVBにはまともなスレがないですか? マジ質問なんですけど。だれかたてて。
↑【ゲイ】オナニー用おかず画像ver.11【専用】
637 :
デフォルトの名無しさん :02/10/06 21:44
昼間はどーも。 base64は力ずくで何とかしました。 ところでopen "hoge.txt" for input as #1ってしたときに カレントフォルダのファイルを読みに行かないようなんだけど 俺のopenに関する知識が間違ってる? "実行時エラー 53 ファイルが見つかりません" 泣きそう。
> 俺のopenに関する知識が間違ってる? 多分、お前のカレントフォルダに関する知識が 間違ってるんだろうよ。
641 :
デフォルトの名無しさん :02/10/06 22:32
ども。 exe作って c:\testに入れて c:\test\hoge.txt作って Open "hoge.txt" For Input As #1 で実行時エラー。 何でなんだろ。 あ、一応フルパス指定なら読めます。
>>642 > 何でなんだろ。
お前のカレントフォルダに関する知識が
間違ってるんだろうよ。
>>642 カレントフォルダがわかるようにデバッグすれば?
メッセージボックスだすとか。
646 :
デフォルトの名無しさん :02/10/06 23:05
>>642 exeで実行した時のエラーメッセージって何?
648 :
デフォルトの名無しさん :02/10/06 23:15
AccessでADO使ってんですが、これを会社の端末に持っていきたいのです。 で、 ・VBをインストールしていない。 ・VBランタイムは上書きしてはいけない。 という端末の為、ADOの参照ファイルのみ持って逝きたいのですが、 msado21.tlb(ADO2.1の場合)というファイルのみ持って逝けば動くのでしょうか。 他にもあるのであれば、どれとどれをというのを教えていただきたいのですが。。。 あ、特殊なコントロールは使っていません。Accessのバージョンは同じです。
649 :
デフォルトの名無しさん :02/10/06 23:16
>>647 exeで実行してそういうメッセージなら、そりゃファイルがないんだろうな。
ファイル名チェックしろよ。
650 :
577本物 ◆XlX2jv26Qo :02/10/06 23:17
初めて騙られますた。 --------------------------- pdxsend --------------------------- 実行時エラー '53': ファイルが見つかりません。 --------------------------- OK --------------------------- です。
651 :
デフォルトの名無しさん :02/10/06 23:18
>>648 「バージョン同じです」って、おまえバージョン書いてないじゃん。
652 :
577本物 ◆XlX2jv26Qo :02/10/06 23:20
あーごめん。 3つぐらい開くファイルあって一個だけ間違ってた。 すべて俺が悪かった。 お手数かけました。
653 :
デフォルトの名無しさん :02/10/06 23:20
>>650 まあ経験。
ファイル名の確認した? フォルダの表示オプションとかは?
dos窓開いて確認してみ。
>>650 なんべん同じこと書かせりゃ気が済むんだ?
お 前 の カ レ ン ト フ ォ ル ダ に 関 す る 知 識 が
間 違 っ て る ん だ ろ う よ
655 :
デフォルトの名無しさん :02/10/06 23:21
>>651 97です。
それに関して、何も必要なファイルは無いです、という意味で
「バージョンは同じです」と書いたつもりっす。
必要なファイル、ご存じですか?
656 :
デフォルトの名無しさん :02/10/06 23:24
>>655 そもそもその端末ではVBE(ビジュアルベーシックエディター)は
インストールされてないのか? 普通access97と一緒にインストール
されるはずだが。
MDACいれろやチンカス
659 :
デフォルトの名無しさん :02/10/06 23:34
チンカスとはご挨拶だなチキン野郎。
>>656 Accessだけなら他に何もファイルを入れなくても当然動きます。
ADOを使っているので、それ系の参照ファイルを入れないといけないのです(多分)。
>>657 MDACってVBランタイム系のファイルは何も入っていないのでしょうか。
細かく書いていなくて申し訳ないのですが、会社にはVB5ランタイムが
入っていて、VB6ランタイムで上書きすることが許されないのです。
ADO入りのVBランタイムは大概VB6ランタイムなので。。。
ランタイムに入っているファイルが上書きされやしないかと実験も
あまり出来ていない状況なのです。。。
>>659 騙り師、ごくろうさまです。そろそろ飽きようね。
だったら最初からDAOでもブン回す仕様にしとけやハナ汁娘が
663 :
デフォルトの名無しさん :02/10/06 23:40
>>662 俺はハナ汁娘じゃないぞこのマントヒヒが。
664 :
デフォルトの名無しさん :02/10/06 23:43
>>660 あのさ、どっちにしてもコード(モジュール)書かなきゃADOでアクセスできないだろ?
で、普通そのためのVBEがインストールされてると思うんだよ。
で、そのメニューの「ツール]「参照設定」でActiveX Data Object が参照
されてるはずなのね。
どうなの、そのへん?
誰がマントヒヒだこの野郎。そんなお前はモヤシ組のカイワレ君だろうが。
666 :
デフォルトの名無しさん :02/10/06 23:46
>>664 ていうか、もって行きたいって書いてるから当然モジュールあるはずだな。
そのmdbファイル。
なんでMDACがVB6のランタイムなんだこの野郎。関係ないだろダボハゼ野郎。 しかも2.1だろこの野郎。IE5でも入ってりゃ充分だこのバカ野郎。
ほんとVBって駄目だな
>>662 すみません、最近、本見て始めたもので、ADOしかよく分からないのですよ。
JETの場合はDAOの方が効率良いみたいなのをよく見るので、
いずれ勉強しようとは思うのですが。
>>664 AccessのVBEから参照設定してますよ。
Accessインストールだけじゃ、多分、ActiveX Data Objectは入らないと思うのです。
VBをインストールしているから参照設定の項目にも並ぶってもんで。
で、会社にはVBはインストールされていない。
すると、ADO関係の所でエラーが出るでしょう?
まさか、最近のバージョンではAccessだけでActiveX Data Objectも入るんですか?
あらあら、書き込むの遅いからすごいレス付いてるな。 IE5入れればActiveX Data Object2.1入るんすか。。。 ちょっとやってみることにします。 ありがとうございます。
671 :
デフォルトの名無しさん :02/10/06 23:54
>>669 > まさか、最近のバージョンではAccessだけでActiveX Data Objectも入るんですか?
入るよ。
逆にDAOは入らんよ。
>>671 そうだったのか…。
まだ97しか触ったことないんすよ。勉強になります。。。
>670 ちがうよ。MDAC2.1入れるのに、IE5の環境が必要なだけだよ MDACは分かるよな MDACTYP.EXEとかそんな感じのファイルだよ
675 :
デフォルトの名無しさん :02/10/07 09:11
>>648 質問を読む限り、VBとは ぜんぜん関係ないようだが。
なぜVBにはまともなスレがないですか? なぜVBにはまともなスレがないですか?
>>676 スレがないんじゃなくて まともじゃないレスがあるだけ(w
ステートメント1 ステートメント2 があって、 1を実行し終わって少し時間を置いてから2を実行したい場合はどうするのでしょうか? ステートメント1 timer1_timer ステートメント2 としてtimerを割り込ませてもすぐにステートメント2が実行されてしまいました。
Option Explicit Dim i, t As Integer '---------------------------------- Private Sub Form_Load() Form1.Caption = "始まり" '(ステートメント1) Timer1.Interval = 1000 t = 5 Timer1.Enabled = True Timer1_Timer Form1.Caption = "終わり" '(ステートメント2) End Sub '----------------------------------- Private Sub Timer1_Timer() i = i + 1 If i > t Then Timer1.Enabled = False: Exit Sub End Sub '----------------------------------- これを実行すると 本当は5秒後にキャプションを"終わり"にしたいのに 実行開始直後に"終わり"と表示されてしまいました。
>>679-680 悪いことは言わないから(w)、転職、または他部門への異動を真剣に
検討して頂きたい。技術のない技術者(言葉が矛盾しているが w)の
存在は、顧客にとっても、同業者にとっても、迷惑(足手纏い)以外の
何者でもない。
683 :
デフォルトの名無しさん :02/10/07 17:06
(w (w (w ダサッ
>670-680が職業プログラマだとは限らんだろうに。
686 :
デフォルトの名無しさん :02/10/07 17:33
>>680 タイマーの使い方を知らないみたいだな。
タイマーは インターバルに指定した時間がたったら、実行されるイベントだ。
正解はこれ。
Option Explicit
Public i, t As Integer
'----------------------------------
Private Sub Form_Load()
Form1.Caption = "始まり" '(ステートメント1)
Timer1.Interval = 1000
t = 5
i = 0
Timer1.Enabled = True
End Sub
'-----------------------------------
Private Sub Timer1_Timer()
i = i + 1
If i > t Then
Timer1.Enabled = False
Form1.Caption = "終わり" '(ステートメント2)
End If
End Sub
'-----------------------------------
687 :
デフォルトの名無しさん :02/10/07 17:44
タスクバーに表示されている他のウィンドウの アイコンとキャプションを変えるには? なおウィンドウのハンドルは取得してます
>>687 悪いことは言わないから(w)、転職、または他部門への異動を真剣に
検討して頂きたい。技術のない技術者(言葉が矛盾しているが w)の
存在は、顧客にとっても、同業者にとっても、迷惑(足手纏い)以外の
何者でもない。
689 :
デフォルトの名無しさん :02/10/07 18:04
>>688 悪いことは言わないから(w)、他のスレ、または他の板への異動を真剣に
検討して頂きたい。答える気のない技術者の存在は、このスレの住人にとっても、
同業者にとっても、迷惑(足手纏い)以外の何者でもない。
>>686 さんありがとうございました。
なるほどぉ。
timer1_timerの中にステートメント2を入れるんですね。
i=0も言われて気づきましたが必要ですね。
>>682 さん
かばってくれてありがとうございます。
>>685 さん
たとえ肉体労働でもいいのでアルバイト探し中です。
つうか初心者質問スレで「転職しろ」はねえだろよ糞が。
おまいら、しょせん似た者同士なんだから喧嘩なんかするなよ。
初心者っていっても少しは本読んで勉強しる
いやだから皆が皆職業プログラマだとは鍵乱打朗に。
限らんだろうに。
僕は学生で、趣味でプログラミングをやっています。 それなのにいきなり転職だ迷惑だ言われてしまっては 面食らってしまいます。 もう少し柔らか頭で行きませんか? 微笑を絶やさぬ人はときめきを絶やさぬ人 という詩もあります。 いつも喧嘩腰じゃ駄目ですって!
あのー
>>697 は
わたしじゃないです。トリップつけてみました。
これ僕じゃないと言ってる
>>698 も僕じゃないです。というより僕の書き込みを予想して先に698のようなカキコをしたんでしょうね。
だいぶ前のスレの伝説の177さんもだいぶにせものにやられてたようですが。
いやどうでもいいし。
702 :
デフォルトの名無しさん :02/10/07 19:32
っていうかコテハン いらないよ。 名前書かなくてもいいしね。 誰が どの発言でもいいのだ。 問題が 解決されれば。
解決して
友達いない君がここにも出没しているようだね。
>>704-705 と私も思ったんですがダメでした
申し遅れましたが変えたいアプリとはかちゅ〜しゃです
どうもかちゅだとタイトルバーは変わるもタスクバーがそのままみたい
フツーのアプリだとちゃんと変わりますのでご回答としはバッチリなのですが
ホント申し訳ないです
つーワケでよろしくおながいします
あっ!かちゅ〜しゃのクラス名はこれでいいと思います TKatjushaMainForm
みんな会社や学校でかちゅ〜しゃ使おうと必死だな(w
興味津々デスワ。 是非やり方教えて下され。(w >かちゅ〜しゃ
>>711 悪いことは言わないから(w)、転職、または他部門への異動を真剣に
検討して頂きたい。技術のない技術者(言葉が矛盾しているが w)の
存在は、顧客にとっても、同業者にとっても、迷惑(足手纏い)以外の
何者でもない。
>>712 そのコピペうざい。
が、このスレ見ているとその意見自体に当てはまる人は腐るほどいる。
そういった人たちが、職業がプログラマでないことを切に願う。
>>707 > どうもかちゅだとタイトルバーは変わるもタスクバーがそのままみたい
タスクトレイのことではないよね?
WM_SETICONでは大小両方のアイコンを変えてみた?
>>707 VCL製のアプリケーションではアプリケーションウィンドウというサイズ0の見えないウィンドウが存在している。
タスクバーの文字はこのアプリケーションウィンドウのタイトルなのでそれを変えればよい。
716 :
デフォルトの名無しさん :02/10/07 22:14
ご教授賜りたく。 フォーム上でのマウスの右クリックメニューを作りたいのですが サパーリ分かりません。 MSDNで引いても分かりませんでした。 (検索語が悪いのかな?) 教えていただけないでしょうか。
>>714 スマソ
後述の通り解決しますた
>>715 できました!確かにありました
クラス名:TApplication
タイトルバーのテキスト:かちゅ〜しゃ
ナルホド目からうろこです
どうもでした
>>716 検索が悪い。
右クリックのイベントのとり方が分からないのか、メニューの作り方が分からないのか。
どちらにしろVBなら5分もあれば実装可能だな。
719 :
デフォルトの名無しさん :02/10/07 22:24
>>718 はい、メニューの作り方すら分かりません。
イベントのとり方はマウスクリックのイベントを追えばいいんでしょうか?
>>719 はい MouseDown ででも
検索なら 'PopupMenu メソッド' で探してみてください
てーかその程度ならMSDNでなくぐぐれば一発かと
721 :
デフォルトの名無しさん :02/10/07 22:35
>>720 (゚д゚)肛門から宿便が出ますた。
ありがとうございますた。
メニューエディタで作れんのかよ・・・・・・・
722 :
デフォルトの名無しさん :02/10/07 22:38
かちゅ〜しゃといえば、二重起動防止してあるけどこれ解除する方法はないの?
ソースいじれよ
724 :
デフォルトの名無しさん :02/10/07 23:33
質問させてください。 VBコマンドボタンを押すと選択したPDF文章を印刷する方法を教えてください。
726 :
デフォルトの名無しさん :02/10/08 00:05
質問させてください。 VBコマンドボタンを押すとネット上からエッチな写真を収集する方法を教えてください。
フォームに自爆ボタンを付けてください。
728 :
デフォルトの名無しさん :02/10/08 01:23
こんなスレがあったとわっ ということで、早速質問させて頂きます 今、Inetコントロールを使ってHTTPでアクセスするツールを作っているのですが その際、User-AgentやRefferを変えることは可能なのでしょうか? それらしきものは全く見当たらないのですが・・・
729 :
デフォルトの名無しさん :02/10/08 01:39
こんばんは。初めまして。 いきなりですが、質問させてください。 動作中のVBアプリがタスクマネージャのアプリケーションの項目に表示されないようにしたいのですが、可能でしょうか? 可能でしたら、方法を教えてもらえないでしょうか?ヒントだけでもありがたいです。 過去ログにあるようでしたらあると言って貰えると助かります。 よろしくお願いします。
730 :
デフォルトの名無しさん :02/10/08 01:49
こんばんわ Webbrowserコントロールをでブラウザを作ろうとしてるのですが Ctrl + Nを押すとIEが立ち上がってしまいます。 IEが立ち上がらないようにするにはどうすればいいのでしょうか。 よろしくお願いします。
731 :
デフォルトの名無しさん :02/10/08 01:51
こんばんは ばーか
こんばんわんこ
こんばんま
10 input "suuji ..... ",suuji 20 print suuji 30 end これをVBで書いたらどうなるの?教えて偉い人!
735 :
デフォルトの名無しさん :02/10/08 09:01
>>734 VBに inputに なるものは ない。
代わりに テキストボックスがある。
まず コマンドボタンと テキストボックスを貼り付けて
コマンドボタンをダブルクリックして 出てきたところに
msgbox text1.text
と 書けば よい。
736 :
デフォルトの名無しさん :02/10/08 09:03
あ もちろん 734に 書かれている 意味合いのinputが ないということだよ。 VBにあるinputは ファイル等から読みこむものだ。
これでいいだろ? (w 10: suuji = InputBox("suuji ..... ") 20: MsgBox suuji 30: End
Len(vbCrLf)を実行するとなんと2が返ってくるけど1じゃないのはなぜ? 改行コードの長さを求めると1が帰ってくる関数はあるの?
>>738 悪いことは言わないから(w)、転職、または他部門への異動を真剣に
検討して頂きたい。技術のない技術者(言葉が矛盾しているが w)の
存在は、顧客にとっても、同業者にとっても、迷惑(足手纏い)以外の
何者でもない。
>>738 CRで1バイト、LFで1バイトだが。
CRLFの改行は2バイトであってる。
メモ帳で改行一個のファイル作ってサイズ見て見れ?
2バイトだろ。
>>740 うおーそうだったのか。1+1で2バイトだったなんて。
ありがとうございます。感激。
>>740 間違ってるよ
バイトじゃなく単に文字数ですよ
Pcture1(i)のようにピクチャーボックスが配列になってたら For i=0 to 100 picture1.visible=false next のようにたくさんのピクチャボクスvisibleをいっぺんにfalseにできるけど、 picture1 picture2 picture3 のように独立したピクチャをいっぺんにいじりたい場合はどするの? For i=0 to 100 (picture & i).visible=false next だとエラーがでる・・
>>746 3行目
picture1(i).visible=false
ですた
>>746-747 Controls("Picture" & i).Visible = False
くだらん質問ばかりすんなよ
くだらなくねえだろ
>>748 さん
VB極めた気配がしまつ。。
ちょっとやってみて報告します。
>>749 さん
私は初心者に超がつくのかもしれません。超初心者スレができないかな。
みなさん、私なんかの為にけんかしないでください。 気持ちはとても嬉しいですから(*^ _ ^*)
754 :
デフォルトの名無しさん :02/10/08 13:13
>>748 便乗質問ですが、
strTmp1
strTmp2
という変数があり、
For lngCnt = 1 To 2
strTmp & CStr(lngCnt) = ""
Next lngCnt
みたいなのをやりたいんですが、この場合はどうしたらいいんでしょうか?
756 :
デフォルトの名無しさん :02/10/08 13:20
質問です。 シングルコーテーションで囲まれた CSV形式のテキストファイルを作りたいのですが どうやればいいのでしょうか? お願いします。
>>756 やってみて分からない個所だけ聞けよ
丸投げはヤメレ
758 :
デフォルトの名無しさん :02/10/08 13:21
>>755 もちろん普通は配列にするのはわかってますが、
こういうのもできるのかなと思っての質問です。
Dim i As Integer For i = 1 To 2 Controls("Picture" & i).Visible = False 'いったん消して Next Dim Str1 As String Str1 = "Picture" 'こんなこともできるのか? For i = 1 To 2 Controls(Str1 & i).Visible = True '再び表示 Next ありがとうございました。 見事にできました。 Contorolsも知らなかったので検索キーワードも思いつきませんでした。 やはり分厚い本を最初から最後まで読まないとこういったことは覚えられないか。
>>756 Printで一行分の文字列書けばいいんじゃ
Print #1,"'" & Test1 & "','" & Test2 & "'" ってこと?
>>759 パブリックな変数なら CallByName で出来るかも。
試してないのであくまでも「かも」ですが。
765 :
デフォルトの名無しさん :02/10/08 13:53
>>728 object.Execute [url[, operation[, data[, requestHeaders]]]]
MSDEのここのページを見ると詳しく書いてある。
requestHeaders の部分に必要なHttpヘッダを入れる。
766 :
デフォルトの名無しさん :02/10/08 13:54
>>764 文字列中にシングルクォーテションが入っていた場合が考慮されていない。
どのみち、CSVに書き出すのは簡単だが、取り出すのがめんどい。
>>764 なんか簡単な方法あるのかなと思ったのよ
長くなると面倒くさくて
ありがとう
そぉりぃ。MSDNでした。 Inet1.Execute , , , "Referer: maeno.page" & vbCrLf & _ "User-Agent: Mybz/1.00" & vbCrLf
>>758 すいません、できれば、User-Agentとかを変える方法の
ヒントとかお願いできないでしょうか
オレが738の書き込み時間から今の時間までに試したり思ったりしたこと。
-------------------------------------------------
実験1
Dim i As Integer
Dim Ary() As Integer
i = 1
ReDim Ary(i) '動的配列のサイズ指定に変数iを使うことができた。
Dim sAry(i) As Integer '静的配列の宣言にはこの便利な方法は使えなかった。
------------------------------------
実験2
Dim j=5 '変数の宣言と同時に値を代入することはできなかった。
------------------------------------
思ったこと1
>>754 のようなかんじのプログラム。
For i=1 to 10
Dim BaseName & i as integer'たぶんエラーがでるけど、こんなかんじで変数を宣言できたら便利
Next
754やこのようなことは配列やコレクションでないとできないのかも。
---------------------------------------
初心者がほえてるのは見苦しいが
まあ勝手にムカついてくれ
771 :
デフォルトの名無しさん :02/10/08 15:50
>>770 10時50分から 14時27分まで 考えてたのか。
ヒマだね〜〜〜。
VB使うくらいならDelphi使いたいよな
775 :
デフォルトの名無しさん :02/10/08 16:13
いいよね
776 :
デフォルトの名無しさん :02/10/08 16:17
>>773 使う言語の指定が なければ Delphiを使いたいぜーーー。
ホント VBしか しらねぇやつばっかで 困っちまうぜ。
777 :
デフォルトの名無しさん :02/10/08 16:18
こまるよね
そうでもないよ
↑にせものをにせものと見抜けないとレスを返すのも難しい。
そうだよ
そうかな
782 :
デフォルトの名無しさん :02/10/08 16:50
DataGridコントロールにRecordSetを連結させたあと、 DataGridをクリックした場合、その行のレコードの内容を取得したいのですが、 どうしたらいいのか教えてください。
Private Const SELECT_STRING As String = _ "SELECT * FROM Contacts ORDER BY LastName, FirstName" Private Const CONNECT_STRING As String = _ "Data Source=Bender\NETSDK;Initial " & _ "Catalog=Contacts;User Id=sa" Private m_DataSet As DataSet Private Sub Form1_Load(ByVal sender As Object, ByVal e As _ System.EventArgs) Handles MyBase.Load Dim data_adapter As SqlDataAdapter data_adapter = New SqlDataAdapter(SELECT_STRING, _ CONNECT_STRING) data_adapter.TableMappings.Add("Table", "Contacts") m_DataSet = New DataSet() data_adapter.Fill(m_DataSet) dgContacts.DataSource = m_DataSet.Tables("Contacts") End Sub
この程度でプロなら自称素人の私はプロ中のプロだな
786 :
デフォルトの名無しさん :02/10/08 17:50
弱い犬ほどよく吠える
>>786 データベースをやってるとプロの気配がただようんだ。
ぼけぼけですた
>>765 めっちゃどうもありがd
790 :
デフォルトの名無しさん :02/10/08 18:04
>>786 VBって、とっつきやすいから他言語を使っている人から見れば想像を
絶するような初心者が多い。
このスレの趣旨であり大部分を占める初心者質問からみれば十分まと
もなコードだと思うよ。
>783 つーかこれあきらかにMS系のサンプルコードだと思うんだが。
792 :
デフォルトの名無しさん :02/10/08 18:20
>>782 DataGridコントロールにRecordSetを連結しているという事は、
そのレコードの内容は既にグリッドに表示されてると思うのだが。
たぶんこのスレ、気が弱い人は質問できない。
そもそも気の弱い人は2ちゃんに来ない。
ひろゆきが好きでないと2ちゃんに来れない
797 :
デフォルトの名無しさん :02/10/08 19:36
vb6のdirlistboxやfilelistbox等を使用して ftp接続したサーバー(linux)のディレクトリを 表示することはできますか?
正直VBを全くのド素人の状態から初めて1ヶ月チョット。 このままVBを頑張るか、他の言語へ乗り換えるか・・・。 なんか色んなスレROMってると、 VBでは難しいこと出来ないみたいなことばっかかいてあったし。 どうなんでしょう?
自分が何作りたいかによるだろ。
そもそも難しいことが何かわからない。 VBで出来ないことも実際あるけどそれが難しいこととは別の話しだし。
801 :
デフォルトの名無しさん :02/10/08 19:49
VisualBasic6.0上では、隠しファイル(フォルダも含む)を参照することが出来ません。 そこで、getattr関数を使って、ファイルの属性を調べ、隠しファイルであれば setattr関数を使って属性を変更してまた戻しています。 で、質問なのですが、 「最近使ったファイル」を調べたいのですが、これは「隠しフォルダ」になっています。 MSDNで調べてみると。setattr関数って、ファイルしか属性変更できないみたいなんですけど、 どのように、フォルダの属性を変更すればよいのでしょうか? あるいは、属性変更せずに隠しフォルダの中身を参照することはできるのでしょうか? どなたか分かる方ご教授願います。
>>801 参照ってなにで参照してんのよ?
> そこで、getattr関数を使って、ファイルの属性を調べ、隠しファイルであれば
> setattr関数を使って属性を変更してまた戻しています。
つか、やめれ。
802様 >参照ってなにで参照してんのよ? フォルダの中身を調べて、中のファイルのパス名を取り出したいのです。 >> そこで、getattr関数を使って、ファイルの属性を調べ、隠しファイルであれば >> setattr関数を使って属性を変更してまた戻しています。 >つか、やめれ。 申し訳ございませんが、なぜ駄目なのか教えていただけないでしょうか?
質問の回答にはなってませんでした。 >参照ってなにで参照してんのよ? フォルダの中身を調べて、中のファイルのパス名を取り出したいのです。 ですから、Dir関数を使おうかなと
>>798 ハードウェアよりのことはCやアセンブラ。
データベース系はVB。
VBやってるとVBscriptが使えるASPの習得も楽で、
ASP + SQL Server を運営して2ちゃんのようなサイトを作ることもできる。
( ´_ゝ`)フーン
駄目だこりゃ
>>805 なるほど、これはもう少し慎重に選択してみたいと思います。
ありがとうございました。
ここはとても温和で気軽にカキコめるスレだと思うがな 他に比べれば
なんでも知ってる人は聞かれなくても自分からどんどん教えたくなるもんさ
>>797 そn二つで出来るかは知らないが、普通のリストボックスじゃダメなん?
FTP接続は、アップロード、ダウンロード、ディレクトリ表示などどれも超簡単。
>>801-803 801のプログラムが実行中に、OSが落ちようとも電源が落ちようとも
どんな事態が起きようとも絶対に、ファイルの属性を元に戻す自信があれば、
別にそのように作ってもいいんじゃない。
>>798 VBを一ヶ月ちょっとやって、まだまともに出来ないのであれば、
他の言語に移るのは止めておいた方がいい。
かつ、難しいといわれるプログラムもしない方がいい。
814 名前:デフォルトの名無しさん[sage] 投稿日:02/10/08 22:07
>>801-803 801のプログラムが実行中に、OSが落ちようとも電源が落ちようとも
どんな事態が起きようとも絶対に、ファイルの属性を元に戻す自信があれば、
別にそのように作ってもいいんじゃない。
816 名前:デフォルトの名無しさん[sage] 投稿日:02/10/08 22:23
>>814 マルチタスクって知ってるか?
810様 レスありがとうございます。 ヘルプを調べました。フォルダに関する記述は「vbDirectory」のみです。 これはつまり、「隠しフォルダ」については、 普通のフォルダに属性を変更することができない、ということをあらわしているのでしょうか? 814、817様レスありがとうございます。 よく分かりました。なぜ隠しフォルダなのか分からないまま 突発的なエラーが出たときにきちんと対処できるか どうかという問題ですね。
VBで出来ないことって何━━(゚∀゚)━━ッ??
816は何が言いたいのか?
>>818 んーと、そろそろアレなので解答というか…。
「vbDirectory or vbHiddon」とか。
罠があるのでgetattrしてチェックした方がいいとか、そのgetattrには罠があるとか。
こそらへん調べるといいかな。
>>819 大抵のことはできるでしょ。
VBの基本コンポーネントだけでAPI使用禁止、とか言われたらかなり無理が
出るけど…。
ただ、APIを大量に使い出すとVBである意味がなくなる罠。
まぁ、VBにも他の言語にも向き不向きがあるってこった。
>>819 OSがWindows以外で動作させる事。
つまり、最高精度でWindowsだからあんまり精度を求める処理は無理。
また、高速なスピードを要求する処理。
マルチスレッドは無理すれば何とか。
821様。レスありがとうございます。 どうやら私的にもう少しヘルプの熟読と、VisualBasic解説HPの検索が必要みたいです。 第2引数の複数選択が出来るみたいですね。 getattr関数、dir関数ともに勉強し直してきます。 ここのスレの皆様、ご教授大変ありがとうございました。 またどうしても分からないことがありましたら、 よろしくお願いいたします。
>>820 そのプログラムが属性変更して動いている最中でも
別のプロセスが動く可能性があるということですが。
これでもまだ理解できませんでしょうか?
排他ロックが必要か
827 :
デフォルトの名無しさん :02/10/09 01:15
ファイルリストボックスやコモンダイアログでファイルを複数選択して、同じ操作を させたいのですが、どのような記述をすればいいでしょうか? 内容は、バイナリデータをデコードして、CSVファイルにして出力させるというものなのですが。 よろしくお願いします。
>動作中のVBアプリがタスクマネージャのアプリケーションの項目に表示されないようにしたいのですが、可能でしょうか? 自己レスです。 過去ログにShowWindowで出来るようなことが書かれていたので試してみました。 hWnd = FindWindow(vbNullString, "キャプション") ShowWindow hWnd, SW_HIDE で、"キャプション"に自分以外のアプリのキャプションを指定するとそのアプリはタスクマネージャに表示されなくなりました。 しかし、自分自身のキャプションを指定すると、画面上には表示されなくなるのですがタスクマネージャには相変わらず表示されていました。 これはこういうものなのでしょうか?ご存知の方教えて頂けないでしょうか。よろしくお願いします。
>>828 オーナーウィンドウの方を操作すればできそうだが。
>>829 さま
アドバイスありがとうございます。
オーナーウィンドウのハンドルを取得してShowWindowしたところ、願っていた動作をするようになりました。
ほんとに助かりました。やっと眠れます。
オーナーウィンドウの意味がまだよく分かっていませんが、ぼちぼち勉強していきたいと思います。
ありがとうございました。
831 :
デフォルトの名無しさん :02/10/09 05:45
ちんこみたい
833 :
デフォルトの名無しさん :02/10/09 11:14
クラスに開始メソッドと停止メソッドを追加したいんですが 予約語で命名出来ません。この場合何てつけますか? ダメな例 start stop, start end, begin end, open close
834 :
デフォルトの名無しさん :02/10/09 12:27
質問です。 ダイヤルアップ環境で、オフライン中にインターネットに接続しようとすると ダイヤルアップのウィンドウが表示されますが、 これを画面に表示させないでWebアクセスなどを試みることは可能でしょうか? (バックグラウンドで無理やりダイヤルアップ接続する方法とかではありません。) 繋がっていなかった場合はなんらかのエラー検出が出来る方法であればありがたいです。 どなたかご存知でしたら教えてもらえないでしょうか。よろしくお願いします。
ダイヤルアップのプロパティで「ダイヤルしない」にすれ。
836 :
デフォルトの名無しさん :02/10/09 13:02
>>833 start too stop, start too end, begin too end, open too close
start stoped, start ending, begin ending, open closed
>>835 さん
情報ありがとうございます。
ちょっと手元にダイヤルアップ環境がないので調べられなかったのですが、
VBアプリでそのプロパティの項目を「ダイヤルしない」に変更してしまえばよいということですかね?
で、終わったら元に戻してやればいいと。変更の仕方を調べてみます。(分かるかなぁ?)
どなたか他にも情報ありましたらよろしくお願いします。
>>835 丁寧な説明は大いに結構だが、肝心の
>>834 氏が理解できるかどうか、
甚だ疑問と思われ。
無駄な努力(猫に小判、豚に真珠に値する行為)は放棄すべし。w
・・・他のROM者にはプラスになるのかもしれないが・・・。
>>838 そこまで言う事無いでしょう?
なんなんだ?あんたは
「この板はプログラムを作る人のための板です。」
>>839 ダイアルアップ接続中かどうかを調べるAPIならいろいろあるよ
対象のOSは何?
>>839 コピペにマジレスカッコ(・∀・)イイ!!
って どこでみたんだったかな
>>838 の文章。。
843 :
デフォルトの名無しさん :02/10/09 15:15
838は コピペ そんなこと言うなら、 838が 834が理解できるように 説明しろ。 説明できないのに 否定だけするな。
すみません、言葉が足りませんでした。
「VBアプリ」でWebアクセスなどを行う場合にダイヤルアップのウィンドウを表示させない方法を探していました。
>>840 さん
そうなんですか!
対象OSはWindows95OSR2以降、WindowsNT4ServicePack3以降のWindowsです。
(幅広くてすみません。)よろしくお願いします。
845 :
デフォルトの名無しさん :02/10/09 15:23
「このスレは初心者のためのスレです。」 ですが、とりあえず勉強してる、調査したなどの努力は みせましょうね。
>>845 さん
ご忠告ありがとうございます。
ダイヤルアップ関連については初めてでしたので、つい何も考えずに質問してしまいました。
これからは気をつけたいと思います。
少し調べたところRASというAPIがなにやら使えそうなので、もう少し調べてみようと思います。
ホントすいません。
849 :
デフォルトの名無しさん :02/10/09 18:00
VBScriptですが フォームのドロップダウンリストの値を取得するには form.name.options.value では、ラジオボタンの値を取得する場合はどうすれば良いですか?
850 :
デフォルトの名無しさん :02/10/09 21:45
851 :
デフォルトの名無しさん :02/10/09 23:07
よろしくお願いします。 1.ListBox上で、項目が選択されていない状態で右クリックしたとき、 項目が選択されて、かつ右クリックメニューが表示されるようにするのはどうしたら言いのでしょうか。 (右クリックメニュー表示は実装しています。) ListBoxのクリックイベントと、MouseDownのイベントどちらかに記述するのでしょうか。 MSDNで引いても、ググってもわかりませんですた。 ご教授よろしくおながいします。
ふつう右クリックのメニューがポップアップするのはMouseUp時だろ。
853 :
>>851 :02/10/09 23:14
854 :
デフォルトの名無しさん :02/10/09 23:22
すみません、型の違いがよくわからないので教えてください。
>>864 それぞれの型によって入れられる値の種類が違います。
ふつうWM_CONTEXTMENUが来たときだろ。
>>856 わざわざコンテキストメニューを出すためにサブクラス化したりするの?
うわVBってこんなのもできないんだ
>>858 何を出来ないと思っているかC言語を用いて述べよ。
>>833 >クラスに開始メソッドと停止メソッドを追加したいんですが
>予約語で命名出来ません。この場合何てつけますか?
旧VBの楽しいところだね。
>ダメな例 start stop, start end, begin end, open close
Prev(ious)とNextとか、ReadとWriteとかもあるね。
例えば、時間を扱うクラスとして、
StartTime、StopTimeとかにしてるよ。
オブジェクト指向的には冗長かつ邪道なネーミングだけど。
861 :
デフォルトの名無しさん :02/10/10 00:54
VBでゲームソフトを作っていて、ヘルプの所に 自分のホームページへのリンクを貼りたいのですが、 こういう場合にはどのようにすれば良いのでしょうか?
ShellExecute
863 :
デフォルトの名無しさん :02/10/10 09:10
>>862 ありがとうございます。調べてみたら使う事が出来ました。
もう一つお伺いしたいのですが、Labelの上にマウスカーソルが来た時、
マウスカーソルを手の形にし(ブラウザのハイパーリンクのように)、
Labelの上から離れたら元に戻したいのですが、
これはどのような処理をしたら良いのでしょうか。
Screen.MousePointer = vbなんとか でカーソルの形を変えられることは分かったのですが、
どんなイベントの所でこれを書けばいいのか分からず困っています。
864 :
デフォルトの名無しさん :02/10/10 09:27
>>863 Formのマウス ムーブのイベントで ラベルのところに x,y が 入ったら ポインタを手に変えたら
いいんじゃないのか?
それで、それ以外は、元に戻すとかする。
>>863 ラベルのプロパティをデザイン時に変えるだけ。
866 :
デフォルトの名無しさん :02/10/10 09:37
ああ それが 一番 カンタンだった。 label1.MousePointer = 15 とか Form Load時に やっとけ。
WritePrivateProfileString を使ってINIファイルに書き込むと、 空白が入ってしまいます。 回避方法を、教えてください。
>>867 すみません、自己解決しました。m(_ _)m
>>867 Nothingで書き込んで、セクションを削除してから
再度書き込む。
>>867 Killステートメントでファイルまるごとあぼーん。
871 :
超初心者かも :02/10/10 15:43
VisuualBasic6.0で質問です。 DoEvents以外ウィンドウズに制御を渡すってどうするんでしょうか? DoEventsは遅い気がするので。
制御を渡すって、具体的に何がしたいの?
>>871 if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
874 :
デフォルトの名無しさん :02/10/10 17:16
VBで実行中のアプリケーションがアクティブかどうかって どうやって判断するのですか? アクティブじゃない時は処理を中断させたいのですが。
>>874 GetForegroundWindow()
877 :
デフォルトの名無しさん :02/10/10 18:07
878 :
デフォルトの名無しさん :02/10/10 19:03
>>875 教えを乞う態度とは思えん
(答えを求めておいて、結果を採点か?)
よくVB製ソフトはダサイとか遅いとか糞とかVB製と知ったら落とすきダウンロードする気無くすとか言われてるけどどう思う?
883 :
デフォルトの名無しさん :02/10/10 20:10
俺の場合は(オンラインソフトね)セットアップ形式だとダウンロードしようか迷うな いや、落とすのが決まってる場合はいいけど、Vectorでいろいろ探す場合ね。
(゚Д゚≡゚Д゚)
InetでGetChunkしてるんですけど(VB6) 1024バイトごとに取得しているので丁度区切りの所に漢字が来ると 化けてしまいます。 これどうにかならないんですか?
886 :
◆5VLaSsH.hA :02/10/10 21:24
age
>>880 VB製は糞の割合がかなり高いと思う。
つまり、Vectorで同一カテゴリで手当たり次第DLして試してみる時、
VB製だとなんじゃこりゃ、というレベルのまで掲載されている可能性が高い。
しかし、そのような糞ソフトを除けば、特にVBが重いとかダサいとかいうことは無いかと。
つまりそれなりに定評があるなら言語は何だって関係ないというか。
糞が多すぎるからVB全体のイメージが糞に引っ張られるのだろうな。
>>885 第2引数をicByteArrayにしてバイト配列として取得し、
あとから結合するなりするといいんでないかい?
1024バイトごとにデコードしたいなら、最後の文字が2バイト文字か
どうか判別するルーチン作ってなんとかするとか。
889 :
デフォルトの名無しさん :02/10/10 22:23
>>885 もしかしてこれ?
' 最初のチャンクを取得します。
vtData = Inet1.GetChunk(1024, icString)
DoEvents
Do While Not bDone
DoEvents
strData = strData & vtData
DoEvents
' 次のチャンクを取得します。
vtData = Inet1.GetChunk(1024, icString)
If Len(vtData) = 0 Then
bDone = True
End If
Loop
txtData.Text = Replace$(strData, vbLf, vbCrLf)
私も今までこのまま(MSDNどおり)にやってたけど、そんなだとは気づかなかったよ。
>>889 あちらさんは2バイトコードなんて
地球外言語だと思ってるよ(藁
バイナリで取得してくっつけてStrConvすれ。
892 :
デフォルトの名無しさん :02/10/10 23:52
>>889 私なら、
Do While 1
にして、
If Len(vtData) = 0 Then Exit Do
にするけど、上記のMSDNに書いてあるやりかたの方が効率いいの?
>>892 If Len(vtData) = 0をWhileの条件文にしないのはなんか意味あるの?
894 :
デフォルトの名無しさん :02/10/11 00:18
895 :
デフォルトの名無しさん :02/10/11 00:25
>>893 その方がよかった。
では変えます。
そうしないでMSDNではああいう記述にしているのはなにかその方が効率がよかったりするのでしょうか?
>>895 MSDNは見てないけど、もしも変数bDoneが
静的な変数(モジュールレベル or Static)だったら
893のコードとは意味が違ってくるわな。
897 :
デフォルトの名無しさん :02/10/11 00:32
ボタンとかを自分で作りたいと思います とりあえずPictureコントロールにLineを描画しているんですがどうでしょうか? もっとスマートな方法があるんでしょうか?
>>897 なんでそんな事したいの?
ユーザーが画面デザインの設定で見た目かえてても同じボタンになっちゃうじゃん。
そんなの不親切でしかないと思うけど・・。
899 :
デフォルトの名無しさん :02/10/11 00:38
>>898 まぁいいじゃないですか。
オリジナルデザインのソフトっていくつかあると思いますし。
900 :
デフォルトの名無しさん :02/10/11 00:39
送られてきたデータを画面に表示させる場合に (例1)Winsock.GetData strData Text1.Text = Text1.Text & strData & vbNewLine (例2)Winsock.GetData strData Picture.ForeColor = RGB(0,0,255) Picture.Print = strData (例3)Winsock.GetData strData List.AddItem strData List.ListIndex = List.CountIndex - 1 'データが下に隠れないように 出力する場所(テキストボックスなど)、出力方法、知識が足りないためか以下でや りたいことができません。 まず、例1、例3だと送られてきたデータごとにフォントカラーが変更できない。 例1、例2ともに最後に送られてきたデータを画面内に表示させたいのです が、古いデータがたまると、新しい行はスクロールバーで下に行かないと文 字が見れなくなる。 データごとにフォントが変更でき、最後に表示するデータがスクロールバー で隠れることがないようにする方法教えてください。
だからVBのソフトはグロテスクな見た目とか言われるんだよな。
>>897 Pictureコントロールならそのまま画像はればいいじゃん。
>>903 いえ、picture1.paintで真ん中にテキストを表示させて、
周りをラインを描画させてるんです。
あとMouseDownの時の描画とかも
と、ここまでは出来たんですが、上の動作をモジュール化させたいのですが
その辺がよくわかりません
>>900 最新の状況を表示するログのようなものならRichTextBox使って
Dim Buff As String
For i = 0 To 100
Buff = CStr(i)
Me.RichTextBox1.SelStart = 0
Me.RichTextBox1.SelText = Buff & vbCrLf
Me.RichTextBox1.SelStart = 0 '保存したテキストの選択
Me.RichTextBox1.SelLength = Len(Buff) ’同上
Me.RichTextBox1.SelFontSize = i ’フォントサイズの変更
Next i
こんな感じでいいんじゃない?
保存も簡単だし
907 :
仕事でVB不幸者 :02/10/11 02:54
おそろしく初心者質問だということはわかっているのですが 検索しても出てこなかったので質問させてください。 2次元配列の宣言と初期化はVBではどのように記述したらいいのでしょうか? C言語でいうところの int PosArray[5][5] = { {1,2}, {2,3}, ... }; このようなものです。
909 :
デフォルトの名無しさん :02/10/11 03:22
>>907 昔のbasicならdata文とかあったけどねえ。
関数作って代入させるとかかな。
sub setArray(,array, x, y, val) とかしてなかで代入。
>>909 READ〜DATAナツカシー。無くなったのが大変痛い。
&Bも使えませんねえ。
>>906 ActiveXコントロールですか?
配布時に面倒なので・・・
クラス化とかいうのやればよいのでしょうか。
クラスって一度も作ったこと無いけれども
>>911 なぁ、自分の趣味で他人のアドバイス蹴りまくるのなら自分の力で解決すれば?
人に迷惑かけてまでやることでもあるまいて。
用語はわかってるみたいだから後は検索するだけだろ打て。
は〜いわかりますたよぶぅ〜。
>897 ユーザーコントロールって知ってるか? あと氏ねよ
ああこれなら配布時問題ないのね。 ありあと〜。
>>860 レスありがとうございます。参考になりました。
自分の場合待ち受け開始、停止ということで
StartWaiting, StopWaiting
と名付けることにします。
>>915 言うに事欠いて
氏ねはないでしょ?
キモオタ風情がいきがりやがって。
[氏ね] 悪名高い掲示板サイト「2ちゃんねる」内でよく使用される用語。 語源は単純に「死ね」だが、あいさつや相槌など、コミュニケーション の潤滑油として使用される事も多い。 例 つーか氏ねよおめーら
オタク用語みたいなもんだな。だせぇ。
922 :
デフォルトの名無しさん :02/10/11 13:49
>>921 なにか勘違いしてるようだね。初心者君。
923 :
デフォルトの名無しさん :02/10/11 14:00
漏れら極悪非道のageブラザーズ! 今日もネタもないのにageてやるからな!  ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ∧_∧ ∧_∧ age (・∀・∩)(∩・∀・) age (つ 丿 ( ⊂) age ( ヽノ ヽ/ ) age し(_) (_)J
潤滑油だったっけか ↓氏ねよザーコ
あ、↑失敗
↑氏ねよザーコ(^o^) 氏ねよザーコ(^o^)↓
┏━━━━━━━━━━━━┓ ┃ マホカンタ ┃ ┗━━━━━━━━━━━━┛
もしよかったら教えて下さい。 質問です〜。 内側のIF文で外側のIF文を抜けたいんですYO! そんな命令ありますか? a = 0 b = 0 If a = 0 Then '外側 If b = 0 Then ’内側 'ココから外に抜ける 'なんか脱出する命令。 End If MsgBox ("NG") End End If MsgBox("OK") End
>>931 > 内側のIF文で外側のIF文を抜けたいんですYO!
> そんな命令ありますか?
End
>932 すんません… お客様がGOTO恐怖症なんですYO〜。 GOTO以外でお願いしやす〜。
>933 >935 >936 なるほど…。 やはり、一つ外側のIF文の外に出る命令は ないんですね…。 ありがとうございました。
>>931 goto がイヤなら関数にして
exit sub(function) をうまく使う。
>お客様がGOTO恐怖症なんですYO〜。
金取ってるのか?このレベルで
939 :
デフォルトの名無しさん :02/10/16 21:45
現在ログインいているユーザのグループ名を取得するには どのようにしたらよいでしょうか?
つーか、旧スレageるなよ
>>931 仕事で使ってる?
だとしたら、かなりレベル低いよ。
Else使えばそんな作りにならないって。
そんなコード書くのがそもそもの間違い。
その通り。If文から抜け出さないと・・・という考えが既に間違い。
944 :
デフォルトの名無しさん :02/10/17 00:23
ご存知のかたがいましたら、教えてください。 VBのImageにTIFF画像を読み込みたいのですが、 直接読み込めないので、TIFF画像を選択したら、 裏でJPEGに変換して変換したJPEGファイルを表示 しようと思っています。 TIFFからJPEG変換の方法はどのようにしたらよいですか?
945 :
デフォルトの名無しさん :02/10/17 01:03
>>944 Imaging使えば、TIFF読み込めるよ。(WinXPを除く)
SUSIEプラグイン使ったら?
馬鹿にするんじゃねえよ!!クソ虫どもが!!!
948 :
デフォルトの名無しさん :02/10/17 15:15
DOにしるっ! a = 0 b = 0 do while a = 0 '外側 If b = 0 Then ’内側 'ココから外に抜ける 'なんか脱出する命令。 exit do End If MsgBox ("NG") End loop MsgBox("OK") End
949 :
デフォルトの名無しさん :02/10/17 15:16
あ、 最後のloopの手前にも Exit do が 必要だに。
a = 0 b = 0 If a = 0 AND b <> 0 Then '外側 MsgBox ("NG") End End If ここに処理 MsgBox("OK") End
見にくいコードだな。 VBばかり使ってるからこんなコード書くようになるんだ。
953 :
デフォルトの名無しさん :02/10/17 17:05
>>951 条件に見合ったら、一回だけループさせる。
本来の目的に沿ってるが(w
ループの回数が 1回だけでは 本来の目的に 沿わないというのか?
ならば、Exit Doするときに a=1 とか してやればいいだけの話。
>>953 まぁ、アホに反論した俺もたいがいアホなんだが。
絶対に0〜1回しか実行されないと言うのは反復ではなく選択だと思うが。
VB厨を象徴する糞コード
VB一人で勉強中の者です。 トグルを利用したいのですが、VBで使用することは可能でしょうか? 今のところofficeのトグルボタンを参照して使用してますが、 officeがインストされてない環境だともちろんエラーがでてしまうので。 どうかご回答のほどよろしくお願いします。
トグルって何だっけ? チェックボックスのプロパティ変えるとできるやつ?
トグルボタン=へこんだり、もどったりするボタン。
ACCESS VBAをやってる奴にはなじみのコントロール。
>>958 やっぱそれやね。チェックボックスのStyleプロパティを
1-グラフィックスにすればできるよ
>>956
>>960 大感謝!!ありがとうございます。
でもこれいざやってみると基本中の基本みたいっすね。
確認能力不足、痛切に感じます
962 :
デフォルトの名無しさん :02/10/18 02:17
>> 944 で書き込んだ、TIFFを変換するという内容なのですが、 レスいただいた内容のSusieプラグインでピクチャーボックス内に 表示することはできたのですが、 結局、JPEGに変換する必要がでてきました・・・ どうにかして、変換できないものでしょうか? (市販のOCXなどでできそうなのですが、高いので・・・) また、レスいただいている内容でImagingとありますが、 環境がXPなので使えそうにありません。 お願いします。
963 :
デフォルトの名無しさん :02/10/18 09:10
Imagingって XPで 使えないのかなぁ?
助けてください データフォームウィザードを使ってアクセスのデータベースに接続したい のですがデータベースファイルを選択するとき、ファイルの名前をいれても 「認識できません」ってでます。私はどうすれば、、、 ソフトはvb6、アスセス2002です。
>>964 一人称に「様」、普通にむかつきました。
ごめんなさい。 訂正してお詫びします
旧スレあげんな。>モモモ
969 :
デフォルトの名無しさん :02/10/19 06:29
1000ゲットしるまでは あげまくるぞ!
1000予約。
>>970 Err.Number = 17
Err.Description = "要求された操作は実行できません。"
972 :
デフォルトの名無しさん :02/10/21 23:43
(´・ω・`)999予約
973 :
デフォルトの名無しさん :02/10/22 16:39
973 げっとぉっ〜〜
次スレの1000予約
975 :
デフォルトの名無しさん :02/10/22 21:23
インターネットの履歴を完全に消したいんだけど インターネットのお気に入りとかの横にある履歴を消したただけで インターネットの履歴は完全にけせますか?
「インターネットの履歴」
え?無理なの。じゃあ後どこを消せばいいの?
履歴消したつもりのやつのPC見るの楽しい。
のこってるよ
どこにのこってますか?
983 :
デフォルトの名無しさん :02/10/22 22:06
そんなPC見て どこが 楽しいんや? どこか ちゃんと 言え(w
984 :
デフォルトの名無しさん :02/10/22 22:09
まもなくここは 乂1000取り合戦場乂 となります。 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( ) ( ) ( ) ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( ) ( ) ( ) ( )
985 :
デフォルトの名無しさん :02/10/22 22:13
まもなくここは 乂1000取り合戦場乂 となります。 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::1000::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( 992 ) ( 993 ) ( 994 ) 995 ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( 996 ) ( 997 ) ( 998 ) ( 999 )
986 :
デフォルトの名無しさん :02/10/22 23:07
まもなくここは 乂1000取り合戦場乂 となります。 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::1000::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( 992 ) ( 993 ) ( 994 ) 995 ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( 996 ) ( 997 ) ( 998 ) ( 999 )
987 :
デフォルトの名無しさん :02/10/22 23:21
おまえらこのスレタイトル恥ずかしくありませんでしょうか?
990 :
デフォルトの名無しさん :02/10/23 09:56
いまいち もリア柄ーんの王(w
991 :
デフォルトの名無しさん :02/10/23 10:21
よいしょ
992 :
デフォルトの名無しさん :02/10/23 10:22
えいさ
993 :
デフォルトの名無しさん :02/10/23 10:22
ハッ
994 :
デフォルトの名無しさん :02/10/23 10:23
・・・・・・
995 :
デフォルトの名無しさん :02/10/23 10:23
ヽ(`Д´)ノ
996 :
デフォルトの名無しさん :02/10/23 10:24
996
997 :
デフォルトの名無しさん :02/10/23 10:24
997
998 :
デフォルトの名無しさん :02/10/23 10:25
998
999 :
デフォルトの名無しさん :02/10/23 10:26
↓1000
1000 :
デフォルトの名無しさん :02/10/23 10:26
・・・・・・・・・1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。