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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2006/12/08(金) 19:36:45
このスレッドはVBについて、
他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
VB使いが優しくコメントを返しますが、
お礼はVBの布教はしなくてよいので、初心者の救済をお願いします。
0938デフォルトの名無しさん2008/03/16(日) 11:46:57
そろそろスレチなんじゃね?
0939デフォルトの名無しさん2008/03/16(日) 11:58:49
弄れなかったらシリアルパラレル変換機を通せばええねん
0940デフォルトの名無しさん2008/03/16(日) 18:22:27
VB2008にCreateFile()は無い様なんですが、もう少し調べてみます。

スレチ申し訳ありませんでした。
Visual Studio 2008 のスレに移動します。
0941デフォルトの名無しさん2008/03/19(水) 15:57:51
C++とかC#ばっかりやってた者なのですが、VBのコーディングについて質問があります。
Functionの中に複数の返り値がセットされているケースについてです。

以下は無意味で極端な例として書いたものなのですが、一応動作します。
しかし一般的にナンセンスでしょうか?
それとも許される書き方でしょうか?

Function  FUNC_1() as integer
  FUNC_1 = 1
if flg = true then Exit Function

  FUNC_1 = 2
End Function
0942デフォルトの名無しさん2008/03/19(水) 16:01:32
段がズレてしまったので書き直します。

Function  FUNC_1() as integer
  FUNC_1 = 1
  if flg = true then Exit Function

  FUNC_1 = 2
End Function

ついでに、VBには条件演算子がないようなのですが、
何か代替になる簡潔な書き方はないでしょうか?
例
↓
string s = flag ? "OK" : "NG";
0943デフォルトの名無しさん2008/03/19(水) 16:07:57
IIfというのがあるにはあるけどあんまりお勧めしない
0944デフォルトの名無しさん2008/03/19(水) 16:26:17
>>941
俺は別に気にせずただの変数の1つとして使っているが、
個人的なプログラムでしかVBを使ったことがないので、
他人がどう思っているなのかは知らない。
0945デフォルトの名無しさん2008/03/19(水) 18:13:24
FUNC_1 = FUNC_1 + 1

こんなことも
0946デフォルトの名無しさん2008/03/19(水) 19:48:58
iif使うときはショートサーキットじゃないことに注意な

2005でもそうだったと思うが2008では直ってるんかね
0947デフォルトの名無しさん2008/03/19(水) 20:20:09
>>942
Function FUNC_1(flg As Boolean) As Integer

  If flg Then
   FUNC_1 = 1
Else
   FUNC_1 = 2
End If

End Function
0948デフォルトの名無しさん2008/03/19(水) 20:21:42
>>942
ずれちゃった・・・

Function FUNC_1(flg As Boolean) As Integer

  If flg Then
    FUNC_1 = 1
  Else
    FUNC_1 = 2
  End If

End Function

0949デフォルトの名無しさん2008/03/20(木) 01:02:10
わおーっ
0950デフォルトの名無しさん2008/03/20(木) 01:07:26
FUNC_1 = (flg = True) + 2
0951デフォルトの名無しさん2008/03/20(木) 06:00:43
俺は、条件が複雑になる場合に、こういうスタイルを使ってる。

If 条件1 And 条件2 And ...... Then という仕様だったら

Function FUNC_1() As Boolean
 FUNC_1 = False '省略可能だがあえて書く
 If Not 条件1 Then Exit Function
 If Not 条件2 Then Exit Function
 ...
FUNC_1 = True
End Function

If FUNC_1() Then って書くと条件追加や削除などメンテしやすい

If 条件1 Or 条件2 Or ...... Then なら

Function FUNC_1() As Boolean
 FUNC_1 = True
 If 条件1 Then Exit Function
 If 条件2 Then Exit Function
 ...
FUNC_1 = False
End Function
0952デフォルトの名無しさん2008/03/20(木) 11:28:16
こういうの見てるとつくづくVBって糞言語だなという感を深めるな。。
0953デフォルトの名無しさん2008/03/20(木) 12:59:03
多少のかっこ悪さはあるが,特に不思議というわけでもない
0954デフォルトの名無しさん2008/03/20(木) 13:07:31
>>952
こんな糞言語でも ちょちょいって作ってあげると感謝されるから笑っちゃうよね
目的を達成するのに最も合理的な道具を選べばいい
そんだけやん
0955デフォルトの名無しさん2008/03/20(木) 13:49:44
If Not 条件1 Then
ElseIf Not 条件2 Then
・・・
Else
・・・
End If

Select Case True
Case 条件1,条件2,・・・
 ・・・
End Select
0956デフォルトの名無しさん2008/03/20(木) 13:52:48
If 条件1 Then If 条件2 Then If ...... Then
0957デフォルトの名無しさん2008/03/21(金) 11:14:31
>>946
直ってるって・・・
別にそれが間違っているわけじゃないしな
一般的な言語から外れていてもそれがVBの言語仕様なのだから
ちなみに、論理演算は.netからandalsoとorelseが追加されてSCできるようになったよ
0958デフォルトの名無しさん2008/03/21(金) 21:06:16
>>957
あー、まあそうだな。言い方が間違ってた。

