2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

VB初心者質問スレPart3

1 :デフォルトの名無しさん:01/09/15 12:05
VB初心者質問スレPart2
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=990793224&ls=50

2 :デフォルトの名無しさん:01/09/15 18:18
////////////////////////// 終了 //////////////////////////

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名の取得方法がわかりません。

6 :5:01/09/16 01:08
ここにありました。よかったあって。
ttp://www.mitene.or.jp/~sugisita/family/papa/vb/api_sysi.html

7 :3: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(藁
受信はフックしてやってください

13 :デフォルトの名無しさん:01/09/16 15:11
VB の ListView にはソートイベントってないの?
2つのアイテムを比較するときに発生するイベント。

14 :デフォルトの名無しさん:01/09/16 15:21
>>13
ColumnClickじゃない?

15 :13:01/09/16 15:30
>>14
>>9

であれば、その ListView.ColumnClick イベントで、
日付を日付として比較するように書いてやればよいのでは?

16 :9: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

19 :8のソート君です:01/09/16 18:45
>>11
月日はそうなんですが、時間の部分は0ないですよね。
まあ、エクスプローラがVBで作られたとは思えませんが。

>>13
>>14
>>15
こんなの見つけました。
http://www.mvps.org/vbnet/index.html?code/callback/lvsortcallback.htm
みなさんのおっしゃっている事はこれのことでしょうか。
しかし、ここまでしなければならないのでしょうか。
なんか最後の方よく読むと問題もあるらしいし。。。
もっと簡単でスマートな方法ありますでしょうか。(と甘えてみたりする)

20 :h:01/09/16 18:49
モロ、無修正画像サイト発見!

http://www.sex-jp.net/dh/01/
http://www.sex-jp.net/dh/02/
http://www.sex-jp.net/dh/03/
http://www.sex-jp.net/dh/04/

21 :質問:01/09/16 19:41
いまさら気づいたんですが、
VBのテキストボックスって65536文字(だっけ?)くらいしか
入れられないんでしょうか。
もっと増やしたいのですがアドバイスください。
お願いします

22 :デフォルトの名無しさん:01/09/16 19:48
>>21
そうです
とりあえずリッチテキストボックス使いましょう

23 :17:01/09/16 20:05
>>18
ファイルに吐き出すとか変数に入れるとかして色々やるつもりですが、
充分に応用できそうな感じですね。
ありがとうございました。

24 :21: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"
となりますよね。
この両端のダブルクォーテーションが要らないんですが、どうしたら良いでしょうか?

26 :デフォルトの名無しさん:01/09/16 22:50
>>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

28 :25: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とかで、広告出してる感じのやつ)
どうすれば出来るんでしょうか?
おしえてん@

31 :デフォルトの名無しさん:01/09/17 18:34
>>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/

35 :デフォルトの名無しさん:01/09/18 08:34
>>34
ttp://www.page.sannet.ne.jp/kamishima/

かなりイタイ。

36 :デフォルトの名無しさん:01/09/18 10:25
>>34
Javaと同じでGCだよりです。

37 :nanasisan: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

38 :34:01/09/18 11:32
>>35
>>36
>>37

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

・・・みなさん笑ってるソフトは別スレから。
http://salad.2ch.net/pc/kako/979/979942202.html

39 :デフォルトの名無しさん:01/09/18 11:36
オカルトアプリ厨房…

40 :回答、よろしくお願いします。:01/09/18 14:29
ただいまVBで簡単なカードゲームを作っているんですが、

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

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

回答の方ヨロシクおねがいします。

41 :デフォルトの名無しさん:01/09/18 17:34
>>29
リストボックス等に列挙するのはキツイですが、
コモンダイアログならできます。
CommonDialog1.Flags = cdlCFBoth Or cdlCFFixedPitchOnly
CommonDialog1.ShowFont
って漢字で。

42 :40:01/09/18 17:58
一応無理やりプログラムで偽装しました。


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

APIかなにかで複数選択にはできないのでしょうか?

43 :デフォルトの名無しさん:01/09/18 18:53
ウィンドウズの時計合わせって、どうやれば作れますか?
時刻の変更と、NTPサーバーへの接続と・・

