トップページ⇒tech
1001コメント307KB

VBプログラマ質問スレ(6.0以前) Part51

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん2007/01/28(日) 10:57:31
ここは Visual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。

VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。

○ 質問者の心得
 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。
 二.VBScript、インストーラーなどはこのスレでOK。
 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
 四.荒らしは相手しない。

○ 回答者の心得
 一.答えられない質問は無駄に罵倒せずスルー。無理するな。
 二.代用法を強制しない。
 三.回答する上で必須ではない情報をむやみに聞き返さない。
 四.荒らしは相手しない。
 五.VB情報募集中。
 六.回答は質問者が理解できるよう具体的に。

MSDN Online Japan ホーム
 http://www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6
 http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
Google
 http://www.google.co.jp/

※「まず自分で調べる」クセを身につけよう。
0809デフォルトの名無しさん2007/04/26(木) 11:44:24
>>802
F8キーで一行ずつ実行してみれば実際どう動いているか確認できるよ
0810デフォルトの名無しさん2007/04/26(木) 12:18:19
>>808
上手に質問できる人は質問しなくても自己解決できてるってことかい?
0811デフォルトの名無しさん2007/04/26(木) 12:43:35
>>810
頭の悪いのも大概にしとかないと恥ずかしいよw
0812デフォルトの名無しさん2007/04/26(木) 12:51:04
>>810

>808,811は頭の悪いVB厨の典型。基地外だから。
レスも面白くないし。放置が一番。
0813デフォルトの名無しさん2007/04/26(木) 13:03:03
>>812
ここは面白いスレを目指してるわけじゃないだろうに・・・
そんな糞みたいな釣りツッコミする前にもうちょっと本質つかむ勉強すれば?
0814デフォルトの名無しさん2007/04/26(木) 15:26:27
本質であるVBプログラマ質問をやろうじゃないか
0815デフォルトの名無しさん2007/04/26(木) 17:01:59
バロスwww
0816デフォルトの名無しさん2007/04/26(木) 17:40:23
Dir()関数を使うんだ。ずっとFileSystemObjectのやつ使ってたわ。
0817デフォルトの名無しさん2007/04/26(木) 17:43:04
>>816
俺もファイルチェックならそっちのがいいと思う
0818デフォルトの名無しさん2007/04/26(木) 20:17:49
>>810
上手に質問できる人はヴビなんか使いません、てことでは?
0819デフォルトの名無しさん2007/04/26(木) 21:27:10
外部で非同期に管理されているようなファイルなんてものに「直前にチェック」なんて論外
素直に開けたか例外が発生したかでチェックしなさい
0820デフォルトの名無しさん2007/04/27(金) 10:59:39
>>816
FileSystemObjectのFileExistsの方がいいよ。
ネットワークパスとかいろいろな都合で。
0821デフォルトの名無しさん2007/04/27(金) 11:00:27
>>801
いや、そうとは限らないだろう。
0822デフォルトの名無しさん2007/04/27(金) 11:28:08
俺は文字列は&結合でやってるな
明示的に使い分けてる

ちなみに
C#は周りに合わせて+で結合
VB.NETはやっぱり&で結合

古い人たちは皆VB6の文字列結合を+でやってる傾向がある
0823デフォルトの名無しさん2007/04/27(金) 11:43:46
>>820
そうなんか、ありがとう。ていうかこの関数便利だよなー。
色々な命令できるし
0824デフォルトの名無しさん2007/04/27(金) 13:27:02
>>822
文字列はVB6でも&演算子がいいと思う。
VB.NETはむしろ型が強い言語だからエラーになってくれる(Strict On)

>>823
関数?Dir関数のこと?
これ、制限あるから気をつけてっていう話をしてたんだよ?

