トップページ⇒tech
988コメント350KB

くだすれVB6.0以前(超初心者向け)

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/12/08(金) 19:36:45
このスレッドはVBについて、
他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
VB使いが優しくコメントを返しますが、
お礼はVBの布教はしなくてよいので、初心者の救済をお願いします。
0331デフォルトの名無しさん2007/05/13(日) 18:41:52
>>330
自販機のアルゴリズムっぽいけど
千円札がない場合は、購入する前に
札がないランプが点いてるだろうから購入すらできない
=「千円札があるかないか」の分岐は意味ない様な希ガス
全部硬貨で出すのならまた別だろうけど。。。
0332デフォルトの名無しさん2007/05/13(日) 18:43:54
>>329
> 釣銭金額の各紙幣ないし硬貨の個数を各々の項目の隣に別のラベルとして表示ってどうやるんでしょうか? 
「一万円札」
「五千円札」
…
って描かれている場所の水平方向右に適当な余白を置いて、Labelコントロールを配置する
で、紙幣の枚数または硬貨の個数をそのラベルのCaptionとして設定すればいいのではないかと思われ
0333デフォルトの名無しさん2007/05/13(日) 18:48:39
全部一円玉で返せばいいじゃん(w
0334デフォルトの名無しさん2007/05/13(日) 18:51:10
与えられた金額に対応する、紙幣・硬貨の最適な組み合わせを表示するプログラム
Option Explicit

Private Sub Form_Load()
    Const a = (10000# + 8500# + 9230# + 100# + 500#) * 1.05
    Dim v   As Variant
    Debug.Print Int(a); "="
    For Each v In getMoneys(Int(a))
        Debug.Print v(0) & "×" & v(1)
    Next
End Sub

Private Function getMoneys(ByVal in_Money As Double) As Collection
    Dim v   As Variant
    Set getMoneys = New Collection
    For Each v In Array(10000, 5000, 2000, 1000, 500, 100, 50, 10, 5, 1)
        Call getMoneys.Add(Array(v, in_Money \ v))
        in_Money = in_Money Mod v
    Next
End Function
0335デフォルトの名無しさん2007/05/13(日) 21:13:38
万札のつり銭ってどういう状況なんだろうな。
デノミ後の日本を想定してるんだろうかw
おまけに>>329のフォームはどう見てもドトネトのだし

だいいち、宿題は自分でやらなアカンやろ。
できないなら素直に単位落とせよ。
0336デフォルトの名無しさん2007/05/14(月) 09:52:02
>>335
しょせん大学生だといってもこんなもんだな
スレタイすら読めないというwwww
0337デフォルトの名無しさん2007/05/14(月) 10:08:46
万札の釣り銭は、払いすぎた時に生じるんでないかい?
流れを全く読まずにレスするが。
0338デフォルトの名無しさん2007/05/14(月) 10:25:22
>>337
商品にもよるけどお札は一枚しか受け付けない仕様でよくないかい?

多分一万入れてキャンセルした時の仕様だろうなぁ・・・・
とマジレス
0339デフォルトの名無しさん2007/05/14(月) 12:22:33
アルゴリズム作るのが楽しめないなら そういう職種を選ばない方がよさげ
0340デフォルトの名無しさん2007/05/14(月) 21:37:43
>>327と似てる?気がするんですが、
数点のx,y座標より、最小2乗法で3次曲線y=ax^3+bx^2+cx+dの係数a,b,c,dを出したいんですが、

ttp://homepage1.nifty.com/gfk/square_ren.htm
を参考に考えてはみたものの、

>逆マトリックス( A-1 ) の計算
>逆マトリックス( A-1 ) × ベクトル( b ) の計算

というのが、vbでどう考える(置き換える?)べきなのか、わかりません。
何かいい方法ありますでしょうか?
0341デフォルトの名無しさん2007/05/14(月) 21:57:24
・行列クラスを作る
・ベクトルクラスを作る(こっちは構造体でもいいかもしれない)
・行列クラスに自分の逆行列を求めるメソッドやベクトルとの積を求めるメソッドを書く。
0342デフォルトの名無しさん2007/05/15(火) 15:54:24
二つの文字列を連結するにはどうしたらいいですか?
0343デフォルトの名無しさん2007/05/15(火) 16:00:42
"a" & "b"
じゃなかった?
0344デフォルトの名無しさん2007/05/15(火) 18:02:32
>>342
str = "a" & "b"

もしくは

str = Join( Array( "a", "b" ), vbNullString )
0345デフォルトの名無しさん2007/05/15(火) 18:50:06
すみません、助けてください。
Win2k-sp4にVB6をインストールできなくて困ってます。

CDを入れてすぐ、「Virtual machine for javaの更新」というチェックが表示されて、
次へ進もうとすると「再起動します」ダイアログ→[OK]ボタンで再起動すると、また最初の「Virtual machine・・・・」

の、繰り返しで先へ進めません。
あれこれ検索してみましたが、それらしい同様の症状を見つけることが出来ませんでした。
何か環境が足りないのでしょうか?Windowsはクリーンインストール状態です。
宜しくお願いします。
0346デフォルトの名無しさん2007/05/15(火) 18:51:36
MSDNにJavaのいらないVBがあった希ガス
0347デフォルトの名無しさん2007/05/15(火) 18:55:38
>>343,344
ありがとうございます。VBに慣れてないと思いつきづらい様な感じですね。
0348デフォルトの名無しさん2007/05/15(火) 19:30:39
>>345
他スレでも見た気がするが…マルチか?

VMインスコ→VBインスコ→VMアンインスコ

こんな流れだったような
03493452007/05/15(火) 19:52:07
ありがとうございます。

>>346
探してみます。

>>348
いえ、初めての質問です。
その流れで試してみます。
「VMインスコ」というのは、"msjavx86.exe"を単体で実行する、という事でよろしいのでしょうか?

実機が今手元に無いもので、確認とれずすみません。。。
0350デフォルトの名無しさん2007/05/17(木) 22:18:55
テキストボックスにdoubleで宣言した値を入れると
2.33333333332673E-04
のようになるのを、
0.000233333のようにEで表記しない方法で貼り付ける方法はないでしょうか?
0351デフォルトの名無しさん2007/05/17(木) 22:20:30
Format
っていうか、VB6の初心者スレなんて意味あんのか?
現時点でVB6学び始めてどうするんだよw
0352デフォルトの名無しさん2007/05/17(木) 22:31:21
業務でしゃぁなしもいるんだよwwww
0353デフォルトの名無しさん2007/05/17(木) 23:04:58
MSChart使ってy=x^2+xの二次関数のグラフ書きたいんだが、
xは1〜50の領域で表示したいなら、

ChartType=VtChChartType2dLine

for x=1 to 50
y=x^2+x
next

何かけばええの?w
サンプル見ても棒グラフばっかで、チンプンカンプン
0354デフォルトの名無しさん2007/05/17(木) 23:13:49
>>352
VB厨は質問者がVBしか経験がないという前提で
書き込むよな。 >351とか正にそうだ。
0355デフォルトの名無しさん2007/05/17(木) 23:15:57
>>354
不思議な思考をする奴だな。
こういう非論理的な人間はプログラマ向かないよ。
0356デフォルトの名無しさん2007/05/17(木) 23:22:33
>>355
専用ブラのオマイw

キンタマに(ry
0357デフォルトの名無しさん2007/05/17(木) 23:26:51
>>355
まぁちょっと叩かれたからって
そう気張るなよ?な?肩の力抜いていこうぜ?
言語なんてしょせん方言だ
0358デフォルトの名無しさん2007/05/17(木) 23:36:16
     _____
   /::::::::::::::::::::::::::\〜プーン
  /:::::::::::::::::::::::::::::::::::::::\〜プーン
  |:::::::::::::;;;;;;|_|_|_|_|〜プーン
  |;;;;;;;;;;ノ∪  \,) ,,/ ヽ〜
  |::( 6∪ ー─◎─◎ )〜       >>355
  |ノ  (∵∴ ( o o)∴)〜      
  | ∪< ∵∵   3 ∵> ムッキー!    
  \        ⌒ ノ_____
    \_____/ |  | ̄ ̄\ \
___/      \   |  |    | ̄ ̄|
|:::::::/  \___ | \|  |    |__|
|:::::::| \____|つ⊂|__|__/ /
|:::::/        | ̄ ̄ ̄ ̄|  〔 ̄ ̄〕
0359デフォルトの名無しさん2007/05/19(土) 21:28:03
>>353なんですが、
もしかしてVBでこういう曲線のグラフって、pictureに描画するのが一般的なんですか?
MSchartをイジってたんだけど、中々エクセルでいうところの散布図みたいなのが出来ない。。。
0360デフォルトの名無しさん2007/05/19(土) 23:15:20
どこの一般を聞かれてるのかわからんが
日曜プログラマの俺は金が無いので自力で全部書いてる
もしかしたらExcelのコンポーネントで出来るかもしれないけど、取り扱いに気を使いそうだから全くしらない
0361デフォルトの名無しさん2007/05/20(日) 02:09:17
俺はExcelでできるかどうか調べる前に
自前(PictureBox)で実現しようとするかな・・・
0362デフォルトの名無しさん2007/05/20(日) 04:58:57
むしろエクセルに依存したりサードパーティにあんま頼りたくないので自前で
0363デフォルトの名無しさん2007/05/20(日) 21:27:46
Excelじゃ無くてMSChartで実現したいって言ってるから、

Dim x As Single, y As Single

With MSChart1
  .chartType = VtChChartType2dLine
  .ColumnCount = 1
  .RowCount = 50
  For x = 1 To 50
    y = x ^ 2 + x
    .Row = x
    .Data = y
  Next
End With
0364デフォルトの名無しさん2007/05/22(火) 10:27:35
質問させてください。
例えば、以下の内容のCSVファイルがあったとします。
ID,TEL
1,0344445555

これを開くと、
cnDB.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=" & strDir & ""
cnDB.Open
rsDB.Source = "SELECT * FROM テーブル"
rsDB.Open , cnDB, adOpenStatic, adLockPessimistic

結果が、TEL=344445555となり、0が消えてしまいます。
2番目のフィールドを文字列として認識してテーブルを開く方法は無いでしょうか?
0365デフォルトの名無しさん2007/05/22(火) 10:41:11
CSVにアクセスする方法がなんでもいいなら別の方法をすすめるが
その方法じゃないとダメならSQLを変えてみてはどうでしょうか〜

rsDB.Source = "SELECT ID, STR(TEL) FROM テーブル"
0366デフォルトの名無しさん2007/05/22(火) 11:01:46
>>365
ありがとうございます。
やってみましたが、0がスペースに変わっただけで、やはり思い通りには
行きませんでした。
今後、フィールドの位置の変更や、追加削除がある可能性があるので
出来れば、この方法が便利なんですけど、、、
上手くいかないので、他の方法にした方が良さそうですね、、、
0367デフォルトの名無しさん2007/05/22(火) 20:34:52
タイマーって60秒までなんだw
どうしよう・・・
5分にしたければ60秒を5回繰り返せばいいか!
0368デフォルトの名無しさん2007/05/22(火) 20:40:53
>>367
1秒を300回繰り返してもいいんだぜ
0369デフォルトの名無しさん2007/05/22(火) 20:46:43
>>368
即レスサンクス!
0370デフォルトの名無しさん2007/05/23(水) 06:53:20
時刻を記憶してだいたい100ms間隔で比べて、5分前かどうか確かめればいいんだぜ
0371デフォルトの名無しさん2007/06/01(金) 16:35:06
CPU使用率を100%にして負荷を掛ける実験ツールを作ったんだ。
シングルコアでは100%の負荷が掛かるのだが、
デュアル・クアッドコアの場合は50%・25%前後にしかならないんだ・・・。

これって、マルチスレッド・クアッドスレッドにソースが最適化されてないって事だよね?


どこかにVB6.0でマルチスレッド最適化の方法が載ってるサイトって無いかな?
0372デフォルトの名無しさん2007/06/01(金) 16:41:45
>>371
・・・・・・・( ゚д゚)
0373デフォルトの名無しさん2007/06/01(金) 17:33:38
VB6.0はマルチスレッド不可能
0374デフォルトの名無しさん2007/06/01(金) 17:36:31
それは知らなかった。
VB6.0ではマルチスレッド出来ないのか・・・。

教えてくれてありがとうございました。
0375デフォルトの名無しさん2007/06/01(金) 18:05:48
仮に使えたとしても
このような輩が使うとデッドロックとかの防御かけずに使いそうで怖いな・・・・
0376デフォルトの名無しさん2007/06/01(金) 18:21:07
だからやっぱりVBでマルチスレッドはできないようにして正解だったということでは
0377デフォルトの名無しさん2007/06/01(金) 18:38:26
VB.NETは不正解
0378デフォルトの名無しさん2007/06/01(金) 18:48:09
そんなときはコレ!

つkill -9!
kill -9, no more CPU time!
kill -9, process is still running!
0379デフォルトの名無しさん2007/06/02(土) 09:39:02
コード画面でホイールころころしても画面が動かん。
何とかしてくれ。
0380デフォルトの名無しさん2007/06/02(土) 10:29:58
ググれカス
0381デフォルトの名無しさん2007/06/02(土) 11:27:44
thxこの野郎
0382デフォルトの名無しさん2007/06/02(土) 12:11:55
しかしvb6でもマルチスレッドは使える
0383デフォルトの名無しさん2007/06/02(土) 13:15:13
API叩いても無理なのにどうするんだ?
0384デフォルトの名無しさん2007/06/02(土) 13:24:39
VCでDLLつくるんだろ
0385デフォルトの名無しさん2007/06/02(土) 13:35:09
google先生に聞いてみな
0386デフォルトの名無しさん2007/06/02(土) 20:02:39
コード画面の背景色って変えれんのか?
ググったけどわかんね('A`)
教えてくれ〜。
0387デフォルトの名無しさん2007/06/02(土) 21:02:57
コード画面の背景色ってIDEのこといってるの?

VB6のエディタはOSのコンパネ(画面の設定)で設定された色をそのまま使ってるんだろう。
っていうか、こういうOSの使い方も知らん人がコード書けるのかなw
0388デフォルトの名無しさん2007/06/02(土) 21:25:18
�dクス出来ますた。
けど背景色ぐらいは設定で変えられるようにすべきだと思う(´・ω・`)
0389デフォルトの名無しさん2007/06/03(日) 00:48:04
>>386
「オプション」の「エディタの設定」の「コードの表示色」の「背景」
文字色を明るい色に変えて黒背景にも出来るお
0390デフォルトの名無しさん2007/06/03(日) 08:24:38
>>389
GJ!
0391デフォルトの名無しさん2007/06/03(日) 21:07:31
やっぱ背景は黒だな。絶対秀丸だな。
>>389お前とは上手い酒が飲めそうだ。
0392デフォルトの名無しさん2007/06/03(日) 21:08:57
>>389
俺も同意
目にやさしいしな
0393デフォルトの名無しさん2007/06/03(日) 21:42:32
そんな配色目に悪いと思うけどね。
まぶしいなら画面の輝度を調整すべきだと思うよ。
0394デフォルトの名無しさん2007/06/03(日) 21:53:38
( д )゚ ゚
0395デフォルトの名無しさん2007/06/03(日) 22:14:13
>>393
   、ミ川川川彡                 ,ィr彡'";;;;;;;;;;;;;;;
  ミ       彡              ,.ィi彡',.=从i、;;;;;;;;;;;;
 三  ギ  そ  三            ,ィ/イ,r'" .i!li,il i、ミ',:;;;;
 三.  ャ  れ  三    ,. -‐==- 、, /!li/'/   l'' l', ',ヾ,ヽ;
 三  グ  は  三  ,,__-=ニ三三ニヾヽl!/,_ ,_i 、,,.ィ'=-、_ヾヾ
 三  で       三,. ‐ニ三=,==‐ ''' `‐゛j,ェツ''''ー=5r‐ォ、, ヽ
 三.   言  ひ  三  .,,__/      . ,' ン′    ̄
 三   っ  ょ  三   /           i l,
 三.  て   っ  三  ノ ..::.:... ,_  i    !  `´'      J
 三   る  と  三  iェァメ`'7rェ、,ー'    i }エ=、
  三   の   し  三 ノ "'    ̄     ! '';;;;;;;
  三   か  て  三. iヽ,_ン     J   l
  三  !?    三  !し=、 ヽ         i         ,.
   彡      ミ   ! "'' `'′      ヽ、,,__,,..,_ィ,..r,',",
    彡川川川ミ.   l        _, ,   | ` ー、≡=,ン _,,,
              ヽ、 _,,,,,ィニ三"'"  ,,.'ヘ rー‐ ''''''"
                `, i'''ニ'" ,. -‐'"   `/
               ヽ !  i´       /
               ノレ'ー'!      / O
0396デフォルトの名無しさん2007/06/03(日) 22:41:00
いちいちAA貼り付けないと物が言えないガキを相手にしてもしょうがないけど、
そんなギャグがどこにある。

黒背景が目に悪い理由は、黒背景だと瞳孔が開きすぎるから。
というか、そんな理屈がわからなくても普通体感的に分かるだろう。
白地に黒と黒地に白でどちらが目がより疲れないか
0397デフォルトの名無しさん2007/06/04(月) 10:30:51
>>396
   、ミ川川川彡                 ,ィr彡'";;;;;;;;;;;;;;;
  ミ       彡              ,.ィi彡',.=从i、;;;;;;;;;;;;
 三  ギ  そ  三            ,ィ/イ,r'" .i!li,il i、ミ',:;;;;
 三.  ャ  れ  三    ,. -‐==- 、, /!li/'/   l'' l', ',ヾ,ヽ;
 三  グ  も  三  ,,__-=ニ三三ニヾヽl!/,_ ,_i 、,,.ィ'=-、_ヾヾ
 三  で       三,. ‐ニ三=,==‐ ''' `‐゛j,ェツ''''ー=5r‐ォ、, ヽ
 三.   言  ひ  三  .,,__/      . ,' ン′    ̄
 三   っ  ょ  三   /           i l,
 三.  て   っ  三  ノ ..::.:... ,_  i    !  `´'      J
 三   る  と  三  iェァメ`'7rェ、,ー'    i }エ=、
  三   の   し  三 ノ "'    ̄     ! '';;;;;;;
  三   か  て  三. iヽ,_ン     J   l
  三  !?    三  !し=、 ヽ         i         ,.
   彡      ミ   ! "'' `'′      ヽ、,,__,,..,_ィ,..r,',",
    彡川川川ミ.   l        _, ,   | ` ー、≡=,ン _,,,
              ヽ、 _,,,,,ィニ三"'"  ,,.'ヘ rー‐ ''''''"
                `, i'''ニ'" ,. -‐'"   `/
               ヽ !  i´       /
               ノレ'ー'!      / O
0398デフォルトの名無しさん2007/06/05(火) 00:08:03
ListBoxの中の数値をクリックして選択したものだけ配列に格納したいのですが書式が分かりません。
配列に数値を加えていくにはどうすればいいんですか?
0399デフォルトの名無しさん2007/06/05(火) 00:16:19
0400デフォルトの名無しさん2007/06/05(火) 09:03:32
>>398

dim i as integer
dim hoge() as integer

 '///最初に確保
 hoge(10)

 '///消す。
 erase hoge

 '///拡張しながら
 for i = 0 to 10
  redim preserve hoge(i)
 next i
0401デフォルトの名無しさん2007/06/05(火) 09:10:28
>>400
REDIMってパフォーマンスはどうなんだろ?
realloc繰り返すようなもんだろ。拡張のときに余分に確保してゆくとか必要ないだろうか。
04024002007/06/05(火) 09:27:48
肝心のredimがついてねーorz

realloc繰り返すよりは最初に余分に拡張した方がいいね。
0403デフォルトの名無しさん2007/06/05(火) 11:18:59
>>401
超悪い
なので先に配列の数がわかるならRedim一回だけにしたほうがいいと・・・
配列の数が増えれば増えるほど速度差が出るしさ
0404デフォルトの名無しさん2007/06/05(火) 11:28:33
春だな・・・
0405デフォルトの名無しさん2007/06/05(火) 11:35:28
夏だろ・・・
0406デフォルトの名無しさん2007/06/05(火) 15:09:50
「ファイルを展開する」の意味を教えてください。
0407デフォルトの名無しさん2007/06/05(火) 15:43:15
圧縮ファイルを解凍する意。
0408デフォルトの名無しさん2007/06/05(火) 15:56:47
ありがとうございます。助かります。
0409デフォルトの名無しさん2007/06/05(火) 18:37:16
>>406-407
VB以前の問題だろ・・・
0410デフォルトの名無しさん2007/06/09(土) 13:35:58
あるフォームから別のフォームの内容を変えるにはどうすればいいのでしょうか?
例えばform1とform2を開いておき
form2でボタンを押したりするとfrom1のテキストに書き込んだりform1のピクチャの表示を変えたりしたいのですが
0411デフォルトの名無しさん2007/06/09(土) 15:58:57
Form1.Text1
Form1.Picture1
0412410 2007/06/09(土) 16:41:43
ありがとうございます
やり方がわかりました
0413デフォルトの名無しさん2007/06/10(日) 22:14:38
質問です
例えばコマンドがクリックされるたびに
数字が一つ増えていき、ある時間が来たらその時間内に何回
それがクリックされたかを表示される機能を作りたくて
時間を計る昨日は作れたのですが、クリック回数を示す方が全くわからないので
ヒントを頂けると助かります
0414デフォルトの名無しさん2007/06/10(日) 22:40:01
>>413
どうしてあちこちで聞くの?
04154132007/06/10(日) 22:51:56
いや、このスレを教えてもらって
基礎的過ぎるのでこっちの方がいいのではないかと思って・・・
0416デフォルトの名無しさん2007/06/10(日) 22:53:13
>>413
スレ跨いでなかったら答えたんだけどな。
むかついたので教えない。
0417デフォルトの名無しさん2007/06/10(日) 22:58:19
こっちの方が親切に答えてくれるって言われたから
わざと不親切な奴を装ってるんだな
0418デフォルトの名無しさん2007/06/10(日) 23:02:57
両方親切に教えてますよ?
04194132007/06/10(日) 23:41:24
すいません、次から気をつけますのでヒントだけでも
教えてください・・・
0420デフォルトの名無しさん2007/06/10(日) 23:54:12
>>419
しょうがないな
モジュールレベルでDimしてクリックイベントで足せ
0421デフォルトの名無しさん2007/06/11(月) 00:19:51
教えたら教えたで無視か。
どこまで失礼な奴だ!!
0422デフォルトの名無しさん2007/06/11(月) 06:43:36
>>413
Label1.Caption = クリック回数
0423デフォルトの名無しさん2007/06/11(月) 06:52:08
>>413
a$ = "クリック"
b$ = "回数"
Label1.Caption = a$ & b$
0424デフォルトの名無しさん2007/06/11(月) 08:38:44
VB6.0どころか非常に初歩的なアルゴリズム(という表現すらおこがましいレベル)の問題だな
0425デフォルトの名無しさん2007/06/11(月) 08:43:16
Sub なんたらかんたら_Click()

dim intI as Integer

intI = CInt(Label1.Caption)
intI = intI + 1
Label1.Caption = Cstr(intI)

End Sub

おまえにはこの程度のソースでいいだろう
0426デフォルトの名無しさん2007/06/11(月) 09:11:51
週末は馬鹿がわくのかw
0427デフォルトの名無しさん2007/06/12(火) 01:39:11
MSCommのSettingsプロパティで教えて欲しいんですが

MSComm1.Settings = "a,b,c,d"

でa,b,c,dにはテキストボックスから任意の値を
入れれるようにしたいんですが・・。

これだとaという変数に"9800"という文字列が入ってても
これは"a"という文字列だということでエラーになってしまいますよね。
何かいい方法あります?
0428デフォルトの名無しさん2007/06/12(火) 02:36:51
囲むな。
方法はちょっと前のレスにもある。
0429デフォルトの名無しさん2007/06/12(火) 09:12:23
>>427
>>428の言うとおり2つほど前のレスにもヒントはある


しかし、全然言語・・というよりもPGそのものをまったく知らないでCOMM通信とか(ry
04304272007/06/12(火) 10:00:27
すいません。よくわかりません・・。
MSComm1.Settingsは文字列で指定しなきゃいけないんですよね?
囲まないと構文エラーになるんですか・・。

>>425がヒント・・。
CIntやCstrで文字を変換しろ という事ですか?
でも変換した値は結局変数に代入するのだから
同じ事のように思えるんですが・・。 すみません。
■ このスレッドは過去ログ倉庫に格納されています