VBプログラマ質問スレ(6.0以前) Part52at TECH
VBプログラマ質問スレ(6.0以前) Part52 - 暇つぶし2ch1:デフォルトの名無しさん
07/05/19 17:33:37
ここは Visual Basic ~6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。

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

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

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

MSDN Online Japan ホーム
 URLリンク(www.microsoft.com)
Visual Studio 6.0 Service Pack 6
 URLリンク(msdn.microsoft.com)
Google
 URLリンク(www.google.co.jp)

※「まず自分で調べる」クセを身につけよう。

2:デフォルトの名無しさん
07/05/19 17:34:50
過去ログ
  Part 1 URLリンク(piza2.2ch.net)
  Part 2 URLリンク(piza2.2ch.net)
  Part 3 URLリンク(piza2.2ch.net)
  Part 4 URLリンク(pc.2ch.net)
  Part 5 URLリンク(pc.2ch.net)
  Part 6 URLリンク(pc.2ch.net)
  Part 7 URLリンク(pc.2ch.net)
  Part 8 URLリンク(pc.2ch.net)
  Part 9 URLリンク(pc.2ch.net)
  Part10 URLリンク(pc.2ch.net)
  Part11 URLリンク(pc.2ch.net)
  Part12 URLリンク(pc3.2ch.net)
  Part13 URLリンク(pc3.2ch.net)
  Part14 URLリンク(pc3.2ch.net)
  Part15 URLリンク(pc3.2ch.net)

3:デフォルトの名無しさん
07/05/19 17:37:29
  Part16 URLリンク(pc3.2ch.net)
  Part17 URLリンク(pc3.2ch.net)
  Part18 URLリンク(pc3.2ch.net)
  Part19 URLリンク(pc3.2ch.net)
  Part20 URLリンク(pc5.2ch.net)
  Part21 URLリンク(pc5.2ch.net)
  Part22 URLリンク(pc5.2ch.net)
  Part23 URLリンク(pc5.2ch.net)
  Part24 URLリンク(pc5.2ch.net)
  Part25 URLリンク(pc5.2ch.net)
  Part26 URLリンク(pc5.2ch.net)
  Part27 URLリンク(pc5.2ch.net)
  Part28 URLリンク(pc5.2ch.net)
  Part29 URLリンク(pc5.2ch.net)
  Part30 スレリンク(tech板)

4:デフォルトの名無しさん
07/05/19 17:38:36
  Part31 スレリンク(tech板)
  Part32 スレリンク(tech板)
  Part33 スレリンク(tech板)
  Part34 スレリンク(tech板)
  Part35 スレリンク(tech板)
  Part36 スレリンク(tech板)
  Part37 スレリンク(tech板)
  Part38 スレリンク(tech板)
  Part39 スレリンク(tech板)
  Part40 スレリンク(tech板)
  Part41 スレリンク(tech板)
  Part42 スレリンク(tech板)
  Part43 スレリンク(tech板)
  Part44 スレリンク(tech板)
  Part45 スレリンク(tech板)

5:デフォルトの名無しさん
07/05/19 17:39:21
  Part46 スレリンク(tech板)
  Part47 スレリンク(tech板)
  Part48 スレリンク(tech板)
  Part49 スレリンク(tech板)
  Part50 スレリンク(tech板)
  Part51 スレリンク(tech板)

6:デフォルトの名無しさん
07/05/19 17:46:14
オマンコ!!!!

7:デフォルトの名無しさん
07/05/19 18:44:21
フレキシブルグリッドでセルを結合したときなのですが、
セルを列で結合して表示したときにクリックイベントを取ると、
クリックした場所によってインデックス番号が変わってしまいます。
結合している列の一番上のインデックスを常に取得したいのですが
どうすればよいでしょうか?
_     ___
1
1 これが 1
__ ___

わかりにくい図で申し訳ありませんが、よろしくお願い致します。

8:デフォルトの名無しさん
07/05/19 21:08:02
以下のようなツールを作成してます。
①Linux上のgz形式で圧縮されたファイルをWindowsPCにDL
②DLしたファイルをTAR32で解凍
③解凍したファイル(カンマ区切りの.csv)から条件に合う行をテキストファイル(.txt)に保存

②まではできたのですが③で悩み中です。
・解凍したファイルがUTF-8のため文字化けする
・OpenしてLine inputで読み込むと全行(約2万行)を読み込んでしまい処理が重い。

コード変換すればいいと思うのですが、
その書き方がわからないので教えていただきたいです。
宜しくお願いします。





9:デフォルトの名無しさん
07/05/20 03:13:00
>>前スレ983
無事うまく取得することができました。
ActiveCodePane から分割や上下を区別する方法が全く思いつきませんでした。
正直、なぜ取得できているのか理解しきれていないのですが、テストした限り
問題ありませんでした。
1点だけ、コードウィンドウを1つも開いていない場合は ActiveCodePane が
Nothing となるので、VBE_CODEPAIN にコードウィンドウを1つも開いていない意味の
CODEPAIN_NOTHING を追加しました。
本当にもうほとんど諦めだったので、感謝です。ありがとうございました。

10:デフォルトの名無しさん
07/05/20 06:55:09
>>9
CodePanes コレクションの並び順が常に Top → Bottom の順で格納されてるんじゃないかと期待して書いてみただけw
同じコードウィンドウに属するCodePainの判定は、親が同じ VBComponent かどうかを見れば出来ると考えた
あとは CodePanes の中から ActiveCodePain が見つかるのが先か、VBComponent だけが同じものが見つかるのが先かを試せばいいってわけ


11:デフォルトの名無しさん
07/05/21 10:03:42
環境:VB4.0 16ビット
OS:WINXP

DIR関数にロングファイル名を使うとエラー75になるんだけど、正常終了するようにできませんか?
もしくは8.3形式に変換する方法とか…

12:デフォルトの名無しさん
07/05/21 12:10:45
XPって16ビットの動作ってできたっけ?
互換モードで動く?
XPでVB4の開発はしないほうが良いと思う

関数の先頭に
on error goto xxx

関数の最後に
xxx:
を作って何か処理入れれば良いと思う

脳内VB6なんで動くかどうかわからんけど

13:11
07/05/21 13:17:18
>>12
一応動いてます。巨大なシステムの一部なんで変えるわけにもいきません。
エラートラップで回避しても本来そのパスは正しいので…。
もう対応不可にしたほうがよさげな気がしてきました

14:デフォルトの名無しさん
07/05/21 13:59:40
ショートファイル名に変換して扱う事は出来ないのかい?

15:11
07/05/21 14:04:52
ショートファイル名にどうやって変換できますか?
karnel32は使えませんし…

16:デフォルトの名無しさん
07/05/21 15:16:05
>>15
VBで出来るかどうかは知らないが、サンクというものがある。

URLリンク(www.google.co.jp)


17:デフォルトの名無しさん
07/05/21 15:16:17
>>15
つ【GetShortPathNameA】

#kernel32が使えないXPってどんなのだよ

18:デフォルトの名無しさん
07/05/21 15:17:40
GetShortPathName
って16BIT時代になかったっけか?

19:デフォルトの名無しさん
07/05/21 15:30:44
FileSystemObjectが使えるだろ?

20:11
07/05/21 16:27:23
GetShortPathNameをVB4(16bit)で使用できないんです。
Thunk使えばできそうな気がしますがすごく大変そうです…
FileSystemObjectはクライアントのOSが95だったりするんで使いたいけど使えないんです
こんなシステムぶっこわしてぇ…

21:デフォルトの名無しさん
07/05/21 16:38:25
面倒ならショートファイル名を返すだけの32bitプログラムでも使えば
遅そうだが

22:デフォルトの名無しさん
07/05/21 16:51:59
長ったらしいが、死ぬほど大変そうには思えない。
URLリンク(jet.breeze.jp)

23:デフォルトの名無しさん
07/05/21 18:06:49
>>8
つADODB.Stream

24:デフォルトの名無しさん
07/05/21 19:57:07
前スレでVBには構造体は無いと言ったのに、相変わらず構造体
と言ってたな。
VBプログラマは学習能力が無いのか。

25:デフォルトの名無しさん
07/05/21 20:25:30
本当に下らない質問なのだろうと予想していますが、どうか教えてください。
普段2005で学習しているのですが、6.0環境でESCを押した時に
[ Textbox1.text = "" ]この動作をさせたいのですが
どのように記述したらいいのでしょうか?

キーを押した時
if エスケープキーだったら then
[ Text1.text = "" ] 
end if
ではどうにもならず。


26:デフォルトの名無しさん
07/05/21 20:51:45
>>24
ここは雑談スレではないのに相変わらずスレ違いのカキコするんだな
VBプログラマは知らんが、少なくとも24は学習能力が無いのは確かだw

>>25
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Text1.Text = ""
End If
End Sub
ただし、同じフォーム上にCancelプロパティがTrueのCommandButtonがあるとイベントが発生しない

27:25
07/05/21 20:57:14
>>26
Cancelプロパティについて読んできました。
ESCキーはこんなところでも使われていたのですね。勉強になりました。
質問する前に別のキーに割り当てて試して見ればお手を煩わせなかったのかと思うと
赤面する思いです。
ありがとうございました。


28:デフォルトの名無しさん
07/05/21 21:01:52
>>26
VBに無い構造体を語るのがスレ違いのカキコだ。
そんなこともわからないお前は学習能力無しだな。

29:デフォルトの名無しさん
07/05/21 21:33:06
>>20
>クライアントのOSが95
あなた>>11で「OS:WINXP」って書いてるでしょ
回答してくれてる人に失礼よ?

>>28
はいはい。良かったね。もう帰っていいよ。

30:デフォルトの名無しさん
07/05/22 00:22:30
>>20
URLリンク(jet.breeze.jp)


31:デフォルトの名無しさん
07/05/22 18:30:54
開発環境がXPで
動作環境が95で
アプリがVB4の16ビットなんだよね?