ちなみにFileExistsはメソッド。FileSystemObjectはクラス。
Dir関数はFileSystemモジュールにある関数。
0825デフォルトの名無しさん2007/04/27(金) 15:15:34
テキストボックスに数字と+と−のみを入力させたい場合
どうしたらいいですか?
0826デフォルトの名無しさん2007/04/27(金) 15:37:13
>>825
念のため… それ以外のキーを押した時はスルー? 警告なりBeep?
0827デフォルトの名無しさん2007/04/27(金) 15:56:35
>>826
全角を許すかどうかのほうが問題でなかろか
08288252007/04/27(金) 17:00:28
警告音は鳴らなくてよいです。
入力できないか、スルーでお願いします。
数字だけですと
Index = 0
For Index = 0 To 31
If KeyAscii = vbKeyBack Then Exit Sub
If Not Chr(KeyAscii) Like "[0-9]" Then
KeyAscii = 0
End If
Next Index
これでできるのですが、
+−をいれる方法が分かりません。
0829デフォルトの名無しさん2007/04/27(金) 17:01:24
普通はオプションボタンとかチェックボックスだが
なぜにテキストボックス?
08308252007/04/27(金) 17:13:40
経費の表を作っているのですが、
-3000とか入れたいので・・・
0831デフォルトの名無しさん2007/04/27(金) 17:17:12
>>828

If Not ((InKey >= "0" And InKey <= "9") Or InKey = "+" Or InKey = "-") Then
  KeyAscii = 0
End If

とか、ベタなIFじゃだめ?
0832デフォルトの名無しさん2007/04/27(金) 17:18:19
あ。忘れ物。
InKey = Chr(KeyAscii)
0833デフォルトの名無しさん2007/04/27(金) 17:32:50
ありがとうございます
0834デフォルトの名無しさん2007/04/27(金) 17:36:25
しまった数字と±か。。。
俺の場合は1+000とかにならないようにとか懲りだすんだよな
0835デフォルトの名無しさん2007/04/27(金) 18:51:16
>>834
普通じゃね?
0836デフォルトの名無しさん2007/04/27(金) 18:59:10
マウスでペーストしたら数字以外の文字が入ってしまうというオチとかな
0837デフォルトの名無しさん2007/04/27(金) 21:36:03
チェンジイベントで毎回テキストボックスを検索して
目的の文字以外ひたすらハジくってのでもいいかなと思った俺。
0838デフォルトの名無しさん2007/04/27(金) 21:40:58
その都度処理するの大変だから、数値専用のコントロール作っちまった
0839デフォルトの名無しさん2007/04/27(金) 22:07:27
>>824

VB.NETってStrict Onでも
+で文字列結合できるんじゃなかったっけ?

この間俺、「あーできるんだ。」って思ってたばかりなのに・・
俺の勘違いか?

今自宅で環境無いから試せないけど。


0840デフォルトの名無しさん2007/04/27(金) 22:33:10
.netで文字結合演算はしないな。
長いならStringBuilderだし、その場の結合はFormatのほうが綺麗にかけるし。
0841デフォルトの名無しさん2007/04/27(金) 23:00:50
>>839
+演算子の場合は「型が違う時に」弊害がおきるわけだから、
StrictOnなら+演算子でも構わないが、VB的には可読性とかの問題なのよね。

>>840
StringBuilderのを誤解している人も多いけどね。
パフォーマンスがアップするような使いどころはそんなにない。
0842デフォルトの名無しさん2007/04/27(金) 23:05:40
俺は妙な誤解してるのは841だと思うけど。。
0843デフォルトの名無しさん2007/04/27(金) 23:13:14
>>841

>+演算子の場合は「型が違う時に」弊害がおきるわけだから、
>StrictOnなら+演算子でも構わないが、VB的には可読性とかの問題なのよね。

あ、いやそれはわかるんだけど、>>824がエラーになるっていったのは
IDEでエラーが出るって意味なのかと思って。

てか、スレ違いっすね。
0844デフォルトの名無しさん2007/04/27(金) 23:56:27
>>839
明示的に暗黙の型変換が許可されている場合はStrict Onでも大丈夫。
S As String : I As Integer = 99 のとき
S = I & " cm" は 99 cm になるが
S = I + " cm" はエラー (文字列を整数にできない)
S = "" + I + " cm" はOK
0845デフォルトの名無しさん2007/04/28(土) 09:37:42
>>842
いや、StringBuilderを誤解せず使っているVB厨なんてほとんどいないと思うよ。
841はお前よりレベル高いだろ。
0846デフォルトの名無しさん2007/04/28(土) 09:42:04
>>842
すまん。もしかしてStringBuilderじゃなくて前半の内容のことか?
「誤解」とか言ってるからStringBuilderの話かと思ったのだが。(そっちで誤解って単語でてるし)