44 :43:01/09/18 21:13
あ、で・・Dateステートメントがあるのか・・・
自己解決してしまった・・・(滝汗
鬱だ氏のう・・・

・・・・でもNTPサーバーの接続ってば・・・

45 :VB君: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のコントロールを
実行時に新しく生成ってできるんでしょうか?

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

# イベントハンドラを与える方法が無いとかの理由でムリなのかしら…

48 :デフォルトの名無しさん:01/09/18 23:20
>>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"が出てくるのかよくわかりませんです。
どなたかアドバイスよろしくです。

50 :nanasisan:01/09/18 23:59
>>45
NT/2000リソースキットのsrvanyを使うと良い。
サービス周りの部分だけやってくれる。

51 :47:01/09/19 00:03
>48
あ、ほんとだ!!コントロール配列使うとは気づかなんだ…
知らないって恐いっすな。感謝っす〜

52 :47: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"が出てくるのかよくわかりませんです。
いや、コメントが間違ってるだけのように見える

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

ということを心得よう

54 :53: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
モロ、無修正画像サイト発見!

http://www.sex-jp.net/dh/01/
http://www.sex-jp.net/dh/02/
http://www.sex-jp.net/dh/03/
http://www.sex-jp.net/dh/04/

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でエクセルファイルを出力したいのですが、
それってできますか?
エクセルファイルを読み込むことはできたんですけど。

よろしくお願いします。

64 :デフォルトの名無しさん:01/09/20 14:30
>>63できるよ。
xl.ActiveWorkbook.Close True, savefile
xl.DisplayAlerts = False
こんな感じ。

65 :デフォルトの名無しさん:01/09/20 14:36
>>62
Sheet1.Range("A1", "A2").Width
試してないけどこれじゃあ行かんの?

66 :デフォルトの名無しさん:01/09/20 15:27
>>60
http://homepage2.nifty.com/tamarinn/VBA.html#anchor23431
こんなのどうですか

67 :64:01/09/20 16:14
>>63
なるほど。
ありがとうございました。

68 :ほんとの64:01/09/20 18:08
>>67 ???
  67 名前:63 :01/09/20 16:14
  >>64
  なるほど。
  ありがとうございました。
ってこと?

69 :63: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付属のディストリビューション ウィザードとインストールシールド以外で、
できればフリーのモノがいいのですが・・・。

71 :64:01/09/21 23:09
>>69
lim = filename.worksheets("sheet1").Range("A1").end(xlToRight).Column
だよ。
xlToRightはプロパティーでもメソッドでもなく定数。
>>62
ついでに今VBで試したけど>>64のやりかたででてきたよ。
VBAのマクロでも今やってみた。
普段使わんから使い方がようわからんかったけど結果は同じやった。
ようするに結合しても結合前の範囲を指定せないかん訳だな。
A1とA2を結合しているならA1とA2を指定すると言うこと。

72 :デフォルトの名無しさん:01/09/22 00:35
>>70
>ちゃんとプロジェクトを解析して…
ディストリビューション ウィザードとインストールシールドで
いいと思われ

73 :デフォルトの名無しさん:01/09/24 14:47
age

74 :デフォルトの名無しさん:01/09/24 15:01
VBのまったくの初心者にお勧めの解説本って
どういった物が良いのでしょうか?

75 :デフォルトの名無しさん:01/09/24 21:23
>>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つのテキストボックスに行別に格納するための
方法を教えてください

よろしくお願いします。

79 :64: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行しかないとかそういったときのエラー処理は
適当に考えて頂戴。

80 :1:01/09/25 01:54
http://members.tripod.co.jp/bingo852/

81 :64: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が帰ってきてしまいます。

85 :デフォルトの名無しさん:01/09/25 11:41
プロセスが違うと無理

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
フォームの表示位置を設定したいんだけど。。

89 :デフォルトの名無しさん:01/09/25 20:00
>>88
どこらへんに?

90 :デフォルトの名無しさん:01/09/25 20:10
らるちーみたいに、
二つのフォームを結合させるのは、どーやるんでしょうか?

91 :sage:01/09/25 20:27
with me
.top = 100
.left = 200
end with
ってな感じでできちゃった。
自分で解決したのでsage

92 :デフォルトの名無しさん:01/09/25 20:28
textBoxに入力した桁数はどうやって取得するのですか?

例えば
┌───┐
|ABCD |
└───┘
と入力した時には、「4」という値を取得したいのですが…。
お願いします。

93 :デフォルトの名無しさん:01/09/25 20:39
>>92
len(text1)

94 :93:01/09/25 20:42
・・・ちと、いー加減だったか。(汗
MsgBox Len(Text1)
文字数の取得でいーんだよね?
バイト数やったらLenB・・・
いちおー、基本中の基本やから・・・

95 :デフォルトの名無しさん:01/09/25 20:47
ありがとうございます!!
基本なんですがこれにちょっとはまってました。
助かりました。

96 :デフォルトの名無しさん:01/09/25 20:53
拡張子lzhに対応するスクリプトエンジンはありませんと
言うわれたんですけどどうすればいいんですか

97 :デフォルトの名無しさん:01/09/25 20:57
>>96
どういう状況で言われたの?

98 :デフォルトの名無しさん:01/09/25 21:04
>>97ダウンロードしたゲームを開こうとしたときです

99 :97:01/09/25 21:06
>>98
そのゲームが、ドコにあるのかが分からんと、どーにも。
・・・つか、開発関係の質問に該当するんでしょか?

100 :デフォルトの名無しさん:01/09/25 21:24
あの、初心者の人はVB6は我慢して、VB.netをやったほうがいいと
思うんだけど。(マジレス

ADOとかも大きく変わるよ。RecordSet亡くなるし。

101 :デフォルトの名無しさん:01/09/25 23:15
>>100
VB.netをはじめるなら
C#とかの方が
後から仕様追加して無い分
仕様が素直だと思うが
どっちが取っつきやすいかは人によるが

102 :デフォルトの名無しさん:01/09/25 23:37
VBでブラウザを作っています。
が、IEなどにあるブックマーク一覧表の作成でつまっています。
FileListBoxを作ってそこに表示させるようにしてみましたが、
C:\WINDOWS\Favoritesからデータを拾ってくるように指定する
方法がわかりません。
もしかしたらFileListBoxよりもっとスマートな方法があるのかもしれません。
ご存知の方、どうかご教授ください。

103 :デフォルトの名無しさん:01/09/26 00:45
>>102
>FileListBoxを作ってそこに表示させるようにしてみましたが
の時点で
>C:\WINDOWS\Favoritesからデータを拾ってくるように指定
できてるんじゃないか?

だいたいFileListBoxじゃ、お気に入りの階層構造はどうすんのよ。
それにお気に入りはC:\WINDOWS\Favoritesって決まってるわけじゃないしな。
そのまま続けたら高速ダウンローダ2000が出来ちゃうよ。

104 :102:01/09/26 02:55
レスありがとうございます。
>>C:\WINDOWS\Favoritesからデータを拾ってくるように指定
>できてるんじゃないか?
プログラムのソースがあるディレクトリを自動で指定してしまってるようなので
その変更方法がわからなく困っています。
>だいたいFileListBoxじゃ、お気に入りの階層構造はどうすんのよ。
確かにそうなのですが、ではどうすればいいのか、私にはわからないのです。
ドーナツのソースを拾って調べてみようと思ったらあれ、VC++なんですね…(困)

105 :デフォルトの名無しさん:01/09/26 03:41
>>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月など)を指定してレコードを検索するのには
どういうふうに書けばいいでしょうか?

108 :デフォルトの名無しさん:01/09/27 10:20
質問です。
環境はVB6SP5、WIN2000SERVER、SQLSERVER2000です。

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

既出でしたら申し訳ありません。

109 :えこえこあざらし:01/09/27 11:58
>>108

>>50でそれらしいことが書いてあるよ。
俺は詳しくはわからんが。

110 :デフォルトの名無しさん:01/09/27 14:51
>>106
(使用出来る環境なら)正規表現を用いて取り出す手もある。

111 :デフォルトの名無しさん:01/09/27 15:09
例えばテキストボックスがA,Bの2つあるフォームがあるとします。
BからAへフォーカスが移った時に
「フォーカスがBから来ました。」
という情報はどのように取得するのでしょうか?

TabIndex(?)の情報を使えば良いような気がするのですが
具体的には分からないので、どなたかよろしくお願い致します。

112 :デフォルトの名無しさん:01/09/27 15:38
>>111
WM_SETFOCUS

113 :デフォルトの名無しさん:01/09/27 15:52
WM_SETFOCUS
ってどのように使うのですか?

Text1.text = WM_SETFOCUS

としても何も表示されませんでした…。

114 :VB厨房:01/09/27 15:55
>>111
すべてのコントロールのGetFocus()イベントで現在のコントロールを何かの変数に保存しておいて
BのGetFocus()イベントでその変数を調べればいいんじゃない?

115 :デフォルトの名無しさん:01/09/27 15:56
やっぱり変数を使うしか方法は無いのでしょうか…。

116 :デフォルトの名無しさん:01/09/27 16:18
>>113-115
なぜMSDNを読まない?

117 :111:01/09/27 17:01
>>116
読んでもわからないバカなんです。申し訳ない。

118 :デフォルトの名無しさん:01/09/28 01:50
VBでコンソールに出力するには、どうしたら良いのでしょう?
printfとかcoutみたいなことがしたいのだけど。
あと、終了コードはどうやって返せば良いのでしょう?

119 :デフォルトの名無しさん:01/09/28 01:51
age

120 :VB厨房: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

選択したフォルダ内のファイルはこれで表示させることができますが、
そのフォルダ以下に入っているフォルダ内のファイルの取得方法がわかりません。
誰か詳しい人教えてもらえると助かります。よろしくお願いします。

121 :デフォルトの名無しさん:01/09/28 11:57
>>119
consoleについて
http://www.cqpub.co.jp/try/1999-9/vbcon.htm
でどうかな。
終了コードについて
ExitProcess() APIを使ってはどうかな。

122 :デフォルトの名無しさん:01/09/28 13:01
>>77
化けるって、どんなふうに?

http://www.giko.cat/写真/ドキュソ記念/docun.jpg
http://www.giko.cat/%BC%CC%BF%BF/%A5%C9%A5%AD%A5%E5%A5%BD%B5%AD%C7%B0/docun.jpg
って感じでよいの?

123 :デフォルトの名無しさん:01/09/28 14:44
例えば、(100,5)で宣言した配列に
エクセルから Range で指定した100行1列分 を
配列の4列目に入れるって可能ですか?

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

よろしくお願いします。

124 :120ですが:01/09/28 16:36
解決しました

125 :デフォルトの名無しさん:01/09/29 00:50
>>123
ループを使うのは嫌なの?

126 : :01/09/29 02:28
WIN32API.txtの最新版って公開されてる?
最新版ってのがあるのかも知らないんだけど。。。
手元にあるVisualStudio6についてきたやつは
更新日が1998/7/14ってので古すぎて使いたいAPIが無くって
むかつくんですけどぉ・・・

127 :119:01/09/29 02:51
>>121
まさしくこれです。VBではできないと思ってたので助かりました。
終了コードもExitProcessでいけました。
監視端末とかこれでつくろうっと。

128 :デフォルトの名無しさん:01/09/29 09:44
>>125
ループで解決しました。
どうもすみません・・・。

129 :デフォルトの名無しさん:01/09/29 21:35
frxファイルって、どーゆー時に生成されるんですか?
新規フォームにデフォルトで付いてくるアイコンを削除したら、
frxファイルが生成された気がするんですが・・・・
どうやりゃ削除できますか?

130 :デフォルトの名無しさん:01/09/30 03:26
>>129
frxはアイコンとかPictureBoxに貼り付けた絵とかを保存してるファイルだとオモタ。
選択してDeleteキー押すとか?
どうやりゃ削除って、右クリックして削除選ぶとか?
ゴミ箱にドラッグ&ドロップするとか?
つーかなんで消す必要があるかわからない。

131 :デフォルトの名無しさん:01/09/30 19:22
自フォームにフォーカスがセットされていない無い状態で、
キーが押下された事を取得するには、どうしたらいいのでしょうか?

132 :デフォルトの名無しさん:01/09/30 21:18
質問です。
初めてVBでちょっとしたプログラムをしてみて、
ディストリビューションウィザードでパッケージにしてみました。
すると大した機能も付けていない(と思う)んですがDLLの総量が3MBにもなっていたのです。
それくらいで普通なのでしょうか?
よろしくお願いします。

133 :新しくVBを学ぶのはやめましょう。:01/09/30 21:20
もう、やめようよ......。既存のVB消えるんだからさあ。

134 :デフォルトの名無しさん:01/09/30 21:56
俺VBと一緒に逝くよ。他の言語はハードル高すぎ…
たかすぎ〜 たかすぎぃい〜 かいぃはぁつぅ〜

135 :デフォルトの名無しさん:01/10/01 00:54
>>131
通常の方法では無理。システムフックを使うしかないと思う。

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

>>133
多分.NETのことを言っているのだと思うけど、コード体系自体はそう変わらない
わけだし、.NETがすぐに浸透するとは思えない。
未だにVB5やVB4を使っているところだってあるわけだし。
オブジェクトは変わるけどコードの書き方は基本的に同じだから
意味がないわけではないと思う。

136 :デフォルトの名無しさん:01/10/01 01:00
非マルチラインのテキストボックスコントロール上で
リターンキーを押したときにビープ音が鳴らないように設定しても
MaxLengthを設定すると鳴ってしまいます。
この場合でもならないようにするにはどうすればいいでしょうか

137 :新しくVBを学ぶのはやめましょう。 :01/10/01 01:23
まったく度素人状態から学ぶのであればやめたほうがいいとおもうんだけどねえ。

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

VBから逃れるのは大変だよ!って、使わない訳ではない。
いまも上の言語はすべて使っている。

138 :デフォルトの名無しさん:01/10/01 01:27
>>137
うるせーバカ

139 :デフォルトの名無しさん :01/10/01 01:33
>>138


140 :デフォルトの名無しさん:01/10/01 12:35
初心者より手前のレベルの入門者です。
リッチテキストボックスで
とある単語だけ強調表示(太字&フォントサイズ+1)したいのですが
どんなキーワードで捜せば「当たり」がありますか?

お暇な方、よろしくお願いします。

141 :デフォルトの名無しさん:01/10/01 13:57
テキストボックスの行間の幅を変更するにはどうすればいいのでしょうか。

142 :デフォルトの名無しさん:01/10/01 14:16
>>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

143 :140:01/10/01 14:56
>>142
試してみます。感謝です。

144 :デフォルトの名無しさん:01/10/01 15:01
>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で修正するにはどうすればよいでしょうか?

148 :145:01/10/01 16:57
>>145はVB6についてです。

149 :デフォルトの名無しさん:01/10/01 17:26
>>137
逆に貴方のようにCOBOLから入った人は理解しづらかったかもね(^^;
Message(=イベント)という概念やオブジェクト、クラスという概念は
COBOLにはないからね。上記の概念を(厳密ではないけど)簡単に
把握したいならVBは選択肢の一つになりえるよ。
言語つーのは適材適所だから、逃れる必要もないし、それは貴方の立派な
財産だと思うのですが。

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

>>147
まずVB4-16か32かはっきりさせろ。でないとアドバイスのしようがない。
とりあえずvb4のプロジェクトはVB6でも読めたはずだから、変換する事。
あとはUnicode(全角半角も2バイト)とS-JISに気をつけること。
それと一部のコントロールは使えない。

150 :デフォルトの名無しさん:01/10/01 17:37
>>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アプリのみがキー入力を認識できればもっとうれしいのですが・・・
メッセージフックという技を使えばできるのでしょうか?

153 :1:01/10/01 17:44
その画像ならココ
http://www.f2.dion.ne.jp/~impact14/

154 :デフォルトの名無しさん:01/10/01 18:24
>>152
http://soramimi-i.com/my2/vb/03/030306.htm
強制終了を禁止するだけなら、こーゆーんで。

155 :152:01/10/01 19:31
>>154
試しましたが、win2kでは使えないようです・・・

156 :デフォルトの名無しさん:01/10/01 22:20
VBというか、エクセルVBAの質問で恐縮なんですが
ワークシートにコントロールを複数配置したいのですが
うまくいかなくて困ってます。
スピンボタンのlinkedcellの値がF2のものをコピーしても
linkedcellの値がまたF2のものができてしまいます。
ここを相対参照にする方法ってないんでしょうか?
コードも継承されないみたいだし...

157 :デフォルトの名無しさん:01/10/02 00:21
>>146
実際に使ったことはないけど、midiOut〜っていうAPIを使うか、
DirectMusicでやるのが簡単そうだと思う。
自前で計算したいならMODとかについて調べるといいと思うよ。

158 :デフォルトの名無しさん:01/10/02 00:39
>>151
よう見てみ。最後のは質問として成り立ってないから
そういう口調になっても仕方ないよ。

>>152
NTと9xでは処理が全然違うんだけど、NT/2K限定でいいの?
http://members.tripod.com/~masapico/doc_DisableSAS.html

159 :デフォルトの名無しさん:01/10/02 08:51
>>158
システムが使うDLLを書き換えるのは怖いですが試してみます。
レスありがとうございました。

>>154
言い忘れましたが、レスありがとうございました。

160 :152:01/10/02 12:05
Ctrl+Alt+Del はしょうがないとして、
Alt + Tab によるアプリの切り替えを防止する方法ってありますか?

161 :デフォルトの名無しさん:01/10/02 15:39
階層フレキシブルグリッド(MSHFlexGrid)でデータを表示しているのですが
偶数行はこの色、奇数行はこの色
のように簡単に見やすく色分けする事は出来るでしょうか。

162 :デフォルトの名無しさん:01/10/02 16:08
初心者な質問で申し訳ないんですが
文字を回転させて表示することは可能なのでしょうか
どなたかお願いします。

163 :デフォルトの名無しさん:01/10/02 16:18
やろうとしてることはとても初心者向けではなひ。

164 :149/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行ずつテキストを
変数に読みこむという処理はどうすればよいでしょうか。

また,テキストとして読み込むよりバイナリとして
読み込んだほうが,やはり処理は早いのでしょうか。

168 :160:01/10/02 22:17
>>164
レスありがとうです。
検索はかなりしましたが、日本語ページしか見てませんでした。
海外の方がレベルが高いんですかー。今度は海外も見てみます。

169 :デフォルトの名無しさん:01/10/02 23:55
windows付属のスクリーンキーボードみたいに常に前面に
表示させたいのですがどうすればいいのでしょうか?

170 :デフォルトの名無しさん:01/10/02 23:58
CreateWindowEx の拡張スタイル WS_EX_TOPMOST を使うか、
SetWindowPos の HWND_TOPMOST を使う。

171 :!!!警告!!!:01/10/02 23:59
!!!VB厨房が徘徊しています!!!
!!!!!!放置開始!!!!!!

172 :デフォルトの名無しさん:01/10/03 00:06
>>169
SetWindowPos()にHWND_TOPMOSTを指定してやればOK。
ていうかこの手のは検索すれば死ぬほど出てくるが?

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

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

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

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

いいところに気が付いたけど、この程度の処理ならロジックが複雑に
なる分と相殺かな。
バイナリで読む利点はメモリにおいて読めることなんで
(ファイルI/Oのオーバーヘッドが減る)
この例のように、行先頭のみ、一行の長さが可変という処理なら
テキストで読んだほうが簡単。

173 :136:01/10/03 00:13
誰かわかんないですか?

174 :デフォルトの名無しさん:01/10/03 00:14
>>136

175 :デフォルトの名無しさん:01/10/03 00:18
>>174
今VB使ってないから、
PC内蔵のスピーカ外せ、としか言えない。

176 :デフォルトの名無しさん:01/10/03 00:27
>>136
TextBoxのKeyPressイベントで、Len(TextBox.Text) >= TextBox.MaxLength が True の場合に、KeyAscii=0にするとか。
やってないのでわからないが、理論上はできるはず。
あとはMaxLengthを2増やし、Len(TextBox.Text) >= TextBox.MaxLength - 2が(以下略)

177 :136:01/10/03 00:43
>>176
ありがとうございます。ためしてみます。

178 :141:01/10/03 01:11
>>141は無理ですかね・・・

179 :デフォルトの名無しさん:01/10/03 12:02
>>178
VBでどうやるのか知らないけど、APIでならGetFontして
LOGFONTに細工してSetFontでしょ。

180 :デフォルトの名無しさん:01/10/03 23:51
もしも、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

186 :185:01/10/04 14:37
環境は、VB6SP4、NTです。

187 :デフォルトの名無しさん:01/10/05 01:07
age

188 :デフォルトの名無しさん:01/10/05 01:46
>>183
動作速度はともかくとして、簡単に取得するなら
FileSystemObject 使うのもありかも。

189 :デフォルトの名無しさん:01/10/05 09:17
標準のリストボックスが二つあって、それぞれの内容をドラッグ&ドロップで
移動できるサンプルコードがあったら教えていただけないでしょうか?

190 :デフォルトの名無しさん:01/10/05 09:17
あげ

191 :189:01/10/05 09:26
できました。

192 :183: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 使うトコだけど。

196 :デフォルトの名無しさん:01/10/05 15:45
vbCrLfとvbNewLineの違いって何?
どう使い分けたらいいのか分からない…

197 :デフォルトの名無しさん:01/10/05 15:50
>>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よろしくお願い致します。

200 :デフォルトの名無しさん:01/10/05 20:17
>>195
それじゃお金もらえない。

処理済のテキストをもっぺん通したらどうなるか考えてみれ。

201 :デフォルトの名無しさん:01/10/05 21:39
>>198
フォームの数分変数を用意すればいいんじゃねーの?

202 :デフォルトの名無しさん:01/10/05 23:22
>>198
Form2ってのは暗黙のForm2オブジェクトのインスタンスを
示すから、Set Form2...てのはそもそも間違い。
ヘタすると循環参照になる恐れもあるし、リソースがどんどん減っていく
のが分かると思う。

203 :デフォルトの名無しさん:01/10/06 00:58
ボタンを押した時に、指定したWAVファイルを鳴らしたいのですが
どうしたらよろしいのでしょうか?
ご教授お願いいたしまっす!

204 :aita:01/10/06 01:35
VB6.0で開発してる者なんですが、mid関数を使って、文字列を2つに分けたいのですが
2つに分けた2つ目の文字列が文字化けしてしまいます。対処策を教えてください。

205 :デフォルトの名無しさん:01/10/06 01:44
>>204
2バイト文字が真っ二つになっている。
+1か-1をしてみれ。

206 :aita:01/10/06 01:48
デフォルトの名無しさん,レスありがとう!
でも、それをやっても化けちゃうんだなぁ!
どうしよう?

207 :デフォルトの名無しさん:01/10/06 02:48
>>204
つか、Mid 関数って文字単位じゃなかったっけ?
どんな文字列食わせてるの?

208 :デフォルトの名無しさん:01/10/06 16:03
最初から化けてるに一票

209 :デフォルトの名無しさん:01/10/06 18:47
再帰処理でスタック不足のエラーを捕まえるにはどうしたらいいのでしょう?

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

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

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

#再帰が浅いデータで計算するとうまく動いているから再帰関数自体は問題ないとおもう

210 :デフォルトの名無しさん:01/10/06 19:35
>>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

211 :207:01/10/07 02:31
>>210
でもさ、API から受け取る等して、Shift-JIS コードが
まぎれこんでた場合は、どうなるんだろうね。

212 :デフォルトの名無しさん:01/10/07 03:43
VBはじめて4日です。
データベースをやりたくてはじめたのですが、
ADOやらDAOやらRDOやらで、どれを勉強して良いかわかりません。
とりあえず、新しいということでADOを勉強しようと思っているのですが、
他の2つより劣っている部分ってあるのですか?

213 :デフォルトの名無しさん:01/10/07 03:47
初めてならDAOが良いんじゃないの?
情報も多いし。

214 :デフォルトの名無しさん:01/10/07 03:58
>>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 「無理」って言ってほしいように感じるけど?

218 :212: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の場合それが出ません。
これは仕様なのでしょうか?
それとも簡単に出す方法がほかにあるのでしょうか。

223 :213:01/10/07 12:40
>218
DAOはJetなどのスタンドアロンDB用。
ADOはSQL鯖などクライアントサーバ用。
お気軽って意味で、初めての時はDAOがいいんじゃないかな、と思った。
モチロン、環境が用意出来るならこの限りではないけど。

詳しくは↓でも読んでみてチョーダイ。
http://homepage2.nifty.com/inform/vbdb/

224 :デフォルトの名無しさん:01/10/07 14:37
>>218
adoの方が新しいんだから、adoやっとけ。
別にどちらが難しいとかいうことはない。同じ。

225 :sage:01/10/07 16:24
リストビューの選択項目を削除する方法を教えて!

226 :デフォルトの名無しさん:01/10/08 01:34
コモンダイアログを配置しようとすると「ライセンスが無い」といわれるのは何故?

227 :209:01/10/08 03:09
>>210
何だ、Cと一緒で自分でスタックの量を見積もらなくてはいけないのか・・
どうもありがとう

228 :デフォルトの名無しさん:01/10/08 21:34
説明下手ですみませんが、お教え下さい。
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

230 :218: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
なんか化けてるんでは?

233 :デフォルトの名無しさん:01/10/09 07:40
>>229
リストボックスに代入してから、ファイルリストに追加するとか・・・
なんや姑息な手段しか思い浮かばんな。
ってゆーか、なんでファイルリストボックスに追加したいんよ?
なんの作業をしたいの? リストボックスじゃダメなん?

234 :229:01/10/09 08:49
>>233
どうもありがとうございます。
おっしゃるとおり、リストボックスだとフルパスがどんどん追加されますね。
なんでファイルリストだと追加ができないんですか、ほんと初心者なもので。。

ちなみに、やろうとしている作業は動画リストを作ってRealPlayerで再生させようという物です。

235 :233: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)で、
ワードラップをしない方法はありませんでしょうか?

239 :229: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とかなの?
ふつーはどうやって作るもんなの?

243 :デフォルトの名無しさん:01/10/09 16:04
>>242
別にVB以外でも、たいてーの言語なら作れると思われ。
で、なにさ? それを作りたいの?

244 :デフォルトの名無しさん:01/10/09 17:39
>>243
その気になりゃWSHでもbatファイルでもできる。
つーか俺ならそうする。

245 :242:01/10/09 17:57
PVかなんかのおまけでDVDにいれるんだってさ。
作れっていわれてるんだけど
一般的にこーゆーのってどーやってつくられてるの?
ASPならちょっとできんだけどWSHなら楽かな?
おれならコレをこーやって作るっていうのきぼん

246 :193: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
返答ありがとうございます。

247 :236:01/10/09 20:12
ヘルプで探してみましたが、どうやらできないみたいですね。
あるとデバッグに便利なのに・・。
回答してくださった方、ありがとうございます。

248 :193: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が小数の場合は自動的に丸められてしまってうまく比較ができません。
この場合はどのようにしたら良いでしょうか

250 :デフォルトの名無しさん:01/10/09 21:27
>>249
割るんでなくて掛ければ?

251 :デフォルトの名無しさん :01/10/09 22:58
VB6.0のコモンダイアログから
ページ設定(プリンタの設定じゃないです)を
呼び出すにはどうすればいいですか?
メモ帳なんかだと印刷プレビューとか出ていて
いい感じなんで、あれを使いたいんですよ。

252 :249: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 'それを掛けて元に戻れば割り切れるってわけ。

254 :249:01/10/10 08:10
なるほど。ありがとうございました!!

255 :デフォルトの名無しさん:01/10/10 10:35
>>212
Accessヤレ。中身はほとんどVBだ

256 :デフォルトの名無しさん:01/10/10 12:22
A \ B だと、AやBが小数の場合うまくいかないよ
int(A / B) がいいね

257 :デフォルトの名無しさん:01/10/10 14:30
>>230

 Clickイベント中でクリック対象行の座標(Rowプロパティ)を求め、欲しい列を
Colプロパティで指定して、データをTextプロパティから取得すればOK。

258 :Surface: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です。

263 :VB厨房: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
そ〜ゆ〜こと言わないで、教えてくださいよ〜。

266 :262:01/10/10 18:35
>>264
おまえが消えろ、はぁ

267 :デフォルトの名無しさん:01/10/10 19:21
改行コードが<LF>だけのテキストファイルの改行コードを
<CR><LF>に変えたいのですがどうやったら良いでしょうか。

268 :デフォルトの名無しさん:01/10/10 19:24
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言語でアプリケーションが作れる環境がもしあるとすれば、その需要は多い。

273 :デフォルトの名無しさん:01/10/10 20:18
いつも思うんだが、VBの文字列操作関係の関数にわざわざ$をつける意味ってあるノカー?

274 :デフォルトの名無しさん:01/10/10 20:20
ない。古い伝統。

275 :デフォルトの名無しさん:01/10/10 20:27
変数の場合は"str"とかつけなくても区別できるからいいんだけどな…

276 :名無しさん:01/10/10 21:07
>>272
C#

277 :271:01/10/10 21:50
余計なこと(大事なことなんだけどさ(^^; )考えなくていいポイントが
多いよね、VBって。VCでMFC使う時は、結局ちゃんと知識得ていない
と使えないし、CのSDKはコツコツと根元から作り上げなくてはいけない。

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

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

ただ、VBしか使わないWINプログラミングっていうのは、もったいないと思うけど。

278 :デフォルトの名無しさん:01/10/11 00:54
>>276
ってゆーか、その前にC++Builderが既にあるだろ。
>>273
結果が空の時に$を付けるのと付けないのでは挙動がちがう。
例えばDir()はバリアント型のNullを返すがDir$()は""(空文字列)
を返す。

279 :デフォルトの名無しさん:01/10/11 02:50
>>274
んじゃ、10万回ループとかで$ありとなしの実行時間を比較して
ごらん。278が言ってることが体感できるから。
これ以外にも$は”文字列を返す”ってのを明示する意味もあるよ。

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

>>277
VBだろうがVCだろうが質のよいコードを書こうと思えば
プラットフォームに関する知識を深めるのは当然。
それさえもできてない人間がVBを馬鹿にする。

280 :279: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を同時進行できるのが、いいかもね。

282 :デフォルトの名無しさん:01/10/11 10:19
いわばVBは、補助輪付自転車といえよう。

283 :デフォルトの名無しさん:01/10/11 10:59
補助輪付きに慣れきってしまって、無しでは走れない奴が多いのも事実。

284 :デフォルトの名無しさん:01/10/11 10:59
すいません。ちょっと聞きたいんですけど。
OpenAsTextStreamってワイルドカード指定できるんですか?
Open for〜だとワイルドカード指定できなかったんで。

285 :デフォルトの名無しさん:01/10/11 11:42
>>284
なぜに今から開こうとするファイル名がワイルドカード?
FileName = Dir$("*.TXT")で取ってくればよかろうに。

286 :デフォルトの名無しさん:01/10/11 13:18
>>285
フォルダ内にあるファイル全てが対象って事なんで。
そのフォルダにはtxt以外のファイルも多々存在するのです。

287 :ナナ:01/10/11 16:54
VBでADOを使うサンプルまたは講座などのあるHPを教えてください。
ASPのじゃ、やだよ。

288 :デフォルトの名無しさん:01/10/11 18:20
>>287
ttp://homepage2.nifty.com/inform/vbdb/index.html

289 :デフォルトの名無しさん:01/10/11 20:26
階層フレキシブルグリッド(MSHFlexGrid)に
↓のように表示させていますが

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

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

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


可能な場合、どのようにすれば良いのでしょうか??

290 :デフォルトの名無しさん:01/10/11 20:42
>>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

他の方法でもかまわないです。
よろしくお願いします。

295 :デフォルトの名無しさん:01/10/12 07:50
>>291
片方のテキストボックスをサブクラス化してEM_SCROLLかWM_VSCROLLを
取ってくれば?

>>293
そこまでやるんだったら最初っからmci関連のAPI使うしかなかろう。

296 :289:01/10/12 10:25
>>290
それだと
名|称
と、間に「|」が入ります。
他に方法は無いでしょうか。。

297 : :01/10/12 16:00
>289
名称1=名称2ならMergeCellsつかえるような気が・・・

298 :VB厨房: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見ても同等機能を発見できず、だったので・・・。

302 :VB厨房:01/10/12 18:10
>>301
static final String[][]={{"","",""},{"","",""},・・・

303 :289: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

306 :デフォルトの名無しさん:01/10/13 14:58
>301
俺もその機能探した...
結局、ちと違うがArray関数使う形になったケド...
もっとヨイ方法無いかなぁ

307 :305:01/10/13 16:43
>305です説明足りなかったので追加
Sendkeysにしたい理由なんですが、
mouse_eventつかってやると位置情報が必要なので駄目なんです。

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

としたいのです。keycode=93が右クリックなんですがどうにかならないですかね。

308 :デフォルトの名無しさん:01/10/13 16:54
>>307
MSDNを読め。mouse_event

309 :デフォルトの名無しさん:01/10/13 21:24
オーディオデバイス・・つーか、WAVEとかが、
使われているか否か(音が出ているか)を取得するには、どうしたらいいですか?

310 :デフォルトの名無しさん:01/10/13 21:47
>>309
MCI。
漏れはmciSendString以外使ったことがないから分からないが。

311 :デフォルトの名無しさん:01/10/13 21:56
>>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を作るには
どうすればいいんでしょうか?

315 :VB初心者:01/10/14 17:21
VBでアプリケーション作りたいのですが、
VB経験0です。
参考になる書籍を教えてください。
あ、ちなみにJAVA,Perl,Cのプログラミング経験はあります。

316 :デフォルトの名無しさん:01/10/14 17:28
>>315
嫌です。

317 :デフォルトの名無しさん:01/10/14 17:43
俺、msdnの中の「プログラミングの基礎」の項をプリントアウトして、
他は直接CD閲覧してやってる。特に本は買ってないけど。

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

物足りなくなったり、紐解くのめんどくさくなったら、リファレンス張りの
分厚い本でも座右に置いとけ。

318 :デフォルトの名無しさん:01/10/14 17:55
>>314
FormのBorderStyleプロパティを"1 - 固定(実線)"にして
MinButtonプロパティを"True"にする

319 :3141592: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

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

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

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

WM_CHARで色んなことが分かるョ

324 :320:01/10/15 00:38
>>322さん
なるほど、ありがとうございます。
>>323さん
今、MSDNライブラリなんぞを見ましたが、当方初心者ゆえ、
scanf、WM_CHAR共に理解出来ませんでした・・・。
理解したいんだけどなぁ・・・。もっかいよく見てみます。

325 :ua:01/10/15 00:40
VB6のコード入力画面ってマウスのホイールは利かないもんですか?

326 :sage:01/10/15 00:45
少なくともscanfが分からなければ、
すぐ理解するようにしないと困った
ちゃんになってしまいますヨ・
>>324

327 :デフォルトの名無しさん:01/10/15 00:57
まだはじめたばかりなのですが、頭が悪いせいか
独学だとうまく進みません。
みなさんのお勧めのサイトなどありましたら
教えていただけないでしょうか。

328 :デフォルトの名無しさん:01/10/15 01:56
>>327
>まだはじめたばかりなのですが、
これを踏まえると、もう諦らめた方が良いという結論になるな。

329 :294:01/10/15 12:00
>>299
MAPISession
MAPIMessage
この2つを使ってみたのですが、OutLookExpressが見えない形での操作しかできませんでした。
OutLookExpressが見える形で操作できないのでしょうか?

330 :デフォルトの名無しさん:01/10/15 13:29
>>325
どこでもホイール使えばスクロールするよ。

331 :デフォルトの名無しさん:01/10/15 16:34
>>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への移行は進むのでしょうか?
  色んなサイトを見てると「関係ねえよ」ていう感じですけど・・・

336 :デフォルトの名無しさん:01/10/15 22:33
どうなんだろな

337 :デフォルトの名無しさん:01/10/15 22:33
>>335
>2.VisualBasic.netへの移行は進むのでしょうか?

間違いなく進む。
嘘だと思うんならβ2で遊んでみ。

338 :デフォルトの名無しさん:01/10/15 22:40
いま僕が嬉しいのはマイエディタで括弧で囲まれたところの
色を変えることが出来たことです。これは実装なんですか?

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

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

あぁ、これで少しは目が疲れなくてすむ。括弧を抜かしたりする
ミスも大幅に減少するでしょう。

339 :デフォルトの名無しさん:01/10/16 02:35
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のタスクリストに
残ってるんですけどこれは何故?

340 :デフォルトの名無しさん:01/10/16 03:09
>335
>「Excelがないと動かない」以外
↑が一番違う。要するに実行ファイルを作れるかどうか。

細かいところでは、オブジェクトの構造がちょっと違う。
言語的には同じ。

341 :325: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コントロールとまったく同じことをやりたいのですが、、、

343 :デフォルトの名無しさん:01/10/16 10:01
>341
ホイールマウスのドライバの設定を色々いじくりまわしてみる事をオススメしよう

344 :デフォルトの名無しさん:01/10/16 13:21
>>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

こぅゆぅの?

345 :344:01/10/16 13:24
う・・・四行で済むじゃん・・ウツダシノウ

346 : :01/10/16 15:07
>303
亀レスすまんけど
MergeCol、MergeRow組み合わせてもだめなの?

347 :335:01/10/16 16:02
また厨房な意見ですまん
VisualBasicとExcelVBAがたいして変わらないのなら
何故マイクロソフトはVisualBasicをOFFICEに標準装備しないのだ?
単に商売戦略上の問題だろうけど・・・・
中身が一緒だったらそう言いたくなるよ・・・
実行ファイル作るだけのためにVisualBasicを買うんかい!

348 :デフォルトの名無しさん:01/10/16 16:22
>>347
それがゲイツたんハァハァだというのだ! なぜこんな事が分からん!!

349 :まいった:01/10/16 16:49
>>344

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

つまり、TextBox内でカーソルキーを押したときに、VBのUpDownコントロールに
マウスで矢印を押したというイベントを投げられれば一番いいのですが、
そんなことってVBだとできないのでしょうかやっぱり。

350 :303: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
ありがとう
ためしてみる

354 :346:01/10/16 18:41
>350
(念のため)RowとRowSel、ColとColSelでセル指定して
CellAlignmentつかえば真ん中いく。

つーか、階層フレックスってバグの山だったけど修正されたの?

355 :350: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を表示させるのってどうすればいいいんでしょうか?

358 :デフォルトの名無しさん:01/10/17 01:04
>>357
ぽっぷあっぷでにげちゃえ〜

359 :デフォルトの名無しさん:01/10/17 08:02
>>357
ポップアップヘルプを呼び出すとか…

360 :Kei@男:01/10/17 15:49
>351
A=Instr(文字列,chr(&h22))
で、何番めに(")が入っているかが分かります。
無い場合、A=0

361 :デフォルトの名無しさん:01/10/17 16:19
>>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 → の中に

標準
数値
通貨


ユーザー設定

があり、「ユーザー設定」で出来ると思うのですが
形式文字列の指定の仕方が分からないので教えてください。
よろしくお願いします。

365 :デフォルトの名無しさん:01/10/17 21:27
>>362
List1.ListIndexでいいんでねーの。

366 :VB超初心者: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
}

368 :デフォルトの名無しさん:01/10/18 00:23
if n > 1 then

369 :デフォルトの名無しさん:01/10/18 00:35
なんか他の言語もまじっていたようなので、画面にテキストボックスを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

371 :デフォルトの名無しさん:01/10/18 02:16
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

372 :デフォルトの名無しさん:01/10/18 02:19
%でなくて\だった

373 :VB超初心者:01/10/18 14:18
皆様有難うございます。少しずつVBが分かってきました。
といいながらも別の問題も上手くつくれないのです。

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

です。
どうしようもなく阿呆かもしれませんが
どのようなプログラムをつくればいいのでしょうか?

374 :デフォルトの名無しさん:01/10/18 16:06
>>373
それプログラム作るほどの意味があるのか?

375 :デフォルトの名無しさん:01/10/18 16:10
>>373
小学生でも計算できますが何か?

376 :デフォルトの名無しさん:01/10/18 16:18
>>373
 とりあえず

プログラミングの為の数学と算数
http://piza2.2ch.net/test/read.cgi/tech/997150743/

377 :デフォルトの名無しさん:01/10/18 16:26
>>373
その前に、お前は本当にそのような技術が必要なのか小一時間問い詰めたい。(以下略)

378 :デフォルトの名無しさん:01/10/18 18:12
中心角が115゚で単位がrad?

379 :デフォルトの名無しさん:01/10/18 18:22
プログラミングを単なる計算機に使おうとしてる人初めて見た(w

380 :デフォルトの名無しさん:01/10/18 19:36
フローティングウインドウにしたくてSetWindowPosでHWND_TOPMOSTを
セットしたんですが、これだプログラムを切り替えてもそのフォームが
最前面に表示されたままになってとてもウザイです。

プログラムが切り替わったら消えるようなフローティングウインドウはどうすれば
よいのでしょう?

381 :デフォルトの名無しさん:01/10/18 20:08
>>380
WM_ACTIVATEを引っかけて、非アクティブになったら該当フォームを隠す。
アクティブになったら出す。

382 :デフォルトの名無しさん:01/10/19 02:27
板違いでごめん・・・
VBAスレなかったもんで・・・

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

383 :380:01/10/19 08:52
>381

WM_ACTIVATEを引っ掛けるってことはサブクラス化ってことか・・・
どうもありがとうございます。

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

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

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

マウスダウンした時の行の保持は何ですればよいでしょうか?
よろしくお願いします。

385 :デフォルトの名無しさん:01/10/19 09:59
>>384
マウスポインタの座標をスプレッドの行の高さで除算すると出るよ。
あとは、現在の先頭の行を足しとけばOK

386 :384: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!

391 :デフォルトの名無しさん:01/10/19 13:54
>>388
classを使うがよい

392 :デフォルトの名無しさん:01/10/19 14:01
>>391
ユーザー定義型がどうしても使いたいんだYO!
クラスって1ファイル1クラスでしょ?
数が多いとちょっとなぁ〜。

393 :P介P:01/10/19 14:05
初めまして。P介Pと申します。
現在VB6で開発最中なのですが、THREED32.OCXをインストールして
SSPanel等を画面に貼り付けて使用しようとすると、
、「このコンポーネントのライセンス情報が見つかりません。デザイン環境でこの機能を使うために必要なライセンスがありません。」
というメッセージが表示されてしまいます。
THREED32.OCXを一度削除して新たに入れ直したり、
ネットで色々と解決法を探したのですが、うまく行きませんでした。
どなたかこの解決法がありましたら是非教えて下さい。
お願い致します。

394 :デフォルトの名無しさん:01/10/19 14:07
>>393
VB6のSSはライセンスを購入してね。

395 :デフォルトの名無しさん:01/10/19 14:12
>>388
VB.NETでは渡せるらしいYO!

396 :デフォルトの名無しさん:01/10/19 16:21
>>389
なんか、おかしくない?

397 :P介P:01/10/19 16:41
>>394
どうゆことなのでしょうか?
もし良かったら教えて下さい。。。
フリーのVB6ランタイムでは駄目なのでしょうか?
でも、私以外のマシンではエラーが出てません。
何故私のマシンだけ駄目なのでしょうか?(T_T
どなたか分かる方がいましたらお願い致します。
開発環境:Win2000 VB6(SP4)

398 :デフォルトの名無しさん:01/10/19 16:43
>>397
THREED32.OCXを消すときに、regsvr32とかで、レジスト削除した?

399 :デフォルトの名無しさん:01/10/19 17:24
>>387

こんな感じ?

Private Sub Command1_Click()

Static flag As Boolean

flag = Not flag

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

End Sub

400 :P介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だと思います。
宜しくお願いします。

404 :デフォルトの名無しさん:01/10/19 22:17
>>403
共有しないという選択肢はないのか?
あるいは、ネットワークをかえちまうとか...

405 :デフォルトの名無しさん:01/10/19 23:15
>>404
禿げしく同感
アクセス権を設定すればいいんじゃないの?

406 :デフォルトの名無しさん:01/10/19 23:28
これまでVBしかやったことないんだけど、
他の言語やり始めるなら何やれば入りやすいですか。

407 :406:01/10/19 23:32
てゆか、オモキリスレ違いだね。
よそ逝きます。メンゴ。

408 :403です: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のコードを入力して
指定キーワードに着色したいんですけど、
うまく置換できません。選択して色変えてると遅くてたまりません。
どうすればいいですか?というかこういう処理をするときは
どうするものなんですか?

414 :デフォルトの名無しさん:01/10/20 17:42
>>413
そんなにおせーの?どんな検索してんの?

415 : ◆40RVTnT6 :01/10/20 19:20
http://mackoy.cool.ne.jp/
↑みたいなファイルの読み込みはどうやるんですか?マジ初心者なんですけど。

416 :デフォルトの名無しさん:01/10/20 19:45
>>415
具体的かつ簡潔に述べよ。

417 :デフォルトの名無しさん:01/10/20 21:33
>>411
ありがとございます!!!!!
出来ました。感謝感謝感謝。
これで先へ進める!!!!

418 :デフォルトの名無しさん:01/10/21 18:10
>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プロパティみたいなものが欲しいんですが。

421 :420:01/10/21 18:53
うーん、登録アイテム数でループ回してSelectedプロパティがTrueなところ探したらできました。
まあこれでも動くんですが、なんかもっと効率のいい方法はないんでしょうか。

422 :デフォルトの名無しさん:01/10/21 20:03
VBをやろうと思って、VB6.0proを買おうと思うんですけど、
もうすぐver7.0が出るって事はないですよね?初心者な質問でスマソ。
あと、初学者にわかりやすい入門書があったら出版社名だけでもいい
ので教えてください。教えて君ですみません

423 :デフォルトの名無しさん:01/10/21 20:06
>>420
VB素人なんではずしてるかもしれないけど、ListViewにLVM_GETNEXTITEMメッセージを
送って問い合わせることはできないのですか。

424 :422:01/10/21 21:08
すいません。見つけました。
VB.NET(日本語版)2002年第一四半期発売ですね。

425 :デフォルトの名無しさん:01/10/21 22:49
>>424
2002年第一四半期っていつ?

426 :デフォルトの名無しさん:01/10/21 23:39
VBAネタかつ、超初心者で申し訳ないんですが
Excelでワークシートを追加するときに同名のシートがあれば
削除したいのですが、このワークシートの有無を確認するのは
どうすればいいのでしょうか?

427 :名無しさん:01/10/22 00:22
あー、もうどうだっていいよ。

428 :デフォルトの名無しさん:01/10/22 01:05
日本語名使えるんだから、
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プロパティを設定できません 」
というのが出てきます。理由がわからないので誰か教えて下さい。お願いします。

430 :デフォルトの名無しさん:01/10/22 12:08
プログラム以前の問題かもしれなのですがご指導ください。
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
モードレスで開いたフォームが、今開いているかどうかを
調べる方法がわからないのですが、どうすればいいでしょうか?

432 :デフォルトの名無しさん:01/10/22 13:41
>>429
まず先に、その汚ねぇソースを何とかしろや。

433 : :01/10/22 13:52
スプレッドのシート印刷での用紙サイズの指定方法を探しています。
用紙の方向はPrintOrientationで指定できるのですが、
用紙のサイズをどこで指定したらよいのかわかりません。
教えてちゃんですみませんが、よろしくおねがいします。

434 :デフォルトの名無しさん:01/10/22 15:35
テキストボックスのスクロールバーの色を
変えることはできませんかね?

435 :デフォルトの名無しさん:01/10/22 16:41
>>434
何で変える必要があるん?
ドキュソなUIにでもするの?(藁

...画面のプロパティいぢればなんとかなるよ、一応。

436 :デフォルトの名無しさん:01/10/22 17:59
>>435
そうです(藁
友人の子供用にかわいく見せる物をプレゼントするのに
やりたいもので(汗
画面のプロパティならいけますか。ありがとうございました。

437 :デフォルトの名無しさん:01/10/22 21:04
スクロール バーだけは色変更できないよー(´Д`;)

438 :デフォルトの名無しさん:01/10/22 22:43
十進プログラムで振り子運動のプログラムってどうつくるかわかります?

439 :デフォルトの名無しさん:01/10/22 23:06
>>438
理科を勉強

440 :デフォルトの名無しさん:01/10/23 08:25
リストボックスのアイテムを右クリックで選択するには、
どうしたらいいのでしょうか?

441 :デフォルトの名無しさん:01/10/23 09:52
他のフォームが開いているかどうかわかる方法ありませんか?

442 :デフォルトの名無しさん:01/10/23 10:31
>>441
FindWindowExで探す。

443 :デフォルトの名無しさん:01/10/23 10:40
>>442
ありがとうございますです。
このAPIへの引数がいまいちわからないのですが
例えば、フォームのオブジェクト名が"formMaster"だった場合
どうなるのでしょう?
hWnd = FindWindowEx(0, 0, vbNullString, "frmMaster")
でいいですか?

444 :デフォルトの名無しさん:01/10/23 10:44
>>438
 変位を X としよう
 力は F=a*Xで働くとする(aは負数)
 速度 Vは 力を積分しよう    V=V+a*X*dt
 変位 Xは 速度を積分しよう X=X+V*dt

dtを0.001 くらいにして、これをループさせてみよう

445 :443:01/10/23 10:46
自己レスです。
できました。ありがとうございました。
hWnd = FindWindowEx(0, Me.hwnd, vbNullString, "マスタメンテ")

446 :デフォルトの名無しさん:01/10/23 11:09
透明なテキストボックスできますでしょうか?
後ろが透けて見えるものです。
multilineで。

447 :デフォルトの名無しさん:01/10/23 11:31
>>446
サブクラス化するかowner drawすれ。

448 :デフォルトの名無しさん:01/10/23 11:39
VB5でoo4oでOracleに接続して、DBグリッドコントロールにデータを表示させたいのですが、
データの表示のさせ方をご存知の方がいましたらご教授願えないでしょうか。
書籍とI-NETを調べてみたのですが、これ、という答えが見つからなくて。

449 :デフォルトの名無しさん:01/10/23 12:49
>>447
ふむふむ。そのキーワードで検索してがんばってみます。
ありがとうございました〜。

450 :デフォルトの名無しさん:01/10/23 14:17
すいません。質問です。
getFilesizeでファイルサイズを取得したいんですが
FileSizeLowに-1が返ってきます。
CreateFileの引数はちゃんと渡してるはずなんですが。

451 :デフォルトの名無しさん:01/10/23 18:08
質問です。
APIのStretchBltを使っているんですが、拡大表示すると何も表示されません
一昨日までは正しく表示されたのに
何故でしょうか?

452 :デフォルトの名無しさん:01/10/24 12:26
ららら・ら〜♪ ららら・ら〜♪

453 :デフォルトの名無しさん:01/10/24 12:42
>>450
質問する前に hFile != NULL を確認しとけ。
GetFileSize の後に GetLastError() も調べとけ。

>>451
何か変えましたか? (画像、OS、ウィルスを入れたとか)

454 :デフォルトの名無しさん:01/10/24 13:43
Cで作成したDLLに2次元配列を持って行きたいんですが、
どうすればよいのでしょうか?

やっぱポインタになってしまうの?

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

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

よろしくお願いします。

456 :451: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>
とわかったんですが、このプロセスを消したいんです。

よろしくお願いします。

458 :デフォルトの名無しさん:01/10/24 19:27
>>456
画面と画像は何色でしょう?
コードもお願いします。

459 :451: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

↑こんなのです
ゲーム中で敵キャラを拡大するだけなんですけど

460 :デフォルトの名無しさん:01/10/24 19:59
良く分からないけど、GetDeviceCaps の RASTERCAPS の RC_SCALING か?

461 :デフォルトの名無しさん:01/10/24 20:08
>> 459
ビットマップをSelectObjectで選択して、
CreateCompatibleDC を呼ぶ方法を使うのかも。
(MSDN の「Scaling an Image」を検索)
詳しいことは分からないけど。

462 :451: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型を受け取っている。
ピクチャよりもリソース画像の方が高速かもしれない。

464 :Nin:01/10/25 11:54
SQL文でORDER BY句を指定し、データを順に読み、その都度更新を行いたい
のですが、Editの部分で『読み取り専用の結果セットです』とエラーが出て
しまいます。(SQLserverをODBC-RDOで読んでいます。)

これを回避する方法を御存知の方、教えてください。
よろしくお願いします。

465 :デフォルトの名無しさん:01/10/25 22:46
>>464
とりあえずSQL文が見たいぞ!

466 :デフォルトの名無しさん:01/10/26 09:51
初めましてm(_ _)m
WindowsNT4.0の環境下でVisualBasic5を用いて、FDDに挿入されたディスクが2DDか2HDかと言う判別をしたいのですが・・・やり方をご存じの方はおられないでしょうか?
最初は容量で判断しようと思ったのですが、当たり前なんですけども・・・フォーマット前の物もあるのでそれはダメでした。
公開されているAPIは一応一通り読んでみたのですが、該当する機能は見つかりませんでした。(T^T)

一部のフォーマッタでは実現している機能なので技術的に不可能ではないと思うのですが、どうなのでしょうか?
皆様よろしくお願いします。

467 :デフォルトの名無しさん:01/10/26 11:55
VBのツールバーのようなフォームになったり、メニューになったり
する奴はどうやったら実現できますか?

468 :デフォルトの名無しさん:01/10/26 12:48
ダイアログバーをドッキング可能にしておく。

469 :デフォルトの名無しさん:01/10/26 17:10
VB6で、midステートメントを使って文字の置換ができるようなのですが、
元の文字よりも長くなるような置換をするにはどうすれば良いのでしょうか?
Midを使って書くと、

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

a="aadddcc"
になるようにしたいです。

470 :デフォルトの名無しさん:01/10/26 17:15
>>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メソッドを使うべし

129 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)