それでXPで開発してて(XPで)パスが取得できない
ってこと?
XPではパス取得できないけど95では取得できるのでは?
それは試した?

32:デフォルトの名無しさん
07/05/22 22:33:57
VB6.0 SP6の環境で、レコードセットで、postgresのDBテーブルのbool型を取得した時に、
同じレコードのカラムにアクセスしているにもかかわらず、返ってくる値が1だったり0だったりまちまちです
plsqlでレコード確認すると'f'か't'かできちんと格納されています。
VBで取得するときは、なにか加工が必要なのでしょうか?
スレ違いかもしれませんが、よろしくお願い致します。

33:デフォルトの名無しさん
07/05/23 09:12:35
むしろそれをBooleanに格納してどうなっているんだ?
毎回Bool型に格納して結果が違うのか?

1とか0とかではんだんしないほうがいい

34:32
07/05/23 22:41:39
初回取得時にmovefirstしてたのが原因でした
原因はわかりましたが、理由は不明です

35:デフォルトの名無しさん
07/05/24 12:26:46
>>34
ODBCドライバの不具合かもしれません。
ポスグレスレで聞いた方がいいでしょう。
あちらで聞くときはちゃんと環境を書いてね。

36:デフォルトの名無しさん
07/05/24 16:20:44
[ファイルを開く]ダイアログ・ボックスを表示するプログラムはどうすればいいんでしょうか?

コモン・ダイアログ・コントロールを使わずにプログラムだけで処理をしたいのですが、
解説がされてるHPでもあれば教えてください。

37:デフォルトの名無しさん
07/05/24 16:34:33
>>36
速攻出てきたけど。
もっとググレカス

URLリンク(www.bcap.co.jp)


38:デフォルトの名無しさん
07/05/24 16:37:19
>>37
すんません
ありがとうございます

39:yo1
07/05/24 16:40:48
RS232CのDS信号を制御したいのですが、可能でしょうか。
可能ならば、その方法を教えて頂けないでしょうか。
よろしくおねがいします。

40:yo1
07/05/24 16:44:13
SD信号の間違いでした。
よろしくおねがいします。

41:デフォルトの名無しさん
07/05/24 16:59:54
自在にON/OFFはできませんよ

42:yo1
07/05/24 17:19:47
>>41
そうですか残念です。
ありがとうございました。

43:デフォルトの名無しさん
07/05/24 18:33:15
810から805を
810-805と表記してある文があります。

810-805を
810.809.808.807.806.805に分けるには
どのような構文が考えられますか?

44:デフォルトの名無しさん
07/05/24 18:47:06
続けてすみません

先ほどの追加になるのですが
部屋番号が815.812.810-805.801のように入力されていた場合
部屋の数を数える方法があれば教えてください。

45:デフォルトの名無しさん
07/05/24 19:35:06
エレベーターで8階に上がって一部屋づつ数えればいいと思うよ

46:デフォルトの名無しさん
07/05/24 19:55:26
>>44
815.812.810-805.801
これで部屋数いくつなの?












っていうのが頭でわかればそれをプログラムにするだけだと思うヨ

47:デフォルトの名無しさん
07/05/24 20:01:50
>>43
色々方法はあるし、どういう感じなのかは分からないけど、
815.812.810-805.801がText1に入ってるとするね。

Dim str As String
Dim s() As String
str=Text1.Text
s=split(str,".")

これで配列Sには(815)(812)(810-805)(801)が入る。
それで配列を一つずつ"-"が入ってないかを調べて、入っていたら、
"-"で文を分解して…あとは考えて。
これが分からないと…VBはまだ早いのでは?

48:デフォルトの名無しさん
07/05/24 22:26:41
>>37
おまえツンデレさんだろ?w

49:デフォルトの名無しさん
07/05/24 22:29:07
810-805
これは同じ階だけだと仮定すっと
810-805 +1
だわなぁ・・・

しかしなんという素人作成部屋管理システム・・・

50:43
07/05/24 22:57:12
ありがとうございました

51:37
07/05/25 00:57:02
>>48
何よ、簡単に見つかるじゃない
もっとちゃんと調べなさいよ

ありがとうって、な…なによっ
あんたのためなんかじゃないんだからね!


52:デフォルトの名無しさん
07/05/25 18:49:42
エクセルの項目をVBに取り込みたいのですが
参考程度になるHPはありますでしょうか?

53:デフォルトの名無しさん
07/05/25 18:58:21
ググれば相当見つかる


54:デフォルトの名無しさん
07/05/26 09:29:55
エクセルがインストールされていない環境でも使えるようにするのは面倒だがね

55:デフォルトの名無しさん
07/05/26 11:59:06
>>54
俺その方法知らないんで良かったら・・・・

56:デフォルトの名無しさん
07/05/26 13:30:20
Excelを買ってもらえるよう説得する
これが面倒

57:デフォルトの名無しさん
07/05/26 22:43:59
DTPickerを二つ使って入力した日付の大小を比較したいのですが、
VBで日付の大小を比較するにはどうすればよいのでしょうか?
If DateValue(DTPicker(0).Value) > DateValue(DTPicker(1).Value) Then
のように比較しても値が上手く判定できません。
よろしくお願いします。


58:デフォルトの名無しさん
07/05/26 23:20:08
いったん1970年からの秒数に直して比較。
ただし2038年を過ぎるとバグる。

59:デフォルトの名無しさん
07/05/26 23:28:08
タイムシリアル化、といいたいんだろうけど
そんな小細工しなくても、ベタにやったって大した労力でもないだろう。

年、月、日(必要ならさらに時間、分、秒)と順に比較するだけじゃないか。

60:デフォルトの名無しさん
07/05/27 01:29:13
今現在日本はクリックで世界と戦っています。
日本は現在1位ですが、2位のハンガリーに詰められています。
どうやらハンガリーにはとてつもない、日本の技術の先を行くツールがあるのかもしれない。
 
そこで日本も新兵器を作ろうと思っています。
それには、皆さんの力が必要不可欠です。期限は2日、今月の30日にゲームは終了します。
 
皆さん、お願いします。
 
【日本VSハンガリー】一番クリックした国が優勝click80【超接戦】
スレリンク(news4vip板)

ひたすらクリック
URLリンク(www.clickclickclick.com)

まとめサイト
URLリンク(www33.atwiki.jp)


61:デフォルトの名無しさん
07/05/27 01:39:52
コピペ君って馬鹿だな、まで読んだ。

62:デフォルトの名無しさん
07/05/27 10:29:29
>>57
format$(Time1, "yyyymmddhhnnss")>format$(Time2, "yyyymmddhhnnss")

63:デフォルトの名無しさん
07/05/28 10:58:21
ファイル名の取得に関する質問です

strFileName = Left$(tOpenFileName.lpstrFile, InStr(tOpenFileName.lpstrFile, vbNullChar) - 1)

これでファイルの全体の名前は取得できますが、
ファイル名のみを取得する場合はどうしたらよいででしょうか?

64:デフォルトの名無しさん
07/05/28 11:41:44
素直にFilesystemObjectつかったほうがらくだと思うぞ?

ファイル名を取りたいなら一番右にあるパス区切り文字から右の文字取ればいいだけだろ

VB6ならInStrのリバースつかって最初にパス区切り文字が見付けられるし

65:デフォルトの名無しさん
07/05/28 16:24:21
コントロール配列の要素への参照をWithEventsに格納できない不具合に今更はまった
ドキュメントに記載されない糞仕様が他にもどれだけある事やら

66:デフォルトの名無しさん
07/05/30 07:17:35
capicomっていう暗号化のdllについて質問です。
VBSで使おうと思っています。
暗号方式AES128bitを指定して、パスワードを指定することができる
ことは確認しました。
ブロックモードをCBCにしてIVを指定したいのですが、マニュアルにそれらしき
プロパティが見つかりません。
設定方法ご存知でしたら教えてください。

67:デフォルトの名無しさん
07/05/30 18:43:59
ExcelのデータをFlexGridに読込みたいのですが、
Excelのデータは毎回変わり、何件あるのかは不定です。

Excelのデータの数に合わせて、グリッドの数も増やしたいのですが、

一度Excelのデータを全て読込み→
データの数を数える→
グリッドの数を調整する→
データを読込み→
Excelからグリッドへデータ入力
といった形しかないのでしょうか?

できれば
Excelのデータを1件読み→
グリッドを1件増やしデータ入力→
繰り返し
といった形にしたいのですが不可能でしょうか?

68:デフォルトの名無しさん
07/05/30 19:08:03
>>67
後者では行列を変更する回数が増えるのでパフォーマンスが悪くなると思う

前者の方法で大方いいと思うけど

×
一度Excelのデータを全て読込み→
データの数を数える→
グリッドの数を調整する→
データを読込み→
Excelからグリッドへデータ入力


一度Excelのデータを全て読込み、変数や、配列・コレクションに保持→
データの数を数える→
グリッドの数を調整する→
保持したデータからグリッドへデータ入力

これではダメかな?

69:デフォルトの名無しさん
07/05/30 23:05:19
>>65
クラスが書けない糞プログラマー乙。

70:デフォルトの名無しさん
07/05/31 00:21:00
VB6 SP6のMSフレキシブルグリッドで、ドラッグアンドドロップで
セルの内容を移動させたいのですが、実現方法がわかりません。
どうすればよいか、ご教授お願い致します。

71:デフォルトの名無しさん
07/05/31 00:31:46
>>69
循環参照になるのが気持ち悪いけど
デコレータクラスにコントロールの参照を持たせたて
フォームから冗長なコードを省きたかったんだが

ユーザーコントロールで似たような事ができるけど異なるプロジェクト間でのカット&ペーストに無駄手間がかかるから避けたい

72:デフォルトの名無しさん
07/05/31 06:58:05
VB5.0でサーバーが複数のクライアントから接続要求された時新たなWinsockを生成する方法がわかりません
1.管理テーブルから未接続の場所を探す
2.→未接続の場所をiに設定
Load Winsock2(i)
Winsock2(i).Accept rewuestID
3.管理テーブルの接続の場所にtrueを入れる

1 2 3 教えてください

73:デフォルトの名無しさん
07/05/31 07:12:42
>>72
とりあえずwinsockコントロールのバグな
URLリンク(support.microsoft.com)

で、質問(?)の方だけど
教えるも何も自分で納得してる日本語だと思うんだが、何か疑問に思うところがあるのか?

74:デフォルトの名無しさん
07/05/31 07:17:57
>>73
すいません1.2.3.の言葉をどうプログラムにすればいいかわからないんです

75:デフォルトの名無しさん
07/05/31 08:59:42
>>68
ありがとうございます

76:デフォルトの名無しさん
07/05/31 09:34:51
>>73
こんなバグあったんかー!!
どおりで・・・。orz

77:デフォルトの名無しさん
07/05/31 11:01:39
>>74
全部じゃねーかwwwwww
ところで それを管理テーブル抜きにして固定の2つ,3つほどのクライアントとのやり取りで実装は出来るの?
まずはそこから攻めていかなきゃいけないと思うんだけど


78:nobodyさん
07/06/01 13:12:26
久しぶりにVBでプログラムを組んでるのですが
DATAGridに標準でソート機能ってありませんでしたっけ?
HSHFLEXでしたっけ?
みなさんどうやってソート機能つけてます?
ご存知のかたいたらご教授願います。

79:デフォルトの名無しさん
07/06/01 14:20:34
ソートはな無いんじゃね?
連結元のrecordsetでソートしてやりゃおk

80:nobodyさん
07/06/01 15:58:06
昇降ボタン(Command)をつけてそこから、、DataGridいじるしかないですかね。
要するに、各列ごとにデータをソートしたいだけなんです。
webでいうとヤフーオークションみたいなイメージ。

81:デフォルトの名無しさん
07/06/01 16:29:13
ヘタにVBでソートするよりDBから指定されたカラムでソートしなおしたものをRSに取り込むのが早そうだな・・・
いや、ケースバイケースだけど 大量のデータならその方が早そうなきがする

と横槍

82:nobodyさん
07/06/01 18:09:16
結局▲▼のコマンドボタンつけてDBからソートしてもってきて
GRID表示させました。
どうもありがとん!

83:デフォルトの名無しさん
07/06/02 16:29:35
6.0にてマルチディスプレイ環境の
片方のディスプレイを使用不可にしたい
(画面のプロパティ→設定→windowsデスクトップをこのモニタ上で移動できるようにする(チェックをはずす)の操作)
のですが、可能でしょうか?

84:デフォルトの名無しさん
07/06/03 11:51:56
APIでそんなのあったっけ?
APIにあればいけるさ

85:デフォルトの名無しさん
07/06/04 21:54:06
ちょっと調べ物があって、古い参考書開いたら、
ランダムファイル処理のサンプル画面で、
「ZARD 永遠 5:13」
って出てきた。
歌手・曲名・演奏時間を1レコードとして扱う例だった。


少しせつなくなった。

86:デフォルトの名無しさん
07/06/04 22:21:21
visual basic 6.0でリストボックスに表示されている数値をクリックして選択したものだけの最大値を調べるプログラムを作りたいのですが全く方法がわかりません。
誰か教えて下さい。

87:デフォルトの名無しさん
07/06/04 22:37:35
>>86
リストボックスの1つだけを選択してその値をとることができるようにしてみよう
まずはそれからだ

88:86
07/06/04 22:51:21
Private Sub List1_Click()
Dim i As Double
  List2.Clear
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then
List2.AddItem List1.List(i)
End If
Next i
End Sub
こんな感じでList2に加えていく事はできるんですけど、何か別の配列みたいなのに格納していきたいのですが…

89:デフォルトの名無しさん
07/06/04 22:54:24
86に便乗する形で質問したいのですがよろしいでしょうか?

86と似たようなプログラムを作っているのですが、listboxの要素を関数に渡す方法がわかりません。
選択した物を合計する等は作れたのですが、これを関数を用いて作れとお達しを受けまして。

とりあえずAverage(1,2,3)で2が出てくるような関数は作れたのですが、どうすればlistboxの中の不定数の要素を関数に引き渡すのかがわかりません。
このような質問の仕方で伝わるものかとも思いますが、先輩方の御知恵を拝借したく…

どうぞよろしくおねがいします。


90:86
07/06/04 22:57:04
>>89
ああ私もそんな感じの物が作りたいんです。要素数が不定だからできないんですよね。

91:89
07/06/04 23:01:03
>>90
配列変数を宣言してlistboxの値をloopで回して格納していって、それを直接関数に渡せばいけるんじゃ?
とかも考えましたがうまく動かず。

それ以前に配列に要素を足す方法すら合ってるのかが謎で。

私ごときにはお手上げです。





92:86
07/06/04 23:44:43
>>91

> 配列変数を宣言してlistboxの値をloopで回して格納していって、それを直接関数に渡せばいけるんじゃ?
> とかも考えましたがうまく動かず。

ちなみにそれはどんな文ですか?


93:デフォルトの名無しさん
07/06/05 00:33:11


94:デフォルトの名無しさん
07/06/05 01:02:26
VB6はあまり配列が上手でないというか、使いやすいものではないと聞いたけど…。

選択した数値を文字列に変換して、カンマで区切って、最後にSplit関数で
配列にして、その関数に配列を渡して計算させるとか?


95:デフォルトの名無しさん
07/06/05 01:15:20
Collectionを使えばいいと思うけど…。
リストボックスの中は数値で、選択したものを配列(コレクション)に入れて
例えば、合計とかさせればいいんでしょ?

96:デフォルトの名無しさん
07/06/05 01:26:21
94と95は、どっちが86、89なんだ?

97:86
07/06/05 06:16:22
どっちも私ではありません

98:86
07/06/05 06:46:27
というか6.0ではCollectionどうやってつかうのかいまいち分からないんですけど

99:デフォルトの名無しさん
07/06/05 08:48:32
>>88
動的配列変数を宣言して、
ループの直前かもしくは中でReDim使って要素数足してけばおk

100:デフォルトの名無しさん
07/06/05 09:38:09
リストの選択要素の合計を求めるのだったらこんな感じかな?
横槍だけど。

Private Sub Command2_Click()
Dim a As Integer 
Dim b() As Integer '配列
Dim c As Integer  '要素数
Dim sum As Integer 

For a = 0 To List1.ListCount - 1
 If List1.Selected(a) = True Then

 ReDim Preserve b(c)
 b(c) = List1.List(a)
 c = c + 1
 End If
Next
sum = SumCalc(b) ’配列を渡して要素数の合計を返す
End Sub

Private Function SumCalc(ByRef b() As Integer) As Integer
Dim f As Integer
Dim sum As Integer

For f = 0 To UBound(b)
 sum = sum + b(f)
Next

SumCalc = sum
End Function

101:デフォルトの名無しさん
07/06/05 09:55:08
グリッドについての質問です。

グリッドのセルをクリックした時にその行がすべて選択状態(色が変わる状態)に
するにはどうしたらよいでしょうか?

102:デフォルトの名無しさん
07/06/05 10:27:33
グリッドにも色々種類がある訳だが。

103:デフォルトの名無しさん
07/06/05 11:15:49
>>101
エスパーレス
クリックしたRowの位置がわかるからFor文で

104:86
07/06/05 18:05:23
>>100
ありがとうございました。何とかできそうなので参考にさせてもらいます。

105:デフォルトの名無しさん
07/06/06 00:20:09
6.0でコマンドボタンをクリックした時に、任意のキーを押す動作をさせることはできますか?
コマンドボタンをクリックしたらESCキーが押されて、それによってESCキーのキープレスイベントが起きてくれるような動作をさせたいのですが。


106:デフォルトの名無しさん
07/06/06 00:25:17
キーを送ればいいしイベントを呼んでもいいんじゃない?

107:105
07/06/06 00:33:33
『キーを送る』が、まずよくわからず
コマンドボタンを押した時にkeyAsciiに任意の値を入れて、
それを何に渡せばいいのかがわからなかったのです。

あと、仮にESCキープレスの下に動作をを書いてあったとして
それをどう呼び出すのかもわかりません。

最近VB始めたもので何をどうすればいいのか。
コンピュータに日本語通じて欲しいです・・・