>>844
最後のはNGだろ。常識的に考えて。
0847デフォルトの名無しさん2007/04/28(土) 11:17:13
>>845
いや841が「妙な誤解」をしていると思われるのはまさにStringBuilderについてでしょ。
文字列の効率的な結合ってStringBuilderの主目的じゃんw

こういう間抜けなことを言うのは、たぶん.NETにおいてStringという型にあたえられた性質が
わかってないからだと思うけどね。
0848デフォルトの名無しさん2007/04/28(土) 11:29:22
String型なんて言っている人に言われたくないんです (><;
0849デフォルトの名無しさん2007/04/28(土) 13:15:48
ワロタw
いくらなんでもString型はないよなw
0850デフォルトの名無しさん2007/04/28(土) 13:16:01
VB.netはMSのサイトでもString型って表記してるけど違うの?
0851デフォルトの名無しさん2007/04/28(土) 15:15:56
ttp://msdn2.microsoft.com/ja-jp/library/47zceaw7(VS.80).aspx

ほんとだw VisualBasicのデータ型www
0852デフォルトの名無しさん2007/04/28(土) 15:27:25
>>847
それを誤った形で使っているバカがいるってことだろ。
それを読み取れていないお前は、その誤った使い方をしている一人の可能性が高いなw
0853デフォルトの名無しさん2007/04/28(土) 15:42:01
くだらん負け惜しみだな。

負け惜しみなどではない、というのなら「誤った形で使う」とは、具体的には
どういう意味か説明してもらおうじゃないの。

いや、出来ないなら無理することないですよw
0854デフォルトの名無しさん2007/04/28(土) 16:08:41

♪ア・ソ〜レ

ア・チョン! ア・チョン!

ア・チョン! チョン! チョン! バカ!
0855デフォルトの名無しさん2007/04/28(土) 23:48:38
>>853
お前の使い方を示せばいんじゃねーの?
0856デフォルトの名無しさん2007/04/29(日) 01:40:47
Stringを型とか呼んでるやつはMSDN本当にみてるのかどうか…(´ヘ`;)
StringBuilderのヘルプ見たら真先にStringクラス見に行くと思うんだが・・・・

そもそも、動作的にStringの結合はインスタンス作りまくり ていうのを理解してない奴が多いと思う
0857デフォルトの名無しさん2007/04/29(日) 02:31:09
見苦し
0858デフォルトの名無しさん2007/04/29(日) 02:31:20
あいかわらず用語の定義が各人まちまちなまま泥仕合してるみたいだけど
なんでVB.NETの話になってるんだ?
0859デフォルトの名無しさん2007/04/29(日) 02:34:26
>>856
1行の命令で複数の文字列や文字変数を結合する場合は
String.Concatが使われるからインスタンス作りまくりということはない。
ループで1文字ずつ連結するケースではStringBuilderを使う。

String.Concatは綺麗じゃないけど現実的で実用的な実装なんだよね。
String.Concat (Object, Object) 
String.Concat (Object, Object, Object) 
String.Concat (Object, Object, Object, Object) 
String.Concat (Object[]) 
0860デフォルトの名無しさん2007/04/29(日) 03:45:22
(´・ω・`)しらんがな
0861デフォルトの名無しさん2007/04/29(日) 10:25:09
>>853
ばかだねぇww
その言葉お前にもそのまま返せるって知ってる?

いいかげんうざいんだよ
0862デフォルトの名無しさん2007/04/29(日) 10:31:10
今北産業

何が起きているのか頭の悪い俺に一行で教えてくれ。
0863デフォルトの名無しさん2007/04/29(日) 10:33:29
では問題。この使い方は間違っているか?

Dim sb As New StringBuiler()
sb.Append("SELECT")
sb.Append(" *")
sb.Append("FROM")
sb.Append(" Table1 T1")
sb.Append("WHERE")
sb.Append(" T1.AHO >= 1 AND")
sb.Append(" T1.AHO <= 100")
 :
 :
command.ExecuteNonQuery(sb.ToString())
0864デフォルトの名無しさん2007/04/29(日) 10:34:44
853が答えればいいのか?
0865デフォルトの名無しさん2007/04/29(日) 10:37:55
>>863
・SQL問い合わせ作るのにゃ特別のクラス使え
・文字列連結なんてしないでフォーマッタ使え
0866デフォルトの名無しさん2007/04/29(日) 11:14:48
>>863
それ全部リテラルの文字列だから普通に&や+でつないでおけばコンパイル時に結合が終わる。
0867デフォルトの名無しさん2007/04/29(日) 11:19:10
「型」という日本語をプリミティブな型だと勝手に脳内変換してとらえてる奴がおかしい。

0868デフォルトの名無しさん2007/04/29(日) 11:29:41
ここ.NETスレだっけか
0869デフォルトの名無しさん2007/04/29(日) 11:30:22
ああ、なるほど。

それで「Stringは型じゃない」とかワケワカランこと言ってる奴の発想が
半分はわかったw

要は組み込み型だけが「データ型」だと思ってるわけか。
そういやVB6では構造体(正式にはユーザ定義型、だっけ?)は
Cの真似かどうか知らないがデータ型と呼ばないような気がしたな。

でも.NETのStringってプリミティブ型でしょ?w
0870デフォルトの名無しさん2007/04/29(日) 12:00:07
>>869
.NETのStringはクラス。ただ変更不可なクラスなのでプリミティブ型のようにふるまえる。
その代償で特定のケースでパフォーマンスが落ちるケースがありStringBuilderが必要になる。
VB6のStringは変更可能なプリミティブ型。代入時はコピー操作を伴うが、文字の連結などは高速。
コピー操作はWrite On Copyをやってると思うけど実際はどうだろう。
0871デフォルトの名無しさん2007/04/29(日) 12:03:48
なんか勘違いしてるようだけどプリミティブ型っていうのは組み込みの値型のことではないよ。
0872デフォルトの名無しさん2007/04/29(日) 12:20:43
>>871
プリミティブ型の定義は言語によって違うと思うけど説明してみて。
0873デフォルトの名無しさん2007/04/29(日) 12:24:00
System.Type なんだし「型」なわけだが。
0874デフォルトの名無しさん2007/04/29(日) 12:32:42
クラスと型を対義語のように使うのが間違い。
class type
value type
型はどちらの意味でもとれる。

0875デフォルトの名無しさん2007/04/29(日) 12:40:36
型の意味が何なのかは言語によって違う。.NET FrameworkとVB.NETでも多少の相違が出る。
>>851 の ttp://msdn2.microsoft.com/ja-jp/library/47zceaw7(VS.80).aspxでも
Visual Basic のデータ型、共通言語ランタイムの型構造 と微妙な表現になってる。
String型がありえないといってる連中はそういう定義の言語をやってるんとちゃうの。
0876デフォルトの名無しさん2007/04/29(日) 13:50:48
というわけでオレオレ厨が湧き出している VB6 スレです
0877デフォルトの名無しさん2007/04/29(日) 13:52:56
うはw おkwww 把握www
0878デフォルトの名無しさん2007/04/29(日) 13:58:04
バカばかりじゃないってことがわかったのは嬉しいが、スレ違いなのが悲しいな。
0879デフォルトの名無しさん2007/04/29(日) 15:38:04
VB.NETスレでやれwww
0880デフォルトの名無しさん2007/04/29(日) 16:18:52
ここはひどいVB厨ですね。
0881デフォルトの名無しさん2007/04/30(月) 10:13:39
レベル低いな。

VBという言語じゃなくてそれに携わっている人がね。
0882デフォルトの名無しさん2007/04/30(月) 11:11:04
>>881
どこがどうレベル低いか低レベルな俺にもわかるように説明してみろよ。
偉そうにするのが好きだな本当にw
0883デフォルトの名無しさん2007/04/30(月) 11:16:32
(´・ω・`) かってにほざいてろ かす
0884デフォルトの名無しさん2007/04/30(月) 14:39:03
バカはスルー
0885デフォルトの名無しさん2007/04/30(月) 19:07:39
ここ最近の流れがエビデンスだろw
0886デフォルトの名無しさん2007/04/30(月) 19:20:53
>>885はたぶん真性だ
"証拠"を格好よく言いたいだけで墓穴掘ってる^^;;;;;;;
0887デフォルトの名無しさん2007/04/30(月) 19:48:53
>>886
俺はおまえこそ真性厨房だと思うんだが・・・?
まるで鬼の首をとったような喜び方が痛い
0888デフォルトの名無しさん2007/04/30(月) 19:51:01
お互い大変ですね ^^;;
0889デフォルトの名無しさん2007/04/30(月) 20:04:03
>>886
エビデンスは普通に使うだろ。
まぁ、>>885 みたいな使い方は普通しないが。
0890デフォルトの名無しさん2007/04/30(月) 20:53:06
English板にエビデンス厨という奴がいてだな、
住人A「俺TOEIC 900点以上だぜ」
という書き込みがあると、
エビデンス厨「エビデンスを見せろ!」
0891デフォルトの名無しさん2007/04/30(月) 21:01:44
>>890
なに適当な作り話でっちあげてんだよ。
それが本当ならエビデンスを見せろ!
0892デフォルトの名無しさん2007/04/30(月) 21:26:55
>>891
エビデンス厨
http://academy6.2ch.net/test/read.cgi/english/1172881691/240
0893デフォルトの名無しさん2007/04/30(月) 21:31:43
本当に見せなくていいからw
0894デフォルトの名無しさん2007/04/30(月) 21:41:45
エビデンス見せろっていったくせに!
0895デフォルトの名無しさん2007/04/30(月) 21:52:37
>>894
そんなこといつ言った?
エビデンスを見s(ry
0896デフォルトの名無しさん2007/04/30(月) 22:20:04
そろそろ終わりにしようね
0897デフォルトの名無しさん2007/05/01(火) 09:03:31
最近の流れがVB厨のレベルの低さを表している。
0898デフォルトの名無しさん2007/05/01(火) 09:37:13
>>897
VBも低いだろうがこんな掲示板で何をおっしゃっているのかwww 
0899デフォルトの名無しさん2007/05/01(火) 10:35:27
この流れが>>897のPGとしてのへっぽこ具合を表している
つまりおまえはゲラウトヒアということだ>>897
0900デフォルトの名無しさん2007/05/01(火) 12:50:46
>>899はたぶん真性だ
"Get out here"を格好よく言いたいだけで墓穴掘ってる^^;;;;;;;
0901デフォルトの名無しさん2007/05/01(火) 12:55:00
>>900
多分Vipperじゃないか?
ちょっと前にはやってたし
0902デフォルトの名無しさん2007/05/01(火) 13:40:15
>>901
Vipperというエビデンス出してくださいw
0903!omikuji2007/05/01(火) 13:59:25
ほっ
0904デフォルトの名無しさん2007/05/01(火) 20:34:32
最近始めたんですが、評価版しか手に入りません
どうしたら製品版、もしくばコンパイルできる他のを手に入れることができますか
0905デフォルトの名無しさん2007/05/01(火) 21:01:46
>>904
http://www.freebyte.com/programming/compilers/envelop.html
このへんはどうだ? 是非、人柱報告をきぼん。
0906デフォルトの名無しさん2007/05/01(火) 22:38:29
>>905
使い方わかりませんでした
0907デフォルトの名無しさん2007/05/02(水) 00:49:30
Cはまあまあ知っているのですが
VBにはそれほど詳しくありません。
VBでCの関数ポインタみたいな事ってできるんでしょうか?

Sub Subp(SubpX)
  Call SubpX(1, 2, 3)
End Sub
0908デフォルトの名無しさん2007/05/02(水) 00:52:23
VB5だかVB6あたりからできるようになってたハズ。
レス数が900を超えています。1000を超えると表示できなくなるよ。