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

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

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

1 :デフォルトの名無しさん:05/01/26 23:12:55
ここは Visual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパック
何がしたくでどうしたけどどう困っているのかを明確に書きましょう。

○関連スレッド
VB.NETは別物なので、基本的に質問はこちらへ
VB.NET質問スレ (Part7)
http://pc5.2ch.net/test/read.cgi/tech/1096683017/l50

API関連の質問はこちらへ
Win32API質問箱 Build24
http://pc5.2ch.net/test/read.cgi/tech/1098967135/l50

MSDN Online Japan ホーム
http://www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6 正式リリース
http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
Google
http://www.google.co.jp/
※「まず自分で調べる」を身につけよう。

心得
一.質問する前に過去ログにも目を通してみる。
二.質問する前に MSDN などで調べてみる。
三.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
五.荒らしは相手しない。
六. VB情報募集中。
七.VB.NETの話題できるだけひかえる。

前スレ Part39 http://pc5.2ch.net/test/read.cgi/tech/1103026199/l50

2 :デフォルトの名無しさん:05/01/26 23:16:49
前スレ Part39 の961です。
明日Visual Basic の授業があるんで少しでも理解しときたいんで
プログラム教えていただきませんでしょうか?
おねがいします。

3 :デフォルトの名無しさん:05/01/26 23:20:09
テキストボックスへの表示方法は分かる? .Textに文字列代入だったな?

4 :デフォルトの名無しさん:05/01/26 23:23:03
じゃあ何が分からない?
計算式か? データ変換か?

5 :デフォルトの名無しさん:05/01/26 23:43:50
テキストボックスからまずデータを受け取る。
>> 変数A=テキストボックス

計算する。
>> 変数B=変数A*0.06*(・・・など適当に計算式を作る)

テキストボックスに表示する
>> テキストボックス=変数A

これで分からなかったら諦めろ。


6 :デフォルトの名無しさん:05/01/27 00:10:01
本当に理解したいんなら今ごろテキスト読んでるでしょ。

こんなとこで質問しているのは、本読んで理解するなんてクソ面倒なことは
スキップして優々と答えだけゲットしたいから、違うか?

7 :デフォルトの名無しさん:05/01/27 00:26:00
まじうぜーー

8 :デフォルトの名無しさん:05/01/27 02:06:27
前スレ VBプログラマ質問スレ(6.0以前) Part39  実質40
http://pc5.2ch.net/test/read.cgi/tech/1103026199/

このスレは実質41

9 :デフォルトの名無しさん:05/01/27 02:08:09
>>2
前スレ963で、せっかく円周と面積の出し方教えてもらったんだから、それを応用しろ。

10 :デフォルトの名無しさん:05/01/27 03:35:29
おまいら優しいな。
ちょっと感動した。

11 :デフォルトの名無しさん:05/01/27 09:30:46
リア高坊へ

先生にだれから教わったって聞かれたら
「しらないおじさんに教えてもらいました」
ってきちんとこたえること。

12 :デフォルトの名無しさん:05/01/27 10:44:32
俺もまだ工房だ、おっさんじゃねー。

13 :デフォルトの名無しさん:05/01/27 10:54:20
?=小学生
厨房=中学生
工房=高校生
?=大学生

14 :デフォルトの名無しさん:05/01/27 11:46:52
非常に大馬鹿な質問なんですが

二次元配列に入力した数字を2重for文を使って各数字ごとに
空白を設けた状態をテキストボックスに出力したいのですが
うまくできません

改行もできないし空白も設けられないし なりより数字が次々と上書きされているみたいなんです
BASIC始めて3日目なんですが参考書にも載ってなかったのでおしえてもらえないでしょうか

15 :デフォルトの名無しさん:05/01/27 11:50:27
txtString.text = ""
for i=1 to MAX_COUNT step 1
 txtString.text = txtString.text & aa(i) & " "
next i

適当ですけど、こんなかんじ。
上書きではなく、追加していかないとダメですよ。

16 :デフォルトの名無しさん:05/01/27 11:57:32
>14
Dim s,i,j,a(22,33)
s=""
For i=0 To 22-1
For j=0 To 33-1
s=s&Str(i)&","&Str(i)&vbCrLf
Next j,i

17 :デフォルトの名無しさん:05/01/27 11:57:42
>>13
消防=小学生

18 :デフォルトの名無しさん:05/01/27 12:00:22
>>14
MultiLineプロパティをTrueに

19 :14:05/01/27 12:01:53
>>15
お忙しい中のわざわざのレスありがとうございます

gnuplotってわからないかもしれないですけど
あれが読み込めるテキスト状態にしたいんですけど

12 33 32 89
87 54 43 898
432 32 74 56
こんな状態です

あと二重ループにしたいのですが

20 :デフォルトの名無しさん:05/01/27 12:06:57
それならファイルで吐けば?
Open "test.txt" For Output As #1

21 :14:05/01/27 12:07:03
16,18さんもありがとうございます

さっそく試してみます

22 :14:05/01/27 12:17:15
>>20

それがわからなくて・・・
ファイル保存を試みましたがだめでした

23 :デフォルトの名無しさん:05/01/27 12:18:50
>>22
何がだめなんだよ
質問する気はあるのか?

24 :デフォルトの名無しさん:05/01/27 12:19:43
>22
Print #1, 文字列
Close #1
マニュアルみ

25 :_:05/01/27 17:46:28
割り込みで質問させて頂きます、当方はVB6を使っています。
txt1.TextBox
txt2.TextBox
cbo1.ComboBox
以上三つのコントロールを配置して以下の動作をさせたいのですが…
1:cbo1,を通常は非表示にしておく
2:txt1のGotFocusイベントでcbo1を表示させる
3:cbo1での選択結果をtxt1に表示させる(txt1に対する直接入力も有り)
4:txt2へのフォーカス移動で再びcbo1を非表示にする
という動作をさせたいのですが、4:の非表示処理が上手く行きません
txt1のLostFocusイベントで非表示処理をすると、cbo1にマウスをポイントした瞬間に
cbo1自体が消えてしまうし、cbo1側のイベントで処理した場合、cbo1に対する操作を
行わずにtxt2にフォーカス移動した際にcbo1が表示されたままになってしまいます
txt2のGotFocusイベントで処理するのは無しです(同種のコントロールを増やす予定なので)
皆様の御教授を賜りたく存じます。

26 :デフォルトの名無しさん:05/01/27 18:47:25
>25
フラグ変数と共通サブルーチンで一貫性を保て

27 :デフォルトの名無しさん:05/01/27 18:59:12
>>25
はっきりいって、仕様が糞。

28 :デフォルトの名無しさん:05/01/27 19:01:42
>>25
txt1とcbo1をまとめたActiveXコントロールを自作

29 :デフォルトの名無しさん:05/01/27 19:53:14
>>25
要はテキストボックスにフォーカスが移ったときに、
対応するコンボボックスだけを表示して他のコンボボックスは全部非表示にすれば
一貫性を持たせられるんじゃないの?

具体的には、引数で指定したコンボボックスを表示し、他は非表示にするルーチンを書いて、
テキストボックスのGotFocusからこれを対応するコンボボックスを引数に指定して
コールしてやればいいと思う。

30 :デフォルトの名無しさん:05/01/27 19:55:36
コンテナにすればいいじゃん。

31 :デフォルトの名無しさん:05/01/27 20:53:19
>>26 フラグ変数
>>30 コンテナ
まだ習得していない段階です、
こちらの程度の低さを記すべきでした…

>>29
この方法でしたら当方のレベルでも理解し易いです
丁寧な解説ありがとうございます。

32 :デフォルトの名無しさん:05/01/27 23:02:00
VB6です。
MDIフォーム内に子フォームを常に全面表示かつ複数開いている状態で、
メニュークリックで表示画面を切り替え、処理を実行しています。
このときctl+tabキーを入力すると、子フォーム画面が切り替わってしまいます。
画面切り替え前に入力チェックをしていて、引っかかった場合には切り替えたく
ないので、このctl+tabキーを無効にすることってできないでしょうか?

33 :デフォルトの名無しさん:05/01/27 23:11:48
>>32
他のフォーム.Enabled = False にすればいいじゃない?

34 :デフォルトの名無しさん:05/01/28 14:42:32
すみません
Picture1の画像をjpegでファイル保存したいのですがどうすればいいでしょうか?


35 :デフォルトの名無しさん:05/01/28 14:44:29
>34
SavePicture

36 :デフォルトの名無しさん:05/01/28 16:02:14
Picture1の画像の上に乗ってるLabelまで画像に保存するにはどうしたらいいのでしょうか?
SavePictureだとPicture1の画像しか保存されませんでした・・・

37 :デフォルトの名無しさん:05/01/28 16:36:36
>36
AutoDraw=False。
PaintイベントでLoadPicture,PaintPictureを呼ぶ。
ピクチャとラベルのそれぞれのhDCで
BitBlt,StretchBlt APIを呼び、ラベルからピクチャにビット転送。

38 :デフォルトの名無しさん:05/01/28 16:49:57
ラベルのhDC?

39 :デフォルトの名無しさん:05/01/28 16:55:01
>38
ゴメン。それはVBじゃ使えない。
TextOut, DrawText APIで代用

40 :デフォルトの名無しさん:05/01/28 17:15:25
>>34
フリーのDLLが必要
>>36
画面キャプチャーすれば?

41 :デフォルトの名無しさん:05/01/28 23:00:00
>>37-40
ありがとうございます
どうも簡単にはできそうにないみたいですね・・・
(´・ω・`)ショボーン

42 :デフォルトの名無しさん:05/01/28 23:57:39
>>33
無事解決しました。ありがとううございます!
フックなどでOSのメッセージを取るなど難しく考えすぎていました。

43 :デフォルトの名無しさん:05/01/30 16:00:40
フォトショップの選択ツールのように、
例えば選択したテキストボックスの周囲の破線が
動いて見えるようにするには、どうやるんですか?

44 :デフォルトの名無しさん:05/01/30 20:52:45
>>43
タイマーで一定時間ごとにパターンを替えた破線(「蟻の行列」だね)を描画する。
これ以外にどういう答えを期待しているの?

VBなら、蟻の行列はAutoRedraw = Falseにして描画して、それ以外は
AutoRedraw = Trueにして描画すればいいから簡単でしょ。

もっとお手軽にやるには、シェープを使う手もある。

45 :デフォルトの名無しさん:05/01/31 10:14:35
VB6.0使ってます。

全角と半角が混在しているテキストで、nバイト目が全角か半角を簡単に判定する方法はありますでしょうか?

平成1年1月1日晴れ ←の10バイト目が全角か半角か判定

46 :45:05/01/31 10:30:28
自己レス
nバイト目が全角1バイト目or全角2バイト目or半角を判定する関数があるのかと思い質問しましたが、
調べてみたらやはり自作しないとダメみたいですね。
スレ汚し失礼いたしました。

47 :デフォルトの名無しさん:05/01/31 10:39:11
VB6..0を使ってます。
馬鹿な質問で恐縮ですが教えてください。

空っぽのファイルを作成するにはどうすればいいのでしょうか?

48 :デフォルトの名無しさん:05/01/31 11:40:28
>>45-46
ロジック考えるの面倒なのでさわりだけ。
StrconvでvbFromUnicodeで変換すると、半角1文字全角2文字扱いのものになります。
元のUnicode文字列(VBの文字列です)を1文字づつ取り出して、それを変換して1バイトか2バイトか判断して・・・
をロジック化すればいけるのではないでしょうか?
なので自作です。

>>47
Openしてクローズしたら出来ない?

49 :デフォルトの名無しさん:05/01/31 12:08:06
>>45-46
48氏の言うように自作しかないかなぁ。
指定された文字が全角の最初の 1 バイトかどうか調べるAPIはある。
IsDBCSLeadByte
未確認だから実際に使えるかどうかわからないけど...

50 :デフォルトの名無しさん:05/01/31 16:54:40
>>48
ありがとうございます、判定処理を自作することにしました。

>>49
ありがとうございます、PG組んで見たのですが、私の環境ではうまく動きませんでした。


51 :デフォルトの名無しさん:05/01/31 18:26:46
配列の宣言について質問させていただきます。

10,20,30,40,50 という5つの数値があるのですが、
これを一次元配列としてaに代入するには

Dim a(4) As Integer

でa(0)〜a(4)までの5つの型を宣言し、

a(0)=10
a(1)=20…

と毎回 改行して代入しないといけませんか?
javaのように

int a[] a={10,20,30,40,50};

のように一回で代入できませんでしょうか?
ご存知の方どうかご教授ください。よろしくお願いします。

OS:XP VB6.0

52 :デフォルトの名無しさん:05/01/31 19:10:50
おしえてください

ループでファイル名を指定してオープンしようとしたとき、指定ファイルが無くなった
ときに、エラーになるが、エラーの帰り値などを参照してループから抜け出るには?

初歩の恥ずかしい、質問ですがよろしくお願いします。VBは初めてなもので


53 :デフォルトの名無しさん:05/01/31 19:15:56
>>51
Array

54 :デフォルトの名無しさん:05/01/31 19:27:30
(´-`).。oO(IsDBCSLeadByteが動かない環境ってどんなんだろ?)

55 :51:05/01/31 19:38:25
>>53
解決しました。ありがとうございます。

56 :デフォルトの名無しさん:05/01/31 20:40:36
>>52
オープンする前に
On Error Resume Next して、
オープン直後に Err.Number を調べる

または、オープン前にファイルの存在チェックする

57 :51:05/01/31 22:13:38
たびたび申し訳ございません。先ほど一次元配列の件にて質問させていただいたものです。
一次元配列は「a = array(10,20,30,40,50)」で解決できたのですが、
下記のような二次元配列はどのようにして宣言すればよいのでしょうか?

10,20,30
40,50,60
70,80,90


58 :デフォルトの名無しさん:05/01/31 22:23:31
>>51
あんたの辞書には「自分で調べる」とか「自分の頭で考える」って項目はないのか?
それが「あえて」人に聞くようなことかい?

こんなググるかMSDNみれば3分で解決するようなレベルの内容に
答える奴もどうかしてると思うが。

59 :デフォルトの名無しさん :05/01/31 23:47:18
VB6sp3でClipbordのお勉強してるんすけど、フォーム上のコマンドボタンに

Private Sub CreateLink_Click()
Clipboard.SetText "テストテスト", vbCFText
End Sub

などと書いて
自アプリ実行させたんですけど、フォーム上のテキストボックスには
Ctrl+vで貼り付けれるのですが、ノートパッドなどひらいてCtrl+vしても
はりついてくれないのです。 よろしくおねがいします。


60 :デフォルトの名無しさん :05/01/31 23:51:03



すまん自己解決した。クリアせないかんのか。m(_ _;)m

61 :デフォルトの名無しさん:05/02/01 06:28:24
>>56
ありがとうございます
参考にしてテストします

62 :デフォルトの名無しさん:05/02/01 08:53:23
>>54
win2000,vb6.0 or win2000,vbaです。以下のプログラムで、すべて同じ値しか返って来ませんでした。

'【指定された文字が先行バイトかどうかを調べます】
Declare Function IsDBCSLeadByte Lib "Kernel32" (TestChar As Byte) As Boolean
Declare Function IsDBCSLeadByteEx Lib "Kernel32" (CodePage As Integer, TestChar As Byte) As Boolean

Private Sub コマンド72_Click()

Dim length, cnt As Integer
Dim char1, msg, msg2, swork As String
Dim ascii As Byte

'* Stringの内容をチェック
swork = "abcあいう"
length = LenB(swork)
' length = LenB(StrConv(swork, vbFromUnicode))
msg = ""
msg2 = ""
For cnt = 1 To length

char1 = MidB(swork, cnt, 1) '1バイト取り出して、文字コードに変換する
' char1 = MidB(StrConv(swork, vbFromUnicode), cnt, 1)
ascii = AscB(char1)

msg = msg + Right("00" + Hex(ascii), 2) + "," '文字コードを16進数の文字列に変換する
msg2 = msg2 & CInt(IsDBCSLeadByte(ascii)) & ","
Next cnt
Call MsgBox("元の文字列=" & swork & Chr(10) & msg & Chr(10) & msg2)

End Sub


63 :デフォルトの名無しさん:05/02/01 09:18:20
VB6.0の質問です。
バイナリエディタを作ろうと思っているのですが、何万桁も表示するため、
なるべくメモリ消費量の少ないコントロールを使いたいと思います。
自分なりに調べてLabelかListViewが良いのかなと感じたのですが、
何かお勧めがあったら教えていただけないでしょうか

64 :デフォルトの名無しさん:05/02/01 09:22:44
>>63
使い方次第です
表示する前後部分だけコントロールに送ってやれば消費はどれも少ない

65 :デフォルトの名無しさん:05/02/01 10:00:05
>>64
ありがとうございます
なるほど、そういうやり方がありましたか
それならMSHFlexGridとVScrollBarを組み合わせてやってみようと思います

66 :デフォルトの名無しさん:05/02/01 15:18:34
>>62
49です。行きがかり上デバッグしてみた

Dim length, cnt As Integer
Dim char1, msg, msg2, swork As String
Dim ascii As Byte

'* Stringの内容をチェック
swork = StrConv("abcあいう", vbFromUnicode)
length = LenB(swork)
msg = ""
msg2 = ""
For cnt = 1 To length
char1 = MidB(swork, cnt, 1) '1バイト取り出して、文字コードに変換する
ascii = AscB(char1)
msg = msg + Hex(ascii) + "," '文字コードを16進数の文字列に変換する
msg2 = msg2 & CInt(IsDBCSLeadByte(ascii)) & ","
Next cnt
Call MsgBox("元の文字列=" & StrConv(swork, vbUnicode) & Chr(10) & msg & Chr(10) & msg2)

IsDBCSLeadByteは使えるようです。

それと... Dim length, cnt As Integer は
Dim length As Variant
Dim cnt As Integer
になるのは知ってるよね

67 :66:05/02/01 15:43:35
追加です。
IsDBCSLeadByte は、全角2バイト目でも全角1バイト目と判定する文字コードがあるようなので実際に使うのは難しいかもです。
連投スレ汚し役立たずでスマソ...orz

68 :45:05/02/01 15:53:28
>>66
レスありがとうございます。

IsDBCSLeadByte関数自体は使えるのですが、
期待していた戻り値とは違ったために、「私の環境ではうまく動きませんでした」
という表現をしてしまいました。

"abcあいう"
期待していた戻り値:msg2=0,0,0,0,-1,0,-1,0,-1,
私の環境での戻り値:msg2=0,0,0,0,0,0,0,0,0,

>それと... Dim length, cnt As Integer は ...
これは知りませんでした、実務では気をつけるようにいたします。


69 :デフォルトの名無しさん:05/02/01 16:23:18
ここで質問でいいのかどうかわからないけど教えてたもう。

いいかげんソースの容量が増えてきたのでバックアップ時に不要ファイルを消してからバックアップ取ろうと思ってる。
で、「VBの不要ファイルってのがどれか?」ってのと「そのファイルを捜して削除するのに何使ってる?」って質問。

70 :デフォルトの名無しさん:05/02/01 18:36:26
VBのコンパイラって不要なファイルなんて作ったっけ?
そんな神経質なことするぐらいなら圧縮でもしちゃう方が早いきがする。

ていうか、今時VBのソースぐらいの容量が問題になる環境ってのが想像できん。
パラノイアの人?

71 :デフォルトの名無しさん:05/02/01 18:59:46
>>69
*.vbw
あと、ActiveXコンポーネントをコンパイルすると、中間ファイルみたいの(拡張子は忘れた)が作成される事があるがそれもいらない

72 :デフォルトの名無しさん:05/02/01 19:00:35
52です
>>56
上手くいきました、ありがとうございました。


73 :デフォルトの名無しさん:05/02/01 19:17:10
一つ質問させて頂きます。

Msbarcode9.ocx を用いてバーコード化(Code128)して表示、印刷させるアプリを作成しています。
現在バーコードの表示までは完成したのですが、プリンターへ出力出来なくて困っております。

バーコードフォント(Code128)をPrinter.Font.Nameにセットして
BarcodeCtrlのValueをプリンタに送信するだけしてみたのですが
印刷物と、PrintFormでハードコピーしたもの内容が明らかに違うのと、
バーコードリーダーで読み込んだ際に印刷物の方は読み込めず、
ハードコピーした方はリーダーでも読み込みができ、
Textboxのデータとも一致している状況です。

このBarcodeCtrlで変換したバーコードイメージを
そのままプリンターへ送る事は出来ないのでしょうか?

いろいろ検索した結果VB-BarCode .NETなる物もあったのですが、
このコンポーネント?なるものを導入しないと駄目なのでしょうか?

長くなりましたが、VB初心者で上手く表現出来てないかもしれませんが、
ご存知の方がいらっしゃいましたらご教授ください。

74 :69:05/02/01 21:30:18
>>71
ありがとー。

>>70
どうせやるのならと思ってね。

75 :デフォルトの名無しさん:05/02/01 22:37:36
XP VB6.0
DataReportのラベルにフォームのラベルの内容を直接移すには
どうすればいいですか?
最初は
DataReport1.Section1.label1.caption = form1.label1.caption
みたいな単純なコマンドだと思ってたんですがやっぱり無理でした...

76 :デフォルトの名無しさん:05/02/02 05:42:12

PictureBoxに、自作のLineStyleの直線を引く方法を教えてください m( _ _ )m
(例えば3点鎖線のような)

77 :デフォルトの名無しさん:05/02/02 12:58:53
>>76
ペン

78 :デフォルトの名無しさん:05/02/02 14:54:35
VB6.0+SP6+WinXP(Pro)

調子くれて ActiveXControl 作ってたら、テスト段階では動くのに、コンパイルしてみたら、
「Visual Basic でサポートされていないオートメーションが変数で使用されています。」
ってエラーがでますた。

このエラーの意味は何となくわかるが、どの変数かが特定できません。
怪しいところを、一つずつ修正してコンパイルしていけばいいように思うんですが、これだと辛いです。
簡単に特定する方法はありませんか?


79 :デフォルトの名無しさん:05/02/02 14:56:53
デバグ環境るんだから、ひとつひとつつぶせばいやん。
それとも机上でバグ?

80 :デフォルトの名無しさん:05/02/02 14:58:38
どの変数かが特定できないんですよ。
コンパイルしたときに、エラーが表示されるだけなんです。


81 :デフォルトの名無しさん:05/02/02 15:04:41
それじゃターゲットマシンにOLEが不足してるんじゃないの?
どんなモジュール使っているのか列挙しないとMSの野郎以外分かりません

82 :デフォルトの名無しさん:05/02/02 16:35:42
>>78
APIのパラメーターがくさいな。
P-Codeコンパイルでもだめ?

83 :78:05/02/02 17:08:08
P-Code も同じでした。

ちなみに現在参照しているのは、

Visual Basic For Applications
Visual Basic runtime objects and procedures
Visual Basic objects and procedures
OLE Automation

です。
全部の変数の型を確認するのは嫌なので、何とかお知恵を・・・


84 :デフォルトの名無しさん:05/02/02 17:15:27
エラートラップして調べればいいんじゃないの?

85 :デフォルトの名無しさん:05/02/02 17:47:53
>>83
Variant型がくさいと思うけど。

86 :78:05/02/02 18:19:00
>>84
詳細きぼんぬ

>>85
Variant 型を宣言している部分を全部変えてコンパイルしないと確認できないんですけど、他に何かよい方法はありますか?

87 :デフォルトの名無しさん:05/02/02 20:56:55
>>78
全体的に意味不明というか情報不足だよ。

たとえば「現在参照している…」ってそれ自作コントロール使ってるアプリのこと?
それとも自作コントロール自身?

