VB初心者質問スレPart3

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
////////////////////////// 終了 //////////////////////////
3デフォルトの名無しさん:01/09/15 20:05
IEとかで表示したHTML内のハイパーリンクを
ドラッグドロップして、そのリンク情報を取得するには、
どーやればいいんでしょうか?
Iriaとかにアイテム追加をするみたく・・・
4デフォルトの名無しさん:01/09/15 23:35
Private Sub Form_Load()
Me.OLEDropMode = 1
End Sub

Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
MsgBox Data.GetData(vbCFText)
End Sub

あとは適当に応用をきかせて。
5 :01/09/16 00:31
PC名の取得はどうするのでしょうか。

SQLサーバに接続した際、クライアントのPC名を記録したいのですが
VBでのPC名の取得方法がわかりません。
65:01/09/16 01:08
ここにありました。よかったあって。
ttp://www.mitene.or.jp/~sugisita/family/papa/vb/api_sysi.html
73:01/09/16 07:51
>>4
引数にvbCFTextですか・・・
全然、勉強不足でした。ありがとうございます。
8ソート君:01/09/16 10:49
ListViewで日付の項目をソートしたいのですが上手くいきません。
単純な文字列比較のようなので、
2001/10/21
2001/9/10
のように、9月が10月の後になってしまいます。
9月を09のように0を頭につければもちろん正しくソードできるのですが、
それをしないで正しく実時間の順にソートする方法はありますでしょうか。
9疑心暗鬼:01/09/16 12:37
はじめまして!
先ほどは違うスレに書き込んでしまって
すっかり鬱な疑心暗鬼です。

ちょっと質問なんですけど、
下記のVBのプログラムの結果が同じにならないのは
どうしてなのかご教授願えますか?

質問内容
Fix関数でDoubleとVariantで同じ値が
入っているのに、Fixすると結果が違ってしまう。

環境
VB6 + SP6
Win2000

よろしくお願いします。


'********* ここからプログラム
Dim a As Variant
Dim b As Variant
Dim c As Variant
Dim t As Variant

Dim d As Double
Dim e As Double
Dim f As Double
Dim tt As Double

Dim g As Variant
Dim h As Variant
Dim i As Variant
Dim ttt As Variant

a = 24600
d = 24600
g = 24600

b = 24000
e = 24000
h = 24000

'VariantでDoubleの時と同じ結果を出すための苦肉の策
c = a * 1000 / b * 1000 / 10
t = Fix((c + 5) / 10) / 10

'Doubleでの正しい結果が出る
f = d / e * 100
tt = Fix(f + 0.5)

'Variantでは正しい結果が出ない
i = g / h * 100
ttt = Fix(i + 0.5)

MsgBox "ただしい計算結果 " & Str(t) & vbCrLf & _
"ただしい計算結果 " & Str(tt) & vbCrLf & _
"誤ってる計算結果 " & Str(ttt)

'********* ここまで
10デフォルトの名無しさん:01/09/16 14:57
VBからエクスプローラを制御することは可能ですか?
コマンドの送受信をしたいのですが。
11デフォルトの名無しさん:01/09/16 15:06
>8
エクスプローラでさえ0を代入してます。
無理と思って差し支えないでしょう。
12デフォルトの名無しさん:01/09/16 15:10
>>10
コマンドって何でしょう?キー操作のことですか?
送信はSendkeys(藁
受信はフックしてやってください
VB の ListView にはソートイベントってないの?
2つのアイテムを比較するときに発生するイベント。
14デフォルトの名無しさん:01/09/16 15:21
>>13
ColumnClickじゃない?
1513:01/09/16 15:30
>>14
>>9

であれば、その ListView.ColumnClick イベントで、
日付を日付として比較するように書いてやればよいのでは?
169:01/09/16 16:25
>>15
?????
17デフォルトの名無しさん:01/09/16 16:32
DirListBoxで取ったディレクトリパスにあるフォルダ名をリストとして吐き出したいんですが、どうしたらよいでしょうか?
18デフォルトの名無しさん:01/09/16 18:18
>>17
リストボックスに追加すりゃいーの?

Dim i As Integer
i = 0
Do Until i = Dir1.ListCount
List1.AddItem Dir1.List(i)
i = i + 1
Loop
198のソート君です:01/09/16 18:45
>>11
月日はそうなんですが、時間の部分は0ないですよね。
まあ、エクスプローラがVBで作られたとは思えませんが。

>>13
>>14
>>15
こんなの見つけました。
http://www.mvps.org/vbnet/index.html?code/callback/lvsortcallback.htm
みなさんのおっしゃっている事はこれのことでしょうか。
しかし、ここまでしなければならないのでしょうか。
なんか最後の方よく読むと問題もあるらしいし。。。
もっと簡単でスマートな方法ありますでしょうか。(と甘えてみたりする)
20h:01/09/16 18:49
21質問:01/09/16 19:41
いまさら気づいたんですが、
VBのテキストボックスって65536文字(だっけ?)くらいしか
入れられないんでしょうか。
もっと増やしたいのですがアドバイスください。
お願いします
22デフォルトの名無しさん:01/09/16 19:48
>>21
そうです
とりあえずリッチテキストボックス使いましょう
2317:01/09/16 20:05
>>18
ファイルに吐き出すとか変数に入れるとかして色々やるつもりですが、
充分に応用できそうな感じですね。
ありがとうございました。
2421:01/09/16 20:25
>>22
リッチ何とかって書体がいろいろあったりするやつだっけ、
ありがとう。解決した。
25デフォルトの名無しさん:01/09/16 22:35
Open filename For Output As #1
   hoge = "ほげ" & "ほげ2"
Write #1, hoge
Close #1

とかやってみたんですけど、これだと出力結果が
"ほげほげ2"
となりますよね。
この両端のダブルクォーテーションが要らないんですが、どうしたら良いでしょうか?
>>25
print #1
27デフォルトの名無しさん:01/09/16 22:56
>>25
'ファイルを書き込む関数
Public Function WriteFile(strFileName As String, strText As String)
Dim intFree As Integer
intFree = FreeFile()
Open strFileName For Binary As #intFree
Put #intFree, , strText
Close #intFree
End Function
2825:01/09/17 00:01
>>26さんので出来ました、ありがとうございます!

>>27
スマソ、、理解できなかった自分は逝ってよしでしょか、、、。
29デフォルトの名無しさん:01/09/17 15:32
固定ピッチフォントだけ列挙したいんですが、どうしたらいいでしょうか。
(プロポーショナルフォントは排除する)
今はループで回してPrinter.Fontsからフォント拾って列挙してるだけです。
30デフォルトの名無しさん:01/09/17 18:00
VBでウインドウの中にネット上のHTMLを表示したいのですが?
(Flash Getとかで、広告出してる感じのやつ)
どうすれば出来るんでしょうか?
おしえてん@
>>30
Webブラウザコントロールではダメかい?
32デフォルトの名無しさん:01/09/17 18:50
>>25
WriteのところをPrintにしてみそ。
33前のスレ885:01/09/18 01:09
前のスレで質問したことですが、
乱数を連続で取得すると値が近いと、、。
そこでこんなアドバイスをいただき、
 連続で取得すると近くなります。
 WINAPIのSleepで1でも値を取ると、近似値がぐっと減りますよ。
嬉しいのですが、よくわかりません(;´_`;)
サンプルコードを書いてもらえませんか?
ドキュソですんません。
34デフォルトの名無しさん:01/09/18 07:59
VBでメモリ解放とか、簡単に出来るのでしょうか。
難しいのなら、出直して来ますが・・・
多少の勉強で出来るのなら、アドバイスが欲しいです。

・・VC++だと簡単とか言っとりますが・・・よぉ分かりません。(汗
ttp://www.page.sannet.ne.jp/kamishima/
>>34
ttp://www.page.sannet.ne.jp/kamishima/

かなりイタイ。
>>34
Javaと同じでGCだよりです。
37nanasisan:01/09/18 11:21
>>34
> VBでメモリ解放とか、簡単に出来るのでしょうか
VBではメモリ管理をVBのランタイム(仮想マシンとも言います)が
実権を握って管理しているのでできません。

javaだと意図的にgc (garbage collect; メモリ内の不要部分(ゴミ)
を集めて破棄すること)できたのですが、VBだと知っている限り
そのようなものはなかったと思います。

> ・・VC++だと簡単とか言っとりますが・・・よぉ分かりません。(
VC++だと簡単というのではなくて、VC++だとプログラムを書く側が
メモリ管理の実験を握ることになるので、VBに比べてメモリ管理を
行なう部分のソースを書かなければならないばかりか、メモリを確保
する部分はあるのに何らかの条件で解放する部分が実行されなかった
りすると、メモリリーク(確保したメモリが解放されずに残ってしま
うこと)が発生してしまうことにもつながります。

要は「義務と権利は表裏一体」ということで、メモリ管理の権利を握り
たければ、メモリ管理の面倒な部分も引き受けるという義務が同時に
発生するわけです。

ただし、VC++だとメモリ管理の部分について詳細まで書くことが出来る
ので、VBよりも遙かにメモリの利用効率の高い、かつ高速なアプリケー
ションが作れます。

> ttp://www.page.sannet.ne.jp/kamishima
この厨房ソフト最高すぎ(w
真・メモリ最適化ツールに迫るって、マジで(w
3834:01/09/18 11:32
>>35
>>36
>>37

回答ありがとうございます。
自分のような初心者に出来る領域でないことが、よく分かりました。
VB以外の言語が扱えるぐらいに勉強したら、もう一度挑戦します。

・・・みなさん笑ってるソフトは別スレから。
http://salad.2ch.net/pc/kako/979/979942202.html
オカルトアプリ厨房…
40回答、よろしくお願いします。:01/09/18 14:29
ただいまVBで簡単なカードゲームを作っているんですが、

PictureBox の複数選択移動の処理に困っています。
何か言い方法はないでしょうか?

GUIでファイル関係を操作するときみたいに、ドラッグ範囲指定
ドラッグ&ドロップで移動するっていうのが理想なんですが

回答の方ヨロシクおねがいします。
41デフォルトの名無しさん:01/09/18 17:34
>>29
リストボックス等に列挙するのはキツイですが、
コモンダイアログならできます。
CommonDialog1.Flags = cdlCFBoth Or cdlCFFixedPitchOnly
CommonDialog1.ShowFont
って漢字で。
4240:01/09/18 17:58
一応無理やりプログラムで偽装しました。


しかしドラッグした時のアイコンは単一なんですよね・・・

APIかなにかで複数選択にはできないのでしょうか?
43デフォルトの名無しさん:01/09/18 18:53
ウィンドウズの時計合わせって、どうやれば作れますか?
時刻の変更と、NTPサーバーへの接続と・・
4443:01/09/18 21:13
あ、で・・Dateステートメントがあるのか・・・
自己解決してしまった・・・(滝汗
鬱だ氏のう・・・

・・・・でもNTPサーバーの接続ってば・・・
45VB君:01/09/18 21:46
VBでNTのサービスを作成する事はできますか?
サービスの実行ファイルとしてVBで作成したEXEを指定して動かしてみたんですけど
処理中のままで動作しません。
やはりVC++でなければダメ
46ニャピ子:01/09/18 21:50
VB6.0、帳票ツールはCR8で開発するつもりなの。
VB側でデザイン環境呼び出そうとしたら
VBのメニューのプロジェクトには「Crystal Report 8の追加」って表示されなくて、
コンポーネントのデザイナの欄にも「Crystal Report8」と表示されてなーい。
なんで?
インストールしたCR8はプロフェッショナルエディション。
デベロッパーエディションじゃなきゃだめなのかなー?
ちょっと困ってます。何か知っている人いますか?
47デフォルトの名無しさん:01/09/18 22:25
VBで、ボタンとかPictureBoxのコントロールを
実行時に新しく生成ってできるんでしょうか?

できるととっても便利なような気がするんですが、
方法がわかりません

# イベントハンドラを与える方法が無いとかの理由でムリなのかしら…
>>47
できるよ。
49デフォルトの名無しさん:01/09/18 23:32
Option Explicit

Private Kotae ' ランダムで変化する答え

Private Sub cmdAnswer_Click() ' 答え合わせ
Dim Atai ' 入力された値を受け取る器
Static Kaisu ' 何回かかったかを覚える
Atai = Val(txtAnswer.Text)' テキストボックスから値を取得
Kaisu = Kaisu + 1
'入力された値と答えを比較
If Atai > Kotae Then
lblQuestion.Caption = "まだまだ大きいよ" ' 大きい場合
If Atai - Kotae < 3 Then lblQuestion.Caption = "少し大きいよ" ' 差が10以下になったら
End If
If Atai < Kotae Then
lblQuestion.Caption = "まだまだ小さいよ" ' 小さい場合
If Kotae - Atai < 3 Then lblQuestion.Caption = "少し小さいよ" ' 差が10以下になったら
End If
If Atai = Kotae Then
If Kaisu = 1 Then
lblQuestion.Caption = "当たりだよ!!" & vbCrLf & Kaisu & "回であたったよ" & "こりゃ参ったよ"
ElseIf Kaisu < 3 Then
lblQuestion.Caption = "当たりだよ!!" & vbCrLf & Kaisu & "回であたったよ" & "あんたすごいねー"
ElseIf Kaisu < 5 Then
lblQuestion.Caption = "当たりだよ!!" & vbCrLf & Kaisu & "回であたったよ" & "まあまあだね"
Else
lblQuestion.Caption = "当たりだよ!!" & vbCrLf & Kaisu & "回であたったよ" & "はやくあてなきゃ"
End If
Kotae = Int((10 * Rnd) + 1) ' 1から10までの乱数整数を発生させます
txtAnswer.Text = "" ' テキストボックスの初期化
Kaisu = 0 ' 回数の初期化
End If
End Sub

Private Sub Form_Load()
Randomize ' Rnd関数の初期化
Kotae = Int((10 * Rnd) + 1) ' 1から10までの乱数整数を発生させます
txtAnswer.Text = "" ' テキストボックスの初期化
lblQuestion.Caption = "私の考えてる数字(1〜10)を当ててごらん?"
End Sub

数当てゲームなんですが、どうして
If Atai - Kotae < 3 Then lblQuestion.Caption = "少し大きいよ" ' 差が10以下になったら
If Kotae - Atai < 3 Then lblQuestion.Caption = "少し小さいよ" ' 差が10以下になったら
で、差が10以下になったらなのに"3"が出てくるのかよくわかりませんです。
どなたかアドバイスよろしくです。
50nanasisan:01/09/18 23:59
>>45
NT/2000リソースキットのsrvanyを使うと良い。
サービス周りの部分だけやってくれる。
5147:01/09/19 00:03
>48
あ、ほんとだ!!コントロール配列使うとは気づかなんだ…
知らないって恐いっすな。感謝っす〜
5247:01/09/19 00:07
>>49
> If Kotae - Atai < 3 Then lblQuestion.Caption = "少し小さいよ" ' 差が10以下になったら
> で、差が10以下になったらなのに"3"が出てくるのかよくわかりませんです。
いや、うん、コメントが間違ってるだけのような気も…
「コメントで書かれている事はしばしば嘘っぱちである」
ということを心得よう
53デフォルトの名無しさん:01/09/19 00:09
> If Kotae - Atai < 3 Then lblQuestion.Caption = "少し小さいよ" ' 差が10以下になったら
> で、差が10以下になったらなのに"3"が出てくるのかよくわかりませんです。
いや、コメントが間違ってるだけのように見える

「コメントで書かれている事はしばしば嘘っぱちである」

ということを心得よう
5453:01/09/19 00:14
あ、すんません、おもいっきし連続書き込み
# しかもびみょ〜に直してるあたりが赤っ恥
55 :01/09/19 08:23
VBまたは、VBAで、ノーツのDBをつついたりすることってできるんですか?
56デフォルトの名無しさん:01/09/19 09:31
コメントが間違ってただけなんですね。サンクスです。
57デフォルトの名無しさん:01/09/19 21:04
始めてカキコします。
VBで作ったソフトをOLEオブジェクトとして別のソフトで
使用したいのですが、どうすればいいですか?
58デフォルトの名無しさん:01/09/19 21:27
あげ
59デフォルトの名無しさん:01/09/20 00:24
Private Sub Timer1_Timer()


Sleep (1)
MyValue1 = Int((Rnd * 43) + 1)
Label1.Caption = MyValue1

End Sub
sleepの使い方ってこんなんでよろしか?
60:01/09/20 07:40
VB で atan2() 使いたいんですけど、なにかよい手はありますか?
(Atn() しか用意されてない。。。)
61@:01/09/20 10:01
62デフォルトの名無しさん:01/09/20 10:44
エクセルVBAで結合したセルの幅の取り方が分かりません、お願いします。
これだと、結合前の幅になってしまいます↓
Dim oRange As Range

Set oRange = Sheet1.Range("A1")
MsgBox (oRange.Width)
63デフォルトの名無しさん:01/09/20 14:04
VBでエクセルファイルを出力したいのですが、
それってできますか?
エクセルファイルを読み込むことはできたんですけど。

よろしくお願いします。
>>63できるよ。
xl.ActiveWorkbook.Close True, savefile
xl.DisplayAlerts = False
こんな感じ。
>>62
Sheet1.Range("A1", "A2").Width
試してないけどこれじゃあ行かんの?
66デフォルトの名無しさん:01/09/20 15:27
6764:01/09/20 16:14
>>63
なるほど。
ありがとうございました。
68ほんとの64:01/09/20 18:08
>>67 ???
  67 名前:63 :01/09/20 16:14
  >>64
  なるほど。
  ありがとうございました。
ってこと?
6963:01/09/21 10:42
あ!!
すみません。間違えました。
64さん、ありがとうございました。

ところで、
lim = filename.worksheets("sheet1").Range("A1").end(filename.worksheets("sheet1").xlToRight).Column
これで、limに エクセルの1行目の文字の入っている行数を入れたいのですが
うまくいきません。
何がいけないのでしょうか?
よろしくお願いします。
70デフォルトの名無しさん:01/09/21 16:31
VBで作ったソフトを配布するときにインストーラー形式にしたいんですが、
ちゃんとプロジェクトを解析して使われているocxや必要DLLをパッケージに含んでくれる
インストーラー作成ソフトって何がありますか?
VB付属のディストリビューション ウィザードとインストールシールド以外で、
できればフリーのモノがいいのですが・・・。
7164:01/09/21 23:09
>>69
lim = filename.worksheets("sheet1").Range("A1").end(xlToRight).Column
だよ。
xlToRightはプロパティーでもメソッドでもなく定数。
>>62
ついでに今VBで試したけど>>64のやりかたででてきたよ。
VBAのマクロでも今やってみた。
普段使わんから使い方がようわからんかったけど結果は同じやった。
ようするに結合しても結合前の範囲を指定せないかん訳だな。
A1とA2を結合しているならA1とA2を指定すると言うこと。
>>70
>ちゃんとプロジェクトを解析して…
ディストリビューション ウィザードとインストールシールドで
いいと思われ
73デフォルトの名無しさん:01/09/24 14:47
age
74デフォルトの名無しさん:01/09/24 15:01
VBのまったくの初心者にお勧めの解説本って
どういった物が良いのでしょうか?
>>74
付属のチュートリアル
76デフォルトの名無しさん:01/09/24 21:56
MSのActiveServerPagesを1週間前から始めた超初心者です。
なんとなく簡単なプログラムを書くことはできはじめたのですが、
目標としてASPを使って、いろいろなグラフ(円グラフとか
棒グラフ)描画をやってホームページに出したいのですが、
それはASPで可能なんでしょうか?それとも何か別の言語
とかでやった方がいのでしょうか? 教えて下さい。
スレ違いならごめんなさいですけど、その場合どこで
訊いたらいいでしょうか?
77デフォルトの名無しさん:01/09/25 00:19
VBで、InetコントロールのOpenURLメソッドで取得したHTMLデータ
をシーケンシャルファイルに保存すると、2バイト文字が化けて
しまう場合があります。これを回避する方法がありましたら、ご教授
ください! よろしくお願いします!!!
78デフォルトの名無しさん:01/09/25 00:46
あるテキストファイルから1行づつデータを取得して
別々のテキストボックスへ格納したいのですが
コードの記述がわかりません。

3行のテキスト文章を3つのテキストボックスに行別に格納するための
方法を教えてください

よろしくお願いします。
7964:01/09/25 01:49
>>78これで動くかな?
Open ファイルネーム For Input As #ファイルナンバー
For i=0 to 2
 Line Input #ファイルナンバー, 中身
 Text1(i).text = 中身
Next i
Close #ファイルナンバー
Text1(0),Text1(1),Text1(2)をフォームに貼り付けて
コントロール配列にすれば動くと思う。
ファイルが2行しかないとかそういったときのエラー処理は
適当に考えて頂戴。
801:01/09/25 01:54
8164:01/09/25 02:00
>>74
とりあえず何でもいいからサンプル付の本を買ってきて流れをつかんだら
あとはMSDNライブラリーで事は足りると思う。
>>76
簡単な棒グラフは1×1のGIF画像でも用意してテーブルを使うのが
良くある手段。でも円グラフはさすがに無理か。
昔パールでGIFファイルをヘッダーから全て書き出すことをやったけど
<IMG src="graph.cgi">って感じで呼び出して
ヘッダーからたらたらと書き出す。
とてもサーバーに負荷がかかりそう。
ここで聞くよりWebProgのほうが良いんじゃない?
82☆☆雪:01/09/25 09:25
[OSのVer]2000
[VBのVer]5.0
以下に示すのは0040でのDB接続コードですが。
これをActiveXDLL化する場合、べたに書いて、DLLWIZARDを使用し
コンパイルするだけで接続できるのでしょうかでしょうか?
また、足りない部分があったらご指摘お願いします。
(サービス名、ユーザー名なども、記入済として。)
よろしくお願いします。

***********************
OraSession : Variant; // Oracle Session
OraDatabase : Variant; // Oracle Database

procedure TMaiForm.ConnectBtnClick(Sender: TObject);
var
StrSrv : String;
UserPass : String;
begin

StrSrv := 'hogehoge'; // Net8 サービス名
UserPass := 'hogeUser/hogePass'; // ユーザー名/パスワード

try
// OLE オートメーションオブジェクトのインスタンスを作成
OraSession := CreateOleObject('OracleInProcServer.XOraSession');
// oo4oインプロセス接続
OraDatabase := OraSession.DBOpenDatabase[StrSrv, UserPass, 0];
except
on E:EOleError do begin
ShowMessage('データベースの接続に失敗しました。');
end;
end;

end;
よろしくお願いします!!
83デフォルトの名無しさん:01/09/25 10:51
質問
VisualBasicで作成したアプリケーションを常に一番前に表示させるために
ZOrderメソッドを使いたいんだけどどこに配置すればいいですか?
84デフォルトの名無しさん:01/09/25 11:19
VB6にてSetWindowLongを用いたメッセージフックを行っています。

Form1のPrivateモジュール内で
lpOrg = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WindowProc)

WindowProcは標準モジュール関数として作成し、
その中でメッセージを判断する事までは出来ましたが、
これって他アプリに対しても同じ様な事ができるのでしょうか?

単純にSetWindowLongに別のアプリのウィンドウハンドルを渡せば・・・・、と思ったんですが、
ウィンドウProc(lpOrg変数)に0が帰ってきてしまいます。
プロセスが違うと無理
86デフォルトの名無しさん:01/09/25 14:34
Range(1, 1).NumberFormat = "#,##0;-#,##0"

これで数字に3桁ごとにカンマを入れたいんですけど、ウマくいきません。
どうしてでしょうか?
87超初心者:01/09/25 16:53
VB初心者のプログラマーです。
Visual Basic 6.0 SP5でFTPを利用したアプリケーションを開発し始めたのですが、
FTPのBinaryモードとASCモードを切替えるプロパティがMSDNを探しまわっても
見当たりません。
デフォルトではBinaryのようなのですが、ASCに切替える方法はあるのでしょうか?
どうかお知恵をおかし下さい。
お願いいたします。
88デフォルトの名無しさん:01/09/25 18:49
フォームの表示位置を設定したいんだけど。。
>>88
どこらへんに?
90デフォルトの名無しさん:01/09/25 20:10
らるちーみたいに、
二つのフォームを結合させるのは、どーやるんでしょうか?
91sage:01/09/25 20:27
with me
.top = 100
.left = 200
end with
ってな感じでできちゃった。
自分で解決したのでsage
92デフォルトの名無しさん:01/09/25 20:28
textBoxに入力した桁数はどうやって取得するのですか?

例えば
┌───┐
|ABCD |
└───┘
と入力した時には、「4」という値を取得したいのですが…。
お願いします。
>>92
len(text1)
9493:01/09/25 20:42
・・・ちと、いー加減だったか。(汗
MsgBox Len(Text1)
文字数の取得でいーんだよね?
バイト数やったらLenB・・・
いちおー、基本中の基本やから・・・
95デフォルトの名無しさん:01/09/25 20:47
ありがとうございます!!
基本なんですがこれにちょっとはまってました。
助かりました。
96デフォルトの名無しさん:01/09/25 20:53
拡張子lzhに対応するスクリプトエンジンはありませんと
言うわれたんですけどどうすればいいんですか
>>96
どういう状況で言われたの?
98デフォルトの名無しさん:01/09/25 21:04
>>97ダウンロードしたゲームを開こうとしたときです
9997:01/09/25 21:06
>>98
そのゲームが、ドコにあるのかが分からんと、どーにも。
・・・つか、開発関係の質問に該当するんでしょか?
あの、初心者の人はVB6は我慢して、VB.netをやったほうがいいと
思うんだけど。(マジレス

ADOとかも大きく変わるよ。RecordSet亡くなるし。
>>100
VB.netをはじめるなら
C#とかの方が
後から仕様追加して無い分
仕様が素直だと思うが
どっちが取っつきやすいかは人によるが
VBでブラウザを作っています。
が、IEなどにあるブックマーク一覧表の作成でつまっています。
FileListBoxを作ってそこに表示させるようにしてみましたが、
C:\WINDOWS\Favoritesからデータを拾ってくるように指定する
方法がわかりません。
もしかしたらFileListBoxよりもっとスマートな方法があるのかもしれません。
ご存知の方、どうかご教授ください。
>>102
>FileListBoxを作ってそこに表示させるようにしてみましたが
の時点で
>C:\WINDOWS\Favoritesからデータを拾ってくるように指定
できてるんじゃないか?

だいたいFileListBoxじゃ、お気に入りの階層構造はどうすんのよ。
それにお気に入りはC:\WINDOWS\Favoritesって決まってるわけじゃないしな。
そのまま続けたら高速ダウンローダ2000が出来ちゃうよ。
104102:01/09/26 02:55
レスありがとうございます。
>>C:\WINDOWS\Favoritesからデータを拾ってくるように指定
>できてるんじゃないか?
プログラムのソースがあるディレクトリを自動で指定してしまってるようなので
その変更方法がわからなく困っています。
>だいたいFileListBoxじゃ、お気に入りの階層構造はどうすんのよ。
確かにそうなのですが、ではどうすればいいのか、私にはわからないのです。
ドーナツのソースを拾って調べてみようと思ったらあれ、VC++なんですね…(困)
>>104
そんなレベルの話してたのか・・・。
  File1.Path = "c:\windows\Favorites"
ってやれば、お気に入りが表示されるよ。
でも>>103に書いたように階層構造の問題もあれば、
お気に入り場所だってc:\windows\Favoritesって決まってるわけじゃないし。
はっきり言うけど、こんな事聞いてるレベルでブラウザを作ろうなんて、
無謀すぎると思うぞ。
ましてやドーナツ級のものなんて無理だろ。
106デフォルトの名無しさん:01/09/26 20:36
メールヘッダーのFrom:から、メールアドレスだけを抜き出す処理って、どうやるんでしょうか?
文字列から"@"を検索して、Doステートメントとかで、"<"や"("がヒットするまで抜き出すんでしょうか。

・・・・・もっと違うやり方って、あります?
107デフォルトの名無しさん:01/09/27 10:15
ACCESS2000 VB6.0 DAO使用
(テーブル)
 ・日付(DATE型)主キー
 ・曜日(数値)
 ・時間区分(数値)主キー
 ・内容(文字列)
というようなテーブルで、
特定の年月(例えば2001年9月など)を指定してレコードを検索するのには
どういうふうに書けばいいでしょうか?
質問です。
環境はVB6SP5、WIN2000SERVER、SQLSERVER2000です。

常駐型プログラムを作成したのですが、それをサービスに追加し、ログオンしなくても
プログラムが実行できるようにしたいのですが、
上記の環境で実現するには、リソースキットを導入するしかないのでしょうが。

既出でしたら申し訳ありません。
109えこえこあざらし:01/09/27 11:58
>>108

>>50でそれらしいことが書いてあるよ。
俺は詳しくはわからんが。
>>106
(使用出来る環境なら)正規表現を用いて取り出す手もある。
111デフォルトの名無しさん:01/09/27 15:09
例えばテキストボックスがA,Bの2つあるフォームがあるとします。
BからAへフォーカスが移った時に
「フォーカスがBから来ました。」
という情報はどのように取得するのでしょうか?

TabIndex(?)の情報を使えば良いような気がするのですが
具体的には分からないので、どなたかよろしくお願い致します。
>>111
WM_SETFOCUS
113デフォルトの名無しさん:01/09/27 15:52
WM_SETFOCUS
ってどのように使うのですか?

Text1.text = WM_SETFOCUS

としても何も表示されませんでした…。
114VB厨房:01/09/27 15:55
>>111
すべてのコントロールのGetFocus()イベントで現在のコントロールを何かの変数に保存しておいて
BのGetFocus()イベントでその変数を調べればいいんじゃない?
115デフォルトの名無しさん:01/09/27 15:56
やっぱり変数を使うしか方法は無いのでしょうか…。
>>113-115
なぜMSDNを読まない?
117111:01/09/27 17:01
>>116
読んでもわからないバカなんです。申し訳ない。
VBでコンソールに出力するには、どうしたら良いのでしょう?
printfとかcoutみたいなことがしたいのだけど。
あと、終了コードはどうやって返せば良いのでしょう?
119デフォルトの名無しさん:01/09/28 01:51
age
120VB厨房:01/09/28 10:29
dirオブジェクトとfileオブジェクトを使っています。
dirオブジェクトで選択したフォルダの、以下に入っているフォルダを取得して、
それから全てのファイル名称を全部取得したいと思ってます。

If File1.ListCount <> 0 Then

For i = 1 To File1.ListCount

File1.ListIndex = i - 1
Text1.Text = Text1.Text & File1.FileName & vbCrLf

Next

End If

選択したフォルダ内のファイルはこれで表示させることができますが、
そのフォルダ以下に入っているフォルダ内のファイルの取得方法がわかりません。
誰か詳しい人教えてもらえると助かります。よろしくお願いします。
>>119
consoleについて
http://www.cqpub.co.jp/try/1999-9/vbcon.htm
でどうかな。
終了コードについて
ExitProcess() APIを使ってはどうかな。
122デフォルトの名無しさん:01/09/28 13:01
123デフォルトの名無しさん:01/09/28 14:44
例えば、(100,5)で宣言した配列に
エクセルから Range で指定した100行1列分 を
配列の4列目に入れるって可能ですか?

今のところ、Range で入れたい配列と完璧に同じ大きさだけ
とってこないと配列に入れられないのですが。

よろしくお願いします。
124120ですが:01/09/28 16:36
解決しました
>>123
ループを使うのは嫌なの?
126 :01/09/29 02:28
WIN32API.txtの最新版って公開されてる?
最新版ってのがあるのかも知らないんだけど。。。
手元にあるVisualStudio6についてきたやつは
更新日が1998/7/14ってので古すぎて使いたいAPIが無くって
むかつくんですけどぉ・・・
127119:01/09/29 02:51
>>121
まさしくこれです。VBではできないと思ってたので助かりました。
終了コードもExitProcessでいけました。
監視端末とかこれでつくろうっと。
128デフォルトの名無しさん:01/09/29 09:44
>>125
ループで解決しました。
どうもすみません・・・。
129デフォルトの名無しさん:01/09/29 21:35
frxファイルって、どーゆー時に生成されるんですか?
新規フォームにデフォルトで付いてくるアイコンを削除したら、
frxファイルが生成された気がするんですが・・・・
どうやりゃ削除できますか?
>>129
frxはアイコンとかPictureBoxに貼り付けた絵とかを保存してるファイルだとオモタ。
選択してDeleteキー押すとか?
どうやりゃ削除って、右クリックして削除選ぶとか?
ゴミ箱にドラッグ&ドロップするとか?
つーかなんで消す必要があるかわからない。
131デフォルトの名無しさん:01/09/30 19:22
自フォームにフォーカスがセットされていない無い状態で、
キーが押下された事を取得するには、どうしたらいいのでしょうか?
132デフォルトの名無しさん:01/09/30 21:18
質問です。
初めてVBでちょっとしたプログラムをしてみて、
ディストリビューションウィザードでパッケージにしてみました。
すると大した機能も付けていない(と思う)んですがDLLの総量が3MBにもなっていたのです。
それくらいで普通なのでしょうか?
よろしくお願いします。
もう、やめようよ......。既存のVB消えるんだからさあ。
134デフォルトの名無しさん:01/09/30 21:56
俺VBと一緒に逝くよ。他の言語はハードル高すぎ…
たかすぎ〜 たかすぎぃい〜 かいぃはぁつぅ〜
>>131
通常の方法では無理。システムフックを使うしかないと思う。

>>132
どのコントロールを使っているかに拠る(Projectをエディタで開けば分かる)
ので、一概には言えないが2-3MB程度なら普通かな。

>>133
多分.NETのことを言っているのだと思うけど、コード体系自体はそう変わらない
わけだし、.NETがすぐに浸透するとは思えない。
未だにVB5やVB4を使っているところだってあるわけだし。
オブジェクトは変わるけどコードの書き方は基本的に同じだから
意味がないわけではないと思う。
136デフォルトの名無しさん:01/10/01 01:00
非マルチラインのテキストボックスコントロール上で
リターンキーを押したときにビープ音が鳴らないように設定しても
MaxLengthを設定すると鳴ってしまいます。
この場合でもならないようにするにはどうすればいいでしょうか
まったく度素人状態から学ぶのであればやめたほうがいいとおもうんだけどねえ。

俺:
COBOL->VBA->VBS->VB->JavaScript->(XML)->VC++

VBから逃れるのは大変だよ!って、使わない訳ではない。
いまも上の言語はすべて使っている。
138デフォルトの名無しさん:01/10/01 01:27
>>137
うるせーバカ
>>138
初心者より手前のレベルの入門者です。
リッチテキストボックスで
とある単語だけ強調表示(太字&フォントサイズ+1)したいのですが
どんなキーワードで捜せば「当たり」がありますか?

お暇な方、よろしくお願いします。
141デフォルトの名無しさん:01/10/01 13:57
テキストボックスの行間の幅を変更するにはどうすればいいのでしょうか。
>>140
ん? こゆこと?
・・・フォントは使い方忘れた。


Dim i As Integer
Dim temp As String

RichTextBox1.Text = "名無しさん"
temp = "しさ"

With RichTextBox1
i = InStr(.Text, temp) '探す
If i > 0 Then
.SelStart = i - 1 '「し」から
.SelLength = Len(temp) '「さ」まで
.SelBold = True '太字に設定
.SelStart = 0 'フォーカスを先頭に戻す
End If
End With
143140:01/10/01 14:56
>>142
試してみます。感謝です。
>132
ランタイム入りだとそれくらいのサイズになるよ
145デフォルトの名無しさん:01/10/01 15:10
どんなVBランタイムセットでも、これは確実に入ってるってのはどれでしょうか?
"ASYCFILT.DLL""COMCAT.DLL""MSVBVM60.DLL""OLEAUT32.DLL""OLEPRO32.DLL"
"STDOLE2.TLB""VB6JP.DLL""VB6STKIT.DLL"
これくらいが基本ですかね。
146デフォルトの名無しさん:01/10/01 16:21
作曲のソフトを作りたいんですけど
ドとかレの音を出す方法ってどうやればいいのでしょう
147ビギナー:01/10/01 16:30
VB4で開発したアプリをVB6で修正するにはどうすればよいでしょうか?
148145:01/10/01 16:57
>>145はVB6についてです。
>>137
逆に貴方のようにCOBOLから入った人は理解しづらかったかもね(^^;
Message(=イベント)という概念やオブジェクト、クラスという概念は
COBOLにはないからね。上記の概念を(厳密ではないけど)簡単に
把握したいならVBは選択肢の一つになりえるよ。
言語つーのは適材適所だから、逃れる必要もないし、それは貴方の立派な
財産だと思うのですが。

>>140
ちなみにRichText.Find()ってメソッドあるけどバグ有ります。
どういう挙動をするかは色々やってみてね。142さんの方法がベター。

>>147
まずVB4-16か32かはっきりさせろ。でないとアドバイスのしようがない。
とりあえずvb4のプロジェクトはVB6でも読めたはずだから、変換する事。
あとはUnicode(全角半角も2バイト)とS-JISに気をつけること。
それと一部のコントロールは使えない。
>>137
VBSとJavaScriptってのが痛。
151デフォルトの名無しさん:01/10/01 17:39
>>149
前半と後半の口調が違くて怖い。ブルブル・・・
まるで893のようだ
152デフォルトの名無しさん:01/10/01 17:43
VBでキー入力をロックするにはどうすればよいのでしょうか?
APIの BlockInput を使うとマウス入力までロックしてしまいます。
用途としては、Ctrl+Alt+DeでVBアプリを終了させられてしまうのをを封じたいのです。
OSはWin2Kです。
キー入力をロックした上に、VBアプリのみがキー入力を認識できればもっとうれしいのですが・・・
メッセージフックという技を使えばできるのでしょうか?
1531:01/10/01 17:44
その画像ならココ
http://www.f2.dion.ne.jp/~impact14/
>>152
http://soramimi-i.com/my2/vb/03/030306.htm
強制終了を禁止するだけなら、こーゆーんで。
155152:01/10/01 19:31
>>154
試しましたが、win2kでは使えないようです・・・
156デフォルトの名無しさん:01/10/01 22:20
VBというか、エクセルVBAの質問で恐縮なんですが
ワークシートにコントロールを複数配置したいのですが
うまくいかなくて困ってます。
スピンボタンのlinkedcellの値がF2のものをコピーしても
linkedcellの値がまたF2のものができてしまいます。
ここを相対参照にする方法ってないんでしょうか?
コードも継承されないみたいだし...
>>146
実際に使ったことはないけど、midiOut〜っていうAPIを使うか、
DirectMusicでやるのが簡単そうだと思う。
自前で計算したいならMODとかについて調べるといいと思うよ。
>>151
よう見てみ。最後のは質問として成り立ってないから
そういう口調になっても仕方ないよ。

>>152
NTと9xでは処理が全然違うんだけど、NT/2K限定でいいの?
http://members.tripod.com/~masapico/doc_DisableSAS.html
159デフォルトの名無しさん:01/10/02 08:51
>>158
システムが使うDLLを書き換えるのは怖いですが試してみます。
レスありがとうございました。

>>154
言い忘れましたが、レスありがとうございました。
160152:01/10/02 12:05
Ctrl+Alt+Del はしょうがないとして、
Alt + Tab によるアプリの切り替えを防止する方法ってありますか?
161デフォルトの名無しさん:01/10/02 15:39
階層フレキシブルグリッド(MSHFlexGrid)でデータを表示しているのですが
偶数行はこの色、奇数行はこの色
のように簡単に見やすく色分けする事は出来るでしょうか。
162デフォルトの名無しさん:01/10/02 16:08
初心者な質問で申し訳ないんですが
文字を回転させて表示することは可能なのでしょうか
どなたかお願いします。
やろうとしてることはとても初心者向けではなひ。
164149/158:01/10/02 17:41
>>160
検索してるの?
http://www.tair.freeservers.com/download/killers.html

こことか海外には有用なコード一杯落ちてるよ。日本国内じゃレベルが知れてる。

>>161
.ColSelが効かないのがちょっとアレだけど、.CellBackColorで変えられるよ。

>>162
DCに描画するしかないね。163の言うとおりで初心者のレベルは超えてる。
DC(デバイスコンテキスト)について勉強したほうがいい。
165    :01/10/02 18:34
>Ctrl+Alt+Del はしょうがないとして、
>Alt + Tab によるアプリの切り替えを防止する方法ってありますか?

Ctrl+Alt+Delを無効にするコードはMSDNに載っています。
絶対に使うな!って書いてありますけど(!?藁
166デフォルトの名無しさん:01/10/02 18:37
>164
レスありがとうございます
難しそうですが挑戦してみます。
167名無しさんの野望:01/10/02 21:17
subject.txtからdatファイル名を抜き出す方法を考えています。

例.
999973261.dat<>こんなしぇんむ〜は嫌だ!! パート4 (123)
1000141155.dat<>QOH & PB ACCESS 7 (572)

subject.txtを読み込む

行の左から14文字取り出す

14文字目に"<"がある項目から"<"を削除する。

配列にファイル名を入れ,次の行へ

繰り返し

という方法を考えていますが,1行ずつテキストを
変数に読みこむという処理はどうすればよいでしょうか。

また,テキストとして読み込むよりバイナリとして
読み込んだほうが,やはり処理は早いのでしょうか。
168160:01/10/02 22:17
>>164
レスありがとうです。
検索はかなりしましたが、日本語ページしか見てませんでした。
海外の方がレベルが高いんですかー。今度は海外も見てみます。
169デフォルトの名無しさん:01/10/02 23:55
windows付属のスクリーンキーボードみたいに常に前面に
表示させたいのですがどうすればいいのでしょうか?
CreateWindowEx の拡張スタイル WS_EX_TOPMOST を使うか、
SetWindowPos の HWND_TOPMOST を使う。
171!!!警告!!!:01/10/02 23:59
!!!VB厨房が徘徊しています!!!
!!!!!!放置開始!!!!!!
>>169
SetWindowPos()にHWND_TOPMOSTを指定してやればOK。
ていうかこの手のは検索すれば死ぬほど出てくるが?

>>167
ていうかInStr()使ったほう(".dat"を検索)が早くないか?

>1行ずつテキストを変数に読みこむ

それ以外にどういう方法があんの?Line Inputとかヘルプ見た?

>また,テキストとして読み込むよりバイナリとして

いいところに気が付いたけど、この程度の処理ならロジックが複雑に
なる分と相殺かな。
バイナリで読む利点はメモリにおいて読めることなんで
(ファイルI/Oのオーバーヘッドが減る)
この例のように、行先頭のみ、一行の長さが可変という処理なら
テキストで読んだほうが簡単。
173136:01/10/03 00:13
誰かわかんないですか?
>>174
今VB使ってないから、
PC内蔵のスピーカ外せ、としか言えない。
>>136
TextBoxのKeyPressイベントで、Len(TextBox.Text) >= TextBox.MaxLength が True の場合に、KeyAscii=0にするとか。
やってないのでわからないが、理論上はできるはず。
あとはMaxLengthを2増やし、Len(TextBox.Text) >= TextBox.MaxLength - 2が(以下略)
177136:01/10/03 00:43
>>176
ありがとうございます。ためしてみます。
178141:01/10/03 01:11
>>141は無理ですかね・・・
>>178
VBでどうやるのか知らないけど、APIでならGetFontして
LOGFONTに細工してSetFontでしょ。
もしも、InputManを使っておられる方がいらしたら質問です。
テキストボックスのプロパティで、
フォーマットを全角のみにした場合でも、半角スペースのみだと
変換されずにそのまま通ってしまいませんか?
回避策を思い付かないので、教えていただければ幸いです。
181デフォルトの名無しさん:01/10/04 10:15
VBでエクセルの複数行を結合させると、
文字が一番下の行に表示されてしまうのですが、
一番上の行に表示させることはできるでしょうか?

よろしくお願いします。
182デフォルトの名無しさん:01/10/04 10:17
>>181 Excel の[セルのプロパティ]、垂直揃えを見てごらんよ。
183デフォルトの名無しさん:01/10/04 11:16
上げてすみません。
 あるディレクトリ下のファイル数を一発で取得する方法で簡単なものがあった
ら教えて頂けないでしょうか?FindFirstFile系のAIPを使用してカウントする
とファイル数が1000位までならあっという間なんですが、Cドライブ全てな
んかをカウントするととても耐えられない時間がかかります。
 それと、ファイルの実際の使用サイズを取得する方法もお願いします。
 よろしくお願いします。
184デフォルトの名無しさん:01/10/04 11:20
  、>              .|
  >________   .|
   ̄   .|./_   _\ |   |     ______
      | /  ヽ/  ヽ |  |     /
.      | |   ・ | ・  |  V⌒i  
   _  |.\  人__ノ   6 |  < うるせー馬鹿>>183
   \ ̄  ○        /    |       
.     \          厂     \
     /  _____/          ̄ ̄ ̄ ̄ ̄
      ̄ ̄, -/へ/\/`- 、
       /./  ./o    i. \
185デフォルトの名無しさん:01/10/04 14:36
質問です。イベントログを取得しようとし、以下のような方法で、コードを記述したのですが、
イベントログには
ソース (○○○○) 内のイベント ID (9999) に関する説明が見つかりません。次の挿入文字列が含まれています
と記述されています。これを避けるためにはどのようにしたらよいのか、どなたか詳しい方、
ご教授願えないでしょうか。。。
Appオブジェクトを使う方法ではなく、APIを使用する方法を希望します。

Option Explicit
Declare Function RegisterEventSource Lib "advapi32.dll" Alias _
"RegisterEventSourceA" ( ByVal lpUNCServerName As String, _
ByVal lpSourceName As String) As Long
Declare Function DeregisterEventSource Lib "advapi32.dll" ( _
ByVal hEventLog As Long) As Long
Declare Function ReportEvent Lib "advapi32.dll" Alias "ReportEventA" ( _
ByVal hEventLog As Long, ByVal wType As Integer, _
ByVal wCategory As Integer, ByVal dwEventID As Long, _
ByVal lpUserSid As Any, ByVal wNumStrings As Integer, _
ByVal dwDataSize As Long, plpStrings As Long, lpRawData As Any) As Boolean
Declare Function GetLastError Lib "kernel32" () As Long
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
hpvDest As Any,hpvSource As Any, ByVal cbCopy As Long)
Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, _
ByVal dwBytes As Long) As Long
Declare Function GlobalFree Lib "kernel32" ( ByVal hMem As Long) As Long

Public Const EVENTLOG_SUCCESS = 0
Public Const EVENTLOG_ERROR_TYPE = 1
Public Const EVENTLOG_WARNING_TYPE = 2
Public Const EVENTLOG_INFORMATION_TYPE = 4
Public Const EVENTLOG_AUDIT_SUCCESS = 8
Public Const EVENTLOG_AUDIT_FAILURE = 10

Public Sub LogNTEvent(sString As String, iLogType As Integer, _
iEventID As Long)
Dim bRC As Boolean
Dim iNumStrings As Integer
Dim hEventLog As Long
Dim hMsgs As Long
Dim cbStringSize As Long
hEventLog = RegisterEventSource("", App.Title)
cbStringSize = Len(sString) + 1
hMsgs = GlobalAlloc(&H40, cbStringSize)
CopyMemory ByVal hMsgs, ByVal sString, cbStringSize
iNumStrings = 1
If ReportEvent(hEventLog, iLogType, 0, iEventID, 0&, iNumStrings, cbStringSize, hMsgs,hMsgs) = 0 Then
MsgBox GetLastError()
End If
Call GlobalFree(hMsgs)
DeregisterEventSource (hEventLog)
End Sub

Sub Main()
Call LogNTEvent("Information from " & App.EXEName, EVENTLOG_INFORMATION_TYPE, 1001)
Call LogNTEvent("Warning from " & App.EXEName, EVENTLOG_WARNING_TYPE, 1002)
Call LogNTEvent("Error from " & App.EXEName, EVENTLOG_ERROR_TYPE, 1003)
End Sub
186185:01/10/04 14:37
環境は、VB6SP4、NTです。
187デフォルトの名無しさん:01/10/05 01:07
age
>>183
動作速度はともかくとして、簡単に取得するなら
FileSystemObject 使うのもありかも。
標準のリストボックスが二つあって、それぞれの内容をドラッグ&ドロップで
移動できるサンプルコードがあったら教えていただけないでしょうか?
190デフォルトの名無しさん:01/10/05 09:17
あげ
191189:01/10/05 09:26
できました。
192183:01/10/05 10:26
>>188
 ありがとうございます。
 でもFileSystemObjectの方が遅かったので・・・。結局全フォルダ
オブジェクト下のファイル数を地道に数えて行くんですよね?
 たとえばC:\windowsと指定したらそのディレクトリにぶら下がって
いる全てのディレクトリ下のファイル数も一辺に取得したいんです。
193デフォルトの名無しさん:01/10/05 13:14
すいません。アホVB初心者です。
VBの標準exeで改行コードLFをCRLFに変換したいんですが
何か良い方法はないでしょうか。
194デフォルトの名無しさん:01/10/05 13:27
改行の前に vbCr を付ける、じゃダメか?
195デフォルトの名無しさん:01/10/05 15:28
>>193

strExpression = Replace(strExpression, vbLf, vbCrLf)

これではだめでしょうか?
個人的には vbNewLine 使うトコだけど。
vbCrLfとvbNewLineの違いって何?
どう使い分けたらいいのか分からない…
>>196

vbNewLine : 一応プラットホームに依存しない(事になってる)コードを書ける。
まあ気休めだけどね。

UNIX 系、Mac、Win 全部に対応しようと思ったら結局自分で書くしかないね。
198デフォルトの名無しさん:01/10/05 17:45
Form1
--------------------------
Private Sub Command1_Click()
Set Form2 = New Form2
Form2.Show
End Sub
--------------------------

Form1のCommand1をクリックすると、Form2が新しく表示されますが
いっぱいクリックすると、いっぱいForm2が現れます。

それぞれのForm2はどうやって識別するのでしょうか。
オブジェクト名は「Form2」ではないみたいなのですが…。
199デフォルトの名無しさん:01/10/05 18:41
185よろしくお願い致します。
>>195
それじゃお金もらえない。

処理済のテキストをもっぺん通したらどうなるか考えてみれ。
>>198
フォームの数分変数を用意すればいいんじゃねーの?
>>198
Form2ってのは暗黙のForm2オブジェクトのインスタンスを
示すから、Set Form2...てのはそもそも間違い。
ヘタすると循環参照になる恐れもあるし、リソースがどんどん減っていく
のが分かると思う。
203デフォルトの名無しさん:01/10/06 00:58
ボタンを押した時に、指定したWAVファイルを鳴らしたいのですが
どうしたらよろしいのでしょうか?
ご教授お願いいたしまっす!
204aita:01/10/06 01:35
VB6.0で開発してる者なんですが、mid関数を使って、文字列を2つに分けたいのですが
2つに分けた2つ目の文字列が文字化けしてしまいます。対処策を教えてください。
>>204
2バイト文字が真っ二つになっている。
+1か-1をしてみれ。
206aita:01/10/06 01:48
デフォルトの名無しさん,レスありがとう!
でも、それをやっても化けちゃうんだなぁ!
どうしよう?
>>204
つか、Mid 関数って文字単位じゃなかったっけ?
どんな文字列食わせてるの?
最初から化けてるに一票
209デフォルトの名無しさん:01/10/06 18:47
再帰処理でスタック不足のエラーを捕まえるにはどうしたらいいのでしょう?

on Error goto ErrHandle
call SomeFunc '再帰関数を呼ぶ

ErrHandle:
MsgBox("計算に失敗しました")

こんな感じではエラーを捕まえてくれずに落ちちゃう・・

#再帰が浅いデータで計算するとうまく動いているから再帰関数自体は問題ないとおもう
>>207
VB4,5,6は文字列はデフォでUnicodeだから漢字ANK混在でも
途中で切れる事は無いはず。
>>209
再帰を呼び出す回数を制限するカウンタを導入したら?
public sub MyFunc(Byval CallCnt as Integer)
__if CallCnt < 100 then
____Call MyFunc(CallCnt + 1)
__end if
end sub
211207:01/10/07 02:31
>>210
でもさ、API から受け取る等して、Shift-JIS コードが
まぎれこんでた場合は、どうなるんだろうね。
212デフォルトの名無しさん:01/10/07 03:43
VBはじめて4日です。
データベースをやりたくてはじめたのですが、
ADOやらDAOやらRDOやらで、どれを勉強して良いかわかりません。
とりあえず、新しいということでADOを勉強しようと思っているのですが、
他の2つより劣っている部分ってあるのですか?
初めてならDAOが良いんじゃないの?
情報も多いし。
>>209
VBから他の言語に乗り換えろ
215デフォルトの名無しさん:01/10/07 04:10
すいません
WebBrowserコントロールのフォントサイズの変更ってどうやるんですか?
それらしいプロパティを見つけられんのですけど・・・
216名無し:01/10/07 04:19
お聞きしたいんですけど、統計解析をSAS(Statistical Analysis System)を用いて行う
ことはけっこう高度なものなのでしょうか?数学使うんでしょうか?
(数学)苦手なもので・・。えっと大学の授業でそういう情報処理の科目
があるんですけど、数学苦手でまだプログラミングのことが分からない
初心者には無理ですかね?無理なものをとってもしょうがないと思いまして。
誰かおしえてください!
217デフォルトの名無しさん:01/10/07 04:23
>>216 「無理」って言ってほしいように感じるけど?
218212:01/10/07 04:46
>>213
DAOの方が簡単なんですか?
つーか、違いが今ひとつ分かりません・・・。
219名雪:01/10/07 04:48
だおー
220デフォルトの名無しさん:01/10/07 05:25
アド?エーディーオー?どっち?
221    :01/10/07 06:21
>>203
瀬戸遥
222デフォルトの名無しさん:01/10/07 10:52
ExcelVBAについて質問です。
フォーム上にテキストボックスを貼り付けました。
VBのテキストボックス上で右クリックするとメニューが出ると思うのですが、ExcelVBAの場合それが出ません。
これは仕様なのでしょうか?
それとも簡単に出す方法がほかにあるのでしょうか。
223213:01/10/07 12:40
>218
DAOはJetなどのスタンドアロンDB用。
ADOはSQL鯖などクライアントサーバ用。
お気軽って意味で、初めての時はDAOがいいんじゃないかな、と思った。
モチロン、環境が用意出来るならこの限りではないけど。

詳しくは↓でも読んでみてチョーダイ。
http://homepage2.nifty.com/inform/vbdb/
>>218
adoの方が新しいんだから、adoやっとけ。
別にどちらが難しいとかいうことはない。同じ。
225sage:01/10/07 16:24
リストビューの選択項目を削除する方法を教えて!
コモンダイアログを配置しようとすると「ライセンスが無い」といわれるのは何故?
227209:01/10/08 03:09
>>210
何だ、Cと一緒で自分でスタックの量を見積もらなくてはいけないのか・・
どうもありがとう
説明下手ですみませんが、お教え下さい。
VB6で作りたいのです。

VB6で作成した物を常駐させて置いて、
適当なアプリを起動しようとした時に、
そのアプリが起動する前に、
作成しておいた適当な画像なりフォームなりを
割り込ませて表示する方法ってありますでしょうか?
アプリが起動する前にというのが出来ない場合には、
同時でも構いませんので、
何かいい方法はありませんでしょうか?
どうかご教授下さい。
229デフォルトの名無しさん:01/10/08 22:43
既にでている質問だったら、本当にすいません。

VB6でエクスプローラーとかからドラッグ&ドロップしてファイルリストボックスにファイル名をリストアップしたいのですが、

Private Sub File1_OLEDragDrop(Data As DataObject,(中略)
File1.filename = Data.Files(1)
End Sub

だと、一つしかファイル名が表示できません。
D&Dしたファイルのファイル名をどんどん追加したのですが、どなたか教えて頂けませんでしょうか??
宜しく御願いしますm(__)m
230218:01/10/08 23:26
>>223-224
ありがとうございます。結局、>>224さんの言われるように
「新しいから」と言う理由でADOを始めてみました。
ADOはスタンドアロン環境ではダメって訳じゃないんですよね?

で、やってて分からないことなのですが、
DBに接続したデータグリッドコントロールをクリックして、
クリック位置の「行」のデータを取得して
別に用意した行数分のテキストボックスに表示したいのですが、
クリック位置の行のデータの取得方法ってどうしたら良いのでしょう。
よろしくお願いします。
231デフォルトの名無しさん:01/10/08 23:29
DLL 卍????Sってエラー何?
232デフォルトの名無しさん:01/10/08 23:37
>>231
なんか化けてるんでは?
>>229
リストボックスに代入してから、ファイルリストに追加するとか・・・
なんや姑息な手段しか思い浮かばんな。
ってゆーか、なんでファイルリストボックスに追加したいんよ?
なんの作業をしたいの? リストボックスじゃダメなん?
234229:01/10/09 08:49
>>233
どうもありがとうございます。
おっしゃるとおり、リストボックスだとフルパスがどんどん追加されますね。
なんでファイルリストだと追加ができないんですか、ほんと初心者なもので。。

ちなみに、やろうとしている作業は動画リストを作ってRealPlayerで再生させようという物です。
235233:01/10/09 11:13
>>234
Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim ddfile As Variant
Dim i, ii As Integer
Dim temp As String

For Each ddfile In Data.Files
List1.AddItem ddfile
Next

List2.Clear
For i = 0 To List1.ListCount - 1
ii = 0
Do
temp = Right(List1.List(i), ii)
ii = ii + 1
Loop Until Left(Right(List1.List(i), ii), 1) = "\"
List2.AddItem temp
Next
End Sub

ちょと作てみた。かなりドキュソだが動くでしょ。ま。
List2のアイテムをクリックしたときに、List1の同じ番号のアイテムを開くとか。
そーやりゃー、なんとか、たぶん。

リストファイルとして保存とか・・するん?
236デフォルトの名無しさん:01/10/09 12:52
質問です。
実行時に現在処理中の関数の名前を取得したいのですが、
良い方法はあるでしょうか。
用途はエラーハンドリング時に表示させたいんです。
お願いします。
237デフォルトの名無しさん:01/10/09 13:01
関数呼ぶ前に関数名をグローバル変数に格納するか、関数中で関数名をグローバル変数に格納するとか。
238デフォルトの名無しさん:01/10/09 13:39
Microsoft Rich Textbox Control 6.0 (SP4)で、
ワードラップをしない方法はありませんでしょうか?
239229:01/10/09 13:54
>>235
またまたありがとうございます。多謝、多謝。
List2にファイル名がでました。これのほうがスッキリしてますね。
保存は.iniでなんとかリストファイルを作成できそうです。
これでお気に入りの動画を再生することができそうです、むふむふ。
240デフォルトの名無しさん:01/10/09 14:05
>>237
それはどういう事でしょうか。
Function FuncA As result_type
funcname = FuncA

End Function
こういう事ですか?
沢山数があるので、できれば特定の関数名は書かずに
済ませたいんですが、無理でしょうか。
241デフォルトの名無しさん:01/10/09 14:10
Delphi でメソッド名をメソッドポインタから引っ張ってくるような事をしたいのかな?

そういう関数名とかは 実行時型情報(RTTI)というんだ
 VBのIDEはそれをどこかに持っているのは確かだけどさ・・・・
242デフォルトの名無しさん:01/10/09 15:55
正直質問・・・。
よくある毎日かわる壁紙とかってどうやってんの?
やっぱりVBとかなの?
ふつーはどうやって作るもんなの?
>>242
別にVB以外でも、たいてーの言語なら作れると思われ。
で、なにさ? それを作りたいの?
>>243
その気になりゃWSHでもbatファイルでもできる。
つーか俺ならそうする。
245242:01/10/09 17:57
PVかなんかのおまけでDVDにいれるんだってさ。
作れっていわれてるんだけど
一般的にこーゆーのってどーやってつくられてるの?
ASPならちょっとできんだけどWSHなら楽かな?
おれならコレをこーやって作るっていうのきぼん
246193:01/10/09 18:45
すいません。返答貰ったのにREができなくて。
何をしたいかと言うと、ftpで送られてきたファイルの中に
lf改行コードのファイルがあるかもしれないので、crlfに
してくれと言われたのです。
Open "c:\FTP\ftp.log" For Input As #1
Do While Not EOF(1)
strDum = Split(LineData, vbLf) < ---LFコードで区切る
Text1.Text = Join(strDum, vbCrLf) < ---CRLFコードでつなげる
Loop
Close #1

こんな感じで書いてみたんですが、型が一致しませんと怒られました。
どなたかお知恵を貸してください。
>>193,197
返答ありがとうございます。
247236:01/10/09 20:12
ヘルプで探してみましたが、どうやらできないみたいですね。
あるとデバッグに便利なのに・・。
回答してくださった方、ありがとうございます。
248193:01/10/09 20:48
Text1.Text = Join(strDum, vbCrLf)

strJoin = Join(strDum, vbCrLf)
の間違いです。
strDumとstrJoinは共に配列で宣言してるstring変数です。
249デフォルトの名無しさん:01/10/09 20:55
Modを使ってAがBの倍数であるかどうかを判定しているのですが、
Aが小数の場合は自動的に丸められてしまってうまく比較ができません。
この場合はどのようにしたら良いでしょうか
>>249
割るんでなくて掛ければ?
251デフォルトの名無しさん :01/10/09 22:58
VB6.0のコモンダイアログから
ページ設定(プリンタの設定じゃないです)を
呼び出すにはどうすればいいですか?
メモ帳なんかだと印刷プレビューとか出ていて
いい感じなんで、あれを使いたいんですよ。
252249:01/10/09 23:07
例えば 4.2 Mod 2 という計算に、0以外が返って欲しいのですがそうなってくれません。
掛け算でもそういったことが分かるものなのでしょうか。
すでに算数になってしまって、申し訳ないですがよろしくお願いします。
253例えばこう。:01/10/10 01:12
D = A \ B 'まずAとBの商を求め..
IF A = (B * D) THEN 'それを掛けて元に戻れば割り切れるってわけ。
254249:01/10/10 08:10
なるほど。ありがとうございました!!
255デフォルトの名無しさん:01/10/10 10:35
>>212
Accessヤレ。中身はほとんどVBだ
A \ B だと、AやBが小数の場合うまくいかないよ
int(A / B) がいいね
257デフォルトの名無しさん:01/10/10 14:30
>>230

 Clickイベント中でクリック対象行の座標(Rowプロパティ)を求め、欲しい列を
Colプロパティで指定して、データをTextプロパティから取得すればOK。
258Surface:01/10/10 15:25
>>246
Joinの戻り値は、Variant型です。(多分)
259デフォルトの名無しさん:01/10/10 16:10
ラベルで左右は揃えられますが(右・左揃え)
上下は揃えられないのでしょうか?(上・下・真中寄せ等)
260デフォルトの名無しさん:01/10/10 16:11
SetWindowLong で BS_TOP スタイルをセットすれば可能。
261デフォルトの名無しさん:01/10/10 16:22
>>260 ボタンじゃなくてラベルだよ!
262デフォルトの名無しさん:01/10/10 17:33
最近、VBの勉強を始めたのですが、アプリケーションウィザードを使用しようとすると『ActiveX コンポーネントはオブジェクトを作成できません。』と出てしまいます。
また、『プロジェクト』から『コンポーネント』を選択して『Microsoft Common Dialog Control 6.0』などを選択すると『書き込みできません』と出て使用できません。
インストールで間違えたのでしょうか?でも、必要なものは一通りいれたつもりなのですが・・・。
一度、OSごとフォーマットしてインストールしなおしたのですが、治りませんでした。
思い当たることがあったら教えてください、よろしくお願いします。
OSはWindows2000SP2でソフトはVisualStudio6.0Professional Editionです。
263VB厨房:01/10/10 17:39
>>262
Windows2000とVisualStudioを
MSにオンライン登録すれば使えるようになるよ(藁
264デフォルトの名無しさん:01/10/10 18:05
>>262
消えろクズ
265デフォルトの名無しさん:01/10/10 18:30
>>263
Windows2000はオンライン登録してないです。ちなみにプリインストールでした。
VisualStudioはオンライン登録してあります。
でも、動かないんですけど・・・。

>>264
そ〜ゆ〜こと言わないで、教えてくださいよ〜。
266262:01/10/10 18:35
>>264
おまえが消えろ、はぁ
267デフォルトの名無しさん:01/10/10 19:21
改行コードが<LF>だけのテキストファイルの改行コードを
<CR><LF>に変えたいのですがどうやったら良いでしょうか。
vim
:set fileformat=dos
:w! c:\DQN.TXT
269デフォルトの名無しさん:01/10/10 19:25
>>267
各行の最後に Chr$(13) を追加するのはどうだ?
ファイルの読み書きが分からなかったら、
Open, Input#, Close関数 を参照すること。
270デフォルトの名無しさん:01/10/10 19:38
>>269
バイト単位だから ChrB$ だったな。ごめん。
271デフォルトの名無しさん:01/10/10 19:44
ひさびさにBASICをVBで使ってみたけど、昔のコマンド(関数とか制御式とか)
とほとんど一緒なんですね。

「Mid$ってVBでも使えるのかな〜?」ってヘルプ見たら、そのまんまの書式
で結構感激(笑

CでWinプログラム組むの面倒くさくなってきたよ。まずいな。
272デフォルトの名無しさん:01/10/10 20:06
>>271
VBと同じ感覚でC言語でアプリケーションが作れる環境がもしあるとすれば、その需要は多い。
いつも思うんだが、VBの文字列操作関係の関数にわざわざ$をつける意味ってあるノカー?
274デフォルトの名無しさん:01/10/10 20:20
ない。古い伝統。
変数の場合は"str"とかつけなくても区別できるからいいんだけどな…
276名無しさん:01/10/10 21:07
>>272
C#
277271:01/10/10 21:50
余計なこと(大事なことなんだけどさ(^^; )考えなくていいポイントが
多いよね、VBって。VCでMFC使う時は、結局ちゃんと知識得ていない
と使えないし、CのSDKはコツコツと根元から作り上げなくてはいけない。

総合すると、WINアプリの概念をちゃんと理解して、それなりにモノにするには、
C(SDK)→VB→C++(MFC) と間にVBを挟むのも悪くないんじゃないかな。

なんか、「ランタイム様。面倒なこと全部やってくれてありがとうございます」
っていう心境だわ(笑)。機能のディティールにこだわりだすと、やっぱりVCに戻る
んだろうけど、そうバカにするものでもないわな。

ただ、VBしか使わないWINプログラミングっていうのは、もったいないと思うけど。
>>276
ってゆーか、その前にC++Builderが既にあるだろ。
>>273
結果が空の時に$を付けるのと付けないのでは挙動がちがう。
例えばDir()はバリアント型のNullを返すがDir$()は""(空文字列)
を返す。
279デフォルトの名無しさん:01/10/11 02:50
>>274
んじゃ、10万回ループとかで$ありとなしの実行時間を比較して
ごらん。278が言ってることが体感できるから。
これ以外にも$は”文字列を返す”ってのを明示する意味もあるよ。

>>248
strDumは配列でいいけどstrJoinは配列である必要はない。

>>277
VBだろうがVCだろうが質のよいコードを書こうと思えば
プラットフォームに関する知識を深めるのは当然。
それさえもできてない人間がVBを馬鹿にする。
280279:01/10/11 03:01
>>277
>間にVBを挟むのも悪くないんじゃないかな

俺はVBでAPIや各種構造体の使い方を覚えて
SDK->MFCと行ったけど。
いきなりMFCはある意味危険だし、いきなりSDKもある意味きつい(笑)
今思うとSDKやれたのはVBで培った土台があったからだと思う。

そういう意味ではVBってSDKの入り口という感じがする。
ちょっと背伸びしてサブクラス化やAPIを使うこともできるし。
281デフォルトの名無しさん:01/10/11 10:10
SDKはCを、MFCはC++を、Winとは関係なしに先に勉強しないと辛いけど、
VBはBASICとWinを同時進行できるのが、いいかもね。
いわばVBは、補助輪付自転車といえよう。
補助輪付きに慣れきってしまって、無しでは走れない奴が多いのも事実。
すいません。ちょっと聞きたいんですけど。
OpenAsTextStreamってワイルドカード指定できるんですか?
Open for〜だとワイルドカード指定できなかったんで。
>>284
なぜに今から開こうとするファイル名がワイルドカード?
FileName = Dir$("*.TXT")で取ってくればよかろうに。
>>285
フォルダ内にあるファイル全てが対象って事なんで。
そのフォルダにはtxt以外のファイルも多々存在するのです。
287ナナ:01/10/11 16:54
VBでADOを使うサンプルまたは講座などのあるHPを教えてください。
ASPのじゃ、やだよ。
289デフォルトの名無しさん:01/10/11 20:26
階層フレキシブルグリッド(MSHFlexGrid)に
↓のように表示させていますが

名称1 |名称2
--------+---------
AAAA|aaaa
BBBB|bbbb
CCCC|cccc

これを
↓のように表示させる事は可能なのでしょうか?
(エクセルで2つのセルを1つにするようなイメージです)

    名称
------------------
AAAA|aaaa
BBBB|bbbb
CCCC|cccc


可能な場合、どのようにすれば良いのでしょうか??
>>289
"名"を右寄せに、"称"を左寄せにする。
291ななしさん:01/10/12 00:27
どちらにも垂直のスクロールバーがあるテキストボックスが二つあった時、
片方のスクロールバーを動かすと、もう一方もスクロールするように出来ますか?
292デフォルトの名無しさん:01/10/12 00:35
VBで初めて簡単なソフト作ってvectorに申請したら載せてもらえました。
ちょっと恥ずかしい。
293デフォルトの名無しさん:01/10/12 06:34
ちょっとお尋ねしたいんですが。

今、AVIファイルを再生させてるんですが、
その下に、フレーム数表示(あるいは時間表示)させようと思っとります。
どのようにすれば可能でしょうか?
環境はWindows2000。
VisualStudio6.0 EnterpriseEditionです。
よろしくお願いします。
294デフォルトの名無しさん:01/10/12 07:31
VBからOutlookExpressを添付ファイルを付けて立ち上げたいのですが、
どうすればいいのですか?
今現在は、立ち上げる所まではAPIで出来たのですが、添付ファイルの
付け方が分からない状態です。

ShellExecute Me.hWnd, "open", "mailto:メールアドレス", vbNullString, vbNullString, SW_SHOW

他の方法でもかまわないです。
よろしくお願いします。
>>291
片方のテキストボックスをサブクラス化してEM_SCROLLかWM_VSCROLLを
取ってくれば?

>>293
そこまでやるんだったら最初っからmci関連のAPI使うしかなかろう。
296289:01/10/12 10:25
>>290
それだと
名|称
と、間に「|」が入ります。
他に方法は無いでしょうか。。
297 :01/10/12 16:00
>289
名称1=名称2ならMergeCellsつかえるような気が・・・
298VB厨房:01/10/12 16:09
>>296
「夕|コ称」でどうだ?
  ^
299デフォルトの名無しさん:01/10/12 16:18
>>294
MAPISession
MAPIMessage
300デフォルトの名無しさん:01/10/12 16:55
MSFlexgridで、Ctrlキーを押しながらの複数選択はどうすればいいでしょうか?
選択箇所の色を変えて、あとから色が変わったところを探すのが普通でしょうか?
301デフォルトの名無しさん:01/10/12 18:01
皆様のお知恵を貸してください。

VBで、「N88−BASIC」でいうところの

READ、DATA、(RESOTRE)

のようなデータ設定を行う方法は存在するのでしょうか?

ちなみに、当方の実現したいことは、2次元以上の配列への
一括データセットです。

HELP見ても同等機能を発見できず、だったので・・・。
302VB厨房:01/10/12 18:10
>>301
static final String[][]={{"","",""},{"","",""},・・・
303289:01/10/12 19:04
>>297
「項目」そのもののセルではなく、
「項目名」の部分、ヘッダーと申しましょうか
その部分だけを2つのセルを1つにしたいのです。。
304デフォルトの名無しさん:01/10/13 05:48
>>301
配列の要素をひとつひとつ打つべし。
N88の既存プログラムのVB化でデータが膨大にあるときなら、
N88のソースからデータを読みとって配列にセットするsubでも書けばよい。
305デフォルトの名無しさん:01/10/13 14:51
Sendkeysで右クリックは実現可能でしょうか?
Sendkeysでキーコード渡せると良いのですが・・・TOT
>301
俺もその機能探した...
結局、ちと違うがArray関数使う形になったケド...
もっとヨイ方法無いかなぁ
307305:01/10/13 16:43
>305です説明足りなかったので追加
Sendkeysにしたい理由なんですが、
mouse_eventつかってやると位置情報が必要なので駄目なんです。

AppActivate "かりゅ〜しゃ", True
for i = 0 to 10 '<-繰り返したいので
'右クリック
Sendkeys "{up}{~}{down}"
next i

としたいのです。keycode=93が右クリックなんですがどうにかならないですかね。
>>307
MSDNを読め。mouse_event
309デフォルトの名無しさん:01/10/13 21:24
オーディオデバイス・・つーか、WAVEとかが、
使われているか否か(音が出ているか)を取得するには、どうしたらいいですか?
>>309
MCI。
漏れはmciSendString以外使ったことがないから分からないが。
>>310
微妙にずれてるような…
それだとmciキューが空かどうかしかわからんのではないか。
312名無しさん:01/10/14 00:57
リッチテキストボックスでなぜか水平スクロールバーが
出てこないんですが…。なぜ?垂直は出て来るんですが。
もちろんスクロールバーの設定は両方にしてます。
313デフォルトの名無しさん:01/10/14 02:11
なんだかリッチテキストボックスの質問が多い
Me.Font = RichTextBox1.Font
RichTextBox1.RightMargin = Me.TextWidth(RichTextBox.Text)
でいけますが何か?
314デフォルトの名無しさん:01/10/14 17:14
最小化ボタンのあるサイズ変更不可のFormを作るには
どうすればいいんでしょうか?
315VB初心者:01/10/14 17:21
VBでアプリケーション作りたいのですが、
VB経験0です。
参考になる書籍を教えてください。
あ、ちなみにJAVA,Perl,Cのプログラミング経験はあります。
>>315
嫌です。
317デフォルトの名無しさん:01/10/14 17:43
俺、msdnの中の「プログラミングの基礎」の項をプリントアウトして、
他は直接CD閲覧してやってる。特に本は買ってないけど。

他の言語使えるなら、これとネットの入門講座見とけばいいんじゃない?

物足りなくなったり、紐解くのめんどくさくなったら、リファレンス張りの
分厚い本でも座右に置いとけ。
318デフォルトの名無しさん:01/10/14 17:55
>>314
FormのBorderStyleプロパティを"1 - 固定(実線)"にして
MinButtonプロパティを"True"にする
3193141592:01/10/14 20:48
>>318
出来た出来た!!
ありがとー!!
320デフォルトの名無しさん:01/10/14 23:08
とても初歩的なことで申し訳ないのですが、
テキストボックスに数字以外を入れられたらはねたいのですが、
整数型などデータ型を取る関数を教えて下さい。
321デフォルトの名無しさん:01/10/14 23:41
とっても初心者向けのサイトってないですか?
322デフォルトの名無しさん:01/10/15 00:14
>>320
IsNumeric

>>321
君はここから。
ttp://202.245.103.41/learning.htm
323sage:01/10/15 00:26
>>320
型は関係ないよ。なんなら文字も全部数字だと思っても
間違いじゃぁない。scanfやったことないならやってみなよ。

キーボードで「6」を押しても、コンピュータはポインタ
っていう暗号みたいな形で受け取るんだよ。だから先ずは
アスキーコードとscanfだ。で、はねたいって言うと更に
手続きがいるよ。

コントロールにキーボード押がされるとウィンドウに
メッセージが行くからそれを捉えて条件判定
しなョ。仮想キーコードだったかアスキーだったかは忘れたけど。

WM_CHARで色んなことが分かるョ
324320:01/10/15 00:38
>>322さん
なるほど、ありがとうございます。
>>323さん
今、MSDNライブラリなんぞを見ましたが、当方初心者ゆえ、
scanf、WM_CHAR共に理解出来ませんでした・・・。
理解したいんだけどなぁ・・・。もっかいよく見てみます。
325ua:01/10/15 00:40
VB6のコード入力画面ってマウスのホイールは利かないもんですか?
326sage:01/10/15 00:45
少なくともscanfが分からなければ、
すぐ理解するようにしないと困った
ちゃんになってしまいますヨ・
>>324
327デフォルトの名無しさん:01/10/15 00:57
まだはじめたばかりなのですが、頭が悪いせいか
独学だとうまく進みません。
みなさんのお勧めのサイトなどありましたら
教えていただけないでしょうか。
>>327
>まだはじめたばかりなのですが、
これを踏まえると、もう諦らめた方が良いという結論になるな。
329294:01/10/15 12:00
>>299
MAPISession
MAPIMessage
この2つを使ってみたのですが、OutLookExpressが見えない形での操作しかできませんでした。
OutLookExpressが見える形で操作できないのでしょうか?
>>325
どこでもホイール使えばスクロールするよ。
>>325
今度は「VBでどこでもホイールと同じことはできないんですか?」とか聞かれそう…
332デフォルトの名無しさん:01/10/15 21:44
なんかkeydownイベントを認識しねぇ。
っつーか認識するときとしないときがあって原因不明。
(゚Д゚)ゴルァァァァァァ
333デフォルトの名無しさん:01/10/15 21:48
VB6というのを友達から焼いてもらったんですが、
これってインストールすると何メガくらいですか?
334デフォルトの名無しさん:01/10/15 22:10
俺のプログラム・・・
上キーと下キーをエディットで押すと、
メッセージボックスが出るようにしたが、
所詮認識しないので、まぁ、MFCでも
ないといまのところ無理だ。そういうこと
にしといてほっといた。かなり前だ。

しかし、今日&キーを押したら、ポーンとか
いって「上キーが押されました」とかでてきた。
しばらく無視してたらコンドは)キー押しとき
ポーン、下キーが押されました。
どうやら仮想キーとアスキーだな。

こんな可愛いバグに俺は微笑む。
335デフォルトの名無しさん:01/10/15 22:21
厨房な質問ですまん

1.ExcelVBAとVisualBasicの細かい違いは?
  「Excelがないと動かない」以外に・・・

2.VisualBasic.netへの移行は進むのでしょうか?
  色んなサイトを見てると「関係ねえよ」ていう感じですけど・・・
どうなんだろな
337デフォルトの名無しさん:01/10/15 22:33
>>335
>2.VisualBasic.netへの移行は進むのでしょうか?

間違いなく進む。
嘘だと思うんならβ2で遊んでみ。
いま僕が嬉しいのはマイエディタで括弧で囲まれたところの
色を変えることが出来たことです。これは実装なんですか?

文字の検出には仮想キーやアスキーコードのことを考えなく
てはいけないのですが、条件判定のところでやたら定数式
が必要とかいうエラーが出たのが困りました。でもなんか
わかりました。char...=')'とか言う記述を止めx026等を
使いましたら、うまく行きました。

条件判定のルーチンのほうは、ほぼばっちりだったので満足です。

あぁ、これで少しは目が疲れなくてすむ。括弧を抜かしたりする
ミスも大幅に減少するでしょう。
Dim ReturnValue, I
ReturnValue = Shell("calc.exe", 1) ' 電卓を実行します。
AppActivate ReturnValue ' 電卓をアクティブにします。
For I = 1 To 20 ' ループ カウンタを設定します。
SendKeys I & "{+}", True ' 電卓にキー コードを転送して、
Next I ' I の値に 1 を加算します。
SendKeys "=", True ' 和を求めます。
SendKeys "%{F4}", True ' Alt + F4 キーを転送して電卓を終了します。

ヘルプのコレ↑をそのままformに貼り付けて実行ファイルつくって
動作させるとproject1って残骸が、ctrl+alt+delのタスクリストに
残ってるんですけどこれは何故?
>335
>「Excelがないと動かない」以外
↑が一番違う。要するに実行ファイルを作れるかどうか。

細かいところでは、オブジェクトの構造がちょっと違う。
言語的には同じ。
341325:01/10/16 06:00
>>330-331
VBだけホイールでスクロールしないんですよ。
その他のアプリはだいたいスクロールするのに。
認識させる為になにかしないといけないのかな?
342まいった:01/10/16 09:59
VC++のSpinBoxをVBではTextBoxとUpDownコントロールを組み合わせてやりますよね。
やってみたら大体はうまくいったのですが、唯一つ、VC++のSpinBoxと
違ってTextBox内でカーソルキーの上下を押しても数値がUp or Downしてくれません。

最近このことで悩んでいるのですが、どなたか上手いやり方をご存知でしょうか。

要はVC++のSpinBoxコントロールとまったく同じことをやりたいのですが、、、
>341
ホイールマウスのドライバの設定を色々いじくりまわしてみる事をオススメしよう
>>342
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyUp Then
Text1 = Text1 + 1
ElseIf KeyCode = vbKeyDown Then
Text1 = Text1 - 1
End If
End Sub

こぅゆぅの?
345344:01/10/16 13:24
う・・・四行で済むじゃん・・ウツダシノウ
346 :01/10/16 15:07
>303
亀レスすまんけど
MergeCol、MergeRow組み合わせてもだめなの?
347335:01/10/16 16:02
また厨房な意見ですまん
VisualBasicとExcelVBAがたいして変わらないのなら
何故マイクロソフトはVisualBasicをOFFICEに標準装備しないのだ?
単に商売戦略上の問題だろうけど・・・・
中身が一緒だったらそう言いたくなるよ・・・
実行ファイル作るだけのためにVisualBasicを買うんかい!
>>347
それがゲイツたんハァハァだというのだ! なぜこんな事が分からん!!
349まいった:01/10/16 16:49
>>344

確かにそれで数字は変わるのですが、
VC++の場合はカーソルキーを押すとスピンボタンを実際に押してくれる
(ボタンが押される様子というグラフィカルな効果だけでなく、
 それから引き起こされる処理もやってくれる)んですよね。

つまり、TextBox内でカーソルキーを押したときに、VBのUpDownコントロールに
マウスで矢印を押したというイベントを投げられれば一番いいのですが、
そんなことってVBだとできないのでしょうかやっぱり。
350303:01/10/16 17:00
>>346
「長さ1」「長さ2」を「長さ」に変更する

MSHFlexGrid1.MergeCells = 1
MSHFlexGrid1.MergeRows(0) = True

で2つのセルが1つに結合されましたが
今度は中央寄せにしたいのですが出来ません…。

MSHFlexGrid1.ColAlignment(2) = 4
↑だと、データの部分を中央寄せに出来ます。

MSHFlexGrid1.ColAlignmentHeader(2) = 4
↑ヘッダー部分を中央寄せに設定してるつもりですが
中央に寄ってくれません。

どうすればよろしいでしょうか。。
351こまった:01/10/16 17:00
どーも。初心者です。
ある文字列からダブルクォーテイションを検索したいんですが
MID(xxxx,""")でエラー
どーしたらいいのでしょうか?
352おいらも初心者。:01/10/16 17:23
"""" にしてみて>>351
ひとつが範囲始め、2番目がエスケープ指定、3番目が検索に使われて
4つめは範囲終わり。だったと思う。(回答への自信:66.66%)
353こまった:01/10/16 17:33
>352
ありがとう
ためしてみる
354346:01/10/16 18:41
>350
(念のため)RowとRowSel、ColとColSelでセル指定して
CellAlignmentつかえば真ん中いく。

つーか、階層フレックスってバグの山だったけど修正されたの?
355350:01/10/16 19:26
>>354
MSHFlexGrid1.Col = 2
MSHFlexGrid1.Row = 0
MSHFlexGrid1.CellAlignment = 4
で、中央揃えになりました!
ありがとうございました。
356デフォルトの名無しさん:01/10/16 19:51
過去ログしっかり探せばあるのかもしれませんが、ざっとみただけだと見つからなかったので質問です。
デスクトップのパスを取得するにはどうしたらいいのでしょうか?
ユーザーごとにかわるので、どうやって追っていけばいいのでしょうか?
357デフォルトの名無しさん:01/10/16 23:11
ToolTipTextを右クリックで呼び出したいんですが、
ToolTipTextを表示させるのってどうすればいいいんでしょうか?
>>357
ぽっぷあっぷでにげちゃえ〜
>>357
ポップアップヘルプを呼び出すとか…
360Kei@男:01/10/17 15:49
>351
A=Instr(文字列,chr(&h22))
で、何番めに(")が入っているかが分かります。
無い場合、A=0
>>349
そーなると、マウスカーソルを操るしか無さそうだね。
処理を投げるのはともかく、
グラフィカルな効果を・・つーのは、どうにも思いつかない。
ttp://versionup.banbi.net/src/classlibrary/mouseoperation/mouseoperation.htm
362素人爆発:01/10/17 18:11
トーシローな質問で申し訳ないのですが……。

リストボックスのダブルクリックイベントで、選択された項目の
ItemDataをどうやって判別するか分かりません……。
選択された項目自体は、「List1.Text」で参照できますよね?
でも、ItemDataは引数を指定しないといけないみたいなんですが、
その引数に何を指定していいのか分からないんです。

なにとぞ、「この素人が」と思わずに、ご教授お願いいたします。
363入門1ヶ月のど素人:01/10/17 18:33
>>362
他の方法があるのだろうと思いながら
何が選択されてるのかわかれば良いんだ!とか思って
For i=0 To List1.Listcount -1 ってループで
 List1.Selected(i)=true    なのを探して
この時のiを返すようにしてるの・・・
とりあえず動いてるんだけど、もっと良い方法があるっぽい。
364デフォルトの名無しさん:01/10/17 20:01
Set Label1.DataSource = RecordSet
label1.DataField = "数値"

として、ラベル1にRecordSetの数値フィールドを入れています。
この数値を加工したい(500を加えて1000で割りたい)のですが
Label1選択 → プロパティ → DataFormat → の中に

標準
数値
通貨


ユーザー設定

があり、「ユーザー設定」で出来ると思うのですが
形式文字列の指定の仕方が分からないので教えてください。
よろしくお願いします。
>>362
List1.ListIndexでいいんでねーの。
366VB超初心者:01/10/18 00:14
VBはじめたばかりの人間です。

今、本にある問題のプログラムを作ろうとしているのですが。
以下のような問題です。

数値Nを入力し1からNまでの和を求めよ。
ただしN<=0で終了する。 出力はNの値と和である。

です。皆様方ならどのようなプログラムを作りますか?
この初心者に教えてください。お願いします。
367やさしい人:01/10/18 00:21
dim j as integer
dim n as integer
dim k as integer
n=text1.text
k=0
if n <=0 then{
for j=1 to n
k=k + j
next j
}
if n > 1 then
なんか他の言語もまじっていたようなので、画面にテキストボックスを2つ貼り付ける
ボタンを貼り付ける。
Private Sub Command1_Click()
Dim i As Integer
Dim j As Integer
j = 0
If Text1.Text > 0 Then
For i = 1 To Text1.Text
j = i + j
Next i
End If
Text2.Text = j
End Sub
370:01/10/18 01:50
Private Function Sum(ByVal N As Long) As Long
If N <= 0 Then
Sum = 0
Else
Sum = N + Sum(N - 1)
End If
End Function
Private Function Sum(ByVal N As Long) As Long
If N>0 Then
Sum=N*(N+1)%2
Else
Sum=0
End If
End Function
%でなくて\だった
373VB超初心者:01/10/18 14:18
皆様有難うございます。少しずつVBが分かってきました。
といいながらも別の問題も上手くつくれないのです。

中心角が115度の扇形の面積と弧の長さを求めよ。
ただし角の単位はラジアンとする。

です。
どうしようもなく阿呆かもしれませんが
どのようなプログラムをつくればいいのでしょうか?
>>373
それプログラム作るほどの意味があるのか?
375デフォルトの名無しさん:01/10/18 16:10
>>373
小学生でも計算できますが何か?
>>373
 とりあえず

プログラミングの為の数学と算数
http://piza2.2ch.net/test/read.cgi/tech/997150743/
>>373
その前に、お前は本当にそのような技術が必要なのか小一時間問い詰めたい。(以下略)
中心角が115゚で単位がrad?
プログラミングを単なる計算機に使おうとしてる人初めて見た(w
380デフォルトの名無しさん:01/10/18 19:36
フローティングウインドウにしたくてSetWindowPosでHWND_TOPMOSTを
セットしたんですが、これだプログラムを切り替えてもそのフォームが
最前面に表示されたままになってとてもウザイです。

プログラムが切り替わったら消えるようなフローティングウインドウはどうすれば
よいのでしょう?
>>380
WM_ACTIVATEを引っかけて、非アクティブになったら該当フォームを隠す。
アクティブになったら出す。
382デフォルトの名無しさん:01/10/19 02:27
板違いでごめん・・・
VBAスレなかったもんで・・・

Excel97以降のDDEExecuteって仕様かわっちまったんでせうか?
95で作ったマクロ動かそうとしたらうごかねぇ・・・(;´Д`)
だれか参考になるHPでいいんでおせーてくだされ・・・
383380:01/10/19 08:52
>381

WM_ACTIVATEを引っ掛けるってことはサブクラス化ってことか・・・
どうもありがとうございます。
384デフォルトの名無しさん:01/10/19 09:34
スプレッドで、見出し行をドラッグしたり、「SHIFT」を押しながらの、
クリックで、複数行を選択した場合、最初にマウスを下ろした場所一行だけを、
アクティブにしたいのですが、うまくいきません。

まず、スプレッド自体で行選択モードにした場合は、却下されました。
それから、選択範囲内で一番上の行(または一番下の行)をアクティブにするのも却下されました。

よって、現在はマウスダウンしたときの行を保持して、
マウスアップしたとき選択範囲が複数行であれば、最初にマウスダウンしたときの行をアクティブにするという方法を考えています。

マウスダウンした時の行の保持は何ですればよいでしょうか?
よろしくお願いします。
>>384
マウスポインタの座標をスプレッドの行の高さで除算すると出るよ。
あとは、現在の先頭の行を足しとけばOK
386384:01/10/19 10:59
>385
ありがとうございます、やってみます
387デフォルトの名無しさん:01/10/19 13:46
えとですね、ボタンを押したら交互に処理が変わるように
したいです。どうしたらいんでしょう?
ボタン1つ作って、1回目押したらテキストボックスに"AAAA"
って表示して次押したら"BBBB"でその次押したらまた"AAAA"
(以後繰り返す)みたいな感じ。おしえてちょ。
388デフォルトの名無しさん:01/10/19 13:49
クラスのPublicメソッドにユーザー定義型の変数を
引数にしたいんですけど、なんか難しいこと言われて
怒られます。出来ないんでしょうか?
389デフォルトの名無しさん:01/10/19 13:50
>>387 ほらよ

Option Explicit

Private Static Sub Command1_Click()
Dim Flag As Boolean
Flag = Not Flag
IIf(Flag, Text1, Text2).Text = IIf(Flag, "AAAA", "BBBB")
End Sub
390デフォルトの名無しさん:01/10/19 13:50
>>388
出来ないYO!
>>388
classを使うがよい
392デフォルトの名無しさん:01/10/19 14:01
>>391
ユーザー定義型がどうしても使いたいんだYO!
クラスって1ファイル1クラスでしょ?
数が多いとちょっとなぁ〜。
393P介P:01/10/19 14:05
初めまして。P介Pと申します。
現在VB6で開発最中なのですが、THREED32.OCXをインストールして
SSPanel等を画面に貼り付けて使用しようとすると、
、「このコンポーネントのライセンス情報が見つかりません。デザイン環境でこの機能を使うために必要なライセンスがありません。」
というメッセージが表示されてしまいます。
THREED32.OCXを一度削除して新たに入れ直したり、
ネットで色々と解決法を探したのですが、うまく行きませんでした。
どなたかこの解決法がありましたら是非教えて下さい。
お願い致します。
394デフォルトの名無しさん:01/10/19 14:07
>>393
VB6のSSはライセンスを購入してね。
>>388
VB.NETでは渡せるらしいYO!
396デフォルトの名無しさん:01/10/19 16:21
>>389
なんか、おかしくない?
397P介P:01/10/19 16:41
>>394
どうゆことなのでしょうか?
もし良かったら教えて下さい。。。
フリーのVB6ランタイムでは駄目なのでしょうか?
でも、私以外のマシンではエラーが出てません。
何故私のマシンだけ駄目なのでしょうか?(T_T
どなたか分かる方がいましたらお願い致します。
開発環境:Win2000 VB6(SP4)
>>397
THREED32.OCXを消すときに、regsvr32とかで、レジスト削除した?
>>387

こんな感じ?

Private Sub Command1_Click()

Static flag As Boolean

flag = Not flag

If flag Then
MsgBox "aaa"
Else
MsgBox "bbb"
End If

End Sub
400P介P:01/10/19 17:36
>>398
はい。削除しました。。。
で、先程解決しましたので報告致します。
他のTHREED32.OCXがインストールされて正常に動いているマシンから、
vbctrls.regファイルをコピーして実行すると、今まで出ていた
「ライセンス〜」のメッセージが表示されなくなり、
きちんとコンポーネントを貼り付けできるようになりました。
お騒がせ致しました。
ちょっとでも考えてくれた方、本当にありがとうございました。
401デフォルトの名無しさん:01/10/19 18:04
>>400
カネハラエ!!
402デフォルトの名無しさん:01/10/19 18:05
>>399
同じやん!!>>389
403デフォルトの名無しさん:01/10/19 21:34
お聞きしたいことがあります。
会社でLAN環境で使っているパソコンがあるのですが、関係ない部署からのアクセスが多く
困っています。とりあえず、相手が自分の共有フォルダーを開けたら、自分のディスプレイ
にメッセージを表示させることとかって可能なのでしょうか?
また、相手ディスプレイにメッセージを表示とかってできるのでしょうか?
お手数ですが、お時間がありましたらお教えください。
ちなみに私のパソコンはwin98seです。相手は98か2000だと思います。
宜しくお願いします。
>>403
共有しないという選択肢はないのか?
あるいは、ネットワークをかえちまうとか...
405デフォルトの名無しさん:01/10/19 23:15
>>404
禿げしく同感
アクセス権を設定すればいいんじゃないの?
406デフォルトの名無しさん:01/10/19 23:28
これまでVBしかやったことないんだけど、
他の言語やり始めるなら何やれば入りやすいですか。
407406:01/10/19 23:32
てゆか、オモキリスレ違いだね。
よそ逝きます。メンゴ。
408403です:01/10/19 23:51
回答ありがとうございます。
いや、ただ単にVBでそういうことってできるのかなー?と思ったので。
>>404
共有しないというのは仕事上できません。
>>405
アクセス権設定しています。
開いてパス要求された状態の時にメッセージが出せて誰かが自分の共有ファイル開いていることがわかったら
いいな、と思ったので。
ネットウォッチャーじゃフォルダ開いただけじゃでないじゃないですか。
うーん、作れないかな〜?
409デフォルトの名無しさん:01/10/20 01:08
VBが標準で使えるクラスの一覧と、そのクラスが持つ
メソッド、変数、定数の一覧が見たいんですけど
(Javaで言うならJavaDocで生成されたHtmlみたいなもの)
そういうのってどこかで見れるものなんですか?
410デフォルトの名無しさん:01/10/20 11:05
MSFlexGridで質問なんすけど、
セル内の内容が数字で始まると右寄せになるんですけど
左寄せにする方法あります?
頭に数字以外いれるのは無しで・・・
411デフォルトの名無しさん:01/10/20 14:29
FixedAlignment
ってのヘルプで見て見れ。
412デフォルトの名無しさん:01/10/20 15:44
ADOを使ってORACLEにアクセスしてるプログラムで
件数が2500件超えるとワトソンが出てしまう・・・
どんな原因が考えられますか?
413デフォルトの名無しさん:01/10/20 17:16
RichTextBoxで直接RTFのコードを入力して
指定キーワードに着色したいんですけど、
うまく置換できません。選択して色変えてると遅くてたまりません。
どうすればいいですか?というかこういう処理をするときは
どうするものなんですか?
>>413
そんなにおせーの?どんな検索してんの?
415 ◆40RVTnT6 :01/10/20 19:20
http://mackoy.cool.ne.jp/
↑みたいなファイルの読み込みはどうやるんですか?マジ初心者なんですけど。
>>415
具体的かつ簡潔に述べよ。
417デフォルトの名無しさん:01/10/20 21:33
>>411
ありがとございます!!!!!
出来ました。感謝感謝感謝。
これで先へ進める!!!!
>409
定数はAPIビュアーぢゃないかな
419半分マジ、半分ネタ:01/10/21 18:38
>406

MacOSXでObjective-Cをやれ

VBをOO的に正しく進化させたら
Objective-C + InterfaceBuilder+ProjectBuildeになる(藁
420デフォルトの名無しさん:01/10/21 18:39
ListViewの、現在選択されている場所を数値で返してほしいんですが、
どうすればいいんでしょうか。
普通のListBoxでいう、ListIndexプロパティみたいなものが欲しいんですが。
421420:01/10/21 18:53
うーん、登録アイテム数でループ回してSelectedプロパティがTrueなところ探したらできました。
まあこれでも動くんですが、なんかもっと効率のいい方法はないんでしょうか。
422デフォルトの名無しさん:01/10/21 20:03
VBをやろうと思って、VB6.0proを買おうと思うんですけど、
もうすぐver7.0が出るって事はないですよね?初心者な質問でスマソ。
あと、初学者にわかりやすい入門書があったら出版社名だけでもいい
ので教えてください。教えて君ですみません
>>420
VB素人なんではずしてるかもしれないけど、ListViewにLVM_GETNEXTITEMメッセージを
送って問い合わせることはできないのですか。
424422:01/10/21 21:08
すいません。見つけました。
VB.NET(日本語版)2002年第一四半期発売ですね。
>>424
2002年第一四半期っていつ?
426デフォルトの名無しさん:01/10/21 23:39
VBAネタかつ、超初心者で申し訳ないんですが
Excelでワークシートを追加するときに同名のシートがあれば
削除したいのですが、このワークシートの有無を確認するのは
どうすればいいのでしょうか?
427名無しさん:01/10/22 00:22
あー、もうどうだっていいよ。
日本語名使えるんだから、
Function ワークシートが存在する?() As Bool
って関数作れや。>M$
429破壊伍長:01/10/22 10:48
Range(Cells(1, 9), Cells(105, 11)).Select: Selection.ClearContents
Call 実験題目などの表示実験3: '-----既表示のものを消去と実験題目などの表示-----
' -----プログラム本体-------------------------------------------------

Dim x As String: Dim i As Integer: '-----変数型の宣言-----
i = 0: Epc = 10 ^ (-6): Pi = 3.14592654: '-----初期値の設定-----

' -----初期値x0およびx1を入力・表示-----
Cells(3, 9).Select: xL = InputBox("初期値x0の値を入力せよ。"): ActiveCell.FormulaR1C1 = xL
Cells(3, 10).Select: xU = InputBox("初期値x1の値を入力せよ。"): ActiveCell.FormulaR1C1 = xU
Range(Cells(3, 9), Cells(3, 10)).Select: Selection.NumberFormatLocal = "0.00_"
xs = xL: 関数fx xs, fxs, Pi: yL = fxs: xs = xU: 関数fx xs, fxs, Pi: yU = fxs
' -----変数x値と関数f(x)値の取得(計算)の繰り返し、途中経過の出力(セルへの表示)-----
Do: i = i + 1: xs0 = xs: Cells(4 + i, 9).Select: ActiveCell.FormulaR1C1 = i
変数x xL, xU, yL, yU, xs: Cells(4 + i, 10).Select: ActiveCell.FormulaR1C1 = xs
関数fx xs, fxs, Pi: Cells(4 + i, 11).Select: ActiveCell.FormulaR1C1 = fxs
Range(Cells(4 + i, 10), Cells(4 + i, 11)).Select: Selection.NumberFormatLocal = "0.000000_"
If fxs * yL < 0 Then
xU = xs: yU = fxs
Else
xL = xs: yL = fxs
End If
Loop Until Abs(xs - xs0) = Epc Or Abs(xs - xs0) < Epc Or i = 100

xs = Round(xs, 6): x = CStr(i) + "回の繰り返し計算により、x=" + CStr(xs) + "が得られました。"
Cells(5 + 1, 9).Select: ActiveCell.FormulaR1C1 = x
・・・・・・・・・
↑のようにプログラミングしたのですが、
「実行時エラー'1004'RangeクラスのNumberFormatLocalプロパティを設定できません 」
というのが出てきます。理由がわからないので誰か教えて下さい。お願いします。
プログラム以前の問題かもしれなのですがご指導ください。
VB5でWinsock.ocxを使ったチャットソフトを組もうとしたのですが
クライアント側から接続要求してもサーバ側のイベントが発生しません。

サーバ側−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Private Sub Form_Load()

Winsock1.LocalPort = 2000
Winsock1.Listen

End Sub
'接続要求アリ
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)

If Winsock1.State <> sckClosed Then Winsock1.Close
text3.text="接続しました。"
Winsock1.Accept requestID

End Sub

クライアント側−−−−−−−−−−−−−−−−−−−−−−−−−−−
Private Sub Command1_Click()
Winsock1.Close
Winsock1.RemoteHost = "127.0.0.1"
Winsock1.RemotePort = 2000
Winsock1.Connect
End Sub

上記のようなコードです。必要な設定などありましたらご指導お願いします。
(PC間はPciのUSBリンクケーブルで直接つないでいます。)
431デフォルトの名無しさん:01/10/22 13:18
モードレスで開いたフォームが、今開いているかどうかを
調べる方法がわからないのですが、どうすればいいでしょうか?
>>429
まず先に、その汚ねぇソースを何とかしろや。
433 :01/10/22 13:52
スプレッドのシート印刷での用紙サイズの指定方法を探しています。
用紙の方向はPrintOrientationで指定できるのですが、
用紙のサイズをどこで指定したらよいのかわかりません。
教えてちゃんですみませんが、よろしくおねがいします。
434デフォルトの名無しさん:01/10/22 15:35
テキストボックスのスクロールバーの色を
変えることはできませんかね?
>>434
何で変える必要があるん?
ドキュソなUIにでもするの?(藁

...画面のプロパティいぢればなんとかなるよ、一応。
436デフォルトの名無しさん:01/10/22 17:59
>>435
そうです(藁
友人の子供用にかわいく見せる物をプレゼントするのに
やりたいもので(汗
画面のプロパティならいけますか。ありがとうございました。
スクロール バーだけは色変更できないよー(´Д`;)
438デフォルトの名無しさん:01/10/22 22:43
十進プログラムで振り子運動のプログラムってどうつくるかわかります?
>>438
理科を勉強
440デフォルトの名無しさん:01/10/23 08:25
リストボックスのアイテムを右クリックで選択するには、
どうしたらいいのでしょうか?
441デフォルトの名無しさん:01/10/23 09:52
他のフォームが開いているかどうかわかる方法ありませんか?
>>441
FindWindowExで探す。
443デフォルトの名無しさん:01/10/23 10:40
>>442
ありがとうございますです。
このAPIへの引数がいまいちわからないのですが
例えば、フォームのオブジェクト名が"formMaster"だった場合
どうなるのでしょう?
hWnd = FindWindowEx(0, 0, vbNullString, "frmMaster")
でいいですか?
>>438
 変位を X としよう
 力は F=a*Xで働くとする(aは負数)
 速度 Vは 力を積分しよう    V=V+a*X*dt
 変位 Xは 速度を積分しよう X=X+V*dt

dtを0.001 くらいにして、これをループさせてみよう
445443:01/10/23 10:46
自己レスです。
できました。ありがとうございました。
hWnd = FindWindowEx(0, Me.hwnd, vbNullString, "マスタメンテ")
446デフォルトの名無しさん:01/10/23 11:09
透明なテキストボックスできますでしょうか?
後ろが透けて見えるものです。
multilineで。
>>446
サブクラス化するかowner drawすれ。
448デフォルトの名無しさん:01/10/23 11:39
VB5でoo4oでOracleに接続して、DBグリッドコントロールにデータを表示させたいのですが、
データの表示のさせ方をご存知の方がいましたらご教授願えないでしょうか。
書籍とI-NETを調べてみたのですが、これ、という答えが見つからなくて。
449デフォルトの名無しさん:01/10/23 12:49
>>447
ふむふむ。そのキーワードで検索してがんばってみます。
ありがとうございました〜。
すいません。質問です。
getFilesizeでファイルサイズを取得したいんですが
FileSizeLowに-1が返ってきます。
CreateFileの引数はちゃんと渡してるはずなんですが。
451デフォルトの名無しさん:01/10/23 18:08
質問です。
APIのStretchBltを使っているんですが、拡大表示すると何も表示されません
一昨日までは正しく表示されたのに
何故でしょうか?
452デフォルトの名無しさん:01/10/24 12:26
ららら・ら〜♪ ららら・ら〜♪
>>450
質問する前に hFile != NULL を確認しとけ。
GetFileSize の後に GetLastError() も調べとけ。

>>451
何か変えましたか? (画像、OS、ウィルスを入れたとか)
Cで作成したDLLに2次元配列を持って行きたいんですが、
どうすればよいのでしょうか?

やっぱポインタになってしまうの?
455デフォルトの名無しさん:01/10/24 16:30
どなたかVB6.0でのINETコントロールについて教えていただけないでしょうか。

現在webの決まった場所を巡回して内容をファイルに落とすプログラムを作っています。
ところが、そこはcookieを使用しないと、cgiに、はじかれてしまう事がわかりました。
色々な所を探した結果、INETコントロールはcookie対応というところまでは分かったのですが、
MSDNにはサーバー側のリファレンスしかありません。クライアント側ではcookieに対応していない
のでしょうか?もし対応しているならどのようにセットしたら良いのでしょうか。

よろしくお願いします。
456451:01/10/24 19:12
>>453
要らないアプリを一気にアンインストールして
c:\Windows\Tempフォルダにあったでかいファイル(ACE解凍時にできたもの)を削除したくらいです。

それと何故かWinAmpをつけながらやるとしっかり表示されました。

BitBltと、サイズ変更しないStretchBlt(←意味なし)は表示されるんですが…。
457デフォルトの名無しさん:01/10/24 19:21
UNIXのkillをしたいんですけどどうすればいいのでしょうか?
プロセスIDは
<job>
<REFERENCE object="WbemScripting.SWbemLocator"/>
<script Language="vbscript">
 set objService = getobject("winmgmts:")
 for each Process in objService.InstancesOf("Win32_process")
WScript.echo Process.Name & vbTab & Process.processid
 Next
</script>
</job>
とわかったんですが、このプロセスを消したいんです。

よろしくお願いします。
>>456
画面と画像は何色でしょう?
コードもお願いします。
459451:01/10/24 19:39
>458
画面は16Bitで画像は24Bitです。
だからでしょうか?

Sub DrawEnemy(n As Integer, s As Integer, P As Integer, PX As Integer, PY As Integer)
Dim EneNO As Integer, Size As Integer, Pause As Integer, PosX As Integer, PosY As Integer
NO = n
Size = s
Pause = P
PosX = PX
PosY = PY

StretchBlt Form1.Picture1.hdc, Ene(NO).LeftPos + PosX, Ene(NO).TopPos + PosY, Ene(NO).XSize * Size, Ene(NO).YSize * Size, Form1.Mons.hdc, 32, 32 * Pause, 32, 32, vbSrcPaint
StretchBlt Form1.Picture1.hdc, Ene(NO).LeftPos + PosX, Ene(NO).TopPos + PosY, Ene(NO).XSize * Size, Ene(NO).YSize * Size, Form1.Mons.hdc, 0, 32 * Pause, 32, 32, vbSrcAnd
End Sub

↑こんなのです
ゲーム中で敵キャラを拡大するだけなんですけど
良く分からないけど、GetDeviceCaps の RASTERCAPS の RC_SCALING か?
>> 459
ビットマップをSelectObjectで選択して、
CreateCompatibleDC を呼ぶ方法を使うのかも。
(MSDN の「Scaling an Image」を検索)
詳しいことは分からないけど。
462451:01/10/24 20:58
>461
MSDN読んでもよく分からなかったんで検索したら
http://homepage1.nifty.com/CavalierLab/lab/devlop/note/bitmapobject.html
↑が出てきたんですが、これなんでしょうか?
とりあえず試してみます
463デフォルトの名無しさん:01/10/25 10:33
色数とパレットが異なるので、互換性のある DC で書かねばなるまい。

画像を拡大するサンプルがあった。「hBitmap削除のバグ」
http://www02.so-net.ne.jp/~bkenro/publish/vbapi/errata.html#P233-234

こちらは LoadBitmapModified でリソース画像を取り込み、
GetObjectして、サイズなどの情報の入ったBITMAP型を受け取っている。
ピクチャよりもリソース画像の方が高速かもしれない。
464Nin:01/10/25 11:54
SQL文でORDER BY句を指定し、データを順に読み、その都度更新を行いたい
のですが、Editの部分で『読み取り専用の結果セットです』とエラーが出て
しまいます。(SQLserverをODBC-RDOで読んでいます。)

これを回避する方法を御存知の方、教えてください。
よろしくお願いします。
>>464
とりあえずSQL文が見たいぞ!
初めましてm(_ _)m
WindowsNT4.0の環境下でVisualBasic5を用いて、FDDに挿入されたディスクが2DDか2HDかと言う判別をしたいのですが・・・やり方をご存じの方はおられないでしょうか?
最初は容量で判断しようと思ったのですが、当たり前なんですけども・・・フォーマット前の物もあるのでそれはダメでした。
公開されているAPIは一応一通り読んでみたのですが、該当する機能は見つかりませんでした。(T^T)

一部のフォーマッタでは実現している機能なので技術的に不可能ではないと思うのですが、どうなのでしょうか?
皆様よろしくお願いします。
467デフォルトの名無しさん:01/10/26 11:55
VBのツールバーのようなフォームになったり、メニューになったり
する奴はどうやったら実現できますか?
ダイアログバーをドッキング可能にしておく。
469デフォルトの名無しさん:01/10/26 17:10
VB6で、midステートメントを使って文字の置換ができるようなのですが、
元の文字よりも長くなるような置換をするにはどうすれば良いのでしょうか?
Midを使って書くと、

a=aabbcc
Mid(a,3,2)="ddd"

a="aadddcc"
になるようにしたいです。
>>469
それってReplace関数では解決しない?
なら、

Left$(a,2) + "ddd" + Right$(a,2)

では?
471デフォルトの名無しさん:01/10/26 20:07
VBAの質問してもよいでしょうか?
Accessで終了する際のイベントを拾いたんですが、
以下のような感じでとれるのかなと思いきや、できませんでした。

Public WithEvents theApp As Application
Private Sub theApp_Quit()
MsgBox "hoge"
End Sub
誰か良い方法伝授していただけないでしょうか?
環境は ACCESS 2000、 Windows 2000 です。
よろしくおねがいします。
472デフォルトの名無しさん:01/10/26 20:14
Applicationオブジェクトの
Quitメソッドを使うべし
473デフォルトの名無しさん:01/10/27 17:31
BMPをJPGに変換するフリーのOCXありませんでしょうか?
個人的に使うものなので配布ライセンスなどはいりません。
よろしくです。
>>473
DLLならVectorに転がってるの見たなぁ。
明熊なんとか、っての。
475デフォルトの名無しさん:01/10/27 18:02
>>474
ありました。これ使ってみマース
どうもでしたー
>>430

> Winsock1.RemoteHost = "127.0.0.1"
これが原因ってことは…。んなわけないか
VBのプログラム上で、自分自身のEXEファイルが置かれているパスを返してくれるような関数、及びコード記述キボン
App.Path
479デフォルトの名無しさん:01/10/29 09:25
ADOを使用してVBでPL/SQLをつかいたいのですが
できるでしょうか?
>>479
PL/SQLでコーディングしたいという意味?
それとも、PL/SQLでコーディングしたストアド
を走らせたいという意味?
前者なら不可(もしかしたら可かもしれんがオレは知らん。
後者なら可。GOOGLE辺りでサンプルコードを探せばいくらでも
出てくる。
481デフォルトの名無しさん:01/10/29 15:56
480さんありがと
後者でやってみます
482デフォルトの名無しさん:01/10/29 16:29

' FormのLoadイベント
Private Sub Form_Load()

' MSCommコントロールの初期設定
mscPort.CommPort = 1 '通信ポートの選択
mscPort.Settings = "9600,n,8,1" '通信条件の設定
mscPort.Handshaking = comRTS 'ハンドシェイクの設定
mscPort.RTSEnable = True 'Request To Send (RTS) ラインを有効にする
'ハードウェアによるハンドシェイク

mscPort.SThreshold = 1 ' 送信時スレッショルドの設定
'  1バイトごとにOnCommイベント発生
mscPort.RThreshold = 1 ' 受信時スレッショルドの設定
'  送信バッファがからになったらOnCommイベント発生

End Sub
これって制御系プログラムの設定らしいのだけど
mscPort.SThreshold = 1 からの意味がまったくわかりません!?
ほんとにわかりません。教えてください。
>>482
何故MSCommコントロールのリファレンスを読まないのですか?
484 ◆LqTeQmv2 :01/10/29 16:59
tes
485 ◆tjFCOGEI :01/10/29 16:59
\
486デフォルトの名無しさん:01/10/29 20:20
MSアクセスへの接続方法で一番速い組み合わせはなんですか?
ドライバ、プロバイダ等あげていただければ助かります。

ちなみに参考書などで速いと書かれているADO接続よりも、
実験の結果はDAOの方が速かったです。
わけわかりません。。お願いします。
487ななし:01/10/29 20:38
>ちなみに参考書などで速いと書かれているADO接続よりも、
>実験の結果はDAOの方が速かったです。

実験の失敗です。ADOが最速。
パラメータの全組合わせ結果ではADOが最速となる。
ローカルにMDBがあるという前提ならDAOだったはず
ソース探してみるわ
489デフォルトの名無しさん:01/10/30 21:50
ストーブが恋しいのでage
490デフォルトの名無しさん:01/10/31 11:26
491486:01/11/01 09:38
>>490さん
ドーモです。
488さんの言うローカルでVB以外にもASPでも平行してアプリを制作しています。
それぞれDAOとADOを使い分ける方法が良いみたいですね。

しかし、プログラムごとに接続が違うのはどうも管理しにくいですね。
接続以外にも開発や保守面など全体的に見直した方がいいかもしれません。。
492デフォルトの名無しさん:01/11/01 13:24
oracle + ADO で画像の格納をしたいのですけど
画像自体のバイナリデータをVBの変数に格納する方法はありませんか?
493超初心者の名無しさん:01/11/01 13:41
あの…ここが初心者質問スレということらしいので
質問させてもらいたいのですが、VBのソフトが
ネットで落とせると聞いたのですが、本当に
落とせるのですか???
どなたか優しい方教えてください。
>>493
VB 製のフリーソフトならいっぱいあるよ〜〜 (w
495.:01/11/01 13:44
>>493
WinMX使えば何でもタダです
496超初心者の名無しさん:01/11/01 14:03
>>494さん
>>495さん
あの、学校で来週、C++のテストがあるので勉強を
しようと思ったのですが、家のパソコンにソフトが
入ってなかったので…。
プログラムは学校の教授のHPから落とせるのですが
ソフトがなかったら、開かないですよね??
ちなみに、WinMXってなんでしょうか??
何も分からなくて、本当にごめんなさい。
497494:01/11/01 14:23
何故に C++ のテストで VB ?
498超初心者の名無しさん:01/11/01 14:39
>>497さん
すみません。間違えましたっ。
VC++でした。
私、本当におバカで・・・。
こないだCDがどこか行ってしまったので、
WinMXでVSSを落とそうとしたけど、誰も持ってなかった。
と思ってたら、MSDNでVS6.0を全部送ってきやがった。
500デフォルトの名無しさん:01/11/02 20:41
テキストボックスに読み込める容量って何KBまでですか?
70KBぐらいだとは思ったんですが・・・その限界が知りたいです。
501デフォルトの名無しさん:01/11/02 20:55
VBのForm座標系ってひょっとして腐ってませんか?
502デフォルトの名無しさん:01/11/02 21:12
>>501
・・・なんで?
503>:01/11/02 21:37
twip関連だべ
504デフォルトの名無しさん:01/11/02 23:18
twipの利点はなんですか?
いちいちScaleModeをピクセルにすんのが面倒なんですけど。
>>504
禿同
>>504
>twipの利点はなんですか?

wysiwyg
507デフォルトの名無しさん:01/11/03 10:18
VB + Oracleで組むようになったのですが
Oracleとのやり取りがサパーリです。

楽にOracleとやり取りできるクラスモジュールがないでしょうか?
>>507
ADO or OO4O
509デフォルトの名無しさん:01/11/03 16:42
設定ファイルの内容によって、表示するコントロール数を変化させていのですが、
動的にフォーム上にTextBoxやCommandButtonをつくる方法がわかりません。

最初からつくって置いとくのはなんだかなと思いましたので、お願いいたします。
>>509
コントロール配列でボタンとかを用意して、Load command1(command1.count)
とかやってほこほこ増やすんじゃ駄目?

>>500
Unicode扱いで64KBじゃなかったっけ?
Windows2000だと64KB制限は無かったような気がするけど。
>>510
うぃす。ありがとうございやす。
512509:01/11/04 09:56
>>510
できたYO! サンクス子〜 
513デフォルトの名無しさん:01/11/04 23:25
スタートアップにアプリを登録させるにはどうしたらいいのでしょうか?
やはり、WindowsのVersionを検出して、その結果によって、
スタートアップフォルダを指定すればいいのでしょうか?
514 :01/11/04 23:44
>>513
フォルダなら、SHGetSpecialFolderLocation/Path()
で取れるけど、ショートカットを作るのは面倒だよ。
515デフォルトの名無しさん:01/11/05 11:26
実行可能ファイルが格納されたパスを、その実行可能プログラムの実行時にそのプログラムで取得しようとして、
以下のようにコーディングすると、フォームが参照して開くフォルダのパスが取得されてしまい、
実行可能ファイル自体のパスを取得できないことがあります。

Private Sub Form_Load()
MyPath = CurDir$
End Sub

実行可能ファイル自体のパスを確実に取得するにはどうすればよいのでしょうか?
>>515
意味不明。
Formファイルを別のフォルダに置いてるって事?
exeにコンパイルしたら起動直後にApp.Pathで確実に取得できるけど。
517デフォルトの名無しさん:01/11/05 13:05
VBで作ったプログラムを走らせると時計が遅れるという現象が出ます。
原因と対策をご存知のかたいらっしゃますでしょうか?。
OSはWin-98とWin-MEで、6時間動かすと30分くらい遅れます。Win画面
右下の表示も遅れるのですが、パソコンを再起動すると元の正確な時間
に戻ります(つまりハードは遅れていない)。
>>517
間違ってTimeステートメントを使っちゃってるとかゆー、オチじゃあるめーな?
その走らせるプログラムって、どんな作業するソフトさ?
519517:01/11/05 13:48
私が作ったプログラムじゃないんで良く分かりません(実は私はビルダーなんで
BVも良く分からないんですが)、日付と時間は取って来てます。シリアルで他の
計測器と接続してデータロガーするプログラムです。
Timeステートメントを使うと時計が遅れるんですか?。
>>518
タスクトレイの時計も遅れているんだからこれはMSDOS時代からの仕様だぞ
RTCとは別に割り込みで時刻を管理している
原因はVBアプリで使ってるOCXに行儀の悪いやつがいて、割り込みを邪魔してるのだろう
521デフォルトの名無しさん:01/11/05 16:18
エクスプローラ上でマウスの右クリックしたらでるような
メニューを作りたいのですけど、
これはどうやったらよいのでしょうか?
>>513
レジストリに登録すれば良し。
スタートメニューのスタートアップには表示されないけど。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
ここね。
良くウイルスが住み着く(笑
レジストリの操作はAPIを使おう…。
523デフォルトの名無しさん:01/11/06 01:18
リストBOXにフォルダ名表示させて右クリックした時に
[削除]とか[リネーム]とかエクスプロラみたいにメニュー表示したいんすけど
一個ずつイベント取得しないと無理ッスか?
524デフォルトの名無しさん:01/11/06 03:13
osのプロダクトキーの取得方法があれば、教えて頂きたい。
525デフォルトの名無しさん:01/11/06 04:28
ヤツパみつかんね。
526524:01/11/06 04:49
見つけました。しんど。
>>523
(右クリック使うなら)LBItemFromPtとか使って項目を取得したあと、
ポップアップメニュー呼び出せば、いいだけじゃ?
なにが問題なん? もっと簡略化したいと?
528517:01/11/06 11:39
>>518 >>520 レスありがとうございました。何とか頑張って原因を探してみます。
VB.NETでVBAはどうなるの?
530デフォルトの名無しさん:01/11/06 16:10
以下のコードによって、プログラムが格納されたフォルダのパスを取得しようとすると、
フォームが開くフォルダのパスが取得されてしまいます。

Sub Form_Load()
MyPath = CurDir$
End Sub

プログラムが格納されたフォルダのパスをいつでも取得するにはどのようなコーディングがよいのでしょうか?
>>529
VBは切り捨てられたが、VBA(Office)まで切り捨てはしないだろう。
VBScriptとしてそのまま残るんじゃないか?
もともとマクロでしか使えないような代物だしな。<VB
>>530
App.Path

あー、激しくデジャヴ
533デフォルトの名無しさん:01/11/06 17:07
>>532
ありがとうございます。
試してみます。
534デフォルトの名無しさん:01/11/06 20:05
VBに限ったことではないのですが、複数ソーティングの考え方が知りたいです。
たとえば以下のようなテキストファイルがあったとします。
100 60
123 15
111 20
123 10
これを左の列についてソートし、123のように同じデータがあるときはさらに右の
列についてソートし、結果として以下のようなデータにしたいのです。
100 60
111 20
123 10
123 15
535534:01/11/06 20:10
また、こういったデータのソートをする際にデータは当然変数に保持したほうが
高速になるかと思いますが、たとえば100MBとかものすごく大きなデータの場合は
どのようにするのが妥当でしょうか。
途中までロードしても全体のソートにはならないし、ファイルをすこしづつ読んで
別途テンポラリファイルに書き出していると非常におそいのです。
>たとえば100MBとかものすごく大きなデータの場合は
その位のレベルだったら素直にデータベースにいれて
かき回したほうが早いと思うぞ。
537:01/11/08 05:14
すみません。Part3の存在に気が付かず、Part2に書いてしまいました。
以下転載です。
迷惑じゃなかったらメールでください。お願いします。

*******

すいませんだれかVB増強作戦がまとまったパック(バリューパックだったか?)
もってませんか?さっきHDDのパーティションきりなおしたら、まちがえてけして
しまった!
本家は消滅。
昔ミラーサイトがあったようなけどGoogleで検索してもみつからず・・・
538AA:01/11/08 11:27
Access2000 で作ったMDBファイルを
MS製品アプリがなにもはいってない、OSがNTのマシンにいれておくとき、
クライアントをVB6で作って、DBはオラクルみたいに、上のmdbにあたっち
することは可能でしょうか?
クライアント数は10です
>>534
C:>SORT /?
540534:01/11/08 12:35
DBに入れたりDOSコマンドを使ったんじゃ勉強になりません。。。
>>540
勉強だったらbogosortなんてのは?
>>537
送った、確認するように。
>>540
とりあえず、自分の思った通りにやってみたら。
まずは、そこからでしょ。
544>540:01/11/08 13:07
ソートで検索すれば?
545:01/11/08 14:28
542さん、本当にありがとうございます。
残念ながらまだ届いていないのですが…
もしご迷惑でなかったら再送していただけるでしょうか。すみません。
546542:01/11/08 14:41
>>545
送信エラーも出ていないのでもう少し待ってみては?
AirH"で1.8Mのメール送るのは結構時間かかるのよ(苦笑)
だめなら今夜家帰ってから再送予定。
>>538
> クライアントをVB6で作って、DBはオラクルみたいに、上のmdbにあたっち
> することは可能でしょうか?
可能、というかネットワーク上のファイルにアクセスするだけで実行は
各クライアント上のJetが行うのだからネットワーク分遅いだけ。
ADO使っているんだろうから接続文字列にネットワークパス入れてテストしてみれ

> クライアント数は10です
素直にMSDE使えば?
多分ACCESSをネットワークで運用するよりは幸せになれる筈。
548AA:01/11/08 15:45
Accessでコーディングするには、
dim db as database
dim rs as recorset
set db = currentdb
set rs = db.openrecordset("Table1",dbopendynaset)

とできます。
VBからAccessmdbにアタッチするには、\\test\a.mdb
の場所をVBにおしてやり、その中のtable1 をコーディングしなければなりません。
a.mdb を VBに教えてやるにはどうすればいいでしょうか?
549AA:01/11/08 15:48
548ですが、VBでDAOを使ってAccess2000mdb操作したいのです
550みか:01/11/08 16:09
はじましてです。VB初心者です。
現在、日記帳を作成しています。Labelに日にち、TextBoxに日記、
を入れようと思います。保存データを
2001/11/8
今日は○○○○○○でした。
(改行)
2001/11/9
今日は△△△△△△でした。
(改行)
  ・
  ・
  ・
という風にしました。これをLabelとTextBoxに読み込むには
どうしたらいいのでしょうか?○日のデータは○日に、という
感じにしたいところが、よくわかりません。
551みか:01/11/08 16:11

ちなみに表示画面に進むボタンと戻るボタンを作って、次の日
と、前の日の表示が出来るようにしてあります。
552デフォルトの名無しさん:01/11/08 16:20
変数を日本語で書いてる参考書を買って来たんですがこれは駄目ですか?
553みか:01/11/08 16:38
おしえてぇ〜age
>>550
初心者過ぎです。逝ってください。
このスレは質問者数と回答者数のバランスが崩れて崩壊しています。
556シロー:01/11/08 16:50
はじめまして。よろしくお願いします。

VBで、sendkeys を使ったプログラムを書いていますが、
「半角/全角」を操作する方法がわかりません。sendkeys では無理でしょうか。
キーボードの「Alt+半角/全角」 以外で、任意に半角/全角の切り替えをする方法を
教えて下さい。お願いします。
557デフォルトの名無しさん:01/11/08 16:52
>>550
まずそのデータ構造やめといたほうがいい。
別に日記に改行入れないならいいけど。
ま、適当にInStrで改行コードを検索して配列にでもぶち込んでみましょう。
こーいうのは自分で考えないとダメです。
558デフォルトの名無しさん:01/11/08 16:53
>>549
こういったこと?
Private Sub Form_Load()
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase("\\fooserver\d\db\test.mdb")
Set rs = db.OpenRecordset("select * from 得意先 where 得意先CD='00200'", dbOpenDynaset, dbReadOnly)
Text1.Text = rs.Fields("得意先CD").Value
Text2.Text = rs.Fields("得意先名").Value
rs.Close
db.Close
End Sub
一つ回答しないと、一つ質問できないようなシステムにできんもんかのぉ
560547:01/11/08 16:54
↑は俺
しかもsage忘れ
561デフォルトの名無しさん:01/11/08 16:55
>>556
ttp://www.vbvbvb.com/jp/gtips/1001/gImmSetConversionStatusConversion.html
でも参考に。これぐらい自分で検索しては?
562547:01/11/08 16:55
ズレた...もういいや(藁
563シロー:01/11/08 17:00
>>561
すいません、ありがとうございます。
>>553
CSVか固定長テキストで1日1行に保存しとけばよかったのに・・・
データってTXTファイルだよね?
fileNo = FreeFile
Open openfile For Input As fileNo
Do Until EOF(fileNo)
Line Input #fileNo, tmpString
if tmpstring = 表示したい日 then
Label.caption = tmpstring
Line Input #fileNo, tmpString
TextBox.Text = tmpstring
Exit Do
End IF
Loop
Close fileNo
こんなんでどうだろうか。
日記の中身が複数行ならtmpstringが""になるまでループを回す。
でも行数が多いと効率悪いね。それにずれてたりしたらやだね。
>>550
楽してDB使え。
Jet(ACCESSと同じDBエンジン)なら標準で使える。
あくまでテキストなら CSV(タブ区切りでも良いが)にすると
split関数で簡単に日付部と日記本文とに分けられる。

データ構造は例えばこんなの

2001/11/06,ユーザーのHDDがあぼ〜ん
2001/11/07,漸く仕様が出始める、月末納期ってマジですか(T_T)
2001/11/08,現実逃避にVBスレを見る。ちょっとコメント。
566564:01/11/08 17:08
レス中に一気にレスがついてた・・・
しかも半角スペースは出せないんだった・・・
質問の内容からして解答を理解してもらえるのかが不安だ。
567564:01/11/08 17:10
しかも大文字小文字がバラバラ
568デフォルトの名無しさん:01/11/08 17:22
ところで、VBのエディタのフォントをOsakaにすると イイ(・∀・)! よ。
569デフォルトの名無しさん:01/11/08 22:57
Accessの表形式のFormをVBで実現するのは無理でしょうか?
ちなみに、VB5(SP3)

DBGridは全然ダメでした。2段表示とかもできないし
>569
素直にサードパーティのOCXを使った方が幸せになれると思われ。
標準のコントロールを使って自前でグリッド作るという手もあるが...
571:01/11/09 02:41
542 さんへ

無事受信、マージできました。
このたびはいろいろとありがとうございます。
お手数をかけて申し訳ありませんでした。
572デフォルトの名無しさん:01/11/09 06:29
はじめまして。
ええと。VBで、データベース内検索を作りたいんですけど、
半角と全角と大文字と小文字(a、A、a、A)を同一視って出来ないっすか?

>>568
Win環境でOsaka使えるようになたの?
VB増強作戦Googleキャッシュ、WebArchive探しても無いっすね
本とか出てるんでしょうか?
574超初心者:01/11/09 08:18
Labelが1〜9まであるのですが(コントロール配列ではない)
それぞれのcaptionの中身をfor文か何かで一気に見たいのですが
どうすればよいのでしょうか?
575542:01/11/09 09:27
>>571
よかった(^^ゞ
結構需要あるんかなぁ>VB増強作戦の補完
WinMX辺りではこういったのは引っかからない?
>>572
StrConv関数を使用すると幸せになれるかも。
577デフォルトの名無しさん:01/11/09 09:48
>>574
検索対象に含めたいコントロールのTAGプロパティに"1"をセット(まぁ別に何でも良い)
でこんな風に

Private Sub Command1_Click()
Dim ctl As Control
For Each ctl In Form1.Controls
If ctl.Tag = "1" Then
Debug.Print ctl & Now
End If
Next
End Sub
578577:01/11/09 10:03
>Debug.Print ctl & Now
あ、Nowいらねー。
579みか:01/11/09 10:28
557さん>返答ありがとうございます。いろいろ考えたんですけど混乱してしまって。
564さん>返答ありがとうございます。鬱にならないで下さい。うれしかったです。
565さん>返答ありがとうございます。DB,Jetを使ったことがないもので・・・。(恥
問題は、なんとか解決しました。一応VBの練習のためにカレンダーと
合わせて作成していたのでとても勉強になりました。
みなさんアドバイスありがとうございました。
580564:01/11/09 11:02
>>579
VB勉強するなら一緒にJetとかDBも勉強した方がいいよ。
他にも色々な方法があるけど
どういう状況ではどういう方法がベストかという事を選べるようになってね。
581みか:01/11/09 11:09
564さん>わかりました。頑張ります!
582デフォルトの名無しさん:01/11/09 11:13
質問です。
If 式1 Or 式2 then
というようなコードを書きたいのですが
式1がTrueなら式2はエラーになるようになっています。
具体例としては
式1:レコードセットがEOFになっている
または
式2:あるフィールドがある値になっている
時に分岐させたいのです。
Cとかだったら1式が真なら2式は評価されなかったと思うのですが
VBでやると2つとも評価されてしまいます。
これを防ぐ手は有りませんか?
583デフォルトの名無しさん:01/11/09 11:20
VBの開発環境というか画面なんですけど、あれってバラバラにならない
ものですか?
メニューバーと各ツール用のブラウザやは分離できるんですけど、メニ
ューバーとコードを入力する画面がどうしても分離できません。
コード入力画面もひとつのパレットのように扱いたいのです。
暇を見つけては設定とかを覗いてるんですが、実現できません。
つまらない質問ですが、ご存知の方おられましたらお教えください。
>580
最終目標はVBがダメだということに気づくことですか?w

>582
無理です。仕様です。
諦めて処理の軽いものから評価しましょう。
>>583
「ツール」→「オプション」→「詳細設定」の"SDI開発環境"をチェック
>>585
スマン、間違えた。
587582:01/11/09 12:17
>>584
ありがとうございます。
やっぱりそうなんですか。
同じ処理させたいならGoto文なんかで飛ばすしかないようですね。
588580:01/11/09 12:27
>>584
>最終目標はVBがダメだということに気づくことですか?w
って書こうと思ったけど止めたのに・・・書いてるとこ見てた?(藁
業務アプリのフロントエンドとかだったら
Excelとかとの連携も楽だし、VBでもいいんじゃないかな。
というか他の使い道は自分はしないもので・・・
>>581
趣味ならDBつかって家計簿とかも素敵やん。
漏れは最初勉強がてら作ってみた。
作るより使いつづける(毎日つける)方が面倒で難しかった。
589583:01/11/09 14:15
>>585

出来ました。ありがとうございます。
狭い画面で使用しているもので、これでスッキリしました。
本当にありがとうございます。
590デフォルトの名無しさん:01/11/09 15:11
>>570

 え?何処かそういうOCXだしてるんですか?
 もし知ってたら、メーカ教えてください
591570じゃないが:01/11/09 15:40
>>590
BOC(今度社名変わるな)のTrueDBGridなんてのもある。
試用版ダウンロード等があり事前に評価できる。
他社コントロール等の情報はVBマガジンを購読せよ。

BOCのHP
http://www.boc.co.jp/
592AA:01/11/09 15:56
558
thank you
593:01/11/09 15:55
どうやら WINMX 上にもないみたいです。
貴重なファイル、ありがとうございました。
594542:01/11/09 17:38
>>593
わざわざ探してくれたのね(^^ゞスマン
>>574
>>577の方法でもいいけど、Nameプロパティ使った方がスマートかも。

Private Sub Command1_Click()

 Dim ctl As Control
 For Each ctl In Form1.Controls
  If ctl.Name Like "Label[1-9]" Then
   Debug.Print ctl.Caption
  End If
 Next

End Sub
VBで、しかも適切にエラー処理をしているにもかかわらず
エラーが出て、異常終了してしまいます。
しかもアプリケーションログを書きこんでいますっていうダイアログが
でてきてしまいます。
これって一体どういう時に起こるものなのですかねぇ。
ちなみにウインドウのフック、アンフックをつかってCallWindowProcで
イベントを拾っています。
597デフォルトの名無しさん:01/11/12 13:28
新スレ立てるバカが多いのであげ。
598デフォルトの名無しさん:01/11/12 13:31
VBのexeで返り値を返すことってできますか?
できるとしたらその方法は?
599デフォルトの名無しさん:01/11/12 14:36
ACCESS 2.0です。以前は97を使っていたのでてこずっています。
レポート上のテキストボックス"項番1"〜"項番18"まで、RECORDSETから値の代入を
行いたいのですが、下のような文では上手くいきません。
Do Until Myset.eof
a = a + 1
Reports![送品案内状]!([項番]&a) = Myset!項番
Myset.MoveNext
Loop

([項番]&a)の内容を"項番1"〜"項番18"まで変化させたいのですが。
どなたか御教授願います。
600デフォルトの名無しさん:01/11/12 15:00
コードが長くて恐縮ですが、これを実行して生成されるf1.tmp〜fn.tmpとfiles.tmpは、
Shell関数で呼び出して実行するjoinfls.exeで読み取るはずですが、
読み取られません。
joinfils.exe自体は実行されてるのに、このコードを実行中は読み取られないのです。
f1.tmp〜fn.tmpとfiles.tmpの生成後にExplorerでjoinfls.exeをダブルクリックすると
正常に読み取られます。
実行時に読み取られるようにするには、どうすればよいのでしょうか?

Private Sub Command1_Click()
'結合するファイル名をExcelから読んでfiles.tmpに書き込む
Open AppPath & "\files.tmp" For Output As #1
nofiles = 1
FileName = ExcelBook.Worksheets("Sheet1").Cells(nofiles, 1).Value
Do While FileName <> ""
Print #1, FileName
nofiles = nofiles + 1
FileName = ExcelBook.Worksheets("Sheet1").Cells(nofiles, 1).Value
Loop
Close #1

'結合するファイルをfn.tmpとしてカレントディレクトリレクトにコピーする
Set MyFile = CreateObject("Scripting.FileSystemObject")
nofiles = 1
FileName = ExcelBook.Worksheets("Sheet1").Cells(nofiles, 1).Value
Do While FileName <> ""
FullPath = AppPath & "\f" & nofiles & ".tmp"
Set f = MyFile.GetFile(SrcPath & "\" & FileName)
f.Copy FullPath
nofiles = nofiles + 1
FileName = ExcelBook.Worksheets("Sheet1").Cells(nofiles, 1).Value
Loop
ExcelObject.quit
Set ExcelObject = Nothing

'別のプログラムによりファイルを読み取ろうとするが、読まれない(実行はする)
RetVal = Shell(AppPath & "\Joinfls.exe")
End
End Sub
601デフォルトの名無しさん:01/11/12 15:33
>>599
600のFullNameでも同様のことをしていますが
Dim Koban as String
Do while a < 18
Koban = "項番" & a
a = a + 1
Loop
ではいかかでしょうか?600の質問者より
602599:01/11/12 15:58
>601 ありがとうございます。普通に考えればそれでよさそうなものですが
Reports![送品案内状]!変数 =Myset!項番
とすると、プログラム上変数をテキストボックスの名前として扱ってるみたいなんですよね。
601さんの例だと koban です。変数の中身を使用したいのですが・・・。
603デフォルトの名無しさん:01/11/12 20:06
フォームの中にフォームは入れれないのですか?
604デフォルトの名無しさん:01/11/12 20:53
msdn ライブラリの最新版をハードディスクにインストールしたいのですが、
有料のサブスクリプションプログラムに入るくらいしか方法はないのでしょうか?
http://www.asia.microsoft.com/japan/developer/library/default.asp
を見れば充分とも考えられますが、営業所では持ち込みマシンは LAN に
入れてくれないんです(泣)。

H"のつなぎ放題が一番現実的な解なのかなぁ
605デフォルトの名無しさん:01/11/12 21:00
>>603
MDI
>>596
>VBで、しかも適切にエラー処理をしているにもかかわらず
>エラーが出て、異常終了してしまいます。

明らかにAPIを誤用したときの症状。
引数の型違いとかだとVBのエラー処理に関係なくメモリ内容をぶっ壊すよ。
生兵法は怪我の元だからちゃんとした参考書読もう。
607デフォルトの名無しさん:01/11/13 13:21
Microsoft Internet ControlsのWebBrowserを使って
現在表示しているページのソースを
テキストボックスに表示する事は出来ますでしょうか?

WININETを使ってやるしかないのかな
Text1.Text = WebBrowser.Document.body.parentelement.innerhtml
で表示されぬかえ?
ウォッチと井ミディエイトで調べただけなので、違ってたらスマソ
>>604
それが良いかと。俺はそうしているよ。
*ついで*に2chの巡回も出来るしgoogleも使えるしね。
610デフォルトの名無しさん:01/11/13 14:39
従来のファイル操作から、FSOを使用する方法にプログラムを書き換える
メリットはありますか
色々試してみたところ、速度的にはまったく変わらないようですし
まあFSOはAPIレスで色々なファイルなどの情報を得られるんですが
わざわざ書き換えてまで使うほどのものでしょうか。
時期VerではFSOしか使えなくなるなら話は別ですが・・・
>>610
わざわざ書き換えてまで使用するモンでもないような...
これから作るプログラムでは積極的に使用する様にしてるけど
(コード書くのが楽なんで)
612604:01/11/13 21:02
>>609 どうもです。
ドキュメントの可搬性ではオープンソース系の方が優れているかなぁ(PHP 最高)
613613:01/11/13 22:57
VBはじめて2週間の者ですが質問です。
フォームの中にテキストボックスを入れて、そのテキストボックスが
フォーム上自由にドラッグドロップで移動できるようなプログラミングは
可能でしょうか?
DRAGモードプロパティを「自動」に設定するところまでは分かったのですが、
それからまるで進みません。
ご存じの方ぜひ教えてください。
614デフォルトの名無しさん:01/11/13 23:12
PL/SQLでHTMLを作成するプログラムでプルダウンメニューを
作りたいときに以下のような感じでその部分のソースを
書いてるんですがコンパイルするとハングしてしまいます。
選択項目が5行以内だとうまくコンパイルできるのですが
5行以上だとうまくコンパイルできません。
SETする文字列(又は行数)に長さの制限とかあるのでしょうか?
わからんです・・・。
この辺りのこととか詳しく解説してあるHPってないんでしょうか?
Webアプリケーション開発系のページさがしたけどみつからなくって・・・。

────────────────────────
htf.formSelectOpen('str', '題目');
htf.formSelectOption('', 'select', 'VALUE="A"');
htf.formSelectOption('1:長めの文字列1', null, 'VALUE="B"');
htf.formSelectOption('2:長めの文字列2', null, 'VALUE="C"');
htf.formSelectOption('3:長めの文字列3', null, 'VALUE="D"');
htf.formSelectOption('4:長めの文字列4', null, 'VALUE="E"');
htf.formSelectOption('5:長めの文字列5', null, 'VALUE="F"');
htf.formSelectClose;
615:01/11/13 23:13
スレ間違えました
すいません
616 :01/11/13 23:30
>>614
マルチポスト禁止
>>614
ドラッグドロップで「位置」を動かすこととに
Dragプロパティは使えねぇよ。
MouseDown/MouseMoveイベントと
Moveメソッド使って自分で制御するしかないな。

Private mTextBoxPosX As Long
Private mTextBoxPosY As Long

Private Sub Text1_MouseDown( ...略
  If Button = vbLeftButton Then
    mTextBoxPosX = X
    mTextBoxPosY = Y
  End If
End Sub
Private Sub Text1_MouseMove( ...略
  If Button = vbLeftButton Then
    With Text1
      .Move .Left + X - mTextBoxPosX, _
      .Top + Y - mTextBoxPosY
    End With
  End If
End Sub

マウスで文字選択はできなくなるし
反感買うだけのインターフェースになると思うけどな。
親の遺言でどうしてもそうしたいなら止めないけど。
618デフォルトの名無しさん:01/11/14 01:42
Private Sub Command1_Click()
Dim a, b As Long
a = 2
b = 1
Call KK(a, b)
End Sub

Private Sub KK(ByRef P As Long, ByRef Q As Long)
Dim i As Long
If P > Q Then
i = Q
Q = P
P = i
End If
End Sub
引数の方が一致しないと言われます。
>>618
TypeName 使って a と b の型を見てみな。
620618:01/11/14 01:52
integerになってますね。
うーむ
621ヒントその2:01/11/14 02:00
>>618=620
a = "ABC" ってやってみ。
622618:01/11/14 02:16
Private Sub Command2_Click()
Dim a As Integer, b As Integer
a = 900
b = 400
Call TestSub_ByRef(a, b)
Debug.Print a, b
End Sub

Sub TestSub_ByRef(ByRef m As Integer, ByRef n As Integer)
m = 100
n = 200
End Sub
ならエラーが出ないようです。
ウーム。。。
623618:01/11/14 02:21
できたYO
Dim a As Long, b As Long
だね。
いままでずっと間違えてたYO。。。
624デフォルトの名無しさん:01/11/14 03:48
Randomize
Do
SavePicture Me.Image,"C:\" & Rnd & ".bmp"
DoEvents
Loop
625デフォルトの名無しさん:01/11/14 06:26
初心者です。
Classってのを昨日知ったんですけど、やってみても全然ダメで・・・。
詳しく書かれたWebサイトか書籍ご存じないでしょうか。
ヘルプ
628デフォルトの名無しさん:01/11/14 12:03
>>608
返答遅れてすみません。出来そうなんですが・・・
ローカルにApacheを立ててVBで以下のコードのみ書いて実行したのですが、
"オブジェクト変数またはWithブロック変数が設定されていません。"
といわれておちてしまいます。何がいけないのでしょう?
デバッグ押して開始押すとそのまま実行されるし・・・

Dim strHTML As String
Private Sub Form_Load()
WebBrowser1.Navigate2 "http://127.0.0.1/"
Text1.Text = WebBrowser1.Document.body.parentelement.innerhtml
End Sub
629608:01/11/14 13:49
>>628
それはForm_Loadイベントの発生時点ではHTMLが開き終わって無いからだよん
開き終わって無い=DocumentオブジェクトかBodyオブジェクトが生成されて無い
って事になるんだな。どっちなのかは調べてみないとわからんけど(ぉ

開いたページのソースを、すぐに開く必要がないなら、FormにCommandButtonでも
貼り付けて、そこに「Text1.text 〜」を書くがよろしぃかと。

開いたHTMLのソースを直ちに表示させたいのなら、WebBrowserコントロールの
「ページを開き終わったイベント」の中で表示させるべし!
どのイベントなのかは、イベント一覧見ればわかるよね、きっと
630608:01/11/14 14:03
>>629に追加

Document.body.parentElement.innerHTML
の部分ですが、他にも色々な書き方があるみたいですね・・・
イパーイありすぎてヲチではもう何が何やら(w

とりあえず、一番単純な表記だと
Document.activeElement.innerHTML
かな?ただ、これだとフレームの中のHTMLのソースは取れ無さそう
631デフォルトの名無しさん:01/11/14 14:08
複数のフォームを一枚の紙に印刷したいんですけど、
うまい方法がわかりません。

例えば、A4の紙を上下で分けて、上には宛名、
下には本文を印刷します。
(宛名と本文のフォームが分かれています。)

2回印刷すればできますが、これを1発で済ます方法はないものでしょうか?
>631
よくわからんが、それらの項目をまとめたフォームを
印刷用として作っておけばいいだけの話?
というより素直に帳票ツール使ったほうがヨイのでわ...
633デフォルトの名無しさん:01/11/14 15:11
Accessのmdbファイルと言うのはデータを何行まで格納できるのですか
634デフォルトの名無しさん:01/11/14 15:26
アクセスのデータベースを使用していて、数値の入った2つの列から
それぞれ最大の値を取得するにはどうしたらいいでしょうか。

たとえば以下のようなデータがあってここからData1の中で最大のものと
Data2の中で最大のものを取得したいです。
Data1 Data2
51  65
2  78
60  13
.   .
.   .

SQLなどで簡単にそれだけを
抜き出せるのかなとも思いますが、よくわかりません。
>>633
何行っていうのが「フィールド内に」なのか「レコード数」なのか
何なのかわからないが、

[Microsoft Access Help]-[キーワード]タブ
「サイズ, 制限」
から調べろ!

#これくらいは自分で調べられるようにしとけや( ゚Д゚)ゴルァ!
#これを見つけるまで5分もかからなかったぞ( ゚Д゚)ゴルァ!
#意味取り違えてたらスマソだ( ゚Д゚)ゴルァ!
>>634

SELECT MAX0(table1.Data1),MAX(table1Ddata2) FROM table1;

ok?■
>>634
グループ関数を使え。後は自分で調べな。
WebProg板で聞いたほうがいいんじゃないの?
>>638
なぜ?
640631:01/11/14 17:03
>>632
レスありがとうございます。

わかりにくい文でスミマセンm(_ _)m
1つのコマンドボタンで、2つのフォームを同じ紙に印刷したいって事なんです。
>>631
PrintFormメソッドつかてるなら、
PaintPictureメソッドでobjectを1コ1コ描画しる(文字列だけなら
Printメソド)でどう?
ってか>>632に禿同。
642631:01/11/14 20:33
>>641
ありがとうございます。早速試してみます。

私も個人的には>>632に同意なんですけど、上の方が・・・。
今回のが一段落したら作り替えてやろうと思います。
>>630
608殿
親切丁寧にありがとうございます。
DocumentCompleteですね。
ちゃんと表示出来ました。感謝感謝です。
644デフォルトの名無しさん:01/11/14 23:28
VBのフォーム上で台形を描画して、その中を塗り潰したいんですが
どうしたらいいでしょうか。本当に切実に悩んでます。
645デフォルトの名無しさん:01/11/15 00:51
>>644
Polygon APIしたあとにFloodFillEx APIしてみると吉。
646デフォルトの名無しさん:01/11/15 10:13
Visual Studio InstallerでVBのインストーラを作って配布しています。
ソフトのバージョンが上がり、再度インストーラのパックを作ってそれを
使って再インストールしても、インストールは正常にできるのにソフトは
従来のバージョンのままでVerUPされませんでした。
一旦アンインストールしてから、VerUPしたインストーラで入れなおせば
できるんですが、これでは非常に面倒です。
なんとかならないでしょうか?
647デフォルトの名無しさん:01/11/15 11:14
VB4で、配列をソートする関数を作ったんですが、
比較関数をCなどの言語の様に分離できますか?
(generic化したい)
関数のポインタに当たる機構が無い様な気がするのですが、、
648デフォルトの名無しさん:01/11/15 11:23
(I can read Japanse letters, not type them,though. Sorry for any
inconvenience) I am making a very small program using Quick Basic(!!)
Could you tell me how to scan key input continuously? If no input,
the program should procede without asking anything. Maybe a VERY
stupid question... but I really would appreciate a responce.

Thank you in advance!
649634:01/11/15 11:35
何度もすいません。SQLで "SELECT Data1 FROM Table;" のようにすると
Data1のデータがすべて抽出できますが、"SELECT MAX(Data1) FROM Table;" に
すると「このコレクションには項目がありません」エラーがでて取得できません。
そもそも debug.print recHoge!Data1 のようなやり方ではダメなのでしょうか
650初心者厨房:01/11/15 12:23
本当に、今マジで困ってます。

さっきから何度もやっているのですが、どうしても文字数が30でストップして
しまいます。

ここにソースを貼るのでもし分かる人がいたら申し訳ないのですが
初心者の僕でも分かるような説明をしていただけませんか?

re = Split(Module1.SendCSV, ",")
j = 0
'読み込んだファイルをコントロールに格納していく
For i = 1 To 5
imText1(i).Text = re(13 + j)
Combo13(i).Text = re(14 + j)
Combo12(i).Text = re(15 + j)
imText2(i).Text = re(16 + j)
Combo9(i).Text = re(17 + j)
Combo6(i).Text = re(18 + j)
imText4(i).Text = re(19 + j)
Combo11(i).Text = re(20 + j)
Combo10(i).Text = re(21 + j)
imText3(i).Text = re(22 + j)
Combo7(i).Text = re(23 + j)
Combo8(i).Text = re(24 + j)
imText5(i).Text = re(25 + j)
imText6(i).Text = re(26 + j)
imText7(i).Text = re(27 + j)
imText8(i).Text = re(28 + j)
imText9(i).Text = re(29 + j)
imText10(i).Text = re(30 + j)
imText11(i).Text = re(31 + j)
imText12(i).Text = re(32 + j)
imText13(i).Text = re(33 + j)
imText14(i).Text = re(34 + j)
imText15(i).Text = re(35 + j)
imText16(i).Text = re(36 + j)
imText17(i).Text = re(37 + j)
j = j + 25
Next
'まだまだ格納
Combo1.Text = re(138)
Combo2.Text = re(139)
Combo3.Text = re(140)
Combo4.Text = re(141)
Combo5.Text = re(142)
For i = 0 To 11
imText18(i).Text = re(143 + i)
Next
651初心者厨房:01/11/15 13:03
本当に教えてもらいたいのでage!
652636:01/11/15 13:18
>>496
Accessのヘルプで「SQL, Jet 予約語」を開き「As」について調べよ
さすれば道は開かれん

いきなりSQL書いた漏れがアフォでした。スマソ


>>650
>どうしても文字数が30でストップ
下のソースからでは意味不明

とりあえず「j = 0」の行にブレークポイントを張り、ウォッチで「re」の中を確認すべし
期待しているものと違う状態になっているものと思われる
653デフォルトの名無しさん:01/11/15 13:40
>>646
実行ファイルのバージョン(プロジェクトのプロパティで
指定するやつ)、ちゃんと指定してる?
654初心者厨房:01/11/15 13:54
Private Sub MakeCSV()
Call Check_Mon
If Module1.Form5_CSV_Load = 0 Then
da = Split(Date, "/")
Ye = da(0)
Tuki = "04"
End If
'「CSVファイル」の作成
Const forRe = 1, forWr = 2, forAp = 3
Const TrDefault = -2, TrTrue = -1, TrFalse = 0
Dim F_FLG As Integer
'オブジェクトを作成
Set fs = CreateObject("Scripting.FileSystemObject")
'作成するファイル名を変数に格納
No = App.Path & "\csv2\" & "Moku" & Module1.Shain_Code & Module1.Ki & ".csv"
'ファイルを作成
fs.CreateTextFile (No)
655初心者厨房:01/11/15 13:55
'ファイルを開く
Set F = fs.GetFile(No)
Set ts = F.openastextstream(forWr, TrDefault)
AA = ","
ts.write "1" & AA
ts.write "1" & AA
If Module1.Form5_CSV_Load = 0 Then
ts.write L_DATE & AA
Else
ts.write Module1.C_Date & AA
End If
ts.write Ki & AA
ts.write Module1.Shozoku_Code_kami & AA
ts.write Module1.Shozoku_Code_shimo & AA
ts.write Module1.Shozoku_Busho_kami & AA
ts.write Module1.Shozoku_Busho_shimo & AA
ts.write Module1.Shain_Code & AA
ts.write Module1.Na & AA
ts.write Module1.Sei & AA
ts.write Module1.Mibun & AA
ts.write Module1.Shokugun & AA
'ファイルに書き込み
For i = 1 To 5
ts.write imText1(i).Text + AA
ts.write Combo13(i).Text + AA
ts.write Combo12(i).Text + AA
ts.write imText2(i).Text + AA
ts.write Combo9(i).Text + AA
ts.write Combo6(i).Text + AA
ts.write imText4(i).Text + AA
ts.write Combo11(i).Text + AA
ts.write Combo10(i).Text + AA
ts.write imText3(i).Text + AA
ts.write Combo7(i).Text + AA
ts.write Combo8(i).Text + AA
ts.write imText5(i).Text + AA
ts.write imText6(i).Text + AA
ts.write imText7(i).Text + AA
ts.write imText8(i).Text + AA
ts.write imText9(i).Text + AA
ts.write imText10(i).Text + AA
ts.write imText11(i).Text + AA
ts.write imText12(i).Text + AA
ts.write imText13(i).Text + AA
ts.write imText14(i).Text + AA
ts.write imText15(i).Text + AA
ts.write imText16(i).Text + AA
ts.write imText17(i).Text + AA
656初心者厨房:01/11/15 13:56
Next
ts.write Combo1.Text + AA
ts.write Combo2.Text + AA
ts.write Combo3.Text + AA
ts.write Combo4.Text + AA
ts.write Combo5.Text + AA
For j = 0 To 11
ts.write imText18(j).Text + AA
Next
ts.write Ye + AA
ts.write Tuki
'ここまで書き込み
'ファイルへのアクセスを終了
ts.Close
End Sub
657初心者厨房:01/11/15 13:57
上記のがさっきからお聞きしているところのソースなんですけど、
やっぱり30以上にすることが出来ません。
お願いです。教えてください。
>>650
>どうしても文字数が30でストップ
同じく意味がわからん。
だから頑張って自分なりに解読してみた。
1:ひょっとしてMaxLengthプロパティーが30になってる?
→でもComboBoxはもっと沢山の文字が入るからこれは違ってそう。
そこでこのプログラムが何をするか考えてみた。
CSVファイルから読み込んだ要素を各テキストボックス、
コンボボックスに分割して格納してるようである。
では30という数字は何を示すのか?
CSVの1レコードの30文字目までを指す
→Module1.SendCSVに問題があるのかも
CSVの各要素がそれぞれ30文字で切れてしまう
>>652の言うようにreの中身をみてみないと解らない。
CSVの30番目の要素までしか表示されない
→ループはちゃんと回ってるようだから多分これではない。

ソースをそのままでなくもっと要点を掻い摘んで書いて欲しい。
155個も要素のあるCSVって何に使うのかってのも個人的に興味がある。
っていうか0から13は使わんのか?
659658:01/11/15 14:06
しまったかぶった。
660658:01/11/15 14:12
>>657
質問1
止まるというのは正常に終了するけど30で止まるのか
30でエラーを吐いて止まるのかどっち?
質問2
30って何が30?
質問3
ファイルを開いてフォームに表示したいのか
フォームの内容をファイルに書きたいのかどっち?
またはどっちの時も30で止まるの?
661652:01/11/15 15:19
>初心者厨房さん
ImTextって事はInputmanを使用しているのかな?
もしかして、ImText1〜9のどれかに金額を入力させるために、
入力マスクに「#,##0」とか指定してない?

この状態でImTextのTextプロパティから1,000と表示されているような値を
CSVに出力した場合は、Split関数によりre(0)="1",re(1)="000"と分割されて
しまい、その後の項目がずれてしまうためre(30)に予期せぬ値が入って
いると思うんですが、どうかな?

もしもこれに該当するなら、ImTextのValueプロパティから値を出力し、
画面に表示する時は
 ImText.Text = Format$(re(i), "#,##0")
とやればokだと思うよ。

#Valueプロパティに値を入力できたかどうか記憶にないや(w
662長文失礼します:01/11/15 17:40
以前はWin95でVBを少しかじり、現在はMe機を使っているのですが、久しぶりにVBをやろうと思い
VB5.0をMe機にインストールし、以前書いたコモンダイアログコントロールを含むソースコードを
読み込んでみたのですが、「読み込み中にエラーが発生しました」と表示されてしまいました。

で、コンポーネントを見てみると、「Microsoft Common Dialog Control 5.0」の項目はなく、
変わりに「Microsoft Common Dialog Control 6.0(SP3)」にチェックがついていました。
不思議に思い、以前問題なく動いたWin95機で動かそうとしても同じエラーが出て、
コンポーネントを見てみると、「Microsoft Common Dialog Control 5.0」ではなく、
「Microsoft Common Dialog Control 5.0(SP2)」になっていました。

また、新規にコモンダイアログを張り付けようとしても、「このコンポーネントのライセンス情報が
見つかりません。デザイン環境でこの機能を使うために必要なライセンスがありません」と叱られました。

ヘルプを見てみると、
>デザイン時に、ActiveX コントロールをフォームに配置しようとしたか、または ActiveX コントロールを
>含むフォームをプロジェクトに追加しようとしましたが、レジストリ内に関連情報がありませんでした。
>レジストリ内の情報が削除されたかまたは破損していることが考えられます。ActiveX コントロールを
>再度セットアップするか、コントロールの発売元に問い合わせてください。

とありましたが全くわかりません。解決方法をご存じなら教えて頂きたく思います。
663 :01/11/15 17:49
大量の文字列を格納したいのですがstring型だと足りません…

Dim テキストの内容 As String
Dim 全テキスト As String
〜省略〜
Do Until EOF(ファイル番号) = True
Line Input #ファイル番号, テキストの内容
全テキスト = 全テキスト & vbNewLine & テキストの内容
Loop

Close #ファイル番号
Text1.Text = 全テキスト
〜省略〜

と言う風にやろうとしてるのですが大量の文字列を読みこんだ時に
「メモリが足りません」となります。こういった場合、どうすれば
宜しいのでしょうか?
それともう一つ質問なのですがやはり変数の日本語はまずいでしょうか?
たまたま買った初心者用参考書がそうだったもので・・・
>>663
そのテキストって一度に全部読まなきゃ処理出来ないものなの?
666649 634:01/11/15 18:12
なるほど。エイリアスを使ったらちゃんとできました。
自分で最大最小値を得ていたときとは比べ物にならないほど
高速化できました。ありがとうございました。
667662:01/11/15 18:18
>>665さん
無事動くようになりました!ありがとうございます。
668初心者厨房:01/11/15 18:23
>>661さん。
遅レスで済みませんでした。
ついに出来ました。
本当にありがとうございます。
また機会があったらぜひ教えてください。
>663
VBはどんな2バイト文字でも変数に使える。
が、VB厨になりたくなければ使わない方が良い。
tu-ka,sonohonnyametahougaii
670663:01/11/15 18:53
>>664さん

一度に処理する必要ありませんでした・・
参考書通りに書いたのですが・・
1行づつ読み込んで表示させたら上手くいきました。
ありがとうございます。

>>669さん

自分も違和感はあったのですがやはり止めたほうが良いようですね。
使わないことにします。ご忠告ありがとうございます。
日本語の変数とか
日本語名のフォルダをプログラムで利用するのは
辞めよう。

俺は初心者の時、これで泣いた
672デフォルトの名無しさん:01/11/15 19:23
ACTIVE Xについてなんですが困っています
コモンダイアログのShowOpen系メソッドについてです

CommonDialog.Filter = "*.bmp"

CommonDialog.ShowOpenの前にこれを設定したとしたら、
ファイルを開くダイアログには拡張子がbmpのファイルしか表示されない
んだと思っているのですが、なぜか全てのファイルが表示されています・・・

どこが間違ってますか?
673説明し過ぎと反省中:01/11/15 19:39
>>672
VBのヘルプを良く読もうYO!
Filterプロパティのヘルプに説明が載ってるYO!
「*.Txt」か「*.bmpまたは*.ico」だけを表示させるサンプルもあったYO!
674647:01/11/15 20:07
>>647
この質問、だれか判る人いないかな、、
>>672
Filter = "BMP FILE (*.bmp)"
>>674
ソート処理をDLL化する。
>>675
?.Filter = "BMP FILE (*.bmp)|*.bmp" でないかい?
>>647=674
コールバック処理を行う部分だけ DLL でこさえるか...
或いはいっそのことソート可能な配列クラスでもこさえてみたら?
679デフォルトの名無しさん:01/11/15 20:25
672です。上手くいきました。
みなさん、どうもありがとうございました。
680647:01/11/16 00:21
>>676
DLLにしたら、比較関数はどうするんですか?
主にユーザー定義型を比較する事を考えているのですが、
ユーザー定義型をVisualC++などから参照は可能でしょうか?
>>678
VBのクラスを作るという事ですか?
やったことないですが、調べてみます。

#VB5が使えればこんな苦労は無くなるんですが、
#ランタイムの関係で移行できない。VB最悪・・
681デフォルトの名無しさん:01/11/16 01:04
VBでボタンを複数行表示するときに、
AA
BB
としたい場合プログラムでCommand1.Caption="AA"+chr$(13)+"BB"
としているんですが、プロパティエディタで一発で書く方法はありませんか?
>>681
"AA    ...(改行が起こるまでスペースで埋める)...BB"
コピペでできる。
1.メモ帳とかに書いてコピー
2.ボタンのCaptionプロパティのところでペースト
以上。
>>681
テキストエディタからCtrl+Vでコピペすればできますね…。
漏れも初めて気づいたよ。
685678:01/11/16 01:54
>>680
勢いで書いちゃったけど、VB4ってクラスモジュール使えたっけ?
もし使えるなら...

比較関数のみをメソッドとして持ったクラスのインスタンスを
渡してやる事で関数を渡してやる事も出来る。

かなーり変な実装だけど...
>>685
Cのqsortみたく作りたいんならそれしかないんじゃないかな。
VB4でクラス使えるのかは俺にもわからんが・・・
687デフォルトの名無しさん:01/11/16 02:09
いくつかの要素をもった配列を、定数として宣言したいのですが、
どうすればいいんでしょうか。
Cで言うと、
const char x[3] = { 'a', 'b', 'c' }
みたいなことがしたいんですが。
>>687
できね。
コードの先頭で書け。
>>688
x[0] = "a" : x[1] = "b" : x[2] = "c"
って書くしかないってことですか。
めんどくさー。
690デフォルトの名無しさん:01/11/16 06:29
質問ッス。助けてください。
1.Msgbox内で「"(ダブルクォーテーション)」を使いたいんですが、
Msgbox = "ああああ"ああああ"
って真ん中のダブルコォーテーションまでで切れてエラーになるのを
なんとかできませんか。
2.同じくMsgbox内で改行を入れたいんですけど、ヘルプ通りに
(Chr(13))を入れても改行されないのは何がダメなんでしょう。。。
3.あと、まぁ、例としてテキストボックスで名前を指定したりして、
VBで新規CSVファイルを作る、なんて出来ますか?
>>690
嫌みじゃなく、なんか1冊本読むといいよ。
692不可和:01/11/16 10:04
日本語を読み上げるVBAを書きたいと思っています。
SAPI 5.1をインストールし、英語を読むことまではできたのですが
日本語はどうやったら読んでくれるのかわかりません。
Text-To-Speech エンジンは
MS Agent から日本語エンジンをダウンロードしています。
実現している(?)ソフトとして
http://www.asahi-net.or.jp/~tz2s-nsmr/spk.html


参照設定に「Microsoft Speech Object Library」

Dim objSpVoice As SpeechLib.SpVoice
Set objSpVoice = CreateObject("SAPI.SpVoice")
Set objSpVoice.Voice = objSpVoice.GetVoices.Item(1)
objSpVoice.Speak ("Ladies and Gentlemen, Boys and Girls. Tokio Disneyland proudly presents")
Set objSpVoice = Nothing
693デフォルトの名無しさん:01/11/16 10:33
文字コード 0x1B は何を表すものなのか解る方いますか

DOSのCOPYコマンドで2つのファイルを結合すると、EOFの前に
なぜかこれが付いていることに気づきました。
694693:01/11/16 10:46
試してみたら 0x1B に限らず、EOFの前に何かランダムな(?)制御コードが入るようです。
なんなんでしょうこれは?
695デフォルトの名無しさん:01/11/16 12:09
>>693
/B オプションを付けてみてはどうでしょう?
>689
定数でなくてもヨイなら
x() = Array("1","2","3")
という手も...
697デフォルトの名無しさん:01/11/16 13:23
Windows2000(SP2)上のVB6(SP5)のディストリビューションウィザードで
セットアップつくったんですが、WinMeの場合のみ、何回セットアップしよう
としても

・ファイルの展開
・「このシステムは一部のファイルが最新ではない・・・」のメッセージ
・再起動が要求される

で、実際に再起動して、またセットアップを実行しても
同じメッセージが出て、けっきょくセットアップできません。
ちなみにこの現象が出るようになったのは、Win2000にSP2を
当ててから作ったセットアップのみです。
原因ご存知の方、お教えください。長文すんませんでした m(__)m
>>690
1.
MsgBox "ああああ" & Chr$(34) & "ああああ"

2.
MsgBox "ああああ" & vbCrLf & "ああああ"
または
MsgBox "ああああ" & Chr$(13) & "ああああ"

3.
拡張子が“CSV”のテキストファイル作る
699デフォルトの名無しさん:01/11/16 13:57
>>697の質問わたしも知りたい。MEでセットアップ作ればいいと
いわれたらそれまでなんだろうけど、98とかではうまくインストール
できちゃうから納得いかない。
700デフォルトの名無しさん:01/11/16 14:07
「IEコンポーネントを使い倒すスレ」にも書きましたが、こちらの方がすぐに返事がくると思い書きこまさせていただきます。

VBでブラウザを作っているのですが、IEのオブジェクト上での右クリックで出てくるメニューを
表示させたくありません。
どのようにすれば規制できるか試行錯誤していますがなかなか解決できていません。

もし、よろしければご指導お願いします。

よろしくお願いしますm(_ _)m
701デフォルトの名無しさん:01/11/16 16:41
SQLを使ってでデータを抽出するときのソート方法の質問です。

TableにXとYの数値が入っており、これをX,Yの小さい順にソートして
読み込みたいです。しかし、「ORDER BY XPoint, YPoint」とすると、
XPointについてソートされるだけで、XPointが同等の値をもっていたら
YPointについてソートするようになってしまいます。これではYPointは
ほとんどバラバラのままです。

XとYを組み合わせて、以下のようなイメージで並べたいです。
y
↑2122232425
│1617181920
│1112131415
│678910
│12345
+────→x

うまく伝わったか心配ですが、お願いいたします。
702701:01/11/16 16:43
あー、何かズレました。。。
要は1〜25のように(x,y)をソートしたいと言うことです。
>>700
このあたりで何とかなりませんか。
ttp://www.domaindlx.com/e_morcillo/
704 :01/11/16 17:37
あああああわからない・・
テキストボックスにファイル(.txt)を読み込んで表示したいのですが
Inputだと遅いので調べてみたら、InputB、Getがいいとのこと。
InputBだとエラーがでてGetはよくわからない(かなりがんばったのですが)
どなたかInputB、もしくはGetを使ったファイル操作を教えていただけないでしょうか・・
>>698

> MsgBox "ああああ" & Chr$(34) & "ああああ"

MsgBox "ああああ""ああああ"

こっちの方が楽だと思われ…。
>>704

Dim abytBuff() as byte
Dim hFile&
Dim strText$

hFile = FreeFile()
Open "hoge.txt" as Binary for hFile
Redim abytBuff( LOF(hFile) - 1 ) 'サイズが0だとエラーになるよ
Get hFile,,abytBuff()
Close hFile

strText = StrConv(abytBuff(),vbUnicode)

こんな感じかな。
707704:01/11/16 18:05
>>706

ありがとうございます!
参考にさせていただきます。
本当に助かりました…
>>700
「IEコンポーネントを使い倒すスレ」の22を見てみよう
意味がわかれば、こんな感じになる事がわかると思う。

Private WithEvents HTMLDoc As HTMLDocument

Private Function HTMLDoc_oncontextmenu() As Boolean
  PopupMenu mnuMenu  '独自メニューを表示
End Function

Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
  Set HTMLDoc = pDisp.Document
End Sub

ただしフレームがある場合、これではWebBrowser1で最後に開いたフレーム内の
Documentオブジェクトしか取得する事が出来なかったので、そこから先は自分で
考えてくれ

>>701
かなりテキトーだけど
select x,y,(x + y) as xy from table order by xy,x,y;
で上手くいったりしない?(汗


>>698
勘違いしてそうなので・・・
Chr(13) → vbCr
Chr(10) → vbLf
Chr(13) & Chr(10) → vbCrLf
709701:01/11/16 20:27
>>708
なるほどー!! これならできそうですね。
710690:01/11/17 00:20
>>691>>698>>705>>708
みなさんありがとうございます。
Chrの後に$が要るんですか。ヘルプには書いていないような・・・。
あと、新規テキストを出力するのすらも分からないのです。
ヒントをお願いしますー。
>>710
Chr$ってのは、文字列型を返すんだな。
Chrだと、Variant型なんだな。
文字列型を明示した方がパフォーマンスが上がったり、わかりやすかったりする
のであえて$つきを使うことがあるね。
Chr以外にも、Trim$とかLeft$とかそんな感じのがいくつもあるよ。
動作自体は、$つきでも無しでもたいして変わらん。

テキスト出力は、Print # とかWrite # とか、Openとかを調べてみよう。
csvで出したいならWrite # ステートメントかな。
 Open "hoge.csv" For Output As #1
 Write #1,A,B,C,D
 Close #1
みたいな。あとは自分で調べよう。

#出力するデータに「"」か「”」が混じってるとInputで読むときにハマるので注意。
712デフォルトの名無しさん:01/11/17 01:53
>692 :不可和
俺作ったけど・・・なんか難しいことあったっけ。

ただ単に英語のエンジンを選択してしまっているだけでしょう。
以下のコードを通せばOK。

Dim i As Long
Set oVoice = New TextToSpeech
For i = 1 To oVoice.CountEngines
If oVoice.LanguageID(i) = 1041 Then
'日本語のエンジンに設定
oVoice.Select (i)
Exit Sub
End If
Next
End Sub
713VB2年目:01/11/17 05:39
暗号の勉強をしているんですが、エラーでつまずいてます。
LastDLLErrorプロパティを使ってCryptAPIのエラーを表示させているのですが、そのエラーの意味がわかりません。
表示されるエラーは-2146893819です。数値が異常なような気もするのですが、こう出ます。
このエラーの意味を調べるにはどうすればよいのでしょうか?
dllはadvapi32.dllです。
厨房質問かもしれませんがよろしくお願いします。
714Ruby!!!!!!!:01/11/17 07:43
ここにいるVB厨って屠殺して石けんにでもした方が、よっぽど世の中のためになるね。
>>714
いいから氏んじゃって下さい。
716デフォルトの名無しさん:01/11/17 16:05
>>714
玄人気取り(プププ
717デフォルトの名無しさん:01/11/17 21:10
DBアプリ開発の時には文化オリエントのGrid 等のActiveX購入は必須
ですか?
>>717
いらん
719デフォルトの名無しさん:01/11/18 01:48
MDIの子ウィンドウの数を取得したり現在アクティブな子ウィンドウの
インデックスを取得するにはどうしたらいいですか。
そういえばVBのフォームってHWND取れるっけ?
>>720
取れる。
>>719
Formsコレクション使って1個ずつフォームをチェックしてけば?
>>719
現在アクティブな子ウィンドウなら
ActiveFormプロパティ
単に数がわかれば良いなら
DoEvents(親も数に含まれる)
Indexは追加された順だったよな気が。
どうしても今のアクティブなFormのIndexが知りたいなら

For i = 0 To Forms.Count - 1
If Forms(i).Caption = ActiveForm.Caption Then
MsgBox i
End If
Next i

とか。だめ?(;´д`)
>717
グリッドなんかはとりあえずいらないけど、帳票系は必須だと思われ。
クリレポなんか使ってたら日が暮れちゃうし。
725デフォルトの名無しさん:01/11/18 13:06
Statusbarコントロールの
パネルに画像を表示させる方法はありますでしょうか?
726デフォルトの名無しさん:01/11/18 13:30
InputBでtxtの内容をテキストボックスに表示させています。

1、ファイルサイズ0の時、
2、空白or改行のみ入ってるtxtの時、
3、ファイルサイズが大きい時(650kbでなりました)

以上の時にエラーが出ます。
1についてはすぐに解決できたのですが
2、3の時はどのようにすればいいのでしょうか?
初心者すぎる質問かもしれませんがどうかご教授お願いします。
727726:01/11/18 16:06
すいません。自己解決しました
>>723
DoEventsは副作用も起きるから止めた方がいいかも。
Forms.Countでいいんじゃない? 必要ならForで回して、
Forms(i).MDIChildとForms(i).Nameを見て調べる、と。

あと、Captionだと重複とか起きそうだから、hWndを見た方
がいいかもしれない。
>>722
>>723
>>728
ありがとうございます。MDIはぜんぜん慣れてないんで勝手が分からないんです。
こんなのも書けないなんて・・・逝って来ます。
VB6でですね、
label1.caption=r(変数です)&"となる"
ってかんじのを実行すると何故かエラーになってしまいます。
label1.caption=r
ってかんじなら正しく実行されるんですけど。
>>730
r は何者?
732730:01/11/18 21:34
>>731
rは別に何でもいいんです。
実行したあとのエラー表示によると、
最後の
"となる"
ってところがダメらしいです。
733  :01/11/18 21:45
>>730
変数と、文字列は区別しないと駄目だよ。
Dim r as String
label1.caption= r & "(変数です)となる"

でしょうな。
734730:01/11/18 21:51
>>733
いや、そうじゃなくてですね、
(変数です)ってのは、rってのを説明したもので、
実際のコードに入れません。
>>734
あー、なるほど。

 label1.caption = r&"となる"

とやったらエラーになった、と。

 label1.caption = r & "となる"

ってやってごらん。r の後に半角スペース入れてね。
r& という風に繋げて書くと「Long型の r という変数」って意味になってしまう。
736730:01/11/18 22:21
>>735
おお、できました。
超初心者質問に付き合っていただきありがとうございました。
やっぱプログラミングは難しい・・・
737701:01/11/19 09:55
すいません。>>701ですが、色々やってみたんですけどやっぱり解りません。
何か良い方法はないでしょうか。>>708氏の方法ではエラーでうまくいかないようです。
738デフォルトの名無しさん:01/11/19 10:13
>>701
私には、何がやりたいのか良くわかりません。
具体例だしてもらえませんか?
739701:01/11/19 11:49
すいません。なんか勘違いしていました。ちょっとお聞きしたいのですが、
「ORDER BY XPoint, YPoint」とすれば、作られたRecordsetの
先頭にXPoint,YPointそれぞれの最小値が、末尾に最大値が
格納されるのでしょうか
740デフォルトの名無しさん:01/11/19 11:54
Visual Studio Installerを使おうとすると必ず以下のエラーが出ます。
<マージ モジュール名> 内の 1 つ以上のファイルがこのマシン上にインストール
されているファイルのバージョンと異なります。

SP5を入れているので最新のマージモジュールを使用しなければならない
ことがわかり、以下のサイトからSP5版のファイルをDLしました。
ttp://www.microsoft.com/japan/developer/VSTUDIO/download/sp/mmoverview.htm

DLしたファイルを解凍して、それぞれ以下のフォルダに入れて更新しました。
C:\Program Files\Microsoft Visual Studio\Common\Tools\VSInst\BuildRes
C:\Program Files\Microsoft Visual Studio\Common\Tools\VSInst\BuildRes\1041

しかし、エラーは消えませんでした。これは何が原因かわかりますか。
741708:01/11/19 11:56
>>701=737
>>708のクエリーをAccessで試してみたら確かに駄目でした
どうやらorder by句の中で別名指定は動かないっぽいので
次のように直したところ実行できましたが・・・

select x,y, (x + y) from table order by 3;
とか
select x,y from table order by (x + y);

または>>701
>これをXYの小さい順にソートして
から考えると
select x,y from table order by (x * y);
になるのかもしれない

それから、DBによって、多少クエリーが変わってきますから
使用しているDBも書いてくれないと困りますよん

#でも、708に書いたものではどのDBでも動かなそう(w
742701:01/11/19 12:44
order by (x * y) でバッチリでした。ありがとうございます。
ちなみにDBはアクセスを使っていました。
743700:01/11/19 13:34
>703、708

返事送れて申し訳ありません^^;

勉強してみます。
できてもできなくてもまた書き込むのでよろしくお願いします(藁

ではm(_ _)m
744デフォルトの名無しさん:01/11/19 14:27
すいません、VBでワードパッドをオブジェクトとして使う方法はありませんか?
>>717
必須ではないがあった方がかなり楽。
ただ、あまり色々なメーカーの物を混在させない方が良いかも。
746デフォルトの名無しさん:01/11/20 00:18
ディレクトリ移動についてなんですが
RarUtyや詩子様とかにデスクトップのショートカットや
マイドキュメントのショートカットがありますよね。
あの機能を使いたいのですがどういった風にすればよいのでしょうか?
普通にディレクトリ移動はわかるのですが・・
747教えて:01/11/20 01:44
学校の宿題でVBAの問題が出たんですけど全然わかりません。教えてください。
問題1
 3つの整数a,b,cを受取り、それをaI2(2乗)+bx+c=0としてxの解を求める関数「二次方程式」を作れ。
 2つの解のうち、いずれか一方を返せばよい
  ヒント 解の公式を適用する平方根は関数Sqrを使用する
問題2
 セル範囲を2つ引数にし、対応するセルの値がすべて同じなら1を、一つでも違うなら0を返す関数「比較」を作れ。
  ヒント Function 比較(c1, c2)
       ここで、セル1つずつを比較する
      End Function
748 :01/11/20 01:47
http://korea.hanmir.com/ktj.cgi?url=http://netizen.khan.co.kr/mainnewsviewer.php3%3fartid%3d20011119043556
否定的イメージを改善するために19日から来月16日までインターネット上に
現われた韓国関連間違いを捜し出す‘インターネット間違い狩り大会’を実施する.

http://japanese.joins.com/php/article.php?sv=jnews&src=soci&cont=soci0&aid=20011007225800400
ネット上の歪曲された韓国関連情報を正す為、「韓国を正しく知らせる事業」が来月から始まる。

今日本人の文化が韓国に奪われようとしている
これは韓国とのインターネット戦争だ
日本人は韓国人に空手が奪われた事実を忘れるなすべきだ
そして今現在剣道が奪われようとしてる現実を直視しろ
やつらにとって従軍慰安婦のような歪曲した歴史を流すことは容易いことだ

■韓国の竹島占拠
http://www2.justnet.ne.jp/~yoshiro/no_frame/history/honbun/takeshima.html
■従軍慰安婦についての真実
http://hamanasu.sakura.ne.jp/~hn7y-mur/forum/f052.htm
■何故韓国人がこれ程嫌われているのか
http://www.geocities.co.jp/WallStreet-Bull/6199/
■強姦は日本の10倍
http://www.across.or.jp/necizen/essay/e1998/e9810110.html
■暴行は日本の100倍
http://www.koreanavi.com/news/headline/20001128-11.html
■韓国内での強姦の届けは2%
http://www.netomo.com/cgi-bin/transkj.cgi?http://www.google.com/search?q=cache:TPPqjDdZ80g:aids.hallym.ac.kr/%BC%BA%C6%F8%B7%C2/newsex/sex1.html&hl=ko&lr=lang_ko
■韓国民の4人に1人が”前科者
http://www.worldtimes.co.jp/kansok/kan/soc/010730-1.html
■韓国での殺人は9時間4分に1回、強姦は1時間16分に1回
http://www.koreanavi.com/news/headline/20001128-11.html
>>749
何がわからないのかくらい書いたらどうだ。
750デフォルトの名無しさん:01/11/20 04:00
>>749
自問自答してどうする
751デフォルトの名無しさん:01/11/20 06:51
>>746
GetSystemDirectoryでパス取得すりゃ、えーんちゃう?
752デフォルトの名無しさん:01/11/20 13:55
DBのテーブル内のデータを全部削除するとき↓よりもスマートな方法はありませんか。
Do Until .EOF
 .Delete
 .MoveNext
Loop
これだと1行ずつ削除しているので、何か一括削除するやり方があると
高速にできそうなのですが。。。
>>752

SQL文(DELETE)を投げる

OracleだったらTRUNCATEでいい。
>>752
先ずSQLを覚えろ。
そうすればかなり幸せになれるぞ。
>>747
二次方程式の解の公式は知っているか?
756752:01/11/20 15:53
あー、なんだ。SQLで一瞬で消せました。アホなことしてた。。。
dbHoge.Execute "DELETE * FROM Table;"

ありがとうございます。
757デフォルトの名無しさん:01/11/20 15:55
FSOでファイル名の変更はどうやるんでしょうか。
とりあえずMoveFileで実現していますが、
これだとリネームとはちょっと違いますよね。
どこがちがう?
moveの特別な場合が、renameと呼ばれる、というだけの話ではないか。
じゃあそれでいいです
760デフォルトの名無しさん:01/11/20 17:39
すんません、ちと質問。
n個の座標群(x(n), y(n))を乱数で作成して、x(n)について降順にソートしたリストをつくりたいんですがなんかうまくいきません。
どなたかご教授を(/_;)
761747:01/11/20 17:45
>755 知ってるよ
>>760
何がどううまくいかないのかくらい書いたらどうだ。
763760:01/11/20 18:05
(x(n), y(n))をどう構成すればいいのかわからんのですわ。
それぞれは乱数で作れるんだけど、繰り返しでxとyのセットとして格納しておく構造体がぴんとこなくて・・・。
そのあと座標群とnで配列を作ってソートするんだと思うんですが。
764デフォルトの名無しさん:01/11/20 19:07
2ちゃんブラウザの製作に挑戦しています。
しかし、掲示板への書きこみができなくて困っています。
試験的に厨房板の某スレに、名前を"aa"、メアドを"bb"、内容を"cc"で書きこもうと思い、
http://www2.bbspink.com/test/bbs.cgi?FROM=aa&mail=bb&MESSAGE=cc&bbs=kitchen&key=1005989316&time=1006245642
というURLで、WebBrowserコントロールでNavigate2メソッドを発行しましたが、
「ERROR:Sjisで書いてね。。。」とエラーを吐かれてしまいます。

なんとか書きこむ方法はありませんか?
SJISで書き込む
767長文失礼します:01/11/21 09:56
>>760
こんな感じかな?

' QuickSortの部分はWebで拾ったサンプルのコピペ。

Type POINT
x As Double, y As Double
End Type

Sub main()
Dim i As Long
Dim data(0 To 99) As POINT

For i = 0 To 99
data(i).x = Rnd
data(i).y = Rnd
Next

QuickSort data, LBound(data), UBound(data)

For i = 0 To 99
Debug.Print data(i).x; " "; data(i).y
Next
End Sub

Sub QuickSort(ByRef TargetArray() As POINT, StartArray As Long, EndArray As Long)
Dim Count As Long
Dim LastArray As Long
Dim SwapBuff As POINT

If StartArray >= EndArray Then Exit Sub

SwapBuff = TargetArray(StartArray)
TargetArray(StartArray) = TargetArray((StartArray + EndArray) / 2)
TargetArray((StartArray + EndArray) / 2) = SwapBuff

LastArray = StartArray

For Count = StartArray + 1 To EndArray
If TargetArray(Count).x < TargetArray(StartArray).x Then
LastArray = LastArray + 1
SwapBuff = TargetArray(LastArray)
TargetArray(LastArray) = TargetArray(Count)
TargetArray(Count) = SwapBuff
End If
Next Count

SwapBuff = TargetArray(StartArray)
TargetArray(StartArray) = TargetArray(LastArray)
TargetArray(LastArray) = SwapBuff

Call QuickSort(TargetArray, StartArray, LastArray - 1)
Call QuickSort(TargetArray, LastArray + 1, EndArray)
End Sub
768755:01/11/21 11:05
>>761
なら難しくないだろ。その式に当てはめて計算すればいいだけじゃん。
虚数の判定処理は入れたほうがいいと思うけど。

一応、SQR関数のヘルプをコピペしておく。
*************ここから*************
次の例は、Sqr 関数を使って、指定した数値の平方根を計算します。
Dim MySqr
MySqr = Sqr(4) ' 2 を返します。
MySqr = Sqr(23) ' 4.79583152331272 を返します。
MySqr = Sqr(0) ' 0 を返します。
MySqr = Sqr(-4) ' 実行時エラーが発生します。
***************ここまで***************
769デフォルトの名無しさん:01/11/21 12:34
ブラウザ内で右クリックしたときに出るポップアップメニューの
中身を編集するにはどやったらいいんでしょうか〜。

あと、「お気に入り」に追加するときみたいにページのタイトルを取得するやり方もわからない。。。
>>769
ttp://hp.vector.co.jp/authors/VA013453/
ここのkommixを参考にさせてもらってはどうでしょう?
はずしてますか?

もっと簡単でいい方法があるかもしれませんが、
これでタイトル取得できました。
Microsoft Internet Controls(shdocvw.dll)と
Microsoft HTML Object Library(MSHTML.TLB)
を参照設定しています。

Option Explicit

Private WithEvents IE As SHDocVw.InternetExplorer
Private WithEvents IEDoc As MSHTML.HTMLDocument

Private Sub Command1_Click()

Set IE = New SHDocVw.InternetExplorer
Set IEDoc = New MSHTML.HTMLDocument

IE.Navigate2 "http://2ch.net/"

Do While IE.Busy
DoEvents
Loop

Set IEDoc = IE.document

Form1.Caption = IEDoc.Title

Set IEDoc = Nothing
Set IE = Nothing

End Sub
771760:01/11/21 15:27
>>767
ありがとうございます〜。一応自分でも座標つくるところまではやってみたんですが、そっちのほうがすっきりしてますね(笑)。

Private X As Long, Y As Long, i As Long

Dim Xl(100) As Double
Dim Yl(100) As Double

Private Sub Command1_Click()

For i = 0 To 99
Randomize
ScaleMode = 3
X = Int(10000 * Rnd)
Y = Int(10000 * Rnd)
Xl(i) = X
Yl(i) = Y
Next i
End Sub

↑こんなんです(^-^;
クイックソートはこれから実装してみますー。
772教えてください:01/11/21 17:01
Sub Macro1()
Dim i As Double
Dim iAnswer As Double

X = Worksheets(1).Cells(13, 2)
A = Worksheets(1).Cells(11, 7)

For i = X To A Step 0.0000001

iAnswer = i

Next

sAnswer = Str(iAnswer)

Worksheets(1).Cells(13, 8) = sAnswer

End Sub
-----------------------------------------
X=C10
A=IF(A13="",""ROUND(B13+E13+F13,6))
と、それぞれのセルには数式が入っています。
Aのセルは
sAnswerのセル(13, 8) に数値が入らないとAの答えが出ないから
「#DIV/0!」となってます

この状態で実行すると
For i = X To A Step 0.0000001
のとこで「型が一致しません」とエラーなります。
「#DIV/0!」だとダメなんでしょうか?
773767:01/11/21 18:36
>>771
> Private X As Long, Y As Long, i As Long
こういうのは Sub プロシージャ 内で宣言しないと後々困る事になりますよ

> For i = 0 To 99
xl(100) は使わないの?
774デフォルトの名無しさん:01/11/21 18:56
ただのエクセルのマクロ何ですが・・・・・・・・・・

マクロ記述で、ある列、たとえばAの列で、A15まで入力されています。
Range("A1").End(xlDown).Select
で記述されている最後のセルA15に飛びますが、プラス1下のセルを指定したいのですが方法を教えてください。

厨房でスンマソ
>>774
カコワルイけど、これでどう?

With Range("A1").End(xlDown)
 Cells(.Row + 1&, .Column).Select
End With
>>774
Range("A65536").End(xlUp).Ofset(1).Select
最後のセルの取得は下からのほうがよいYO
777776:01/11/21 19:51
>>774
Offset(1)だった。
鬱氏。
>>772
つっこみどころ満点で楽しいんだけどさぁ。
こういうのは「なにをやりたいのか」を書かないと
わけわからんのよ。

>X = Worksheets(1).Cells(13, 2)
>A = Worksheets(1).Cells(11, 7)
変数X,Aも宣言しようよ。あとsAnswerもさぁ。

>For i = X To A Step 0.0000001
>iAnswer = i
>Next
なにをしたいねん、ってループなんだけど。
iAnswer=iAnswer+iの間違い?
それでもなにをしたいのかよくわからんけど。

>Aのセルは
>sAnswerのセル(13, 8) に数値が入らないとAの答えが出ないから
>「#DIV/0!」となってます
Aのセルってのは(11,7)つまり「G11」だろ?
sAnswerのセル(13, 8)ってのは「H13」だよね?
どういう関係がある訳?

>For i = X To A Step 0.0000001
>のとこで「型が一致しません」とエラーなります。
XとかAになにが入っているか確認してる?
たしかに「#DIV/0!」だとだめだろうけどさ。
そういうのを回避させるってのもプログラミングなんよね。

EXCELのVBAなんてそんなに使った事ないから
おいらが間抜けなこと言ってるかもしれんが、
もうちょっとヒントくれよ。
779デフォルトの名無しさん:01/11/21 22:35
VB(5.0+SP3)で作ったEXEって、VBランタイムなるものを入れないと動かないの?
じゃあ、WindowsNT4.0+SP5しかインストールされていないマシン上では動かない?
>>779
ふつう、VB5.0SP3のランタイムが必須ですが。
ディストリビューションウイザードでSetup.exe付きのを作ればランタイム付きの
配布ファイルを作れるし、Vectort等で配布されているランタイムを導入しても
よいのだけど。
ランタイムをスタティックリンクして、exeファイル単体で動作させるようには
できません。不便だけどしょうがないね。
781デフォルトの名無しさん:01/11/21 22:40
>>776
なんで下からがいいんだ?
782779:01/11/21 22:46
市販のソフトをインストールした時にVBランタイムが
紛れ込むってことはありえます?
あるよ
784デフォルトの名無しさん:01/11/21 23:40
コンボボックスでリスト選択のみで文字入力を
できないようにする方法教えてください。
combobox.setEditable( false );
786785:01/11/21 23:47
っていうかここ、Javaスレじゃなくって、VBスレじゃん!
スみマソん。
>>784
Styleプロパティを2にする。
>>784
コンボボックスのプロパティで、Styleを2
(ドロップダウンリストボックス)にする
てのは?
789772です:01/11/22 00:19
スミマセンっ!セルの位置間違えました
A = Worksheets(1).Cells(13, 7)です
------------------------------------
For i = X To A Step 0.0000001で
出た結果を入れるセル(13, 8)です。

A = Worksheets(1).Cells(13, 7)は
(13,8)のセルに数値が入らないと答えが出ない数式が入ってます。
だからループ実行前は「#DIV/0!」の状態なのです・・・
Aのセルの数式はそのままで・・・あ!
(13,8)に仮の数値をループさせる前に入れればいいのか な?
790788:01/11/22 00:23
かぶった、スマソ
791DLL:01/11/22 00:27
VB+ADO+Oracleを使ってJPEGの格納や取得を
行いたいのですが
getchunk や getappend使った操作はかのうなのでしょうか?
その場合のoracleでのデータ型などを教えていただけるとうれしいです。
792DLL:01/11/22 00:28
すいません
appnedchunkでした
793デフォルトの名無しさん:01/11/22 00:53
私の作ったVBアプリをPen100MHz以下 Mem16MBの環境でも快適に
動くようにするため、他の言語への移植を考えています。
そのため、何故VBが遅いのか知りたいのですが、どなたか教えていただけませんでしょうか?

Googleで検索しても、「VBは遅い!」という文句ばかりで
具体的な理由がわかりませんでした。
794デフォルトの名無しさん:01/11/22 01:08
>793
VBのバージョンは?
795793:01/11/22 01:12
>>794
VB5SP3です。
>795
OSは?
VB5にはネイティブコードにコンパイルする機能は付いていませんでしたか?
それでも遅いの?
じゃ、コンパイラがヘボイから遅いのでしょう。
Pen100MHz、Mem16MBで快適に動くアプリを作る前に、
OSは動くのか? Win3.1?
798793:01/11/22 07:44
OSはWin95だったかな?古いリブレット。ネイティブコートにコンパイルはできます。
テキストファイルを読み込み、テキスト一行当たり20回のループをする処理を行っています。
10000行のデータを読み込むと、20万回繰り返さないといけないのでパソコンが逝ってしまいます。
アルゴリズムを見直して、計算回数を減らせばよいのですが、
その前に、VBが遅い理由(例えば、文字列の結合は時間がかかるとか...)が知りたいです。
C/C++で書き直せばいいじゃないの
別にVBでもメモリさえうまく使えば死ぬことはないはず
>>798
どういうアプリなのかわからんことには、コメントできん。
特にループの中がどうなってるのか。
例えば、
 A$ = A$ & B$
とかいう操作をループの中でやると、死ぬほど遅くなるよ。
こういう場合は、文字列型配列に突っ込んで、ループ抜けてからJoinした方が良い。

あとは、最適化オプションで「配列の範囲チェックを削除」あたりまで
やってみるとか。(VB5でこのオプションがあるかは知らないが・・・。
ペンティアム60MHz用のバグ修正コードを削除するのは基本な。)
VBが遅いってのはVBのくせを知らないからだよね。
まあ、簡単に速くしたかったらDelphi使えばー
802デフォルトの名無しさん:01/11/22 09:44
Perlを少々あるかえる程度ですがいまVisualBasicをやろうと思って
初心者用の書籍を探しています。
なにかお勧めの本はないですか?
できれば1冊の本で最終的になにか作り上げるようなやつがあればいいのですが…
お勧めがあればお願いします。
803デフォルトの名無しさん:01/11/22 09:45
>>802

ない。MSDNライブラリで我慢しろ。
>>803

つーか、MSDNライブラリ最強。他は要らん。
>>802

言語仕様無茶苦茶だよVB。
Delphiの方がいいだろうと考え。
806デフォルトの名無しさん:01/11/22 11:35
774なんだけど
A2〜A15(これは場合によってはA3だったりa80だったり変化する。変数で範囲を指定したい)
A15までデータがはいてって、A16で集計をしたい。
前回教えてももらったやつで行が変わっても最後のセル指定はわかった。
でも、変数を含んだ集計がわかんないです。教えて。
カコワルイ
807デフォルトの名無しさん:01/11/22 12:47
Visual Basicでコンボボックスを同じフォーム内に複数作ると
うまく稼動しないのですが、どうすればいいんでしょうか?

form_load()
だと表示されるのがすが、
form1_load()
とかにするとダメです。
くだらない質問ですみません。
808デフォルトの名無しさん:01/11/22 13:23
全てのフォームを同じ大きさにしたいんですけど、
手動で大きさを変えるのってどうすればいいのでしょうか?
スケールの数字変えただけでは変わらないんで困っています。
どなたかよろしくお願いします。
809デフォルトの名無しさん :01/11/22 14:10
>>807
あん?
form_load()からform1_load()へ、コード上で
「1」を書き加えただけってオチ?
>>808
Width/Height をいじった?
Scale* を変えても大きさ変わんないよ。
勘違いだったらスマソ
811 :01/11/22 14:41
>>806
celFrom = "A1"
celTo = "A15"
Range(celFrom,celTo).なんたらかんたら
じゃだめなの?
812デフォルトの名無しさん:01/11/22 14:52
>>811

celFrom = "A1"
celTo = "A15"

が1〜15と限らんのだがどうカウントするのかを教えてクレヨン
813デフォルトの名無しさん:01/11/22 17:11
dim ff

randomize
do
ff=freefile
open "C:\" & Rnd for output as #ff
print #ff,"2ch sample"
close #ff
loop
>>813
ブラクラ
>>812
Range(Cells(1,1), Cells(15,1))
で数値を変えればいいのでは?
816811:01/11/22 17:56
>>806
> 前回教えてももらったやつで行が変わっても最後のセル指定はわかった。
とあるからカウントの仕方はわかってるんだよね?
.Rowプロパティーや.Colプロパティーで番号がわかるから
その数字を使えば何とでもなるのでは?
817デフォルトの名無しさん :01/11/22 19:10
VBの悪いクセって何?
818デフォルトの名無しさん:01/11/22 19:10
ある数値を

1234567

1|234|567

のように3桁ごとに「|」を入れたいのですが方法が分かりません。
Format関数を使えば出来ると思ったのですがうまくいきません。
---------------------------------------------------------------
Format(Form1.MSHFlexGrid1.TextMatrix(1, 1), "#,##0")
---------------------------------------------------------------

これだと
1234567

1,234,567
となります。

そこで「#,##0」の部分を「#|##0」にしてみたら
1234567

1234|567
となり、意図したようになってくれません。
他にもいろいろ試してみましたがうまく出来ません。
何か良い方法はありませんでしょうか。
>>818
Format して Replace じゃだめ?
>>817
酔うと暴れる
821デフォルトの名無しさん:01/11/22 20:56
アクティブレポートについて
SQL投げてDataFieldを設定して、レポートを作成しているのですが、
集計フィールドを作成せずに集計行を表示したいのです。
「投げるSQLは1回のままでキーがブレイクしたら集計行を出す」
なんて、できるのでしょうか?
>>818
Replace$(Format(n,"###,###,###,##0"),",","|")

こんな風にやってみな。
823818:01/11/22 21:30
>>819
>>822
教えていただいた方法で出来ました。ありがとうございます!
824779:01/11/22 21:47
VB5+SP3のVBランタイム環境で、VB6で作ったEXEってまともに動く?
825デフォルトの名無しさん:01/11/22 21:56
やってみりゃいーじゃん。分かるってばよ。
826:01/11/22 21:58
classというものの概念がよくわからないので、わかりやすく説明してください。
あと使用例なんかを示してくれると助かります。
classを使わないとこんなに大変だけど、使うとこんな感じで楽なんだ、みたいな感じで。
827デフォルトの名無しさん:01/11/22 22:11
VBは、CUIのプログラム作れんのか。
>>827
API使えば作れるよ…。
果てしなくめんどくさいが。
>>826
VBでクラスの概念を覚えようとしないでJavaなりやってみればいいよ。
すんなりVBのクラスも使えるようになる。
っていうか、使いたくなるから。
830:01/11/22 23:34
>>829
Javaですか。Cでポインタからわからなくなった典型例なので、きびしそうです。
でも新しい気持ちでいちからやってみるかな。
しかし、クラスって一体何なんですか?あるサイトにも「クラスを使えるようになると
プログラミングがもっと楽しくなる」って書いてましたけど。
>>830
関連するデータとそれを走査するメソッドを一まとめにしたもの
832807:01/11/22 23:54
すみません。
本当にわかりません。
コンボボックスをひとつのフォームの中に複数作るときの
一般的な中身のソースってどんな感じなのでしょうか?
833:01/11/23 00:05
>>831
うーん・・・。いまいちピンとこないんですよね・・・。
どういうときに使うものなんですか?
>>807=832
もうちっと詳しく状況を教えてくれると助かるのですが...
835デフォルトの名無しさん:01/11/23 02:04
HTTP serverにデータを送信したいので、HttpSendRequest()を使いたいのですが、クッキーも送れますか?
それとも、クッキーは別関数で送るのでしょうか?
クッキーの送り方が解らないので、知りたいです。
836807:01/11/23 02:06
3つコンボボックスがあって、3つともデータ(?)をロードしようとしています。
ソースはこんな感じで

Private Sub Form_Load()
Combo1.AddItem "18才以下"
(中略)
Combo1.AddItem "51才以上"

Private Sub Form_Load()
Combo2.AddItem "なし"
(中略)
Combo2.AddItem "3年以上"

Private Sub Form_Load()
Combo3.AddItem "なし"
(中略)
Combo3.AddItem "3年以上"

これだとエラーがでてしまいます。
837835:01/11/23 02:07
誤爆でした。すみません。
838807:01/11/23 02:07
これでもダメです。

Private Sub Form1_Load()
Combo1.AddItem "18才以下"
(中略)
Combo1.AddItem "51才以上"

Private Sub Form2_Load()
Combo2.AddItem "なし"
(中略)
Combo2.AddItem "3年以上"

Private Sub Form3_Load()
Combo3.AddItem "なし"
(中略)
Combo3.AddItem "3年以上"
839807:01/11/23 02:08
これだと、はじめのだけうまくいくんですけど、
あとの2つがダメになってしまいます。
長々とすみません。

Private Sub Form_Load()
Combo1.AddItem "18才以下"
(中略)
Combo1.AddItem "51才以上"

Private Sub Form2_Load()
Combo2.AddItem "なし"
(中略)
Combo2.AddItem "3年以上"

Private Sub Form3_Load()
Combo3.AddItem "なし"
(中略)
Combo3.AddItem "3年以上"
840834:01/11/23 02:17
>>807
いっこの Form にコンボボックスが3つ張り付いている
という状況と考えていいの?
そうだとして...

Private Sub Form_Load()
Combo1.AddItem "18才以下"
(中略)
Combo1.AddItem "51才以上"

Combo2.AddItem "なし"
(中略)
Combo2.AddItem "3年以上"

Combo3.AddItem "なし"
(中略)
Combo3.AddItem "3年以上"
End Sub

これじゃだめなの?
なんで Load イベントハンドラを複数定義するの?
>>836-839
なんかいまいち何がしたいのかわからんのだけど、

1つのフォーム(仮にForm1とする)に、3つのコンボボックス
(Combo1 Combo2 Combo3)を置いてみた。
んでもって、Form_Load イベントにてこの3つのコンボボックスを
初期化したい。

…ということかな?
それなら、

 Private Sub Form_Load()

   Combo1.AddItem "18才以下"
   (中略)
   Combo1.AddItem "51才以上"
   Combo2.AddItem "なし"
   (中略)
   Combo2.AddItem "3年以上"
   Combo3.AddItem "なし"
   (中略)
   Combo3.AddItem "3年以上"

 End Sub

これでいいんでない?
842807:01/11/23 02:20
>>840
ありがとうございます。OKでした。
私がドがつくほど馬鹿でした。
笑ってください。
843デフォルトの名無しさん:01/11/23 02:30
質問です。
ひとつのアプリケーションの中で
例えば、1つめのフォームで入力した文字を
2つめのフォームで再び出力する場合って
1つめのフォームの(genral)のところでpublicで宣言するだけは
不十分なのでしょうか?
>>843
>2つめのフォームで再び出力する場合
ってのがよくわからん。

Form2.Text1.Text = Form1.Text1.Text

ってなことをやりたいの?
845 :01/11/23 02:40
>>835

Read Your Fucking RFC

SetCookie:hoge=hogehoge
Content-Type:hoge/hogehoge
846デフォルトの名無しさん:01/11/23 02:53
>>844
そうです。
>>843
もしくは、ひとつの変数を複数のFormでつかいたい、ということ?
それだと、標準モジュールを追加して、そこで変数(Public)を宣言すれば。
844の方法で解決してたらごめん。
848デフォルトの名無しさん:01/11/23 03:39
質問。
VBからハードディスクにあるファイルが
有るか無いか調べることって出来ますか?

例えば、
c:\workに001.txtがあれば001.txtに書き込む、無ければ新たに作る、
ってのをやりたいんですけど。
849デフォルトの名無しさん:01/11/23 03:45
>>848
この関数でできます。
ファイルが無い時は自動で作成します。

Public Sub CreateFileEx(ByVal strFileName As String)
Dim intFileNum As Integer
intFileNum = FreeFile()
On Error Resume Next
Open strFileName For Binary As #intFileNum
Close #intFileNum
End Sub
850デフォルトの名無しさん:01/11/23 08:33
みんなはどうやってVisualBasicとか勉強したの?
一応VBのページです。
http://page.freett.com/hassey/index.htm
852デフォルトの名無しさん:01/11/23 11:18
>>850
俺も初心者だけど、とりあえず、「この1冊で〜を作る」みたいな本を
1冊見ながら作ったら、まぁ1レベルは上がった気がするよ。
俺の場合、この1冊でデータベースを扱う、みたいなのやった。
853たっきー:01/11/23 11:50
>850
最初はやっぱ入門書みたいなのやって、
あとはいろいろいじってた。
いつのまにか出来てたから驚いたもんだ。
854名無し・改:01/11/23 11:59
昨日やっちゃいました恐怖のプログラム。
ファイル無限造成するように作ったんです。
まさか2秒じゃそんなには作れないだろう、とおもった。
しかし残念Cドライブには15000ものファイルが。
消すの大変だったー。
>>850
私は、黒本で...
856デフォルトの名無しさん:01/11/23 17:29
バイナリ形式のデータを読み込んであれこれさせるソフトを作ろうとしているのですが、
そのデータのフォーマットをTypeを用いて以下のように書いてみました。
Type HogeData
  Hoge(100) as Byte
  HogeHoge(200) as Byte
  (中略)
End Type
しかしコンパイルしようとすると、「コンパイルエラー:固定長文字列型や静的変数の
データの大きさは 64KB を超えることはできません。」
と出てしまいました。実際読み込もうとしたデータは 64KB 越えている(約65KB)のですが、
データをバラしてTypeで2回宣言しようとしてもやはり同じエラーが出てしまいました。
どうにかして読み込ませる方法はないものでしょうか…。
857デフォルトの名無しさん:01/11/23 18:22
VB初心者です。
テキストボックスでは多くの文字を表示できないということで
リッチテキストを使用してみたのですが、どうもうまくいきません。

テキストファイルの読み込みで

Private Sub mnuOpenItem_Click()
Wrap$ = Chr$(13) + Chr$(10)
CommonDialog1.Filter = "テキストファイル(*.txt)|*.txt"
CommonDialog1.ShowOpen
Open CommonDialog1.FileName For Input As #1
Do Until EOF(1)
Line Input #1, lineoftext$
alltext$ = alltext$ & lineoftext$ & Wrap$
Loop
Rtxt1.Text = alltext$
Close #1
End Sub

と、しています。

alltext$が悪いらしいのですが、
どのようにしたらよいのか、解決法をご教授ください。
よろしくおねがいします。
858デフォルトの名無しさん:01/11/23 20:39
>855
黒本ってなに?
859 :01/11/23 20:40
>>865

VBってまだセグメントとか気にしないといけないの!?
さすがIntegerが16bitなだけあるな・・・。
860855:01/11/23 20:42
Integerは32ビットだよ。ただ範囲を16ビットに抑えてるだけ
>>861
マジで?
>>857
>どうもうまくいきません
何が?どのように?
見た限りでは特に問題ないように見えるけど、もしかすると
実行するとプログラムが応答しなくなるとかかな?
もしそうならば、しばらく放置してみそ。多分きちんと表示されるから。

もし違うなら、「うまくいかない」とはどのような状態になっているのか
書いてくれれば、それなりに回答のしようはあると思うよ。

それから、Chr$(13) & Chr$(10) は708でも書いたけど
vbCrLf っていう定数があるので、それを使うよろし
すべては互換性のため。
それとセグメントなんか関係ないよ
当然でしょ
>>857

RichTextBox使ってるなら、そんな面倒なことしなくても、

 Private Sub mnuOpenItem_Click()

  CommonDialog1.Filter = "テキストファイル(*.txt)|*.txt"
  CommonDialog1.ShowOpen
  Rtxt1.LoadFile CommonDialog1.FileName , rtfText

 End Sub

これで十分な気がするけど。
ちなみに、大きなループの中で A$=A$ & B$ って操作をやると死ぬほど重く
なる&メモリ効率が異様に悪くなるのであんましお勧めできない。
867デフォルトの名無しさん:01/11/23 23:45
たびたびすみません。
標準モジュールを使うときって関数形式にするって書いてあったんですけど、
どうやって内容を保持すればいいんでしょうか?

例えば、
(標準モジュール)
Public Sub abc(n As String)

End Sub

(フォーム1)
Function abc(n)

n = Text1.Text

End Function

(フォーム2)
Function abc(n)

Text1.Text = n

End Function

これではダメなのでしょうか?
(ダメなんですけど)
>>867
標準モジュールに
Public n as String
を追加すればいいんでないの?
869デフォルトの名無しさん:01/11/23 23:54
できませ〜ん(><)
>>869
何が?
871デフォルトの名無しさん:01/11/23 23:59
>>869ではできませんでした。

Public Sub abc(n As String)
Public n as String
End Sub

これでいいんですか?
872857:01/11/24 00:01
>>863 >>866
アドバイスありがとうございます。
早速試してみます。

うまくいかないというのは、プログラムがフリーズ(応答がありません)
してしまうのです。

どうもでした。
873856:01/11/24 00:01
>>856ですが、>>889のレスは私に対するものなのでしょうか…。
解決方法のご教示お願いします。
874868:01/11/24 00:06
>>871
関数の外でやるの。
>>871

そこじゃなくて、宣言領域に書くよーに。
標準モジュールの、あらゆるプロシージャより上に書くってことね。

Option Explicit

Public gstrText As String  '←これね。

Public Function hogehoe......

みたいな。
876デフォルトの名無しさん:01/11/24 00:13
>>874
できました(・∀・)
ありがとうございましたm(_ _)m

関数とは全く別なんですか?
思ったよりもずっと単純なんですね。
877868:01/11/24 00:17
>>876
大域変数はあんまり使わない方が宜しいかと。
どうしても使う場合は、>>875 氏のサンプルみたいに
ちゃんとした名前を付けると良いです。
878デフォルトの名無しさん:01/11/24 02:01
標準モジュールにオブジェクトを返す関数を作った場合、
その解放については記述しなければならないのでしょうか?
例えば、

Public Function Test() As Recordset
  〜色々
End Function

と書いた場合、フォーム上で

Set rc = Test()

としてRecordsetを取得・使用した後、最後の方にお約束として

Set rc = Nothing

と記述します。
この場合、

Set Test = Nothing

みたいな構文は必要ですか?
879デフォルトの名無しさん:01/11/24 02:05
>>878
使わなくなったら勝手に削除されるから必要ありません。
880878:01/11/24 02:11
>879

なるほど。
Test = Nothingって書いてもエラーになるから、勝手に削除される
って事だろうとは思っていたけど、これでスッキリしました。
ありがとう。
881デフォルトの名無しさん:01/11/24 09:48
厨房な質問かも知れませんが教えてください。

実行中に最小化すると
実行時エラー(プロシージャの呼び出しまたは引数が不正です)が出てしまいます。
どうもresizeに問題があるようなのですが・・

resizeはこのようなもので行っています。

Private Sub Form_Resize()
text1.Move 0, Toolbar1.Height, form1.ScaleWidth, _
form1.ScaleHeight - StatusBar1.Height - Toolbar1.Height
End Sub

解決法を教えてください
>>881

OnErrorResumeNext

これを行頭に入れる。
Form_Resizeには面倒だからこうするのが楽だと思うー。
…だめ?
あとは、

If Me.WindowState = VbMinimized Then Exit Sub

これを行頭に入れるとか。
883881:01/11/24 10:17
>>882

If Me.WindowState = VbMinimized Then Exit Sub

使って、できました!
ありがとうございます!
878とは別人なんだけど
>>879
やっぱりそうだよねぇ・・・
でも何かを使ってて(何だったか忘れたけど)
最後に Set objSomething = Nothing とやってやらないと
プロセスが残ってしまって随分苦労したんだけど
(これっていわゆるスマートポインタだよね??
一体どういう条件の場合なら Nothing 入れてやらないといけないのか
なんかマニュアルに載ってたっけ?
# いや、もう終わった仕事だからいいんだけど。。。
>>884
Excel とかじゃなかったっけ?
>>884 >>885
Excelって、ワークシートとか適当に使うと
残るよね。

ちゃんとSETして、開いたら開いた数だけCloseとかQuitして、
最後にNothingしないと。
887デフォルトの名無しさん:01/11/24 16:20
厨な質問かも知れませんが、
Function プロシージャは値を返すのに対し、Sub プロシージャは値を返さないですよね?
このことから単純に考えると Function > Sub な気がするんですが、
Function のデメリットって一体何なのでしょうか。
>>887
メリット・デメリットで考える事でもない様な...
値を返したければ Function を使えばいいし、
返す必要が無いなら Sub を使えばいいし...
値を返さないFunctionが許されるほうが不思議なんですが>>VB
あれは何のためにあるの?
890デフォルトの名無しさん:01/11/24 17:20
>>889
あとから戻り値が必要になったらメンドウだってんで
最初から全部Functionで書く、という人がいました。
>>889
明示的に値を返さない場合、デフォルト値が返されるだけじゃないの?
892887:01/11/24 17:26
>>888-890
レスありがとうございます。普通に使い分けてみることにします。
893デフォルトの名無しさん:01/11/24 22:27
はじめまして。
最近VB始めたんですが、考え方分かりやすくて楽しいですね。

えっと、質問させて下さい。
ファイルリストボックスで選んだMP3ファイルをWinampで演奏したい
のですが、VBからWinampを開く方法が分かりません。
他のアプリケーションを開くソフトってよくあるので出来ると思うのですが・・・。
でも演奏スタートさせるってのは無理かなぁ?
よろしくお願いします。
894名無しさん…:01/11/25 00:00
VB5入れてSP3当てて他人から貰ったソース開こうとしたら
"C:\ 〜 \COMDLG32.OCXが読み込めませんでした"
となりました。
PRJファイルのパスを見に逝ってるようです。
これはどうしたらいいんでしょ?

環境:
WIN98にOffice97,IE5等が杯ってます。
分かる人よろしくお願いします。
895名無しさん…:01/11/25 00:02
ちなみに
COMDLG32.OCX は
C:\WINDOWS\SYSTEM に入ってます
>>894
参照設定しなおせばいいんじゃない?
897名無しさん…:01/11/25 00:16
>>896
レスありがとうございます。
エラーを無視してロードを続けてから・・ですか?

すいません。
手順などをもう少し噛み砕いて説明して下さると助かります。
898896:01/11/25 00:29
>>897
読み込めなかったのは、コモンダイアログだけなんでしょ?
まず、おっしゃる通り、エラーを無視しつづけてプロジェクトの
ロードを完了してから、プロジェクト > コンポーネントで
コントロールを参照しなおしてみてはいかがでしょ。
899名無しさん…:01/11/25 00:37
>>898
分かりました。ありがとうございました。
900名無しさん…:01/11/25 00:40
で、これはちょっと別の話で原因なんですが、それも分かりました。
バージョン違いです。
ソースを貰った先のバージョンが6なんだそうです。
前にVB6インストール ⇒ 同アンインストール ⇒ VB5インストール
これ・・・・ちょっとマズそうですよね。
僕ももう少し調べてみます。
なにか分かる事があったらお教え下さい。
取り合えずありがとうございました。
901デフォルトの名無しさん:01/11/25 02:39
VB6、ACCESS2000使用です。
ADO接続、SQLで取得したレコードセットのデータを
アクセスのレポートのように次々と連続印刷をしたいのですが
何か良い方法はないでしょうか?
本来ならばDataReportで印刷するべきなのだと思うのですが
データコントロールを使いたくないので、DataEnvironmentを使わず印刷
かつ、データベース意外から取得したフォーム上からのデータも印刷したいんです。
DataReportにデータを送ることが出来るのであれば良いと思い調べたのですが
(゚д゚)ウマー!な感じが見つけられずお手上げ状態です。

エクセルにデータを送って印刷を考えましたが
こちらではVBからデータ出力は良いのですが連続で印刷する方法がわからず
次にアクセスで印刷を考えましたが、こちらでは印刷は良いのですが
アクセスのレポートにVBからデータを送る方法がわかりません。
(そのまえにそんなことができるのでしょうか)

長くて申し訳ありません・・・。
なにか良い知恵、ヒントがありましたらお貸し願えないでしょうか
>901
DB接続不要のReportを使うのが一番簡単。
VB-Reprotなんかはこのタイプ。

んで、DataReportやAccessのレポートなどのDB連結型の
帳票ツールで良くあるパターンとしては・・・

印刷用のMdbを作っておき、そのテーブルにデータを書き
込んだ後、連結したReprotを起動するのが定番。(多分な)
印刷用のMdbはあくまでもワークなので、印刷時には毎回
データを消去してから使う。
903デフォルトの名無しさん:01/11/25 16:42
はじめまして。新米のPG兼SEですが、現在あるソフトの納品で困っています。

Oracle8.1.5をRDBMSとしたクラサバのシステムで、クライアントがWin95
の場合に問題なく稼動していた自社開発アプリを客先の関係で
Win98にインストールして使用すると、データが処理が長引く場合
いつのまにかクライアントPCがリセットしてしまうことが多くて困っています。
(といってもテキストデータをDBのてーぶるに1000件ほど落とし込む
複雑じゃない処理です)

ミドルウエアはDataDirect社のData Connect ODBC3.50、
開発言語はVB5.0で、サーバDBとのやりとりにはrdo2.0を使っています。
(会社の規定。つーかその組み合わせ以外開発した人が居ない)
クライアントPCはFMV-6766CL7、サーバも富士通のサーバ機を
つかっています。

Win95→Win98へのアプリ対応などでもし同じような経験があられる
SEさんがいらっしゃったらアドバイスをお願いいたします。m(..)m
904デフォルトの名無しさん:01/11/25 16:42
あ、サーバのOSはWinNT4.0SP6.0です…
905デフォルトの名無しさん:01/11/25 22:59
>902さん
すみませんでした。
頭の中が、とにかく印刷、としか考えてなかったみたいです。
印刷用のMdbですね。やってみます。
ありがとうございました。
906デフォルトの名無しさん:01/11/25 23:48
他のスレでうるう年判定プログラムを
if文で作ってるってのを馬鹿にしてるのがあったんですけど、
どうやったらもっとスマートに作れるんですか?
>>906
ライブラリに任せる
908906:01/11/25 23:55
ライブラリに任せるとは?
すぐ思いつくものだと「n年2月29日」が有効な日付かどうか?
を調べるとか
dateadd で2月28日に1日足してみるとか。
DateSerial(年, 2 + 1, 0) で月末の日付を調べるとか。
912909:01/11/26 06:00
>>910>>911がスマートに思えないのは俺だけか?
blnUruu = ( Y mod 4 = 0 and Y mod 100 <> 0 ) or Y mod 400 = 0

こんな感じは駄目か?
4で割り切れて100で割り切れない年か、400で割り切れる年が閏年。
一応、Ifは使ってないけど。
つーか、漏れならこうするが。グレゴリオ歴が続く限り、1582年以降
なら何万年先でも判別できる(笑
914初心者厨房:01/11/26 09:40
えっと、VBで自分以外は見えてはいけないファイルって
事で、ガードをかけたいんですがどうしたらいいのか
本当に分かりません!
申し訳ないのですが分かる方がいらっしゃいましたら
ぜひ教えてください。
915デフォルトの名無しさん:01/11/26 09:41
>>914

なんか日本語が変・・・
916仕様書無しさん:01/11/26 10:12
>>913
それ以上にシンプルな方法はちょっと思いつかん。クラスの中に隠蔽するなら
その書き方だね、折れも。
でも、他人に見える部分では、愚直に If で書く。むしろプロなら愚直に書く
人のほうが多いんじゃないかな。
>>906
トリッキーなコード書いて一人で悦に逝ってるオナニー野郎は無視しとけ。
917767:01/11/26 11:17
>>914
NTFSにしてセキュリティかければ済む問題じゃないの?
>>916
>でも、他人に見える部分では、愚直に If で書く。むしろプロなら愚直に書く

909がトリッキーなコードか?むしろ素直な書き方だと思うぞ。
関数でラップするのは当然だが、
今の時代、できるだけライブラリに任せるのが常識。特に日付関係は。
うるう年求めるだけで終わりじゃないだろう?
俺に言わせたら>>913の方が
int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
の延長に見える。
If使ったぐらいでプロかよ。とんだオナーニ野郎だな
まぁIf〜ElseIfを延々と続けるプロもおりますので。
921デフォルトの名無しさん:01/11/26 15:09
文化オリエントのPowerToolsって使ってる人いますか?
自分は、DenpyoMan Ver.1.0J トライアル版を試用してますが、なかなか上手くいかないです。

製品版買うと、文化オリエントに質問とかできるんでしょうかね?
PowerToolsユーザーさんの実体が知りたいです
922初心者厨房:01/11/26 15:22
>>917 本当にDQN的な質問ですみません。
NTFSってなんですか?
本当に何もわからない厨房なんで小学生に教える容量で
教えていただけると助かるのですが。。。
わがままを言って申し訳ありません。
923漏れも厨房:01/11/26 15:26
>>922

Windows NT用のファイルシステム。
FATにセキュリティを付加したものかな?
924超初心者:01/11/26 15:50
「コーディング」って何ですか?
これからプログラム始めようと思ってるんですが、マジで知りたいです。
教えて下さい。
>>924 ・・・
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%A5%B3%A1%BC%A5%C7%A5%A3%A5%F3%A5%B0&sw=2

あんまり言葉を気にしてると先に進めなくなるよ
本当に最初は何も気にせずにプログラムを作り
なんとなくわかったところで色々調べてみるのが
良いかと思われ・・・
そろそろPart4の時期ね
>>918
>>909のやりかたがトリッキーじゃないってのは同意だが、
>>913
int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
と同じってのは理解できない。
任意の年が閏年かどうか判定したいだけじゃないのか?
閏年は暦学的に計算で決定できるのだから、>>913みたいな計算
で求めるのが本筋だと思うが。
928名無しさん…:01/11/26 20:51
こんばんは。
私、今現在VB4ソースをVB5にコンバージョンする作業をしてますが、
↓こんなエラーで苦しんでます。
http://www.microsoft.com/japan/support/kb/articles/J041/2/90.asp

で、同じ事(VB4⇒VB5)をした経験ある方がいたら、経験談をお教え下さい。
・どんな事に苦労したか
・どんな事に気を付けるべきか?
雑談として、ざっくりとで結構です。
>>927
>>>913
>int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
>と同じってのは理解できない。

禿銅。
着目点がぜんぜん違う。2月の日数に着目するか、うるう年自体を計算で決定するかの違い。
まあ、俺なら>>913のやり方でやる。
クラスに隠蔽されているからって、同じ処理を2回も3回も繰り返すようなプログラムは
書きたくないね。
こんな考え、時代遅れですか?
930デフォルトの名無しさん:01/11/26 23:25
VB初心者です。

勉強のためテキストエディタを作っていまして、
テキストボックスに行表示をいれたいと思うのですが、

どうもうまいやり方が思い浮かばず、悩んでいます。
どなたかご指導おねがいします。
931デフォルトの名無しさん:01/11/27 00:09
すみません、リッチテキストボックスコントロールでForeColorプロパティは
操作できないのでしょうか?ヘルプには載ってるのですが…
>>930
private sub text1.change
if false=isnumeric(left(text1.text,5)) then
text1.text=format(番号,"00000") & text1.text
あーわかんねぇや
>>931
RichTextBox1.SelColor = &hFFCC88&
とかいうふうにやればいいかな。
SelStart、SelLengthを適切に設定してね。

ただ、RichTextBoxで頻繁に.Sel〜系で操作してるとアプリが
落ちることがあるよ。チャットみたいなやつだと特に。
>>930
テキストボックス一つでまともなエディタが作れるとは思わない方がいいです。
メモ帳程度で我慢しましょう。

>>931
リッチテキストにForeColorはないと思う。
よくある誤記でしょ。
>>931
リッチテキストは色々と仕様が腐ってるので、注意して使った方がいいです。
9xと2000で動作が微妙に異なるとか、Findメソッドでの始点は文字数ではなく
ShiftJIS文字でのバイト数だとか、変なのがいっぱい。
まぁ、たんなる大きなテキストボックスとして使うなら、あまり不都合無い
ですけどね。
936931:01/11/27 03:03
>>933-935
どうもありがとうございます。
確かに不自然なところが色々あるみたいですね…
937超初心者:01/11/27 03:24
>>925
答えて頂いて、ありがとうございました。
938デフォルトの名無しさん:01/11/27 07:19
903です…

すみませんどなたかアドバイスお願いします。
>>903 >>938
ここで放置されたら、↓へ行ってみるといいかもしれません。
ttp://www.sfdata.ne.jp/windev/Vb/
>938
そのM$のページにあるテは試した?
それでもダメだってんなら、新規フォームで1から作る(ソースはコピー可)
とかすれば解消されるかもしらんよ。
941デフォルトの名無しさん:01/11/27 17:06
VB4でリスト構造を扱いたいのですが、できるでしょうか。
942930:01/11/27 17:47
リッチテキストを使ってもできないでしょうか。
VBでは無理だという結論なら諦めますが・・

可能であれば、方向性だけでも教示願いたいです。
943デフォルトの名無しさん:01/11/27 18:52
Windowsでお馴染みのウインドウ右上の×ボタンを押されたときに、
フォームのunloadに「終了しますか」OkCancelってやってんですけど、
Cancel押したときに戻ってくる処理が分かりませぬ。
Unloadに書くのが悪いんすか?
>>943
QueryUnloadに書いてください
EPSONのNT-800でPowerBuilderを使うと異常に遅いんですけど。
たぶん、ビデオドライバのせいみたいなんだけどなんとかならんかい?
SiliconMotionのHP行ったけど、ドライバ98年から更新されてなくて
ダウソしたけど速くならなかった。でも、型の一つ違う新しいドライバいれたら
速くなった。画面がちょっと乱れるけど。
946943:01/11/27 19:28
>>944
ありがとうございます。明日学校で試します。
vbCancelんとこは普通に終わってれば良いんすよね?
>>946
Cancel = True
で終わっとけばいい
948943:01/11/27 19:40
>>947
ありがとうござす。試します試します。
949934:01/11/27 22:41
>>930 >>942
テキストボックスとか出来合いのものを使って作れるのは
メモ帳ぐらいまでってことだよ。
テキストにしろリッチにしろそういう用途のためにはできていないし、
ちゃんとしたエディタ作るのはVB以外でも面倒なもんだよ。

テキストの左にピクチャでも置いて行番号はそこに描画するってのはどう?
サブクラス化でテキストボックスのWM_PAINT拾って描画。
CVS形式のファイルってなんでしょ。
どうやって扱うの?
>>950
カンマをセパレータにしてフィールドを区切ったテキストファイル。
基本的には、テキストファイルと扱いは同じ。
>>950 >>951
どっちかが間違えてねーか?
バージョン管理ツールの話?
953:01/11/28 00:44
ピクチャーボックスにグラフを書くときに、x軸とy軸の目盛りをつけるのはどうやればいいんでしょうか。
座標のとりかたがよくわからないんです・・・。
954 :01/11/28 01:20
>>950 はCSVの話してる
に5000ペリカ!!
955デフォルトの名無しさん:01/11/28 07:10
すみません、rtbFind(リッチテキストボックス)の文字列を
rtbText(リッチテキストボックス)内から検索する機能、または
rtbChange(リッチテキストボックス)の文字列で置換する機能を
つけたいのですが、どうすれば良いのでしょうか。
↓の記述じゃ駄目みたいで…宜しくお願いします

'検索ボタンの処理
Private Sub cmdFind_Click()

rtbText.Find rtbFind.TextRTF
rtbText.UpTo rtbFind.TextRTF

End Sub

'置換ボタンの処理
Private Sub cmdChange_Click()

rtbText.Span rtbFind.Text
rtbText.SelRTF = rtbChange.Text

End Sub
956Kusakabe Youichi:01/11/28 07:14
>>950 デフォルトの名無しさん wrote:
> CVS形式のファイルってなんでしょ。
> どうやって扱うの?

CSVのことだったりして:)
>>955
rtb.Textと、rtb.TextRTFの違いをちゃんと認識しましょー。
FindとかSpanにRTF突っ込んでもちゃんと動かないと思うよ。
逆に、SelRTFに普通のText突っ込んでも駄目ね。
958デフォルトの名無しさん:01/11/28 09:57
OLEコントロールでWord2000文章を表示してPrintformで印刷しました。
このときOLEのBorderStyleをなしにしても
印刷結果ではOLEの境界線が印字されてしまいます。
このOLEの境界線を印刷されないようにするにはどうしたらいいのか
教えてください。VB6.0(SP5)です。
959ll:01/11/28 12:09
Formのresizeイベントについて。
ドラッグしてサイズ変更をする場合 ドラッグしている最中に処理を実行するには
どうすればいいのでしょうか。普通にやるとドラッグ操作を完了してからでないと
処理が実行されません。
実行時にプログラムからテキストボックス、ラベルなどを
一時的に作成することはできるのでしょうか?

「テキスト追加」の様なボタンを押すと、
フォームにテキストボックスが追加できれば良いのですが?
追加したものは、フォームを閉じるときに破棄されて構いません。
>>960 MSDNからコピペ

Load ステートメント


フォームまたはコントロールをメモリにロードします。

構文

Load object

object には、ロードする Form オブジェクト、MDIForm オブジェクト、またはコントロール配列の要素の名前を指定します。
962960:01/11/28 13:13
>>961
ありがとうございます、出来ました。

LOADだけでは非表示されているみたいですので、
VisibleをTrueしました。
表示させると、追加元となるコントロールに重なっているので、
TOP,LEFTをずらして追加されていることを確認しました。

早いレスで回答して頂いて助かりました、有り難う御座います。
963デフォルトの名無しさん:01/11/28 13:45
質問が有ります。

WINDOWS2000の環境で使用しているときに、
下記動作を行うと、テキストボックスのValidate処理が起きません
どうしてでしょうか

テキストボックスにて入力後(フォーカスは、テキストボックスのまま)マウスで、
タブ(SSTab)をクリックするとテキストボックスのValidate処理が発生しません。

環境
NT4.0 SP6、VB6.0SP3にてコンパイル
2000SP2 VB6.0 SP5 の環境にて実行

NT4.0 SP6、VB6.0SP3だと、テキストボックスのValidateイベントが発生します。
パート4立てました......
965デフォルトの名無しさん:01/11/28 17:07
>>964
リンクぐらい貼れこのボゲ

VB初心者質問スレ Part4
http://pc.2ch.net/test/read.cgi/tech/1006922992/
>>959
「サブクラス化」で検索しる!
あ、サブクラス化について
ttp://www.vt.sakura.ne.jp/~xration/vb/
の SubClass ActiveX Dll かますと氏ななくて便利だYO!
968blue:01/11/28 19:48
大学生ですが、自己相関相互相関をVBAで計算させようとしてなやんでいます
なにか、いいプログラミング例はないでしょうか
969ll:01/11/28 22:13
>>966
>>967
ありがとうございます。勉強してみます・・・。
970たかし:01/12/03 09:44
初めまして。さっそく質問します。
osがwindowsMEの場合、datagridコントロールは正しく表示されないのですか?
>>968>>970
新スレ逝け。あとageんなクソ虫どもが!
972sage
一応こっちね。
VB初心者質問スレ Part4
http://pc.2ch.net/test/read.cgi/tech/1006922992/