(*´д`*)アハァ… VB初心者質問スレ Part27

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
VB(6.0以前)の質問スレです。
VB.NETの話題はできるだけひかえてください。

前スレはこちら
  Part17 http://pc3.2ch.net/tech/kako/1036/10361/1036154952.html
  Part18 http://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
  Part19 http://pc3.2ch.net/tech/kako/1039/10398/1039859691.html
  Part20 http://pc2.2ch.net/tech/kako/1041/10418/1041879465.html
  Part21 http://pc2.2ch.net/tech/kako/1044/10440/1044028945.html
  Part22 http://pc2.2ch.net/tech/kako/1046/10463/1046354784.html
  Part23 http://pc2.2ch.net/tech/kako/1047/10477/1047743187.html
  Part24 http://pc2.2ch.net/tech/kako/1050/10501/1050151126.html
  Part25 http://pc2.2ch.net/test/read.cgi/tech/1052627913/
  Part26 http://pc2.2ch.net/test/read.cgi/tech/1055145106/


【VB.net関連スレ】
【老若】VB.net質問スレ【男女】 (Part3)
http://pc2.2ch.net/test/read.cgi/tech/1056281084/
【Win32 API関連スレ】
Win32API 質問箱 Build12
http://pc2.2ch.net/test/read.cgi/tech/1056033645/

心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
五.荒らしは相手しない。
六. VB情報募集中。
七.VB.NETの話題できるだけひかえる。
2デフォルトの名無しさん:03/07/20 13:25
3デフォルトの名無しさん:03/07/20 13:26
前スレはこちら
  Part16 http://pc3.2ch.net/tech/kako/1034/10343/1034302532.html
5デフォルトの名無しさん:03/07/20 13:26
64:03/07/20 13:27
かぶった。スマソ。
で乙。>>1
7デフォルトの名無しさん:03/07/20 13:30
VB,VBSはOK
VBAは?
8デフォルトの名無しさん:03/07/20 13:39
>>1 乙!
>>7 多分OK
VB使いヘボイよ

質問です。
指定したプロセスを終了させるにはどうすればよいのでしょうか?

928 :デフォルトの名無しさん :03/07/20 13:19
>>927
Kill

すみません、初心者なのでもう少し分かりやすくお願いします。
11デフォルトの名無しさん:03/07/20 15:55
>>10
お前を殺すと言うことでは?
>>10

プロセスハンドルから、ウィンドウハンドルを取得して、WM_CLOSE を投げるってのが
基本的な方法。

ちなみに、kill ってのは、Unix 系のコマンド。.NET なら、Process.Kill() ってのが使える
けど、VB では、ファイルを削除することになります。
13デフォルトの名無しさん:03/07/20 16:27
>>12
VB使いにそのような事を言っても理解不能なので、
もうちょっとわかりやすくお願いします
1410:03/07/20 16:44
>>12
ありがとうございました。がんばってみます。
15cb ◆9AFHrbDx3A :03/07/20 17:42
複数行あるTextで、「上 XX 行を消す」ということができるいい方法はありませんか?


┏  <HTML>
消  <HEAD><TITLE>信長の野望(1/32)</TITLE></HEAD>
し  <BODY BGCOLOR=#FFFFFF TEXT=#000000>
   <A NAME=0001> </A>
た  <H2>信長の野望</H2>
い  <DIV ALIGN=RIGHT>2003.02.11 更新
┗  </DIV><BR>
   幼名吉法師、三郎、上総介。
   信長の父信秀は守護代織田氏の支流だったが、実力で本家をのっとり、
   尾張に勢力を張る。父の死後あとを継いだ信長は、桶狭間の合戦で今川


上のようなテキストだけならInstr関数とMID関数を使ってもできるのですが、
「上XX行ばっさり」とはいきませんか?
>>14
改行コードの数を数えて削除すれば?
1716:03/07/20 18:17
>>14 → >>15
18cb ◆9AFHrbDx3A :03/07/20 19:12
>>16
改行コードChr(10)と配列を使ってできました。ありがとうございます。
1910:03/07/20 20:01

すみませんが、
「プロセスハンドルから、ウィンドウハンドルを取得して、WM_CLOSE を投げるってのが」
このソースコードを記載してくれませんか?
20デフォルトの名無しさん:03/07/20 20:20
思った通り、VB使いには解らなかったようですね。
それ以前にハンドルが何かという事も理解しているのか・・・
21八重洲支店:03/07/20 20:24
22デフォルトの名無しさん:03/07/20 20:26
やれやれ説明しても解らないからソースを見せろか・・・

SendMessageというAPIを使ってください。
これ以上言っても解らないようなら諦めた方が良い。
たかがプログラマふぜいが偉そうに.....(ワラ
24デフォルトの名無しさん:03/07/20 20:34
自分の勝てない領域の話になると、すぐこういう事を言ってくる奴がでてくるね(藁
まぁ大抵こういう事を言うのはコンプレックスがある証拠
つーか初心者を馬鹿にする奴が多過ぎ。
荒らしと変わらん。
>>26
調べたりする努力しているとかあれば次の言葉もあろうけれど
わからんからソース出せと言われると、馬鹿かと思うよ。
28デフォルトの名無しさん:03/07/20 21:31
そそ。
ちゃんと自分で調べたりしてれば大体文面で解る。
ソースを見せろか...
やぱーりVBスレだけあるなw
30デフォルトの名無しさん:03/07/20 21:48
>>10
API使えないんならソースを見ても分からないと思うが、

public class Win32
{
public const int WM_SYSCOMMAND = 0x0112;
public const int SC_CLOSE = 0xF060;
[DllImport("user32.dll")]
public static extern int FindWindow(string lpClassName,string lpWindowName);
[DllImport("user32.dll")]
public static extern int SendMessage(int hWnd,uint Msg,int wParam,int lParam);
}

で宣言して、

private void YourMethod(object sender, System.EventArgs e)
{
int iHandle=Win32.FindWindow(txtClsNm.Text ,txtWndNm.Text);
int j=Win32.SendMessage(iHandle, Win32.WM_SYSCOMMAND, Win32.SC_CLOSE, 0);
}

のように使う。

期待してるぞ>>10 !頑張れ!
31デフォルトの名無しさん:03/07/20 21:58
class使って初心者に解りにくくしてるように見えるのは俺だけですか?
ソース見せろ、クラス使うなって(ry
33デフォルトの名無しさん:03/07/20 22:07
>>1
乙!
34デフォルトの名無しさん:03/07/20 22:09
>>30
すみません、初心者なのでもう少し分かりやすくお願いします。
すみません、初心者なのでもう少し分かりやすくお願いします。
すみません、初心者なのでもう少し分かりやすくお願いします。
すみません、初心者なのでもう少し分かりやすくお願いします。
すみません、初心者なのでもう少し分かりやすくお願いします。
すみません、初心者なのでもう少し分かりやすくお願いします。
すみません、初心者なのでもう少し分かりやすくお願いします。
すみません、初心者なのでもう少し分かりやすくお願いします。
すみません、初心者なのでもう少し分かりやすくお願いします。
すみません、初心者なのでもう少し分かりやすくお願いします。
すみません、初心者なのでもう少し分かりやすくお願いします。
すみません、初心者なのでもう少し分かりやすくお願いします。
すみません、初心者なのでもう少し分かりやすくお願いします。
すみません、初心者なのでもう少し分かりやすくお願いします。
すみません、初心者なのでもう少し分かりやすくお願いします。
すみません、初心者なのでもう少し分かりやすくお願いします。
3530:03/07/20 22:12
Dim p As System.Diagnostics.Process
'processIdというプロセスIDを持つプロセスを取得
p = System.Diagnostics.Process.GetProcessById(processId)
'プロセスを強制終了
p.Kill()

うまくいったら「うまくいきました!」とか報告すべきだよ。
36デフォルトの名無しさん :03/07/20 22:14
初心者に分かりやすく説明できないアホは死んでね。
.NETってVB6とかなり扱い方違ってそうだな
38デフォルトの名無しさん:03/07/20 22:21
貴方の脳が.NETの前で萎縮してるだけ>>37
39デフォルトの名無しさん:03/07/20 22:24
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
アンチVB厨荒らしまくり アンチVB厨荒らしまくり アンチVB厨荒らしまくり
40デフォルトの名無しさん:03/07/20 22:25
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
VB厨荒らしまくり VB厨荒らしまくり VB厨荒らしまくり
41デフォルトの名無しさん:03/07/20 22:26
ソース見せろ。それでもVB厨か?
ソース見せろ。それでもVB厨か?
ソース見せろ。それでもVB厨か?
ソース見せろ。それでもVB厨か?
ソース見せろ。それでもVB厨か?
ソース見せろ。それでもVB厨か?
ソース見せろ。それでもVB厨か?
ソース見せろ。それでもVB厨か?
ソース見せろ。それでもVB厨か?
42デフォルトの名無しさん:03/07/20 22:27
VBなんて仕事じゃ使われてないんだぜ(藁
http://pc2.2ch.net/test/read.cgi/tech/1058702281/l50
荒らしてるのはこのスレの1
荒れているところすみませんが
なんでVBスレってこんなに荒れているんですか?
コンプレックスの塊が沢山いるからですか?
>>43
荒らしているのはお前(ここの1)だな。
4630:03/07/20 22:34
>>10
人にものを聞いて理解できないからって、このザマか。ふざけるなよ。
4730:03/07/20 22:35
>>46
お前誰だよ。オレの真似するな。ふざけるなよ。
>>45=http://pc2.2ch.net/test/read.cgi/tech/1058702281/1
お前まえから思ってたけどキモイんだよ。
おれは2chにスレなんて立てたことはねえ。
>>48
落ち着け。ばれてないと思っているのはお前だけ。
>>49 ハァ?
おれが書き込んだのは>>43>>48だぜ?馬鹿じゃねえの?
>>50
証拠は?
5210:03/07/20 22:54
>>30

ごめんなさい。自分で調べて
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_CLOSE = &H10

ends = FindWindow("OWL_Window", vbNullString)
Call PostMessage(ends, WM_CLOSE, 0, 0)

等で解決しました。
ここはVB初心者が質問をするためのスレであり、
その他の討論はスレ違いなのでやめましょう。
>>50
辻本みてえな香具師だな。往生際が悪いよ!!
5510:03/07/20 22:58
言い忘れてた。

>>12>>30、ありがとうございました。
またウゼーあげ荒らしが出てきたな。全部
>>45=>>49=>>54=http://pc2.2ch.net/test/read.cgi/tech/1058702281/1
の仕業だろう。
>>56
お前しつこすぎ。
しかも今度は
http://pc2.2ch.net/test/read.cgi/tech/1058702281/を
荒らし始めただろ。
第一何時間も送れて重複スレ立てるのは明らかにルール違反だろ。
削除依頼だしてこいよ>>http://pc2.2ch.net/test/read.cgi/tech/1058702281/1
えっとすみません
Label上に現在時刻と
それにX分を加算したいものを表示させたいのですが
今現在以下のように表記したところ
Label1.Caption = Time
Label2.Caption = DateAdd("n", X, Time)
日付変更が起きると
Label2の表示が時間だけではなく
年からの表示(yyyy/mm/dd hh:nn:ss)になってしまうのですが
対処法はないでしょうか?
6059:03/07/21 01:52
すみません補足です
日付が変更されるというのは
現在の時間が
23:50:10とすると
Label2が10分以上(時刻が00:00:00以上になるとき)加算された
時刻で表示される場合
っということです。
説明がヘタクソでゴメン
ついでに初心者な質問だったらもっとゴメ
>>59

明示的に、Format() しようね。暗黙の変換を利用してると、いずれはまるよ。
6259:03/07/21 04:34
>>61
ありがとう
なんとか形になりました
format c: /q
>>63
ありがとう
なんとか形になりました
65デフォルトの名無しさん:03/07/22 00:44
>>63
VentureBusiness全滅
66デフォルトの名無しさん:03/07/22 00:45
テキストボックスの、現在のカーソル位置を取得するにはどうすればよいのでしょうか?
67デフォルトの名無しさん:03/07/22 00:54
Text1.SelStart
6866:03/07/22 01:05
>>67
あ、なるほど。カーソルの開始位置の指定だけじゃなくて、
位置の取得もできるんですね。落ち着いて考えればそうですな。
レスどうもでした。
69デフォルトの名無しさん:03/07/22 09:49
コレクションに追加した配列の一部の値を後から変更するには?

Dim a(1) As Long, b As New Collection
a(0) = 1
a(1) = 2
b.Add a
Debug.Print b(1)(0); b(1)(1) ' 1 2
b(1)(1) = 3
Debug.Print b(1)(0); b(1)(1) ' 1 3 となってほすぃ
70デフォルトの名無しさん:03/07/22 10:51
17桁の10進数計算をさせたいのですが、
Double型だと計算精度が悪いせいなのか、正しい結果が表示されません
Doubleより大きな桁数を格納できるような配列は無いでしょうか?
71_:03/07/22 11:02
通貨型
7370:03/07/22 11:05
>>70です。
Doubleの精度というよりは、Formatがよくないみたいです…
17桁以上のDoubleの精度を落とさずに、10進数で表示する方法は無いでしょうか?
アクティブなセルを含む行の色を変えたいんですが
どうやればよいのかわかりません。
7570:03/07/22 11:07
>>72
通貨型ではオーバーフローしてしまいます
>>74
誤爆か?
Rows(ActiveCell.Row).Interior.ColorIndex = 38
77_:03/07/22 11:15
>76
誤爆???すみません意味がよく・・・
79デフォルトの名無しさん:03/07/22 11:34
netを使える環境じゃないからまだVB5だが
最適化をnet程度まで行うコンパイラだけのフリーソフトは
無いものかのう?
あっても良さそう、ていうか出来ないわけないよね?
EXEを最適化でもいいけど。
80デフォルトの名無しさん:03/07/22 12:21
>>79
買ってきたほうが開発するコストより安いじゃないの。
mingwとか
82デフォルトの名無しさん:03/07/22 12:25
最適化云々言うんだったらvb使わない方が良い
勘違いさんいるようだが、VBもまともな最適化をしている。
8479:03/07/22 12:36
くそー
てめえらMSの肥やしだー
(´・ω・‘)
偽者登場(w
86デフォルトの名無しさん:03/07/22 14:08
>>70
配列使って6桁毎ぐらいで計算
8770:03/07/22 17:07
再び>>70です。
>>73は勘違いっぽいです。やっぱり最初に書いたようにDoubleの精度の問題でした…
もうあきらめるしかないんですかね

>>86
レスサンクス。
一度その方法も考えましたが、アルゴリズムがとてつもなく複雑に
なりそうだったので、断念してしまいました…
88デフォルトの名無しさん:03/07/22 17:09
みなさん、こんにちはVB初心者なので
くだらない質問かもしれませんが、宜しくお願いします

DBに接続する際に使用するコネクションを
多くのアプリで個々にOPEN,CLOSEしているため、
かなりパフォーマンスが悪く、負荷も高い状況です。

一つのコネクションを、各アプリで使い回すには
どうしたらよいでしょうか?

いろいろ探しましたのですが、MTSというキーワードを見つけることで精一杯でした。
Win2000ですが、関係ありますか?

m(__)m

※スレ違いだったらしいので、こちらに再書きこみします
>>88
どんな環境や規模でやってるのか書いてないのでなんとも・・・
うちとこORACLEだが

接続(SessionとDatabase)を持つActiveXを一個作る。
周りはそいつのオブジェクトを利用する。

ただし、SETでオブジェクトの参照を貰って使用すると、
実体を別アプリが持つためか処理が重い。

結果、Dynasetは共有が持ち、値のみ貰う造りになった(メンテ面倒)

言っておくが、セッションが1つってことは、1つのアプリが使用中だと周りは待ちになるぞ
ばか?
92ミコアイサ:03/07/22 17:58
FileSystemObjectを使おうと思うのですが、
これはWindows95では使えないのでしょうか。
また、NT、2000、XPなどでは、どうなのでしょうか。
9388:03/07/22 18:36
>>89
すいません
Win2000Server + SQL-Server2000のサーバに、
IIS5.0+ASPからのクライアント(Win2000Server)、
VB6.0からのクライアント(Win2000Server)が接続します。

>>90
Oraleでないので、試すことができませんが、
その都度、接続OPENに時間がかかるよりは
待ちが少し発生する程度の方が、いいのかもしれません
94デフォルトの名無しさん:03/07/22 21:10
質問です。If文のなかで、
If (Index > 10) And (Index Mod 10 <> 0) And (q_flg(Index - 11) = 0) Then
と、コードを書いたとします。
このとき、Indexの値は「9」だったとします。
最初の比較で、偽になるのでこのIf文は抜けるはずなんですが、
最後のところの、
(q_flg(Index - 11) = 0)
で、インデックスが有効範囲ではありません。
と出ます。
なぜでしょうか?
>>94
誰か知らんが勝手にコピペするな
>>94
Ifを分けて書けばいいわけで。
>>94
仕様。>>96 の言うとおり、分けて書けばよし。
>>92
WSHが入ってればOK。98以降(2000以降?)なら基本的に大丈夫。
95は標準では入ってなかった筈
99デフォルトの名無しさん:03/07/22 21:37
VB質問スレが荒れているので分かる方、教えて下さい。
VB6.0でレコードの更新のプログラムを組んだのですが、
SELECT FROM WHEREのWHEREで指定したフィールドのみ
更新できません。

これってどうして更新がされないのか
分かる人いませんか?
100直リン:03/07/22 21:38
>>99
質問の時は環境等を書いたほうがいいですよ。
102_:03/07/22 21:43
10399:03/07/22 21:46
環境は、VB6.0でWinXPです。

>>103
ミドルウェアは何で、どういうコードを書いてるの?
10599:03/07/22 21:58
すいません・・・
ミドルウェアが分かりません・・・・

コードは、
Set rs = db.OpenRecordset("テーブル")
SQL = "SELECT * FROM テーブル WHERE フィールド = " & "'" & name & "'"
Set rs = db.OpenRecordset(SQL, dbOpenDynaset)

  with rs
.edit
テキスト
.update

です。
>>105
SQL = "SELECT * FROM テーブル WHERE フィールド = " & "'" & name1 & "'"

で引っ張ってきたとして、

with rs
.edit
!name1 = 更新後の値1
!name2 = 更新後の値2
.update
end with

とやっても、name2は更新されてname1が更新されないってこと?
107250:03/07/23 02:03
最大値の値を求めたいのですが
以下だとa(10)の値が出力されてしまいます。
初心者なのでどこが間違っているか分かりませぬ。
どうかご教授いただきたいのですが
for i= 0 to 10
max = a(0)
If a(i) > max Then
max = a(i)





>>107
max=a(0)
for i=1 to 10
if a(i) > max then max = a(i)
next i
109250:03/07/23 02:15
>>108
ありがとうございます!!

おいVBども端っこ歩け
質問見るとホント初歩的な事ばっかだな・・・
だからVBが馬鹿にされるんだよ… _| ̄|○
VBでエクセルを開いて、複数列範囲選択し、選択した列すべて色を塗りたい
んですけど、下のコードだと1列目だけ色塗りされてしまってて
うまくいきません。
すみません教えてください。

grid_jcldisp.Col = 0
grid_jcldisp.ColSel = 9
grid_jcldisp.CellBackColor = vbButtonFace
11499:03/07/23 09:41
>>106
そうです。
どうしてなのか理由が分かりません。
列と行両方指定しろよ・・・
>>99
UPDATE文にしちまえ
117デフォルトの名無しさん:03/07/23 11:55
このスレ立てたのって、アハァを守りぬけとかなんとかいう
クソスレ立ててた自閉症児か?
11899:03/07/23 12:21
>>116
SELECT FROM を
UPDATE FROM ということですか?

やってみます。
119助けて〜@VBもままならない初心者:03/07/23 15:59
教えてください!
VBからアクティブにした状態のExcelのカレントフォルダのパスを取得したいのですが
どうすれば良いですか?

やりたいことは、VBで開いた状態のEXCELをVBで、マイドキュメンツに保存させたいのですが
機械によってDにマイドキュメンツがあるものや、OSも98とXPが
混じってたりで、一定の場所を記憶させることができません。。

うちの会社のEXCELも97とXPが動いており、
レジストリからの取得はレジストリの場所が違うのでダメでした。。

ここ2週間ほどがんばったのですが私の頭では分かりませんでした。。
分かる方すみませんが教えてくださいっ<(_ _)>
120助けて〜@VBもままならない初心者:03/07/23 16:05
すみません〜〜!!環境書くの忘れてました!!。。


開発してるパソコンは WIN_XP
VBは6です。。。
7月、試用期間って終ってるはずだよなぁ・・・・・・夏か
>>119
直接の回答ではないけど、SHGetFolderPath か何かで、マイドキュメントの位置を
取得すればいいだけじゃない?
vb房にとっては1年中なつなのさ
つぅか、マイドキュメントに保存したいのか任意のパスに保存したいのかどっちやねん
125デフォルトの名無しさん:03/07/23 18:50
プロジェクトグループでProject1からProject2のフォームなどを立ち上げたいときは
どうしたらいいのかな?
>>125
別実行ファイルなんで、Shell やら COM コンポーネント呼び出しやらを使えばOK。
127デフォルトの名無しさん:03/07/24 00:32
FormにWebBrowserコントロールを貼りつけているのですが、起動時に
WebBrowserコントロールがどこかのページを読み込もうとしてしまい、
時間を食って困っています。
読み込んだページは「ページが表示できません」となってしまい、
WebBrowser.locationURLは "http:///" となっていました。
locationURLプロパティを作成時に設定しようとしましたがプロパティ一覧には
locationURLがありませんでした。

そこで質問なのですが、起動時に about:blank を素早く表示させるには
どうしたらいいでしょうか?
環境はVB6.0+IE6.0、WinXPです。宜しくお願いします。
>>127
WebBrowser.locationURLにabout:blankを指定。
129デフォルトの名無しさん:03/07/24 01:08
>>128
Form_Load()に記述しましたが
コンパイル エラー:
引数の数が一致していません。または不正なプロパティを指定しています。

と言われてしまいました。
WebBrowser.Navigateでも読み込みにかなりの時間(指定しないのと同じだけの時間)
がかかってしまいました。
すみません、遅かったのはロード後にWebBrowser.Documentをいじくる
自前の処理でした _| ̄|○
131128:03/07/24 01:23
>>130
こちらこそごめん。
適当に答えたものの罪の意識にさいなまれて、自分でもあれこれ試してました(w
WebBrowser.Navigate "about:blank"で速攻表示されるので、
他の処理が原因ではないかと書こうとしたところだった。すまんね。
>>131
いえいえ…WebBrowser.Document.body.Style.innerHTMLに文字を指定するだけで
10秒近く時間を食われるとは思いませんでした。
この原因はWebProg板あたりで訊こうと思います。ありがとうございました。
133助かりました〜!!@VBもままならない初心者:03/07/24 08:45
>>122さん
ありがとうございます!
やってみます!すごい助かりました〜。。

>>124さん
文面がヘタクソでごめんなさい。。<(_ _)>
マイドキュメントの場所のパスが取得したかったです。。
134デフォルトの名無しさん:03/07/24 10:22
厨な質問ですいません。
実行中にSSTab上にコントロールを配置する方法を
教えて頂けませんか?
>>134
Containerを指定すると置けますが。
重複だゴラアア
こっちは初心者向け。あっちは中級者以上向け。
vbでエクセルのセルを複数選択して
背景色をつけたいのですがどうすれば・・・
139デフォルトの名無しさん:03/07/24 14:14
>>135
Containerを使う場合に、コントロールを置くTab(の番号)を指定したいのですが
上手く行きません(つД`)
どうかご教授お願いしますm(__)m
VBって値段はどのくらいしますか?