で、2008ではどうなってんだろう
0959デフォルトの名無しさん2008/03/21(金) 21:26:11
Collectionって便利だけど、ソートできんのな。ふざけんなよ
0960デフォルトの名無しさん2008/03/21(金) 22:34:01
どうも バグっているようだ \(^o^)/
0961デフォルトの名無しさん2008/03/22(土) 16:35:52
どうも.netで直ってるようだ
0962デフォルトの名無しさん2008/03/23(日) 16:06:12
つ System.Collections.ArrayList
0963デフォルトの名無しさん2008/03/24(月) 13:16:52
>>961-962
スレタイ嫁
0964デフォルトの名無しさん2008/03/24(月) 15:20:30
?
0965デフォルトの名無しさん2008/03/24(月) 15:42:59
>>963はvb.netと勘違いしてんだろ ほっとけ
0966デフォルトの名無しさん2008/03/27(木) 14:53:47
>>962
デフォルトのCompare関数のソートはできましたが、
VB6からCompare関数を作ってソート呼べますか?
0967デフォルトの名無しさん2008/03/27(木) 16:02:07
.net?
0968デフォルトの名無しさん2008/03/27(木) 16:59:55
Set DataList = CreateObject("System.Collections.ArrayList")
DataList.Add "B"
DataList.Add "C"
DataList.Add "A"
DataList.Sort()
For Each strItem in DataList
MsgBox strItem
Next
09699412008/03/27(木) 20:38:53
会社のISPがいつまでたってもアク禁から開放されないので自宅から。

>>943-956
サンクスコ
0970デフォルトの名無しさん2008/03/27(木) 20:39:44
あ、ageちゃった…
スマン
0971デフォルトの名無しさん2008/03/28(金) 04:18:09
VB6でかいたソフトが終了してもタスクに残ります。
EXCELをエクスポートする機能がありOLEを使用しています。
どのようなことが考えられるでしょう?
0972デフォルトの名無しさん2008/03/28(金) 07:42:06
バグ
0973デフォルトの名無しさん2008/03/28(金) 07:44:54
自分で宣言したフォーム変数でNewして使用せず、フォームのオブジェクト名と同じ名前のフォーム変数を使っている
フォームAとフォームBがお互いの参照を握ってガチムチになっている
0974デフォルトの名無しさん2008/03/28(金) 09:05:03
>>973
つまりコードでかくとどのようになるのでしょうか?すいません。
0975デフォルトの名無しさん2008/03/28(金) 14:19:31
>>971
調べればわんさか出てくるぞ
http://www.google.co.jp/search?complete=1&;hl=ja&q=vb6+Excel+%E7%B5%82%E4%BA%86%E3%81%97%E3%81%AA%E3%81%84&lr=
0976デフォルトの名無しさん2008/03/28(金) 19:50:31
>971もテンプレ化決定だお
0977デフォルトの名無しさん2008/03/28(金) 23:17:22
http://www.google.com/search?hl=ja&safe=off&rlz=1B3GGGL_ja___JP264&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=%E3%82%AC%E3%83%81%E3%83%A0%E3%83%81&spell=1
0978デフォルトの名無しさん2008/03/30(日) 09:04:24
次スレ勃った・・・

くだすれVB6.0以前(超初心者向け)
http://pc11.2ch.net/test/read.cgi/tech/1206835319/
0979デフォルトの名無しさん2008/03/30(日) 11:31:14
VB6スレなんて何個もいらねえだろ
0980デフォルトの名無しさん2008/03/30(日) 12:34:47
支那人も裸足で逃げるほどの初心者隔離スレは、
ひとつくらいあったほうがいいぬ。
0981デフォルトの名無しさん2008/03/30(日) 19:23:49
うめ
0982デフォルトの名無しさん2008/03/31(月) 01:06:19
caseについての質問です
comboboxが100項目近くあり、そのひとつひとつのcomboboxで選ばれたものに対して
1番目ならlabel1に0と表示、2場目ならlabel1に1と表示・・・とやりたいのですが

Select Case Combo1.ListIndex
Case 0
label1.Caption = 0
Case 1
label1.Caption = 1
Case 2
labe1.Caption = 2
とずっと続けると異常に長くなってしまうので、何か別の書き方はないでしょうか?
0983デフォルトの名無しさん2008/03/31(月) 01:43:32
label1.Caption = Combo1.ListIndex - 1
0984デフォルトの名無しさん2008/03/31(月) 01:44:34
-1はいらないのか
0985デフォルトの名無しさん2008/03/31(月) 02:30:03
そういうやり方があったのか
ありがとうございます!!
0986デフォルトの名無しさん2008/04/01(火) 01:30:41
>>982
こういうコードが業務用ソフトに入ってるかもしれない思うと・・・
0987デフォルトの名無しさん2008/04/01(火) 09:31:13
>>986
世の中こんなんばっかだよ?
0988デフォルトの名無しさん2008/04/01(火) 13:41:12
慣れてしまえばどうって事は無い
レス数が950を超えています。1000を超えると書き込みができなくなります。