どんな機能のコントロールなのかは極秘事項で人に明かせないの?

いつものことだが人にESPを期待しない。
あんたの思念は言葉で表現しないと人に伝わらないよ。

つーか自作コントロールってそもそもコンパイルして使ってみるなりしないと
テストも糞もないと思うんだけど。

なんか開発環境と実行環境が違っていて、自作コントロールが参照しているCOMの
タイプライブラリがちゃんとインストールされていないなんてオチの予感がする。。

88 :84:05/02/02 21:38:55
OnError で エラー458 を捕まえて場所や頻度を調べればいいんじゃない?って事。
面倒でお気に召さないかもしれないけど。

89 :デフォルトの名無しさん:05/02/02 23:01:27
エラーはコンパイル時に出てるんだろ、
OnErrorってなんだよ。

90 :デフォルトの名無しさん:05/02/02 23:31:18
あ、コンパイル時エラーか。>>80見落としてた。ゴメン

91 :デフォルトの名無しさん:05/02/03 00:58:33
VBScriptで質問があります。
VBSでUDP(又はIPパケット)を送信する方法を、ご存じの方教えてください。
目的は、自作のスクリプトからsyslogメッセージを送ることです。

MSDNで、「.NET FrameworkでUdpClientクラス」を見つけましたが、
VBSで使えるモノでしょうか?(そのままでは動かないことは確認しました。)

あとは、GoogleでVB(VBSでない)やCで「WinSock」を使う例が見つかりましたが
そのままでは使えませんし。

よろしくお願いします。


92 :78:05/02/03 09:30:39
>>87

>>たとえば「現在参照している…」ってそれ自作コントロール使ってるアプリのこと?
>>それとも自作コントロール自身?

 えっと、自作コントロール自身がコンパイルできないので、自作コントロール自身の参照を列挙しました。
 コントロールを使用する不特定多数のプロジェクト側を書いても意味ないと勝手に思ってしまったものですから。
 まさか、コントロールを呼び出す側の参照内容も明示しなければいけないなんて、ボクには想像もつきませんでした。

>>いつものことだが人にESPを期待しない。
>>あんたの思念は言葉で表現しないと人に伝わらないよ。

 「Visual Basic でサポートされていないオートメーションが変数で使用されています。」 の変数を調べるのに、
怪しい変数を外してコンパイルを繰り返すしか方法はないんですか?
 というのが知りたいんです。最初から同じ質問内容のつもりだったんですが、エスパーでないとわからないでしょうか?
 もしくはボクの文章力がないのでしょうか?

>>どんな機能のコントロールなのかは極秘事項で人に明かせないの?

 ボクの知りたいのは、「Visual Basic でサポートされていないオートメーションが変数で使用されています。」 の変数を調べるのに、
怪しい変数を外してコンパイルを繰り返すしか方法はないんですか?というのが知りたいんですが。
 この場で見ず知らずの方に、仕様を明らかにして根本的にデバッグしてもらうとか、エラーの出ている変数を特定してもらうつもりなら詳細説明が必要でしょう。
しかし、そこまでをお願いするならプログラマなんて辞めたほうがマシですよね。多分・・・

>>ーか自作コントロールってそもそもコンパイルして使ってみるなりしないと
>>テストも糞もないと思うんだけど。

 お説教ありがとうございます。以後気をつけます。
 おっしゃる通り、コンパイルして使ってみるなりしないとテストもクソもないのです。
 そこでお願いです。コンパイルするために、問題のある変数を調べる方法を教えてもらえませんか?


93 :デフォルトの名無しさん:05/02/03 09:50:09
変数のオートメーションエラーなんだから、Variantが怪しいとしか
言えないんだわ。
二分木検索って手もある訳だから、大きく割って上か下かで、検索
すればすぐだろ。

94 :78:05/02/03 10:23:38
>>93
>>二分木検索って手もある訳だから、大きく割って上か下かで、検索
>>すればすぐだろ。

 この方法は同様の現象(コンパイル時にのみエラーがでる)際に、何度か試したことがあります。
 プロジェクト全体が大きい場合やモジュール数が多い場合、また広範囲のソースコードを操作するため、あまりやりたくなかったのですが、やはり、この方法しかないんですね・・・

 ということで、この方法で見つかりました。

>>変数のオートメーションエラーなんだから、Variantが怪しいとしか

 はい、その通りでした。

public property get AAA(optional byval V as Variant = Null) as CMyClass

 の Null がお気に召さなかったらしく・・・ "" に変えたら通りました。
 ありがとうございました。

 ちなみに87氏の説では、あなたはエスパーと言う事になりますね。


95 :DethLow:05/02/03 12:30:51
VB6.0で販売システムを作成しているのですが、メルマガを発行したいので
ACCESSで作成したデータベースから顧客すべてのメールアドレスを取得し
メーラーのBCCに自動で挿入し件名・本文を入力した後にコマンドボタンを押したら
送信する処理は作成できるんでしょうか?

96 :デフォルトの名無しさん:05/02/03 12:47:54
>>95
できます。

97 :デフォルトの名無しさん:05/02/03 12:48:49
>>95
そういう方法では普通やらない
メルマガの作り方から勉強して下さい

98 :93:05/02/03 13:43:12
>>94
エスパーではなく屁スパかな。

99 :DethLow:05/02/03 14:41:56
>>97メルマガの作り方から勉強してみます・・・

100 :デフォルトの名無しさん:05/02/03 15:38:20
高1なんですが、授業でゲームを作れと言われました。簡単な作り方を教えてください

101 :デフォルトの名無しさん:05/02/03 15:55:24
フォーム上にテキストボックスの配列がある場合、フォーカスがあたっているテキストボックスの
インデックスはどうやって知るのですか?

102 :デフォルトの名無しさん:05/02/03 17:16:02
>>101
コントロール配列だったら、イベント引数の Index で取得できます。

103 :78:05/02/03 18:01:29
>>101
アクティブなコントロールを得るには、activecontrol オブジェクトを使うと楽です。
こんな感じで書くと良いですよ。

if (activecontrol.name = "txtArray") then
CurrentIndex = activecontrol.index
end if


104 :デフォルトの名無しさん:05/02/03 19:17:08
>>103
C# のように見える (w

105 :デフォルトの名無しさん:05/02/03 19:50:03
>>102-103
ありがとうございます

106 :デフォルトの名無しさん:05/02/03 20:00:31
>>100
どんなゲームが望みなんだろう?
こんな漠然とした質問も久しぶりに見たよ。

107 :デフォルトの名無しさん:05/02/03 23:39:36
VB6.0 winXP

DataReportのLabel1にフォームのLabel1を表示したい場合は
DataReport.Sections("Section1").Controls("Label1").Caption = Form1.Label1
でいけたんですけど同じように
DataReport.Sections("Section1").Controls("Image1").Picture = Form1.Image1.Picture
とイメージを持っていこうとすると
「オブジェクトはこのプロパティまたはメソッドをサポートしていません」
と実行時エラーが出るのですが何が悪いのでしょうか

108 :デフォルトの名無しさん:05/02/04 09:58:58
>>100
1. フォームにラベルとコマンドボタンを配置
2. 乱数を発生させ、その値に応じて「グー」、「チョキ」、「パー」をラベルに表示

これでじゃんけんゲームの完成じゃ。

宿題なんだからここから先は自分で考えな。

109 :デフォルトの名無しさん:05/02/04 11:23:41
VB6.0 win2000SP4

splitを使って出た文字を違うフォームのテキストにそれぞれ表示させたいのですが、
うまくいかず困っています。宜しくお願いします。

Dim i As Integer
Dim sData() As String

sData = Split(sKey, ",")
For i = 0 To UBound(sData)

Load Form2

Form2.Show
Next


110 :デフォルトの名無しさん:05/02/04 12:50:23
WindowsMediaEncoder9 SDKを使用して音楽ファイルの連続エンコードを
VBScript上で行っています。

エンコードを繰り返していると、原因不明(エラーハンドルは捕まえられません)
のままScriptが止まった状態になります(プロセスは生きています)

このようにスクリプトが止まってしまう現象として、考えられる原因は
何がありますでしょうか・・・ メモリリークとか怪しいと思っていますが
リークしているか調べるられるのでしょうか・・・

111 :デフォルトの名無しさん:05/02/04 14:07:02
Dim i As Integer
Dim sData() As String
Dim f() As Form2

sData = Split(sKey, ",")
ReDim f(UBound(sData))
For i = 0 To UBound(sData)
    Set f(i) = New Form2
    f(i).Caption = sData(i)
    f(i).Show
Next

112 :デフォルトの名無しさん:05/02/04 15:38:17
>>111
ありがとうございます。大変助かりました。


113 :デフォルトの名無しさん:05/02/04 16:52:02
2000 VB6 0#

VB6開発環境でGrepやブックマークのショートカットキー対応などの機能を持ったアドインを自作したいのですが、
どこか参考にできるようなサイトや書籍はないでしょうか?
ググってみたけどアドインを解説しているサイトはなかなか見つからなくて…


114 :デフォルトの名無しさん:05/02/04 20:55:28
6.0にはsplit関数があるのか。便利だなー

115 :デフォルトの名無しさん:05/02/05 02:33:21
textboxに文字が入力されないのですが、どのような原因が考えられますか?
keyPresをみてみると、codeは正しく来ているのですが・・・

116 :デフォルトの名無しさん:05/02/05 03:25:57
どこかに盗まれてるのかなぁ。
例えばキーロガーとか。
まあ、そんな間抜けなロガーは無いか。

117 :デフォルトの名無しさん:05/02/05 03:55:23
>>115
かんたん、キープレスでキャッチしてない、
女を馬鹿にするなよ

118 :デフォルトの名無しさん:05/02/05 12:42:28
>>113
なんのアドインだよ。

119 :デフォルトの名無しさん:05/02/05 13:17:07
>>107
Set

120 :デフォルトの名無しさん:05/02/05 16:10:49
VB6.0
MSChart SP4

MSChartでX軸を左向きにするにはどうすればいいでしょうか?

121 :デフォルトの名無しさん:05/02/05 17:23:58
VB6.0
3 text1
5 text2
8 text3
3+5 text4←計算式をテキストボックスに出すにはどうやってやればいいんでしょうか?

122 :デフォルトの名無しさん:05/02/06 02:17:25
>> 121
・・・パズルか?
う〜ん、意味がわからん。


123 :デフォルトの名無しさん:05/02/06 02:25:35
>>121
text1 & "+" & text2

124 :デフォルトの名無しさん:05/02/06 02:26:47
>>122
text4に計算式を出さなくちゃいけないんだけど
やりかたがわからないです。
text1とtext2に入れた数をtext3に答え
text4に式を出す。横には足すとか引くとか色々なボタンがあるんですけど

125 :デフォルトの名無しさん:05/02/06 02:30:38
>>123
サンクスです。出来ました。ありがとうございました。

126 :デフォルトの名無しさん:05/02/06 04:59:33
text1に入力した数値からtext2に入力された数値までの累計を求める
Dim 入力1 As Integer
Dim 入力2 As Integer
Dim 累計 As Integer
Dim cnt As Integer

入力1 = Text1.Text
入力2 = Text2.Text
累計 = 0
cnt = 入力1

Do While cnt <= 入力2
累計 = 累計 + cnt
cnt = cnt + 1
Loop
Text3.Text = 累計
これで普通に求まるんですが
偶数の累計はどこを変更すればいいんでしょうか?

127 :デフォルトの名無しさん:05/02/06 10:32:25
意味わからん。。
データ2つしかなかったら「累計」じゃなくて「合計」だと思うんだけど・
っていうか、偶数の累計??判じ物の一種ですか?

ていうか、こんなレベルの内容をよく人に聞けるもんだ。
こんな感性の人間は何やらしてもおそらく満足にできないタイプだろう。

普通黙って本屋行って入門書買って勉強するとかするでしょ。
VB5,6なんてウェブ上にだって親切なサイトがいくらでもある。
学校の宿題なら当然テキストがあるだろ。

128 :デフォルトの名無しさん:05/02/06 15:27:09
  Dim 入力1  As Integer
  Dim 入力2  As Integer
  Dim 累計  As Integer
  Dim 偶数計 As Integer
  Dim cnt   As Integer

  入力1 = Text1.Text
  入力2 = Text2.Text
  累計 = 0
  偶数計 = 0
  cnt = 入力1

  Do While cnt <= 入力2
    累計 = 累計 + cnt
    If cnt Mod 2 = 0 Then
      偶数計 = 偶数計 + cnt
    End If
    cnt = cnt + 1
  Loop
  Text3.Text = 累計
  Text4.Text = 偶数計

129 :デフォルトの名無しさん:05/02/06 16:52:58
>>128
ありがとうございます!

130 :デフォルトの名無しさん:05/02/06 16:58:26
テキストボックスに入力されたものが数値か判断するには
どうプログラムを書けばいいんでしょうか?

131 :デフォルトの名無しさん:05/02/06 17:09:48
for~next文を使って、
     12345
     12345
   12345
  12345
    12345
     12345
      12345
のように表示させるプログラムを作りたいのですが
わからず困っています。
ヒントだけでも教えてもらえませんしょうか?

132 :デフォルトの名無しさん:05/02/06 17:23:14
>>130
IsNum()

133 :デフォルトの名無しさん:05/02/06 17:25:47
>>131
for i=0 to 6
for j=0 to iif(i>3,3-i,i-3)
print ""
next j
print "12345"
next i


134 :デフォルトの名無しさん:05/02/06 17:52:44
For i = 0 To 6
  Print Space(Abs(i - 3)) & "12345"
Next i


135 :131:05/02/06 19:00:44
>>133,134
ありがとうございます。
テスト期間中なので、ほんと感謝です。
他にもわからなくて困っているのですが、質問させていただいてもよろしいでしょうか?

             1
           2
         3
       4
     5
     1 2 3 4 5 7 8 9
                  6
                7
              8
            9

これもfor〜next文を使用してプログラムを
完成させるらしいんですが・・・全くわかりません・・・。

136 :デフォルトの名無しさん:05/02/06 19:05:19
>>135
あなたはテストで出される問題を全てここでやってもらうつもりか?

137 :デフォルトの名無しさん:05/02/06 19:12:14
>>135
水平の数字列に6が無いのが気になる。

138 :デフォルトの名無しさん:05/02/06 19:16:35
>>132
サンクスです。

139 :デフォルトの名無しさん:05/02/06 20:28:35
s = Space(5)
For i = 1 To 9
  Print s & i
  s = Left(s, Len(s) - 1)
  If s = vbNullString Then
    For j = 1 To 9
      If j <> 6 Then
        s = s & j & Space(1)
      End If
    Next j
    Print s
    s = Space(10)
  End If
Next i


140 :131:05/02/06 21:00:10
すいません、6抜けてました。

135>>一応自分でもやってるんですが、どうしても解らなくて・・・
134さんと139さんのヒントを元に自分でやってみたんですが

For i = 1 To 5
Print Space(Abs(i - 5)); i
Next i
Print 12345678910#
For j = 6 To 10
Print Space(Abs(j - 20)); j
Next j

菱形っぽいですができました。
できるだけがんばってみます。
ありがとうございました。

141 :デフォルトの名無しさん:05/02/06 21:31:12
VB6.0で
ポップアップメニューを右クリで表示させるんですが
左クリしても表示しちゃうんですが表示させないようにするには
どうすればいいでしょうか?

142 :デフォルトの名無しさん:05/02/06 21:33:00
>>141
どうやって表示させてるんだ

143 :デフォルトの名無しさん:05/02/06 21:34:17
If Button = 2 Then
PopupMenu M_Popup
End If
ですが・・・

144 :デフォルトの名無しさん:05/02/06 21:36:09
いやできてました。
すいません。

145 :デフォルトの名無しさん:05/02/06 21:53:21
右クリで出たものをクリックしてForm上に画像を出すんですけど
出ません。左クリでも最初の画像だけ出ちゃいます。
左クリで出さないようにして
右クリで画像出すにはどうやればいいんでしょうか?
ちなみにメニュー欄にあるやつを押せば画像はちゃんと出るんですが・・・

146 :デフォルトの名無しさん:05/02/06 21:59:40
>>145
基地外だな

147 :デフォルトの名無しさん:05/02/06 22:07:34
>>145-146
コーヒー噴いちゃったじゃんかよ。責任とれ!

148 :デフォルトの名無しさん:05/02/06 22:48:50
わ、わかった
むきだしのコックをぶちこんでくれ

149 :デフォルトの名無しさん:05/02/06 22:54:16
右クリで出すにはどうすればいいんでしょうか?
左では出なくなったんですが

150 :デフォルトの名無しさん:05/02/06 22:57:57
なんか表現に興奮するな・・・ ちょっと抜いてくる

151 :デフォルトの名無しさん:05/02/06 23:05:35
性欲をもてあます

152 :デフォルトの名無しさん:05/02/07 02:18:26
良スレの予感

153 :デフォルトの名無しさん:05/02/07 13:44:43
お取込のところすまんがWindows2003Sever上でVB6の動作はどんなもんですか?
2000からの移行なんだけど、コーディングでささいな変更とかあったら教えてください
お願いします

154 :デフォルトの名無しさん:05/02/07 15:14:15
すみません標準コンポーネントのMsFlexgridについておしえてください。
自前でソート機能を作成したのですが、項目部分(トップの見出し)
をクリックした再のRowsの値により、どの行がクリックされたか判定しています。
なぜかIF Rows = 0 Thenの処理を飛び越えるのでウオッチウインドウで確認したところ
見出しのトップ行と次のデータ部の行で取得できる値がいづれも1≠ェ
戻ってきてしまいます。見出し行クリック時のうまい判定のしかたを伝授願えないでしょうか?
環境はVB5です。


>>153
うちの環境では5でも6でも順調に動いていますよ。

155 :154:05/02/07 15:36:34
すいません解決です。どうやら固定値を設定してはいけないみたいですね
コードで項目部の色変えることにします。

156 :デフォルトの名無しさん:05/02/07 16:17:53
角丸四角形の描画はこれでいいですか?
いちおう線はつながりますけど、泥縄式に調整したので自信なくて。

pi = 4 * Atn(1)
r = 8 ' 半径
x = 15 ' 開始X座標
y = 40 ' 開始Y座標
w = 300 ' 幅
h = 200 ' 高さ
Line (x + r, y)-Step(w - 2 * r - 1, 0)
Line (x + r, y + h)-Step(w - 2 * r - 1, 0)
Line (x, y + r)-Step(0, h - 2 * r - 1)
Line (x + w - 1, y + r)-Step(0, h - 2 * r - 1)
Circle (x + r + 1, y + r + 1), r, , pi * 0.5, pi
Circle (x + w - r - 1, y + r + 1), r, , 0, pi * 0.5
Circle (x + r + 1, y + h - r - 1), r, , pi, pi * 1.5
Circle (x + w - r - 1, y + h - r - 1), r, , pi * 1.5, pi * 2#

157 :デフォルトの名無しさん:05/02/07 17:11:10
>>156
RoundRect 使え

158 :156:05/02/07 19:16:54
>>157
ありがとう。
検索したら、「角の丸い」って書いてあった。
「角丸」じゃほとんどヒットしなかったのに。

159 :デフォルトの名無しさん:05/02/07 20:55:51
VB6.0でマルチスレッドって出来るんですか?

160 :デフォルトの名無しさん:05/02/07 21:00:20
>>159
するな。

161 :153:05/02/07 21:02:46
>>154 レスありがとうございます。
2003でやってみようかな

162 :デフォルトの名無しさん:05/02/08 06:50:16
>159
ActiveXのInstancingプロパティをMultiUse

163 :デフォルトの名無しさん:05/02/08 09:08:24
>>159
やめろ、ひどい目にあうぞ。
あんな簡単な、マルチメディアタイマーさえ動かない。

164 :デフォルトの名無しさん:05/02/08 18:58:59
VB6は事務処理専用に使ってます。

165 :デフォルトの名無しさん:05/02/08 18:59:30
適材適所ですな(w

166 :デフォルトの名無しさん:05/02/08 19:06:07
Winnyだってマルチスレッドを直接使わず、
VBでも使えるsocketの非同期通信だけでやっているわけで
VBだってどうにかなる。


167 :デフォルトの名無しさん:05/02/08 19:18:27
一輪車で日本一週できるかっつったらできるけどさぁ

168 :デフォルトの名無しさん:05/02/08 19:22:57
わざわざやらん罠(w

169 :デフォルトの名無しさん:05/02/08 20:00:48
やってやる、覚えてろよ。

170 :デフォルトの名無しさん:05/02/08 23:42:26
Windows98以降であれば、何のコンポーネントも追加せず
作ったソフトなら、VBランタイムを別途インストールしなくても一応起動しますよね?
だけど、日本語を使ってると、その日本語が化けるって症状が起こりますよね?
この認識あってます?

171 :デフォルトの名無しさん:05/02/08 23:46:52
>>170
特殊なコンポーネント使ってなければ、英語のVBランタイムの一部は入ってるな

172 :デフォルトの名無しさん:05/02/08 23:50:03
ごめん、VB使ってるのはメインウインドウだけ

173 :デフォルトの名無しさん:05/02/09 11:20:00
VB増強作戦のオフライン版を持ってる型、ぜひアップロードしていただきたいのですが・・・

174 :デフォルトの名無しさん:05/02/09 16:22:46
2.07MBの奴だよね。

うpろだおくれ。

175 :デフォルトの名無しさん:05/02/09 17:27:05
印刷帳票の一部に、リッチテキストのデータを入れたいんですけど、どうすれば良いのでしょうか?


176 :175:05/02/09 17:48:38
もしや、一度イメージにしないと駄目なのか?


177 :175:05/02/09 18:00:09
イメージにしてみたんですが、一度、解像度が低い状態でイメージ化したものをプリンターオブジェクトに吐き出したためか、ジャギジャキな文字になってしまうんですが。
何か良い方法はないんでしょうか?


178 :デフォルトの名無しさん:05/02/09 19:47:19
リッチテキストのデータって何かね?

179 :173:05/02/09 23:58:45
>>174
ttp://www.fileup.org/
ここにおながいします。m(__)m

180 :デフォルトの名無しさん:05/02/10 04:15:28
VBでI/Oポートの制御したいです。
Windows APIでもいいのですが、可能でしょうか?
i)特定番号のI/Oポートの内容を見る。
ii)特定番号のI/Oポートに書く。
iii)特定のI/Oに入力があったときに割り込み処理
(またはデータの取りこぼしがないようにする方法)

よろしくおねがいします。

181 :デフォルトの名無しさん:05/02/10 11:56:03
>>180
I/Oボードのメーカーにきけば?

182 :デフォルトの名無しさん:05/02/10 15:09:10
>>179
fup8004.lzh で、受信パスは vb で。

183 :173:05/02/10 15:33:31
>>182
ありがとうございます。モウナクシマセン・・・・
ぢつはもう7年前の話なんですね

184 :デフォルトの名無しさん:05/02/10 17:16:00
>>180
i),ii)はCでDLLを作れば可能だけど、
iii)は難しいかな。割り込みはドライバーの仕事だからな。
どうしてもと言うならCのアプリを作ってポーリングでポートを見て、
MessageでVBに飛ばすかな。

185 :デフォルトの名無しさん :05/02/10 17:41:48
すんませんVB6.0なんですが、質問させてください。
iniファイルの置き場所をwindows(もしくはwinNT)直下では無く、
任意のフォルダ(出来れば実行ファイルが置いてあるフォルダ)にしたいのですが、
そのパス等、どのように記述すれば良いんでしょうか?
どうかよろしくお願いいたします。

186 :デフォルトの名無しさん:05/02/10 19:05:49
iniファイルの読み書きには何を使ってるんだ?

187 :デフォルトの名無しさん:05/02/10 22:30:12
>>185
カタワか?君のような人は死んだほうがいいと思う。
http://www.google.com/search?num=100&hl=ja&as_qdr=all&q=vb6+%E5%AE%9F%E8%A1%8C%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%80%80%E3%83%91%E3%82%B9%E3%80%80%E5%8F%96%E5%BE%97&lr=

188 :デフォルトの名無しさん:05/02/10 23:25:17
>>183
お役に立てて光栄。大切にしてケロ。
ろだの方はデリるズラ。

189 :デフォルトの名無しさん:05/02/11 10:27:09
10進から16進に変換するにはどうすればよいのでしょうか。

190 :デフォルトの名無しさん:05/02/11 10:39:44
hex

191 :デフォルトの名無しさん:05/02/11 10:41:36
>>189
Hex

192 :デフォルトの名無しさん:05/02/11 10:45:19
>>190-191
ありがとうございます。あともう1つお願いします。

数値の先頭を0埋めしてある桁数になるようにしたいのですが、
どうやるのが普通でしょうか。VB.NETならPadLeftとかいう関数が
あって便利なのですが。

800 → 000800

みたいなことです。

193 :デフォルトの名無しさん:05/02/11 10:49:42
Format

194 :デフォルトの名無しさん:05/02/11 10:50:36
Right(("000000" & "800"), 6)

195 :デフォルトの名無しさん:05/02/11 10:51:22
Format("800", "000000")

196 :デフォルトの名無しさん:05/02/11 11:06:27
>>193-195
どうもです。助かりました。

197 :デフォルトの名無しさん:05/02/11 12:00:57
>>177
OleDrawで描いてみるとか。

198 :デフォルトの名無しさん:05/02/11 12:23:21
ボタンを押したら、OutlookExpressの「メッセージの作成」ウィンドウを
表示して、件名や本文や宛先を表示したいんですがどうやれば
いいかわからない・・・orz

よろしくお願いします。m(_ _)m

199 :デフォルトの名無しさん:05/02/11 12:30:46
OutlookExpressを起動してメールの作成ボタンを押し、
メッセージの作成ウィンドウが表示されたら件名や本文や宛先を
入力して表示させます。

200 :デフォルトの名無しさん:05/02/11 12:31:07
>>198
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/211startmail/startmail.html
のようにすればいい

201 :198:05/02/11 12:57:04
>>199 >>200
早速のお返事ありがとうございました。m(_ _)m
さあ、がんばろうっと!

202 :198:05/02/11 13:32:43
>>200
mailto:をコピペしたんですが、本文の1行目が必ず改行されてしまいます。
ShellExecuteEXを使用しています。
どうして・・・orz

203 :デフォルトの名無しさん:05/02/11 16:01:14
Visual Basic 6.0を使ってます。
質問なんですが、DirectXを使ってスタートボタンを押したときにでるメニューを消したいのですが、どうすればいいでしょうか。
お願いします。

204 :デフォルトの名無しさん:05/02/11 18:42:11
>>203
DirectXを使ってスタートボタンを押すことはできねーぞw。
もちっと読む側のことを考えて文を書けや。

全画面(占有)モードのときWindowsキーを押されても機能しないようにしたいってことかな?
それならDirectInputで強調レベルにDISCL_FOREGROUNDを指定するだけでいいはずだぞ。
DISCL_NOWINKEYってフラグもあるけどな。


205 :203:05/02/11 21:54:22
>>204
すいませんでした。そのことを心がけるようにします。

DISCL_FOREGROUNDに指定すると、DiDev.GetDeviceStateKeyboardのところでエラーになりました。
何故でしょうか。

206 :203:05/02/11 23:04:20
どうやら、そのプログラム本体からフォーカスがなくなるとエラーになるみたいです。
これを改善する方法を教えてください。

207 :デフォルトの名無しさん:05/02/11 23:22:19
>>203
だからぁ〜、どういう風にやってて、どんなエラーなんよ?

メソッドの意味とか理解しないでコピペしてんじゃねーの?
アクセス権とかちゃんとてやってる?
「心がける」なんて小学生にでも「言える」ぞ?ん?


208 :デフォルトの名無しさん:05/02/12 15:25:22
shiftキーが押されたかどうかを知る方法はないのでしょうか?
メニューエディタのところに表示しないダミーのメニュー置いてショートカットキー指定すればいいジャン、って思ったのですが
shift+enterというのがないもので・・・

209 :デフォルトの名無しさん:05/02/12 15:35:39
あ、すいません。。。
keydownイベントでできました。。。

210 :デフォルトの名無しさん:05/02/12 20:10:41
VB6.0 を使用しています。
「フォームが最小化された」「最小化の状態から復元された」をトリガにして
処理を行いたいのですが、どのようにすればよいでしょうか。
フォームの width、height を監視するくらいしか思いつかないのですが。


211 : ◆uILP78dVVc :05/02/12 20:20:04
>>210
最小化等の動作をするとForm_Resizeイベントが発生します。
イベント内でフォームのWindowStateを見て、処理を分岐します。

212 :デフォルトの名無しさん:05/02/12 20:20:51
>>210
Private Sub Form_Resize()
  Select Case Me.WindowState

213 :210:05/02/12 20:24:39
>>211-212
ありがとうございます。
WindowState プロパティがあるのを失念していました。


214 :198:05/02/13 13:54:35
VB6、SPREAD6を使っています。
5列100行のスプレッドシートで、表示可能行は20行です。

一番先頭の行を表示した状態で、その先頭行をクリックしたまま下のほうに
マウスを移動するとスプレッドシートがスクロールするのですが
最終行が一番上にきて終了してしまいます。
最終行を表示可能行の一番下に表示したいのですが
どうやったいいのでしょうか?
よろしくお願いします。 m(_ _)m

215 :198:05/02/13 14:20:06
ScrollBarMaxAlignプロパティでできました。(^^;

216 :デフォルトの名無しさん:05/02/13 16:41:56
Os:WinXP Home
VB:VB5.0 SP無し

PCゲーム(Winning Post7)のメモリを操作したいと思ってます。
OpenProcess → ReadProcessMemory → WriteProcessMemory
ということまでは分かったんですが、チンプンカンプンです。。
メモリマップ等が詳しく載っているサイトや本をご存知の方いますか?
もしくは類似品を作ったことがある人で、手順を教えていただける方
いますか?
どうぞ宜しくお願いします<(_ _)>

217 :デフォルトの名無しさん:05/02/13 17:40:37
WIN2000
VB6 SP5
EPSON LP-8100
です。

印刷の事なのですが、「逆方向から印刷」をコードで
実現したいのですが、可能でしょうか?

218 :デフォルトの名無しさん:05/02/13 17:49:00

【Q】
  >>217の文章で、217以外の人間に
  217が実現したいと思っていることを伝達することは可能でしょうか?

【A】
  不可能だと思います。

「逆方向からの印刷」ってどういうこと?
機種名書かれても普通の人はどんなプリンタかわかりません。

219 :デフォルトの名無しさん:05/02/13 18:00:02
>>218
その程度もわからないなら口を挟むな

220 :217:05/02/13 18:20:57
217です。書き方悪くてすみません。
印刷したいものをPictureコントロールに乗せて、そ
れを180゜回転して印刷、なんて事も考えたのですが、
処理に時間がかかり過ぎるかなぁとか。
プリンタドライバの操作は簡単ではないですか?

221 :デフォルトの名無しさん:05/02/13 18:31:56
>>220
紙を反対にセットしたほうが早いと思われ。

222 :203:05/02/13 18:32:23
>>207
DirectDrawの強調レベルのところが
DD.SetCooperativeLevel hWnd, DDSCL_EXCLUSIVE Or DDSCL_FULLSCREEN Or DDSCL_NOWINDOWCHANGES
DirectInputの強調レベルのところが
DiDevK.SetCooperativeLevel hWnd, DISCL_FOREGROUND Or DISCL_NONEXCLUSIVE
となっております。

これで、Windowsのキーを押すと、
実行時エラー '-2147024866(8007001e)';
オートメーション エラーです。
指定されたデバイスから読み取れません。
というエラーが出ます。

223 :217:05/02/13 18:59:21
何度も申し訳ないです。
決められた様式の枠内に文字を印刷したいのですが、
プリンタの印刷範囲の下マージンが17mmで印刷しきれ
ません。「逆方向から印刷」する事で、解消できるの
ですが、コモンダイアログの「印刷」を出してきて、
「プロパティ」を押す、という方法はしたくないので
す。

224 :デフォルトの名無しさん:05/02/13 20:08:53
>>223
今までどういう方法で印刷してたの?
プリンタのプロパティで“逆方向から印刷する”ってあるの?

225 :デフォルトの名無しさん:05/02/13 20:26:39
>>223
それなら、描画位置をScaleXXプロパティ使ってずらすだけでいいと思うんだけど。。
まさかFormのPrintFormなんて使ってないよね?

226 :217:05/02/13 20:31:29
EPSONのプリンタしか知らないのですが、「逆方向か
ら印刷」もしくは「180゜回転して印刷」というのが
あります。

227 :デフォルトの名無しさん:05/02/13 20:38:19
VB6.0を使用してます。質問したい事があるのですが、現在の日付から自分で指定した日付の差の日数を求めるプログラムを
作りたいのですがこれにはDateDiff関数を使いますよね。
MSDNでDateDiffの使用例を見て作ったのですが、これからの日(今日で言うと2/14〜12/31)を求める事はできたのですが
過ぎてしまった日にち(今日で言うと1/1〜2/12)を入れてやると「-〜日」となってしまうんです。
12月をまたいでもちゃんとできるようにしたいのですがどうすればいいのでしょうか?
DateDiff関数じゃなく別の関数を使用しなければならないのでしょうか。

ちなみにこれがMSDNに記載されていた使用例です。

Dim TheDate As Date
Dim Msg

TheDate = InputBox("日付を入力してください。")
Msg = "今日からの日数: " & DateDiff("d", Now, TheDate)
MsgBox Msg



228 :デフォルトの名無しさん:05/02/13 20:41:11
>>226
Printerオブジェクトの中にそれらしきプロパティないの?

229 :デフォルトの名無しさん:05/02/13 20:43:29
ちょっとわかりにくかったもしれないので補足です。

1/1の日を指定したのであれば今日を元に「指定した日まで後320日です」という風にしたいんです。

230 :デフォルトの名無しさん:05/02/13 20:50:36
>>229
日付を入力するときに、年を入力しなかったでしょ。
でないと、2004年1月1日と解釈しますよ。

231 :デフォルトの名無しさん:05/02/13 20:51:53
>>229
西暦と月と日全てが無いと、計算できないだろ?

232 :230:05/02/13 20:54:08
× 2004年
○ 2005年

233 :デフォルトの名無しさん:05/02/13 20:54:12
あー西暦を忘れてました・・・。あほ質問ですいませんでした。

234 :デフォルトの名無しさん:05/02/14 10:33:27
mciSendStringでmidiが再生できない時があるのですが、
何か原因はありますかね?
私の環境では再生できるのですが、
他の環境では再生できないらしいです。
その再生できない環境ですが、サウンドカードも積んであるようですし、
なにより他の再生ソフトでは再生できるようでして。
midiも特に拡張音源は使ってませんし。
ググッたところmidiのフルパスにスペースが含まれていると
正しく動作しないとあったのですが、
その辺もダブルクォーテーション入れて対策済みですし。
原因がサッパリつかめなくて困ってます。
どなたかご教授願えないでしょうか?

235 :234:05/02/14 10:36:59
訂正。mciSendStringAです。

236 :230:05/02/14 10:57:43
>>234
鉄道屋さんですよね?
マップをクリックしたら、再生がはじまるときがあるのですが、
頭だし1秒か2秒で止まってます。

237 :234=usk ◆.GszOyJeCA :05/02/14 11:25:30
ハイ、その通りです。ってか八方塞です。orz
まぁついでなんで作品と疑惑のソース晒しておきますね。
ラップ化したクラス : ttp://isweb43.infoseek.co.jp/computer/kml/midiclass.zip
本作品 : ttp://isweb43.infoseek.co.jp/computer/kml/tetsudoya1010b.zip

238 :デフォルトの名無しさん:05/02/14 12:54:13
重すぎて動かん

239 :デフォルトの名無しさん:05/02/14 19:21:44
>>234
無責任に気づいた点を並べてみる。
MCIのコマンドについては知らないので何も指摘できませんが。。

(1) cStateって配列を初期化で、文字列の最後のナル文字は不要だと思う。

(2) 各プロパティ・メソッドの中のmciRetStringは、mciSendStringをコールする前に
  mciRetString = String(255, vbNullChar)のようにナル文字で埋めておく必要があると思う。
  特に、MidiStateプロパティの中の処理はまずい気がする。
  ていうか、MSDNにあるように、使わないんだったらNULL渡しとけばいいのでは?

240 :デフォルトの名無しさん:05/02/14 21:55:36
Val関数使うと物凄い遅くなるんですね。

241 :usk ◆.GszOyJeCA :05/02/15 00:56:35
>>239
レス有難うございます。
cStateのNullを取ったりしていろいろ文字列弄くってたら
>>236さんと似たような症状が出てきました。
mciRetStringに返される文字列がNT系と9x系で違ってるかも。
Nullの後すべてNullで埋められるか、デフォルトのままか。
デフォルトのままだったらcStateと同値判定されて正しく動作して
Nullで埋められたら同値判定されず正しく動作しない。そんな感じがします。
とりあえず、その辺の修正をして今は報告待ちです。

242 :239:05/02/15 01:12:24
あ、ちょっと言葉が足りなかったので補足しますが、MidiStateプロパティの中の
  If cState(i) = LCase(mciRetString) Then
ここは明らかにまずい。

>>239に書いたように、mciRetStringはまずAPI呼ぶ前にナル文字で埋めとく必要があるし、
APIによってセットされた文字列を検査するときも、下のMSDNにあるようにLeft$とInstrを
組み合わせてナル文字の前で切ってやる必要があると思う。
http://www.microsoft.com/japan/developer/library/VBCon98/vbconpassingstringstodllprocedure.htm

243 :usk ◆.GszOyJeCA :05/02/15 01:32:45
>>242
そうやっといたら正しく動いたようです。
有難うございました。

244 :デフォルトの名無しさん:05/02/15 10:05:39
WinXP+SP2+office2003のマシンにVB6.0を入れると、
VB起動時に毎回office2000のインストーラが立ち上がってくるようになったんだけど・・
なぜ?
ちなみにAccess使ってるんだけど何か関係あるの?

245 :デフォルトの名無しさん:05/02/15 12:01:31
>>244
たしか既知のバグ。
MSに対処方法が載ってる。

246 :244:05/02/15 12:35:19
これですかね?

[OFF2000] DHTML 編集コントロールにアクセスすると Windows インストーラが起動する
http://support.microsoft.com/default.aspx?scid=kb;ja;304107


247 :244:05/02/15 12:38:36
すいません、これのようですね。

[VB6] Office 2000 の CD を要求される
http://support.microsoft.com/default.aspx?scid=kb;ja;417320

248 :154:05/02/16 18:03:18
すみません緊急的に教えていただきたく存じます
文字列"c:\folder\main\app\Job"
というフォルダパスなのですが、一番最終の"Job"の文字列のみを抽出したいのですが
何卒お願いいたします

249 :デフォルトの名無しさん:05/02/16 18:13:34
6なら、Instrの文字列うしろからバージョンとかで出来る。
またはSplitで分けた末尾。


250 :デフォルトの名無しさん:05/02/16 18:40:07
ていうか、文字列関数眺めてそれぐらいのアルゴリズムが
ぱっと思い浮かばない人がプログラミングに関わるのは本人にとっても悲劇だと思う。

251 :デフォルトの名無しさん:05/02/16 19:32:23
>>249
splitって、文字列を後ろから¥探すより速いですか?

252 :デフォルトの名無しさん:05/02/16 19:46:13
自分で試せることは自分で

253 :デフォルトの名無しさん:05/02/17 00:09:55
vb6.0です
bitblitでvbSrcCopyを使って描写するとフォームの下が透けて見える
いろんなサイトのサンプルコードと見比べたけど原因が分からない

bitblit vbSrcCopyで背景を描写(したいんだけどバグる)

bitblt vbSrcAndとvbSrcInvertでオブジェクトを描写(これは正常に動作してる)

Refresh
Wait

繰り返し

助けてくれ

254 :デフォルトの名無しさん:05/02/17 00:11:31
なんかbltをblitとか書いちゃったけどそこはスルーで

255 :デフォルトの名無しさん:05/02/17 00:17:57
自己解決しました
AutoRedraw忘れてた
なにやってんだ俺は・・・自分一人で空回り

256 :デフォルトの名無しさん:05/02/17 00:45:50
ttp://www.xbeat.net/vbspeed/
スピードを気にしてる人どぞ
2バイト文字に対応してるかどうかは知らん

257 :デフォルトの名無しさん:05/02/17 01:09:05
ところで、質問なんだがいまさら保守要員以外でVB6で食えるの?
なんか食える人間ゴロゴロいるんだがいつごろ、消えるのだ?

258 :デフォルトの名無しさん:05/02/17 01:19:47
>>257
.NETかJavaの時代になるまで。

259 :デフォルトの名無しさん:05/02/17 11:10:12
VB6.0です

FTPサーバー上にある実行ファイルの更新日付を見て、
ローカルにあるものよりも新しかったらダウンロードして
上書きをするというものを組んでるんですが、
この場合、一旦日付を見ずに無条件に落としてきて
ローカル上でFileDateTime関数で上書きするか否かを判断するしか無いでしょうか?
FTPサーバー上のファイルの更新日付を見る方法はありますでしょうか?
よろしくお願いいたします。


260 :デフォルトの名無しさん:05/02/17 11:52:39
VB6.0です。この先2、3年現役です
ところでWindowsXP Pro + SQLServer2000 + VB6.0の構成でサーバ兼クライアントとして
動かした人います? WindowsServerの短期代替として動くか気になるところなんですか・・・

261 :デフォルトの名無しさん:05/02/17 13:59:52
>>260
知らんけど、同時接続数次第では?

262 :デフォルトの名無しさん:05/02/17 14:08:12
>>259
FTPに何を使ってるかによるけど。

FTPの制御データの流れは単なるキャラクタのやり取りだからね。
lsなりdirなりリスト表示コマンドを投げて、その戻り値を文字列解析して該当部分を切り出せばいけるでしょ?

(.netだとフリーのFTPライブラリとかがあって、そのソースを見ると勉強できるよ。)


263 :259:05/02/17 14:41:00
>>262
レスどうもです
InetでFTPやってるんですが、InetのFTPコマンドでは日付取得するコマンドが
存在しないらしく、ちょっと参ってました。
とりあえずdirの返り値を見てみようと思います
参考になりました!

264 :デフォルトの名無しさん:05/02/17 14:58:01
>>263
手でFTPやってみれば判るけど、相手側FTPサーバによって戻り文字列のフォーマット違うから注意してね。


265 :259:05/02/17 16:34:27
>>264
だめっす。。。。
手でFTPのdir打つと「更新日付/サイズ/ファイル名」が返ってくるんだけど、
Inetだとファイル名の一覧しか帰ってこない。。。。。。鬱

なんかいい方法無いっすかね?orz

266 :デフォルトの名無しさん:05/02/17 16:49:06
>>265

1.ぐれーぷしちーあたりで買う。

2.作る
ttp://x68000.q-e-d.net/~68user/net/ftp-1.html
ttp://members.jcom.home.ne.jp/1213687801/cs/menugeneral.html

下のリンク、.netだけどDirを送って結果を受けるまでなら簡単に移植できると思うよ。
コマンド部分はソケットで自作、実際のFTPはInetコントロールでも何でも。
(Inet使ったことないんで、実はそれで出来るっていう人いたら突っ込んでください。)

267 :デフォルトの名無しさん:05/02/17 16:57:16
あともういっこ手段があった。

3.バッチファイルでFTPコマンドを実行して、ls結果をファイルにリダイレクトさせる。
VB
Shell "Command.com バッチファイル"

バッチファイル
FTP < コマンドファイル >outdata.txt

コマンドプロンプトで手でやってみれば判りますが・・・。
” <コマンドファイル”には手で実行するFTPコマンドを記述
">out・・・"は結果の標準出力をファイルにリダイレクト。

コマンドファイル内は多分
USER xxx
PASS xxxx
Connect
LS
BYE
かな?

で、その出力されたファイルを解析。


268 :デフォルトの名無しさん:05/02/17 17:00:45
パイプでやれば良いのに

269 :デフォルトの名無しさん:05/02/17 17:03:22
>>268
VBのShell起動した先から標準出力ってパイプで取れたっけ?
コンソールを作って標準入出力ってのはやったことあるんだけど。

270 :259:05/02/17 17:21:29
わざわざ色々と模索してもらってほんと申しわけ無い。。。
ありがとうございますorz

バッチファイルでいくのが一番手っ取り早そうなんで、
ちとやってみます。
ほんとありがとう!

271 :デフォルトの名無しさん:05/02/17 18:53:47
お尋ねします。
V.BのACTIVEX.EXEからV.C作成のノーマルDLLを呼び出す事が
できません。
色々と調べたのですが、ヒントが何処にも乗っていなく。

DLLがACTIVEXDLLなら当然呼び出せるのですが、
素材としてノーマルDLLがファイルとして存在する
だけなもので、DLLをACTIVEX化する事も出来ません。

どなたか、V.BのACTIVEX.EXEからノーマルDLLを
呼び出せる方法をご存知無いでしょうか?
OS:WindowsXP
V.B6.0
を使用しています。
よろしくお願いします。

272 :デフォルトの名無しさん:05/02/17 19:07:17
>>271
普通のEXEからはそのDLLの呼び出し成功するの?

273 :デフォルトの名無しさん:05/02/17 19:10:35
>>272
通常のEXEからは動作実績のあるDLLです。
ですから、今回流用使用しようとしたのですが、
ACTIVEX.EXEからはDLLが認識できないようなのです。
何かいい知恵はありますか?

274 :デフォルトの名無しさん:05/02/17 20:58:17
>>271
パスが通ってないとかじゃないよな?
DLLをc:\Windowsとかに突っ込んでもダメ?


275 :デフォルトの名無しさん:05/02/18 00:31:33
普通に書き方間違ってるだけだろ。

276 :すみません。教えてください。:05/02/18 09:41:22
VB6.0からEXCEL2002のファイルに貼ってあるコントロール(チェックボックス)を制御したいのですが、
エラーが出てうまくいきません。。

↓---------------------------------------------
Dim objXls As Object
Set objXls = CreateObject("Excel.Application")
With objXls
.Workbooks.Open (xlsPath), ReadOnly:=True

'<このobjXlsのシートは「sheet1」のみです。>
'<「sheet1」には「CheckBox1」が設置してあります。>
  '=(この部分でエラー)==============================
  .Sheet1.CheckBox1.Value = True
.CheckBox1.Value = True
'↑(2個のどちらを使ってもエラーが出ます。)========
End With
---------------------------------------------
エラー内容
「オブジェクトは、このプロパティをまたはメソッドをサポートしていません。」
とでます。

何かご存知の方教えていただけますでしょうか??
宜しくお願いします。

277 :デフォルトの名無しさん:05/02/18 11:20:40
階層がおかしくない?

Excel -> Book -> Sheet だよね。BookとSheetが同レベルになっていないか?

278 :デフォルトの名無しさん:05/02/19 01:51:59
TEMP = Shell("move c:\temp\000*.bmp c:\Program Files\Barcode\", 1)

だとProgram Filesのスペースのせいかうまくいきません。
”でくくっている文字列の中でどのようの表現したらよいのでしょうか?

279 :デフォルトの名無しさん:05/02/19 02:18:11
2つのプログラムの間で命令のやり取りを行うとしたら
DDEとPROPどちらがおすすめでしょうか?
ソケットを使うって手もありますが、一番早いのはPROPですかね。
DDEはCancelを返さないとエラーが起こるので頻繁にやり取りを
行うプログラムには向いていないように思えるのです。

280 :デフォルトの名無しさん:05/02/19 08:37:46
現在パソコンが4台ネットーワーク接続されており
サーバー管理はしていません。
1台のパソコンで残り3台のパソコンをネットワーク
から切断するソフトをVBで開発したく教えて下さい。
使用目的はWinnyやMX等を仕事中に起動させている
アホな社員を阻止する為です。


281 :デフォルトの名無しさん:05/02/19 09:08:39
偽ARPパケット出しまくる


282 :デフォルトの名無しさん:05/02/19 10:05:37
281>
どうすれば良いのですか?
バカなので食わしく方法を
説明してください。

283 :デフォルトの名無しさん:05/02/19 10:15:35
>使用目的はWinnyやMX等を仕事中に起動させている
>アホな社員を阻止する為です。
ルータの設定を変えろ、アホ。

284 :デフォルトの名無しさん:05/02/19 10:28:39
283>ルータの設定は勝手にイジラレて
  しまうので無効なんですよ。


285 :デフォルトの名無しさん:05/02/19 10:33:44
Explorerの詳細表示と同じように,画像の左に複数列の文字列を置け
複数行リスト表示可能なコントロールって無いでしょうか.


286 :デフォルトの名無しさん:05/02/19 11:07:51
>>284
ルーターにパスワードかけたらどうよ?

287 :デフォルトの名無しさん:05/02/19 12:32:06
286>僕にはルーターにパスワードの権限が無いのです


288 :デフォルトの名無しさん:05/02/19 12:35:28
>>287
ルータにパスを設定できる権限を持った人に頼みなさい。
その権限がないものがネットワークの他人の接続を
どうこうしようなんてお門違いです。


289 :デフォルトの名無しさん:05/02/19 13:02:41
288>
違うのです。僕がネットワークを管理しているのですが・・・
上長がルータのパスワードを教えろとか聞いてきてヤリタイ放題
なのです。


290 :デフォルトの名無しさん:05/02/19 13:13:19
糞ネタ投稿するな。ニートなのがバレバレなんだよ。

291 :デフォルトの名無しさん:05/02/19 14:18:11
上長がやってりゃ会社の方針なんだからおまえもやれ。

292 :デフォルトの名無しさん:05/02/19 15:15:36
>>285
ListView

293 :デフォルトの名無しさん:05/02/19 15:59:40
>>289
 アンカーちゃんとしろ

294 :デフォルトの名無しさん:05/02/19 16:08:38
>>279
DDEは.NETから廃止されました

295 :デフォルトの名無しさん:05/02/19 18:14:00
>>278
スペースを含むようなパスはダブルクォートで括る。
こんなのは Windows の基本。
>>279
サブクラス化してメッセージでやりとりしてもいいんじゃない。
IDEが落ちないモジュールも今なら出回ってるし。

296 :デフォルトの名無しさん:05/02/20 09:04:04
>>294何故?

297 :デフォルトの名無しさん:05/02/20 09:45:44
座標上を点が時計回りに移動するとします。

例えば、最初は真下に移動し、障害物があれば左に移動。
以下同様に、左→上→右→下→左→上・・・・・・と移動します。

つまり移動量と方向は(0,1)→(-1,0)→(0、-1)→(1,0)→(0、1)・・・
のように変化します。

なにか上手い方法ってありませんかねえ?
caseを使って切り替えるくらいしか思いつかないんですけど
なんかダサイ気がするもんで。

298 :デフォルトの名無しさん:05/02/20 10:06:04
普通移動行列使うだろ

299 :デフォルトの名無しさん:05/02/20 10:23:38
普通三角関数使うだろ

300 :297:05/02/20 10:33:15
あ、つまり回転行列を使って、つど回転させる訳ですか。なるほど。

301 :デフォルトの名無しさん:05/02/20 11:35:55
当方まったくの初心者なのですが、これからVBを勉強していこうと思っています。
VBの本で、何かお勧めの本はありませんか?

302 :デフォルトの名無しさん:05/02/20 11:50:12
>>300
わかってると思うけどそんなくだらないネタに納得しないほうがいいと思うよ。
俺ならその「ベクトル」をマネージするクラスを作るね。
それならエレガントかつ将来の拡張性もある程度確保できる。

しかしネタってのはわかってる奴がやって初めて面白いのに。
何もわかってない>>298-299みたいなVB厨のやるネタは面白くもなんともないな。

303 :デフォルトの名無しさん:05/02/20 12:58:38
>>302はゆとり教育の申し子

304 :デフォルトの名無しさん:05/02/20 15:30:20
>>301
こういう質問はよく見かけるけど、
本なんて人によって合う合わないがあるから無意味じゃね?
どんな自称初心者にも最適な本なんてもんがあれば
MicrosoftがVBに付属でつけるやろ。
2chで聞いてる暇あったら大き目の本屋にいって
片っ端からのぞいてみた方がいいと思うよ。

っていうか、こういう「覚え方」を人に聞くのって
なんか頂けないなぁ。オイラの考え方が古いのかなぁ・・


305 :デフォルトの名無しさん:05/02/20 16:38:57
>>304
本を聞く=覚え方を聞く
だとは思えないなぁ。
あと、100点の本は無いかもしれないけど0〜80点くらいの本はあると思う。
20点の本は殆どの人の役に立たないけど、80点の本は殆どの人の役に立つわけでしょ?
良書を薦めるのは無意味じゃないんじゃないかなぁ。

306 :デフォルトの名無しさん:05/02/20 17:50:53
本屋で見てこれは良さそうだと思って買って帰って
よく見たら、全く役に立たない。
こんな本全く役に立たないやと思って捨てておいたら、
半年後すばらしい本であることがわかったり。
英語のVBの本を翻訳した本て、いい物が多いよね、
たくさんある中から翻訳するので、その時一度
選別されてる。

307 :デフォルトの名無しさん:05/02/20 17:53:02
>>296
MSがそう決めたから

308 :デフォルトの名無しさん:05/02/20 17:53:39
MMO製作企画を立ち上げました。協力できる人はこちら
http://www112.sakura.ne.jp/~kaientai-project/creategame.htm

2chスレ
http://game10.2ch.net/test/read.cgi/mmominor/1108379282/l50

ただ今職人(プログラマ、グラフィッカー)はげしく募集中!
あなたの力を思う存分発揮してください。


309 :デフォルトの名無しさん:05/02/20 17:54:23
>301
これからやるんなら、VB6じゃ無くて、VB.NETの方がいいのでは、
と思うのですが、この板の趣旨に合わないので激しく反省。

310 :デフォルトの名無しさん:05/02/20 23:52:55
>>301
マジレスすると
これからやるんなら、VB.netよりもC#の方が100倍いいのでは、
と思うのですが、この版の趣旨に合わないので激しく反省。


311 :デフォルトの名無しさん:05/02/21 01:45:52
VB6.0です。
足し算・引き算・かけ算・わり算・三角関数(sin・cos・tan)の計算が出来る関数電卓のプログラムを作りたいのですが、足し算意外が分からなくて困ってます。
本を呼んでも具体的な方法が書いてなかったのでどなたかプログラムを教えて頂けませんか?

312 :デフォルトの名無しさん:05/02/21 01:49:01
>>311
足し算がわかって引き算わからないの?どんなプログラム書いてるんだ

313 :デフォルトの名無しさん:05/02/21 02:13:36
*これが掛け算だ


314 :デフォルトの名無しさん:05/02/21 02:17:07
プログラムは
Dim EnterFlag As Boolean
Dim s As Long
Count Pl As Single = 3.141593
*==*==*==*==*==**==*==(0〜9までのキー)
Private Sub key_Click(Index As Integer)
If EnterFlag Then
Text1.Text = ""
EnterFlag = False
End If
If Len(Text1.Text) < 10 Then
Text1.Text = Text1.Text & Index
End If
End Sub
*==*==*==*==*==**==*==(足し算のコマンド)
Private Sub Command1_Click()
s = s + Val(Text1.Text)
Text1.Text = s
EnterFlag = True
End Sub
*==*==*==*==*==**==*==(引き算のコマンド)
Private Sub Command2_Click()
s = s - Val(Text1.Text)
Text1.Text = s
EnterFlag = True
End Sub
*==*==*==*==*==**==*==引き算の場合のみ、数字の前に-が付いてしまいます(例:3-2=-1)


315 :デフォルトの名無しさん:05/02/21 03:14:16
>>314
で、掛け算はできて割り算ができないと言い出すのか?

316 :デフォルトの名無しさん:05/02/21 09:04:15
>>311
ヒント:構文解析、再帰法

317 :デフォルトの名無しさん:05/02/21 11:58:57
何故か円周率がPl

318 :デフォルトの名無しさん:05/02/21 13:40:42
Countって・・・
まさか手打ち?


319 :デフォルトの名無しさん:05/02/21 14:48:26
VB5にてネットワークドライブを切らずに…
「\\ホスト名\フォルダ名\」で既存のフォルダを調べる方法はないのですか

320 :デフォルトの名無しさん:05/02/21 14:51:01
>>319
 ちなみにdirコマンドでやると
「ファイル名または番号が不正です。」エラーになるのです

321 :デフォルトの名無しさん:05/02/21 14:54:36
>>319-320
 「\\ホスト名\フォルダ名\」はできますね…
 すみません、間違いです。

 上記ではなく…ホストPCの検索です。
 dir(\\ホスト名\)では無理なんですよね…。

322 :デフォルトの名無しさん:05/02/21 16:03:02
net view \\ホスト名

323 :デフォルトの名無しさん:05/02/21 16:20:36
>>322
 変数が定義されていません。 だそうですが

324 :デフォルトの名無しさん:05/02/21 17:24:20
>>307
だめだから廃止したんでしょ?使わないほうがいい?

325 :デフォルトの名無しさん:05/02/21 19:33:54
>>324
だめだからじゃない
他のOSにDDEが無いから
.NetはMS-Windowsだけで動くものじゃないぞ

326 :デフォルトの名無しさん:05/02/21 21:45:02
すみません、質問させてください。
OSはXP、ver6.0、SP1です。

現在簡単なプログラムを作ってまして、ある条件値に対応した画像を表示させるもので、
Picturebox.Picture = loadpicture("c:\***.bmp")
というような記述をいくつか並べてるんですが、
「.exeを作成」をして、できたexeファイルを配布した場合、このままでは当然ながら他のパソコンでは表示できません。。
これを他の環境でも表示させるようにしたいのです。

理想はexeファイルに各々の画像データも一緒に取り込まれる形なんですが、そのようなexeファイルの作成の
仕方ってあるのでしょうか。
やはり、それぞれのファイル指定の仕方を("***.bmp")という感じにして、exeファイルと各画像データを
zipでまとめて配布するしかないのでしょうか?

できればプログラム実行中以外には画像ファイルを覗けないようにしたいのですが・・・よろしくお願いします。

327 :デフォルトの名無しさん:05/02/21 21:48:03
>>326
そのBMPのサイズが大きくなければリソースとしてEXEに埋め込める

328 :デフォルトの名無しさん:05/02/21 21:52:34
>>326
.exeと同じフォルダに置けば読み込めるけど。

329 :326:05/02/21 22:01:24
>>327さん
VB初心者なもので、リソースという概念を知りませんでした・・・ご迷惑おかけしました。

330 :デフォルトの名無しさん:05/02/22 00:18:38
>314
[3]→[-]→[2]→[+]と押された場合
変数sの値は
[3]・・・s=0
[-]・・・s=0-3=-3
[2]・・・s=-3のまま
[+]・・・s=-3+2=-1
になってま。

331 :326:05/02/22 21:06:52
たびたびすみません。

リソースにBMPファイルを追加することはできたのですが、
それを本体からどのように呼び出したらいいのかがわかりません・・・。

リソースに追加されたある画像ファイルの名称を"abc"とした場合、
どのような記述で呼び出せばいいのでしょうか?

ネット上・本屋で調べてみたのですが、要領を得ません。おねがいします。

332 :デフォルトの名無しさん:05/02/22 21:33:42
LoadResPicture

333 :326:05/02/22 21:48:47
>>332さん
ありがとうございます!
すると今回の場合でしたら、
LoadResPicture(abc, vbResBitmap)となり、vbResBitmapは決まり文句となるんですね。
助かりました。ありがとうございました。


334 :332:05/02/22 22:16:09
>LoadResPicture(abc, vbResBitmap)となり
Yes

>bResBitmapは決まり文句となるんですね
No

VbResBitmap -- 0 ビットマップ リソース
VbResIcon -- 1 アイコン リソース
VbResCursor -- 2 カーソル リソース

335 :326:05/02/22 22:27:32
>>332さん
ご丁寧にありがとうございます。感謝します。

336 :デフォルトの名無しさん:05/02/23 15:41:55
厨な質問で申し訳ないです

WindowsXp+VB5を使い画像ファイルの縦と横のサイズを取得したいのですが
GetFileInformationByHandleで取得できる構造体BY_HANDLE_FILE_INFORMATIONの
構成には該当情報が無いようですね。画像の種類はVBが標準でサポートしている
もののみ(BMP;JPG;GIF)で、調べた限り次のやり方でできそうですが

1.Susieプラグイン等を使う
2.Pictureオブジェクトに取り込みサイズを測る

今回は1.は用途からするとパス。2.はImageコントロールを使って高速性を
出したいのでちょっと

ファイルプロパティに項目がありますから取得できると思うのですが
構造体やAPI関数を教えていただけますでしょうか

337 :デフォルトの名無しさん:05/02/23 18:37:16
>>336
>2.はImageコントロールを使って高速性を出したいのでちょっと

言ってる意味がよく解らないんだけど、もしかして、
サイズ取得とImageコントロール用で2回読み込みとか考えてる?

338 :デフォルトの名無しさん:05/02/23 19:36:11
>>337
考えてました・・・・実験した結果Visibleプロパティをfalseにして
読んで処理してからtrueにすることでそこそこ動きましたので
これで逝こうと思います

339 :デフォルトの名無しさん:05/02/23 20:08:03
>>338
visible ?
もしかして、pictureってpictureboxのことかな。
どんなコードを書いているのか知らないけど、普通は次のようなコードを書くと思う。

'image1はImageコントロール
'hogeは読み込みたいファイル
dim a as Picture
set a=loadpicture(hoge)
debug.print a.height,a.width
set image1.picture=a

340 :デフォルトの名無しさん:05/02/23 21:01:48
StdPictureのWidth/HeightはHiMetricなんじゃなかったっけ。
ScaleX/ScaleYを使えば変換できるでしょう。だから>>339がきっとスマート。
で、質問なんですけど
Dim lngArray1(256& * 256&) As Long, lngArray2(255&, 255&) As Long, i As Long
For i = 0 To 256& * 256&
lngArray1(i) = i
Next i
Call CopyMemory(lngArray2(0, 0), lngArray1(0), 65536)
Dim x As Long, y As Long
For y = 0 To 255
For x = 0 To 255
Debug.Print "(" & x & ", " & y & "):" & lngArray2(x, y)
Next
Next
私の環境ではなぜかx*y=15000あたりからずっとlngArray2(x, y)の値が0になってしまいます
悪いのはCopyMemory(MoveMemory)でしょうか。32bitDibを二次元配列でいじりたいんです。

341 :340:05/02/23 21:12:01
あ、LONGだから4バイト掛けるのか。マジで樹海いって首吊ってくる。

342 :デフォルトの名無しさん:05/02/23 21:25:25
>>341
気を付けて行ってらっしゃい。
門限までには帰ってくるんですよ。

343 :デフォルトの名無しさん:05/02/23 23:07:53
>>336
ヘッダ読むだけで出来る。
JPGの位置は固定じゃないけど。
昔、英語のコードを検索したらすぐ見つかった。

344 :デフォルトの名無しさん:05/02/24 00:16:33
exeを実行しているPCのオフィスのバージョンって取得できますか?

OSは出来たのですがオフィスの方法が分かりません。


お願いします。

345 :デフォルトの名無しさん:05/02/24 00:36:14
Application.Version

346 :デフォルトの名無しさん:05/02/24 00:39:25
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
("Select * from Win32_Product where name like '%Office%'")
For Each objSoftware in colSoftware
msgbox objSoftware.Name & ":" & objSoftware.Version
Next

347 :デフォルトの名無しさん:05/02/24 00:56:49
>>346
>>345

ありがとうございます

今からやってみます


348 :デフォルトの名無しさん:05/02/24 01:16:02
うちの環境だと、
("Select * from Win32_Product where name like '%Office%'")
オートメーションエラーで中断されてしまいます。
("Select * from Win32_Product")
なら動くのですが、Office以外も全部出てきてしまいます。・・・


349 :デフォルトの名無しさん:05/02/24 01:37:16
ttp://www.h3.dion.ne.jp/~sakatsu/Excel_Tips06_4.htm#FromREG

350 :デフォルトの名無しさん:05/02/24 03:32:35
>>349
MScalが入ってるとは限らないだろ


351 :デフォルトの名無しさん:05/02/24 08:53:32
Windows XPで既にcomdlg32.ocx 6.0 sp3が存在している状況で
VB 5.0にてコモンダイアログ5.0を例えばcomdlg32old.ocx等に
変更し登録して使用することができません

5.0と6.0が並んでいて選択は5.0をチェックし「適用」や「OK」
ボタン押しても実際に再度コンポーネント選択画面では
6.0が選ばれている状態で、実際のフォームにダイアログを
貼り付けようとしても「ライセンスが無い」と怒られます

Windowd2000の頃は大丈夫だったような気がしてますがXpで
両者を共存させることってできますか?

352 :351:05/02/24 09:02:28
解決しますた
http://support.microsoft.com/kb/181854/EN-US/

353 :デフォルトの名無しさん:05/02/24 14:49:31
ランダム・ファイルの保存について教えてください。

Open "FILENAME" For Random As #1
n = LOF(1) / LEN(XXX) + 1 →XXXは64バイト固定のデータ
put #1, n, XXX
Close #1

この様なソースを書いて何度も実行すると
データが最後のレコードに書き込まれず、
ファイルが倍のスピードで大きくなってしまいます。

試しに上記ソースの2行目をなくしてnを固定で入れた場合
n=1 ファイルサイズ=64B
n=2 ファイルサイズ=192B
n=3 ファイルサイズ=320B
という感じで64×nバイトにならず64×(n×2−1)
となってしまいます。
VB6.0を使っているのですが、何か書き方が悪いのでしょうか? 
それともこういうもんなのでしょうか?


354 :デフォルトの名無しさん:05/02/24 15:13:54
書き方が悪い

355 :353:05/02/24 16:31:34
どこが悪いのでしょう?

356 :デフォルトの名無しさん:05/02/24 17:05:23
VB6でグリットコントロールはなくなったのでしょうか?
コンポーネントが見つからないのですが・・・
表にデータを表示するのって簡単に出来ないですか?

357 :デフォルトの名無しさん:05/02/24 17:51:27
>>356
Microsoft DataGrid xxx
or
Microsoft FrxlGrid

358 :デフォルトの名無しさん:05/02/24 18:09:35
>>325
じゃあなぜ>>279に対して>>294のようなレスをするのかがわからない。

359 :338:05/02/24 18:21:59
>>339
ありがとうございます。うまくいきました・・・・・・・が

調子に乗って数十枚程度表示するとVB5がCPU100%使ってフリーズします
プログラム未完成なのでコンパイルするとどうなるか試していません
また再帰とかOpenArray等は使用していませんけどヒープを喰っちゃうん
でしょうかね

360 :デフォルトの名無しさん:05/02/24 18:27:04
VB6使ってるんですが
PDFファイルを表示させる方法おしえてくさい

361 :デフォルトの名無しさん:05/02/24 18:29:04
PDFを指定してIEコンポーネントを開く


362 :338:05/02/24 18:37:52
コンパイルしても一緒なのでいくつか変更して実行したら、テストに
使用したJpegファイルが「不正なピクチャ」だそうで・・・・・・・

Windowsビルトインビューアや他のグラフィックソフトでは問題なく
表示しますけどヘッダー情報かなにかがおかしいデータみたいです

363 :339:05/02/24 19:35:58
>>362
似たような経験あるなあ。

これを回避するには、フリーのライブラリか何かで読み込むようにするしか無いんじゃないかな。

364 :デフォルトの名無しさん:05/02/24 19:47:25
>>353
openステートメントでレコード長を指定していないからじゃないかな

365 :338:05/02/24 20:42:10
>>363
結局SUSIEプラグインですね・・・・ありがたく使わせて頂くことにしますた

366 :デフォルトの名無しさん:05/02/24 20:45:17
MoveFileはMoveFileExを使うのでしょうか?
FileCopy & Killでもまあ良いんですけど無条件に上書きつうのが・・・
MoveFileExについてはVBでの呼び出しを解説したサイトがあまり
無いようですけど他の方法にはどんなのがありますか?

367 :デフォルトの名無しさん:05/02/24 20:55:11
>>366
エスパーじゃないと君の文章の意味はわからないと思う。

368 :デフォルトの名無しさん:05/02/24 21:10:24
MoveFileメソッドの実装までは知らんけど、コピーしてリネーム&削除が一般的でわなかろうか。
MoveFileEx自体簡単なAPIだし、それでもいいんじゃね?

369 :デフォルトの名無しさん:05/02/24 21:26:46
>>367
読解力に欠ける人でも分かるように書き換えてみました
尚、レスをして頂けたら嬉しさと驚きで家人みんなに自慢しそうです

「VBでファイルを移動する場合、VBに用意されているStatementは
FileCopyだけで、コピー後にKillすることで移動が実現できますが
この場合Windowsのシェルでコピーや移動を行う場合とは異なり
無条件で移動先に同名ファイルが存在する場合に上書きしてしまいます。
これを避けたい場合、わたしの拙い技量で調べた限りAPIでMoveFileExを
呼び出す手法があるようですがGoogle等検索エンジンで調べてもVBでも
使用方法があまり見当たりません

宜しければこれについて詳しいサイトを教えて頂くか、こちらに書き込んで
頂けると幸甚に存じます。またそれ以外に役に立つ方法をご存知であれば
ご教示頂けますと幸せのあまり屁をこきそうです」

370 :デフォルトの名無しさん:05/02/24 21:29:05
>>366
Nameステートメントじゃだめなの?



371 :デフォルトの名無しさん:05/02/24 22:17:50
function conv_hex( param )
{
var hex="";

for(var i=0; i<param.length; i++){
hex = hex + param.charCodeAt(i).toString(16);
}
return hex;
}

javascriptで文字列から無理矢理16進数に変換した文字列を
vbsで10進数の文字列に戻したいんですがどう記述すればいいでしょうか?

372 :デフォルトの名無しさん:05/02/24 22:54:29
10進数の文字列と言うのは・・・

"00 12 34 56 78 90 123 234 255"

と言うことだな!

↓あとはよろしく。

373 :デフォルトの名無しさん:05/02/24 23:12:34
>>366
>>370の通り、NameでOKなはず。

> Name ステートメントはファイル名を変更して、必要に応じて他のフォルダにファイルを移動します。

374 :デフォルトの名無しさん:05/02/25 00:24:33
>>371
スレ違い。
あとはよろしく↓

375 :371:05/02/25 01:14:23
どこのスレに書き込めばいいの( ・◇・)?(・◇・ )

376 :デフォルトの名無しさん:05/02/25 01:20:01
WSH(・∀・)スレッド!
http://pc5.2ch.net/test/read.cgi/tech/1055075469/

377 :デフォルトの名無しさん:05/02/25 01:23:57
Integerの読み方教えてください
 イントエジャーでいいの?

まさか、インテグラじゃないですよね?

378 :デフォルトの名無しさん:05/02/25 01:26:08
インテジャー で いいんじゃー

379 :デフォルトの名無しさん:05/02/25 01:26:51
インテジャー

380 :377:05/02/25 01:42:12
>>378
>>379
ありがとうございました

381 :デフォルトの名無しさん:05/02/25 01:54:53
インテジャー入ってる

382 :デフォルトの名無しさん:05/02/25 01:56:22
インテジャーウソツカナイ

383 :デフォルトの名無しさん:05/02/25 02:20:11
何インテジャー

384 :デフォルトの名無しさん:05/02/25 02:53:39
VB6.0で、FORM1のpictureに画像を指定し、
その上に置くラベルやフレームの背景を透過させ、FORM1の画像を透かして表示させる、、、
というようなことは可能でしょうか?

385 :デフォルトの名無しさん:05/02/25 03:14:04
インテジャージョーンズ 〜最後の聖戦〜

386 :デフォルトの名無しさん:05/02/25 04:25:58
evb3.0でセーブしたランダムファイルをvb5.0で読み込むにはどうしたら
いいのでしょうか?
単純にvb5でランダムアクセスしても無理みたいなんですけど・・・。

387 :デフォルトの名無しさん:05/02/25 08:08:51
くだらない質問で申し訳ないですが、テキストボックスから受け取った文字をinteger型変数に代入して出力した場合、アスキーコードで出力されるんでしょうか?

388 :デフォルトの名無しさん:05/02/25 08:30:42
>>387
自分で試せ

389 :デフォルトの名無しさん:05/02/25 08:35:25
>>387 = 本当にくだらない質問

390 :デフォルトの名無しさん:05/02/25 08:46:49
申し訳ありませんでした。自分のPCにVB入っていなくて、すぐ試せなかったもので。次にVB使う時に試してみます。

391 :デフォルトの名無しさん:05/02/25 09:33:44
VBでもVCでもいいのですが、UNIXサーバからwindowsにファイル転送を行う際に
ファイル更新日付を変えないような方法ってありますか?
CInternetSession系のAPI使うと落し込んだ日付に変わってしまいます。
FTPツール(FFFTP等)でローカルに取り込む再に日付が変わらないオプションが
あるのでなんか方法があるんだと思います。どなたかご存知のかた教えてください。

392 :デフォルトの名無しさん:05/02/25 09:43:06
>>391
日付を変えないという発想ではなく、
盗難したファイルを元の持ち主の日付で、ていぞう(なぜか・・)すれば?

ファイルのタイムスタンプを書き換えてしまえと。


393 :デフォルトの名無しさん:05/02/25 09:57:43
>>392
とうなんファイルではありませんよ。ローカルと管理サーバ間でのやりとりを行うツールです
FFFTPの日付を変えないオプションはファイル更新日付をAPI等で改竄している仕様なのでしょうか?
FTPは基本的にファイルを分解して転送後、再編成すると聞くので
更新日付が変わるのは当然だと思うのですが、何か知的な方法はありませんか?

394 :デフォルトの名無しさん:05/02/25 09:58:23
>>392
とうなんファイルではありません。ローカルと管理サーバ間でのやりとりを行うツールです
FFFTPの日付を変えないオプションはファイル更新日付をAPI等で改竄している仕様なのでしょうか?
FTPは基本的にファイルを分解して転送後、再編成すると聞くので
更新日付が変わるのは当然だと思うのですが、何か知的な方法がありましたら
伝授お願いします。

395 :デフォルトの名無しさん:05/02/25 11:39:54
盗難、捏造は洒落です。
>>393の通り、FTPではファイルはそのまま移動するんじゃなく
垂れ流しされた奴をこっちでファイル化ですからそのままでは日付は変わります。

APIでSetFileTimeあたりでどうですか?ってのが>>392です。

396 :デフォルトの名無しさん:05/02/25 11:52:22
VB初心者なのですが、
If文でノットイコール(C言語では「!=」)ってどう書けばいいのでしょう?


397 :デフォルトの名無しさん:05/02/25 11:54:32
>>396

<>
↑です

398 :デフォルトの名無しさん:05/02/25 12:18:27
>>395
ありがとうございます。
FileTime等で予め、UNIX側のファイル情報を取得しておいて
FTP後にSetFileTimeってところですね
一度つくってみます。助言感謝いたします。

399 :デフォルトの名無しさん:05/02/25 13:02:35
>>397
ありがとうございました!

400 :デフォルトの名無しさん:05/02/25 13:51:01
>>384のようなことはVBではできませんでしょうか?

401 :デフォルトの名無しさん:05/02/25 14:12:21
コンボボックスを使用したのですが、
実行時、リスト内のデータを選択すると、
コンボボックスのTEXT内が紺色(選択状態?)のままで、
文字が表示されません。
(別の領域をクリックすると選択した文字がTEXTに表示されます)
対処法があれば教えてください。よろしくお願いします。

402 :デフォルトの名無しさん:05/02/25 14:13:31
コンボボックスを使用したのですが、
実行時、リスト内のデータを選択すると、
コンボボックスのTEXT内が紺色(選択状態?)のままで、
文字が表示されません。
(別の領域をクリックすると選択した文字がTEXTに表示されます)
対処法があれば教えてください。よろしくお願いします。

403 :デフォルトの名無しさん:05/02/25 14:41:27
>>400
質問の意味を取り違えてるかも知れないけど、
ラベルには透過可能なBackStyleプロパティがある。
フレームにはないけど。
基本的にはPictureBoxとか使って自前のコードで
背景の透過処理をすれば、透過できるはず。

404 :デフォルトの名無しさん:05/02/25 15:51:22
>>384
ラベルの透過はフォームに対してのみ有効。
他のコントロールに重ねたらダメ。

405 :おしえて(VB+クリレポ):05/02/25 18:32:54
VBからクリスタルレポートの印字を行っているのですが、
端末によってプリンタがことなるとセットアップのたびに
クリスタルレポートのプリンタ設定をいじらないといけなくて困ってます。
VB側から印字の直前にプリンタ設定を変更できないものでしょうか?
VBからのプリンタ設定&用紙指定方法を教えてください。
(環境:Win2K、VB6.0sp5、Seagate Crystal Reports 6.0)

406 :COMってるんです:05/02/25 19:14:55
COM+勉強し始めて3日目です。
言ってることがおかしいかも知れませんが
どちらもサーバー、どちらもクライアントな状態にしたいのです。
具体的には
クライアントからは検索するので普通にDBを叩くCOMを作成しサーバーに登録します。
それとは別にサーバー側からも不定期な情報イベントが起き、
クライアントの画面(ポップアップではなくメインの画面に)に情報を表示します。

代替案としては
・スレッド立てて、イベント系には別途TCPソケットを用意してサーバーから叩く
・定期的にイベントがあるかサーバーにCOMで聞きに行く
は考えているんですが、
理想としてはサーバー側からCOMキックされてメイン画面が更新される形にしたいのですが
何らかの実装方法はありますでしょうか。

シングルアパートメントだから無理とかそういうのがあれば、VBにもこだわりませんので
出来る出来ないのポインタをいただけると助かります。

407 :デフォルトの名無しさん:05/02/25 19:18:21
VB6sp5、XpPro です。
ユーザーコントロールを作成したのですが(TextBoxがベース)
作成したコントロールにフォーカスがある状態でカーソルキー
を押してもForm_keyDownイベントが発生しません。Enterキー、
テンキー他、一部のキーでは発生します。
ちなみにformのkeypreviewプロパティはTrueです。

もしかしてVBのバグでしょうか?解決方法がわかる方いましたら
教えてください。

>>405 クリレではおそらく無理です。

Declare Function SetDefaultPrinter Lib "winspool.drv" _
Alias "SetDefaultPrinterA" _
(ByVal pszPrinter As String) As Long


ドライバ複数作成して、↑を使って通常使うプリンタを変更すればよいのでは?




408 :おしえて(VB+クリレポ):05/02/25 19:29:59
>>407さん
お返事ありがとう(;o;
やっぱり無理なんでしょうか、_| ̄|○
端末ごとのクリレポ設定作業をどうにかして簡略化したかったんですが。。。
残念!!

409 :デフォルトの名無しさん:05/02/25 20:22:30
>>403,404
ありがとうございます。ラベルはできてもフレーム類はできないんですね・・・。
Pictureboxによる背景の透過処理、で少し調べてやってみます。ありがとうございました。

410 :デフォルトの名無しさん:05/02/25 23:13:28
>405
OpenPrinter,SetPrinter,SetPrinterData,SetPrinterDataEx

411 :デフォルトの名無しさん:05/02/25 23:30:13
>>402
コンボボックスはEXCELのがいいよ!

412 :デフォルトの名無しさん:05/02/26 03:16:10
VB6.0、XPproの環境です。

DataGridを使ってレコードの内容を表示するプログラムを勉強しています。
ユーザの編集でなく、プログラム側からDataGridに空の行を追加したいのですが、
Column(列)、Split(分割ペイン)のAddは出来てもRow(行)の追加だけが見つかりません。

もしかしたら、自分がColumnsやrowの意味を取り違えているのかもしれないと
不安になってきたので、一度詳しい方に聞いてみようと思いまして。
どなたか、お答え頂けると凄く助かります。

具体的には、レコードを読んでDataGridに表示 →
DataGrid上に新たな行を作成 →
別のレコードを読んで、新たな行に表示。
というような、1つのグリッドに追加表示をしたいと考えているのですが……。

413 :デフォルトの名無しさん:05/02/26 15:46:42
2桁の正数字の一桁目と二桁目の値を取得する関数ってありますか?


414 :デフォルトの名無しさん:05/02/26 18:43:43
>>413
10で割れば10の位の値
10で割った余りが1の位の値

415 :デフォルトの名無しさん:05/02/26 19:38:48
(元の数 mod 100 - 元の数 mod 10) \ 10

416 :デフォルトの名無しさん:05/02/26 20:19:37
厨な質問ですいません。

配列を関数に渡したい場合は、どのようにするのでしょう?

例えば、
Private Sub Command1_Click()
Dim A(1 To 3) As Integer
A(0) = 1
A(1) = 2
A(2) = 3
Text1.Text = CALC_A(A(0))
End Sub

この場合、関数側には、
function CALC_A(******) as Integer
****** ← この部分には、どのように書くのでしょうか?

それとも別の書き方があるのでしょうか?

417 :デフォルトの名無しさん:05/02/26 20:35:50
>>416
function CALC_A( a() as integer ) as Integer


418 :デフォルトの名無しさん:05/02/26 20:49:52
Text1.Text = CALC_A(A(0))

419 :416:05/02/26 20:50:39
ありがとうございました

CALC_A(A(0)) をCALC_A(A())にしたら受け取れました。

420 :デフォルトの名無しさん:05/02/26 20:54:35
A(1 To 3)には誰も突っ込まないのか?

421 :416:05/02/26 23:27:26
>>420
間違いです。
書き込んだ後に気がついたのですが・・(´・ω・‘)

422 :デフォルトの名無しさん:05/02/27 00:11:58
テキスト型で"0001"という値を持っている変数を+1して、
"0002"には出来ないものでしょうか?
+1ではintに変換されてしまってただの"2"になってしまいます……。

423 :デフォルトの名無しさん:05/02/27 00:16:07
>>422
学校の宿題は友達に聞きましょう。
友達いないなら諦めて入門書買ってまじめに勉強しましょう。

424 :デフォルトの名無しさん:05/02/27 00:33:08
そんなに簡単なことなんですね……
考えなしに質問してしまってすいませんでした。
色々調べてみます。

425 :デフォルトの名無しさん:05/02/27 00:43:38
前から気になっていたんですけど、・・・

WORDなんかでは、文字の拡大・縮小が出来ますけど
あれって、どうやってるんでしょうかねえ・・・

426 :デフォルトの名無しさん:05/02/27 00:48:01
( ゚д゚)・・・

427 :デフォルトの名無しさん:05/02/27 01:02:43
(*゚д゚)・・・♥・・・(・∀・*)


428 :デフォルトの名無しさん:05/02/27 01:13:14
何気に使ってるけど実は誰も理解してない

429 :デフォルトの名無しさん:05/02/27 03:27:01
理解も糞も無いだろ。

430 :デフォルトの名無しさん:05/02/27 12:42:18
>>425
pictureboxに文字を出力してピクセル単位にpoint関数でドットの有無を読んで
拡大率を掛けてpsetしているんよ、知らなかったの?

431 :デフォルトの名無しさん:05/02/27 14:20:38
ググって同じ質問を見つけましたが回答が無かったので教えてください

vbHimetricをpixelに変換したいのですが対象がScaleX,ScaleYメソッドが使えない
オブジェクトです。(Picture Object変数です)
何か方法はありますか?

432 :431:05/02/27 16:06:58
考えてみれば定数みたいなものだからFormのScaleX,Yで変換しても同じことでしたね
お目汚し失礼しました

433 :デフォルトの名無しさん:05/02/27 16:38:33
『何でFormやPictureBoxにはあるScaleXがPictureにはないんだ。だからVBは…』
こう思ったらVB厨房の仲間入りだよ。
そりゃ単に座標変換の意味がわかってないだけ。

ていうか、そもそも印刷関係のアプリ作ってるのでもなければ
あえてvbHimetricみたいな物理量の座標系を選ぶ理由は何もないはずだけど。

434 :デフォルトの名無しさん:05/02/27 16:41:27
VB使ってる奴はみんな厨房だからどうでもいい

435 :デフォルトの名無しさん:05/02/27 16:54:33
厨房だけぢゃなく熟年文科系一筋日曜プログラマーも混ぜてくださいね

436 :デフォルトの名無しさん:05/02/27 17:28:00
http://www.media-soft.co.jp/goodluck/siwake/d_load.html
こんな感じのソフトを作りたいのですがプログラムのプの字も
しらない素人じゃ何年ほどの勉強が必要でしょうか?
独学で学ぶつもりなのですが。

437 :デフォルトの名無しさん:05/02/27 17:55:54
>>436
VBなら数週間でできると思うよ
VBは難易度低すぎるから君もやればできるよ
Option Explicitなんか切っちゃってがんがん書いてね

438 :デフォルトの名無しさん:05/02/27 18:00:50
>>436
毎日2時間で数ヶ月ってとこじゃないかな?
(モデル年齢35歳、文系の場合)

439 :デフォルトの名無しさん:05/02/27 18:18:21
>>437-436
ありがとうございます。 とりあえず半年をめどに学習に励んで見ます。

440 :デフォルトの名無しさん:05/02/27 18:37:42
任意のホームページの文字列をVBから取得するにはどんな手段がありますか?

ああ、無知すぎて何から探していいのかすらわからん。orz
どなたかヒントだけでもお恵みください。

A:任意のHP更新察知

B:希望範囲の文字列抜き出し

C:ケータイにメールとして転送

BとCはなんとかなったけど、本末転倒もいいところなカンジっす。

441 :デフォルトの名無しさん:05/02/27 19:33:05
VB厨的には、
WebBrowserコントロールを使って WebBrowser1.Document.body.innerText かな?

442 :デフォルトの名無しさん:05/02/27 20:02:47
FileOperationを使えばファイルを簡単にゴミ箱に移動できますが
移動したファイルを元に戻すのはどうしたら良いでしょうか?

443 :デフォルトの名無しさん:05/02/27 20:24:43
一応移動ログを取ってますのでVB上で移動元パス/ファイル名はわかっています
他のフォルダーに移動させたファイルは初めからUndoできるようにしています。
ゴミ箱への移動だけを手動操作にしても良いのですけど折角だからこれも元に
戻せるようにデザインしたいのですが…

444 :デフォルトの名無しさん:05/02/27 20:38:44
一つのEXEにフォームが幾つかあって、そのフォームが
表示されれているかどうか、確かめるため、
If Form2.Visible = True Then
とすると、LoadされていないFormまでLoadされてしまいます
LoadしていないフォームはLoadしないでVisibleを
確かめる良い方法はありませんか。

445 :デフォルトの名無しさん:05/02/27 21:04:56
>>441
サンクス助かった。
よし、朝日が昇るまでに完成さしてみる罠

446 :445:05/02/27 21:38:46
441を参考にしてこんなソースもゲトしてみた
短いのでカキコしてみる

Sub PrintHttpDocSimply()
Dim oHttp As Object
Set oHttp = CreateObject("MSXML2.XMLHTTP")
oHttp.Open "GET", "http://www.asia.microsoft.com/japan/", False
oHttp.Send
Debug.Print oHttp.responseText
End Sub

サンプルM$のサイトだけど堪忍な〜w
参考元
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsVbaXMLHTTP.html

447 :デフォルトの名無しさん:05/02/27 21:56:04
ニートっていいね。

448 :デフォルトの名無しさん:05/02/27 22:00:18
プ 僕厨房ですよおじさん

449 :デフォルトの名無しさん:05/02/27 22:02:52
>>444

For Each mForm In Forms
If TypeOf mForm Is (フォームのオブジェクト名) Then
(何らかの処理)
End If
Next mForm


450 :デフォルトの名無しさん:05/02/28 00:35:21
VB6.0+SP6+WinXP(Pro)

現在EnterPriseArchitect(以下EA)のアドインをVBで作成しています。
EAのプロジェクトブラウザに表示されたパッケージをクリックして
そのパッケージ情報を取得したいのですが、何かよい方法はありますでしょうか?

関連するサイト等が見つからないので苦労しています。
何かご存知の方いらっしゃいましたらご教授お願いします。

451 :デフォルトの名無しさん:05/02/28 00:55:57
簡単なHTTP通信って何故かUserControlのメソッドで実装されてたような

452 :デフォルトの名無しさん:05/02/28 01:15:33
もうVBで仕事したくないのに
VBの仕事がきます。
どうすればよいですか?

453 :デフォルトの名無しさん:05/02/28 01:18:47
仕事があるだけマシってもんよ
そうだろう?兄弟

454 :デフォルトの名無しさん:05/02/28 01:26:38
もういやだ!
もういやだ!
もういやだ!

455 :デフォルトの名無しさん:05/02/28 06:42:19
>>452
男ならVCで勝負だ

456 :444 :05/02/28 07:38:49
>>449
なるほどそんな手が有るんですね。
仕方なくフラグでやっていたのですが、コードがすっきりしました。
有難うございました。


457 :デフォルトの名無しさん:05/02/28 07:41:22
>>452
殆どCのDLLで書いてVBから呼び出せ。
そうすりゃ立派なVBのプログラムだろ?兄弟

458 :デフォルトの名無しさん:05/02/28 09:11:05
ヘッダーに問題があるJpegなどをLoadPictureで読もうとするとVBで
作ったアプリがCPUを100%使用しフリーズすることがあります。

通常これを避けるためにSUSIE PLUG-INを使用する方法が一般的ですが
そのような破損ファイルでもWindows Xp標準ビューアで使用されている
shimgvw.dllなら問題なく表示できる場合がありますし拡張子が間違って
いても大丈夫ですよね。

VBでの活用法はありますか? MSのKB等で参考になるのとかご存知なら
教えてくだされ

459 :デフォルトの名無しさん:05/02/28 09:18:18
すみません。もう一回投下します。。
コンボボックスを使用したのですが、
実行時、リスト内のデータを選択すると、
コンボボックスのTEXT内が紺色(選択状態?)のままで、
文字が表示されません。
(別の領域をクリックすると選択した文字がTEXTに表示されます)
対処法があれば教えてください。よろしくお願いします。


460 :458:05/02/28 09:50:21
GDI+使います

461 :デフォルトの名無しさん:05/02/28 11:53:11
>>459
選択したイベントで、INDEXをTEXTに貼れば!?

462 :デフォルトの名無しさん:05/02/28 12:40:20
すみません。まだ解決できていないのでもう一度質問します。

VB6sp5、XpPro です。
ユーザーコントロールを作成したのですが(TextBoxがベース)
作成したコントロールにフォーカスがある状態でカーソルキー
を押してもForm_keyDownイベントが発生しません。Enterキー、
テンキー他、一部のキーでは発生します。
ちなみにformのkeypreviewプロパティはTrueです。

ユーザーコントロール作成したことある方いませんでしょうか?
対処法あればお願いします。



463 :デフォルトの名無しさん:05/02/28 15:36:45
>>462
ユーザーコントロールってなに?

464 :VB6.0です。:05/02/28 16:07:32
質問があるのですが、text1.textに入力するある文字列「あああ」と「ああい」があって
if文を使用しもし文字列に「い」が含まれていたらという判定をしたいんですが
どうすればいいのでしょうか?





465 :デフォルトの名無しさん:05/02/28 16:09:42
グリッド(MSFlexGrid)で
特定のセルのみ文字の太さや色は変えられませんか?
また、MSFlexGrid.FixedAlignment(X) = 2
で一番上の行の文字が中央表示しませんがどうすれば良いのでしょう?
教えてください。

466 :462:05/02/28 16:47:32
>>463 すみません。ActiveXコントロールのことです。
自分が作成しているのはTextBoxに機能を付け加えたものです。
自分以外の方が作成された同じようなコントロールが配布されて
いましたので使ってみたのですが、やはり同じ現象でした。


ActiveXに追加した機能自体には問題ないのですが、本来TextBox上
にフォーカスがある状態でなんらかのキーを押すとフォーム側のKeyDown
などのイベントが発生するのですが↑↓←→キーを押したときにイベント
が発生しないという状態です。

>>464 InStr関数を使うとよいですよ。

467 :デフォルトの名無しさん:05/02/28 17:23:46
>>463
ユーザー自作のコントロール
詳しくはヘルプ参照

>>466
ユーザーコントロール以外にもTreeViewやListViewでも同じ症状が出ますね。
ユーザーコントロールのUserControl_KeyDownは来るみたいだから、
こっちで処理してはどうでしょうか。

もしくはサブクラス化するか。

468 :VB6.0です。:05/02/28 17:30:35
>>466
ありがとうございました

469 :デフォルトの名無しさん:05/02/28 19:21:11
>>464
inster関数を投入汁

470 :デフォルトの名無しさん:05/02/28 20:07:55
>>469
instr

471 :デフォルトの名無しさん:05/02/28 21:07:56
もういやだ!
もういやだ!
もういやだ!

472 :デフォルトの名無しさん:05/02/28 22:56:50
>>469-470
というかすでに>>466が答えてる。

473 :デフォルトの名無しさん:05/02/28 23:20:50
フォーム上に、何種類かのコントロールを置く場合、
一括して管理するには、どうすれば良いですか?

コンテナでしょうか?

474 :デフォルトの名無しさん:05/03/01 00:54:35
>>473
ユーザーコントロール化かな。
管理というのがデザインの話なら、pictureboxに配置。

475 :デフォルトの名無しさん:05/03/01 01:17:24
ピクチャーボックスはフォーカス取っちゃうから、特に必要なくても
ユーザーコントロールがええと思う。

476 :デフォルトの名無しさん:05/03/01 04:55:34
Frameでええんちゃう?

477 :デフォルトの名無しさん:05/03/01 08:23:16
「一括して管理するには」これで話が「通じる」と思ってる奴も
「通じた」と思って答える奴もオジサンにはエスパーにしか思えない。。。

いや、エスパーってのは嫌味だから真に受けないように。

478 :デフォルトの名無しさん:05/03/01 08:40:02
>>477 は文盲

479 :デフォルトの名無しさん:05/03/01 09:45:40
>>465
> 特定のセルのみ文字の太さや色
RowとColでセルを指定してから、CellForeColorやCellFontBoldで設定可。

> FixedAlignment
ColAlignmentFixed?

480 :デフォルトの名無しさん:05/03/01 13:10:05
ファイルが存在するかチェックする関数はないでしょうか?

481 :デフォルトの名無しさん:05/03/01 13:13:19
>>480
Dir関数じゃ不満?

482 :465:05/03/01 13:26:23
>>479
ありがとうございます。
フォントの問題は解決しました。

あとはセルの文字列を中央表示にしたいのですが、
ColAlignmentFixedAlignmentやCellAlignmentを「2」にしても
中央に表示されません。
ColAlignmentFixedだとコンパイルエラーになってしまいます。


483 :デフォルトの名無しさん:05/03/01 13:35:37
>>482
CellAlignmentは「2」じゃなくて3か4か5じゃない?

484 :デフォルトの名無しさん:05/03/01 15:10:30
>>480
filesystemobjectのFileExists。
>>481の言うdir関数でもいいと思うけどね。

485 :デフォルトの名無しさん:05/03/01 15:46:06
FileSystemObjectを使って下のような処理をしています。
拡張子が TXT 以外のものが多数あり、時間がかかっています。
特定の拡張子のFilesコレクションを取得する方法はありますか?

Dim fso As New FileSystemObject, fl As File
For Each fl In fso.GetFolder(ネットワーク上の共有フォルダ).Files
If UCase$(fl.Name) Like "*.TXT" Then
'処理
End If
Next fl

486 :デフォルトの名無しさん:05/03/01 15:53:18
Now関数で西暦だけを取り出したいんですけどどうしたらいいですか?
Nowじゃなく西暦だけを取得できる関数ってありますか?

487 :486:05/03/01 15:56:48
ヘルプみたらすぐでてきたね・・・。すまそ。

488 :デフォルトの名無しさん:05/03/01 16:01:04
>>485
FileSystemObjectは見通しの良いコードが書ける反面、スピードは遅いので気をつける。
Likeを使った比較も、If UCase$(Right$(fl.Name,4))=".TXT" Thenという風にすればマシにはなるかも。
>>486
Year(Date)とかYear(Now)。ヘルプ参照。

489 :デフォルトの名無しさん:05/03/01 16:07:19
>>485
Dir("フォルダのパス\*.txt")でループじゃ駄目なん?

490 :デフォルトの名無しさん:05/03/01 16:29:17
>>485
それ、ネットワーク共有自体がネックになってない?

491 :デフォルトの名無しさん:05/03/01 16:40:33
>>488 489 490
ありがと。
やっぱりFileSystemObjectじゃできないんですね。
現在は Dir でやってます。
折角、ファイル系処理はFileSystemObjectで統一したのに・・・

492 :486:05/03/01 18:31:10
>>488
ありがとう。

日付比較について一つ質問なんですけど例えば、変数Aに今日の日付けを格納しておきテキスト等に入力した日付けを変数Bに格納し
入力した日付けが変数Aより前の場合(今日なら1/1〜2/28)というような比較をしたいのですが
どうすればいいでしょうか?

493 :デフォルトの名無しさん:05/03/01 18:33:44
>入力した日付けが変数Aより前の場合(今日なら1/1〜2/28)というような比較

何度読んでも何がしたいのか分からん

494 :デフォルトの名無しさん:05/03/01 18:35:01
12/31も変数Aよりは前だな

495 :デフォルトの名無しさん:05/03/01 18:40:06
>>492
cdateで日付型にすれば、 比較演算子(<,>,=) で比較できます。

496 :デフォルトの名無しさん:05/03/02 00:52:58
VB6.0です。
画面遷移について教えてください。
以下のような遷移を行うとき

フォームA → フォームB

フォームA側で以下のように記述するだけでよいのでしょうか?

Me.hide
フォームB.show

他に何か考慮する点はあるでしょうか?
フォームAは姿を隠しただけで、リソースを食っている状態ではないでしょうか?
素人の質問で申し訳ありません。
ご存知の方がおられましたらご教授ください。
よろしくお願いします。

497 :デフォルトの名無しさん:05/03/02 06:55:38
>>496
フォームB.show
Unload Me

498 :デフォルトの名無しさん:05/03/02 12:33:17
>>496
Form_UnLoadで
set フォームA = Nothing
したら?

499 :デフォルトの名無しさん:05/03/02 13:46:57
>>498
hideじゃunloadイベントは発生しないよ。
それに、それだと new フォームA したときにハマルよ。

500 :デフォルトの名無しさん:05/03/02 15:54:32
500

501 :デフォルトの名無しさん:05/03/02 18:52:56
>>496
あとで、フォームAが必要なかったら、Unload。
必要だったら、Hideだと思われ。

502 :デフォルトの名無しさん:05/03/02 19:59:14
Ruby!!!!!!!!1111

503 :デフォルトの名無しさん:05/03/02 21:22:43
Now関数で取り出した月日(yyyy/mm/dd)を変数iに格納し、コマンドボタンを押すと
iに格納されてる西暦の部分(yyyy)を「2006」に変えたいんですがどのようにしたらできますか?


504 :デフォルトの名無しさん:05/03/02 21:23:34
書き忘れです。mm/ddはそのままでyyyyだけ変更したいんです。

505 :デフォルトの名無しさん:05/03/02 22:23:44
>> 503
年を+1したいなら
i = DateAdd("yyyy", 1, i)

固定で2006にしたいなら
i = DateSerial(2006, Month(i), Day(i))

でどうだ。
変数iはDate型で、時刻部はしらんぞ。


506 :デフォルトの名無しさん:05/03/02 22:32:51
>>503 DateAddを使うかYearを使うとか文字列ならMidとか数値なら2万を
足すとか・・・。
やり方は色々あるけどヘルプで探すことで成長するから面倒くさくても
一度は調べなさい。
関数やAPIに頼らず自力でやることで後々役に立つこともあるからね。
たとえばRaund関数は0.5を正しく四捨五入してくれないとかもあるから
自力でやるのも一つの手だよ。(もうなおってるかな?)



507 :503:05/03/02 22:54:49
>>505
>>506
ありがとうございます。おかげさまでなんとかなりました。
これからは極力MSNDやVB関係のサイト等を見てなんとかします。


508 :469:05/03/03 00:57:12
多くのレスありがとうございました。
非常に参考になりました。


509 :デフォルトの名無しさん:05/03/03 17:39:51
『'』を複数行に同時に設定するショートカットキー
を教えてください。
よろしくおねがいいたします。

510 :デフォルトの名無しさん:05/03/03 18:16:15
>>509
標準では設定されてなかったように記憶しています。

511 :デフォルトの名無しさん:05/03/03 20:05:26
long NullElementDelete(POINT *p1, POINT *p2, int num)
{
int i;
int count=0,count2=0,size=0;
POINT *buff;

size = 2 * HORIZONTAL + 2 * VERTICAL;
→buff = calloc(num,sizeof(POINT));

矢印のところで
error C2440: '=' : 'void *' から 'POINT *' に変換することはできません。(新しい動作 ; ヘルプを参照)
'void*' から非 'void' 型への変換には明示的なキャストが必要です。
というエラーが出てしまいます

どうやらC++だとエラーが出るようなのですが
どのようにすればエラーをなくせるかが分かりません。

よろしくお願いします。


512 :デフォルトの名無しさん:05/03/03 20:42:20
おながいします。

Ary(10,10)
上記の様な二次元配列があったときに、一次元目がnの一次元配列( Ary(n,*) )
を取り出すにはどうすれば良いかご指南いただきたい。


513 :デフォルトの名無しさん:05/03/03 21:06:51
フォーム上で、Ctrl+H(隠しコマンド)が押されたら、フォームを表示したいのですが、
メニューバーのメニューを表示しないようにしてもうまくいきません。。。
よろしくお願いします。 m(_ _)m

514 :デフォルトの名無しさん:05/03/03 21:28:56
Ctrl+Hは置換に割り当てられてますが。

515 :デフォルトの名無しさん:05/03/03 21:49:59
>>513
こういうこと?
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 72 And Shift = 2 Then Form2.Show
End Sub

516 :513:05/03/03 21:54:17
>>515
できました!
ありがとうございました。 m(_ _)m

517 :デフォルトの名無しさん:05/03/03 22:04:59
>>513
ちなみに 2はVbCtrlMask、72はvbKeyH と書くとわかりやすい

518 :513:05/03/03 22:45:31
>>517
本当にありがとうございます。 m(_ _)m

519 :デフォルトの名無しさん:05/03/03 22:58:25
おねがいしまつ。例えば、
Public Const Err001 = "接続エラー"

としていて、ある関数から
"Err001"という値を受け取ったとします。
この"Err001"を、上で定義したErr001の持つ"接続エラー"として、例えばMsgBoxなどで
表す方法ってありますか?
つまり文字列を変数名として扱う方法ってことになるんでしょうが…

520 :デフォルトの名無しさん:05/03/03 23:00:12
Ruby
!!!!!!!!!!!!!!!11111111111

521 :デフォルトの名無しさん:05/03/03 23:04:39
>>519
やめてくれ

522 :デフォルトの名無しさん:05/03/04 00:00:47
ユーザーコントロールに渡すプロパティには構造体や配列は渡せないんですか??????

523 :デフォルトの名無しさん:05/03/04 07:25:53
>>522
構造体は不可、配列は可。構造体の配列は不可。
構造体の代わりにClassを使うのが吉。
COMの基本ルールを無視するなら、構造体をValPtrでアドレス渡しって手はあるな。

524 :デフォルトの名無しさん:05/03/04 10:47:21
VB6.0でWebBrowserコントロールを使ってるんですけど、
コマンドボタンのClickイベントからUnload Meすると、
かなりの確率でフリーズするんです(システムメニュー
から閉じればたぶんOK)。
なんかいい解決方法ないですか?

525 :デフォルトの名無しさん:05/03/04 14:09:33
VB5でメニューの高さをスマートに知るにはどうしたら良いのでしょうか?

現在はメニューの各Visible プロパティがTrueとFalseで生じるFormの
ScaleHeightの差を取ってますけどいかにもスマートさに欠けるので…

526 :522:05/03/04 16:39:53
ありがとうございます

527 :デフォルトの名無しさん:05/03/04 17:11:24
VB で ビットマスク処理はあるんですか?

528 :525:05/03/04 17:24:53
念のために書きますが「スマート」じゃない現在の方法だと
実際のフォームの高さが変更されるまで若干のタイムラグがあり
変更直後はまだScaleHeightが変わってない場合があって、それを
避けようとするとますますスマートじゃないコーディングに
なっちゃうんですよ

529 :デフォルトの名無しさん:05/03/04 17:41:25
>>527
ありますよ?

530 :デフォルトの名無しさん:05/03/04 18:14:08
>>528
DoEvents してる?

531 :デフォルトの名無しさん:05/03/04 18:57:33
>>511
'void*' から非 'void' 型への変換には明示的なキャストが必要です。

532 :デフォルトの名無しさん:05/03/04 19:37:45
>>529
演算子おしえてください。

533 :デフォルトの名無しさん:05/03/04 19:44:43
>>532
謹んでお断りいたします。

534 :デフォルトの名無しさん:05/03/04 20:11:54
>>533
ド素人はすっこんでな!

535 :デフォルトの名無しさん:05/03/05 08:40:56
猛烈に厨な質問ですが…

DeclareステートメントのLibrary Nameは文字定数しか受け付けないわけですが
DLLをパスの通ってないディレクトリに置いてプログラム中で場所を指定したい
場合はどうすれば良いですか? 無理っすかね

536 :デフォルトの名無しさん:05/03/05 11:51:13
>>535
ChDir使ってみるとか

537 :デフォルトの名無しさん:05/03/05 11:57:46
>>536
ド素人はすっこんでな!

538 :デフォルトの名無しさん:05/03/05 12:16:47
>>535
プログラム中でパスを変更する。

>>537
ChDirでもいいと思うが?

539 :デフォルトの名無しさん:05/03/05 14:12:26
おながいします…。

要素が宣言されていない動的配列の、要素の有り無しを判断するには
どのようにすれば良いでしょうか。

String型のStrAry()が動的配列で尚且つ要素が宣言されてないと

UBound(StrAry) ->インデックスが有効範囲にありません エラー
↑エラー発生しちゃってトラップされちゃうと困る

TypeName(StrAry) -> String()
↑Nothingになるかと思ったんだけども
要素が有っても無くても String() だから判断できない。

頼む…。家に帰れないんです。

540 :デフォルトの名無しさん:05/03/05 14:26:19
>>539
お馬鹿な発想かもしれないけどGlobal変数使ったら?

ReDim Preserve xx(x)
Empty=True
if x<>0 then Empty=False

541 :デフォルトの名無しさん:05/03/05 14:36:45
>539

1)エラーが発生することを利用して戻り値を設定する関数を作る

2)配列(0)はとにかくダミーとして常に何か突っ込んでおく(あり得ない文字列とか)

542 :539:05/03/05 14:37:37
>>540
動的配列の要素数と、「要素の有無」フラグをグローバルで持つって事ですか?

543 :デフォルトの名無しさん:05/03/05 14:44:41
>>542
そうね、ReDimで再宣言してなけりゃ要素は0のはずだしそうじゃなけりゃ
UBoundでわかるっしょ

544 :デフォルトの名無しさん:05/03/05 14:46:19
つうか再宣言の値そのものを保持しとくほうが簡単確実だな

545 :539:05/03/05 15:09:08
レス遅くなりました。
>>540>>541でご指南頂いた方法をそれぞれ試していました。
結果両方ともうまく動きました。
どちらの方法を使うかは、またこれからそれぞれの方法のメリット・デメリットを考えながら
決めていきます。
本当に有難う御座いました。
(必要ないと思いますが下記に>>541の 1)の関数を載せておきます)
Private Function chkArrayLen(sAry() As String) As Boolean
On Error GoTo Err_Process
Dim Tmp As Integer

chkArrayLen = False
Tmp = UBound(sAry)
chkArrayLen = True

Err_Process:
End Function

546 :デフォルトの名無しさん:05/03/05 15:18:28
なんかVB5だとUBoundが-1返すような覚えがあるんだけど記憶違いかな。
それはいいとして、俺ならクラスにするか、さもなくば次のように判定するかな。

Dim SizeOfArray As Integer

On Error Resume Next
SizeOfArray = UBound(MyStrArray) + 1
On Error GoTo 0


547 :デフォルトの名無しさん:05/03/05 15:36:59
>>545
SafeArrayGetDim などのAPIを使えば、
実行時エラーを使わなくてもチェックできる。

548 :デフォルトの名無しさん:05/03/05 15:41:13
>>546
ReDim MyStrArray(-2 To -1)

とかやっていじめてやるテストw


549 :デフォルトの名無しさん:05/03/05 15:59:06
んんじゃあこう汁
SizeOfArray = UBound(MyStrArray) - LBound(MyStrArray) + 1

550 :デフォルトの名無しさん:05/03/05 16:45:04
先日からVB5で画像を扱うプログラムを作っていて個人使用という目的からすると
一段落したんですが汎用性を持たせようとすると頭が痛くなってきてます

問題は"LoafPicture"が破損ヘッダーファイルがあると使い物にならないことで
アプリが落ちちゃう、そこでSUSIE PLUG-INを使って問題なく動くものが
できました、できましたが例えばPNG用プラグインでエラーメッセージを吐く
版と軽量版なんてのを見ていると特定のプラグインの特定のバージョンじゃないと
意図通りに動かないプログラムなんてど〜考えても嫌だし…

GDI+をVB5で使うのはかなり無謀みたいで日曜プログラマーがこの目的でVB.NETを
買うのもちょっともったいないつうか嫁に殺されそうだし

何か他にうまい手はありますか?

551 :デフォルトの名無しさん:05/03/05 16:53:09
>>550
C#つかえ。

552 :デフォルトの名無しさん:05/03/05 16:55:49
>>551
文科系の頭でポインターが使えないんですよ

553 :デフォルトの名無しさん:05/03/05 16:56:14
>>550
VB.NETのコンパイラ自体はタダで手に入るよ。
それにフリーの統合開発環境を組み合わせる。

ところで今はVB.NETに対応した統合開発環境って
どれくらいのレベルで使えるの?GUIの作成も含めて。
すれ違いだけど。

554 :デフォルトの名無しさん:05/03/05 16:57:05
>>552
安心しろ。C#はポインタを使わないでできる。
っていうかVBの参照もポインタの一種だ。恐れることは無い。

555 :デフォルトの名無しさん:05/03/05 17:21:51
>>550
PNG対応DLLあるけど。

556 :デフォルトの名無しさん:05/03/05 18:33:07
ていうか>>550の文章読んでよく質問内容が理解できるよな。
俺には結局>>550は何を聞きたいのかサッパリわからないが。。

VB遣いにはエスパーが多いのか?
それとも書いてあることを書いてあるまま正確に読む訓練のできてない
思い込みの激しい「夢見る」文系君が多いのかな。

557 :デフォルトの名無しさん:05/03/05 18:54:42
>>556
自分の読解力の無さを棚にあげて言いたい放題だな

558 :デフォルトの名無しさん:05/03/05 18:56:17
書いてないことを読み取る能力は読解力とは言いません。
あえていうなら「妄想力」でしょうか。

559 :デフォルトの名無しさん:05/03/05 18:59:27
>>556
よそ行ってね。君のようなのが荒れる原因だから。

560 :デフォルトの名無しさん:05/03/05 21:41:51
msgboxを表示するときに、ピンとかいう音がうるさく感じるんですが
なくす方法はありませんでしょうか?
よろしくお願いします。m(_ _)m

561 :デフォルトの名無しさん:05/03/05 21:44:33
>>560
[スタート]-[設定]-[コントロールパネル]-[サウンドとマルチメディア]

562 :デフォルトの名無しさん:05/03/05 21:59:48
つまらないことをぐずぐず書く暇があったら、
わからないところを、聞けば良いだろう、ボケ。

563 :デフォルトの名無しさん:05/03/06 01:07:49
>560
自分でMsgBox「の様な物」を作る。

564 :469:05/03/06 16:39:43
質問させてください。
VB6.0を用いています。

フォーム上での矢印キーによるフォーカス移動制御を行いたいと思います。
フォーム上に存在するボタン間の制御を行うために、
Command_KeyPress内に矢印キー押下時のフォーカス移動に関する記述を行ったのですが、どうやら、矢印キーを押下してもCommand_KeyPress内に制御は移っていないようです。
どこにどのように記述すればこのような制御は可能でしょうか?

私の場合、以下のような記述を行うことを考えています。

例:ボタンA上で右矢印キーが押され、ボタンBにフォーカスを移す場合

IF KeyCode=vbKeyRight then
commandB.setFocus
END IF

このような記述はスマートでしょうか?
ボタンが多いフォーム上ではやたらコードの量が増えて効率が悪いような気がします。
何かよい方法は存在するのでしょうか?
初歩的な質問で申し訳ありません、ご存知の方がおられましたらよろしくお願いいたします。

565 :デフォルトの名無しさん:05/03/06 17:21:17
>>564
フォームのKeyPreviewプロパティをTrueに。
それとKeyPressより、KeyDownイベントのほうがいい。
さらにTabOrderも工夫する。

566 :564:05/03/06 18:21:37
>>565
レスありがとうございます。
さっそく行ってみたのですが、矢印キーのイベントを拾うことができませんでした。
自分自身でもすこし調べていたのですが、
コマンド上にフォーカスがある場合、
矢印キーの押下は取得できないとありました。
何か良い方法はないでしょうか。。。



567 :デフォルトの名無しさん:05/03/06 19:09:49
>>566
マップを作って1つのプロシージャでまとめて処理させれば
汎用的だし、コード的にもすっきりする。

568 :デフォルトの名無しさん:05/03/06 19:18:05
キーボードフック使えば?
グローバルフックではないのでDLLはいらず、
VBでもフックできる。

569 :デフォルトの名無しさん:05/03/06 23:37:12
>>316
>>330
ありがd

VB6.0でsin関数を使わずに、テーラー展開またはマクローリン展開でsinを求める方法ってどなたか分かります?

570 :デフォルトの名無しさん:05/03/06 23:40:10
>>569
礼儀知らずの人間には教えません

571 :i:05/03/07 00:04:12
早速ですが、今更と思われそうですがエクセル95のVBAで
FSO(File System Object)は、使えますか?
自宅には当然95なんてシロモノは無いので、確認がとれません
会社でぶっつけ本番でもいいのすが不安で・・

572 :デフォルトの名無しさん:05/03/07 00:05:00
>569
ttp://www.g.dendai.ac.jp/lecture/vbasic/vb13.html

573 :i:05/03/07 00:14:15
571ですがVBAのスレがあったのでそっちへ行きます。
失礼こきました

574 :デフォルトの名無しさん:05/03/07 00:27:38
False ← なんて読んでますか、或いはカタカナ表記だとどうでしょう?

趣味プログラマーって周りに同様の趣味の人がいない場合が多いと思うのですが
こんな単純なことも中々聞けませんよね

IT用語の日本語的方言というのは業界にいないと分かりづらくてPingをピングって
言うのなんか想像の埒外でしたから・・・・・普通ピンって読んじゃいますよね

575 :デフォルトの名無しさん:05/03/07 00:30:10
フォールス

576 :デフォルトの名無しさん:05/03/07 00:42:10
>>575 ありがとうございます、普通に読むんですね

577 :デフォルトの名無しさん:05/03/07 01:24:23
singだってシングだろ・・・。singsongをシンソンなんて普通の日本人は読まないよ。

578 :デフォルトの名無しさん:05/03/07 01:27:41
じゃあhongkongはホングコングだな。

579 :デフォルトの名無しさん:05/03/07 01:28:09
pingpongもピングポングだ。

580 :デフォルトの名無しさん:05/03/07 08:53:54
これを使ったシステムを作ったことある人いますか?
VB Report Ver.3.0
http://shopping.yahoo.co.jp/shop?d=SBSY&id=4993857329034

使用感をお聞きしたいのですが。

581 :デフォルトの名無しさん:05/03/07 12:42:39
ていうかpingが「ピング」より「ピン」に近いって感覚が理解できん。
後に音が続かない時の(つまり、ping本来の)発音は明らかに「ピング」に近いぞ。

582 :デフォルトの名無しさん:05/03/07 13:02:52
>>580
んなもん使わずに直接エクセルに出力したほうが早いだろ。

583 :デフォルトの名無しさん:05/03/07 13:38:45
>>581

結構大勢の人がPingを「ング」にアクセントを置いてしゃべってますよ・・・
Pingつうと「レッドオクトーバー」でラミレス艦長が"One ping only."って
言うのが印象に、って言うのは置いといて

584 :デフォルトの名無しさん:05/03/07 13:39:24
VB5でSHBrowseForFolderを使いフォルダ選択ダイアログを出す場合

1.エディットコントロールを持つ、新しいユーザーインターフェースを使用し
たい場合はOleInitialize関数またはCoInitialize関数を呼び出してCOMを初期化
する必要があるみたいですがVBでのコーディング例がどこかのサイトにありますか?

2.旧UIを使う場合でもルートフォルダーじゃなくて指定パスを選択状態にして
ダイアログを呼び出せると思うのですがBROWSEINFO構造体を眺めていても指定パスが渡せる
ようなパラメータが見当たりません。別の関数を使うのでしょうか?

585 :584:05/03/07 14:01:38
更に「初期フォルダ」でググッたら2.に関して山ほどHitしますた
検索語の工夫が足りなかったようで失礼致しました

586 :デフォルトの名無しさん:05/03/07 14:13:01
>>578-579
まったくこれだから脊髄反射は困るなぁw
「ング」なんて普通に使われているんだから、
想像の埒外なんてありえないって言っただけだろ。
あーやだやだ。

587 :584:05/03/07 14:21:47
更に更に検索結果を見ていたら1.もVBの場合はシカト可能っぽいですね
>>584は解決つうことで・・・・・・お後が宜しいようで

588 :デフォルトの名無しさん:05/03/07 16:28:21
さ〜て来週は
カツオ、豪快に釣られる
ワカメ、オナニー見つかる
船、ローレライ発動す
の3本です。お楽しみに〜

んっが、ング

589 :デフォルトの名無しさん:05/03/07 22:01:29
VBでWindowsNTの、イベントビューアのアプリケーションログを
取得する方法を教えていただけませんでしょうか。
XPか2000ですと
http://www.microsoft.com/japan/technet/scriptcenter/scripts/logs/eventlog/lgevvb03.mspx
で取得できたのですが、これと同じことをNTでできませんでしょうか?

590 :デフォルトの名無しさん:05/03/08 00:30:40
指定した文字列の間を抜き出したいんですが、
上手く抜き出せません

i = InStr(strData, "一覧表表示")
n = InStr(i + 5, strData, "一覧表表示")
a = Mid(strData, i - 5, n + 8)
Text1.Text = a

始めの位置(i)から最後までが表示されてしまいます。


591 :デフォルトの名無しさん:05/03/08 01:12:26
>>590
どういう文字列からどういう条件で取り出したいのかがよくわからん。

592 :デフォルトの名無しさん:05/03/08 01:19:59
midの第3引数は文字長。他にもありそうだが何がしたいのかわからないので
気がついたとこだけ。

593 :デフォルトの名無しさん:05/03/08 01:30:44
>>590
n+8はどこから出てきたのかな?
これでどう?
a = Mid(strData, i - 5, n -i)

こういう手もあるけど。
"一覧表表示" & Split(strData, "一覧表表示")(1)

594 :584:05/03/08 06:50:26
SHBrowseForFolderで初期フォルダを選択した状態にできました・・・・が
日本語を含むパスだとツリーは開かれるものの該当フォルダが選択されていま
せん。フォルダ名自体が英語でも途中のパスに日本語が含まれると駄目です。
参考にしたのがカナダのサイトだったので2バイト対応になってないみたいです

Const BFFM_SETSTATUSTEXTW As Long = (WM_USER + 104)

この定数をどこかのパラメータに指定してやれば良さそうにも思えますけど
どの関数のパラメータにセットすれば良いかご存知ですか?

595 :584:05/03/08 11:25:16
日本語サイトの例をパクッて解決しますた

596 :デフォルトの名無しさん:05/03/08 14:01:36
マウスカーソルを自前で制御したいのですが、うまい表示の仕方ないでしょうか?
クライアントからLAN経由で受け取ったマウス移動量を元に、サーバ側にマウスカーソルを
表示させたいのです。(この時にサーバ側のマウスは、サーバ側でつかっています)
imageとかpictureをつかう方法を試してみたのですが、うまく透過してくれないので
マウスカーソルとして使えませんでした。いい知恵があればご教示ください。



597 :デフォルトの名無しさん:05/03/08 14:09:37
VBって.exe の実行ファイル作れるんですか?
Visual Basic 6.0 で

598 :デフォルトの名無しさん:05/03/08 14:10:23
>>596
Region使え。

>この時にサーバ側のマウスは、サーバ側でつかっています
入力がダブる時はネットワーク側を遅延させりゃ良いだろうけど
どうやってネットワーク側マウスのドラッグを実装するんだ?

599 :596:05/03/08 14:35:31
>>598
ありがとうございます。Regionを調べてみます。
ドラッグの件ですが、カーソルでどこを指しているかだけを共有したかったので、
そこまで必要ないのです。


600 :デフォルトの名無しさん:05/03/08 15:49:43
>>597
できる。というか、それが一番主な使い方じゃないのか。

601 :デフォルトの名無しさん:05/03/08 15:57:23
>>600
ビルドが吐き出す*.exeじゃなくて、ビルドみたいにEXEファイルを作ることはできるか?って意味じゃないのか?
俺は知らんが。

602 :デフォルトの名無しさん:05/03/08 15:59:55
>>601
想像で言うな

603 :デフォルトの名無しさん:05/03/08 16:03:42

文字列:s(0〜9、9桁)
モジュラス:m
ウェイト:w

のチェックデジットを計算する関数を教えてけろ




604 :デフォルトの名無しさん:05/03/08 16:13:39
>603
お前の態度が気に入らない。

605 :デフォルトの名無しさん:05/03/08 16:17:55
VCでコールバック関数を使ってるプロジェクトを
デバッグしようとするとデバッグポイントが無効になります。
こういう場合どうしたらデバッグモードでステップ実行できるでしょうか?

606 :デフォルトの名無しさん:05/03/08 19:05:48
マウスカーソルを自作の物に変えるのはどうやればいいですか?
VCだとリソースから変更できるみたいなのですが。


607 :デフォルトの名無しさん:05/03/08 19:18:54
>>606
Screen.MouseIcon

608 :442:05/03/08 21:31:46
あれから色々調べましたがUndeleteを実現するAPIがわかりません

Undelete VB API Win32あたりを色々組み合わせてぐぐってもうまく
Hitしないんですけどエクスプローラーには実装されているので
何かあるんでしょうね。皆さんはAPI名が分からない場合どうやって
探しているんですか?

609 :デフォルトの名無しさん:05/03/08 23:00:23
>>608
そのようなAPIは存在しないと思う。
不便だけど、IContextMenuのInvokeCommandを使うのが妥当かな。
VCならともかくVBでやるのはたぶん面倒だから、
オライリーのVisual Basic Shell Programming辺りを参考にしてみては。

610 :デフォルトの名無しさん:05/03/08 23:04:54
よく知らないがこれじゃダメなのか?
ググったら10秒で見つかったが。。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpshell/html/_Win32_UndeleteFile.asp

611 :デフォルトの名無しさん:05/03/09 00:29:01
>608
この辺よんでなんとかならないかなと。
http://support.microsoft.com/kb/136517/ja
xpでもINFO2あるようだし、
エクスプローラで
C:\Recycled\
と入力すると一応ファイルがあるような気分も感じられる。
しかし、深入りしないとわからなそうな気がするので私は止めておきたい。


612 :デフォルトの名無しさん:05/03/09 03:08:50
SQLのデータ型で
varcharてのはどう読んだらよいのやら?
意味としてはヴァリアント・キャラクタと思うが
略してバリキャラ?

613 :デフォルトの名無しさん:05/03/09 03:13:15
VB5で引数がファイルなのかフォルダーなのか簡単に知る方法はありますか?

最初 =Dir(引数, vbDirectory)で良いと思ったんですが、vbNormalを指定しても
結果は同じで、引数がフルパスの場合はファイルでもフォルダーでも同じく非Null
になっちゃうんですよね

さらにルートフォルダーを渡すと悲惨な結果を返しちゃいます、まあこの場合は
戻り値が非Nullで引数が3文字であればドライブルートと判断できそうですけど

614 :デフォルトの名無しさん:05/03/09 03:43:35
>>613
VB5はGetAttrない?

615 :デフォルトの名無しさん:05/03/09 06:53:41
ボタンを押したら画像が変わるようにしたいのですが
うまくできません。
とりあえず枠組みだけ作りました。
http://f53.aaa.livedoor.jp/~dasai/upload/src/up0012.lzh

616 :615:05/03/09 06:55:24
それとEXEのアイコンを好きな画像にしたいのですが
リソースハッカー等を使えばいいのでしょうか?

617 :デフォルトの名無しさん:05/03/09 07:13:48
>>614
な〜るほど、助かりました

618 :デフォルトの名無しさん:05/03/09 07:29:19
質問させていただきます。
RS232-Cで外部装置とやりとりをしているのですが、
外部装置のデバッグのために意図的に通信エラーを発生させる必要があるのです。
そこで、VBで通信エラー(1byte抜け、パリティエラー等)を発生させるにはどうすればよいでしょうか?
ご存知の方いらっしゃいましたらご教示お願いします。
なお、現在の開発環境は「Win2000 SP1」「Visual Basic 6 SP6」です。




619 :デフォルトの名無しさん:05/03/09 09:34:59
>>618
ソフト側のバイト抜け、パリティ値異常は自分で組めばOKだな。そりゃあたりまえ。
ソフト正常・PC等異常でのバイト抜け、パリティ異常をVBでどうにかしろってのは無理ってもんだ。


620 :デフォルトの名無しさん:05/03/09 09:42:09
そこで電子ライターのカチカチですよ。
壊れても責任もたないけど。

621 :デフォルトの名無しさん:05/03/09 10:08:02
RS232-Cのデバッグなら信号モニタとか繋ぐだろうから
そっちの機能にノイズ発生とかあるんじゃねの?

622 :デフォルトの名無しさん:05/03/09 11:20:09
DWORDのAPI(timeGetTime等)はVBでLongとして扱われますが、
2,147,483,647を超えた場合、次は-2,147,483,648となり
-1までいったら0となるのでしょうか?
教えてください。

623 :デフォルトの名無しさん:05/03/09 11:21:20
>>622
自分で試してください

624 :デフォルトの名無しさん:05/03/09 11:21:20
質問させていただきます。
16進数を10進数に変換する関数ってありますでしょうか?
10進数を16進数に変換する関数は見つけたのですが、その逆がみつかりません。

現在の開発環境は「Win2000 SP1」「Visual Basic 6 SP5」となっております。
よろしくお願いいたします。

625 :デフォルトの名無しさん:05/03/09 11:25:51
>>624
CInt("&h" & "a")
でも何でもお好きにどうぞ

626 :デフォルトの名無しさん:05/03/09 11:32:36
>>625
ありがとうございます!


627 :デフォルトの名無しさん:05/03/09 12:02:40
>>623
timeGetTimeを使えば24日後には結果が出ますね。
1秒以内のタイマに使いたかったんです。
今日中に知りたかったんですが残念です。
ありがとうございました。


628 :デフォルトの名無しさん:05/03/09 12:08:45
( ゜д゜)ポカーン

629 :デフォルトの名無しさん:05/03/09 12:09:33
>>627
いや、2の補数なんだから、計算すりゃ出るやん。
それにCコンパイラがあればすぐ試せるやん。

630 :デフォルトの名無しさん:05/03/09 12:57:31
ぃ〜ち、に〜、さ〜ん、し〜、からあげやん!!

631 :デフォルトの名無しさん:05/03/09 13:01:52
>>629

2の補数って事はリセットされて0じゃなく
マイナスが帰ってくるって事ですね。
数週間前に初めてVBを触りだし
Cなんてまったくわかりません。
ほんとすみません。


632 :デフォルトの名無しさん:05/03/09 13:47:00
>>631
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpmltimd/html/_win32_timegettime.asp
> 戻り値は 0 ミリ秒から 2^32 ミリ秒の間を循環します。

Longはsignedだから622の認識でOK

633 :デフォルトの名無しさん:05/03/09 14:07:43
>>632
ありがとうございます。
これで何とかなりそうです。

>>その他皆様
何回もすみませんでした。


634 :デフォルトの名無しさん:05/03/09 21:22:44
実行環境の違いについて教えてください。
大きな二次元配列を作って、中身を全部調べるという処理
なんですけど実行する環境で挙動が変わってしまいます。

 WindowsMe : 無応答
Windows2000 : 正常終了
 WindowsXP : 正常終了

途中で DoEvent を発行せず、ループをグルグル回していますが
配列のサイズを小さくすると、WindowsMeでも正常終了します。
処理時間の長さが影響していると思うのですが、ネットで検索
しても、自力で回答を見つけられませんでした。
どなたか詳しい方、解説を宜しくお願いします。

尚、実行ファイルの作成はWindows2000で行っています。

635 :デフォルトの名無しさん:05/03/09 21:54:30
処理中なんだろ。
CPU使用率眺めてれば。

636 :デフォルトの名無しさん:05/03/09 22:09:27
いや、確かにWin9xだと巨大な配列とか文字列を扱ってると固まることあるよ。

637 :デフォルトの名無しさん:05/03/09 22:12:49
巨大な配列は使わない
が定説だったな

638 :618:05/03/09 22:17:46
>>619-621
ありがとございました。

639 :vb:05/03/09 23:24:37
VBから、エクセルファイルを開く(書き子んだファイルを起動する)方法教えてください。
リンクするようなイメージで。

640 :デフォルトの名無しさん:05/03/09 23:27:12
>>639
shellexecute 等

641 :vb:05/03/09 23:29:10
shellexecuteは使ったことありません。その命令でパスとかを指定すればいいんですか?
もしよかったら、記述の仕方教えてください。
お願いします。

642 :デフォルトの名無しさん:05/03/09 23:30:44
>>641
それくらいは自分で調べてください。

643 :vb:05/03/09 23:31:42
分かってたら教えてください。
こういう場で教えてもらったほうが分かりやすいから。
初心者なので。

644 :デフォルトの名無しさん:05/03/09 23:32:35
いやです。

645 :634:05/03/09 23:37:21
>>635,636,637
ありがとうございます。

WindowsME : 30分待ってもNG(固まっている?)
Windows2000、XP : 約10秒で終了

なので、ある一線を超えてしまったのでは?と思ったのですが・・
巨大配列は宜しくないようなので、適当に DoEventでOSに制御を
渡してトライしてみます。

 

646 :デフォルトの名無しさん:05/03/09 23:44:27
初心者ならなんでも許されると思うな

647 :デフォルトの名無しさん:05/03/10 09:24:09
まあ、>>641みたいのはプログラマじゃないよな。
せめてぐぐってサンプル探して試してダメだったら聞け。


648 :デフォルトの名無しさん:05/03/10 13:46:24
マルチメディアコントロールの他に手軽にwavファイルを再生する方法ありませんか?

649 :デフォルトの名無しさん:05/03/10 14:23:16
sndPlaySound

650 :デフォルトの名無しさん:05/03/10 15:47:33
sndPlaysoundありがとうございます

651 :デフォルトの名無しさん:05/03/11 02:21:35
先日買ったテキストで勉強をはじめました。
サンプルの掛け算足し算プログラムなど作ってます。
ざっと全章読んだんですが応用するには時間がかかりそうな本でした。
そこで辞典みたいなTIPS?本を買おうと思うのですが
それよりもこれ読んどけ・勉強しとけ みたいな本はありますでしょうか?

652 :デフォルトの名無しさん:05/03/11 02:41:43
>>651
ISBN4-7741-0859-6 ISBN4-7741-0941-X
ISBN4-7741-0880-4
ISBN4-7741-0771-9 ISBN4-7741-0777-8
ISBN4-7741-0782-4
上げだしたらきりがないが。

653 :デフォルトの名無しさん:05/03/11 03:46:46
>>652
それは注文番号ですか?ぐぐったら技術評論者の本が
でたので参考にしてみます。サンキュス

654 :デフォルトの名無しさん:05/03/11 10:45:41
>>653
ISBNだろ

655 :デフォルトの名無しさん:05/03/11 12:11:19
PROCESS_INFORMATION構造体を使おうとすると、
「ユーザー定義型は定義されていません」と出て、うまく実行されません。
調べると、参照設定を変えるという所までは分かったのですが、
どれを変えればいいか分かりません。教えてください。

656 :デフォルトの名無しさん:05/03/11 12:31:22
>>655
Google.co.jpで "PROCESS_INFORMATION VB"

657 :デフォルトの名無しさん:05/03/11 12:39:20
>>655
APIビュアで定義を調べてコピペ。

658 :デフォルトの名無しさん:05/03/11 12:48:36
>>656>>657
ありがとうございます。出来た模様です。ありがとうございました。
あの長い宣言ですよね。Cの#include <windows.h>みたいな
ちょこっとやっとく感じかと思っていたので大変でした。

659 :デフォルトの名無しさん:05/03/11 16:03:16
>>654
まじれすか(´・ω・`;) ちゃんと全部VBの本がでたのでアマゾンに
注文してしまいました・・

ISBNで検索してみます(´・ω・`;;)・・

660 :デフォルトの名無しさん:05/03/11 16:06:46
うわ、全部買ったの?けっこうな金額になりそうだが

661 :デフォルトの名無しさん:05/03/11 16:28:20
ホリエモンやライブドアを偏向報道から守ろう!!

ttp://www.geocities.jp/horieouenn/

662 :デフォルトの名無しさん:05/03/11 17:35:11
>>659
ISBNの意味がわかってないのか。
別にアマゾンで買ってもいいよ。

663 :デフォルトの名無しさん:05/03/11 17:55:28
>>662
ぐぐってみました。日本図書コードってやつみたいですね。

>>660
2冊だけ買いました

スレ汚しスンマセンでした(´・ω・`)

664 :デフォルトの名無しさん:05/03/11 21:00:09
VB6.0を使っています。OSはXPです。

DirListBoxで普通にパスを指定すると、ドライブのルートから
指定したフォルダまで全ての親フォルダが表示されますよね。
このとき、指定したフォルダより上位のフォルダを非表示に
することは可能でしょうか?
つまり、たとえば"C:\A\B\C\D"というパスを表示するときに、
あたかもBがドライブのルートであるかのように表示して、
ユーザにそれより上位のフォルダにアクセスさせないように
したいのですが……。

665 :デフォルトの名無しさん:05/03/11 21:25:07
VB5でマウスのホィールを使いたいのですが「VB マウスホィール」あたりだと
ググッてもHitしません。参考になるサイトはありますか?

666 :デフォルトの名無しさん:05/03/11 21:28:46
>>664
DirListBoxもどきを自作するか、
SUBSTコマンドで誤魔化せ。

667 :デフォルトの名無しさん:05/03/11 21:31:54
>>665
WM_MOUSEWHEEL

668 :デフォルトの名無しさん:05/03/11 21:53:12
>>665
「VB マウスホイール」なら腐るほどヒットするのにな。


669 :デフォルトの名無しさん:05/03/11 23:19:17
>>666
SUBSTについて調べてみましたが、勝手に仮想ドライブを
作ってしまうといろいろ支障が出そうなので、なんとか
DirListBoxっぽいものを自作する方向で考えてみます。
やってみて難しそうならまた別の方法を検討します。
ありがとうございました。

670 :デフォルトの名無しさん:05/03/11 23:26:17
>>664
っていうか、正直そんなUI糞だと思うよ。。

671 :デフォルトの名無しさん:05/03/12 00:02:44
世間には普通にあると思うけどなー。
Unixのユーザーアカウントの仕組みもそんなんじゃなかったっけ?
あとFTPとかも。
まあ、それ自体が糞なのだという意見かもしれんが。。

672 :デフォルトの名無しさん:05/03/12 04:26:04
>>664
SHBrowseForFoldersを使えば指定フォルダー以下の選択ができるけど
あれじゃ駄目?

673 :デフォルトの名無しさん:05/03/12 04:27:20
おっと、最後のsは余計だった「SHBrowseForFolder」

674 :デフォルトの名無しさん:05/03/12 08:37:49
これか
http://yokohama.cool.ne.jp/chokuto/urawaza/api/SHBrowseForFolder.html
http://yokohama.cool.ne.jp/chokuto/urawaza/struct/BROWSEINFO.html

675 :デフォルトの名無しさん:05/03/12 10:50:54
vb5.0のサービスパックはどこで手に入るのでしょうか?

676 :デフォルトの名無しさん:05/03/12 12:28:58
>>674
それだ

677 :デフォルトの名無しさん:05/03/12 22:30:59
>>675
MSのトップから辿っていけばすぐに見つかるだろ。
http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs97/vb.aspx

678 :デフォルトの名無しさん:05/03/12 23:24:42
>>672->>674
アドバイスありがとうございます。
ダイアログボックスを表示するのでなくてなんとかフォームの一部として
組み込みたいと思ってます。
さして複雑な機能を必要としているわけでもないので、Listboxに手を加える
とかでなんとかならないかと模索している最中です。
なので、とりあえずはその方向で頑張ってみて、駄目だったらダイアログボ
ックスを使うことを考えたいと思います。
わざわざアドレスまで示していただいてありがとうございました。

679 :MG:05/03/13 23:41:55
現在VB6を主な開発環境にしてます。機器制御やデータベースサーバー
(SQL-Server)とのやり取りを主とする社内用のプログラムを開発、保守してます。
VB6もサポートが終わるようですし、netへ移行が必要かな?と思いつつも
(VS2003は購入してあるのですが)いまいち移行のメリットが見えません。
1.クライアントは98からXPでFrameworkのインストールが必要なマシンが
まだ大量にある。またインストールしてどのOSでもほんとに動くのか?
2.Frameworkのバージョンがあがったときにちゃんと動くのか?
3.Framework上でのアプリは遅いらしい(しくみからするとあたりまえか)

1.2はnet系の掲示板をみると大丈夫らしいのですが、どこもNETを
誉めるばかり(MSヨイショか?)みたいでどこまで信用できるのか半信半疑
です。
3.は結構痛いです。マシンを新しくすればよいといわれそうですが、IT系
の企業でもない製造業では、そんなに頻繁にマシンも入れ替えられないので
難しいです。
VB6使いの方はどう思われてますか?

680 :デフォルトの名無しさん:05/03/13 23:47:16
>>679
結局何を聞きたいのかいまいち見えてこない。
ピントのぼやけた質問にはやはりピンボケの答えしか返ってこないと思う。

681 :デフォルトの名無しさん:05/03/13 23:49:59
そんなあなたにサミュエル スマイルズ「自助の勧め」をお勧めしよう

682 :デフォルトの名無しさん:05/03/13 23:50:47
『自助論』だった・・・・・・ORZ

683 :デフォルトの名無しさん:05/03/13 23:56:04
聞くならVB.NET使ってるやつらに聞くべきだ

684 :デフォルトの名無しさん:05/03/13 23:59:05
川俣さんに聞いてこい
http://www.atmarkit.co.jp/fdotnet/vbcheer/vbcheer08/vbcheer08.html

685 :MG:05/03/14 00:04:19
質問の仕方が悪かったの見たいです。すいません。
聞きたいことはVB6を使っている方が.NETへの移行に関してどう思われている
かということです。
移行するというのもあるかと思いますし、別の開発系にする、あるいは移行しない
という判断もあるかと思います。
その判断と、判断基準を聞いてみたかったのです。
自分の場合は今のところメリットが見えないのですが(移行にもかなりの手間が
かかるし)、今のままにしておくのも今後のこと(将来のOSでは動かないのでは
?)を考えると心配なので、どうするのがベストかを悩んでいます。




686 :デフォルトの名無しさん:05/03/14 00:06:02
>>685
ウザい
消えろ

687 :デフォルトの名無しさん:05/03/14 00:28:08
>>685
どの板のどのスレにもいる幼稚な奴は無視するよろし。

.NETに移行することのメリットは、エンドユーザーにとってみれば
ほぼ皆無だと思う。すくなくとも現時点では。

開発者側にとってのメリットも、実は現時点ではそんなにない気もする。
ただ確かにVB6よりはVB.NETの方が言語仕様すっきりしていてある意味解かり易いので
開発効率は若干上がるかもしれない。あとは、とりあえず時流に乗っているという安心感か。w

移行が大変かどうかという点については、VB6でもクラス使いこなしている人なら
全然問題ないと思う。(2-3週で感じは掴めると思う)
逆にVBプログラマにありがちなoopどころか構造化プログラミングもちゃんと
マスターできているか怪しいレベルの人だとかなり苦労するかも。

688 :デフォルトの名無しさん:05/03/14 00:31:48
うちの会社は新規案件については2年前から移行しているけど、
保守するものについては、ケースバイケース。
VB6製のソフトが将来動かなくなる日はいずれ来る。
ずっと使うってわかっているものなら、いつかは移行せざるを得ないけど、
要はいつ移行すべきかってことでしょう?
それは、知らん。
どの程度の予算・時間で移行できるかとか、プログラムの規模にも担当する人員にもよるし、
プログラムのライフサイクルにもよってくるじゃん。
自分のところで諸事情を検討して決めるしかないよ。

689 :デフォルトの名無しさん:05/03/14 00:35:11
http://pc5.2ch.net/test/read.cgi/tech/1027559190/
こっちにでも行ってやってくれ

690 :デフォルトの名無しさん:05/03/14 01:00:52
>>685
マシンの入れ替え次期に合せて.NETに移行すれば?

691 :デフォルトの名無しさん:05/03/14 01:20:00
うちの社内アプリはVB5製。さすがに古くなってきたからWin32SDKに移行中。
特に移行を急ぐ必要が無いならそのままでいいんでないか?

692 :MG:05/03/14 01:24:48
>>687
>>688
回答ありがとうございます。移行メリットはあまりないですか・・。
実際作り直すだけのメリットがないのでほんとはVB6互換の使える
環境とか出てきてくれればありがたいんですけど(REALBASICではだ
めみたいだし)
当面VB6でいこうと思います。
>>689 で紹介されたスレもみましたが、新規案件もnet
2.0がでるまで様子見したほうがよい感じですね。

693 :デフォルトの名無しさん:05/03/14 02:05:09
>>692
2.0まで様子見?一生「次が出るから」なんて言ってればいいよ
将来のOSで動かなくなる?お前、その時に生きてんの?
判断と基準?下調べくらいやってから言えよ

694 :デフォルトの名無しさん:05/03/14 04:04:28
vb6のサポート終了もあり、新規開発ではvb6を使用すべき状況ではなくなりつつある。
vb6は人気のある言語だったが、移行すべきパスは明確ではない。

vb7みたいな製品があれば良かったのかもしれませんが、
まだプログラマ人口の少ない.netに移行すべきかは迷うところでしょう。

エンタープライズの世界に限って見ると、社内システムでも
画面はブラウザで、ビジネスロジックはapサーバのjavaでという選択も多くなってきていると思います。
ですが、まだ複雑なUIでは、ブラウザでは描画速度や自由度などの点で不満がでることもあるでしょう。
また、2階層のシンプルなシステムから3階層のシステムに移行する点もリスクに見えるわけです。

混沌としているようでもあります。
しかし移行すべきパスが明確でないということは、選択肢が沢山あるということでもあります。
個人的にはその選択にはプログラマ人口が比較的重要だと思っています。

695 :デフォルトの名無しさん:05/03/14 07:22:16
>>204
じゃあ君が思う正しい文章書いてみ?

696 :デフォルトの名無しさん:05/03/14 14:30:03
釣堀じゃねーしさ

697 :デフォルトの名無しさん:05/03/14 14:50:53
VB6.0からVB.NETに逝くぐらいならあっさりC#にしたほうがまし。

698 :デフォルトの名無しさん:05/03/14 14:53:00
そんな事は当たり前だ。
VB.NETはVBという名前を無くすと暴動がおきるから、しぶしぶ作った代物だ。

699 :デフォルトの名無しさん:05/03/14 15:01:24
でもなぜか、多くの人はVB.NETを選んでるみたいだね。

700 :デフォルトの名無しさん:05/03/14 15:09:46
Officeとの親和性だけは高いからね。

701 :デフォルトの名無しさん:05/03/14 19:28:47
ビルゲイツが何で金持ちになったか知ってるか?

702 :デフォルトの名無しさん:05/03/14 19:33:54
  (´・ω・`) < 知らんがな

703 :デフォルトの名無しさん:05/03/14 19:36:26
いや、C系統の言語って視認性が悪過ぎるでしょ。VBとかパスカルなんかに比べて。
くだらないことに脳の資源とられる感覚を払拭できないんだよね。
っていうとすぐに慣れの問題っていう奴が出てくるがそんなことはない。

それだけでも十分VB.NET選ぶ理由になると思うけど。

>Officeとの親和性だけは高いからね。
そこはあんまりC#でも変わらない気がするけど。。

704 :デフォルトの名無しさん:05/03/14 19:51:03
>>703
変わらないって言えば変わらないかな。
ただ、引数が省略できないから Missing.Value がずらずら〜と並んでorz

705 :デフォルトの名無しさん:05/03/14 19:57:33
あと、CreateObject("Excel.Application")みたいにレイトバインディングが
簡単に出来ないのが辛いなぁ。
インストール先PCのOfficeのバージョンに合せていちいちビルドし直すのが面倒。

706 :デフォルトの名無しさん:05/03/14 20:04:02
え、できるでしょ?C#じゃ試してないけど。
インスタンスの生成は単純にExcelをNewしといて、
それをObject型の変数に代入するだけ。

少なくともVB.NETじゃこれでエクセルに関して
バージョンフリー(?)なアプリが作れたけど。。

707 :デフォルトの名無しさん:05/03/14 20:05:38
っていうか学生さんの言語厨房みたいなこと言って悪いけど
「レイトバインディング」ってCreateObject使うかどうかは関係ないよ。

708 :デフォルトの名無しさん:05/03/14 20:09:31
っていうかいつまで.NETの話題を続けてるんだ

709 :デフォルトの名無しさん:05/03/14 20:13:32
>>706
C#の話題なんだが。

710 :デフォルトの名無しさん:05/03/14 20:15:12
C丼て何?

711 :デフォルトの名無しさん:05/03/14 20:15:38
>>707
そうそう。だから「CreateObject()みたいに簡単に」って表現をしてると思った。

712 :デフォルトの名無しさん:05/03/15 00:20:16
>708 >710

必死だなw

713 :デフォルトの名無しさん:05/03/15 12:57:13
>>703
漏れはVB使ってる時の方がくだらんことに脳の資源が取られると感じる。強烈に。


714 :デフォルトの名無しさん:05/03/15 16:39:21
VB6でコントロール配列のインデックスの並び替えが100個とかあると非常に面倒なのですが、
何か良い方法はないでしょうか?
タブインデックスみたいに既に割り当ててある番号を指定しても自動的に並び替えてくれればいいんですけど。

715 :デフォルトの名無しさん:05/03/15 16:51:43
>>714
100個作るインターフェイスそのものが間違っています
画面仕様から見直してください

716 :デフォルトの名無しさん:05/03/15 16:56:01
>>715
それもそうですね。見直します。

717 :デフォルトの名無しさん:05/03/15 18:07:34
100個ってどんなだ。

718 :デフォルトの名無しさん:05/03/15 19:03:28
>>717
10×10のマスをテキストボックスで表してるとかでしょ。
素直にGridつかえばいいのに(w

719 :デフォルトの名無しさん:05/03/15 22:56:00
>703 >705
釣りは他所でおながいします

720 :デフォルトの名無しさん:05/03/15 23:01:18
>>719
あんた、空気読めない人っていわれない?

721 :デフォルトの名無しさん:05/03/15 23:20:30
(´-`).。oO(釣堀では静かにしてろってこと?)

722 :デフォルトの名無しさん:05/03/16 07:17:04
>>696
どうやら書けないらしいね。

723 :デフォルトの名無しさん:05/03/16 12:59:00
(´-`).。oO

724 :デフォルトの名無しさん:05/03/16 14:31:39
0.1づつ繰り上がるはずなのにずれます。
教えてください。
Private Sub Command1_Click()
level = level + 0.1
Label1.Caption = level
End Sub




725 :デフォルトの名無しさん:05/03/16 14:40:23
dim n as Integer

Private Sub Command1_Click()
level = n * 0.1
Label1.Caption = level
End Sub

726 :デフォルトの名無しさん:05/03/16 15:45:18
>>724
予想。
level が Integer になっている。

727 :デフォルトの名無しさん:05/03/16 15:48:15
>>726
Integerだったらズレる以前の問題だろ

728 :デフォルトの名無しさん:05/03/16 15:53:10
charポインタ返すDLLが有ったとするじゃないか。
VBではどうやって受け取るの?ポインタ無いよな?

それと、voidポインタをValiantで受け取ったとして、
どうやってキャストするんだ?

729 :デフォルトの名無しさん:05/03/16 16:07:45
>>724
浮動小数演算になってるからだろ。

Private Sub Command1_Click()
  level = level + 1
  Label1.Caption = level/10
End Sub

levelはLong or Integerで宣言すること。

730 :デフォルトの名無しさん:05/03/16 16:08:48
その程度なら通貨型使えよって思うがな

731 :デフォルトの名無しさん:05/03/16 18:20:44
>>728
MSDNにきちんと書いてあるから熟読することを進める。
VBのUnicodeをAnsiに渡すのは、VBたんがいい仕事してくれるので大丈夫。
ただ、DLL側で動的に領域確保は危ないような。
VBでSpaceで連続領域確保したところに突っ込んでもらうのが安全。

Unicodeの文字列をUnicodeで渡す場合はBSTR型だっけ?が必要。


732 :デフォルトの名無しさん:05/03/16 19:48:30
>>728
charのポインタもvoidのポインタもLongで受け取れ。


733 :デフォルトの名無しさん:05/03/16 20:52:10
729,730さん ありがトン

734 :デフォルトの名無しさん:05/03/17 00:13:04
>>729730に期待

735 :デフォルトの名無しさん:05/03/17 00:44:27
VB6.0です。おながいします。

フォームについて。
「最小化」のみ生かしたまま、フォームのresizeをできなくするようには
どのように記述すれば良いのでしょうか。
Borderstyleは「可変」にし、最大化をFalseにし…。
それからがわかりません。よろしくお願いします。

あと、フォームの中に配置した、例えばtextboxやコマンドボタンを、
フォームのリサイズに比例して移動させたりするには、やはり地道に
それぞれのパーツのwidth・heightを設定していくしかないのでせうか?






736 :デフォルトの名無しさん:05/03/17 01:11:35
可変じゃなくて固定で、MinimizeBoxをTRUE?

コントロールの移動は地道に設定したりコンテナ使って手抜きしたり。

737 :デフォルトの名無しさん:05/03/17 01:13:02
>>735
タイトルバーのボタンを使用不可にするにはAPI使わないと出来なかった希ガス
再配置は地道に計算してやってくしかないけど、FrameやPictureBoxなんかで区分けすれば幾分か楽にはなる。
クラスにWithEvents定義してごにょごにょってやればスッキリ書けるけど説明が面倒なので省略。
あと、可変にしたいのか固定にしたいのか分からん質問だな。

738 :デフォルトの名無しさん:05/03/17 02:01:32
>>731
728じゃ無いけど、そうなんだ。
>VBのUnicodeをAnsiに渡すのは、VBたんがいい仕事してくれるので大丈夫。
これは、渡す時に変換してくれるって事なんだよな?
案外VBって仕事してるのな。


739 :デフォルトの名無しさん:05/03/17 09:39:07
>>738
でも、結構曲者な動きだけどね。
バイト数が変わることを前提に、文字列を戻す場合は考慮が必要だったと思う。
なんで、どちらかというと、渡すのはStringでいいけど、戻りがあるならByteの配列を渡すのが確かいい感じだったと思う。


740 :デフォルトの名無しさん:05/03/17 12:57:09
724です。こんな方法もあるようです。
dim level as Double
Private Sub Command1_Click()
level = level + cdec(0.1)
Label1.Caption = level
End Sub


741 :728:05/03/17 13:32:04
>>731-732
返事が遅くてごめん
DLLで純粋にmallocをラップして、VBでも動的なメモリ確保を出来るように
しようと思ってたんだが、受け取ったポインタをキャストできないから、
全然意味が無いんだよな
何か抜け道無いかと思ってたんだけど、無さそうねぇ
とにかくありがと

742 :デフォルトの名無しさん:05/03/17 14:18:56
>>741
キャストしなくても、ポインタをハンドルとして扱って「中身いじり関数」をDLLに作ってやったら?
ポインタとバイト値を受け取ってコピーするだけの関数だけどな。

743 :742:05/03/17 14:29:18
ついでに言えば、
GlobalAlloc()
が、メモリ確保してくれるWinAPI
少し調べないと使えないからな

744 :デフォルトの名無しさん:05/03/17 14:44:36
そもそも、VBでそういう操作をするのが間違いだな。
もし動的確保が必要ならば、>>742さん言うようにその処理自体をカプセル化する。

745 :デフォルトの名無しさん:05/03/17 20:54:52
VB6で指定のExcelファイルの指定のセルだけ表示させて
そこのみ編集したいんですが・・・、OLEコンテナでできますでしょうか?
ご存知のかた、よろしくおねがいします。

746 :714:05/03/17 21:56:27
>>717-718
DBのデータを入力するやつです
本当は、仕様書にそのように書いてあるのでその通りに作ってるだけです

747 :デフォルトの名無しさん:05/03/17 22:10:11
VBで動的配列を使う場合Redimを使うとあるのですが、
Public変数の場合はどうしたらよいですか?

748 :デフォルトの名無しさん:05/03/17 22:12:05
>>747
はあ?

749 :デフォルトの名無しさん:05/03/17 22:17:39
はあとかいわれてもしょうがないのですが
動的メモリ確保の方法がわかりません。
標準モジュールで宣言したPublic配列を書いたら動的に確保できますか?

750 :デフォルトの名無しさん:05/03/17 22:19:39
>>749
自分で試せばわかるじゃないか。

751 :デフォルトの名無しさん:05/03/17 22:19:55
1から100までの自然数を素因数に分解して出力しなさい

誰かC言語でプログラム書いてもらえませんか?

752 :デフォルトの名無しさん:05/03/17 22:20:43
もう何がなんだか。。。

753 :デフォルトの名無しさん:05/03/17 23:03:02
バトルロワイヤル見てるみたいで逆に面白い

754 :デフォルトの名無しさん:05/03/17 23:41:45
4=2*2
6=2*3
8=2*2*2
9=3*3
10=2*5
12=2*2*3
14=2*7
15=3*5
16=2*2*2*2
18=2*3*3
20=2*2*5
21=3*7
22=2*11
24=2*2*2*3
25=5*5
26=2*13
27=3*3*3
28=2*2*7
30=2*3*5

755 :デフォルトの名無しさん:05/03/18 01:15:37
cp dir1/file1 dir2/file2
のようにファイルをコピーする方法を教えてください.
ファイルをopenしてkopi-ファイルに書き込むのならば出来るんですが,
もっとエレガントな方法はないのかなあと。

756 :755:05/03/18 01:22:44
renameですね。
自己解決しました.すいません。

757 :755(すんません):05/03/18 01:31:35
あー、コピーじゃないからダメですね。
やっぱりcopy file1 file2 みたくコピーする方法を教えて欲しいです。
それとファイルを削除する方法も教えて欲しいです。

758 :デフォルトの名無しさん:05/03/18 01:34:49
FileSystemObjectでも使えばええんちゃうん?

759 :デフォルトの名無しさん:05/03/18 02:03:46
FileSystemObjectなんか使わなくても、
FileCopy関数で十分。

760 :755:05/03/18 02:20:28
FileSystemObjectで何とかなりました。サンクスです。
今から一応Filecopy関数も調べてみます。

761 :デフォルトの名無しさん:05/03/18 09:26:47
>>745
CreateObjectからヘルプ見ればサンプルある。

>>747
Redimを使う。なので>>748ははあ?といいたくなるのも当然。

762 :デフォルトの名無しさん:05/03/18 09:31:37
Do...Loop ステートメントでループさせている中にIF文を入れているのですけど
例えば、10回ループさせている間にIF文がFalseの時に下まで行ってループせずに
5回目から6回目など次のループに移動させたいのですけどどういうやり方があるのでしょうか?

763 :761:05/03/18 09:32:21
>>745
ごめん、特定のセルですね。
そうだとちょっと無理かな?OLE連携でExcelを出せるけど、それを絞るのって、元のシート次第じゃないのか?


764 :745:05/03/18 09:43:09
>>763
元のシート次第・・・!ちょっとピピンときました。
やってみます、有難うございました。

765 :デフォルトの名無しさん:05/03/18 15:05:26
>762
そういう風に書けばよい。

766 :デフォルトの名無しさん:05/03/18 17:52:40
DDEでバイナリ値を使いたいんですがどうすれば良いのやら途方に暮れてます。
テキストやラベルにバイナリ値を入れられないし・・・
知ってる方いましたら教えてください。

>>762
飛び先書いてGOTOで。


767 :デフォルトの名無しさん:05/03/18 18:36:44
バイナリがだめならBASE64でエンコードすればいいじゃない

768 :デフォルトの名無しさん:05/03/18 18:37:19
DDEを使わないというのが最善策

769 :デフォルトの名無しさん:05/03/18 20:17:01
>>762
あえて言わせてもらえればアルゴリズムかコーディングが不味いと思うので
もう少し詳しくやりたいことを書けばきっちり馬鹿に出来ると思うのだが…

770 :デフォルトの名無しさん:05/03/18 21:09:40
>>769
恥ずかしい奴。「馬鹿に出来る」対象なのは恐らく君の方。
>>762のような制御構造が欲しいケースはままある。
っていうかCも知らないとしか思えない。

771 :デフォルトの名無しさん:05/03/18 22:39:53
>>762
EndIfをLoopの前まで持っていくってのでダメ?
それともBoolのフラッグ立ててIfとEndIfで囲むとか…。

772 :デフォルトの名無しさん:05/03/18 23:21:44
Visual InterDev 6.0をこれから勉強しようと思ってるのでがVisual Basicと違ってあまり参考書がありません。
よい参考書やHPはないでしょうか?

773 :デフォルトの名無しさん:05/03/18 23:26:14
知るかボケ。

774 :デフォルトの名無しさん:05/03/19 01:09:20
>762
なんかよく分からんけど再帰的な事がやりたいか、
一時的にLoopから外したいようにも思える。
前者ならよく考えてそのように書くしかないし、
後者の場合、もうちょっと具体的な情報がないと何とも。

一旦具体的な処理部分を関数化するか、
非常に冗長なcodeを書いて整理してけばいいんじゃないかな?
フローチャートを書くのもいいかも。

>772
VBが使えるんだったら要らないっしょ。使えば分かる筈。
それよりIIS等の参考になる資料でも読んだ方がいいよ。

775 :デフォルトの名無しさん:05/03/19 13:06:23
>>772
ちょっと問題がありまして、、、
Visual InterDev6で新しいWebプロジェクト作成の際に
出てくる「使用するサーバーの指定」の欄に何の名前を入力していいのかわかりません。
IISをインストールし、インターネットインフォーメーションサービスのローカルコンピューターの名前かなと思い、いれてみたのですが、接続できないようで先に進めません。
ご教授お願い致します。
OSはxpのproを使用しております。

776 :デフォルトの名無しさん:05/03/19 14:10:25
ビットマップの上に文字を書けるようにしたいと思うのですが、
テキストボックスを配置すると、その四方形の部分の絵が隠れてしまいます。
テキストボックスを透明にする方法ってありますか?

777 :デフォルトの名無しさん:05/03/19 17:41:40
>>776
Call SetWindowLong(RichTextBox1.hwnd, GWL_EXSTYLE, WS_EX_TRANSPARENT)
何故かRichTextBoxなら一行で透明になるけど(Win2K以降)、直接ビットマップというか
デバイスコンテキストに描画しちゃうようなコードも考慮してみたほうがよいかと


778 :デフォルトの名無しさん:05/03/20 01:19:51
>775
URLかIPアドレス入れてみ。

779 :デフォルトの名無しさん:05/03/20 05:42:38
VB5でキーバッファクリアをしたい場合はどうすれば良いでしょうか?
まさか慣性が付いちゃうなんて・・・8Bit機を思い出してしまった

780 :デフォルトの名無しさん:05/03/20 07:50:31
>>779
PeekMessage

781 :デフォルトの名無しさん:05/03/20 12:20:39
VB6 XPです。
CSVファイルをソートするのに、ADOでテキストファイルを
データベースとして接続して、SQL文でソートして、その
結果を別ファイルに吐き出すようにしています。
Set mcn = New ADODB.Connection
mcn.ConnectionString = _
"Provider=MSDASQL.1;" & _
"Extended Properties=""" & _
"DRIVER=" & _
"{Microsoft Text Driver (*.txt; *.csv)};" & _
"DBQ=" & App.path & "\" & """"
mcn.Open
Set mrs = New ADODB.Recordset
mrs.CursorType = adOpenDynamic
SQL_STR = "Select * From " & "sort.csv" & " ORDER BY field28 ASC,field35 ASC,field02 ASC"
mrs.Open SQL_STR, mcn

ただこの方法だと元のファイルにあったデータを囲むダブルコーテーションや、
データの前後にある空白が消えてしまいます。
schema.iniの設定はこのような感じです。
[sort.csv]
ColNameHeader=True
Format=CSVDelimited
MaxScanRows=0
textacterSet=OEM
Col1=field01 text
ダブルコーテーションや空白等が消えないようにするのはどうしたらよいでしょうか?
CSVファイルの大きさは170Mです。
データは可変長です。
よろしくお願いします。

782 :デフォルトの名無しさん:05/03/20 13:05:14
>>778
IPアドレスいれてみたらちょっと進んで今度はユーザー名に対するパスワードを
要求されました。
思いつくパスワード全て入れてみたのですが駄目でした。
どなたかご存知でしょうか?

783 :デフォルトの名無しさん:05/03/20 13:41:53
>782
サーバ上に接続しようとしている端末にLoginしているユーザのアカウントはadminで作ってあるのかい?

784 :デフォルトの名無しさん:05/03/20 15:09:48
VB6 XPです

私は現在、ADO2.7でMDBファイルを開き、編集するソフトを作っています。
開く対象はユーザーの任意のファイルですので、ファイル読み込み時に
各テーブルのカラムの設定も取得するようにしています。

カラムのデータ型やDefault値、Nullを許可するかどうかの設定は
プロパティの"Nullable"等で取得出来ることは分かったのですが、
一意(UNIQUE)に設定されているかどうかの項目がウォッチ式や
ネット上でも調べてみましたが、見つかりませんでした。

現在は苦肉の策としてエラーハンドラーを設定し、エラーコードから
『一意に設定されたカラムに重複した値が入力されています』といった
メッセージボックスが表示されるようにしています。

カラムが一意に設定されているかどうかは、どのように取得すれば
良いのでしょうか。

785 :デフォルトの名無しさん:05/03/20 15:36:46
VisualBasicのサービスパックって何処でダウソできるんですか?
日本語のやつ

786 :デフォルトの名無しさん:05/03/20 15:56:15
>>784
Index

787 :デフォルトの名無しさん:05/03/20 16:02:23
                \ │ /
                 / ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )< ぱいそんぱいそん!
                 \_/   \_________
                / │ \
                    ∩ ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< ぱいそんぱいそんぱいそん!
ぱいそん〜〜〜!   >( ゚∀゚ )/ |    / \__________
________/ |    〈 |   |
              / /\_」 / /\」               ̄     / /


788 :デフォルトの名無しさん:2005/03/21(月) 09:00:36
>>785
Vector
http://www.vector.co.jp/vpack/filearea/win/util/runtime/index.html

789 :デフォルトの名無しさん:2005/03/21(月) 21:47:36
>>785
ms


790 :デフォルトの名無しさん:2005/03/21(月) 22:09:33
コモンダイアログで例えばShowsaveメソッドなどで名前を付けて保存
ダイアログを真中に出したいんですけど、ダイアログを出す位置指定する事
ってできますかね。
今は、左上のあたりに出てしまいます。

791 :デフォルトの名無しさん:2005/03/21(月) 23:23:55
>>790
言葉遣いが気に入らないので答えたくありません。

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

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

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