141デフォルトの名無しさん:03/07/24 14:57
MsgBoxのボタンのキャプションを任意の文字列に変えるには?
>>140
お店へGO☆

>>141
MsgBoxに似たFormを作るのほうがラクです。
143デフォルトの名無しさん:03/07/24 15:19
>>139
GotFocusイベントの中でためしたけど、
SSTab1.Tab = 0
Set Text1.Container = SSTab1
SSTab1.Tab = 1
Set Text2.Container = SSTab1
みたいな書き方でイケましたよ
144デフォルトの名無しさん:03/07/24 19:40
プロジェクトの参照設定からExcel8.0 Object Libraryの設定にチェックを入れて
プロジェクトを保存しても、次に立ち上げるときはまた、Excel8.0 Object Libraryの
チェックが消えていて。いちいち一回一回チェックいれなおさなくちゃならないのを防ぐのにはどうしたらよいですか?
145_:03/07/24 19:48
146デフォルトの名無しさん:03/07/24 19:51
最近pinkbbsに投稿されたバイナリ。(画像・動画)
http://homepage3.nifty.com/coco-nut/
147デフォルトの名無しさん:03/07/24 21:40
教えてください。
セルに日にちを打って、横のセルに年度(一年が4月〜翌年の3月という年度)を
表示させたいのですが・・・
たとえば、1999/4/1は、1999年度、1999/3/31は、1998年度という風に。
VBでも、エクセルでもどちらでも出来る方法を教えてください。
お願いします。
>>147
dateaddで3ヶ月引けば?
149デフォルトの名無しさん:03/07/25 03:29
仕事で先週独学にはじめてみたものの、夜中にテンパってます。(明朝提出)
ACCESSのMDBのフィールドを丸ごとADODCなんぞを使ってComboboxに吐き出させる方法はありますでしょうか。
ループさせて、ひとつづつ拾って、Additemするのが正解でしょうか?
お手数をおかけしますがご回答お願いします。
俺は AddItem 一本でやるのが好き
151150:03/07/25 04:13
一応こっちも

>ACCESSのMDBのフィールドを丸ごとADODCなんぞを使ってComboboxに吐き出させる方法はありますでしょうか。
http://www.google.com/search?q=datacombo&lr=lang_ja
152119@VBもままならない初心者:03/07/25 08:56
>>122さん
できました〜!
ありがとうございました〜!
すいません教えていただけませんか?いろいろと探したのですが、
みちからなかったもので・・・・。
VB6で通信制御系のアプリを書いています。

MsgBoxやCommonDialogを利用すると、ソフトウェア全体がロックしてしまい、
そのときに受信した信号から発生するイベントを取得することができない
ですよね。

MsgBoxのときは、新しいフォームに「OK」と「キャンセル」のボタンだけ作って、
そのボタンがクリックさせるまでLOOP(押されたら変数の変化を判断してLOOP
脱出)して、DoEventsしておけばいいと思うのですが、CommonDialogのときには
どうやって実現すればいいのか思慮しています。

どなたか、過去のこれを解決された方、またはこれらを解説しているサイト、
もしくはヒントだけでも結構ですので、お教えいただければと思っています。
どうかよろしくお願い致します。
>>153
EXEにしたときも止まりますか?
デバッグモードのときだけ止まった記憶があるんですが。
>>154
ガーーーーーン
そうなんだ!!!
早速実験してみます。ありがとうございました!!!!!
>>154
やってみました。タイマーで以下のようなイベントを発生させてみました。

Private Sub Command1_Click()
Timer1.Interval = 1000
Timer1.Enabled = True
reply = MsgBox("", vbInformation, "")
End Sub

Private Sub Timer1_Timer()
Me.Caption = "unko!"
End Sub

「開始」「完全コンパイル後に開始」では、ボタンをおしてもキャプションはいつまでたっても変わらず・・・
EXEにして実行したところ、見事Captionは変わりました!!
いやーこんなこと知らなかったなんてお恥ずかしい。
でも、丸一日かけて調べていたので助かりました。本当にありがとうございました。
一応、後進の人のために詳しく結果報告させていただきました。長文をお許しください。
157デフォルトの名無しさん:03/07/25 15:32
アメリカ東部時刻および日付をGETしたいのですが、
PCのシステム全体のタイムゾーンを変更せずに取得する方法はありますか?
日本時間から時差分を考慮するのも考えていますが、
日付変更が入った場合の処理を書くのが面倒で・・・

私VBAをみようみまねで書いている初心者です。
>>157
DateAdd関数はVBAでは使えないのかな?
>>158
使えますね
あとはサマータイムを考慮するかどうかでしょうかねぇ
>>160
現状の時刻であれば、東部時間を示すNTPにアクセスしにいくってのは
どうでしょうね。VBAではできないかな・・・
VBでエクセル上のセルをクリックすると
クリックしたセルを含む1ラインに背景色を付けるコードを作成したんですが
キーボードのカーソルでセルを移動すると消えてしまいます。
どうしたら・・・
>>162
どんなコードにしたのでしょうか・・・
>163
こんなんです
Col = 0
ColSel = 9
CellBackColor = vbActiveTitleBar
CellForeColor = vbWhite
165157:03/07/25 17:12
いろいろと情報ありがとうございます。
DateAddで目的は達成できました。
当面サマータイム固定でやることにします。
166デフォルトの名無しさん:03/07/25 17:41
テキストファイルの書式付データを取り込むとき
どんな関数を使ったら良いのでしょうか?
VBでもfscanfみたいな関数あるのでしょうか?
167デフォルトの名無しさん:03/07/25 20:29
>>166
無いと困ります?
168_:03/07/25 20:34
>>166
書式のフォーマットさえきちんとしておけば、区切り文字でsplitかけたり、
いろいろとできるとおもいますよん
170v(・∀-)b:03/07/26 12:12
バカばっか
171(*´д`*):03/07/26 12:13
バカですいません
メッセージボックスに入力がない場合、
一定の時間で、そのメッセージボックスを閉じることは
できまつか??
>>172
MsgBoxに似たFormを作るのほうがラクです。
>>173
お、ありがとうございます。
偽msgbox表示→LoopでDoEvents→偽msgboxに入力がある→変数を変化させる→
Loop内で変数の変化を認識する→偽msgboxを閉じる→loopを抜ける

または
偽msgbox表示→LoopでDoEvents→偽msgboxに入力がない→タイマー発生で変数を変化させる→
Loop内で変数の変化を認識する→偽msgboxを閉じる→loopを抜ける

という感じでいいのでしょうか?
プロシージャ内でmsgboxのTrueかFalseを受け取りたいので。
SendKeysはつかわんほうがいいですかね。

ん?vbmodalにしておけば、Loopで判断しなくてもいいのかな??
>>173
やってみました
Private Sub Command1_Click()
   boolMsgBox = False
   Form2.Show vbModal
End Sub

Private Sub Command1_Click()
   Form1.boolMsgBox = True
   CloseWindow
End Sub
Private Sub Command2_Click()
   CloseWindow
End Sub
Private Sub CloseWindow()
   Me.Hide
   Unload Me
End Sub
Private Sub Timer1_Timer()
   CloseWindow
End Sub

上記でいけました。意外と簡単でした。どもありがとうございました。
176デフォルトの名無しさん:03/07/26 18:18
外部のプログラムを起動する時はSystem関数で起動できるようなのですが、
コマンドプロンプトから実行する「dir」や「tree」等のコマンドを
VBから起動させるにはどのようにすれば良いのでしょうか?
dir > hoge.txt
とやりたいのですが。
177デフォルトの名無しさん:03/07/26 18:21
内部コマンドでもできます
え?
その場合、System(PATH)
のPATHはどのように書けばよろしいですか?
「dir」だけだと実行時エラーになってしまうようなのですが。
>>178
スマン、確かDOSとunixでそのコマンドは使った記憶があったんだけど(しかもC)。
vbとWin32APIに本当にそのコマンドある?
system(PATH)
じゃなくて
system(command)
の方じゃない?
あ、ごめんなさい。(UnixのC出身者ってバレタ)

Shell ("C:\WINDOWS\system32\calc.exe")

おっしゃるとおりsystemじゃなくてShellです。
じゃぁ
Shell("command.com /c dir > hoge.txt")
だな・・・
おぉ、できた。ありがとうございます。
# これはどちらかと言うとVBよりDOSよりの話だったのかしらん?

command promptから
command /?
でcommand.comコマンド自体のオプションも確認できました。

その他にオプションやコマンドの詳細の確認方法を、
もしご存知でしたら教えてください。
>>182

%COMSPEC% の方がいいかも。
>>184
Shell (Environ("COMSPEC") & " /c dir > c:\hoge.txt")
すか?
186デフォルトの名無しさん:03/07/27 08:38
? asc("山")
-29102
コードをLongで扱いたいのです。つまり36434を得たいのですが。

まさかこれはないでしょうね?
? val("&H" & hex(asc("山")) & "#")
36434

なにか良い方法を教えて。
>>186
? asc("山") + 65536
? asc("山") and 65535
なぜ負数になるのかが解ってればなんとでもなる。
188デフォルトの名無しさん:03/07/28 01:51
プログラムが終了する直前に動作する命令を組み込むにはどうすればいいでしょうか?
VB勉強するのに
どんな本が良いの・・・・
て、こんな質問はだめなの?
終了する直前のイベントに書く。
UnloadかTerminateあたりでないの。
191188:03/07/28 02:18
>>190
フォームの閉じるボタン(×)を押して終了した時は無理でしょうか?
>>189
個人的に持ってて役に立ってるのは
ISBN4-7741-1166-X
です。アルゴリズムの本も知っておくと良いかと思います。
>>191
??試してみました?

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
MsgBox "QueryUnload"
End Sub

Private Sub Form_Terminate()
MsgBox "Terminate"
End Sub

Private Sub Form_Unload(Cancel As Integer)
MsgBox "Unload"
End Sub
194188:03/07/28 02:46
>>193
おぉ〜ちゃんと動きました
ありがとうございます m(_ _)m
195デフォルトの名無しさん:03/07/28 03:23
これから覚えるならVBよりもVB.netのほうがいいんですか?
.netじゃないVBって今から覚えても無駄になりますかね?
>>195
無駄です。
Visual Basic
それは生きていく上では全く役に立たない無駄な知識。
かのアイザック・アシモクはこう言いました。
「人間は無用な知識の数が増えることで快感を感じることができる唯一の動物である」
vb自体覚えても無駄ですがナニカ?
199186:03/07/28 05:25
>>187
> ? asc("山") and 65535
> なぜ負数になるのかが解ってればなんとでもなる。

ありがとう。 

 それにしても不思議だ。
 &h0000ffff は負で
 &h0001ffffは正なのだ



>>198
なんで無駄なんだ?
ほんとに無駄だったらVBスレがこんなにいくつも栄えてるわけないだろ。
>>199

VBの整数型はすべて「符号あり」で、符号あり整数は、最上位ビットが立っているときに
負の数値として扱われるから。

Asc()関数は、Integer 型の戻り値なので、こうなっちゃうんだね。
202デフォルトの名無しさん:03/07/28 10:27
>>200
198はVBすらできない厨だから放置
203_:03/07/28 10:30
ActiveX.EXEからよびだし元の変数は利用できるの?
これができればすげぇ便利なんだけど・・・・
205デフォルトの名無しさん:03/07/28 16:52
form1.controls.add "vb.TextBox", "txtadd1"
のようにして実行中に動的にコントロールを追加しているのですが、
これらをコントロール配列として使いたい時はどのようにすればよいで
しょうか?また、最初から配置された、配列になっているコントロールがあって、
それと同じものを次の添え字を与えて新しく追加する。みたいな事はできるの
でしょうか?
(?×?行列と指定されたら、そのようにテキストボックスを配置、表示する
プログラムを作ろうとしています。)
>>205
やっつけソース
Dim i As Integer
Dim NewTxt() As Object
ReDim NewTxt(0 To 9)
For i = 0 To 9 Step 1
Set NewTxt(i) = Form1.Controls.Add("vb.TextBox", "txtadd" & i)
NewTxt(i).Visible = True
Next i
>>204
できる。
208デフォルトの名無しさん:03/07/28 18:37
>>207
お願いです、教えてくださいませ。
209デフォルトの名無しさん:03/07/28 18:37
>>206
即レス感謝です。
210s:03/07/28 18:38
☆無修正画像&サンプルムービーをどうぞ!!☆
http://yahooo.s2.x-beat.com/linkv/linkv.html
>>208
ActiveX EXEに呼び出し元の変数(プロパティ)があるオブジェクトを渡す。
ActiveX EXEからイベントを発生させて間接的に変数を操作する方法もある。
212デフォルトの名無しさん:03/07/28 18:59
>>211
レスどうも!!、2つ目の方法はWITH EVENTとかを使ってためした
のですが、ACTIVEX.EXEをたくさん呼ぶので断念しました。
そこで、できれば上の方法をもう少し詳しく教えていただけないでしょう
か?というかVBでオブジェクトって渡せるんですか?
213デフォルトの名無しさん:03/07/28 20:20
テキストボックスの文字間隔は調整できますか?
すいませんが教えてください。
マイクロソフトが提供している暗号化ロジックにcapicomというのがあるのですが、
開発環境ではしっかりと入力した文字が暗号化されたのですが、本番環境にて
下のようなエラーがでました。
CAPICOM_E_NOT_SUPPORTED
The requested operation is not supported in the current platform.
見るとこの環境では動かないよーとい感じの意味だと思うのですが、
開発環境と同じWindows NT4.0サーバ(sp6a)で動作しているので、何が足りない
のかさっぱりわかりません。
今まで環境面で調べた事はIISの設定とかランタイム関係などを見ました。
質問の内容がスレ違いかもしれないですが、ソースはVBスクリプトなので
こちらで質問させていただきました。
何か、散々調べているのですが、あまり使っている人がいないらしく、どなたか
過去にcapicomを使った方などいれば、何かアドバイスをー
215名無し@沢村:03/07/28 20:50
おまいらよ、VBでTVウェアをつくらないか?

http://pc2.2ch.net/test/read.cgi/tech/1059262203/l50
216デフォルトの名無しさん:03/07/28 21:52
0,1
2,3
5,6
・・
このような2列複数行のテキストファイルの2列目の各行の要素を一つ一つ
配列に格納したいのですがstrArray(1)に
2列目全部の値が格納されてしまいます(strArray(0)には1列目全部).
超の付く初心者ですが
どうかご教授頂けないでしょうか?

Do Until EOF(intFileNo)
'ファイルから1行読み込む
Line Input #intFileNo, strRecBuff
strArray = Split(strRecBuff, ",")
For i = 0 To UBound(strArray)

Next i
217scooter:03/07/28 22:00
少し上のほうでの質問とかぶるのですが、どなたかわかる方教えてください。
VB6.0でactiveXDLLを作りました。
他のexeでそのDLLを呼び出して使いたいのですが、一応DLLを呼び出すところまでは行きましたが、
DLLから引数をとれてなかったんです。
思いつく限り様々な方法を試してみたのですが、どうしてもexeのほうにDLLで使用していた変数がわたりません。
どなたか教えてください。
218204:03/07/28 22:08
>>204
>>211
補足です。やりたい事は、オブジェクトを渡して、それを変更した物が返っ
てくる。みたいな事じゃなくて、Javaみたいにマルチスレッドなんだけど
オオモトの変数を普通に扱える。みたい感じの事です。
(マルチスレッドにしてそれぞれが計算終わらせたら結果を呼び元の変数
に入れたいんです)※イベントで呼び出し元の変数をいじるのはNGという
ことで、やっぱ無理なんでしょうか?
219デフォルトの名無しさん:03/07/28 22:13
1文字の入力エリアがあり、平仮名しか入力できないようにしてあります。
ここに濁点や゚のついている文字を入力された際に、自動で濁点をとるようにしたい
のですが、良いやり方ありますか?

一文字ずつ、「だ」が入力された場合は「た」に変換、と
長い長いSelectCase書かないといけないのでしょうか。
220デフォルトの名無しさん:03/07/28 22:21
パソコンにワード97とワードXPが共存してるんですが、vbからワードを開いたときに
ワードXPのほうが開かれてしまいます。
ワード97のほうを開くのは無理なんでしょうか?
>>217
馬鹿も休み休み言ってくれ
>>219
"だぢづでど"という文字列つくってmidで回して判定して
"たちつてと"という文字列のインデックスと入れ替えたら?
>>220
フルパス指定しても?
>216
なんだそのソース。寝言は寝て言え
225220:03/07/28 22:42
>>223さん
フルパス指定すれば97が動くのですが、できればフルパス指定しないで97を開きたいんですよ。
なんとかなりませんか・・?お願いします。
>>225
簡単じゃないか。ワードXPを消せばいい。
227デフォルト名無しさん:03/07/29 00:00
関数の質問があります。
Trimなどの関数で$がついてTrim$と表現されてたりしますが、$をつけることによって
つけない場合と何が違うのでしょうか?
>227
$を付けると戻り値がStringになる。そうじゃない時はVariant。
229ton:03/07/29 00:50
デスクトップ上の画面を取得するにはどうすればいいのでしょうか?
リモート操作できるものを作ろうと思っているんですが
その第一弾としてデスクトップ上の画面を描画(画像)でなく
動的?なものを取得したいのですがどうすればよいのでしょうか?
わかるかた助言ください
>>229
定期的に画面を撮って、前回取得した画像との相違点を探せばいいだけでは。
デスクトップごとかソフト別かはお好きに。
231VBSアラシ:03/07/29 01:20
>>229
デスクトップ画面のDC(デバイスコンテキスト)を取得
PictureBoxのDCにコピーすればVBから画像を保存できるだろう
まずWin32APIの描画系の関数の知識のお勉強をすること(仕組みも少しはな)
DCとは何か?
よ〜くなwww
いちいちコード示さんよ、これぐらいで、描画は基本!!

VB初心者というか、プログラミング自体したことも無く、
それで手を出そうと思っているので、どんなものかも分かっていないのですが、
ひとつ聞かせてください。
ここに回答者として書き込んでいるような皆さんは、
自分がまだ右も左も分からなかった頃、
何から始めたというか、何を参考にして勉強をしたのでしょうか。
参考書、web上の解説ページ等でしょうか。
上記の環境のみでイケるのなら、
自分にも努力次第で勉強できる気がしないでも無いのですが。
233VBSアラシ:03/07/29 01:26
補足だ
正確にはDCのハンドルを取得する
formやPictureBoxではhdcプロパティがそうだ
が、変数に取り込んおいてはイケナイ、いつ変動するか不定だからだ
使うときに直接取得する

言うまでもなく、VB作成以外のwindowのDCはもちろんAPI関数で取得。
>>232
自分の場合は
・本を買う
・色々作ってみる
の繰り返しだった。手垢できたなくなるまで読み潰そう。
235VBSアラシ:03/07/29 01:33
>>232
かつてマイコンBASICマガジンという雑誌があった
読者投稿のソースコードをそのまま乗せるものだ
近年まであったようだが、いまや簡単にDLできる時代では考えられらいが、
みな、昔は他人のプログラムコードをその雑誌から手で打ち込んだ
もちろん、作者の説明などもあるし、どれも素人の短いものであるから、
実に勉強になった
とりあえず、完成されたコードを打ち込む、自分で、、改良してみる
これだなw
>>234
了解しますた。
とりあえず明日VBの参考書を探してきます。
>>236

その前に、ヘルプは読んだの?
238227:03/07/29 06:56
>>228
寝てました。
どうもありがとうございました。ぺこり。
239219:03/07/29 07:05
>>222
レスありがとうです。
やっぱ、そんなやり方しかないんですか?
まいったな…
240デフォルトの名無しさん:03/07/29 09:25
 30レベルくらいの深い階層のサブルーチンコールから、いっきに呼び出しもとの
メインに抜けたいのですが、VBではどのようにするのでしょうか?
 最深部でエラーが発生するのですが、元に戻るのが大変でなにか良い方法が
ないか探しています。
>>240
(実行時)エラーが発生したら一気に戻るが?
>>240
絵に描いたようなクソ設計だな (・∀・;)
まさかGoSubとか使ってねぇだろうな・・・
>>240
その前にクラス化とか考えれ。
>>242
例外とか実行時エラーって知らないの?
エラーが発生したら呼び出しツリーをさかのぼって
トラップしている所まで帰るのは当たり前なんだけど。
>>245
242だが、俺が言ってるのはそんなことじゃねーよw

>30レベルくらいの深い階層

これ、まともな設計してたらありえないからw
>>246
うむ。言いたいことは解る。

でも、既にコードがあってそれに対する解決策もある。
なのにお前の答えは「クソ設計なので書き直せ」なんだな。
>>247
「書き直せ」なんて一言も言ってないっつーの。
クソ設計だな と指摘しただけだよ。
それでどうするかは知らん。
別に再帰とかなら30階層ぐらいいくだろ。
>>248
>それでどうするかは知らん。
じゃあ出てくんなよ。
>>249
再帰ならね。
>>250
(゚д゚)ハァ?
253204:03/07/29 14:59
>>206
教わった通りためしてみたのですが、370個ぐらい表示するとエラー
が出て止まってしまいます。これはメモリとか、コレクションが保持可能
な個数とかそういうので無理なのですか?
>>253
370個表示できたことのほうが驚きだ
255204:03/07/29 15:13
>>254
そうなんですか?そうすると、どうすればやりたい事は実現できるので
しょうか?
256デフォルトの名無しさん:03/07/29 15:14
☆★ 新商品 ゾク・ゾク 入荷!! 急げ〜!! ☆★☆
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★ 送料激安!  スピード発送!  商品豊富!   
★☆      http://www.get-dvd.com        
☆★ 激安DVDショップ 「GETDVDドットコム」 
★☆      http://www.get-dvd.com        
☆★ 今すぐアクセス Let’s Go!   急げ! 
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
>>255
どういう画面デザインにしたら370個も必要なのかのほうが知りたいぞw
やりたいことはよく分からんが、多分グリッドコントロールとか
同じコントロールの使いまわしとかで回避できるんじゃないか?
258204:03/07/29 15:39
>>257
一応書いた(かな)かもしれないんですけど、行列の計算をするプログラム
を作っています。しかし、しょうがないのでグリッドコントロールを使う方向
で考えてみます
259_:03/07/29 15:42
260デフォルトの名無しさん:03/07/29 16:26
タブ区切りのテキストファイルをAccessデータベースにそっくりそのまま追加したい
一行一行読んで追加すりゃできるのはわかるがもっと効率の良い方法あれば教えれ
>>260
タブをカンマに変えてCSVで読み込む・・・ってタブ区切り対応してないの?Access
262さとこ:03/07/29 17:06
関連付けられたアプリケーションでファイルを開くには
WindowsAPIのShellExecuteを使いますよね?
VB6だと
Call ShellExecute(0, "Open", ファイル名, "", "", 1)
こんな感じでも動くのですが、
VB.netだと動かないのですよ!
昨日からものすごく困ってます。
どうしたらよいですか?
是非、教えてください!
>>262
VB.NETスレで聞きましょうね
264さとこ:03/07/29 17:10
すみませんでした^^;
10みたいな質問でスマンが、
サービス実行中のアプリを強制終了さすにはどうすればいいんだ?
net stopじゃなくてプログラムの強制終了。
266デフォルトの名無しさん:03/07/29 23:53
listboxの内容をテキストファイルに出力する方法
を教えて頂きたいのですが。
超初心者ですいません
>>266
たとえばテキストボックスに出すなら
Dim i As Long
Text1.Text = ""
For i = 0 To List1.ListCount - 1
Text1.Text = Text1.Text & List1.List(i) & vbCrLf
Next i

テキストファイルに出すのは改造しとくれ。
iってintの略かと思ってた
>>268
indexのiでは?
>>268-269
iteration 繰り返し, 反復.
80へぇ獲得。
FOTRANでの整数として使える最初の文字
273デフォルトの名無しさん:03/07/30 04:03
すみませんが、以下の中に、WindowsAPIとVBが引数としてやりとりできないものはあるでしょうか?

1.文字列と他のデータ型(Integerなど)がメンバに混在する構造体
2.メンバが文字列のみの構造体
3.(1.)の構造体の配列
4.(2.)の構造体の配列

当方、VB6で、メンバに数値と文字列の混在する構造体の配列を引数として取る
DLLを操作しなければならなくなったのです。
できるだろうと思って調べ始めたのですが、いろいろ調べてもわからず、
もしかしたらできないのではと思い始めました。とくにAPIで文字列を受け渡すときに
自動的に行われる Ascii <--> Unicode の変換が悪影響を与えそうです。

以下のサイトには関連情報が載っていますが、これらから結論を出すことが私には
できませんでした。

http://www.microsoft.com/japan/developer/library/VBCon98/vbconpassinguserdefinedtypestodllprocedure.htm
http://www02.so-net.ne.jp/~handa/deadend/c_vb.html

どうかどなたか、可能か不可能か、もし可能ならそのやり方を教えていただけないでしょうか?
実は、仕事が差し迫って、大変急いでおります。恐縮ですがどうかお願いいたします。
274_:03/07/30 04:39
>>273
そこまで情報を集めておきながら、何故・・・
あとはテストコード作って試すだけでしょう?
276273:03/07/30 07:23
>>273
確かにそのとおりで、すでに何度もテストコードを書いております。
しかしどうしてもうまくいかないのです。
実はデスマーチの最中で、非常に疲労していて、普段ならしないような間違いを
たくさんしております。自分ではもう、何が正しいのか、見極められなく
なってしまったのです。

今日の午後までに結果が出なければ、VB.NETを使わなければならないのです。
.NETにはサンプルコードが用意されているのですが、私は今まで触れたことも
ないので、できるならVB6で解決したいのですが…。

どうかよろしくお願いします。
277273:03/07/30 07:24
上の >>273>>275 の誤りです。ああもう。
278273:03/07/30 08:03
補足しますと、
http://www.microsoft.com/japan/developer/library/VBCon98/vbconpassinguserdefinedtypestodllprocedure.htm
には「ユーザー定義型を受け取る DLL プロシージャのほとんどは、ユーザー定義型に文字列データが
含まれていないことを前提としています。」と書いてありますし、他のサイトでも、
文字列型を含む構造体の配列を扱っているのを見つけられなかったのです。
もしかして、私はVB6では原理的にできないことをやろうとしているのではないか?
その不安がどんどん大きくなっているのです。

どうかどなたか、可能か不可能か、はっきりさせていただける方の登場を
痛切に希望いたします。
279_:03/07/30 08:07
280_:03/07/30 08:10
文字列のポインタをStrPtrで取得してLong型変数に入れるとか
文字列をByte型配列に入れるとか。
固定長文字列じゃだめなんだろうか。
>>278

可能か不可能かで言えば、可能。泥臭いこと(Byte型の配列にとって、メモリコピーみたいな)
をする必要が出てくるかもしれないけど。

>>273
文字列データが含まれる構造体でもなんでも所詮バイトデータの
並びなんだからDLLを作っているのならどんなデータでも処理できる。
MSDNライブラリを見てどういうデータ構造になっているか調べろ。

既存のDLLで引数の方が決まっているのなら呼び出し方法が
間違っているのであろう。その間違っているコードを晒せ。
285デフォルトの名無しさん:03/07/30 09:41
>>276
その状況を改善するか、会社辞めるのが最善策とおもわれ
286_:03/07/30 09:43
287デフォルトの名無しさん:03/07/30 10:17
VBのプロシージャについてお伺いします。
二次元配列を渡したいのですが、エラーが出ます。
VBでは関数の引数で配列を使う場合、
アドレス渡しですか、値渡しですか?
宜しくお願いします。

dim cmb_data(2,10) as string
call load_data(cmb_data(0,0))

sub load_data(paramarray cmb_data())
'二次元配列にデータを格納
end sub
288273:03/07/30 10:18
実際のコードです。
関数名などは変えてあります。


関数名GetAllUserList (char *year, int *cnt, S_USER *user[])


■引数
IN : char *year   年度文字列(nullを代入すると、今年のものが出る。)
OUT : int *cnt   全ユーザ数
OUT : S_USER *user[]全ユーザ情報

■備考
ユーザ情報構造体
typedef struct {// ユーザ情報
  char cUser[256];// ユーザ名
} S_USER;
289273:03/07/30 10:19
----------------------------------------------------------------------
'全ユーザ情報取得処理
Public Declare Function GetAllUserList Lib "company.dll" _
(ByVal year As String, Count As Integer, ByVal User As Long) As Long

----------------------------------------------------------------------
Public Function GetAllUsers() As String
  Dim intCount As Integer
  Dim lngPointer As Long
  Dim strBuffer As String
  strBuffer = String(65535, vbNullChar)
  lngPointer = strPtr(strBuffer)
  '上の行をコメントアウトすると、
  '"0x10004e69"の命令が、"0x00000000"のメモリを参照しました。メモリが"written"に
  'なることはできませんでした。

  'というエラーになります。
  'つまり、このapiは、構造体配列を参照渡ししているのではなく、
  'VBが領域確保した場所に、配列を書き込んでくるのだと思います。

290273:03/07/30 10:20
  lngRetrun = GetAllUserList(vbNullString, intCount, lngPointer)
  'APIを呼び出しています。

  Dim strUsers As String
  strUsers = StrConv(strBuffer, vbUnicode)
  '構造体の中身はcharの配列が一個だけですから、固定長文字列の配列とみなしてもいいと
  '思いました。そこで、UNICODEに変換しました。
  'データを正確に切り出すことは、とりあえず後回しにしようと思いました。
  GetAllUsers = strUsers
End Function


これを実行すると、「リ・」などと表示されるだけで、ぜんぜんデータが返ってきません。
90名の登録があるはずなのに。
メモリをダンプしてみましたが、256*90バイト以上消費されるかと思ったら、
107バイトし書き込まれませんでした。おかしい…。
291273:03/07/30 10:24
今し方、新しい話がきました。
APIの側は、領域確保は自分でやっていて、VBが領域確保しなくても
エラーは出ないはず、と言ってきました。
だけどエラーが出るんです。

以上です。職場からは書き込めないので、携帯を介してアクセスしてます。
あまり高速で応答できません。すみません。
>>291
ついでに動かないとか言うふざけた症状も伝えればどうだ?
>>287

参照渡しで問題ないはず。

>>288

String ではなく、Byte 配列を使うのが基本

>>289

C の int は VB では Long 位置がずれてるっぽい。

>>291

C の方で確保しているのなら、Long を ByRef で渡せば、アドレスが変数に
設定されるんじゃなかったけかな。
寝るんで、あと気をつける点をば。

・確か、構造体の中の文字列には、ANSI → Unicode 変換がかからなかったはず。
英数字だけならいいけど、2バイトが入るなら、明示的な変換を忘れずに。

・VBの配列は、順に並ぶとは限らない。配列のアドレス位置をずらしながら、
RtlMoveMemory() でとっていくようにする

・C の配列と VB の配列はオリジンの違いによって数が異なるので注意。
ex. char[256] → byte(255)

・C の関数に、返値がないけど、その点は大丈夫? ビット数の違いに気をつけること

・当然、__cdecl は呼び出せないんで、__stdcall にしてもらうこと

そんなものかな。頑張ってね。
295287:03/07/30 10:58
>>293 様
レス有難うございます。m(__)m

先程のプロシージャ内で、配列に値を代入しようとしたいのですが
”配列の次元が一致していません”とのエラーが出ます。

VBの場合、参照渡しの配列に値を代入するには
記号、宣言等必要ですか?

cmb_data(clmloop - 1, arrayloop) = Cells(rowloop, clmloop).Value
296273:03/07/30 10:59
わたしが参考にした>>273のサイトではByValでLongを渡していたようだったので、
私もそうしたのです。
ByRefに変え、lngPointer = StrPtr(strBuffer)をコメントアウトすると、
"0x10004e3d"の命令が"0x11f7bdd8"のメモリを参照しました。
メモリが"written"になることはできませんでした。

というエラーになります。longの変数自体が存在しているメモリに、
構造体配列を書き込もうとしているように見えるんです。

ちなみにこのdll、ほかの部門(VB.NETを使っている)では動いているそうです。
297_:03/07/30 11:12
298_:03/07/30 11:15
>>296

参考にしたサイトうんぬんは、あんまり関係ない。まずは、C の DLL の仕様を
確認することだね。

VB 側でメモリを確保する必要があるのなら、大きなバイト配列を作って、その先頭
要素のアドレスを渡すようにする。

VB.NET で動いてるんなら、ソース見せてもらえばいいじゃん。
>C の DLL の仕様を
C の DLL の仕様を
C の DLL の仕様を
C の DLL の仕様を
C の DLL の仕様を
C の DLL の仕様を
C の DLL の仕様を
C の DLL の仕様を
日本語が分からない奴が来たのか?
相変わらずVBスレには厨がよく来る。
302273:03/07/30 12:16
すみません。ちょっと書き込む時間が取れませんでした。
dllの作成者側からは、構造体配列の参照渡しといわれているのですが、
実際は、
・declare部でポインタをByRefで宣言すると、メモリ書き込みエラーになる。
byValならエラーは出ない。
・ByValでも、あらかじめ領域確保したアドレスを納めたポインタをdllに渡さないと
 書き込みエラーになる。
という奇妙な状態なのです。


.NETのソースはもらったのですが、マーシャリングという私の知らない概念を
使っていて、見ても意味がよくわからないのです。
もっとも、VB6でダメなら、.NETを使わざるを得なくなりますが。

厨房で申し訳ないです。
>>302
言葉じゃなくCの宣言をそのままアップしてくれと。
304273:03/07/30 12:22
Cのソースはもらっておりません。
もらっているのは>>288の仕様書だけです。
Cソースをうちの会社がもらえるかどうかはわかりません。
すみません。
>言葉じゃなくCの宣言をそのままアップしてくれと。

>関数名GetAllUserList (char *year, int *cnt, S_USER *user[])

(;´Д`)
まぁ、答えを言ってしまうと_cdeclだったりな。
ヘッダファイルくらいはもらえるんじゃない?
ヘッダフィルがなけりゃC言語から使えないし。
308273:03/07/30 12:34
ヘッダファイルはもらっていました。すみません。

int __stdcall GetAllUserList(char *year,
                int *cnt,
                S_USER *user[]);
該当部分を抜き出してみました。
仕様書とあまり変わらないと思います。

知人のノートPCを携帯で接続しています。書き込みが遅れるのをご容赦ください。
>>302

#まだ寝てなかったり。

あのね。C では、配列は参照でしか渡せないのよ。だから、ポイントになるのは、
参照渡しかどうかではなくて、メモリの確保をどっちでやってるか。

現象から見ると、メモリの確保は呼び出し側でやる必要があるみたいね。その手の
関数だと、最初に NULL を渡すと大きさを返してくれたりするんだけど、そういう機能は
ないのかな?

なら、何度も書いてるけど、Byte 配列でわたしちゃうのがいいと思うよ。

.NET では、その辺はマーシャリングが必須になる。で、ソースを見せてもらえば、
正しい呼び出し方がわかるんだけど・・・

>>305

返値の指定がないから、int か・・・

>>306

それに関しては、VB.NET のソースを見れば一発だわな。
>>308
ポインタの配列って受け取りようあるんかいなと。
> Public Declare Function GetAllUserList Lib "company.dll" _
> (ByVal year As String, Count As Integer, ByVal User As Long) As Long
Count As IntegerじゃなくてCount As Longで、

> APIの側は、領域確保は自分でやっていて、VBが領域確保しなくても
> エラーは出ないはず、と言ってきました。
データのポインタがUserに帰ると思われるから、
ByVal User As LongじゃなくてByRef User As Long(ByRefキーワードは省略可)で

帰ってきたデータを操作する場合は
Userに帰ってきたポインタから指し示されるデータを
CopyMemoryとかで適切なデータ型にコピーするんじゃないの?
312_:03/07/30 12:46
>>311
>ByVal User As Long

帰ってくんの?User。
314273:03/07/30 12:48
__cdeclではなく、__stdcallのようです。
恥ずかしながら意味はわかりませんが。
ヘッダファイルと、.NETのソースにそのワードがありますので。

しかし、こちらで領域確保するようにできているとしても、
256 * 90 バイトの書き込みを期待しているのに、
たった107バイトしか書き込まれない。しかも中身はゴミ。

ヘタレな私にはどうしようもない感じになってきました。
ああ、もうすぐ締め切りの時間です。どうしよう…。
.NETでのソースを出せば詳しい人が変換してくれるかもしれない。
316273:03/07/30 12:52
宣言部でポインタをbyRefにするとメモリ書き込みエラーになってしまうんです。
>>302にも書きましたが。

int と long は問題ないと思います。
関数の返値はエラーレベルなのですが、これは正常に取得できています。
cntはユーザ数なのですが、これも正解である90が取得できてます。
317273:03/07/30 12:55
コンピュータのやることですから、不思議なことは何もないはずで、
ただヘタレな私が見落としている点があるだけのはずなんです。

なにが起こっているのか、何か思いつかれた方はいらっしゃいませんか?
>何が起こっているのか

悲しいVB厨のAPI奮闘記
またアンチVB厨が紛れ込みやがった。うぜー。
*a[]

配列の先頭を指すポインタ -配列要素1(ポインタ)   -構造体
                    -配列要素2(ポインタ)   -構造体
                    -配列要素3(ポインタ)   -構造体
                    -配列要素4(ポインタ)   -構造体
                    -配列要素5(ポインタ)   -構造体
                    -配列要素6(ポインタ)   -構造体
                    -配列要素7(ポインタ)   -構造体
                    -配列要素8(ポインタ)   -構造体
                    -配列要素9(ポインタ)   -構造体

無理だわ。無理。
>>320 無理な理由が無い。自己満足は止めなさい。アンチVB厨か?
ポインタ配列ったって、たかがメモリのアドレスを指してる
変数の配列に過ぎないわけだが。
>>321
では、建設的な解決方法をお願いします。
>>323 それを今やっているんだろ。意味の無いレスでじゃまするのは止めろ。
325_:03/07/30 13:14
>>324
出来るなら1レスで済む話じゃないですか?
はいはい、こんな煽りに反応する暇あったら回答してあげて下さいよ(藁

と、言うか同じ仕様のDLL書いてそれをどうやれば読めるのか実験。
それで誰が悪いのか確かめた方が早くない?
>>316
>宣言部でポインタをbyRefにするとメモリ書き込みエラーになってしまうんです。

理屈どおりだとByRefでしょ。この場合。
それがなぜエラーになるのかを考えず、対症療法で
ごまかそうとするから、いつまでたってもうまくいかないんじゃないの?
>>326
仕様が不確定なんだから1レスじゃすんでないの。
煽りと認めるのはいいが、煽りをするくらいならちゃんと回答しろ。
>>328
インターフェースと、「メモリは向こうで確保されている」。
実験するには純分でしょう。

だから煽りに反応する暇あったらコード書いてやれって。
>>329 お前が書けよ。
>>329
そうだお前が書けよ。
>>330
C書けないなら書けないって素直に言えばいいのに。
アンチVB厨うぜー。
>>332=>>320
だろ? お前がポインタというものの本質をまったく理解していないことが
分かる名文だったな、あれはよ。( ´,_ゝ`)プッ
>>334
まぁ、言うのは勝手だが、さっさと答えだしてやれ。
質問者から見たら折れもお前も答えの出せない低脳君だ。
>>335

 お ま え が 質 問 者 だ ろ

煽ってソース引き出そうなんて、きょうびはやらねーんだよこのド低脳が
>>336
違うぞ。
つーかメモリ確保をどちらで行ってるとかの問題も含め、
単純に質問者がVB.NETで動作してるソースを晒せばよろしい
それを見りゃ分かる
>>338
マーシャリングしてるらしいぞ。
340273:03/07/30 13:42
ああっ、いつの間にか荒れている。
どうもすみません。まとまらない質問をした私が悪いと思います。すみません。

実は、タイムリミットが来てしまいました。今日の昼休みあけまでだったのです。
正式に、.NETに移行することになりました。まったくの未経験で、どうなるか
わかりませんが…。

いろいろお世話になりました。ありがとうございました。
341273:03/07/30 13:58
最後に、.NETのソースを書いておきます。
ここだけ見てわかるのかどうか、判断がつきかねますが、
私の書いたコードではないので、あまり公開するわけにも行きませんので、
ご容赦ください。

多少、変数名などを修正してあります。

342273:03/07/30 13:58
  ' 全ユーザ取得
  Public Shared Function GetAllUserList(ByRef outCount As Integer, ByRef outUser() As S_DUser) As Integer
    Const intArraySize As Integer = 512
    ReDim outUser(intArraySize - 1)
    Dim i, intResult As Integer
    Dim Buffer(intArraySize) As IntPtr
    outCount = 0

    For i = 0 To intArraySize - 1
      outUser(i) = New S_DUser()  ' インスタンス化&初期化
    Next
    For i = 0 To intArraySize - 1
      Buffer(i) = Marshal.AllocCoTaskMem(Marshal.SizeOf(outUser(i))) ' メモリ割り当て
      Marshal.StructureToPtr(outUser(i), Buffer(i), False)      ' 初期化
    Next
343273:03/07/30 13:59

    intResult = MemberLibWrap.GetAllUserList(outCount, Buffer)

    If intResult = 0 Then
      For i = 0 To outCount - 1
        ' アンマネージ メモリ ブロックからマネージ オブジェクトにデータをマーシャリングします。
        Marshal.PtrToStructure(Buffer(i), outUser(i))
        Marshal.DestroyStructure(Buffer(i), GetType(S_DUser))
      Next
    End If
    For i = 0 To intArraySize - 1
      Marshal.FreeCoTaskMem(Buffer(i))
    Next

    ReDim Preserve outUser(outCount)
    GetAllUserList = intResult
  End Function  ' GetAllUserList
へぇ、最近のVB.NETってアンセーフなこと出来るんだ。
345273:03/07/30 14:04
最後の最後に告白です。
実は私は、VBに関しては厨房ですらありません。
マシンにインストールしたのが一週間前。VBの仕事は初めてです。
本当にご迷惑をおかけしました。すみません。
ならVB.NETでやっても変わりないじゃん!!
なんじゃそりゃw
>>346
解らなかった癖に・・・。
>>346に対してどうして>>347のレスがつけれるのか

その思考回路が解からない
349デフォルトの名無しさん:03/07/30 16:34
すいませんが、質問です;;

(入力されたデータ)
変数A = '9999999'

(テキストから読みこんんだデータ)(カンマ区切り)
変数B = '9999999','1234567','7777777'

で、入力されたデータが、カンマ区切りデータのいずれかと一致すれば
OKというプログラムを組みたいのですが、なにかいい案はないでしょうか。。
申し訳ございませんが、教えてください。
>>349
その変数A、Bってのは文字列なの?
とりあえずInStrを調べてみそ。
351349:03/07/30 16:54
文字列です。

Aの値が、Bの中になければエラーとしたいので、
InStrだと、例の場合、A = '9' でも通ってしまうんですよね。。。
A = '9999999' の場合のみOKとしたいので;;

すいませんです;;
>>351
ああ、なるほど。
じゃあSplitで配列に分解、変数Aと完全に
一致するかどうかループでまわして判断するしかないな。
353349:03/07/30 17:01
>>352

ありがとうございます。がんばってみます!
>>349
変数Aと変数B両方カンマで挟んだらInStr使えねーか?
"'" & 変数B & "'"のなかに"'" & 変数A & "'"があるかどうか。
355デフォルトの名無しさん:03/07/30 20:21
Win98、VB6.0SP5でwinlessコントロール(コンボボックス)
を使ったプログラムを作ったのですが
winXPの環境で起動すると
RunTime Error '7' Out of memory
と出て動作しなかったそうです。
Exeと同じ階層にmswless.ocxを入れてありますので、
winlessコントロールが動かなかったわけではないと思うのですが
原因がわからず、困っています。
何か原因がわかるかたいましたら教えてください。
>>355
インストーラでやりました?
ocxは登録してますか?
357355:03/07/30 20:38
>>356
インストーラ使っていません。
ocxも登録していません。
普通にExeを作成で作ったものとOcxファイルを渡していました。
インストーラを使えばいいのでしょうか?
>>357
試してからでも遅くはあるまいて
359355:03/07/30 20:43
>>358
そうですね。。(汗
アドバイスありがとうございました。

現在無茶にも、VBで多倍長演算をしようと考えています。そこで、
どなたか、多倍長演算のAPIとかを知っているかたいませんか?
362デフォルトの名無しさん:03/08/01 00:55
>>361
ふつうに計算しては?
>>362
どういう意味でしょうか?最初から多倍長だという事ですか?
>>363
通貨型 (Currency)
-922,337,203,685,477.5808 〜 922,337,203,685,477.5807
でも足りなければ、多倍長演算ルーチン作れということでしょうね
>>364
vbで多倍長演算ルーチンを扱っているサイトとかありませんか?

>>361、365
そもそも自分の都合でVBの仕様外のこと聞いてるのだろう?
1回聞けばいいだろ、何度も粘るな


>>366
みんな自分の都合じゃないの??????
・初心者優先であること
・VB仕様外であるからレスを期待しない<だから1度聞け
・自力でなんとかいう努力が見られない、検索云々もない
・従ってオマエの都合には合わせる気にはならん
以上
まぁ、答えたくないやつは答えなければいいし、答えたいやつは答えれば
いいし、と。

>>365

VB.NET だけど、ほれ

http://www.tokyo-pax.co.jp/pasovb5.htm
重複スレのhttp://pc2.2ch.net/test/read.cgi/tech/1058702281/119です
答えていただいた方、ありがとうございました。
パッと理解できない難しい事ですが、ちょっと勉強してみます。
どもでした。
>>370
みなさんご迷惑をおかけしました。369さんありがとうございます。
372デフォルトの名無しさん:03/08/01 18:33
シニス
所詮vb使ってる奴等なんてこんなもの
助言すらできない奴がいるみたいだけど気にすんな
375デフォルトの名無しさん:03/08/02 00:14
AS/400に標準でくっついてるDBにアクセスして
レコードを取得したり挿入したりしたいんですけど、
参考になるサイトがあれば教えていただきたい。
376_:03/08/02 00:14
377361:03/08/02 00:23
>>369
どうにか教えていただいたサイトを参考に、プラス・マイナスどちらでも
与える事のできる加算関数と同じく乗算の関数を作る事ができまいた。
ついでにネットで探してもVBのこういったものはあまり見かけなかった
ので一応アップしておきます。(サンプルプロジェクトになっています。)
http://www12.ocn.ne.jp/~mygrid/Project1.zip
378361:03/08/02 00:25
>>377
補足ですが、速度はまったく気にしていないのでめちゃくちゃかもしれ
ませんが気にしないで下さい。後、なにかアドバイスがあればおねがい
します。
おいおい、グロかよー…。
>>379 必死だな(w

>>378
「まりな」って誰よ?(w
>>378
ツマラン指摘で悪いんだが
> Private Function FrontSpace(ByRef tstr As String, OneUse As Integer) As String
> Dim i, j As Integer
iがバリアントになっている。(わざと?)
あと全般的に文字列じゃなくてバイト配列でやったほうがいいのではと思った。
ついでにクラスを使ってもっと自然な感じに。
382山崎 渉:03/08/02 02:03
(^^)
384375:03/08/02 10:15
またまたカキコで申し訳ない。
AS/400に標準でくっついてるDBにつなげたいのですが
どなたか教えてください。
385361:03/08/02 10:26
>>381
ご指摘ありがとうございます。あと、バイト配列でやるというのはどうい
うことでしょうか?引数もバイト配列で与えて、戻り値もバイト配列に
するという事でしょうか?それとも、関数内部でバイト配列に置き換えて
、という事でしょうか?ご教授ねがいます。
386361:03/08/02 10:28
>>385
書き忘れたのですが、一応VBで多倍長演算の関数は書いてみたもの
の、遅い・・・・・、なので、Cとかで作ってある外部DLLを提供している
サイトとかどなたか知ってらっしゃったら教えて下さい。
387一桁一バイト:03/08/02 10:37
>>386
多分、遅いのはVBよりもプログラムの問題じゃないかという気がする。
それを高速化させる手段の一つが>>381なんじゃないかと。
うん、ブタプログラミングだ。
>>387
Dim i As Integer, j As Integer
って書かなきゃいけないのを知らないひとは、それなりにいるかも。
他言語で馴れてるひととか。たぶん、>>378が使ってきた言語はC言語。
ただ知らなかっただけと見るが…。
>>389
で?
変数も知らないヤツなんてvbやってるヤツぐらいだろ
>>392
お前は何か勘違いしていますね。
vb使いを煽ったつもりが、vb使いと同じレベルだった罠
念のために解説

cでは
int a, b, c;
で全部intだが、

vbでは
Dim a ,b, c As Integer
ではcだけがInteger

ちなみにaとbはVariant
正しい煽り例

vbやってるやつは全部Variantでも使っとけ
>>395
笑い所解説されるくらい冷めることはない。

>>396
面白いこと言ってんの、それ?
>>397
お前の滑稽さが何とも言えずおもしろい。
>>396=>>398
光栄です。
>>399
残念ながらはずれです。
俺です。
>>397
ここはべつに笑うためのスレじゃないんだが。
もういいだろ。

  ↓次の質問ドゾー
>>395はVB初心者にとってよくある間違いだろうから、それなりに有益だろ。
笑い所とか言ってるあたりがさすがVBプログラマというか。>>397に苦笑い。
405デフォルトの名無しさん:03/08/02 18:43
一番笑いのセンスがあるのは>>392
>>405=>>392ということでオk?
>>406
MsgBox ">>405=>>392ということでオk?", vbOKOnly
なんだ、この状況。
笑われるセンスがあるのは>>392だろうな
笑わせると笑われるでは大きく違うな
アンチVB厨がまた荒らしているのか。はぁぁ。
ふとんがふっとんだ
取りに行けよ。
414デフォルトの名無しさん:03/08/02 22:44
ntpサーバの時刻をもとめたいのですが、
どのように求めたらよいでしょうか?
415デフォルトの名無しさん:03/08/02 23:00
こんなに見えちゃってヤバクない???
http://yahooo.s2.x-beat.com/linkvp2/linkvp2.html


>>414
sntpにしとけ。
アナルがふっとんだ
418ton:03/08/03 04:34
聞きたいことがあるのですが!DirectXを使用して
VBの機能であるボタンやリストボックス、
はたまたActiveXで作ったオリジナルなボタンなどを
操作することができるのでしょうか?
だれかご指導ください
>>418
フツーにできるが、何か?
420ton:03/08/03 04:53
ほんとだできました
>>420
仕事速ぇーな。
ていうか、そんなすぐできることを (多分たいして調べもせずに) 質問するなよ。
423デフォルトの名無しさん:03/08/03 14:10
WinXPのWordにVisual Basicがついてるなんて初めて知った。
なんで今までだれも教えてくれんかったんだ。
>>423
??
君と話したくないんじゃないかな。
>>424
ワラタ。

>>423
Offceに入ってるアプリ全部についてる。
Outlookにすらついてるよ。
426デフォルトの名無しさん:03/08/03 14:37
>>425
機能は市販のVBとかと同じなの?
>>423->>425
買ってないんだがVBのバージョンは何なの
428423:03/08/03 14:40
>>427
Microsoft Visual Basic 6.3
DocomoはJAVAですけどJ-PhoneはVBで携帯アプリつくれますか?
>>429
どのキャリアも無理。
431429:03/08/03 15:25
>>430
んー・・・JAVAやることにします
携帯はもうそろそろFlashの時代になりそうだけどね。
Javaは作るのが難しいだけでJava使う意味は無いから。
まだ、本域でFLASHやろうと表明してんのはドキュモだけじゃなかったっけ?
434デフォルトの名無しさん:03/08/03 17:15
リッチテキストボックスとかで入力した文字が
自動リンクになるような方法ありますか?
HTTP://WWW.YAH00.CO.JP/
とかが入力してる途中にURLだと判断されたら青い文字になって
それがリンクになるみたいな
>>434
少なくともそれはURLではない。
436デフォルトの名無しさん:03/08/03 17:18
ここって大文字でもリンクするんだな。
437デフォルトの名無しさん:03/08/03 17:22
大文字で書き込んだらどうなるかなと思ってテストを兼ねた質問です
ごめんなさい
438デフォルトの名無しさん:03/08/03 18:11
>>436
されてませんが
439デフォルトの名無しさん:03/08/03 18:16
440デフォルトの名無しさん:03/08/03 18:32
>>439
なに?
>>440
スレッドを個別に表示した場合はリンクされないが、一覧表示(http://pc2.2ch.net/tech/)した場合はリンクされ(てい)る。
HTTP://pc2.2ch.net/tech/
なんか、このレス群、みたことあるぞ。
デジャヴュ?
443デフォルトの名無しさん:03/08/03 20:16
画像の縦横サイズを取得したいのですが、そのようなapiとかないっスか?
jpg、gif、pngでも取得出来れば十分でございます。
>>443
Image
445429:03/08/03 21:30
>>432ふうん
446デフォルトの名無しさん:03/08/03 23:41
とあるサイトでVBのことを
オブジェクト指向言語と書いてあったのですが、
そうなのでしょうか?

オブジェクト指向言語のようなことができるっていみなのかなーって
最初思ったのですが、そのような記述がみあたらなかったので
なんだか頭がもやもやしてます。

どなかた教えていただけないでしょうか?
>>446
まあ、グレーだな。
一応クラス (らしきもの) は作れるけど、継承とかできないから不完全と言えば不完全。
少なくとも、VB でオブジェクト指向を学ぶと言うのは避けたほうがいい。
VB は あくまでも VB だから。
448デフォルトの名無しさん:03/08/04 00:31
>>443
それぞれのファイル構造を調べてバイナリ取得
> VB は あくまでも VB だから。
激しく無意味なことを言っているような気がするが・・・。

>>446
まあそれはいいとしてオブジェクト指向ってのは考え方だからね。
極端に言えばアセンブラやC言語であってもオブジェクト指向は出来る。
ただアセンブラやC言語はオブジェクト指向としての言語のサポートが無い。
オブジェクト指向言語のサポートってのは「無い」か「有る」かの
どちらかじゃなくて「ある程度有る」という風に中間的なものが存在する。
VBはその中間のもの。オブジェクト指向言語に必要な機能のうち
クラスやカプセル化やインターフェースや多態はある。ないのは実装継承ぐらい。

VBはJavaやC#やVB.NETよりはオブジェクト指向言語ではないが、
アセンブラやC言語よりかはオブジェクト指向言語ということだね。
それからオブジェクト指向を学ぶならsmalltalkの方がいいかも。
実践向けとは言い難いがJavaやC#よりも純粋な
オブジェクト指向言語だからね。
>>450
まあ学んでどうなるってものでもないがw
VBでオブジェクト指向なんてやろうとする奴なんてろくなもんじゃない
>>452
んあ?
>>452 Cでオブジェクト指向やるよりかははるかにマシだがな。
わざわざご丁寧にお世辞を言う>>452が一番ろくでもない奴という罠。
へいべいべ、そういうときは俺のジョークを聞いてくれ

「バイナリ小なり」
457デフォルトの名無しさん:03/08/04 12:53
CでOOをやる必要を感じないんだが
458_:03/08/04 12:54
459361:03/08/04 13:04
>>377
前回アップしておいたソースにバグがあり修正いたしました。見てく
ださった方。もしよろしければ、修正後をどうぞ。ついでに、そのソース
をCで書き直してみました。こちらもよろしければ(やっぱCは早い!!)
http://www12.ocn.ne.jp/~mygrid/Project1.zip
>>459
tempolalyじゃなくてtemporary
>>457
COOLとか知らない? 知らないなら少しは勉強した方がいいよ。
他にもGTKなんか使うとオブジェクト指向せざる負えないんだけど。

C 言語によるオブジェクト記述法 COOL
http://www.sage-p.com/process/cool.htm

GTK v1.2 チュートリアル(日本語版) 序文
http://www.kitanet.ne.jp/~asler/linux/gtk/ja/gtk_tut_ja-1.html
> GTK は本質的に、オブジェクト指向に基いた API である
> [訳注:原文 "application programmers interface(API)"]。
> GTK は全て C 言語で書かれているが、実装にはクラスや
> コールバック関数 (関数へのポインタ) といったアイデアが使われている。

設計やアルゴリズムのような考え方は言語に関係なく存在するもんなんだけどね。
しかしCでOOするのはVBでOOするのに比べてかなり手間がかかるね。
>>459 Cは速いというよりVBで書いたコードが糞なのが原因なんだが。
>>459
VBスレで書くのもなんだけど、
> for(x=1;x<=strlen(strone);x++){
> strone[x-1] = strone[x];
これが単に文字列を一つ前にシフトしたいだけなら、終端文字ごとmemmoveすればできる。
ポインタを一つ用意してstrone[1]を指すようにしてもいいけど。
464   :03/08/04 15:22
VBのフォームに、ハイパーリンクを張ることはできますか?

【やりたい事】
たとえば、VBのノーマルのフォームに、"Yahoo! Japan"と書いてあり、
そこをクリックすると、ウェブブラウザが立ち上がり、ヤフーのページが
表示される。
>>464 できるよ
サイトのタイトルでいいんか?URLじゃなくて?
「やりたい事」を実現するなら、ShellするなりCreateObjectするなりすりゃいいだけだが・・・
467464:03/08/04 15:30
できれば、ブラウザのように、文字にアンダーラインがあり、
未読ページなら青、既読なら紫のような感じにしたいです。

そういう機能を全部こちらが書けばもちろんできるんですけど、
こういうのって既に用意されるのかなーって思って質問しました。
468デフォルトの名無しさん :03/08/04 15:37
RPG作っています。
主人公がマップを自由に動けるようにしたいんですが
マップのスクロール法を教えてください。
>>467
WebBrowserコントロールで(ry
>>468
画面に表示する画像を変更するだけだよ。
471468:03/08/04 15:44
>470様
ありがとうございます。
挑戦してみます!
472_:03/08/04 15:56
473361:03/08/04 16:03
>>460
我ながらクサイなぁとは思っていたんですが、やはり間違っていました
か〜。まぁご愛嬌という事で、
474361:03/08/04 16:06
>>463
なるほど、そうですね。あと、CにはMidみたいな関数とかないんです
かね?文字列を扱うのがすごい面倒クサイ。
475361:03/08/04 16:07
>>462
まーまー、そう言わずに。あと、それならアドバイスの一つもくれるとあり
がたいですね。
476361:03/08/04 16:21
>>463
すいません、書き忘れたのですが、よろしければmemmoveでやる方法
を教えてください。文字列の先頭の"-"をなくす処理をしているのですが、
2個目の引数にstrone[1]のポインタを当てればいいんですか?
(VBスレなのに本当に申し訳ない)
今、悩んでることがありまして、どちらでもいいと言われたらそれまでなんですが、
ソースの書き方について解らないことがあります。
'A-1
SQL = SQL & "INSERT INTO なんちゃら VALUES ("
SQL = SQL = "なんたら,"
SQL = SQL & "かんたら"
SQL = SQL & ");"

'A-2
SQL = "INSERT INTO なんちゃら VALUES (" & _
"なんたら," & _
"かんたら" & _
");"
478続き:03/08/04 17:10
'B-1
Dim a As String
Dim b As String
Dim c As String
a = nanntara
hogehoge etc....
'--------------
b = kantara
hogehoge etc...
'-------------
c = nannkann
hogehoge etc...

'B-2
Dim a As String
a = nanntara
hogehoge etc....
'--------------
Dim b As String
b = kantara
hogehoge etc...
'-------------
Dim c As String
c = nannkann
hogehoge etc...

A、B共に1でも2でも同じ結果だと思うのですが、A,Bとも、どちらの書き方が良いのでしょうか?
御教授ねがえますでしょうか。
>>477,478
読みやすい方。
おれならA−1、B−1。
>>479
(゚Д゚)ハァ? A-1なんてあり得な〜い
数十万回くらい繰り返して速度計測してみろや

もとよりこうすりゃA-2のほうが読みやすいかと
SQL = "INSERT INTO なんちゃら VALUES (" & _
      "なんたら," & _
      "かんたら" & _
      ");"
481デフォルトの名無しさん:03/08/04 19:04
ちょっとくだらない質問なんだけど、ポンポンと答えてもらえるとうれしい。
例えば関数の中でdim a[10000] as double とかでっかい配列宣言してると、
けっこう関数のパフォーマンスって落ちる?やっぱりいつもそんなに必要としない
なら動的に確保した方がいいかな?
482続き:03/08/04 19:07
>480
済みません、ブラウザ上でタブが認識されていなかったようです。
元はそのように書いてありましたm(__)m

そうなんですよね、
再起代入繰り返したら遅くなるのは目に見えている訳で。。。

そこら辺のバランスを考えてると、こんがらがってしまってσ(^◇^;)

諸先輩方の意見をお願い致しますm(__)m
483デフォルトの名無しさん:03/08/04 19:14
>>481
Cと混合している時点で逝けてない。0点
484デフォルトの名無しさん:03/08/04 19:21
こんなに見えちゃってヤバクない???
http://yahooo.s2.x-beat.com/linkvp2/linkvp2.html


485479:03/08/04 19:31
>>480
おれはA−1の方が読みやすい。(これは好みかな?)
それにA−1の方がSQLの途中でコメント入れれるし。
パフォーマンスに関してだけど文字列連結にどれだけ時間がかかったか、ではなく
文字列連結にかかる時間が全体の何%か、てのが大事っしょ。
文字列連結だからといって気にする必要ないときも多いはず。

>>482
あんたの好きな方選びなさい。
不毛で冗長な議論では楽しめない
>>482
> 再起代入繰り返したら遅くなるのは目に見えている訳で。。。

>>485
> 文字列連結だからといって気にする必要ないときも多いはず。

それ以前に A-1 はバグってるって >>480 は言ってんじゃないのか ?

>> SQL = SQL = "なんたら,"
コンボボックスでドロップダウンリストを選択した時に、
デフォルトでリストの一番上の項目を表示させたいのですが、
どうすればできますか?
>>488
ListIndex = 0
ListIndexというのはコンボボックスのプロパティでしょうか?
見当たらないのですが・・・
491489じゃないが:03/08/04 23:52
>>490
ComBo1.ListIndex = 0 はプロパティウィンドウではなく、コードウィンドウに記述するプロパティ。
>>477
要するにプログラムの可読性を上げたいだけだろ。
それなら答えはおのずから出るわな。

すべからくプログラムのスタイルは合理的精神に基づいて選択すればいい。
経験があろうとなかろうと、人に主張できる一貫した論理性がそこにあればよい。
それが君のスタイルだよ。
コピペして他の部分でも使えるコードをこころがけるのもよい
494デフォルトの名無しさん:03/08/05 07:12
VBSでLHAで圧縮したいのですが、VBSはAPI使えないので
何か方法無いですか。
>488,490
できました!ありがとうございます。
>477
個人的にはA-2が好きなんだが、途中にコメント入れられないのが痛いんだよな。
それが言語仕様なんだからしょうがないとは思うけど。
上で速度の話が出てたけど、ミリ秒単位で遅い早いの世界ならそもそもVBを使ってる
のが間違いという気もしないでもない。

周囲に合わせるのが一番だと思われ。
>>494
LHAを扱えるActiveXコンポーネントを他言語で作成して(以下略
498デフォルトの名無しさん:03/08/05 10:59
>>480
>数十万回くらい繰り返して速度計測してみろや
SQL文をそんな風に作成している時点でアウトだろ、、
499_:03/08/05 11:01
>498
許してやれよ。
きっと、>480はSQL一発ですむ所を数十万回のDELETE文SQL発行で処理しているのさ。
VB6です。
 業務アプリを組む際のエラー処理の仕方で、定番と言えるやり方ってどんな感じなのでしょうか?
 本や研修資料のサンプルには、関数単位のエラー処理(On Error Goto使用)は載っているのですが、
システム全体でのうまいエラー処理の例は全く載っていません。
 エラーが発生した時の挙動(メッセージやボタン等)を統一する為の知恵、それを解説している
ページ等無いでしょうか?
 質問内容が漠然としていてすみません。俺はこうしている、これは上手い方法だと感じた例
などありましたら教えてください。
すみません、質問です。

縦100行、横8行の表をフォーム上に作りたいのです。
各セルは、テキストボックスのように入力できるもの、コンボボックスのように
プルダウンメニューで選択できるもの、と二通りあります。

標準コントロールにこんな面倒なものないですよね?
自作する場合、どのようにすればよいですか?ヒントをください。
>>494
LHA.EXE使え
>>502
SPREADとか。
アクティブなセルのコントロール以外は実物をおかずに
描画でごまかすとか。
WebBrowserコントロールを利用した簡易ブラウザの中で表示している
HTMLからVBにメッセージを伝える事は可能ですか?
HTMLのJavaScriptなどからの情報をWebBrowserコントロールのイベントで
受け取る事はできるのでしょうか?
よろしくお願いします。
>>505
IEコンポーネントを使い倒すスレ
http://pc2.2ch.net/test/read.cgi/tech/982930049/
507デフォルトの名無しさん:03/08/05 14:05
>>501
 >システム全体でのうまいエラー処理の例・・・・
  どのようなエラーの事を言っているのか?
  "on error goto"のような場合? or
  データを削除したい場合に該当データが無い場合などのエラーなのか?
508デフォルトの名無しさん:03/08/05 14:14
webから画像を取得して表示する方法を教えてください・・・
509デフォルトの名無しさん:03/08/05 14:22
VBでは逆タンジェントのATAN関数は使えないんですか?
また、使えない場合XYの比率から角度をどうやって求めた
らいいですか?
>>509
Atn
>>509
Atn 関数
>>508
どこがわからない?
定数を配列で持ちたいのですが、どうすればよいですか?
>>513
むりぽ
5151 ◆ExGQrDul2E :03/08/05 17:00
2chに貼られている画像を収集するソフトをつくった。採点よろしこ

画像収集ソフトの
Windows98や古いパソコンでも動くようなバージョンをつくってみた。

まずこのなかのsetup.exeを実行すると各種コントロールがセットアップされる。

ttp://www.interq.or.jp/guitar/lead/up/20030805155739_setup.zip

つぎにこのなかのreadme.txtを読んで、
HtmlChanger004.exeをこのソフト専用のフォルダを作ってその中で実行するだけ。ルートフォルダでは動作しないようになっている。

ttp://www.interq.or.jp/guitar/lead/up/20030805164310_setup2.zip

ソフトが起動したら、板リストの下のほうの半角二次元を選択してみる。それからOKボタンを押して1日待つ。
画像はFileフォルダに保存されている。
↑アダルト画像が欲しい場合は 半角文字列 という板を選択する。
アイドル板を取り込むのもおもしろい。
516501:03/08/05 17:40
>507
On Error Gotoで拾えるような、実行時エラーの例です。
イベントプロシージャでエラーをトラップした後、どうやるのがスマートなのか・・・
517509:03/08/05 17:45
>>510
>>511
ありがとうございますた。
518477:03/08/05 17:54
諸先輩方、御教授有り難うございましたm(__)m
504さん

ヒントありがとうございました。SPREADを使ってなんとかなりそうです。
落雷を見知するプログラム・・・
>>515の下のリンクのファイルに上書きすると更新完了
ttp://www.interq.or.jp/guitar/lead/up/20030805190636_setup2.zip
>>515
setup.exeでエラーがでる

セットアップ メッセージ
セットアップするファイル 'C:\Documents and Settings\既定\デスクトップ\20030805155739_setup\\@RCHTXJP.DLL' が見つかりません。

あと画像の取得はスレ単位で出来た方がいいかな。
理想としてはリストから複数選択してダウソとか
5231 ◆ExGQrDul2E :03/08/05 20:09
>>522
おれはWinXPでつくったから、わざわざもう一台のWin98にsetupしてみてから配布したんだけどなあ。
VB6.0アプリはディストリビューションウィザードで作ったsetup.exeだけじゃセットアップしきれない場合があるからね。
まあ、ここのスレユーザはランタイムインスコしなくても動かせるからいいかな。

むかしのバージョンではスレ単位でダウンロードできたけど、
オレが大容量記録メディアのDVD-Rを買ったから板を丸ごと取りこむ仕様にしたんだ。
5241 ◆ExGQrDul2E :03/08/05 20:11
セットアップするファイル 'C:\Documents and Settings\既定\デスクトップ\20030805155739_setup\\@RCHTXJP.DLL' が見つかりません。

↑の\@という文字列がなんなんだかなあ。謎
5251 ◆ExGQrDul2E :03/08/05 20:25
\@はセットアップ時にWindowsが作成したテンポラリファイルか・・・・
526507:03/08/05 20:26
>>516
どうやったらスマートなのかはわかりませんが、"On Error GoTo ・・・"
で飛ばした後に↓のようなエラーのサブルーチンに飛ぶようにしています。
引数は、エラーの出たサブルーチン名orファンクション名です

Public Sub AbendRtn(s_Place As String)
Dim s_Msg As String
sMsg = Err.Number & ":" & Err.Description
Call MsgBox(s_Msg, vbExclamation, s_Place)
End Sub

>>526
エラーが発生したら回復処理などを行ってから
Err.Raiseで同じエラーか独自のエラーを再発生させる。
んで、メッセージを表示するのは呼び出し履歴の一番上。
Command_Clickなどのイベントハンドラで出すのがいい。
DoEvents
DoEvents
DoEvents
DoEvents
DoEvents
DoEvents
DoEvents
DoEvents
DoEvents
DoEvents
DoEvents
ドゥーイベントを連続でたくさんかけば他のアプリに長い時間制御をわたせるのかな?
waitのほうがいいんじゃない?
530528:03/08/05 21:59
>>529
DoEvents1000行かいたりするのがたいへんだから、そっちについて調べてみる
531530:03/08/05 22:27
For i=0 to 1000
DoEvents
Next
これならスッキリ解決か。
>>501
どうエラーを処理するは状況によるから、関数ごとにトラップするほうが自然じゃないかなあ。
ただ、VBのランタイムエラーはカッコ悪いので、全体をon errorでくくって、
あたかも想定されたエラーのように出力して終了する、ということはやる(w

あと、ファイル名を指定させるようなケースで、指定したファイルがあるかどうか確かめずに、
いきなりオープンしちゃう。ほんで、失敗したらon errorで拾って指定しなおさせる、
みたいな方法は、コーディング量がかなり減らせるので、やっつけ仕事のとき多用。
>>531
何が目的か知らんが嫌なプログラムだな
エラーコーディングの本ってこういうのがあるけど、
http://www.pearsoned.co.jp/washo/win/wa_win51-j.html
これってどう?
フォームの終了時に、ファイルにデータを出力したい場合、
関数名は何になりますか?
>>535
関数名はこうなります。
fncOutputDataToFileWhenUnloadForm
5381 ◆ExGQrDul2E :03/08/06 15:53
>>533
エレガントだね
質問させていただきたい事があります。
えーと、まずサーバー・クライアント型のネットワークで、
サーバは接続要求を受けると、Activex,EXEを呼び出して、そちらと
接続させます。で、全てのクライアントが接続し終わります。
そこで、サーバー(呼び出し元)が何か計算をしようとすると、その
計算を配分して、Activex.exeに指示を出し、それを、介して、クラ
イアントが計算を開始します。そこで問題なのが、クライアントが返
してきたデータをどうやってまとめるかという事なんです。今は、データ
が小さければ、DDEを使って呼び出し元の変数に無理やり書きこませ
たり、大きければ、ファイルに書き込んでおいたりしています。
しかし、DDEを使う方法だと、呼び出し元はシングルプロセスなので
たくさんのクライアントから同時に計算結果が返ってきた場合、対応
ができません。かといって、ファイルを使う方法では、変数にダイレクト
に代入していないので、非常に使いにくいし、面倒くさいです。
こんな場合みなさんだったらどうしますか?(activex.exeが呼び出し元)
の変数を使えたらいいのに)
>>539
最後の所は
(activex.exeが呼び出し元の変数を使えたらいいのに)
です
541デフォルトの名無しさん:03/08/06 23:47
>>539
RaiseEvent使って拾わせたら?
542_:03/08/06 23:53
543デフォルトの名無しさん :03/08/06 23:58
>>539
結局、並列分散計算処理をしたいということですか?
SETIみたいなやつ?
>>539
そのActivex.exeとやらをその都度呼び出すサーバプログラムを作ればいいだろが。
>>544
×呼び出す
○起動する
起動してるIEからタイトルとURLを取得する方法ってどうやればいいですか?
タイトルはGetWindowTestで取得できるのだが、もっといい方法があったら
教えてください。

URLの取得は
Java、VB Scriptだとwindow.location.hrefなのだが、
VBだとどうやればいいのかさっぱりなのでご教授よろしくお願いします
547デフォルトの名無しさん:03/08/07 09:55
フォームがないプロジェクトで、
どうやったらアプリケーションアイコンを設定できますか?
548デフォルトの名無しさん:03/08/07 10:12

  インターネット初!「きたぐに割引」 北海道・東北の皆様は送料激安!!
  新商品ずくぞく入荷・スピード発送・商品豊富!!
  アダルト激安DVDショップ!!  一枚500円〜!!


  http://www.get-dvd.com
>>547
ダミーのフォームを用意するしかないんじゃないか?
>546
コンポーネントの追加からMicrosoftInternetControlsをチェックして

Dim obj As SHDocVwCtl.ShellWindows

  Set obj = New SHDocVwCtl.ShellWindows
  MsgBox obj(1).LocationName

とかは?
いい方法なのかはわかんないけど
551デフォルトの名無しさん:03/08/07 15:09
すみません、質問です。
タスクバーに表示されている起動中のアプリケーション一覧を取得するにはどうすれば良いのでしょうか?
552デフォルトの名無しさん:03/08/07 15:20
>>550
IEのボタンをクリックすると任意のフォルダに
インターネットショートカットを作るプログラムできますた
どうもありがとうございますたー
>>551
>>552はSub7っていうバックドアプログラムだから実行しちゃだめよ。
つーか>>552氏ね
>>547
プロジェクトにリソースファイルを追加→アイコンをリソースに追加→一番リソースIDの若いアイコンがexeのアイコンになる
556デフォルトの名無しさん:03/08/07 20:27
済みません、皆様に質問させてください。
現在、vbからFTPコマンドを呼び出して、
linuxサーバからファイルをgetしようとしています。
が、linuxサーバに上手く接続できません。
(試しにwindowsサーバにアクセスしたところ、アクセス
できました。)

これまでに自分で調べた感じですと、vbの中でinetを利用して
いるのですが、linuxにFTPのdirコマンドを投げた際、
inetのlistcountなどに正常な値を返せてない、
というところまで分かりました。

どうすれば良いか、どなたかご存知でしょうか?
お願いします。
>556
DIR の代わりに LS 使ってみれば?
真のVBユーザはお金がかかったとしてもすべてのサーバをWindows Serverにする。
559デフォルトの名無しさん:03/08/08 10:02
TextBoxに文字数の制限を与え、例えば3文字入力されると
自動的に次ぎのテキストボックスにフォーカスが移るようにしたいのですが
よい方法はないでしょうか?
560デフォルトの名無しさん:03/08/08 10:25
ねぇ
ホイールスクロールできないんだけど
てっとりばやくできる方法はないかしら?
>560
「VBでホイールマウス」でぐぐる事くらい試してから言えよハゲ
>>559
無い。VBA使ってろw
リストビューコントロールの Report ビューで
アイコンの縦位置を上揃えから中央揃えにするには?
テキストの高さに合わせたアイコンを作れってのはナシね
>>559
知識がないならタイマー使って監視したら?
565デフォルトの名無しさん:03/08/08 10:57
>>559
チェンジイベントで文字数チェックして、3文字ならフォーカスを移すって方法でできない?
566デフォルトの名無しさん:03/08/08 11:04
>>559

'=======================================================================
' 入力文字数によるフォーカス移動
'=======================================================================
'【引数】
' ctl = テキストコントロール
' mx = 文字数
' nxctl = 移動先コントロール
'【戻り値】
' なし
'【処理】
' ・入力文字数に達すると次のコントロールにフォーカス移動をする。
'【著作権】
' MaxFocus() ver 1.00 Copyright (C) 1999 Y.SAK
'【履歴】
' 1999.04.17 sak ver 1.00 新規作成
'=======================================================================
Public Sub MaxFocus(ctl As Control, mx As Integer, nxctl As Control)

'** 入力文字数によるフォーカス移動
if len(ctl.text) >= mx then
on local error resume next
nxctl.setfocus
ctl.selstart = 0
ctl.sellength = len(ctl.text)
on local error goto 0
end if

End Sub
著作権ってw
568559:03/08/08 12:42
>>566
ありがとうございます
569デフォルトの名無しさん:03/08/08 13:01
ぐぐったがなに
なんでお金をだすのかと
パッチはないのかと

ききたい
配列を連結する簡単な方法ってありますか?
新しい大きさの配列作って、一個一個入れるしかないのかな。
>>570
CopyMemory
すみません、教えてください。

http://galliver.co.jp/writing/vbm_tokushu/api9031/
を参考に、空きドライブにサーバーを接続しようとしました。

ですがこのロジックを標準モジュールにコーディングすると、

WNetAddConnection3(Me.hWnd, udtNetResource, strPassWord, _
strUserName, CONNECT_UPDATE_PROFILE Or CONNECT_INTERACTIVE)

のMeの部分でコンパイルエラーになります。
フォームモジュールにコーディングした場合はうまくいきました。

このMeは何を表しているのですか?
また、コンパイルエラーを解決するにはどうしたらよいでしょうか?
(標準モジュールにコーディングしたいので)
536,537さん

ありがとうございます。できそうです。
>>572
WNetAddConnection3の第一引数の説明を見よう。
そこに指定するのはオーナーのウインドウだ。
APIのNULL(0)でもいい。
どうしてもhWndを使用したい場合は呼び出し時の引数にでも指定すればいいだろう。

ちなみにMeはクラスやフォームの自分自身。C++でいえばthisに相当する。
VBでPDFに電子署名するってできる?
>>574
> APIのNULL(0)

なにそれ?
577デフォルトの名無しさん:03/08/08 22:10
FindWindowEXを使って、IEでチャット等のページのTextBox?の
ウィンドウハンドルを取得したいのですがうまく取れません。
こんな感じでやってみました。

hWnd = FindWindow(vbNullString, "雑談広場 - Microsoft Internet Explorer")
If hWnd <> 0 Then
  hEdit = FindWindowEx(hWnd, 0, "edit", vbNullString)
End If

もしかして、なんか根本的にまちがってますか?
メモ帳だとうまくいったんですけど…。
>>570
一個一個入れたくないだけなら
Joinで文字列にしてから結合してSpltで配列に戻す。
579578:03/08/08 22:19
×Splt
○Split
>>577
SPY++などで調べると分かるけどブラウザ内の
テキストボックスみたいのなんかはウインドウハンドルを持ってないよ。

FindWindowってことは外部のIEを制御するのかな?
ならMicrosoft Internet Controlsと
Microsoft HTML Object Libraryを参照設定して
Dim sw As New ShellWindows
Dim wb As WebBrowser_V1
Dim hd As IHTMLDocument2
Set wb = sw(1)
Set hd = wb.Document
あとはHTMLのフォームなりなんなり参照すればいい。
581デフォルトの名無しさん:03/08/08 22:56
>>577
データ送信したいだけなら素直にSocket使っとけ。とか言ってみる。
582デフォルトの名無しさん:03/08/08 23:10
ギャルっぽい女子校生の二人組みです。
それにしてもこの援交慣れした感じはなんなんでしょう?
二人でフェラをしながら男性のチンチンをでかいと褒めちぎりいい気分にさせています。
しかも挿入中には友達がカメラを持って撮影しているという物凄い作品です。
二人とも顔、スタイル共に申し分ないのでお勧めですよ。
無料ムービーはこちらから
http://www.cappuchinko.com/
583577:03/08/09 00:15
>>580-581
やりたいのは、ブラウザゲームのコマンドを
入力するのが面倒くさいので、入力支援ツールみたいなのを
作ろうかなぁーと思ってたんですよw
んで、ハンドルとって
SendMessageで投げればいいかなと
簡単に考えてたんですけど、なかなかうまくいかなくて…。
>>583
ああ、寝マクロか。
>>583
>>580で問題ないんだろ?
586デフォルトの名無しさん:03/08/09 02:32
マクロ投げ
Set ff = fs.GetFolder(フォルダパス)
Set ffs = ff.SubFolders
として、あるフォルダのサブフォルダコレクションffsを
For each V1 in ffs
debug.print v1
Next
で表示させたところ、ffsコレクションは名前順にならんでないことがわかった。
ffsにorder byを適用するメソッドってあるの???
>>587
無いんじゃない?ソート位自分でしろと。
589デフォルトの名無しさん:03/08/09 08:26
これからやるにはvb6とvbnetのどっちがいいですか。
>>589
どっちもあんまり将来性無いけどな。悩む前にやれと。
591デフォルトの名無しさん:03/08/09 08:32
将来性あるのは何ですか
592デフォルトの名無しさん:03/08/09 08:33
なんとなく勃起
http://www.k-514.com/fe/ero.html
593587:03/08/09 09:30
>>588
あーそうざんねん
594563:03/08/09 11:14
皆様よろしくおながいします >>563
>>594
不可。
596デフォルトの名無しさん:03/08/10 01:56
MSDNなんか見てると、名前の付け方で「m_strInstructor」とか付けてますが
「m_」って何の意味ですか?
「str」はString型ってことですよね。
597デフォルトの名無しさん:03/08/10 02:13
>>596
member
598デフォルトの名無しさん:03/08/10 09:23
え? module じゃなかったっけ? g_ はglobalで。スコープを表してるんじゃなかった?
599デフォルトの名無しさん:03/08/10 13:42
文字に色をつけるとき、
例えば、いくつかの数字を同じリストボックス上に表示するとき
1は赤色で表示され、2は黄色で表示されるというようにしたいのですが
どうすればよいのでしょうか。
>>599
出来るか知らんがオーナードロー。
601599:03/08/10 14:13
推測でしゃべんな
んじゃ、オーナードロー。
>>601
お前は、

文字に色をつけるとき、
例えば、いくつかの数字を同じリストボックス上に表示するとき
1は赤色で表示され、2は黄色で表示されるというようにしたいのですが
どうすればよいのでしょうか。

が出来ると推測して質問をしたのではないのか?
>>603
       |
       |
〜〜〜〜〜〜〜〜〜〜〜〜
       |
       |
       |
       |
       J

無言の叫びワラタ
>>603
       ○ モットオクマデ...
      ○ ノ)
  _| ̄| .と
608599:03/08/10 16:47
599=601じゃないです。
600さんありがとうございます。
>>601
推測で書くのはいっこうに構わんと思うが。
「憶測」と書きたかったのか?
日本語勉強しる。
「推測」ある事柄に基づいて、おしはかって考えること。
「憶測」確かな根拠もなくいいかげんに推測すること。
推測には憶測も含まれるくさい(w
ジエンなんだから蒸し返すな馬鹿。
蒸し返すなというほど話題があるわけでもなし。
話題なんて元々ねぇーよ。質問スレなんだから。
普通に質問待て。
615615:03/08/11 07:52
@ VBとVBAの関連はどのようになってるのでしょうか?
  ExcelのVBAはVB内で記述して全部問題なく動くのでしょうか?
  それとも一部動かないものもある?

A  VBからExcelの細かい動作をさせる場合にExcelのマクロとして
   別に作っておいて、VBからExcelを表示させたときにExcelのマクロ
   で作ったコントロールなどを表示させてその時点からExcelのマクロ
   側でやらせるようにした方がよいのでしょうか?
616615:03/08/11 08:09
B 会社でVBstudioのインストーラーを使わなければならないのですが
  そのVBstudio はフリーソフトをダウンロードしたもので、操作説明
  書がありません。前任者がいなくなって使い方がよくわからない。
  このインストーラーの使用説明について書かれた書籍を知らない
  ですか?

C コードを作るときに各プロシージャーがかってにポコポコできてしまい
  ますが、その各プロシージャーを自分の好きな順番に並べ替える
  にはどうすればよいですか?

D OLEにExcelをリンクさせている場合VBのコード上で
  Excelにデータを書きこみます。OLEにEXCELを表示
  させて書きこまれた内容を確認したいのですがどうすれば
  表示できますか?Excelへセーブする命令はわかっても
  ロードする命令がわかりません。
617デフォルトの名無しさん:03/08/11 10:10
で、
マウスホイールが利かないんだが
どうすればいい?
>>617
何度も出ているが「どこでもホイール」をつかえ。
IntelliPoint等のマウス付属のユーティリティでも可能の場合がある。
>>617
分解掃除。
620デフォルトの名無しさん:03/08/11 12:29
>615
答えられそうなものだけ。

1 言語的には同じ。基本的に動く。
 但しオブジェクト構造が違ってるし、Office組み込み関数はそのままではVBで動かない。
 単純にコピペして100%動く訳ではない。

2 好きにしろ
 だが、コードを書くのはどちらか片方に統一しないとデバッグで死にそうだ。

4 カット&ペーストでどうとでも変えられる。
 が、その必要性があるのかは疑問だ。

5 ExcelVBAのヘルプ嫁
621_:03/08/11 12:29
622デフォルトの名無しさん:03/08/11 12:36
>>615
ってか、VBStudioって何?フリーのインストーラ?
ひょっとして割れ房?
623617:03/08/11 12:43
>>618
サンクスコ
>>619
サンクスコ
624577:03/08/11 14:29
>>580
遅くなりましたが、ありがとうございます。
IEの制御とかって初めてやったんですが、
なんとかそれっぽく動くようになりました。
まだ不完全ですがw
んで、この手のプログラムのことが
あんまり知らないので、どこか
解説したサイトとかいい本はないですか?
625デフォルトの名無しさん:03/08/11 15:09
>>615
もしかして、VSIのこと?
626_:03/08/11 15:15
627615:03/08/11 17:07
C プログラムを見やすくするために順序をいれかえたい。
  本屋の立ち読みでそういうことができるという内容を
  読んだことがあるのですが。
  確かツールバーの内の何かの操作でできるらしいのですが
  誰かしりません?
628615:03/08/11 17:16
B Visual Studio によるインストーラーのこと。

D object.SaveAs でExcel ファイルへのセーブはできるのだが
  ロード命令というのはありますか?
  検索しても出てこなかった。
  なおVBは会社のパソコンでやっててそこで調べものに時間を費やすと
  ソフト作成ができないので自宅でこうして疑問点を調べてます。
  なお、今は盆休み中で会社へ行けないし。
629615:03/08/11 17:28
@ Excel VBAの解説書に紹介されてるコマンドは必ずしも
  VBで使って大丈夫ということはないのですか?
  そうすると、これはOKこれはNGという具合にVB内で使って
  みてエラーを出しながら使える使えないということを確認
  するのですか?みなそうしてるのですか?

  もしそうならAで書いたようにExcel VBAとして最初から別に
  記述して呼び出すようにすればあるコマンドがVB内で有効
  云々を気にせずやれますが。

  オブジェクト志向的にVBとEXCELVBAというのは
  それなりに親和性があると思ってましたが。
>>629
ええ、違うでしょうね。

だから環境に依存しそうなコードはクラスでラッピングしてしまうなどの処置が必要かと。
631デフォルトの名無しさん:03/08/12 02:01
>>615
>A
俺の場合、アプリケーション側に汎用性を持たせるためにそういう風にやったことがある。
つまり、いくつかのプロジェクトを平行してて、Excelに吐き出す処理の共通部分はVBで書
いて、異なる部分はExcelに書いた。
サーバーやHTMLからVBのexeを起動する時に、サーバーからパラメータを
渡すにはどうやったらできますか?
633VB初心者:03/08/12 12:45
VB6.0でパッケージ(ディストリビュージョンで作成)を作成しましたが、
VBの入っていないPCでインストールできません。
作成したPCは98でインストールしたいのは2000です。
教えて下さい。
634デフォルトの名無しさん:03/08/12 14:54

Form1フォームにText1テキストボックスとText2テキストボックスを追加します。

Form1コードに、

Private Sub Text1_GotFocus()
Text2.SetFocus
End Sub

Private Sub Text2_GotFocus()
Text1.SetFocus
End Sub
ぐわしだっちゃ
ごめん。上のは俺です。やったーアクセス規制から解放された!!
(試してみたら書き込めた)
くそ!!どこぞのバカのせいで、えらい迷惑かけられたっちゅうねん。
2chも他のやつを巻き込まないように規制してくれよ〜
637デフォルトの名無しさん:03/08/12 15:59
当方のPC(Win2KPro+Office2k(SR1)+VB6.0(SP5))で作成したVBの
アプリケーションをディストリビューションウィザードで配布形式にして、
他のPC(Win2KPro+Office2k(SP3))にインストールしたところ、
"DLL呼び出し時のエラー(エラー番号48)"というメッセージが出て、
動作しなかったので、そのPCにVB6.0をインストールして、VBからソースを
実行してみたところ、以下の場所でエラーが発生していることがわかりました。
----------------------------------
Dim XL As New Excel.Application

Set XL As Excel.Application <-ここ
----------------------------------
これは、どのような原因が考えられるのでしょうか。
ほとんど同じ環境なのに、動作しないので、原因がわからず、
困っております。ご存知の方、よろしくお願いします。
638637:03/08/12 16:02
失礼しました。正しくは以下です。
----------------------------------
Dim XL As New Excel.Application

Set XL = Excel.Application <-ここ
----------------------------------
>>636
IPで決めうち規制こそ意味ないよ
IPなんてすぐ変わるんだから・・

>>637
レイトバインディングについて調べてみれ
640636:03/08/12 16:53
>>639
まぁ、そうなんだけどね。それは分かってるんだけど、どうにかならんも
んかね。(スレ違いの話題でスマソ)
641デフォルトの名無しさん:03/08/12 18:00
あるコントロールが配列かどうかを
判別するにはどうすればいいのでしょうか?
>>641

配列としてアクセスして、エラートラップするってのが簡単。
>>642
やっばりエラートラップですか。
ありがとうございました。
IsArray
結局>615のVSは割れだったという事ですか
>>637
Excelがインストールされてないんだろ。
647デフォルトの名無しさん:03/08/13 01:28
すみません、お世話になります。開発環境はVB6SP5です。
イメージコントロールに画像を読み込もうとしています。
StretchプロパティをTrueにして、画像の大きさを調節しています。

Private Sub Command1_Click()
Image1.Picture = LoadPicture("D:\honyarara.jpg")'1000×500 Stretchはtrue
Image2.Picture = Image1.Picture'2000×1000 Stretchはtrue
Image3.Picture = Image1.Picture'4000×2000 Stretchはtrue
Image4.Picture = Image1.Picture'8000×4000 Stretchはtrue
End Sub

4つのイメージコントロールは、大きさを順番に変えています。
6000×1000のような大きいサイズの画像を読ませるとImage3と4でだけ表示されて、
小さいサイズのコントロールには何も出てきません。

Win98で動作させた場合にだけ起こる現象で、2000やXPだと異常ありません。
これは一体どういうことが原因で起きているんでしょうか。
ご存じの方がいらっしゃいましたらよろしくお願いいたします。
64kの壁かも
649デフォルトの名無しさん:03/08/13 09:40
>>647
Win98のバグです。
>>649
昔、StretchBltにバグがどうとか聞いたような気がするなぁ・・・。
651デフォルトの名無しさん:03/08/13 15:13
ご存知の方いらっしゃいましたら、ご教受ください
 環境:
サーバ:WIN2000サーバ
DB:SQLサーバ2000
クライアント:WIN2000
VB6+ADO2.5

有線のLANでクライアントはドメイン配下になっています。
上記の環境で、以下のようにコネクションを貼っています。
  ---------以下の変数はINIファイルより予め取得
stProvider:"SQLOLEDB" 固定
stDataSource :サーバ名
stCatalog:DB名
stId:ユーザID
stPass:パスワード
------------------------------------
Dim gdbConnect As New ADODB.Connection

' 接続を確立する
gdbConnect.Open "Provider=" & stProvider & _
";Data Source=" & stDataSource & _
";Initial Catalog=" & stCatalog & ";", stId, stPass

このコードでコネクションを貼ろうとすると、たまにエラーになってし
まい困っています。(OKなときと駄目なときがあります・・・)
エラーになるタイミングもまちまちなので原因がつかめません。
ちなみにスタンドアロン環境だと必ずコネクションははれます。
「まちまちで」って、そんな曖昧なの答えられるか。
エラーもエラーとしか書いてないし。
653デフォルトの名無しさん:03/08/13 15:22
今日はトリビアの日だね
あのさ不意に思ったんだけどさ、VBのアプリがCとかアセンブラの速さ
で動くようになるプラグインとか売ってたらいくらまで払う?
俺は1万ぐらいは出すな。
>>654
あのさ不意に思ったんだけどさ、おまえしねよ
>>654
フリーのC使うよ。
657デフォルトの名無しさん:03/08/13 16:16
>>651
エラーコードも書かずに原因を教えろっていう気か?
>>654を要約すると、
(高級言語勉強するような)努力するくらいなら、金払うよ。
ってことで。
>>658
あのさ、すっごく言いにくいんだけど、

おまえ、高級言語の意味について調べたほうがいいよ

>>659
(VBみたいなクソ)(高級言語勉強するような)努力するくらいなら、金払うよ。
ってことで。

なら文脈通るが。
>>658
確かに間違ってるな、高級言語はどちらかと言えばCとかアセンブラより
VBの方が当てはまる。(どちらかと言えばじゃないか、)
>>655
オマエガナ
すいませーん教えてください
マイドキュメントのPathはどこからどうやって参照できるものですか?
>>654
一本釣りですか?プラグインごときで速くなる代物じゃないだろ>VB
>>664
バカがまた一人。
>>665
バカに掛かるバカ。
>>663
CreateObject("WScript.Shell").SpecialFolders("MyDocuments")
>>667
ありがとー でたよー
ここがVBスレか・・・( ´,_ゝ`)プッ
>>669
あなたって、ど粘着さんねぇ。
C言語のほうがVBより高級言語だと思い込んでしまう人は、
CのほうがVBより「高級」だというコンプレックスがあるんだろうなあw
>>671
VBとCが逆になってますよ。
「開発速度」これしか勝ってるの無いからなぁ。。
アンチVB厨は馬鹿の法則どおりだな。
675デフォルトの名無しさん:03/08/13 18:28
>>672
間違ってないと思うが?
アンチVB厨は馬鹿なんだからほっとけよ。
C言語が低級なのを高級アセンブラと例えられているのすら知らないのだろ。

高級アセンブラで検索するとCが出てきてしかもCは実は低級という記述まである。
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=%E9%AB%98%E7%B4%9A%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%A9
もういいだろ、お前ら。
間違った見識のままイ`。
このスレでやんなよと。

  ↓次の質問ドゾー
>>671はアンチVB厨じゃなくてVB厨でしょ。
679デフォルトの名無しさん:03/08/13 18:37
>>677

じゃあ質問。マウスカーソルがボタンの上を通過するとボタンの色がかわるようにしたいです。
どうすればいいですか。マウスカーソルがはずれたら元の色に戻るようにもしたいです。
>>678
うん。正しいことを言っているVB厨。
そして>>672が間違ったことを言っているアンチVB厨
681678:03/08/13 18:39
あ、>>672のことをいっていたのか
682678:03/08/13 18:39
>>680
すまん。流れを読み間違えていた。
683679:03/08/13 18:54
マジ質問です。
684679:03/08/13 18:58
Mouseoverとかないし(つoT)
685685:03/08/13 19:01
だれか…
a^3 = b^3 + c^3
が成り立つa,b,cを教えて…
>>684
mousemoveはありまつ!とか言ったら殴る。

>>685
for三つで計算させたらどうだ?
a = b = c = 0
687685:03/08/13 19:03
>>686
やってみてくれ!!
計算結果がでてこないんだ…
>>687
for a = 0 to 1000
for b = 0 to 1000
for c = 0 to 1000

if a^3 = b^3 + c^3 then
debug.print a & " " & b & " " & c
end if

next
next
next

とかじゃあかんのか?
689685:03/08/13 19:07
>>689
実行してみてくれ!!
頼む!!
こいつなんやねん。
ふぇるまーのさいしゅうていり?
692685:03/08/13 19:11
>>691
大当たりvv

実行しても結果がでないワケですよ
693デフォルトの名無しさん:03/08/13 19:11
>>686
それはありまつけど、それでできるんでつか?
あれはそれぞれが整数の場合であって、少数ならもしかしたら。
695685:03/08/13 19:22
>>694
あー。
そぅっすね…

それならありえますねぇー
なぁーんだ
696679:03/08/13 19:51
(つД`)
>>679
タイマでマウスを監視してボタンの範囲内かどうか全てチェックする。
すごいメモリ食いそうでつね!
VBからExcel操作した時なんかは、WorkbookやWorksheetオブジェクトも
後でNothingした方がいいのですか?
今ひとつ意味は分かってませんが、オブジェクトはだいたいNothingしてます。。
>>698
は?

>>699
うい
>>700
バカに出来るほど良い考えでもないと思うが。
702679:03/08/13 20:44
>>697
なんとなくわかった気がしまつ(つД`)
結構面倒なことしないといけないんでつね(つД`)
ボタンのOVER処理をフォームのマウスムーブでやってもいいけど、フォームぎりぎりに
ボタン置いたときのムーブを捕まえ損ないそうだなぁ
>>703
>701が良い方法を出してくれるだろう。
サブクラス化して、WM_MOUSELEAVE をトラップ、かな。
やったことないけど。
マウスがウィンドウから離れたことを知るには?
http://fumiyuki-web.hp.infoseek.co.jp/tech/tech006/
不毛なコーディングをするなあ。
>>707
お前が不毛なコーディングをしてるのは分かったから邪魔。
夏厨はさっさと消えてね。
216 名前:名無したん(;´Д`)ハァハァ[sage] 投稿日:03/08/13 12:48 ID:FaAQbAh/
ナツチュウとピカチュウの見分け方を教えてください(’▽’)ノシ

217 名前:名無したん(;´Д`)ハァハァ[hage] 投稿日:03/08/13 12:52 ID:f4nb5ucB
>>216
電気を放つかデンパを放つかの違い
VBでVC++っぽいことやるならサブクラス化は避けて通れないだろうなぁ。
まあ、俺ならやらんが。設計というか、コンセプトというか、基本から
見直したほうがいい。
大抵のVB使いはVC++できないからやってるんだよ
>>712
よくわかってんじゃねぇかバカ。でもな。VBにも良さがあんだよ。
わざわざ、VCなんかで簡単なプログラムなんて作る気にならん。
適材適所なんだよ
サブクラス化って別にたいしたことじゃないだろ。
>>714
サブクラス化つってもピンからキリまであるからね。
どの辺のことを言ってるの?
>>715
>サブクラス化つってもピンからキリまであるからね。

WndProc取り替えるだけっしょ。
VBのOOは継承に対応してないし。
>>716
ああ、その程度ならたいしたことじゃないね。
こちらの方で質問した方が良さそうなので移動してきました。

URLをINETコントロールで送信して認証し、更にURLを取得するようなアプリを作成していたのですが
(正確には、手動でIDやパスワードを入力して認証させるのを自動化したプログラムです。)、最近
サーバー側の認証方法が変更され、"user-agent"を指定しないと認証が失敗するようなのです。
で、それを指定する方法が良くわからなかったので教えてください(Mozilla/4.0を指定すればよいらしい)。
719718:03/08/14 11:01
こんな感じの処理をしています

Dim strURL As String
Dim bin() As Byte
Dim fnm As String

bin() = Form1.Inet1.OpenURL(strURL, icByteArray)
Open fnm For Binary Access Write As #1 Len = 32000
Put #1, , bin()
Close #1
>>679
SetCapture API と MouseMove イベントでもできる。
721デフォルトの名無しさん:03/08/14 14:57
If Else より Select Case の方が早いとどっかで見ましたが、
比較するのが2パターンの時でもSelect Caseの方が早いのでしょうか。
>>721
可読性下がるし不等号使えないし、あんまり使いやすくなさげ。
723デフォルトの名無しさん:03/08/14 15:07
>>718
InternetOpenの第一引数に指定すればいいんだと思う。
ところで俺も今inetでソフト作ってるんですがHttpOpenRequestでつまずいてます
よかったらINET部分のソースだけ晒してもらえませんか?
>>723
Public Sub Send()
urlcomp = UrlCrack(URL)

hConnect = InternetConnect(hSession, urlcomp.HostName, urlcomp.Port, urlcomp.UserName, urlcomp.Password, INTERNET_SERVICE_HTTP, 0, 0)

If hConnect = 0 Then
Err.Raise 600, Description:="InternetConnectエラー。"
End If

method = "GET"
senddat = vbNullString
sendlen = 0

hHTTP = HttpOpenRequest(hConnect, method, urlcomp.UrlPath, "1.1", Referrer, 0, INTERNET_FLAG_EXISTING_CONNECT, 0)

HttpSendRequest hHTTP, vbNullString, 0, senddat, sendlen
End Sub
>>722
レスありがとう。
Bool型などでTrueかどうかなんかの時にどうかなと思ったんす。
Elseの時に、あれ?これ何の条件だっけ、って時にCaseだけ見れば書いてあるし、とか。
726デフォルトの名無しさん:03/08/14 15:22
>>724
ありがd!
>>722
不等号使えるよ
WINXP VB6 IE6
今WININETのプログラムを組んでるんですが
InternetOpen→InternetConnect→HttpOpenRequest→HttpSendRequest→InternetReadFile
で試してるんですけどInternetReadFileのBUFで空データしか返してくれません
ちなみにInternetReadFileのソースは

Do
SucsessFlag = InternetReadFile( _
Session03, _
Buf, _
HtmlSize, _
HtmlReadSize)
HtmlReadedDate = HtmlReadedDate & Buf
HtmlReadedSize = HtmlReadedSize & HtmlReadSize
If ((HtmlReadSize = 0) Or (SucsessFlag = 0)) Then Exit Do
DoEvents
Loop

です、ご指導お願いします。必要なら他の部分のソースも晒します
729728:03/08/14 15:26
あ、Successのスペル間違ってる。・゚・(ノД`)・゚・。
>>728
死ねクソマルチ♪
>>728
HtmlReadSizeに0を与えてる。
Bufにメモリが確保されてない。
そもそもInternetReadFileかそれ以前の関数が成功してない。
732728:03/08/14 15:39
>>731
ありがとうございます
Session03に値は返ってきてるからハンドルの処理は間違ってないかと。
確かにHtmlReadSizeに0を与えてました。変えて試してみます
>>732
2番目黙殺してるところを見ると前途多難だなぁ・・・
734デフォルトの名無しさん:03/08/14 15:41
VBでも多態が実現できるという事を聞いて、MSDNを見ながらコードを書きました。
やりたい事としては、RecordというクラスにFieldsというファンクションを作り、
戻り値としてFieldクラスへの参照を受け取りたい、という感じです。
引数はLongあるいはStringの値とし、型によって内部の処理は変わります。
(要は、ADOのRecordsetっぽい動きをさせたい)

インタフェースを以下のように作りました。

InterfaceA.cls
Public Function Fields(ByVal Index As Long) As Field

InterfaceB.cls
Public Function Fields(ByVal FieldName As String) As Field

で、それを実装するクラスRecord.clsに
Implements InterfaceA
Implements InterfaceB
と宣言し、いざ実装という段階になったのですが・・・

コンパイルを通す為には、
InterfaceA_Fields
InterfaceB_Fields
というファンクション名にしなければならないようです。
クラスの外側からも、Fieldsというファンクションではなく、上記のような
名前のファンクションがそれぞれ定義されたような形になります。

これだと単にファンクションを違う名前で定義したのと変わりないような気がするのですが・・・
そんな物ですか?
それとも、私が何か勘違いをしていますか?
>>734
多態って言うかオーバーロード?
736728:03/08/14 15:45
>>733
あ、すいません黙殺しtわけじゃないんですが。
普段変数のメモリ確保はvbに任せて意識してなかっただけです
それとも俺がわかってないだけだったりして・・・
多態

 AAクラス  「しゃべる」メソッド
  ↓      ↓
(???) <○○○)

モナー extends AA
  ↓
(´∀`) <オマエモナー)

 ギコ extends AA
  ↓
(゜Д゜) <逝って良し!)


dim character as AA

set character = new モナー
charcter.しゃべる      ←オマエモナー

set character = new ギコ
charcter.しゃべる      ←逝って良し!

分かりやす!
739734:03/08/14 15:53
>735
それです。

>737
あ、それが多態っていうんですか。
すんません、勉強中なのでへんな覚え方してしまっていました。
分かりやすい解説、ありがとうございます。

質問しなおします。
VB6でオーバーロードはできないって事でしょうか?
740728:03/08/14 15:53
あ、やばいHttpQueryInfoでサイズすら返ってこない
ちなみにINETの接続部分は

'WININETで接続
Session02 = InternetConnect( _
Session01, _
"www.yahoo.co.jp", _
INTERNET_DEFAULT_HTTP_PORT, _
vbNullString, _
vbNullString, _
INTERNET_SERVICE_HTTP, _
0, _
0)

'WININETによる要求の作成
Session03 = HttpOpenRequest( _
Session02, _
"GET", _
"index.html", _
"HTTP/1.0", _
"http://www.yahoo.co.jp/", _
0, _
0, _
0)

となってます。詳しい方がいたらよろしくお願いします。
>>740
InternetOpenが無い。
>>740
hHTTP = HttpOpenRequest(hConnect, method, urlcomp.UrlPath, "1.1", Referrer, 0, INTERNET_FLAG_RELOAD Or INTERNET_FLAG_EXISTING_CONNECT, 0)
>>739
Variantで渡して一つの関数で処理?
744728:03/08/14 15:59
>>741
あ、すいません勝手に省略してしまいました
InternetOpen部分は
'WININET初期化
Session01 = InternetOpen( _
USER_AGENT, _
INTERNET_OPEN_TYPE_DIRECT, _
vbNullString, _
vbNullString, _
0)
です。やっぱ全ソース晒した方がいいですか?
>>742
はい、そうしてるつもりなんです、HttpOpenRequest部分は値を返してくれるんで間違ってないと思います
(その値があってるかどうかは謎ですが・・・)
>>744
hHTTP = HttpOpenRequest(hConnect, method, urlcomp.UrlPath,






"1.1"








, Referrer, 0, INTERNET_FLAG_RELOAD Or INTERNET_FLAG_EXISTING_CONNECT, 0)
746728:03/08/14 16:04
>>745
あ、そこはそうした方がいいんですか。
"1.1"にしてみましたけど結果は一緒でしたです
>>743
多分それしかない。
複数の引数を渡したいときは配列をVariantに入れて・・・



できればやりたくない実装かも。
748734:03/08/14 17:21
>743 >747
ども。やっぱりそうですかー。
勝手にキャストされて予期しない動きをしそうなのでVariantは怖いです。
素直に2つの関数を作る事にします。
>>734 たぶん違うだろうけど

Dim rec As Record, fld As Field
Dim a As InterfaceA, b As InterfaceB

Set rec = New Record
Set a = rec
Set b = rec

Set fld = a.Fields(123)

Set fld = b.Fields("abc")
750デフォルトの名無しさん:03/08/14 19:33
( ・∀・)つ
        ⊂(・∀・ )
752デフォルトの名無しさん:03/08/14 21:34
age
753デフォルトの名無しさん:03/08/14 22:23
すいません。荒れている方のスレにも書き込んだのですが
こちらの方が適当だと思い書き込ませていただきます。

vbs なのですがユーザーが入力したメールアドレスから
ドメイン名のみを取って来たいのですが
うまい処理が見つかりません。

具体的には

[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

のような文字列からdomainだけを返すような
処理を行いたいです。
どなたかよろしくお願いします。
>>753
お前が荒らしてるだけだろ。
>>753
お前が言ってるドメインはドメインではない。
InStr()で何とかなりそうな気が・・・
>>753
@から右を抜き出したいんじゃないの?
758753:03/08/14 22:34
みなさんありがとうございます。
>>754
いえ違います。
>>755
すみません。
>>756
考えましたがダメでした。。
>>757
文字列domainのみを取得したいのです。。。
>>753
仕組上、本当に正しい結果を得るにはローカルだけでは無理。
>>758
それだけのパターンしかないのなら、Instr()で総当たりで
取れるだろうけど、パターンがずっと多いなら無理じゃないか。
要するに
2ch.net
mail.2ch.net
2ch.ne.jp
host.2ch.com.cn
のいずれも2chを得られるようにしたいのか?
762753:03/08/14 22:45
>>761
はい。そのとおりです。
そんで、その「2ch」部分も不定なんだろ。
全パターン分かるならいけるかもしれんが、まず無理だな。
>>762
DNSの助けが必要じゃな。
質問なんですが、activex.dllの中の配列って外には公開できないんですか?
classファイルに書くと、定数や配列〜はパプリックメンバー〜てなエラーが
出て書けないし、標準モジュールの中にpublicで書いても外から参照できない
し、配列とか構造体は外には公開できないという仕様なんでしょうか?
766デフォルトの名無しさん:03/08/14 23:37
現在、バイナリファイルを読み込んで、そのファイルのスペックシートみたい
なものをWORD形式のファイルで出力するものを作りたいと思ってます。

 WORDのVBAでやろうかとも思ったのですが、バイナリファイルを扱う方法がわ
かりませんでした。VBAでこういったことをするのは不可能でしょうか?
 もしくは、VBからWORDを操作する方法はあるでしょうか?
 もしくは、WORDのファイル形式について解説してくれているページとか
あるでしょうか?
>>766
あります。
768767:03/08/14 23:39
すみません、どの方法があって、どうやればその方法を知ることができるかも
教えてくださると助かります。
770767:03/08/14 23:59
>>769
ありがとうございます、助かりました。
771デフォルトの名無しさん:03/08/15 00:13
あの、DLLをインスタンス化(ここは普通のEXE)して、ACTIVEX.EXEのメソッドを通してByrefで
そのオブジェクトを渡し、その渡されたオブジェクトをActivex.EXE側は、自前
のオブジェクト変数に代入し、参照を持ち続けます。これを、いくつかのActivex.Exe
を相手に繰り返し、ひとつのインスタンスを複数のActivex.Exeが参照している
状態にします。この時、DLLの中の時間がかかる処理を持つメソッドが呼ばれた
場合、最初にインスタンス化した普通のEXEが固まるのでしょうか?
また、そのメソッドが呼ばれて、処理を行っている間に、他のACTIVEX.EXEとかが
そのメソッドを呼んだらどうなるのでしょうか?教えてください。
つまり、そのdllの処理はどこ持ちなんですか?という事です。
長文+全角英数読む気しねー。
誰か要約して。
>>771
インスタンス化の意味をもっと詳しく調べなさい。
>>771
まああれだ。作って試せ。
775デフォルトの名無しさん:03/08/15 00:33
VB6からWin2kのフォルダ・ファイルへのアクセス許可(セキュリティ)を
取得するAPIなどがあったら教えてください。
目的はアクセス許可の設定されている全フォルダ・ファイルをリストアップすることです。
Webを探したのですが、探し方が悪いのか、見あたりませんでした。
776デフォルトの名無しさん:03/08/15 00:33
>>774
ためしてみたんですがよく分からないんです。ってか
ためして、わからないから聞いたんですけど。まぁ
少なくとも最初にインスタンス化したEXEは固まって
ないみたいですね。
777776:03/08/15 00:44
>>776
いや、違う、参照を保持しているすべてのEXEが固まりおった。
なんてこったい。
778デフォルトの名無しさん:03/08/15 02:33
age
779デフォルトの名無しさん:03/08/15 02:40
>>766
rtfのほうが、マークアップなテキストファイルで扱いやすいし、汎用的だよ。
あらゆるバージョンのMS-Wordで読み書きできるばかりか、
多くのワープロでも読めるし、最悪、Wordpadでも読み書きできる。
仕様書はMSDNライブラリにある。探しにくいけど、確かOffice関係のところ。
>>779
変なタグと思いっきりエンコードされた日本語。
日本人にはおいしくない仕様ですな。
781デフォルトの名無しさん:03/08/15 10:25
>>780
それでもDOCよりはましだろう。

>>766
HTML形式で書いて、拡張子を.DOCにするだけでもMS Wordでよめるよ。
782766じゃないけど:03/08/15 10:33
>>781
本当だ。。。
783デフォルトの名無しさん:03/08/15 10:51
>>761
Regular Expressions つかって

Dim objRE as RegEx
Set objRE = new RegEx

objRE.Pattern = "[\s]*.([^\w]*).[a-zA-Z]{3}" ' .com/.net/.org/.int などのみ
objRE.Execute "www.2ch.net" 'ここのテキストを色々かえてみる
MsgBox objRE.Item(0).Value

テストしてない。間違ってたらスマソ。
784781:03/08/15 10:53
>>782
こまかい制御はできないけど、十分便利でしょ。
785デフォルトの名無しさん:03/08/15 11:12
age
786デフォルトの名無しさん:03/08/15 11:30
FMV-BIBLO NB14B/Rで、BEEP音がなるプログラム実行しても音が出ません。
perlでは音が鳴るのですが、なんかほかの命令いるのですか?
ヘルプのプログラムコピペして実行しても音出ませんでした。

>>786
そうですか。残念でしたね。
>>786
富士通に言え。
>>786
どんなコードで鳴らそうとしてるのだね・・・
790デフォルトの名無しさん:03/08/15 11:40
別スレに書き込んだのですが、削除依頼がでていたので
ここに書き込みさせていただきます。

Inetコントロールを使って、HTTPSページへデータを
POSTしたいのですが、以下のメッセージが表示されて
処理を行えません。

12045:クライアントの認証がセットアップされていません。

解決方法等をご教授お願いします。

ちなみに、HTTPページでは問題ありません。
目的としては、サーバ側のCGIにデータを送信するためです。

環境
Windows2000+VB6(sp5)
おまいら未だにVBから抜け出せないでいるのかよ(w
言語ピラミッドの最下層に位置してるしな(w
おまいら、今日は釣られないぞ!
声出していこうー!おー!
上層を支える重要な部分だよ。
次の質問どぞー
795デフォルトの名無しさん:03/08/15 11:51
ビープ音を鳴らす方法を教えてください。
print "\a"
>>790
HTTPSとHTTPの違いを勉強して下さい。VBの知識だけでは解決できません。
798デフォルトの名無しさん:03/08/15 11:56
>>796
フォームに\aと書き込まれるだけでした。
>>798
ネタをネタと、、、と釣られてやろう。
Beepという命令あるじゃん。
800デフォルトの名無しさん:03/08/15 11:59
>>799
できました。
ありがとうございました。
>>796
Cでもないし・・・なんだろうな。これは。
>>797
SSLによる認証と暗号化が行われる。
>>801
Perl
804803:03/08/15 12:06
セミコロンがねーか
805790:03/08/15 12:23
>>797

クライアント側であまり意識しなくてもSSLを使えると思って、
Inetを使っているのですが・・・

ちなみにInetのオプションをGETにすればできています。
POSTではさきほどのエラーがでてしまいます。
そういうものなのでしょうか・・・

>>766
プロシージャ経由で渡すのは問題あるのか?
807山崎 渉:03/08/15 15:13
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
808デフォルトの名無しさん:03/08/15 16:39
sage
809デフォルトの名無しさん:03/08/15 18:52
810デフォルトの名無しさん:03/08/15 19:07
ショートカットの幼い娘!といった感じのいずみちゃんです。
部屋の中のベンチでローターをクリにあてしきりにオナニーに励み、
男性二人に責められて喘ぎまくる姿が妙に色っぽいです。
感じやすそうなピンクの乳首もいいですよ。
セーラー服いっぱいで無修正!
無料ムービーいい感じだよ。
http://www.pinkschool.com/
811デフォルトの名無しさん:03/08/15 19:39
VBAからCGIにPOSTするプログラムを作っています。

日本語を含むString型からPOSTするデータを作るときにapplication/x-www-form-urlencodedに
エンコードするのはどうすればいいのでしょう?
今は泥臭くmidで1文字ごと切り出し、ascで正負を判定し、必要なエスケープ処理を行っています。
>>811
それでいいじゃないか。
>>811
私も実装しました。適当ですけど。
814デフォルトの名無しさん:03/08/15 20:42
>>801
Print は立派なVBの関数だが?
815デフォルトの名無しさん:03/08/15 20:47
>>814
\aでアラームを鳴らせることについてだろ。
結局beep関数のお世話になるんでしょ?
ひっぱるほどのネタでもないが・・・
WAV鳴らしてもいいし。
818811:03/08/15 22:09
昨日検索したときは、なんかのDLL(職場行かないとわからない)使うバージョンが見つかって、
試してみたけど2バイトコードはエスケープされなかったので質問してみました。
改めて検索してみるとFAQだったようですね、世界中あちこちで実装されていました。
# 何を検索していたんだ。 > オレ
ありがとうございました。
819デフォルトの名無しさん:03/08/15 23:43
あるクラスのインスタンスを参照している複数の変数があったとして、
それらが同じインスタンスを指しているのかを調べる事はできるでしょうか?

Dim a As Class1
Dim b As Class1

Set a = New Class1
Set b = a

If a = b Then

とすると、「オブジェクトはこのプロパティ又はメソッドをサポートしていません」
としてエラーになります。
ユニークなオブジェクトIDを返すようなプロパティを作成するしかないでしょうか?
>>819

If a is b Then
>820
おぉぉ、出来ました。
なるほどIsか・・・

ありがとうございまっ
822デフォルトの名無しさん:03/08/16 02:31
age
あの、拡張子がSCRのスクリーンセーバーをディストリビューションウィザードで
パッケージにしようとしたのですが、何故かできたパッケージがちゃんと動きま
せんでした。その時は、しょうがないのでダミーのEXEといっしょにパッケージ
に無理やり詰めてどうにかしたのですが、SCR単独ではパッケージ化できない
とかあるんでしょうか?
824デフォルトの名無しさん:03/08/16 22:13

コーポレイトソフトウェアていうサポセンの馬鹿が
PGに喧嘩売ってます。

http://money.2ch.net/test/read.cgi/haken/1057486349/287

腹立ちました。
みんなでやっつけにいこう。
>>824
一人でやってろ
826デフォルトの名無しさん:03/08/16 23:19
ってか、PGに馬鹿が多いのは事実だ。824のリンク先も馬鹿っぽいが。
相手すんなよ。
828デフォルトの名無しさん :03/08/17 00:00
Const AAA = 0

でなく  

Const AAA = &H0&  

と指定するのはどういう意味あんですか?
初心者だがVBで以下のようなことをしてるのを見た
Set DBEngine = Nothing
何が起こる?

普通に考えれば、以降DBEngineにアクセスできなくなりそうなのにvb6で試してみたら何も起きない。言語が用意した変数は特別扱いされる?
>>828
AAAが16進のLong型だってことが一目で分かる。
Const AAA as Long = &H0
の方がお勧め。
>>829
インスタンスの参照中は無視される。仕様でつ。
>>831
そうすると、
Set var = object
Set var = Nothing
Debug.Print var ' <- こんなことはできんか

だと var は object ?(でもたしかNothing)
ますますわからんくなった。
833デフォルトの名無しさん:03/08/17 00:17
>>829
変数DBEngineにNothingを代入する。
ttp://www.gj.il24.net/〜nakasima/vb/tech/Nothing/index.htm
834デフォルトの名無しさん :03/08/17 00:21
>>830
ありがと
VB6でENUMで型指定ってできないんですか?

ENUM AAA
AAA1 = 0
END ENUM
>>834
Enumについてのヘルプ嫁
>>834
列挙型(Enum)とユーザー定義型(Type)を混同してる?
混同ついてに、VBのユーザー定義型はCの構造体に似てるけど微妙に違う。
837デフォルトの名無しさん :03/08/17 00:28
>>835
読んだが良くわからん
Longになっちゃうの?
838デフォルトの名無しさん:03/08/17 00:32
>>837
多分そう。
>>833
参照カウンタはわかる。しかし、DBEngineの場合
Private Sub Command1_Click()
Set DBEngine = Nothing
Debug.Print DBEngine.Workspaces(0).Name
End Sub

で、#Default Workspace#が表示される

ここで、言語が用意したDBEngineという変数(実は変数じゃなかったり?)は特
別扱いされてるのかと思った。
>>840
もまえ、宣言時にNewしてない?その場合はの動作はこうなる。
Set DBEngine = Nothing ←インスタンス破棄
Debug.Print DBEngine.Workspaces(0).Name ←ここでインスタンスが新たに生成される
842デフォルトの名無しさん:03/08/17 00:53
関数呼び出しんとき hoge(a, b) て言うのとhoge a, b てできるけど
これってなんか違いあるんですか?
Cからやってるんで後者がどうにも気持ち悪く、前者でやってるんですが、
MSのサンプルソース見たら後者で呼び出してるので。

>>841
そうか、試したプログラムは840だけなんだが、VBが

Dim DBEngine As New DAO.DBEngine ' こうか?こう書くんか?

みたいなことをやってるということなのか。

このことを確認する方法ってあるか?オブジェクトの同一性を確認する方法
(この場合、Is は使えん)

ひとまずはありがとう。もれが見たプログラムは

DBEngine.BeginTrans
Set DBEngine = Nothing
'いろいろ
DBEngine.CommitTrans

などとやってて。これバグってるよかーん。試してみるよ。ほんとに
ありがとう。
同じですよ。自分は断然前者がいいと思いますが。VB初心者とかは後者がおおいっすね
>>844
>>842ですすいません
>>844
そうなんですか。じゃあ今までどおり前者でいきまつ。ありがとん。

前者で不便なのってFunctionの時に戻り値無視する場合
いちいちCallしてやらなきゃいけないんですよね。
後者の場合Callするとシンタックスエラーだし。

どうにも理解しかねる言語仕様…
847840:03/08/17 01:02
>>842
VB初心者の840だが、他の質問教えてもらったのでお礼

たぶん、VB は括弧を省略する文法を用意したのだが、関数の場合は値を返す都合上
func1 func2 a, b, func3 d
などとすると構文解析できない(どれがどの関数の引数かVBがわからない)から、
ある場面では括弧省略できないだけだと思うぞ

違ったらすまんな
その後

Private Sub Command1_Click()

Set ws = DBEngine.Workspaces(0)
Set db = ws.OpenDatabase("db1.mdb", 0, False)

DBEngine.BeginTrans
db.Execute "insert into t1 values('a','b');"

Set DBEngine = Nothing
Set ws = Nothing

'DBEngine.Rollback
DBEngine.CommitTrans

End Sub

などとしてみたがコミットもロールバックも問題ない。

Private Sub Command1_Click()

Dim a As New DAO.DBEngine
Debug.Print a Is DBEngine ' True

End Sub

などとやってみたら True になったからDBEngineはSingletonみたいだな。破
棄されてもトランザクションが保持されてるのはそういうものだと思っておく
ことにするよ。でも解説できる人はオナガイシマス
>>848
「参照設定」はアーリーバインディングだからな。
>>848
DAOよく分かんないけど、途中の
Set DBEngine = Nothing
は意味無いし気持ち悪いね
ははあ、だんだんわかってきたぞ。VBのDim ... as newというのはEarly Binding
の宣言なんだな、コンパイル時にメソッド呼び出しとかが決定されるから
DBEngine.BeginTrans
Set DBEngine = Nothing
DBEngine.CommitTrans
としても最後のCommitTransで呼び出すべきメソッドがわかってるんだ。

で、BeginTrans, CommitTransはインスタンスの状態に関係ないからエラーが
起きない。違う?つかCOMも知らんから妄想の世界だ
>>851
>BeginTrans, CommitTransはインスタンスの状態に関係ない
関係あるよ。

Set DBEngine = Nothing ←参照が外れる(インスタンスの破棄ではない)
DBEngine.CommitTrans ←自動的に参照し直す

インスタンスの破棄はどこからも参照されなくなったとき自動的に行われる。
つまり「参照設定」でアーリーバインディングされたインスタンスの破棄は
アプリケーションの終了時に行われる。
>>852
>>851じゃないけど、
DBEngineって「参照設定」しただけでアプリケーション実行中は
オブジェクト変数も無しにインスタンス生成されんの?
>>853
その辺の実装がどうなってんのかはわかんないね。挙動からの推測にすぎない。
>>852
わかりました。完璧!これで安心して眠れます。
VBの不快仕様がわかりました。
Early Bindingな変数を
Set xxx = Nothing
した場合にエラーになるべきなんじゃー>VB
>>855
それがねぇ、Set xxx = Nothingは破棄ではなくて参照を外すだけだから…。
857855:03/08/17 02:50
まともに考えたらコンパイルして参照されている部分を見つけたらスタートアッ
プルーチンにオブジェクト生成するコードが含まれるんじゃない?
たくさんオブジェクトを参照設定して実行してメモリサイズが変わるか
見ればいいんだな。今度やってみよ
>>857
コンパイルオプションに「使用しないActiveXコントロールについての情報を削除する(E)」
ってのがあるじゃん。
859855:03/08/17 03:03
>>856
ちょっと思った。

A.BAS
Sub xxx()
Set DBEngine = Object ' <- DBEngine はたまたま名前が被っただけ
End Sub

B.BAS
Dim DBEingine as New DAO.DBEngine

となってても実行できるように考慮してるのかなあそれでも「参照設定」はグ
ローバルに効くだろうからSetしたらエラーになって欲しいと思うんだが。ま
あいいや。なんか都合の悪い場合があるか言語の一貫性みたいなモノの都合だと
考えよう。

いや、ほんとVB知らんのよ(さっきのCommand1_Clickが俺がはじめて作った実
行できるプログラム)
860855:03/08/17 03:07
>>858
DAOってActiveXコントロールなん?
いや、ごめん。聞く前に調べるべきね。
もう寝るわ
みなさん、ありがとうございました。
861通りすがり:03/08/17 04:42
DBEngineクラスのメンバが全部static?
となると>>855の言うとおり
Set DBEngine = Nothing
出来るのはおかしいよなぁ・・
変数じゃ無いもんにNothingをSetするなんて考えられない
855氏ね
863デフォルトの名無しさん:03/08/17 10:52
>>850
意味はないかもしれんが、気持ち悪くはないだろ
8647:03/08/17 11:05
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼
 ☆★ 無修正DVD★☆なら 新宿歌舞伎町直送 ☆★

人気爆発新作ベスト9入荷
  堤さやか引退特集 憂木瞳 プロジェクトX No8 ベイビーフェイスをやっちまえ
 白石ひより・愛葉るび SNAPSHOT 地下映像陵辱援交 すぎはら美里痴女教師
 店頭販売の売れ筋のみ厳選してみました 安心の後払い
     http://book-i.net/moromoro/
   白石ひとみ 小森詩 山田まり 長瀬愛
@@ 及川奈央 レジェンド @@ 堤さやか 東京バーチャル 依然大好評
    
  サンプル画像充実  見る価値あり  最高画質
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ 
>>863
Nothing入れてからコミットしてるのが気持ち悪い
すげぇくだらない質問ですまないんだけど、もし、ちょっと本腰を入れてアプリ
をつくったとしたら、プログラムのソース全部で何行ぐらいになる?
俺の作ってるのはどの程度手がかかってるとか比べてみたいから、
教えてちょ
>>866
どんなものを作るかによるだろ。
「本腰を入れて、お母さんに手紙を書くと、何文字くらいになりますか」
分かるか、おい。











             ま た ア ホ か           











869デフォルトの名無しさん:03/08/17 14:25
>>865
そこまで見てなかった。納得。
870デフォルトの名無しさん:03/08/17 14:39
VB6、ADOでAccessのMDBからデータを取ってくる処理を勉強しています。

接続しているMDBは日報みたいなもので、とりあえず「日付」と「本文」しかありません。
ここから、日付の月でループさせて、

  ・2003/01/01
   ○○○○○○○○○○○○○
  ・2003/01/02
   ○○○○○○○○○○○○○

のように、一月分の「日付」と「本文」を一つのテキストファイルに書き出し、
MDBに登録されている月の分、全部を出力するものをと考えています。

この日付が、以後増える予定で、月も2003/01→2003/03などと、dでしまう月もある為、
月別にどのようにループさせてよいか分からず困っています。

一般的な案で良いので、良い案があればご教授おながいします。
>>867
まぁ、そう来るとは思ってたんだけどね。じゃあ、通信プログラムを組んだ
としたら、そう、まぁ、チャットとかでいいや
負けを認めないウンコだなぁ。
>>870
月日でソートしといて、今出力中の年月と違う年月が出てきたらファイルを新規に作成すればいいと思う。

ソートがだめなら、毎回追加書きでファイルを開いて書き込めばいい。
性能がちょっと心配だが。


>>872
あふぉは、放置汁。
>>870

単に昇順にソートしてからループすればいいだけでしょ。で、日付がわかったときに
別ファイルを作成すると。

面倒だったら、月ごとに SQL を発行するという手もあり。時間はかかるけど、ループ
処理が適当で済むし。
>>869

うぉ。かぶった。

>>871

チャットか。100行ぐらいかな、せいぜい。いつもサンプルプログラムしか作らないしね。
876875:03/08/17 15:12
>>875

>>869 じゃなくて、>>873 だった・・・ なんでこんなミスを・・・
VBの質問とちょっと違うかもしれませんが。。。
最近、Visioを入れたら、VBに「Visioツールバー」が出るようになりました。
これは消しても、VBを起動する度に復活します。
これを"VB側で"出なくする方法ってありますか?
878870:03/08/17 15:43
>>873>>874
月ごとにSQLで取得することしか思いつかず、苦労していました。
全件取得してから処理することにします。
どうもありがとうございました。
>>877

アドインとして登録されてるんだろうから、その辺の設定を見直せば?
880デフォルトの名無しさん:03/08/17 20:52
年賀状ソフトなんかでよくある、TextBoxに名前を入れると、
別のTextBoxに振り仮名を自動で表示させたいと思っています。

ExcelのVBAにPhonetic関数なる振り仮名を自動で振ってくれる
関数を見つけたのですが、VBには同様の関数が見つかりません。

代替手段はありますでしょうか?

>>880
WindowsAPIにあったはず。
882877:03/08/17 21:20
>>879サン
直りました。ありがとうございました!
883647:03/08/17 22:10
>>648-650
どうもありがとうございます。レスが遅れてすみません。

根本的にはOSを変えるしかない、となるとして、
画像をより小さく縮小すると表示ができなくなるという原因を
説明できるようにしておきたいのですが、どう言えばいいやら…。
大きい画像が表示できないのならまだ分かるような気がするのですが。

StretchBltなどを検索で調べてはみたのですが、ピンと来るものが
見つかりませんでした。
>> 647
言い訳を考えてみたw

言い訳1(無能)
 Windowsの仕様です。
 ご指定のOSではそうなんだからあきらめましょう。
 文句はビル君に直接言ってください。

言い訳2(もっともらしい嘘w)
 画像の見た目を出来るだけ崩さないように縮小するには
 その縮小度が大きいほどバッファメモリや処理能力が多く必要になります。
 またOSは要求を処理中に限界に達してしまった場合、
 システム全体を危険にさらすことがないよう処理を中止し
 アプリ側には正常と返す場合もあります。
 今回の場合Win98では限界を超えてしまったために
 このような現象になったものと思われます。

言い訳3(屁理屈&嘘w)
 VisualBasic及びWindowsでは「どんな画像でも表示する」という
 保障はされていませんし、Microsoftにはその原因を提示する義務が
 ないという条件で使用が認められています。
 詳しい原因を提示するにはMicrosoftに
 かなり高額なライセンス料を払う必要があります。
885デフォルトの名無しさん:03/08/18 02:09
age
886デフォルトの名無しさん:03/08/18 11:10
漏れの自宅のパソコンで、参照設定で Web Browser Component が見つからないのですが…
学校のパソコンだと見つかるのになぁ…

どんなソフトをインストールすると、このコンポーネントが入るのでしょうか?
887デフォルトの名無しさん:03/08/18 11:19
ん?なんか
Microsoft Internet Components を選択したら参照が解決しました。
英語版 Windows と何か違うのかな??
888デフォルトの名無しさん:03/08/18 11:20
Internet Controls でっした。
890デフォルトの名無しさん:03/08/18 12:02
自分が作ったプログラムを実行すると、実行前とはクリップボードの内容が変わってしまうため、
プログラムの最後にクリップボードの内容を元に戻そうと思っています。
いい方法はないでしょうか?
>>890
Clipboard オブジェクトってのがあるぞ。
892初めて書き込みます:03/08/18 12:38
失礼します。
最近C言語でのプログラミングを勉強しようとしたのですが、一番
始めにLSI C−86をインストールしてプロンプトを開くと
C:¥>
と書いてあると記載されていました。でも自分のには参考書
C:¥Documents and Settings\>C
と記載されていてそのまま参考書にある操作をしても「指定された
パスが見つからない」とでてしまいます。
調べるとカレントディレクトリを変更できる状態、プロンプトを
開くとC:¥>のみ表示した状態にするにはどうしたらいいんで
しょうか?一応ヘルプなどで調べたんですがその説明はされてませんでした。
ちなみにOSはXPです。
893デフォルトの名無しさん:03/08/18 12:45
まぁここは VB スレッドなんでどこか別のところに言ってくれ。

あと、一応書いておく。
cd \ でカレントディスクのルートに移動できる。
894890:03/08/18 12:49
Clipboard オブジェクトだと元に戻せない内容があるのですが・・・。
オブジェクトの実体のコピーって作れないのでしょうか?
895デフォルトの名無しさん:03/08/18 14:58
 他人が作ったプログラムが「応答なし」の状態かどうか取得する方法を
教えてください。
 IsHungAppWindow を使用すれば取得できるようなのですが、ウィンドウ
ハンドルが必要なため困っています。
 1)プロセスIDからウィンドウハンドルを取得するにはどうすればいいので
しょうか?
 2)他の関数を使えばできるのでしょうか?

OS:WIN2000
開発言語:VB6
>>895

1)
一発では取得できません。ウィンドウハンドルを列挙して、GetWindowThreadProcessId()
で取得したプロセス ID と付け合せるというのが一般的な方法です。

2)
どのみちウィンドウハンドルが必要になるのは一緒です。
897デフォルトの名無しさん:03/08/18 15:40
ところで、 MonthView コントロールを使うには、
なんという名前のライブラリ(?)を参照設定でチェックすればいいのでしょうか?

また、参照設定に現れている各コンポーネントが何をエクスポートしているかを
一覧することはできますでしょうか?
>>894
視点を変えて、自分のプログラムではクリップボードを操作しない。
>>897

参照設定ではなく、Windows Common Control という ActiveX コントロールを
ツールボックスに追加する。

後ろの質問については、ちょっと意図が違うかもしれないけど、オブジェクトブラウザ
や OLE View を使えばいいかも。

>>898

賛成。
900デフォルトの名無しさん:03/08/18 16:12
>>899
レスありがとうございます。
すみません、じつは Access の VBA なので、どうもツールボックスとかは無いようです。
Access のスレッドを見つけたので、そちらで質問してみます。
901890:03/08/18 16:45
それを考えてみたんですけどいい考えが浮かばなくて困ってます。

今やってるのはスプレッドシートを使うプログラム作ってるんですけど、
1行目が数式が書いてある行で、その行のセル値に数式(例えば、"=A2"という値)を入れてます。
その1行目の数式を、2行目の同じ列の数式に設定して、
行を追加した時に、「2行目.copy 3行目」 として数式書式をコピーしています。
この方法だとうまい具合、3行目の同じ列の数式が、
=A2としていたとこの行番号だけが変わってくれ=A3になってくれます。

1行目に数式を書くことによって、プログラムをいじる事なく数式が変えられるので、
この方法でなんとかクリップボードの内容を元に戻したいんですけど、いい方法はないでしょうか?
>>901

VB の Clipboardオブジェクトが対応しているのは、テキストと画像ぐらいしか
なかったはず。それ以外のものに対応したいのなら、API を使ってごにょごにょ
やる必要がある。かなり面倒だと思うよ。
903890:03/08/18 17:29
>>902
やっぱりそうですか。
自分もAPIかなって考えてみてちょっと下調べしてたんですけど、
すんごい面倒そうで他にいい方法ないかなと思ったんですけど。

どなたかこんなのいいんじゃないって案がありましたらよろしくお願いします。
明日の朝また覗かせてもらいます。
もしかしたら凄く初歩的な質問かもしれませんが・・・・・。と言うより、馬鹿な質問かもしれませんが・・・・・。

あるデータの拡張子を関連付けをして、それを開くとVBで作ったアプリケーションを起動して処理する
様になっているのですが、そのアプリが起動中に、再度別のデータを開くと、現在起動中のアプリで
処理する様にするにはどの様にすれば良いのでしょう。
>>904

結構面倒です。後に開かれたほうで多重起動のチェックを行い、先に開かれている
方に対して、ファイル名を教えてあげることになります。

多重起動については、App.PrevInstance や Mutex を、教え方については、プロセス間
通信について調べてみてください。
906デフォルトの名無しさん:03/08/18 19:18
IEEE1394でDVなどからキャプチャをするようなOCXとかは
ないもんでしょうか。
フォームの×ボタンをなくすには、どうすればいいですか?
タイトルバーは消したくないので、borderStyleプロパティ
1−固定(実線)の×ボタンだけ消したいのです。
909デフォルトの名無しさん:03/08/18 23:21
Formをプリント形式でファイルへ出力したい。
Form.PrintFormでForm表示をプリンターへ出力できるので、
DC(デバイスコンテキスト)をファイル出力へ変えてやることで
できるらしいのですがどうやればよいのでしょうか?

API関数で取得するとかしないとか?よくわかりません。
>>908

無効にはできても、消すのは無理だったと思う。無効にするときは、メニュー関係
の API を使う。

>>909

PrintForm では無理でしょ。普通に API で DC をコピーした後、PictureBox に
転送して SavePicture ってのが楽かな?

もしくは、ぜんぜん違う手法だけどサポート技術情報にある方法を使うことになるね。
文書番号: 161299 を参照してね。
911デフォルトの名無しさん:03/08/19 00:26
>>908
ControlBoxプロパティ。
但し最小化最大化も消える。
912デフォルトの名無しさん:03/08/19 01:06
>>907さんあるがとうございます
それにしても高い…
913デフォルトの名無しさん:03/08/19 01:08
>>893さん
ありがとうございました。問題解決しました。それとスレッド間違って
しまってゴメンナサイ。
914647:03/08/19 02:16
>>884
言い訳まで考えてもらってすみませんm(__)m。

>>889
どうもありがとうございます。
英語を斜め読みした限りですが、これで間違いないように思います。
近いうちに実際のマシンで確認してみます。


915909:03/08/19 06:49
>PrintForm では無理でしょ。普通に API で DC をコピーした後、PictureBox に
 転送して SavePicture ってのが楽かな?

 具体的にコードで記述するとどげんとなるとですか?

普通にコンパイルして実行ファイルを作ると、プロジェクトと同じフォルダ内にExeが作成
されますが、これを場所指定で別のフォルダに作成する事はできるのでしょうか?
918デフォルトの名無しさん:03/08/19 10:14
age忘れました
919デフォルトの名無しさん:03/08/19 11:23
Object型変数に格納されているオブジェクトの型を取得するにはどうすればいいのでしょうか?
If TypeOf something Is Class1 Then

If TypeName(something) = "Class1" Then
921919:03/08/19 11:56
>>920 HayaiKaitouArigato-!
922/?:03/08/19 14:11
>>917
できる。
923904:03/08/19 14:29
>>905
回答ありがとうございます。

なんか、難しそうですね。むしろ、前に起動している方を強制終了して新規に動かした方が
楽そうな気もするんだけど、その方法も良く分からないし・・・・・。


App.PrevInstanceについては分かるので、とりあえずプロセス間通信について調べてみます。
もまえのシリアルナンバー教えて
ついでに次スレ
925デフォルトの名無しさん:03/08/19 21:31
顔文字が…っ
927デフォルトの名無しさん:03/08/19 22:36
CoolBarにメニューを設置したいんですが、どうすればいいですか?
ツールバーにメニューをセット
929デフォルトの名無しさん:03/08/19 23:21
age
930デフォルトの名無しさん:03/08/19 23:31
>>928
どういうことですか?
>>930
ネタだから気にするな。
Delphi使えよ
933デフォルトの名無しさん:03/08/20 01:32
初めて、エクセルのVBAをやってみたんですが、
テキストボックスの配列が出来ないようなんですが
どうなってんでしょうか????

教えてください。
>>933
dim textboxes(5) as object

set textboxes(1) = textbox1
...
VBAってコントロール配列使えないんじゃなかったっけか
936デフォルトの名無しさん:03/08/20 10:56
934で配列にコントロールを入れてる訳か
937デフォルトの名無しさん:03/08/20 11:16
VBAって配列使えないのか・・・
イベントとかどうすんだ?
>>937
もちろんコントロールごとにイベントプロシジャを記述するよ。
テキストボックスを複数個用意して、TextBox1,TextBox2・・・と名前を付ける。
コードでMe.Controls("TextBox" & Cstr(i)))と指定する事で、iの値に対応した
テキストボックスへの参照を取得できるが・・・なんかマズー
Accessではこんな感じでできたけどExcelは?でし
こんにちわ。私は現在 VB6.0 を使いVBを勉強している最中の者です。
フォーム上にあるリッチテキストの内容をコモンダイアログの『名前をつけて保存』を使用して
保存する為、以下のようにコードを打ちました。

'----------------------------------

Private Sub mdlDataSave_act()
  CommonDialog.Flags = cdlOFNOverwritePrompt
  CommonDialog.Filter = "ファイル設定(省略)"
  CommonDialog.DefaultExt = "*.htm"
  CommonDialog.ShowSave

  リッチテキスト.SaveFile CommonDialog.FileTitle, rtfText

end sub

'----------------------------------

ShowSaveダイアログで「キャンセル」を押した場合でもコモンダイアログのFileTitleが無い為
以下の保存動作が働いても今のところエラーは出ないようなのですが、あまり宜しくないかとおもうので
できればShowSaveでダイアログを出した後、「キャンセル」を押した場合はShowSave以下の処理を行わずに抜けたいです。
CommonDialogでキャンセルを押した場合の値の取得は何を用いれば良いのでしょうか?
参考書やネットでも調べてみたのですが、見つけられませんでした…

ものすごく初歩的なことかとは思うのですが…ご教授あるいは参照となる場所があれば
誘導していただけるとありがたいです。
941デフォルトの名無しさん:03/08/20 16:36
>>940
CancelError をつかって、エラーを発生させます。

Private Sub mdlDataSave_act()
On Error Goto ErrH
  CommonDialog.CancelError = True

  CommonDialog.Flags = cdlOFNOverwritePrompt
  CommonDialog.Filter = "ファイル設定(省略)"
  CommonDialog.DefaultExt = "*.htm"
  CommonDialog.ShowSave

  リッチテキスト.SaveFile CommonDialog.FileTitle, rtfText
Exit Sub
ErrH:
End Sub
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cmdlg98/html/vbprocancelerror.asp
942940:03/08/20 17:10
>>941
ナルホド、CancelErrorが怪しい予感はしていたのですが…
On Error文で書けばよかったのか…恥ずかしながら盲点でした…

貼ってくださったリンクの方も参照して勉強いたします!
本当に初歩的な質問にもかかわらず有難う御座いました!!
943942:03/08/20 17:11
↑に書き忘れですが、教えていただいたコードで無事動作確認できました!
本当にありがとうございました。
非アクティブ時にキーの状態を得るにはどうすればいいのでしょうか?
シフトキーの状態を得ようとして
If GetKeyState(VK_SHIFT) < 0 Then
Label1.Caption = "シフトキーが押されている"
Else
Label1.Caption = "シフトキー押されていない"
End If
このようにしているんですが、アクティブ時しか動きません。
945944:03/08/21 01:20
すいません、自己解決しました。
946908:03/08/23 08:41
911さん、910さんありがとうございました。解決しました!

もう一つ質問があるのですが、コンボボックスに値を入力してプログラムを
終了し、その値を次回の起動時にデフォルトで表示したいときは、どうすれば
よいでしょうか?
テキストファイルに値を出力する方法以外で、ありましたら教えてください。

よろしくおねがいします。
>>946
レジストリ、バイナリファイル
・データベース
・C-MOS
・専用ハードウェアを作る
・終了時に自分宛にメールを出しておいて次回の起動時にら読み出す
・ユーザーに復活の呪文を唱えさせる...
メモる。
訓練したアシカを使う
951デフォルトの名無しさん:03/08/23 14:31
VBScriptで、IEの右クリックメニューをいじりたいんですが、
選択文字列を取得する方法はわかるのですが、
画像を右クリックして、その画像のフルパス(テンポラリの中)を取得する方法がわかりません。
無理なんでしょうか?
952デフォルトの名無しさん :03/08/23 22:16
StringをNullクリアするのはどうすればいいんでしょ?(・∀・)
953デフォルトの名無しさん:03/08/23 22:17
あの、C言語でバイナリで書き込んであるファイルの内容をVBで
変数に代入したいんですけど、どうやればいいのかわかりません。
ちなみに、ファイルには
int型で2つのデータが書き込まれているとします。そこで、2つめの
データを取得したいです。(別に1も取得して2個目だけ利用という
感じでもいいのですが)
おながいします。
954デフォルトの名無しさん:03/08/23 22:20
1も取得して2個目だけ利用
955デフォルトの名無しさん:03/08/23 22:21
>>954
具体的に方法は?
956デフォルトの名無しさん :03/08/23 22:23
>>955
getしれ
957デフォルトの名無しさん:03/08/23 22:31
>>956
いやだから、型の対応とかがよくわからないんですよ。
958デフォルトの名無しさん :03/08/23 22:36
>>957
ユーザ定義型でint2つの項目定義して

続きは>>952 に答えてからだ
959デフォルトの名無しさん:03/08/23 22:48
1バイトずつでランダムアクセスでファイル開いて2番目をGetでいいんじゃないかな。
960デフォルトの名無しさん:03/08/23 23:09
>>959
変数のサイズが違うのでそこら辺をどうすればよろしいの
でしょうか。
>>960
自分で調べる気あるのか?

byte()
962デフォルトの名無しさん:03/08/23 23:26
>>958
できたどー
別にTypeステートメントとか使わなくても

dim a as long

open "data" as random as #1 len=len(a)
get #1 , 2, a
close #1
ってな感じでできたワン
こりゃ勉強になったわ
963デフォルトの名無しさん :03/08/23 23:52
>>961
ない
964デフォルトの名無しさん:03/08/23 23:55
nt main(int argc,char* argv[]){ ←二個目の引数でパスを渡す
char path[20];
   
strcpy(path,argv[2]);
chdir(path)
こんな感じでやっているんですが、コンパイルすら通りません。
VCでchdirとか入力すると引数候補とかが表示されるのに、
それは定義されていませんんと出ます。なぜでしょうか?
環境==VC++

965デフォルトの名無しさん :03/08/24 00:07
釣りか?
ワロタ
>>964
VC++のソースはVBではコンパイルできないよ。
968デフォルトの名無しさん:03/08/24 06:16
VC++のソースはVB使いには理解できないよ。
>>967
誤爆じゃねーの?
環境はVC++と書いているし。
970デフォルトの名無しさん:03/08/24 08:37
間違えて書き込んじゃいました。逝ってきます。
str = vbnullstring
ぬるすと
>>968
一応突っ込んでおくがVBもVCも使えるって人間は相当数居るぞと。
生涯一言語主義ですか。ものすごい貞操観念ですね。
多分>>968=>>973だな。
>>974
はずれです。
976デフォルトの名無しさん:03/08/24 11:54
VBしか使えない人間も相当数いるワナ
>>973
VC++&VB使いをVB使いと呼ぶアホはいないよ
978デフォルトの名無しさん:03/08/24 14:37
開発環境およびテスト環境がWIN2000サーバで
市販のAPIを呼び出してるのですがそのAPIのごく一部のメソッドがうまく呼び出せないため
VBならそのAPI対応しているとマニュアルに書いてあったため、VB6のあくてぃぶXDLLでDLLを作成したところ開発環境でうまく動いてテスト環境では上手くうごきません
DLLって作成したコンパイル環境とかによって動く動かないあるんですか?
>>977
VC++ 使えるけど、仕事は VB のほうが多いと言う VB 使いはいくらでもいるよ。
>>978
その前に句読点の勉強をするべきだ。
>>980
>>978を声に出して読んでいたんだが、あやうく窒息死させられるところだった。
>>978

まずは、市販の API の動作条件を確認すること。
実行環境と開発環境の違いをきちんと(ファイルレベル、バージョンレベルで)確認すること。
983デフォルトの名無しさん:03/08/25 17:25
質問させてくれ、前にコードの量がどうのって書き込んだバカなんだが、
もう一度だけ聞かせてくれ、今度はソフト名指定だ!!
「かちゅーしゃ」ってどれぐらいコード行数あるかな?(VBで作ってるか
どうか知らんけど、VBだとしたら)
あと、皆の今書いてるプログラムの総行数を教えてくれ。
では!
>>983
行数なんざ数える気にもならんけど(参考にもならんし)、
いま手を付けているプロジェクトのファイル総容量が約100MBだ。
あまりでかいバイナリは使っていない。

かちゅーしゃじゃないけど他の2chブラウザで良ければソース公開している
ヤツを参考にしてみれば?
985デフォルトの名無しさん:03/08/25 17:52
>>984
仕事探してるんだろ、多分。

>>983
もしそうだとしたら、プログラマの経験をコードの行数ではかる会社はやめた方がいいよ。
986デフォルトの名無しさん:03/08/25 18:00
VB6.0です。
「DBグリッドコントロール」はカスタムコントロール内のどこに
入ってますか?
 会社内のパソコンで全部見てみましたが見当たらない。
 ある本によるとCDーROM内に入ってるらしいのですが
 本当ですか?

まちがえやすいけど「データコントロール」ではなくて
「DBグリッドコントロール」の方です。
コンポーネントに
Microsoft Data Bound Grid Control 5.0
ってのが無いか?
988986:03/08/25 20:00
明日もう一度見てみる。
ところで6.0の場合は「DBグリッドコントロール」よりも
「データグリッドコントロール」を使うべきなのでしょうか?
本で読むかぎり「DBグリッドコントロール」はそれなりに
非常に便利に思うけど。
>>988

DAO には、DBGrid、
ADO には、DataGrid

現時点では、ADO がメインストリーム(ADO.NETに移行しつつあるけど)。ということで、
ADO + DataGrid ってのが一般的。
>>983
クラスやら標準モジュールやらで分散してるから数える気にもならん。
991デフォルトの名無しさん:03/08/25 22:14
>>983
大雑把に行って、同じ機能性なら短いコードの方がいい。だから長さに意味はない。
実際DB連結のグリッド使ってる会社あるのかな・・
メインのフォームで処理(ファイルのコピー)をしている間、
別のフォームで「ファイル転送中」のフォームを表示しています。
この「ファイル転送中」のフォームが、真っ白になってしまって、
字が出ないのですが、どうすれば解決できますか?
>>993
ファイルのコピーを始める前に、
(「ファイル転送中」の)フォーム.Refresh
っていれてみ。
もしそれで解決したならちゃんと理由を調べておけよ。
記念カキコ v(^-^*)
>>994
お前モナ。
埋めるか。
次スレ

v(・∀-)b VBプログラマ質問スレ(6.0以前) Part28
http://pc2.2ch.net/test/read.cgi/tech/1061296197/l50
おちんちんFighter健
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。