108:デフォルトの名無しさん
07/06/06 00:39:49
そのままなんだがな
キーを送る SendKeys
イベントを呼び出す Call Hoge_KeyPress(

109:デフォルトの名無しさん
07/06/06 01:15:30
>>108
頭固いな
自分自身にキー送る必要なんて、そもそもないだろ
キーダウンのイベントハンドラを呼びだせばいいじゃんw

110:デフォルトの名無しさん
07/06/06 01:21:50
>>109
何で俺に言うんだよ
質問に答えただけだろ

111:デフォルトの名無しさん
07/06/06 01:37:21
>>109
なにそのオナニー
そもそも、イベントが発生される以外で”呼び出される”のはイベントハンドラって言わないんじゃないの?
もっと別の言い方があるでしょ

で、元質問者にヒント
「コマンドボタンを押したら、コマンドボタンにフォーカスが移る」のを忘れないように。

112:デフォルトの名無しさん
07/06/06 01:53:45
>>111
別の言い方について詳しく

113:デフォルトの名無しさん
07/06/06 10:08:38
ハンドラじゃねぇってことだろw

114:デフォルトの名無しさん
07/06/06 10:25:03
ちょいとどこに質問したらいいかわからなくって聞きたいことがあるんですが、エクセルで画像を挿入したときにあらかじめ挿入する画像の原稿サイズで表示するんじゃなくてこっちで設定したサイズにして挿入する方法はありますか?
教えてください。すごくお願いします。

115:デフォルトの名無しさん
07/06/06 10:36:27
断る

116:デフォルトの名無しさん
07/06/06 10:38:02
>>114
モーグってサイト見ろ

117:デフォルトの名無しさん
07/06/06 12:12:19
>>116さん

いい情報をありがとうございました。

>>115は亀梨和也とアナルセックスをして死ねばいいのさ。

118:デフォルトの名無しさん
07/06/06 12:49:58
>>117
むしろお前がシネヨ?カス
せめてググってからこい 無能者が


119:デフォルトの名無しさん
07/06/06 13:04:53
>>118

m9(^Д^)カッコワルwwwww

120:デフォルトの名無しさん
07/06/06 13:12:31
Private Sub MSFlexGrid1_Click()
MSFlexGrid1.SelectionMode = flexSelectionByRow
End Sub

これでどこのセルをクリックしても行全体が反転されるはずなのですが
一番最初の行が反転されません。
一番最初の行も反転させるためにはどうしたらよいでしょうか?

121:デフォルトの名無しさん
07/06/06 13:56:34
一番最初がヘッダーの事だったら死なす

122:デフォルトの名無しさん
07/06/06 14:13:28
エスパーレス

(´・ω・`)つ【FocusRect】

123:デフォルトの名無しさん
07/06/06 14:28:13
>>122
ありがとうございます

.FocusRect = flexFocusNone
を追加すると

クリックしたときには綺麗に一行反転するのですが
クリックしていない状態でも
左上のセルが一つ反転してしまいます。

初期状態で反転させない方法はありますか?

124:デフォルトの名無しさん
07/06/06 14:42:29
>>123
その様子だと次々と出てきそうだから先に言っておくけど
MSFlexGridのプロパティと動作ぐらいは自分でテストしな

なぜ初期状態で反転してるか考えれば答えが出るでしょ

125:デフォルトの名無しさん
07/06/06 21:01:53
VB6.0で暗算を行なうシステムを作りたいんですが
全く初心者なため勝手が全然分からなくて、ネットで
調べてもそれらしきものが見当たりませんでした・・・
例えば、一つ計算式がでてきたら自分でその答えを入力し
正誤に関らず次の式が表示されまた答えを入力する・・・
というのを繰り返すようなものを作りたいのですが
もし可能ならばヒントでも頂けると助かります
よろしくお願いします

126:デフォルトの名無しさん
07/06/06 21:14:18
>>125
その与えられる数式を解析すれば行けるだろうけど
どのレベルまでを求めるかによると思うけどなぁ…・
単純な四則演算レベルならまぁ…・ 小数点とかはいると少し難しいんじゃないかな?

とりあえずどんな数式が出てきて どんな動きすればいいかを
自分の求めるレベルでサンプルを書き込んでみては?

いっちゃん簡単なので行けば
******
●+1=5
という数式があり ●には数字が入る
最終てきに
●=4という答えがほしい
*****
こんな感じで

127:デフォルトの名無しさん
07/06/07 00:48:57
>>125
時間がある人なら、とりあえずテキストエディタとか作ってみるといいんじゃない?
システムの設計の方法とか方針とか少しは見えてくると思うよ

逆に設計についてサッパリな状況なら何も作れないってことが分かるだろうし

128:デフォルトの名無しさん
07/06/07 06:22:20
Rnd関数か何かを使って任意の計算式を創出できるようにしたらいいかも。
VBの達人なら、この程度のプログラミングなど簡単すぎて興味も湧かないでしょうが、
いかに、短くてエレガントなコードを書くかには興味を持つかも知れん。

129:デフォルトの名無しさん
07/06/07 09:47:53
>>128
確かにアルゴリズムは考えるのが楽しい
が・・・・ある程度いったら飽きるんだよorz

130:デフォルトの名無しさん
07/06/07 10:14:13
ESCキーで終了させるにはどうしたらよいですか?

131:デフォルトの名無しさん
07/06/07 10:15:39
ほんの一瞬、「VBで暗算を行う」の意味がわからんかったわ。

132:デフォルトの名無しさん
07/06/07 10:35:32
>>130

よく知らんが
フォームにでもKey Pressのせて
if key asciiがEsc
End 'Unload me
end if

じゃだめですか

133:デフォルトの名無しさん
07/06/07 10:51:55
>>125
式作成部分だけ造ったが、こんな感じか?

134:デフォルトの名無しさん
07/06/07 10:53:09
張リ 忘レタ ヨー
URLリンク(kansai2channeler.hp.infoseek.co.jp)

135:デフォルトの名無しさん
07/06/07 12:02:30
>>133
おまっ・・・・Cかよwwww
式は自動作成なのかな?

俺が予想してるのはこんな流れ

前提:式のリストがある(いわゆる算数の穴埋め問題集的な)
X+2=5 Xを求めよ みたいな

流れ
1.式のリストから式を取得(あとはユーザが選択したりとか)

2.その式を分析して解を求めるような値を算出(方程式解くような感じで)
  (例だと:X=5-2 X=3)

1に戻る

136:デフォルトの名無しさん
07/06/07 19:42:07
>>135
予め式のリストが用意されてるんなら、
リストインデックスから解を出力すりゃいいだけじゃね?
解も配列で内部的に持っとけばいいだけだし。

137:デフォルトの名無しさん
07/06/07 22:04:08
>>135
>125を見た感じ、延々と繰り返すってことは、
有限な感じがするその前提は使えないんじゃね?


つか、式を自動生成する時ついでに、
内部的に解を求めとけばいい気がする。
暗算すんのはユーザなんだろ?
システム的にはただ淡々と計算してけばいいだけ。

悩む点は特に無さげ。

138:125
07/06/08 00:01:50
遅くなってすいません
134をコピーしてみたんですが、エラーが出まくって上手くいきません
多分フォーム内に全部直接貼り付けただけで、変数を宣言する場所とか
が自分でよく分かってないからだと思いますが・・・
全く素人すぎてすいません・・・

139:デフォルトの名無しさん
07/06/08 00:17:32
>>138
Cでもいいわけか?
VBじゃなくって?

あのソースはVBではないぞ・・・・・

140:125
07/06/08 00:23:13
>>139
そうなんですか?
自分はVB作りたいです
今日乱数を発生させてどうのこうのとかやってたけど
全く上手くいきませんでした・・・

141:デフォルトの名無しさん
07/06/08 00:28:25
Cを全く知らない俺が変換してみたw
Private Function fmotome(n As Integer) As Integer
Dim Res As Integer
Select Case n
Case 0
Res = 0
Case 1
Res = 1
Case Else
Res = fmotome(n - 1) + fmotome(n - 2)
End Select
fmotome = Res
End Function

Private Sub Form_Load()
Dim Temp As String
Temp = InputBox("Nの値を( ゚д゚)クレ", "数値入力")
If IsNumeric(Temp) = False Then
MsgBox "数値入れろ", "カス"
Unload Me
End If
Dim Res As Integer
Res = fmotome(CInt(Temp))
MsgBox "Fnの値は'" & CStr(Res) & "'"
End Sub

もすこしやりたいことを具体的におしえてはくれんか?
乱数を発生させるのは簡単だがそれを使ってどうするのか とかさ

142:デフォルトの名無しさん
07/06/08 00:35:52
ちなみに上限と下限決めて乱数作る場合こんな感じだったとおもう
使い方はあってると思うけど…

下限1 上限10

dim hi as integer
dim Lo as integer

Hi = 10
Lo = 1
Ransuu = Int((hi - Lo + 1) * Rnd + Lo)


143:デフォルトの名無しさん
07/06/08 00:38:06
ていうか、いまさらVB6~を始めるな。
せめてC#かVB.NETにしろ。

144:125
07/06/08 09:12:07
>>141
ありがとうございます
実は具体的に実現したい機能としては
画面上に2桁の加算を行なう数式が2つ表示されて、ユーザー側が計算して値が大きい方の式を選ぶと
その正誤がすぐに画面上でフィードバックされ、すぐにまた同じような暗算課題が画面上に表示され
同じことを30分とか決められた時間ひたすら繰り返されていくようなものです
考えて作ろうとはしてるんですが、まだ暗算機能されまともに作れなくてやばいと
いった状況ですね・・・

145:デフォルトの名無しさん
07/06/08 09:15:40
URLリンク(hp.vector.co.jp)
ここの十字カーソルのように、デスクトップ(というかスクリーン)の最前面に
文字や画像を描画するにはどうすればいいのでしょうか?

146:133
07/06/08 09:21:42
勘違いさせてしまった様だが、俺が創ったのは
URLリンク(kansai2channeler.hp.infoseek.co.jp)
のレス21な

147:デフォルトの名無しさん
07/06/08 09:47:19
>>145
見てないから分からんのだが、
ひょっとしてAPIのSetWindowPosのことか?

148:デフォルトの名無しさん
07/06/08 13:28:14
>>144
ふむふむ・・・
俺設計力とかはあんまないから今一歩かもしれんけどさ

1. 2桁の(+-の)数値の和・差の式をランダムで自動生成して
2. その自動生成された式を自分の内部で計算して 大きいほうの数を持つ式を選べば正解として処理

1.2を決められた時間ないひらすら繰り返す
で点数とか正誤率表示するような感じなのかな?


149:デフォルトの名無しさん
07/06/08 13:47:37
>>146
ここまで作ってあげてる優しさに俺は脱帽した
質問者が理解できるかどうかはしらんがw

150:145
07/06/08 14:54:37
>>147
SetWindowPosはウィンドウの位置やサイズを変更するAPIですよね。
もしかして常に最前面にしてウィンドウを完全に透明にすればできるということでしょうか?

やりたいことは、↓これと同じようなことなのですが…
URLリンク(www.forest.impress.co.jp)

151:デフォルトの名無しさん
07/06/08 15:21:40
そのソフトの事は知らないが、簡単に作るのであれば、
・二つウインドウを作り最前線にもってくる
・一つは縦が1ドットx横がデスクトップの横サイズで。もう一つは(ry
・マウスカーソルの位置に二つのウインドウを位置合わせ
こんな感じでできるべ?

152:125
07/06/08 19:59:32
>>148
だいたいそんな感じですね
正確には

1. 2桁の正の数のみの数値の和の式をランダムで二つ自動生成して
2. その自動生成された式を自分の内部で計算して 大きいほうの数を持つ式を選べば正解として処理

1.2を決められた時間ないひらすら繰り返す

で一回1ポイントとして終了後に合計得点と正答率を示す
ついでに可能だったら合計得点の今までチャレンジした人の中でのランキングも示す

というところまで作りたいんですが、プログラムの基礎もさっぱりな段階なので
全くダメといった感じです・・・

可能ならばどなたかに参考になりそうなアドバイスを頂きたいです
よろしくお願いします


153:デフォルトの名無しさん
07/06/08 20:01:14
>>152

まずは>>133
が作ってくれてるのうごかしてみ?

154:125
07/06/08 20:11:54
>>153
やってみたんですけどエラーが出て実効できないです・・・
多分自分が変数を宣言する場所とかを間違ってるのがいけないと思うんですが・・・

155:デフォルトの名無しさん
07/06/08 22:07:20
>>154
VB6環境ないんでEXCEL2003のVBAでやってみたがちゃんと動いてくれたぞ?

あれをモジュールにはっつけて

Private Sub CommandButton1_Click()
Call Eq_Sample1
End Sub

Private Sub CommandButton2_Click()
Call Eq_Sample2
End Sub

これでちゃんと数式ができてるいいサンプルだと思うけどなぁ?

どんなエラーがでてどこでエラーが起きてるか出来るだけkwsk書いて
ちょっとそっちで動かないソースここにはりつけてみないか?
貼り付けたのはもちろん>>146の言うとおり21レス目のVBソースが直書きしてあるやつだよな?

156:125
07/06/08 23:05:39
今146のやつを標準モジュールに全部貼り付けて
実行するフォームにコマンド1,2を用意して155のソースを書いて実行したら
エラーは出なくなりましたが、画面に何の変化もないといった感じです・・・
標準モジュールに貼り付けるのが何か間違ってますか?

157:デフォルトの名無しさん
07/06/09 00:04:57
>>156
なにも表示されないよ
ヒント Debug.Print
適当にラベルにでも表示してみれば?

158:125
07/06/09 07:34:35
>>157
Debug.Print
というものを調べてみたらファイル操作というもので色々なことに
使われてるみたいだってことは分かったんですが
146のソースにどういう役割で導入すればいいかというのは分からないです・・・
可能ならばもう少しヒントを頂きたいです

159:デフォルトの名無しさん
07/06/09 09:23:11
>>158
根本的に基礎を勉強しなきゃ話にならないとは思うけど
”イミディエイトウィンドウ”という所に文字を表示する機能がDebug.Print
>>146のソースの中にDebugPrintてあるのは確認用で実際のフォーム内には表示されない
なので表示するためにはラベルやテキストボックスに表示させる必要がある

ぶっちゃけどれ位かけるの?
ボタン押してラベルの文字と色を変更することくらいはできるの?

160:デフォルトの名無しさん
07/06/09 11:19:36
むしろ今からVB6を「基礎から」勉強してどうする。

161:デフォルトの名無しさん
07/06/09 14:50:50
>>160
会社によっては未だにVB5使ってるところもあるんだし、
勉強するのに時代遅れもなにもないんじゃない?

必要だから習得する。
必要なければ習得しない。

こんなもんでしょ?

162:デフォルトの名無しさん
07/06/09 15:13:25
むしろこのスレの住人なら
もうバージョンアップしない「 完 成 さ れ た 」この言語を
一生使い続けるぐらいの気持ちで

163:デフォルトの名無しさん
07/06/09 15:22:47
>>162
そこまでは愛せない俺ガイル

164:125
07/06/09 15:36:26
>>159
遅くなってすいません
下の二行に書かれていることはできると思います

本当に簡単なことは多分できるのですが、例えば

Option Explicit

Public Enum ELEVEL
LV_PLS = 1
LV_MIN = 2
LV_MUL = 3
LV_DIV = 4
End Enum

Public Type TMATH
Level As ELEVEL
Max As Long
Min As Long
Length As Integer
Brackets As Byte
End Type

などのソースはいきなり見たことない書き方の連続で
何が何を意味してるとかが全く分からない状況です・・・

165:デフォルトの名無しさん
07/06/09 15:49:48
>>164
そんな事すらいちいち教えなきゃいけないのか?
自分で調べる気は毛頭ないのか?
トイレまで他人が手伝ってもらわないといけないのか?
ふざけんなこの野郎

166:デフォルトの名無しさん
07/06/09 15:51:25
>>164
基礎を勉強してからアプリなり何なり作るといいと思うよ。
処理云々以前の問題。

167:デフォルトの名無しさん
07/06/09 15:58:10
EnumもTypeも調べられない程度の人間にプログラムは向いてないんだってばっちゃが言ってた!

168:デフォルトの名無しさん
07/06/09 18:09:57
>正誤に関らず ・・
という部分が非常に気持ちわりいな
誰か、正誤判定出来るよう修正キボンヌ

169:デフォルトの名無しさん
07/06/10 01:04:18
>>168
正誤判定はしてるんだろ?
指定された時間が経過したら正解率出すんだし。

答える度に毎回ヴィジュアル的に軽く表現させる程度なら
普通にやるもんだろーと思うが。

質問者が言ってるのは、
正解でも不正解でも次々と問題が表示されていくってことだと思うんだが。

170:デフォルトの名無しさん
07/06/10 11:31:53
SMTPでメール受信するプログラムをVBで作成しようとかんがえているのですが、受信したメールをポップアップで表示するのは可能ですか?

171:デフォルトの名無しさん
07/06/10 11:42:18
>>170
SMTPでメールを受信とは、サーバを作りたいと言ってるの?

172:デフォルトの名無しさん
07/06/10 11:50:28
>>170
受信したメールは貴方がメールだと思っているだけで、実はタダの文字列なんじゃないか?

173:デフォルトの名無しさん
07/06/10 12:00:44
いい感じに荒れてきた

174:デフォルトの名無しさん
07/06/10 12:50:39
BSMTPの話?

175:デフォルトの名無しさん
07/06/10 12:53:29
>>173
つ アロエ
  肌にいいらしいぞ

176:デフォルトの名無しさん
07/06/10 13:14:50
このスレにSMTPは送信用のプロトコルだと勘違いしてるやつがいる。

177:デフォルトの名無しさん
07/06/10 14:03:02
あげあしとり出現w

178:125
07/06/10 16:15:19
取りあえず今自分なりの書き方でプログラムを作っていて
一個一個順を追って152に書いたことに近づけていっている感じなんですが
取りあえずフォームが開いたらランダムで一つの数式を表示しようということを
やろうとしていて

Randomize
Dim a As Integer
Dim b As Integer
a = 99
b = 10
Label1.Caption = CInt(Rnd(a) * 100)
Label1.Caption = CInt(Rnd(b) * 100)
Label1.Caption = CStr(a) & "+" & CStr(b)

と書いたんですが、これだとaとbの値が変化せずに99+10と表示されてしまい
値が固定化されてしまいます・・・
ランダムの効果を利かせるには何かソースが足りないんでしょうか?

179:デフォルトの名無しさん
07/06/10 16:24:35
ワラタ
なんかこうなってくると釣りクサイよなwww

180:デフォルトの名無しさん
07/06/10 17:08:23
初心者の俺でも分かる。
1行ずつ追っていけよww

181:デフォルトの名無しさん
07/06/10 17:10:27
相手にするから付け上がる

182:125
07/06/10 17:23:20
いや142さんのをヒントにやってみたつもりだったんですが・・・
2桁同士の加算にしたいから上限99、加減10に設定して
その値をランダムかしてa+bのところに表示
みたなイメージで書いたつもりです

183:デフォルトの名無しさん
07/06/10 17:29:48
うるさい
だまれ

184:デフォルトの名無しさん
07/06/10 17:35:17
(´・ω・)

185:デフォルトの名無しさん
07/06/10 17:42:30
>その値をランダムかして
ってランダム化表示してるだけだろ?aとbは元の値のままぢゃん

186:125
07/06/10 18:42:37
a = 99
b = 10
のすぐ下の
Label1.Caption = CInt(Rnd(a) * 100)
Label1.Caption = CInt(Rnd(b) * 100)
でランダム化して、その下の
Label1.Caption = CStr(a) & "+" & CStr(b)
でランダム化したa、bをa+bの形式で出力できると思ったのですが
どの辺がおかしいですか?
プログラムを色々前後させてやっても値が0になったりしてしまいます・・・

187:デフォルトの名無しさん
07/06/10 18:48:48
ヘルプ使えよカス
Rnd()でググるなりしてもすぐ解決するだろうに
いちいちその程度のことを人に聞くなよタコ助が

188:デフォルトの名無しさん
07/06/10 18:49:12
>>186
>>165

189:デフォルトの名無しさん
07/06/10 19:35:21
>ランダム化したa、bを
ランダム化してねぇぇぇぇぇぇぇぇ!



...それともRnd()は呼び元で用意しているパラメータの値を書き換えるのか?

190:125
07/06/10 19:49:48
すいません、調べてもあまり出てこないし
ヘルプも自分はインストールしてなかったし今手元にCDもないんです・・・

Dim a As Integer
Dim b As Integer
をDim arandom As Integer
とか色々書き換えてみましたが違うみたいで
Label1.Caption = CInt(Rnd(a) * 100)
Label1.Caption = CInt(Rnd(b) * 100)
でa、bをランダムかしてるのかなと思ったんですが
Rnd(a)とかの表現がおかしいですか?

191:デフォルトの名無しさん
07/06/10 19:56:51
質問は手元にCDがある状態になってからにしてくれ
このままではお前のくだらない質問だらけでスレがいくつあっても足りない
はっきりいって迷惑なんだよ

192:デフォルトの名無しさん
07/06/10 20:13:14
くだらないはないんじゃないか?
もともとVBに関する質問をするスレなんだから
初心者はホントに簡単なプログラムでも微妙なとこ
どうすればいいとかわからんもんだよ
お前も慣れるまではそうだっただろ?
何なら俺が125の実現したい機能全部書いてやってもいいけどね


193:デフォルトの名無しさん
07/06/10 20:17:01
> Rnd(a)とかの表現がおかしいですか?
いいえ。
a,bの値を書き換えるようにしていないのがダメなだけです。

194:デフォルトの名無しさん
07/06/10 20:18:56
>>192
125とあなたでメールでやり取りしてくれ
せいぜい125の辞書にでもなればいい

195:デフォルトの名無しさん
07/06/10 20:32:38
とりあえずマニュアルを入手するのが第一。
これはVBScriptのだけど、VB6でも同じだからよく読んでみろ。
URLリンク(www.mhl.janis.or.jp)


196:デフォルトの名無しさん
07/06/10 20:33:34
だからF8キーで1行ずつやってどういう動きをするか見ればいいのに。
Label1.Caption = CInt(Rnd(a) * 100) で、
たとえばLabel1は55と出たとする。
その時のaの値は???  99だろ?
いい加減気づいてよ…。


197:125
07/06/10 20:48:58
すいません、193さんのコメントで数式はランダムで
上手く出てくるようになりました
明日以降からはしっかりとMSDNをインストールして来れると思うので
最後に今日中にもう一つだけ教えていただきたいのですが
2桁の整数同士を加算したいから142をヒントにして
Ransuu = Int((hi - Lo + 1) * Rnd + Lo) をa、bに置き換えてみたんですが
一桁の整数がまだ出てきてしまいます
多分ここがポイントになってると思うんですが、この式は何を行うための
式なんですか?


198:デフォルトの名無しさん
07/06/10 20:59:45
>>197
ステップ実行すりゃいくらでも分かるだろ
何故それをしない?

>>142の式はRansuuに1~10の値をランダムに代入してるだけだ

199:デフォルトの名無しさん
07/06/10 21:01:03
上限と下限の間の乱数を得る式

200:125
07/06/10 21:01:57
>>198
ステップ実行って何ですか?

201:デフォルトの名無しさん
07/06/10 21:03:58
やってみればわかる

202:デフォルトの名無しさん
07/06/10 21:31:01
例えばコマンドがクリックされるたびに
数字が一つ増えていくといったような機能は
VBで作ることは可能ですか?

203:デフォルトの名無しさん
07/06/10 21:32:23
はい

204:デフォルトの名無しさん
07/06/10 21:46:41
Wubi - Ubuntu installer for Windows
スレリンク(software板)l50

205:デフォルトの名無しさん
07/06/10 22:07:53
あまりにも初歩的な質問はこっちの方が親切に答えてくれるぞ

くだすれVB6.0以前(超初心者向け)
スレリンク(tech板)

住人は共通化もしれんが

206:デフォルトの名無しさん
07/06/10 22:10:36
このスレだって、相手のためになるように親切に答えてるじゃないか。失礼だな。

207:デフォルトの名無しさん
07/06/11 00:42:45
1から全部教えるのは可能だが、
それじゃ人に教えられたことしか出来なくなるからな。

理解せずに"書き方"としてコードを覚えて貰っても意味がない。
同じことの繰り返しになるだけ。

208:デフォルトの名無しさん
07/06/11 09:16:10
これ一度わんくまで質問してもらいたいな
どんな素晴らしい回答が帰ってくるのか
いや・・・それすらないかもしれんw

>>125
現在全てのソースで現状何処までできて何処がどう理解できないのか
折角だからkwsk書いてみ?

それの判らない事は教えないと思うけど調べる為の術はきっと優しいお兄さん方が教えてくれるかもしれないw
でも・・・・判らない事を適切に調べることができるのもPGとしてのスキルだと思うぜ

209:デフォルトの名無しさん
07/06/12 11:01:28
>>202
こんな感じか?
このくらいVBでなくとも余裕だと思うが。

Private m_lCnt As Long

Private Sub Command1_Click()
m_lCnt = m_lCnt + 1&
Label1.Caption = CStr(m_lCnt)
End Sub

Private Sub Form_Load()
m_lCnt = 0&
Label1.Caption = CStr(m_lCnt)
End Sub


210:デフォルトの名無しさん
07/06/13 14:24:13
VB6でテキストボックスからフォーカスを他へ移さないようにしたいのですが、どうしたらいいんですか?
後、カーソルを左端じゃなくて右端に固定したいのですが…


211:デフォルトの名無しさん
07/06/13 15:41:21
なんのためのプロパティだ。

212:デフォルトの名無しさん
07/06/13 15:54:20
どうして複数のスレで聞くんだろうな
答える人間は一緒なのに

213:デフォルトの名無しさん
07/06/13 16:56:23
スペシャルヒント
ろすとふぉーかす
せっとふぉーかす
あらいんめんと

214:デフォルトの名無しさん
07/06/13 22:01:45
ご冗談を。

215:デフォルトの名無しさん
07/06/14 08:29:36
validateでいいんでね

216:デフォルトの名無しさん
07/06/14 19:37:29
エクセルのデータを読込むために以下のスクリプトを作りました。

Set pExlApp = CreateObject("Excel.Application")
Set pExlBook = pExlApp.Workbooks.Open(strFileName)

1段目は正常に動くのですが
2段目が
OfficeXP時は正常に動き
Office2000時にエラーがでてしまいます。

どのような理由が考えられますか?

217:デフォルトの名無しさん
07/06/14 20:41:52
2つ質問です。

自作のActivX DLL を exe から呼んでるんですが、

1、プロジェクト→参照 でDLLを参照すると、DLLの配置ディレクトリを
  フルパスで設定しているように見えるんですが、この認識はあってますか?

2、他のマシンに自作プログラムを持っていくとき、exeとdllの配置場所を任意に
  したいのですが、どうしたら可能ですか?



218:デフォルトの名無しさん
07/06/15 00:09:41
>>217
1、ActiveXコンポーネントはレジストリ登録して使えるようになる訳だから、
当然場所はフルパスで設定されている。

2、ActiveX DLLはどんな場所にインストールしようと構わない。
インストーラでActiveXコンポーネントを登録をするようにするだけ。

219:デフォルトの名無しさん
07/06/15 00:36:15
>>218
なるほど、ありがとうございます。
うすうす勘付いてはいましたが、やっぱレジストリ登録するのか。

ということは、DLLの位置は気軽に移動することはできないってことですね?
Win32APIのLoadLibrayEx だといくつかのサーチパス候補のどれかにあれば
いい、・・・というようなやり方は無理と。

220:デフォルトの名無しさん
07/06/15 00:37:52
× いい、・・・というようなやり方は無理と。
○ いいという仕様ですが、そういうやり方は無理と。

221:デフォルトの名無しさん
07/06/15 05:57:23
Msxml2.XMLHTTPとかWinHttp.WinHttpRequest.5.1などを使用して
Webページをリクエストした時に
送られてくるクッキーを取得したいのですが
これは可能なのでしょうか?

222:デフォルトの名無しさん
07/06/15 09:56:07
質問ですが
例えば、コマンドボタンが3つありそれをある規則に従って
順番にクリックしてもらった後に次の処理が実行される
といったコードを書きたいんですが、
コマンドが1、2、3と順に押されたことの判定と
最後のコマンドが押された瞬間に行わせたい処理はどこに記述すればいいのでしょうか?
コマンドが押される順番は毎回決まってないといった感じなので、
特定のコマンド内に書くやり方ではうまくいかないと思うのですが
何かやり方をご存知の方がいたらご教授よろしくお願いします

223:デフォルトの名無しさん
07/06/15 10:35:08
>>222 こんないい加減なコードとかどうよ?www 動作は環境ないから試してないけど
private m_ButtonFlag(1 to 3) as long
private m_cnt as long

private sub form_load
 m_cnt = 0
end sub
private sub Button1_click
 m_ButtonFlag(1) = cnt+1
end sub
private sub Button2_click
 m_ButtonFlag(2) = cnt+1
end sub
private sub Button3_click
 m_ButtonFlag(3) = cnt+1
end sub
private sub ButtonManage
 dim i as long
 for i = 1 to 3
  if m_ButtonFlag(i) =0 then
   exit sub
  end if
 next i
 
 if m_ButtonFlag(1)= 1 and m_ButtonFlag(2) = 2 and m_ButtonFlag(3) = 3 then
  msgbox "ボタンが123の順に押されました"
 end if
end sub

private sub Button4_Click
 erase m_ButtonFlag:m_cnt=0
end sub

224:デフォルトの名無しさん
07/06/15 10:37:42
書き忘れてた
ボタンのクリックで ButtonManage を最後に追加しないと判定しないわw

225:デフォルトの名無しさん
07/06/15 11:55:18
>216
エラーメッセージくらい書けよ

226:デフォルトの名無しさん
07/06/16 02:40:44
>>223
変数cntが未定義&インクリされてない件について

それじゃどの順番でボタン押しても、
配列の値はみんな同じじゃね?w

227:デフォルトの名無しさん
07/06/16 02:43:19
m_cntにも0しか代入してねぇwwwワロタwwwww

228:デフォルトの名無しさん
07/06/16 04:59:00
第三者が通知を受けてチェックすれば言いだけジャン。

Private m_IdQue As String
Private m_ValidOrder As String

Private Sub Form1_Load()
  m_IdPool = "  "      'ダミーの3桁データを入れておく
  m_ValidOrder = "123"  ' 最初の規則は123の順
End Sub

Private Sub Button1_Clock
  AddEventToQue "1"
End Sub
Private Sub Button2_Clock
  AddEventToQue "2"
End Sub
Private Sub Button3_Clock
  AddEventToQue "3"
End Sub

Private Sub AddEventToQue(id As String)
  m_IdQue = Right(m_idQue, 2) & id
  If m_IdQue <> m_ValidOrder Then
    Exit Sub
  End If

  ' 規則の順に押された。
  DoNextProc  ' 次の処理

End Sub

規則を変えたくなったら、好きなタイミングでm_ValidOrder を変更すればいい。

229:デフォルトの名無しさん
07/06/16 05:05:38
ミスった、コードの中の m_IdPool  は m_IdQue に置き換えて読んでくれ。
修正漏れがあった。

230:デフォルトの名無しさん
07/06/16 05:07:30
しかも、Clock になってた oRzz

231:デフォルトの名無しさん
07/06/16 11:57:16
>>222
クラス使ってステートマシン作るのがいいと思う。
実際書いてみたんで要望があれば言ってちょ。

232:デフォルトの名無しさん
07/06/16 14:55:25
VBからAccessにデータを追加する場合
オートナンバーの項目はどうすればいいのでしょうか?

wrkSql = wrkSql & "INSERT INTO MSTDB VALUES("
wrkSql = wrkSql & "" & & "," 'オートナンバー
wrkSql = wrkSql & "" & wYear & "," '年
wrkSql = wrkSql & "" & wMonth & "," '月
wrkSql = wrkSql & "" & wDay & ")"    '日

'クエリ実行
gConnDB.Execute wrkSql

これの一番上のオートナンバーの追加がわかりません。

233:デフォルトの名無しさん
07/06/16 18:36:29
>>232
オートナンバーはINSERTの対象にしなけりゃいいんだよ。
勝手に値が入る。


234:デフォルトの名無しさん
07/06/16 21:25:30
ありがとうございます


235:222
07/06/17 10:11:22
遅くなってすいません、なぜか規制がずっとかかっていて書き込めませんでした・・・
みなさんいろいろありがとうございます

>>228
buttonをcommandに変えてそのまま実行してみたんすが
Private Sub AddEventToQue(id As String) というところの
AddEventToQueでsubまたはfunctionが定義されていませんという表示が出てしまいます・・・
ここを変数宣言してみたり色々やってみたりしたんですが、まだうまくいかないので
アドバイス頂けると助かります

>>231
ありがとうございます
クラス使ってステートマシンというのについてよろしければ
もう少し具体的に教えていただけませんか?
取りあえず今はコマンドが3つ押されたことを認識したら
例えば画面上にあるラベル内の数値などが変更されるといったようなことを目指してます



236:231
07/06/17 12:39:24
>>235
こんな感じ

'---- クラスモジュール CInputOrderValidator ----
Private mInputCount As Integer
Private mValidInputOrder() As eInput
Private mInivalidInputEntered As Boolean
Public Event ValidationFinished(result As eValidationResult)

Public Enum eState
  Initial = 0
  DuringInput = 1
  ValidationFinished = 2
End Enum

Public Enum eInput
  Button1 = 1
  Button2 = 2
  Button3 = 3
End Enum

Public Enum eValidationResult
  Indeterminate = 0
  Invalid = 1
  Valid = 2
End Enum

Private Sub Class_Initialize()
  mValidInputOrder = GetDefaultValidInputOrder()
  Me.Reset
End Sub

237:231
07/06/17 12:40:54
Private Function GetDefaultValidInputOrder() As eInput()
  Dim vValids() As Variant
  vValids = Array(eInput.Button1, eInput.Button2, eInput.Button3)
  Dim valids() As eInput
  Dim i As Integer
  Dim lastIdx As Integer
  lastIdx = UBound(vValids)
  ReDim valids(lastIdx)
  For i = 0 To lastIdx
    valids(i) = vValids(i)
  Next
  GetDefaultValidInputOrder = valids
End Function

Public Sub Reset()
  mInputCount = 0
  mInivalidInputEntered = False
End Sub

Public Property Get State() As eState
  If mInputCount = 0 Then
    State = Initial
  ElseIf mInputCount >= Me.ValidInputLength Then
    State = ValidationFinished
  Else
    State = DuringInput
  End If
End Property

238:231
07/06/17 12:42:08
Public Property Get ValidInputLength() As Integer
    ValidInputLength = UBound(mValidInputOrder) + 1
End Property

Public Property Get ValidationResult() As eValidationResult
  If Me.State = ValidationFinished Then
    If mInivalidInputEntered Then
      ValidationResult = Invalid
    Else
      ValidationResult = Valid
    End If
  Else
    ValidationResult = Indeterminate
  End If
End Property

Public Sub SetNextInput(nextInput As eInput)
  If Me.State = ValidationFinished Then
    Exit Sub
  End If
  If mValidInputOrder(mInputCount) <> nextInput Then
    mInivalidInputEntered = True
  End If
  mInputCount = mInputCount + 1
  If Me.State = ValidationFinished Then
    RaiseEvent ValidationFinished(Me.ValidationResult)
  End If
End Sub

239:231
07/06/17 12:43:38
'---- Form1 ----
Private WithEvents mValidator As CInputOrderValidator

Private Sub Form_Load()
Set mValidator = New CInputOrderValidator
End Sub

Private Sub Command1_Click()
  mValidator.SetNextInput (Button1)
End Sub

Private Sub Command2_Click()
  mValidator.SetNextInput (Button2)
End Sub

Private Sub Command3_Click()
  mValidator.SetNextInput (Button3)
End Sub

Private Sub mValidator_ValidationFinished(result As eValidationResult)
  If result = Valid Then
    MsgBox ("OK !")
  Else
    MsgBox ("NG !")
  End If
  mValidator.Reset
End Sub

240:222
07/06/17 14:30:34
ありがとうございます
まだコードを実行してないんですが、これを実行する場合って
Buttonのフォームが必要ですよね?
本を見た感じだと画面左のコマンドやらラベルやらを引っ張ってくる場所から
ボタンも引っ張ってこれるようになってるっぽいんですが、自分のVB6.0には
入ってないっぽいんですよね・・・画面色々いじくって表示させられないか試したりもしたんですが・・・
あとこれを実行して上手く自分の目的の機能を実現するためには、コマンドやボタン
以外にもフォーム上に引っ張ってくるべきアイテムはありますか?

241:デフォルトの名無しさん
07/06/17 18:39:51
>>240
必要な操作は、

(1) プロジェクトにクラスモジュールを追加して、プロパティグリッドで名前を"CInputOrderValidator"
  に変更して>>236以降のコードを貼り付ける。

(2) Form1にコマンドボタンを三つ(Command1、Command2、Command3)貼り付けて
  >>239のコードを貼り付ける。

これだけだよ。

242:デフォルトの名無しさん
07/06/17 19:04:45
>>235
まさかとは思うが、
DoNextProc
これもコードとしてそのまま書いたのか?

243:デフォルトの名無しさん
07/06/17 23:04:21
>>242
そのまま書いていました・・・

>>241
実行できましたありがとうございます
この場合だとコマンド1、2、3の順で押された場合はAの処理
他の順で押される5通りの場合はBの処理が行われるといった感じになっていて
これを全てバラバラに考えて(例えば、2、1,3の順で押されたらCの処理)
といったようにしたいと思ってクラスモジュール内でこの機能を実現するために
関係してきそうな部分を探して考えてみたんですがいまいちどこをいじればいいかが分かりません・・・
何度も申し訳ありませんが、これに関してアドバイスいただけると助かります
よろしくお願いします

244:デフォルトの名無しさん
07/06/18 09:09:47
>>243
一連の流れを眺めてみたけどさ、もっと本質を理解したほうが良いと思うよ
VB6以前なら強力なデバッグ実行機能もあるんだしさ

・暗記すべき部分はきっちり暗記汁(VBの予約語等
・エラーが出たら、メッセージ良く嫁
・デバッグ実行でどんな処理がどこで行われているか調べるべし
・コードの全体をイメージ出来るまでひたすら読んだり書いたりデバッグ実行したり汁
・つーか、ちっとは自分で考えろw

245:デフォルトの名無しさん
07/06/18 17:16:16
>>243
Select Caseも知らんのか。

あと>>242で言ってるのは要約すると、
サンプルとして挙げられたソースに記述してあるコメントくらい普通に理解しろってことなんだが…

分かるか?

246:デフォルトの名無しさん
07/06/18 19:56:33
ここ1,2週間で聞いてきてるやつは全部同一人物っぽいな・・・

247:デフォルトの名無しさん
07/06/18 19:59:25
終わった言語をいまさらスタートする奴なんてそんなにいないしな

248:デフォルトの名無しさん
07/06/18 22:03:55
勝手に終わってろカオス

249:デブオ
07/06/19 16:58:10
すみません。VB(6.0)で指定されたURLにファイルをPOSTする。
又、指定されたURLからファイルをダウンロードすことってできますか?
できるとすればどのようにすればいいのでしょうか?
どなたか教えてください。

250:デフォルトの名無しさん
07/06/19 17:00:28
>>249
WEBBROWSERコントロールでも使ってろよw

251:デブオ
07/06/19 17:16:19
WEBBROWSERコントロールというのは標準で入っていないようなのですが?
MSWebDVDコントロールのことでしょうか?

252:デフォルトの名無しさん
07/06/19 17:24:11
マジレスすると
メニュー>プロジェクト>コンポーネント>コントロールで
該当するやつのチェック外せばいいよ
どのコントロールかぐらいは自分で調べろ

253:デフォルトの名無しさん
07/06/19 17:33:11
×チェック外せば
○チェック入れれば

254:デフォルトの名無しさん
07/06/19 19:06:09
VB6のWebBrowserコントロールは
ビスタでも問題なく使えますか?

255:デフォルトの名無しさん
07/06/19 21:20:25
使えるかどうか自分で試して
それをここに報告すれば良いのでは

256:デフォルトの名無しさん
07/06/20 00:49:42
VBって遅いよな

257:デフォルトの名無しさん
07/06/20 01:37:24
Cって速いよな
でもC++って劇遅だよな

258:デフォルトの名無しさん
07/06/20 02:09:20
>>256-257
つまんねえ釣りはVIPでやれ

259:デフォルトの名無しさん
07/06/20 15:30:14
FlexGridの行選択についての質問です

FormLoadに
flexGrid.SelectionMode = flexSelectionByRow
をいれることにより行選択は可能になりますが、

範囲指定を不可能にする方法はありますか?

また選択している行の位置を求める方法はどうするのでしょうか?

260:デフォルトの名無しさん
07/06/20 23:19:49
レジストリのキー値(ツリーの枝の部分)の取得方法をご教授ください。

例)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-18
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-19
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-20

のS-1-5-18、S-1-5-19、S-1-5-20を検索して取得したい。


以上宜しくお願い致します。


261:デフォルトの名無しさん
07/06/21 09:26:00
>>259
範囲選択を不可能にする方法はある

行に値を調べる方法は
Rowプロパ


262:261
07/06/21 09:26:52
誤植

行の位置を調べる方法は
Rowプロパティのヘルプを見てみないか?



263:デフォルトの名無しさん
07/06/21 14:41:36
まずアプリケーションウィザードを使って適当なプロジェクトを作る。
そのときバージョン情報ダイアログを組み込むように指定する。
そのフォームの「システム情報」ボタンがレジストリにアクセスしてるから
そこをパクる。
簡単な取得だけならこれで済むと思います。
このコードは、レジストリに読み書き権限でアクセスするので、guestとか制限ユーザーだと
エラーになるかもしれません。APIビューアからKEY_READを探してきて、
読み取り専用権限に直しておいてください。


264:デフォルトの名無しさん
07/06/21 15:36:44
>>263>>261です。悪かったな。


265:デフォルトの名無しさん
07/06/21 15:39:02
すいません>>263>>260へのレスです。たびたびごめんなさい。

266:デフォルトの名無しさん
07/06/21 16:29:07
イ~ンダヨ~

267:デフォルトの名無しさん
07/06/21 16:50:01
ブル~ダヨ~

268:デフォルトの名無しさん
07/06/24 08:29:21
Visual Basic 5.0でActiveXコントロールを作成し、セットアップウィザードを利用して
インターネットで配布するファイルを生成しましたが、
サーバに配置してアクセスしてもインストールが開始されず、
左上に×マークがでるだけの状態です。
どうすれば正常にインストールされるようになるのでしょうか?
なお、配布ファイルには署名をしており、ブラウザはIE6で、
ActiveX関係の設定は有効にしています。

269:デフォルトの名無しさん
07/06/25 04:30:11
コンポーネントShockwave Flashで外部から読み込んだSWFファイルの右クリックメニューを完全に消す方法を教えて下さい

270:デフォルトの名無しさん
07/06/25 10:36:03
>>268
ディストリビューションウィザードのこと?
サーバ上に配置したファイル名を全て挙げてみ?
それとVB関係無いがファイルのアクセス権限はどうなってる?

>>269
なにそのVBのVの字も出てこない素敵Questionはwwww
Flashについてはよく知らないが、ひょっとしてJavaScriptの話じゃね?
スレチにも程があるよ?

271:デフォルトの名無しさん
07/06/25 14:17:00
上から質問に答えると
・6.0でディストリビューションウィザードといわれるものが5.0でのセットアップウィザードのようです。
・CABとHTMファイルです。
・読み、書き、実行権限を全員にすべて与えている状態です。

272:デフォルトの名無しさん
07/06/25 15:05:43
>>271
CABは圧縮ファイルであって、インストーラではないのだが。

273:デフォルトの名無しさん
07/06/25 15:08:21
>>271
ウィザードで作られるファイルは3つあるはず。
CABしかあげてないから駄目なんじゃね?
Setup.exeともう一つなんかあったような

274:デフォルトの名無しさん
07/06/25 17:15:51
>>273
SETUP.LST

275:268
07/06/25 17:32:31
セットアップウィザードで作成されたファイルは
CAB・HTMファイルと、SUPPORTフォルダ(中にOCX・DDF・INFファイル)でした。
Setup.exeやSETUP.LSTといったファイルは見つけることができませんでした。


276:デフォルトの名無しさん
07/06/26 05:31:24
VBはよく知らないC使いなのですが、
VBで作られたEXEファイルは完全な機械語のファイルなのでしょうか?
それとも中間言語が入っているのでしょうか?

277:デフォルトの名無しさん
07/06/26 08:05:21
>>276
Pコードのオプションつければ中間もつくれる

278:デフォルトの名無しさん
07/06/26 09:33:00
>>276
コンパイルするとC2.EXE と LINK.EXEが裏で動いている。

279:デフォルトの名無しさん
07/06/26 16:02:51
みな様お世話様です。
VBScript(WSH)をかじり始めたものです。

作成したCVSファイルに1行追加したいのです。

Set objText = objFile.OpenAsTextStream(8,0)
objText.WriteLine("搬入年月日,Xコード,工場コード,得意先コード~他")

(8,0)で8が追加モードとのことですが挿入ってのはないんでしょうか?
最終行ではなく一行目にWritelineの内容を挿入したいのです。

何かヒントいただければ幸いです。

280:デフォルトの名無しさん
07/06/26 18:03:16
VB6なんですが、
WebBrowserを利用してどこかのサイトを読み込ませて、読み込み完了まで待機するという処理で、
実行エラー -2(fffffffe) オートメーションエラーが発生してしまいます。
以下、例
WebBrowser2.Navigate "URLリンク(www.yahoo.co.jp)
DoEvents
Do While WebBrowser2.Busy = True
⇒ DoEvents 'ここで発生
Loop
Do While WebBrowser2.Document.ReadyState <> "complete"
DoEvents
Loop

処理自体がいけないのでしょうか?
DoEventsの使用方法がおかしいのでしょうか?

281:デフォルトの名無しさん
07/06/26 23:30:18
>>279
案1
 既存のファイルを全部読む
 先頭に連結して保存
案2
 バッチ

282:デフォルトの名無しさん
07/06/27 01:11:48
>>266-267
どうでもいいけどあのCMの曲って全員集合のアレンジなんだよね。

283:デフォルトの名無しさん
07/06/27 01:13:28
あと>>279につっこませてくれ。それを言うならCSVです、と。

284:デフォルトの名無しさん
07/06/27 01:18:50
>>276
>>277
メニューのプロジェクト→プロジェクトのプロパティ
「コンパイル」タブの話です。


285:279
07/06/27 11:21:18
>>281
どうもです。
案1の場合、既存のCSVをInputにして1行ごとにOut。。
その時にヘッダー、、項目行と結合って事でしょうか?


>>283
( ̄□ ̄;)!! あっ

286:デフォルトの名無しさん
07/06/27 12:14:14
VBScriptでCVS作ったらまさに神だな・・・
いつ落ちるか怖くて使いたくないがw

287:デフォルトの名無しさん
07/06/27 13:15:23
>>285
横レスだが
別にStreamだし一気に読みこんでそこにくっつけるんでいいんじゃないの?


288:デフォルトの名無しさん
07/06/27 13:55:51
他のアプリケーションでオープン中のファイルを直接編集・更新かける方法は
御座いませんでしょうか?


289:279
07/06/27 14:27:03
>>287
objRead.AtendOfStream ~ こういうやつ?
InsertLine なんてもあったとは知らなかった、、、
なんとなくどうすればいいか見えてきた気がします。

みんなヒントサンクスです。もうちょい頭ひねってみます




でも。。。(´・ω・`)突っ込みあってから元気でないよー

290:デフォルトの名無しさん
07/06/27 14:42:16
>>288
「他のアプリケーション」はオープンしてるファイルを
横から書き換えられて誤動作しないの?

291:279
07/06/27 15:18:43
Set objRead = objFso.OpenTextFile(読込CSVの保存パス , ForReading)
objRead.ReadAll
intLine = objRead.Line

まずこんなんやってみました。
ここから行数わりだして、その値をとりあえず「x」として
その「x」が1行目をさす所に"InsertLine~"を考えています。

たぶんいろんなやり方あるんだろうけど、ここからやっていきます。
また詰まったら指導お願いすると思うのでよろしくです。

292:デフォルトの名無しさん
07/06/27 15:29:17
>>279
のような行動が当たり前なんだろうけど、このスレではものすごい優秀な行動に見えて困るw

293:デフォルトの名無しさん
07/06/27 23:01:08
tempというエクセルファイル(マクロを実行するファイル)と同じ階層に
財務****.xls(*は日付)というファイルが複数あって、
財務ファイルのセルA1とA10の値をtempにリスト化させるにはどうしたらいいのでしょう?
財務ファイルを一つずつ開けてたらきりがないので一気に処理できたらと思うのですが・・・。
できれば、
財務ファイル名、A1、A10
が横に並んでて、縦にファイル全ての値がリスト化できるようにしたいのですが、どなたかご存じないですか?

294:デフォルトの名無しさん
07/06/28 01:56:51
・フォルダ内の全てのファイル名を順に得るようなコードを書いてみる
・任意のエクセルファイルを開いてA1~A10を読むコードを書いてみる
・二つをくっつける。ファイル名が自身と同じなら読まない。開くたびに一行ずらす。

って、VBAはスレ違いじゃなかったっけか。

295:デフォルトの名無しさん
07/06/28 04:42:41
> ここから行数わりだして、その値をとりあえず「x」として
> その「x」が1行目をさす所に"InsertLine~"を考えています。
何言ってるかわからんのだけど誰かわかるの居る?
>>279の目的で行数調べる必要どこにあるんだ?

>>292



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch