[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 06/03 14:56 / Filesize : 85 KB / Number-of Response : 296
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 17:33:37 ]
ここは Visual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。

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

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

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

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

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

41 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 16:59:54 ]
自在にON/OFFはできませんよ

42 名前:yo1 [2007/05/24(木) 17:19:47 ]
>>41
そうですか残念です。
ありがとうございました。

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

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

44 名前:デフォルトの名無しさん [2007/05/24(木) 18:47:06 ]
続けてすみません

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

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

46 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:55:26 ]
>>44
815.812.810-805.801
これで部屋数いくつなの?












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

47 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:26:41 ]
>>37
おまえツンデレさんだろ?w

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

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



50 名前:43 [2007/05/24(木) 22:57:12 ]
ありがとうございました

51 名前:37 mailto:sage [2007/05/25(金) 00:57:02 ]
>>48
何よ、簡単に見つかるじゃない
もっとちゃんと調べなさいよ

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


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

53 名前:デフォルトの名無しさん [2007/05/25(金) 18:58:21 ]
ググれば相当見つかる


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

55 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 11:59:06 ]
>>54
俺その方法知らないんで良かったら・・・・

56 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 13:30:20 ]
Excelを買ってもらえるよう説得する
これが面倒

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


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

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

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



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

ひたすらクリック
www.clickclickclick.com/default.asp

まとめサイト
www33.atwiki.jp/clickvip/


61 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 01:39:52 ]
コピペ君って馬鹿だな、まで読んだ。

62 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 10:29:29 ]
>>57
format$(Time1, "yyyymmddhhnnss")>format$(Time2, "yyyymmddhhnnss")

63 名前:デフォルトの名無しさん [2007/05/28(月) 10:58:21 ]
ファイル名の取得に関する質問です

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

これではダメかな?

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



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

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

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

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

1 2 3 教えてください

73 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 07:12:42 ]
>>72
とりあえずwinsockコントロールのバグな
support.microsoft.com/kb/171843/ja

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

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

75 名前:デフォルトの名無しさん [2007/05/31(木) 08:59:42 ]
>>68
ありがとうございます

76 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 09:34:51 ]
>>73
こんなバグあったんかー!!
どおりで・・・。orz

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


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

79 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 14:20:34 ]
ソートはな無いんじゃね?
連結元のrecordsetでソートしてやりゃおk



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

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

と横槍

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

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

84 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 11:51:56 ]
APIでそんなのあったっけ?
APIにあればいけるさ

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


少しせつなくなった。

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

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

88 名前:86 mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 22:54:24 ]
86に便乗する形で質問したいのですがよろしいでしょうか?

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

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

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




90 名前:86 mailto:sage [2007/06/04(月) 22:57:04 ]
>>89
ああ私もそんな感じの物が作りたいんです。要素数が不定だからできないんですよね。

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

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

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





92 名前:86 mailto:sage [2007/06/04(月) 23:44:43 ]
>>91

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

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


93 名前:デフォルトの名無しさん [2007/06/05(火) 00:33:11 ]


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

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


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

96 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 01:26:21 ]
94と95は、どっちが86、89なんだ?

97 名前:86 [2007/06/05(火) 06:16:22 ]
どっちも私ではありません

98 名前:86 mailto:sage [2007/06/05(火) 06:46:27 ]
というか6.0ではCollectionどうやってつかうのかいまいち分からないんですけど

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



100 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん [2007/06/05(火) 09:55:08 ]
グリッドについての質問です。

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

102 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 10:27:33 ]
グリッドにも色々種類がある訳だが。

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

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

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


106 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 00:25:17 ]
キーを送ればいいしイベントを呼んでもいいんじゃない?

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

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

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

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

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



110 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 01:21:50 ]
>>109
何で俺に言うんだよ
質問に答えただけだろ

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

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

112 名前:デフォルトの名無しさん [2007/06/06(水) 01:53:45 ]
>>111
別の言い方について詳しく

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

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

115 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 10:36:27 ]
断る

116 名前:デフォルトの名無しさん [2007/06/06(水) 10:38:02 ]
>>114
モーグってサイト見ろ

117 名前:デフォルトの名無しさん [2007/06/06(水) 12:12:19 ]
>>116さん

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

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

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


119 名前:デフォルトの名無しさん [2007/06/06(水) 13:04:53 ]
>>118

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



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

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

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

122 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 14:13:28 ]
エスパーレス

(´・ω・`)つ【FocusRect】

123 名前:デフォルトの名無しさん [2007/06/06(水) 14:28:13 ]
>>122
ありがとうございます

.FocusRect = flexFocusNone
を追加すると

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

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

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

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

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

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

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

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

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

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

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

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



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

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

132 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 10:35:32 ]
>>130

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

じゃだめですか

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

134 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 10:53:09 ]
張リ 忘レタ ヨー
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=3606

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

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

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

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

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

1に戻る

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

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


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

悩む点は特に無さげ。

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

139 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 00:17:32 ]
>>138
Cでもいいわけか?
VBじゃなくって?

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



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

141 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 00:38:06 ]
ていうか、いまさらVB6〜を始めるな。
せめてC#かVB.NETにしろ。

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

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

146 名前:133 mailto:sage [2007/06/08(金) 09:21:42 ]
勘違いさせてしまった様だが、俺が創ったのは
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=3606
のレス21な

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

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

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

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


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



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

やりたいことは、↓これと同じようなことなのですが…
www.forest.impress.co.jp/article/2007/04/10/crosshair.html

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

152 名前:125 [2007/06/08(金) 19:59:32 ]
>>148
だいたいそんな感じですね
正確には

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

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

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

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

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


153 名前:デフォルトの名無しさん [2007/06/08(金) 20:01:14 ]
>>152

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

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

155 名前:デフォルトの名無しさん [2007/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 [2007/06/08(金) 23:05:39 ]
今146のやつを標準モジュールに全部貼り付けて
実行するフォームにコマンド1,2を用意して155のソースを書いて実行したら
エラーは出なくなりましたが、画面に何の変化もないといった感じです・・・
標準モジュールに貼り付けるのが何か間違ってますか?

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

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

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

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



160 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 11:19:36 ]
むしろ今からVB6を「基礎から」勉強してどうする。

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

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

こんなもんでしょ?

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

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

164 名前:125 [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 15:49:48 ]
>>164
そんな事すらいちいち教えなきゃいけないのか?
自分で調べる気は毛頭ないのか?
トイレまで他人が手伝ってもらわないといけないのか?
ふざけんなこの野郎

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

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

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

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

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

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



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

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

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

173 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 12:00:44 ]
いい感じに荒れてきた

174 名前:デフォルトの名無しさん [2007/06/10(日) 12:50:39 ]
BSMTPの話?

175 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 12:53:29 ]
>>173
つ アロエ
  肌にいいらしいぞ

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

177 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 14:03:02 ]
あげあしとり出現w

178 名前:125 [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 16:24:35 ]
ワラタ
なんかこうなってくると釣りクサイよなwww



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

181 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 17:10:27 ]
相手にするから付け上がる

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

183 名前:デフォルトの名無しさん [2007/06/10(日) 17:29:48 ]
うるさい
だまれ

184 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 17:35:17 ]
(´・ω・)

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

186 名前:125 [2007/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 名前:デフォルトの名無しさん [2007/06/10(日) 18:48:48 ]
ヘルプ使えよカス
Rnd()でググるなりしてもすぐ解決するだろうに
いちいちその程度のことを人に聞くなよタコ助が

188 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 18:49:12 ]
>>186
>>165

189 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 19:35:21 ]
>ランダム化したa、bを
ランダム化してねぇぇぇぇぇぇぇぇ!



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



190 名前:125 [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 19:56:51 ]
質問は手元にCDがある状態になってからにしてくれ
このままではお前のくだらない質問だらけでスレがいくつあっても足りない
はっきりいって迷惑なんだよ

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


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

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

195 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 20:32:38 ]
とりあえずマニュアルを入手するのが第一。
これはVBScriptのだけど、VB6でも同じだからよく読んでみろ。
www.mhl.janis.or.jp/~winarrow/vbscript/htm/vbs176.htm


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


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


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

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

199 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:01:03 ]
上限と下限の間の乱数を得る式



200 名前:125 [2007/06/10(日) 21:01:57 ]
>>198
ステップ実行って何ですか?

201 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:03:58 ]
やってみればわかる

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

203 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:32:23 ]
はい

204 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:46:41 ]
Wubi - Ubuntu installer for Windows
pc11.2ch.net/test/read.cgi/software/1181387720/l50

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

くだすれVB6.0以前(超初心者向け)
pc11.2ch.net/test/read.cgi/tech/1165574205/

住人は共通化もしれんが

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

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

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

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

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

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

209 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 14:24:13 ]
VB6でテキストボックスからフォーカスを他へ移さないようにしたいのですが、どうしたらいいんですか?
後、カーソルを左端じゃなくて右端に固定したいのですが…


211 名前:デフォルトの名無しさん [2007/06/13(水) 15:41:21 ]
なんのためのプロパティだ。

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

213 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 16:56:23 ]
スペシャルヒント
ろすとふぉーかす
せっとふぉーかす
あらいんめんと

214 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 22:01:45 ]
ご冗談を。

215 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 08:29:36 ]
validateでいいんでね

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

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

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

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

217 名前:デフォルトの名無しさん [2007/06/14(木) 20:41:52 ]
2つ質問です。

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

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

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



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

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

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

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



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

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

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

223 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん [2007/06/15(金) 10:37:42 ]
書き忘れてた
ボタンのクリックで ButtonManage を最後に追加しないと判定しないわw

225 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 11:55:18 ]
>216
エラーメッセージくらい書けよ

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

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

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

228 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 05:05:38 ]
ミスった、コードの中の m_IdPool  は m_IdQue に置き換えて読んでくれ。
修正漏れがあった。



230 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 05:07:30 ]
しかも、Clock になってた oRzz

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

232 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 18:36:29 ]
>>232
オートナンバーはINSERTの対象にしなけりゃいいんだよ。
勝手に値が入る。


234 名前:デフォルトの名無しさん [2007/06/16(土) 21:25:30 ]
ありがとうございます


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

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

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



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

241 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 18:39:51 ]
>>240
必要な操作は、

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

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

これだけだよ。

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

243 名前:デフォルトの名無しさん [2007/06/17(日) 23:04:21 ]
>>242
そのまま書いていました・・・

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

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

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

245 名前:デフォルトの名無しさん [2007/06/18(月) 17:16:16 ]
>>243
Select Caseも知らんのか。

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

分かるか?

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

247 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 19:59:25 ]
終わった言語をいまさらスタートする奴なんてそんなにいないしな

248 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 22:03:55 ]
勝手に終わってろカオス

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



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

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

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

253 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 17:33:11 ]
×チェック外せば
○チェック入れれば

254 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 19:06:09 ]
VB6のWebBrowserコントロールは
ビスタでも問題なく使えますか?

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

256 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 00:49:42 ]
VBって遅いよな

257 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 01:37:24 ]
Cって速いよな
でもC++って劇遅だよな

258 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 02:09:20 ]
>>256-257
つまんねえ釣りはVIPでやれ

259 名前:デフォルトの名無しさん [2007/06/20(水) 15:30:14 ]
FlexGridの行選択についての質問です

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

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

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



260 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん [2007/06/21(木) 09:26:00 ]
>>259
範囲選択を不可能にする方法はある

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


262 名前:261 [2007/06/21(木) 09:26:52 ]
誤植

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



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


264 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 15:36:44 ]
>>263>>261です。悪かったな。


265 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 15:39:02 ]
すいません>>263>>260へのレスです。たびたびごめんなさい。

266 名前:デフォルトの名無しさん [2007/06/21(木) 16:29:07 ]
イ〜ンダヨ〜

267 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 16:50:01 ]
ブル〜ダヨ〜

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

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



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

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

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

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

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

274 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:15:51 ]
>>273
SETUP.LST

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


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

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

278 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 09:33:00 ]
>>276
コンパイルするとC2.EXE と LINK.EXEが裏で動いている。

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

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

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

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

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



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

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

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

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

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

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


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


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

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

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


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


289 名前:279 mailto:sage [2007/06/27(水) 14:27:03 ]
>>287
objRead.AtendOfStream 〜 こういうやつ?
InsertLine なんてもあったとは知らなかった、、、
なんとなくどうすればいいか見えてきた気がします。

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




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



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

291 名前:279 mailto:sage [2007/06/27(水) 15:18:43 ]
Set objRead = objFso.OpenTextFile(読込CSVの保存パス , ForReading)
objRead.ReadAll
intLine = objRead.Line

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

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

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

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

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

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

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

>>292







[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<85KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef