(*´д`*)アハァ… VB初心者質問スレ Part21
1 :
デフォルトの名無しさん :
03/02/01 01:02
2 :
デフォルトの名無しさん :03/02/01 01:05
漏れが2ゲットしてもいいのか!?
3get
4 :
デフォルトの名無しさん :03/02/01 16:34
(*´д`*)アハァ ・・・VB知らんけどこの顔が我慢できない・・・
5 :
まえすれの1000 :03/02/01 16:39
ハァハァしてる奴がいてね。 あ、とかいれといた
密かに始めてアハァのAA入れたの漏れだけど。
>>1 馬鹿が・・・・
前スレと同じ顔文字じゃねーか。
8 :
デフォルトの名無しさん :03/02/01 17:37
9 :
デフォルトの名無しさん :03/02/01 17:49
8歳ぷろぐらまー いや〜感動した。
11 :
デフォルトの名無しさん :03/02/01 17:56
馬鹿の使うVBスレはsage進行でお願いします
馬鹿が使うのはCだろ
14 :
デフォルトの名無しさん :03/02/01 18:03
>>13 Cが使えない事にコンプレックスを持っている開き直りVBオンリーPG
(*´д`*)アハァ ハァハァ
VB.NET厨がVB厨をけなしてもしょうがないだろ。
17 :
デフォルトの名無しさん :03/02/02 09:14
(*´д`*)アハァ C…C++…C#… ハァハァ
インストーラー無しのVB6ランタイムってどっかで配布してませんか。 もしくは、VB6ランタイムとして配布されているのに入っている ファイル群が一覧で書かれているサイトを教えてもらえませんか。 あ、分かりそうなら、全ファイルを書き出していただけるとありがたいです。 (面倒でなければ)
19 :
デフォルトの名無しさん :03/02/02 13:23
すみません、ageそびれました ('A`)
>>18 ライセンスの関係上出来ないことになっているはず。
マイクロソフトに尋ねりゃいいじゃん。
23 :
前スレ931 :03/02/02 17:33
前回質問して、リッチテキストボックスを使い出力される文字の色を変えようと思ったのですが selcolorプロパティを使い色を変えようとしているのですが、全ての文字が同じ色に変わってしまったり 色が変わらなかったりと使い方がわからず困っています。 申し訳ないのですが。 フォームに RichTextBox1が1つだけ配置されているとして あいうえお(青色 かきくけこ(緑色 さしすせそ(黄色 と表示される例文を作っていただけないでしょうか? よろしくお願いします。
>>20 そうでもない。実行ファイルと一緒に配布さえしてりゃOK。
>>23 RichTextBox1.Text = ""
RichTextBox1.SelColor = RGB(255, 0, 0)
RichTextBox1.SelText = "あいうえお" & vbCrLf
RichTextBox1.SelColor = RGB(0, 255, 0)
RichTextBox1.SelText = "かきくけこ" & vbCrLf
RichTextBox1.SelColor = RGB(0, 0, 255)
RichTextBox1.SelText = "さしすせそ"
'色は適当だ。
>>27 ありがとうございます。
すごく参考になり、上手く作っているプログラムの方に反映させる事ができました。
今まで、SelTextを使わず、
RichTextBox1.text=RichTextBox1.text & "文字列"
としてしまっていました。
今日はこのことでずーっと悩んでいたのですごく助かりました。ありがとうございました。
29 :
デフォルトの名無しさん :03/02/02 18:55
よくあるスクリーンショットソフトの作り方を教えて下さい。
>>28 よけいなお世話かもしれないけど、
RichTextBoxでそうやって色変えて出力するのを大量にやると、
NT系OSで描画がハンパじゃなく遅くなったり途中で固まったりする不具合があるから、
気を付けた方がいいよ。
配列にデータ(文字)を格納して、コモンダイアログを使って拡張子を.txtで 保存したんですが、そのファイルを開いて見ると何も表示されていませんでした・・ listを使ってプレビューを見れるようにしてそれを表示しながら保存すると、表示されます。 ですが、"あいうお"を言うように" "がついたまま表示されてしまいます。
(*´д`*)アハァ
(*´д`*)アハァ
>>33 安易に
open 〜 output 〜
で保存しちゃいけないのですか。
37 :
デフォルトの名無しさん :03/02/02 22:34
Dirで指定Path内のフォルダをループ列挙している最中に、 探しているフォルダがあったら、さらにそのフォルダ内にaaaというフォルダがあるか またチェックしたいのですが、このaaaフォルダ探索用にDir使いたい所ながら そこで使ってしまうと、最初に書いたDirループが崩れちゃうし、ってことで困ってます。 こういう場合のチェックの仕方を教えて下さい。
>>37 その1 Dirで得られるファイル・フォルダを先にまとめて取得しループで使う。
その2 APIを使う。
その3 FileSystemObjectを使う。
>>38 FileSystemObject!
その手がありましたね。
ありがとうございました。
41 :
デフォルトの名無しさん :03/02/02 23:09
>>37 その4 FileLen()でエラーに飛ばす。
43 :
デフォルトの名無しさん :03/02/02 23:14
エクセルVBAのフォームからPERLのスクリプトを実行する方法てありますか?
45 :
デフォルトの名無しさん :03/02/02 23:35
>>47 俺は別に頭いいわけじゃなくてあんたが馬鹿なんだが。
>>43 Shell使えばいいだろ。
49 :
デフォルトの名無しさん :03/02/03 05:54
Imageをタイマーコントロールで移動させると、一瞬黒くなってから表示されるんですが、そうならないようにするにはどうすればいいでしょうか?
52 :
デフォルトの名無しさん :03/02/03 07:41
ダブルバッファというのがちらつきを無くすというところまで分かりましたが、 VBでの情報がネット上に存在しなかったため、諦めることにしました
まぁ諦めるのを止める事はせんが、 「ネット上に存在しない」事はないな。
偽者登場(w
(・∀・)ツレタ!
2人のバッハ(・∀・)人(・∀・)
合体(・∀(・)∀・)
58 :
デフォルトの名無しさん :03/02/03 10:48
part20でも質問したのですが、WIN98にはVB.NETはインストールできないようなので、WINXPにアップグレードしなけばならないみたいです。VB6はお店においてないところが多いです。VB6売ってるショップありますか?
59 :
デフォルトの名無しさん :03/02/03 10:52
>>58 ないから糞VBなんかやめてDelphiつかえって。
60 :
デフォルトの名無しさん :03/02/03 11:01
Delphiって何ですか?
>>60 太陽神アポロンの神殿があるところです。
ギリシャにあります。聖地です。
ようするに検索しろってことです
63 :
デフォルトの名無しさん :03/02/03 13:06
リッチテキストボックスの行間を狭くして 見た目テキストボックスと同じにする方法教えて
(*´д`*)アハァ
初心者に優しいスレッドありませんか?
VBでADODBを使ってSQLのselectでテキスト型のフィールドを引っ張ってくると 中身が消えちゃうんだけど、ちゃんと取得するにはどうすればいいの?
69 :
デフォルトの名無しさん :03/02/03 14:48
private sub command1_clik call PutText("txtA" & "1") end sub private sub (txt as object) txt.text="test" End sub みたいな感じで「txt.text="test"」とし、 同じ名称+数字 のテキストボックスにどんどん代入したいのですが、 どうすれば実現できますか? 普通のテキストボックスならコントロール配列でインデックスを指定すれば済むのですが、 アクティブレポートのField(テキストボックスと同じ)にはコントロール配列がなく困っています。
70 :
デフォルトの名無しさん :03/02/03 15:02
private sub Command1_Clik() for i = 1 to 100 call PutText("TxtA"& i) next i End sub private sub PutText(Byval Text as object) Text.text = "abc" End sub というイメージで、 TxtA1 TxtA2 TxtA3 ・ ・ ・ call PutText("TxtA"& i) private sub PutText(Byval Text as object) を実現するような方法はないでしょうか?
>>69-70 「アクティブレポート」ってどこぞの市販 ActiveX のことか?
どっちにしろまったく知らんため推測に過ぎんし
そもそも 69 = 70 なのかどうかも判らんが (w
Field というのの上位のオブジェクトやコレクションがあんじゃねーのか
例えばこんな感じで
ActiveReport.Fields("TxtA" & i).Text = "abc"
オシロの波形をGPIBで取得するにはどうしたらいいですか? オシロはLeCroyのLT354でGPIBはInterFace社のPCI-4302です。
>>69-70 AccessではFAQなコントロール配列「もどき」が使えるかも?
(*´д`*)アハァ
76 :
デフォルトの名無しさん :03/02/03 16:52
69=70 です。 返事ありがとう!! 解決したいことをそのまま文にしたためわかりにくかったですね・・。 要は、 txttext1から100までテキストボックスがあるとして、 コントロール配列を使わずに "txttext" & lngI としてtxttext1 のテキストボックスとして認識させたいのです。 このtxttext1から100をループできないかなと。
77 :
69=70=76です :03/02/03 16:55
実現したいこと For I=0 to 100 (txtText & I).text = いろんな値 Next I です。
>>77 時間かける秒足す分 mod 100とかどうだ?
VB6 sp5 winXP or winMe Inetコントロールで指定ファイルをダウンロードする手順はわかった。 では、ダウンロード完了だけ知らせるのではなく、ダウンロードの進行状況を表示するには、 どうしればいいのだ?! 非同期ダウンロードでステータス見張るところまでは見当ついた。でもバッファの使い方が詳細な部分まではわからない・・・ 誰か助けて!
> txttext1から100までテキストボックスがあるとして、 ここからして既に何かが間違っていないか?
>>77 CallByName(Me, "txtText" & I , VbGet).Text = 値
>>81 同感
83 :
デフォルトの名無しさん :03/02/03 18:34
DataFieldプロパティってのは、決められたオブジェクトにしか 存在しないのでしょうか? 例えば自分でクラスを作ってDAtaFieldプロパティを備える事は 不可能なのでしょうか? よろしくお願いします。
(*´д`*)アハァ
>>83 クラスモジュールでそのように書けば可能だけど・・・。
>>85 ええ。ソースを書くことが出来れば問題がないんですが・・・。
>>77 これを変形してみそ
Dim a As Control
For Each a In Me.Controls
MsgBox a.Name
Next
>>88 Command1 から 100 までボタンがあったらどうするんだ
>>92 漏れ最近、頭の回転が鈍いのだが何とかならんか?
>>93 漏れもなんだよ。寄る歳なみにはさからえんの。
コールバイネームなんてあるんだねェ〜。 トコロデ79に意見キボンヌ(⊃Д`) ・゜・(つД`)・゜・
ActiveReportsについて。 ActiveReportsの中で、如何すれば詳細行の一行で五明細を 印刷できるのか? グループも条件によって変更しなければなら ないし、ページも。 どこのサイトを見ればいいのでしょうか?
マルチにしなければいいのでしょうか?
何様だ!笑 おもろかったです。 では
102 :
デフォルトの名無しさん :03/02/03 23:30
>>79 AsyncReadProgress はどう?
103 :
デフォルトの名無しさん :03/02/03 23:36
ラベルのコントロール配列を二次元配列にすることは可能ですか?
>>103 一次元配列を二次元配列風に扱えばいいだけではないでしょうか
105 :
デフォルトの名無しさん :03/02/03 23:54
環境:VB.NET テキストボックスの中から例えば"ABCD"という文字列から"EFGH"という文字列までを検索し "ABCD"から"EFGH"までの全ての文字列を抽出したいのですが、 現在は 変数X = "ABCD" 変数Y = "EFGH" 変数a = InStr(TextBox1.Text, 変数X) 変数b = InStr(TextBox1.Text, 変数Y) If 変数a > 0 And 変数b > 0 Then 変数c = 変数b - 変数a TextBox1.Select(変数a , 変数c + 5) 変数P = TextBox1.SelectedText Label1.Text = 変数P という感じでやっているのですが、こうすると大文字と小文字の区別が付かなくて、 "ABCD"≠"abcd"となります。 大文字と小文字の区別無く抽出したいのですが、どうすれば良いのでしょうか? 見にくかったり、意味不明だったらすいません。
106 :
デフォルトの名無しさん :03/02/04 00:14
visualの言語をひとつやろうと思うのですが、VBはいいものですか。 今までは、Cのコンソールプログラムだけでした。 あんまり高度なことはしません。研究上のちょこちょこっとした 数値処理とかで、せいぜい入出力と簡単なグラフィックのライブラリが 使えるだけでいいです。実行が極端に遅いのだけは困るのですが。
>>106 処理速度は、プログラムによっては極端に遅くなります。
大量の計算は、少々辛いです。
数値処理ならVBも速度は変わらないよ。
>>107 レスサンクスです。
誘導スレのほうへ移動します。
112 :
デフォルトの名無しさん :03/02/04 00:38
106ですが、デルファイはパスカルですよね。 あのendが気持ち悪いです。 endのあとにピリオドあったりなかったりこんがらがった覚えがあります。
113 :
デフォルトの名無しさん :03/02/04 00:40
>>109 半年ぐらい前かな、この板でVBとDelphiのベンチやったけど、
結果は同じくらいだったよ。
VBでもいいとは思いますが、計算ライブラリがそろってたりと色々便利なので、 思い切ってMATLABを買っちゃいましょう。
VB.netになって、数値ライブラリはC++などと共通に なってるのではないですか? もしVBが遅いとすると、制御文のコンパイル結果が 他の言語よりたどたどしいとか、だと思いますけどそんなに違いますかね。 .netframework上の実行とネイティブコードとは速度に違いはありますか?
つまるところ、技術計算主体であれば、MATLABが一番目的にかなっているということです。 VB等は帳簿とかそういった方向性でしょう。
matlabですか。調べて見ます。 とりあえず比較的早い言語より、2,3倍遅いぐらいなら問題ないです。 十倍超えるとちょっと嫌です。
>>121 実際の正確な速度は誰も知らんから試してみれ。
もっともあなたがまともな方法で試せる力があるかどうかは知らんがな。
どの程度の機能が必要かも分からんのにいろいろと出すなよ。 ただの宣伝としか見えないぞ。
基本的に、計算の部品は、行列計算、ガンマ関数、誤差関数などです。 ユーザー関数使ってますが、数値ライブラリで速くなるならうれしい。
>>110 本気?
Delphi の演算速度は C++ とほぼ一緒だよ。
Blitz++
>>113 と
>>127 の意見から VBとC++の演算速度は
同じということになるなぁ(藁
では、VBが一般的に遅いと言われる理由は何なんでしょう...
130 :
デフォルトの名無しさん :03/02/04 10:52
VBはネイティブコンパイルして最適化かけても遅いよ。 前に大量の数値計算する必要があるプログラムを組んだ時、 あまりの遅さに計算部分だけVC++でDLLにしてコールするようにした。 結果は、はっきり数値では出せないけど、軽く数倍は違った(少なくとも倍以上) VBは大量の数値計算には向いていない。 Delphiは使ったことがないが、VBと計算速度がほぼ同じという話が本当なら、 計算速度は VC++ >(越えられない壁)> VB,Delphi ってことか。
>>130 違う。
C++ ≒ Delphi >(越えられない壁)> VB
>>131 俺がDelphiを使う機会は多分ないと思うんだが、
Delphi製のソフトはバグが多いという印象が強くてあまり好きではないな・・・。
付箋紙2000、ホットゾヌ、AirCraft、AirWeb・・・
どれもバグバグ。基本ライブラリがあやしいんじゃないかと疑いたくなるよ。
スレ違いsage
>>102 サンクス!キーワードにして検索してみる
>>133 どの言語で作られたソフトでもそれなりにバグあるだろ。
むしろ VC++ 製のやつのが多いんとちゃうか?
(*´д`*)アハァ
スレ違いつーか誤爆? delphiしか合ってね−
>>134 まあ、VC++製のソフトでバグバグなものも大量にあるだろうが、
作成されてるソフトの絶対数が違うからなあ。
正確に個数調べたわけじゃないからアレだが。
138 :
デフォルトの名無しさん :03/02/04 13:18
>105 比較規則を指定するが吉。 VBTEXTCOMPERE VBBINARYCOMPERE で検索してみれ。 スペルが違っていたなら、 INSTRをMSDN検索で確実にヒット。
悲しいかな。 delphiはVBと同じ速度だと思われるほど廃れたんだな。 んなわけなゃーで。
えっ? VBが遅いって。口だけ。
ネイティブコードコンパイルしても本当にネイティブになってる 部分って相当少ないんじゃなかったっけか?
よし、おまいら、 ここらでハッキリさせようじゃないか。 VB,VC++,Delphiの3言語が自前の環境に揃ってる香具師、 ちゃんとした方法で実験して、 その結果を、具体的な数値で明確に晒してくだちぃ。 喪前が試せやって言われそうでつが、 漏れ、3つ揃ってないんで(´д⊂)
>>142 三つそろっているが、ちゃんとした方法が分からない。
めんどくさいのもあるが。
VC++ ≒ C# > Delphi ≒ BCB > VB ≒ Java
145 :
◆b0UXJ88Ngw :03/02/04 16:37
すいません。質問です。 今、VB6.0sp5でアプリケーションを作成して、ディストリビューションウィザードを使用して、 セットアッパーを作ってるんですが、 Windows2000sp3 で作成したアプリケーションが、98・98SE・MEにインストールすると、 OSを破壊してしまいます。 なにか、ご存知の方、又は、対処法・及び代替案をお持ちのお方、 いらっしゃいましたらご教授お願いします。
146 :
デフォルトの名無しさん :03/02/04 16:43
セットアッパー・・
>>145 もっと具体的に示せ<OSを破壊
・・・というか、喪前のプログラムで
NT(2k)Onlyなコードを組んでるんじゃないのか?(藁
インストーラ自体に問題があるんなら、
今更、ディストリビューションウィザードなんか使わず、
Visual Studio Installerでも使え。
149 :
セットあっぱぁ :03/02/04 19:40
VB6、OS:win2000sp3 この環境でVisual Studio Installerを用いて、インストーラを作ってみたんですが、これって98やMEに正しくインストールできる方法ってあるのでしょうか?
>>149 というか、ディストリビューションウィザードよく見てたら、環境変数使ってるの
分かるっしょ。
%SystemRoot%みたいな。
151 :
デフォルトの名無しさん :03/02/04 21:58
今後のwindowsでもvb6は使え続けますか?なんか.net高いし、重いし買ってない。
ヘルプをよく嫁
153 :
デフォルトの名無しさん :03/02/04 22:45
2重起動防止ルーチン(ウィンドウ名で判定)を作ってみたよ。どうでしょ。 ちゃんとウィンドウ復帰もします。 Celeron650で0.04秒ぐらいかかる。(ソフト10個ぐらい起動) 宣言等は省略 Sub Main Ret = EnumWindows(AddressOf fEnumFindProc, 0) Load frmMain Call CreateWindowEx(0, "STATIC", AppDistinguishID & frmMain.hWnd, &H40000000, 0, 0, 0, 0, frmMain.hWnd, 0, App.hInstance, 0) End Sub
モジュール部(fBufEditはNull以前の文字列を返す関数) Public Const AppDistinguishID= "APPNAME" Public Function fEnumFindProc(ByVal handle As Long, ByVal lParam As Long) As Boolean Ret = EnumChildWindows(handle, AddressOf fEnumChildFindProc, handle) fEnumFindProc = True End Function Public Function fEnumChildFindProc(ByVal handle As Long, ByVal lParam As Long) As Boolean Name = String(255, Chr(0)) 'バッファ確保 Leng = Len(Name) Ret1 = GetWindowText(handle, Name, Leng) '名前を取得する If fBufEdit(Name) = AppDistinguishID & lParam Then fEnumChildFindProc = False Call ShowWindow(lParam, 9) Call SetForegroundWindow(lParam) End Else fEnumChildFindProc = True End If End Function
>>153 で、肝心のコールバック関数書かないってお前頭大丈夫かと。
>>154 さて、
ハイパーモナーテキストエディタ -C:\CONFIG.SYS
とか言う文字列を持つアプリケーションだったらどうするの?
159 :
デフォルトの名無しさん :03/02/04 23:11
オシロの波形をGPIBで取得するにはどうしたらいいですか? オシロはLeCroyのLT354でGPIBはInterFace社のPCI-4302です。
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>160
>>159 GPIBコマンド送ったらいいだろー。ひょっとしてライブラリだかドライバだか知らんが、
ソフト入れてないのか?
163 :
デフォルトの名無しさん :03/02/05 00:05
>>160 おつかれ〜
VC++の遅さが意外だった。配列使ってるのに。
ってか、コード生成の違いによるベンチマークなんて、 GUI以外意味を持たないでしょ。
VB で IDE から実行するのって遅いんだな。 P コードと同じくらいだと思ってた。
>>158 浮かれる気持ちはわかるが自分のアルゴリズムの弱点位は自分で把握しておこうなってこった。
169 :
デフォルトの名無しさん :03/02/05 00:27
うん。 高速化の小技をIDEでいろいろ試してみてひとり満足。 でも、コンパイルしたら、ほとんど差がなかった(笑)。
>>168 いや・・・・
ソースちゃんと読みました?
あ、コールバック関数内でEndやっちゃうとまずいのかな。
フラグ立ててEnumWindows終わってから終了処理という風にしたほうがよいかも
2 重起動チェックだけに使われるものをみんな Public にする神経
つーかこれ、あっさりクラックされるよな。 何で Mutex を使わないんだ?
EnumWindows() と Load frmMain の間に、別のインスタンスが入り込む スキはあるわけだ。
>>160 ほんとに計ったなら称賛に値しる!口だけのヤツよりよっぽど説得力あるね。
まあソスウ探索だけがプログラムではないから、意味ナイと言えば意味ないけど数字を見るのは嫌いじゃないぞ
∧_∧
(´∀`)
−−∪−∪−−
MUTEXってなに?
175 :
デフォルトの名無しさん :03/02/05 07:54
>>173 納得しました。
でもまぁ普通にソフト起動するならありえそうも無いので・・・
>>176 後、同じ名前のタイトルバーが複数存在しないとも限らない。
そのコード、二重起動の例でダメな例として必ず提示される物なんだよ。
>>176 > でもまぁ普通にソフト起動するならありえそうも無いので・・・
あまい。
低スペックのマシンや高負荷状態で、ユーザーがシュートカットをクリックしまくるだけで、
簡単にその状態になる。
拡張子と関連付けなんかされてると、もう最悪。
複数のファイルを一気に開くと、ほぼ確実に不具合が発生。
まぁ、素直にmutex使ってろってこった。
180 :
デフォルトの名無しさん :03/02/05 10:40
>176 何故、みんなが素直に既存の同じ方法を使うのか考えよう。 作業効率を上げるためだけで無いのだよ。
なんにせよ、レース状態の発生するプログラムは組むべきではないと。
プロセスって信手段の乏しいスレッドみたいなもんだからなぁ。 通信は出来ても排他制御は難しい。 まぁ、そのためのmutexなわけだが。
184 :
デフォルトの名無しさん :03/02/05 14:44
menuをドロップダウンした状態で画面コピーしたいんですが、 どうしたらいいのかな。 CTL+ALT+PrintScreenするとメニューが閉じちまいます。
185 :
デフォルトの名無しさん :03/02/05 14:55
画面の解像度1024*768で製作したプログラムを解像度を800*600に設定して 実行すると、フォームが大きすぎて画面に収まりきらなくなってしまいました。 そこでフォームにスクロールバーを付けてスクロールして表示できるようにしようと思うのですが フォーム全体が上下に動いてしまい(恥 上手くスクロールできません。 初歩的な質問で申し訳ないのですが、フォームが画面に収まりきらなくなったときだけスクロールバー表示させ動作させる 方法を教えて下さい。ヒントだけでも結構です。お願いします。
>>184 一定間隔でスクリーンショットを撮る常駐ソフトを使えば?
Vectorあたりにゴロゴロあるよ。
マジレス。
>>185 フォーム内のコントロールを全部フレームコントロールにでもおさめて
まとめて移動させる。
もちろんスクロールバーは自前で配置、計算して処理する。
これより簡単な方法があったら俺も知りたい。
あと老婆心ながら、「初歩的な質問」とか余計なことは言わないほうがいい。
初歩的と思うなら自分でやれって煽られるもとだ。
マイコンピュータ(フォルダ)では、ALT>F>PrintScreen (連続で迅速に) とすると可。 メニューにショートカットが無ければ プルダウン中にPrintScreenのみ(全画面) ビットマップで編集なされ。 (CTL要らんぞ?)
>>187 ありがとうございます
さっそく試して見ます。
言葉遣いにも気をつけます。忠告ありがとうございます。
>>189 調べて見ます。アドバイスありがとうございます。
>>186 ゴロゴロ? 探して身マース。サンクス
>>188 マイコンピュータフォルダー内にプログラムコピーして
そこで実行しるってことね。やってみま。サンクス
>マイコンピュータフォルダー内にプログラムコピーして ちゃう
192>> えーー? 漏れの頭では想像を絶する文章だ。 「マイコンピュータ(フォルダ)では」とは、VBのフォームのmenuではなくて、 「マイコンピュータ形式のフォームのmenuでは」ってこと? 残念ながら、もれにはそういうフォームは作れません。
>>192 分かったピー。ショートカットつけろって琴ね。さんくす。
>>193 概ねそうゆうこと。Officeとか市販アプリのドキュメントを作ってるなら上のケースで、
自作アプリとか、右クリックのメニューとかの場合はBMP編集をということです。
綿氏の場合、
1.全画面のイメージをコピーしてピクチャにセット、
2.マウスで好きなところを選択
3.キー操作で選択範囲をクリップボードにうp
というツール作って活用してます。
(「このコンボボックス(プルダウン中)周りだけ」とかがドキュメントに要るので)
>>192 わかりやした。
ご丁寧にどうもです。
ドロップダウンと追いかけっこしてました。ハァ-。
197 :
VB初歩の初歩 :03/02/05 17:31
outlook(2000,2002)の自動仕訳ウィザードで携帯にメールを転送するさいに、メールヘッダの"FW:"と本文の"original message"を外すVBを書きたいのですが、初心者なので、まったく分かりません。教えてください。
高水準言語を用いて作成されたプログラムをなんというか、答えれ
(*´д`*)アハァ
>>177 いや、ですから、よくソース読んだ?って言ってるんですよ
タイトルバーから判断するんじゃないです。
入り込む隙があるってのはなっとくしましたし、実際にやってみたら確かに起動してしまいました。
202 :
デフォルトの名無しさん :03/02/05 18:32
タスクトレイに駐在させといて、あるキーを押すと反応させるには どうすればいいですか?
>>202 グローバルフック。と言うわけでVBでは無理。
204 :
デフォルトの名無しさん :03/02/05 18:48
WindowsAPIでも無理ですか?
205 :
デフォルトの名無しさん :03/02/05 20:12
dllの関数を呼ぶのですけど、 LPWORD にはどうやって渡したらよいのでしょうか ByRef の 16bit型?(ってあったっけ)
>>205 どうせ内部で32bitポインタになるならAnyとかでいいんじゃないの?
207 :
デフォルトの名無しさん :03/02/05 20:20
anyってなに?
>>202-203 グローバルフック、ホットキー、Timerでストーキング
>>205 LPWORDならByRef HOGE As Integerでないかい?
>>207 Declareのヘルプ嫁
209 :
デフォルトの名無しさん :03/02/05 20:59
>>209 すまん、win32なら BeRef HOGE As Long だ
風邪薬飲んで寝る・・・
212 :
デフォルトの名無しさん :03/02/05 23:19
日本語版のVB6でプログラムしています。 この中の日本語を英語にすべて置き換えて英語版にしようかなと思っているのですが 英語版のWindowsで、正常に動作するのでしょうか? 英語版のVBは日本語OSで動きますが、その逆がどうなのか不安です。 そのような経験がある方、是非教えていただけませんか?
213 :
デフォルトの名無しさん :03/02/06 00:11
フォームの再描画を一時的にストップさせたいのですが、どうすればいいでしょうか? 下記のようにやってもうまくいきません。 Private Sub Command1_Click() Me.AutoRedraw = False Me.Text1.BackColor = vbRed 'ここで再描画してほしくない Me.Text2.BackColor = vbBlue 'ここで再描画してほしくない Call DoSomething Me.AutoRedraw = True 'このタイミングで一気に再描画したい End Sub
>>213 これでいいだろ?
Call DoSomething
Me.Text1.BackColor = vbRed
Me.Text2.BackColor = vbBlue
216 :
デフォルトの名無しさん :03/02/06 00:29
212です。 実際にはもう少し複雑なことをしてるんですが、 いろいろな条件によって ボタンやテキストを非表示にしたり再表示したり 色を変更したりしてるんです。 その条件判断が結構重くて、クリックしたときに 描画の途中結果が見えるんで不自然なきがするんです。 処理が早ければ気にならないんですが、 なんなんで、最後にまとめて再描画すればいいかなと思ってるんです。 よくGridとかはループでレコードセットの内容を追加するときに autoredrawをfalseにして対処したりしてるんですが、 同じことをフォームでやるにはどうすればいいのか教えてください。
>>213 AutoRedraw = False が何を期待してるのかわからん。
最初から AutoRedraw = True にしっ放しというのはダメなのか?
あとは、非表示 PictureBox に描画して、描画完了後に Form に PaintPicture というのはどうだ?
>>216 処理の途中で描画するなよ。UIは完全に無視して処理を行って
その結果を最後で描画しろ。
つーかお前は212なのか?
219 :
デフォルトの名無しさん :03/02/06 00:44
212です。 下記のような処理でflg=0で実行したあとにflg=1で再実行すると text3が一瞬表示されて非表示になりますよね。 これを防ぎたいので、最後に描画したいんです。 最初に初期化しなきゃいいんですけど、 大量にあってとても面倒なので現状はそうしてます。 Sub a() '全て初期化 Text1.Visible = True Text2.Visible = True Text3.Visible = True Text4.Visible = True Text5.Visible = True If flg = 0 Then Text1.Visible = False Text2.Visible = False Text3.Visible = False ElseIf flg = 1 Then Text3.Visible = False Text4.Visible = False Text5.Visible = False End If ’ここでまとめて描画したい End Sub
(*´д`*)アハァ… なんでコントロール配列使わないんだろ......
コレクションにコントロールを追加してやって、 ループで一気にプロパティ設定でもいいんじゃない?
TEXT3.VISIBLE=FALSEじゃなくて、 TEXT3.LEFT=-1000 TEXT3.TOP=-1000 だったらフォームから消えるからちらつかないと思うが。 後で戻せばいい
>>200 これはただの例であって実際は1〜5なんて名前でもVisible=Trueだけでも
ないんじゃない?
最後の手段としてつかえよ。LockWindowUpdate
225 :
220=221=222 :03/02/06 01:04
>>223 うん、だから221の方法だと大丈夫でしょ
>>225 > Me.Text1.BackColor = vbRed
> Me.Text2.BackColor = vbBlue
これをどのようにコレクションに入れるんだ?
227 :
デフォルトの名無しさん :03/02/06 01:22
224さん、ありがとうございました。 下記の方法でなんとかなりそうです。 あと、ちにあみにLockWindowUpdateで解除するときNULLを指定すると書いてあったんですが、 VBでAPI呼ぶ時にNULLは0でいいんでしょうか? 一応、下記は正常に動いてますが、少し不安です。 Sub a() Dim l As Long 'フォームをロック?する Call LockWindowUpdate(Me.hWnd) Text1.Visible = True Text2.Visible = True Text3.Visible = True Text4.Visible = True Text5.Visible = True 'とても重い処理 For l = 0 To 10000000: Next l If iflg = 0 Then Text1.Visible = False Text2.Visible = False Text3.Visible = False Else Text3.Visible = False Text4.Visible = False Text5.Visible = False End If '解除 Call LockWindowUpdate(0) End Sub
>>227 最後の手段として使えといっただろうがボケ。
Text1.Visible = (flg <> 0) Text2.Visible = (flg <> 0) Text3.Visible = (flg <> 0) And (flg <> 1) Text4.Visible = (flg <> 1) Text5.Visible = (flg <> 1)
230 :
デフォルトの名無しさん :03/02/06 01:29
>>229 dim flg as Boolean
使えよ
それ以前にバグ。
232 :
デフォルトの名無しさん :03/02/06 01:34
ていうか仮のコードだとしてもコントロール配列使ってよ
なんで本来txtHogeとかtxtHageとかtxtTURUとかいった違う名前のものを コントロール配列にしなきゃならん?
Text1だの2だの書くなら一個でいい
一個じゃ条件で分けにくいだろ。まぁこの場合は3個でいいとは思うが。
おまいら叩きすぎ(;´Д`)
>>230 そんな事したら Text3 の立場はどうなる?
(*´д`*)アハァ
もうそろそろ、ツレタとか来るんだろうな。きっと。
∧||∧ ( ⌒ ヽ 吊れた ∪ 。ノ ∪∪
||/ /|| /∧||∧ ( / ⌒ヽ | | | ∪ / ノ | || ∪∪ ∧ ∧,〜 ( (⌒ ̄ `ヽ _ \ \ `ー'"´, -'⌒ヽ /∠_,ノ _/_ /( ノ ヽ、_/´ \ 、( 'ノ( く `ヽ、 命を粗末にしてはならん! /` \____>\___ノ / /__〉 `、__>
本当の212です。 むむぅ、やはり特殊なことなので分かる人は少ないでしょうか…
ショウガナイカラ マシ''レス SendMassageのメッセージの中にウィンドウの更新させない(再描画させない)のがあriます From1をメッセージで一旦描画を止める ↓ ボタンやテキストを非表示にしたり再表示したり 色を変更したりしてるんです。 ↓ From1をメッセージで描画を再開する ↓ Form1.リフレッシュ ↓ できた!! メッセージはよく覚えていません たぶん REDRAW が入っていたと思います (メッセージ マジ思い出せない 間違っていたら ごめそ)
244 :
デフォルトの名無しさん :03/02/06 11:08
おーい。日本国の年号にならない。 平成2003になる。 何とかしてくれ。 lblDate.Caption = Format(Date, "平成yyyy年mm月dd日") & Format(Time, "hh時mm分ss秒")
245 :
デフォルトの名無しさん :03/02/06 11:15
yyyyは西暦では? gggeなん?しらんけど
>>212 PictureBox上にTextBoxを配置するとちらつかないようです。
なんでそうなるかは知りませんが。
>>243 WM_SETREDRAWですか?
いけた。サンクス。 何で”ggge”なんや?ようわからん。
>244 プ。 あたりまえ
250 :
デフォルトの名無しさん :03/02/06 12:12
相変わらず馬鹿な質問が多いな。。。 流石VBスレ
(*´д`*)アハァ
>>250 WM_UNKO、WM_KUSO
のウィンドウメッセージが多量に飛んで来て、メッセージキューが
いっぱいになってしまいます。
このメッセージを発生させなくするにはどうすればよいですか?
>>252 メッセージの発生源を削除汁
Kill VB
> メッセージの発生源を削除汁
Kill
>>252
255 :
デフォルトの名無しさん :03/02/06 15:38
タスクトレイに常駐するアプリを作っているのですが、 トレイアイコンクリックで PopupMenu Form2.mnu このようにポップアップメニューを出しているのですが、 メニューのどれかを選択するまでは、他のウインドウにフォーカスが 移ってもずっとポップアップメニューが表示されたままです。 これを、消すにはどうすればよいのでしょうか。
>>260 できました!! ありがとうございました。
>>256 260の人、責任重大だなw
つーか、自分の質問番号を名前に入れないと、誰が解決したのか分からんぞ。
>>255 PopupMenu 〜 の前に
SetForegroundWindow Form2.hwnd
をすればうまくいくと思います。
ケツの穴をズブズブ突かれて気持ちよくなって、大声で喘ぎ声をあげてリラックスしていると、ケツの穴は入れられたときよりかなり開いてくるんだ ケツの中がローションでグチョグチョだと、そのうち、タチが緩くて滑りやすくて物足りないって感じるようになってくるよ だから、掘られているときに余裕がでてきたら、ケツを締めてタチを気持ちよくしてあげようね
(*´д`*)アハァ…
fuck you >1-1000
>>258 どうもありがとう!直りましたよ!!
でも、どうしてこうなるんですか?
どこか説明してるサイトってありますかねー。
266 :
デフォルトの名無しさん :03/02/06 20:21
MSHFrexedContorolの使い方で悩んでます セルの幅を変更したいのですが適当なプロパティが見つかりません セル幅は固定?
>>264 (*´д`*)ヤットツレタ… アハァ…
(゚Д゚)ハァ?
270 :
デフォルトの名無しさん :03/02/06 22:45
ツールボックスに自分でコントロール追加すると、 新しくプロジェクト作成したときに追加したコントロールが なくなってしまいます。追加したコントロールをそのままにするには どうしたら良いのでしょうか?
結局、ダウンロードの状況(%)はどうやってとるんだ、GETCHUNKについて説明キボンヌ。このメソッド自体は同期実行なの?
275 :
デフォルトの名無しさん :03/02/07 12:43
CrystalReport使っておられる方がおられたら、教えて下さい。 CrystalReportオブジェクトを貼り、コード上から動的に 打ち出すプリンタを変更したいのですが、それらしいプロパティが 見つからず苦戦しております。 Reportを作る段階で指定したプリンタ以外のプリンタに 打ち出すにはどうしたらいいのでしょうか。
276 :
デフォルトの名無しさん :03/02/07 14:33
「ファイル名を指定して実行」(winキー+Rで出るヤツ)みたいな事はどうやれば出来ますか? ファイル名を指定して実行は、exeのパスを入力すれば起動するのは勿論、 txtファイルを指定すれば関連づけられたプログラムで開かれるし、 Windowsディレクトリ等パスの通ったディレクトリにあるものだったら、フルパスじゃなくても起動したり、 exeのフルパスの後にスペースあけてコマンドライン引数つけて起動できたりと凄く柔軟ですけど、 こんな感じの機能はどうすれば実装できますか? Shell関数だとtxtファイル指定しても関連づけられたプログラムで起動しなかったりと、 同じような動作にはならないです。
277 :
デフォルトの名無しさん :03/02/07 14:41
>>276 Shell "Start C:\hogehoge.txt"
これじゃ駄目?(笑
地道にAPIのShellExecute使うとかの手もあるが、めんどくさいなら
Startが楽でいいぞ。
互換性は多分Windows95初版以降ならどれでもOKだと思う。
(*´д`*)アハァ… VB始めようかな・・・
どなたか教えてください。 VB6+VB6付属のクリスタルレポートで、Win98 上で動いていたものをWin2000で動作させると、プ レビューされなくなりました。 プリンター出力は可能です。 CRPE32.DLLでAPIを使用しています。 PEStartPrintJob(プリントジョブ, 0) こんな感じです。 Win2000では、対応していないのでしょうか? なので、OCXに切替えてみたのですが、今度はSQLサ ーバーエラーになってしまいます。 Text Driverで、CSVファイルを使用してます。 ロジックは、 CrystalReport1.Destination = 0 CrystalReport1.PrintReport です。 CONNECTプロパティーも指定するのでしょうか?
280 :
デフォルトの名無しさん :03/02/07 21:03
MSHFrexContorolでセル幅をセルの内容に合わせて自動で 変更させたいのですが、そんなメソッドないですか? セルの幅はピンポイントで設定できましたが、、、
このスレも微妙だな・・・(;´Д`)
282 :
デフォルトの名無しさん :03/02/08 11:27
(*´Д` *) VBマンセー
(*´д`*)アハァ…
284 :
デフォルトの名無しさん :03/02/08 18:56
>>284 >Visual Basicを始めようと思っています
何で今更。
もうVisual Basicは流行ってないんですか?
VBは便利な余技です(*´д`*)アハァ…
>>284 どの言語でも、どの本でも、この一冊がありゃOKというものでもない。
最初はわからなかった本でも、レベルアップしてもう一度読むと、新しい
事が見つかったり。
>>288 もちろんそれは承知です。
ただ、
>>284 に書いた本は内容としてはどうかを知りたいのです。
ちゃんとレビューもあったでしょうに。 近くに本屋はないのですか?自分の目で見てはいかがでしょうか
>>289 3000円しないかなり安い本だし、とりあえず買ってみたら?
>>284 悪くないと思うよ。
というか、他人に意見求めるのもいいが、
本屋に行って立ち読みでもしてみ。
293 :
デフォルトの名無しさん :03/02/09 04:28
お絵描きソフトのペンツールのみの機能をもったものを作っています。 マウスでドラッグしている間だけLineでフォーム上に描写していく簡単なものです。 そこで質問なのですが、 フォーム内の任意の座標の色を調べるにはどうしたらいいでしょうか。 全て描写し終わった後に判定したいです。
294 :
デフォルトの名無しさん :03/02/09 04:42
getpixel
>>293 Point メソッド
Form オブジェクトやピクチャ ボックス (PictureBox) コントロールの、指定されたポイントの色を示す (RGB) 値を長整数型 (Long) の整数で返します。名前付き引数は指定できません。
構文
object.Point(x, y)
297 :
デフォルトの名無しさん :03/02/10 01:40
よろしくお願いします。 SCMPXとかWinampみたいにデスクトップの端にひっつく動作を させたいんですがどうしたらできますか? APIで実装できるんでしょうか?
あのね、タイマーを使うの。 それでね、うぃんどうの座標を調べて、端に近かったら引っ付けるの。
299 :
デフォルトの名無しさん :03/02/10 01:58
>>298 既に試しましたが
ひっついてもカーソルの位置は変わらない
引き離す/押し込むときの遅延ができない
などで悩んでおります。
300 :
デフォルトの名無しさん :03/02/10 02:02
タイマーのほうが簡単かな。 サブクラス使って、フォームの移動を監視する手もあるけど。
301 :
デフォルトの名無しさん :03/02/10 02:05
>>299 カーソルってマウスの? SetCursorPos使った?
遅延って何かな?
即移動じゃなくて少しずつ近づければいいだけじゃないの?
>>300 ありがとうございます。サブクラス化はまだよく分からないのですが
最後の手段として考えておきます。
>>301 最初は使いました。
SCMPXのひっつき方を観察するとひっつくときに
マウスカーソル⇒数ドット
ウィンドウ⇒端まで動く
なのでSetCursoPosでマウスカーソル自体を動かすのは没になりました。
遅延というのは(すみません、勝手に言葉を作っていました)
ひっついたウィンドウをひっぺがす際にウィンドウをドラッグする時、
カーソルは動いてもある範囲までウィンドウ自体は動かず、
ある範囲を超えたときに初めてウィンドウがカーソルに追従する、
という動きのことです。
>即移動じゃなくて少しずつ近づければいいだけじゃないの?
すみません、もう少し詳しくお願いできますか?
>>302 ウィンドウのドラッグが始まったらサブクラス化かけてWM_MOVEをもみ消して、
マウスポインタがデスクトップの端から一定の距離以上になったらWM_MOVEもみ消すのやめる…
って感じでできない?
↑はくっついた窓を引っぺがすときの話ね。 説明不足だったんで補足。
>>297 それっぽい動きができたよ。どうかな
Option Explicit
Dim oldX, oldY, flg
Dim saveX, saveY
Private Sub Form_Load()
Me.BorderStyle = 0
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
flg = True
oldX = X
oldY = Y
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim xflg, yflg xflg = False yflg = False If flg Then If Me.Left = 0 Then If X - saveX > 200 Then Me.Left = 200 End If xflg = True Else If Me.Left < 200 Then Me.Left = 0 saveX = X xflg = True End If End If
If Me.Top = 0 Then If Y - saveY > 200 Then Me.Top = 200 End If yflg = True Else If Me.Top < 200 Then Me.Top = 0 saveY = Y yflg = True End If End If If xflg = False Then Me.Left = Me.Left + X - oldX End If If yflg = False Then Me.Top = Me.Top + Y - oldY End If End If End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) flg = False End Sub
>>303 マウスポインタのデスクトップの端からの距離を計ってもダメ
マウスポインタではなくドラックしているウィンドウの端との距離を計るのが正解
デスクトップの端にひっつく動作を『スナップする』と呼ぶので具具ってにれば...
ひっついている間はウィンドウを移動できないようにするのでサブクラス化が良sage
WM_MOVEを監視する
>>303 の意見に賛成か?
↑は窓をを引っつかせるときの話ね。 説明不足だったんで補足。 くっついた窓を引っぺがすときは マウスポインタ監視しなきゃダメだね
一時ファイルのフォルダを指定したいのですが、 MSDNをよむと「特殊フォルダの定数」というところに TemporaryFolderというのを見つけたのですが、説明に 「コード内で定数を使用するには、目的の定数の定義が入った適切なタイプ ライブラリをプロジェクトから 明示的に参照しておく必要があります。」とかいてあります。 一体どれを参照設定すればいいのでしょうか・・・。 MSDNには説明がいないし、googleで「特殊フォルダの定数」で検索しても出てきません。
>>310 値2って書いてあるんだから、そのまんま2で代入しちゃえば?
コメントで TemporaryFolder とでも書いておけばいい。
あんまりスマートな解決方法じゃないが、とりあえずやっつけたいならこれで。
スマートにやりたいなら、他の識者の方の回答を待ちましょう。
>311 あの・・・・ msgbox 2 ってやってもあたりまえのように2が表示されるわけなんですが、 たとえばtempフォルダのパスを表示することはこの「特殊フォルダの定数」をつかって 可能なのでしょうか。 定数ってことですが、実行する際に環境ごとのパスを取得してTemporaryFolderには そのパスが入ってるというイメージだったのですが、違うみたいですね? WindowsAPIを使う方法しかないのかな・・・・。
>>↑ 参照設定ってAxtiveXを参照するための設定 あまり特殊なAxtiveXを使用すると開発環境以外に インストールされている可能性が低いため開発環境以外で 実行でき無いことが多い (自分しか使わねー!!よっていうんなら、いいけど) なるべくAPIを使用するとよい もしAPIの使用を避けたいのなら VB関数のなかに Environ というのがあります strTmp = Environ("TMP") あの >一時ファイルのフォルダを指定したい って一時ファイルのフォルダのパスを取得したい ですよね...
>313 参照設定を行ってもディストリビューションウィザードを使ってセットアップを作れば問題ないですよね。 (まあいちいちセットアップが必要&配布ファイルサイズがでかくなりますが。) Environ("TMP") まさにこれです。TMPのところは、システムのプロパティの環境変数の変数名を入れれば、 ほかにもいろんな値が取れますね。 >>一時ファイルのフォルダを指定したい >って一時ファイルのフォルダのパスを取得したい >ですよね... ご指摘のとおりです。 すごくたすかりました。ありがとうございました。 (しかし特殊フォルダの定数ってなんだったんだろう・・・。)
「Microsoft Scripting Runtime」を参照設定して、 Set fso = New FileSystemObject MsgBox fso.GetSpecialFolder(TemporaryFolder)
316 :
デフォルトの名無しさん :03/02/10 13:04
最近流行ってるインターフェース「マウスジェスチャー」を作ってみたいんですが、 あらゆるコントロールでのMouseUp,MouseDown,MouseMoveを得る方法はありますか? 特定のコントロールだけなら、そのコントトールのマウスイベント上でマウスジェスチャーの処理を書けばいいですけど、 ふつう色んなコントロールをいっぱい貼り付けてるわけで、その全ての上でのマウスの動作を調べないとだめなわけですよね。 それとも、マウスジェスチャーを搭載するならもっと良い方法がありますか?
317 :
デフォルトの名無しさん :03/02/10 13:05
DLLのつくりかたを教えてくださいな
>315 やってみました。 きちんと動きますた。教えていただきありがとうございます。 EnvironはVB内蔵の関数 こちらはVBSやVBAでもつかえる関数という感じかな・・?
>>317 クラスを作ってくださいな
ちなみに API のDLLはVBでは作れませんな
ってこの質問 多すぎる 少しは調べてからレスしろゴルァ
とネタにマシ"レス
>>312 もう他の人が答えてるけど、そもそもその定数が
FSOのGetSpecialFolderメソッドで使うものと知らないで質問してたのか・・・
道理でおかしいと思ったw
>322 はい。そうなんです。MSDNで説明してるページ見つけて、そのページからリンクしてるところさがしたり、 同期ボタンを押してみたのですが横の目次のツリー表示のところはトップを表示したままでした。
GPIBでオシロスコープの波形を取り込んでそれを描画する プログラムを組みたいのですが、どうやっていいか分かりません。 どうしたらいいのでしょうか?
>>342 何かしらのハードウェアが必要じゃない?
GPIB VB で検索
327 :
デフォルトの名無しさん :03/02/10 18:19
Dim Flag as Boolean Flag = True Do While Flag = True If (GetAsyncKeyState(vbKeyA)) <> 0 Then 'ここに何らかの処理をして、ある条件でFlag=falseにする DoEvents Loop この処理でキーイベントを拾った後、何らかの処理をしたいのですが このコード以外に何か良い拾い方はありませんか? 初めは最小化やタスクトレイに入っていて、キーを押すと反応する様にしたいのです。
>>327 グローバルフックやホットキーを使えや
そのコードだとCPU無駄遣いとかDoEventsで期待しない動作とか
>>328 グローバルフックとホットキーはやり方が分からないです。
参考になるホームページがあったら教えて下さい。
「グローバルフック」はVBではできません。
>>331 良いサンプルが見つかりました。
ありがとうございます。
データソースを指定してピボットテーブルを作れるOCXが どこかのメーカーから出てたと思いますが知ってる人いたら教えて下さい。 もしくはフリーでそのようなocxあれば教えて下さい。
335 :
デフォルトの名無しさん :03/02/11 01:57
VBでUnicodeの文字コードを文字としてプリンタに印字したいのですが、 ChrW関数だと表示できる文字と、"?"の代替文字に置き換えられる文字と あるのですが、回避する方法ってありますか?
標準では無理なんじゃないか?
337 :
デフォルトの名無しさん :03/02/11 02:06
publicのプロシージャを標準モジュールに入れるのと、 DLLにしてcallするのとどう使い分けますか?
どうって言われても・・・ 基本は標準モジュールでいいだろ。 どうしても速度が欲しいなら他言語で DLL 作るが、そんな必要はそうそう無い。
え、DLLって早いんすか。
VB側から呼び出す速度を含めて、ってこと? 呼び出す速度なんて無いのかな。。
342 :
デフォルトの名無しさん :03/02/11 11:10
>>316 ですけど上手い方法ないですかね。
外部DLLとか使ってフックするとかしか手段無しですか?
>>341 初回呼び出しは DLL のロードとかあるので遅い。
けど、それ以降はメモリに乗っかってるのでそうでもない。
TrueDBGridの拡張アンバウンドモードで、グリッドを再描画する際にRebindを呼び出すと、 UnboundReadDataExイベントの中で Recordsetオブジェクト.Move offset, StartLocation という処理をしているのですが、極端に時間がかかります。 何が原因でしょうか?
345 :
デフォルトの名無しさん :03/02/11 21:24
教えてください 他のアプリケーションの、コマンドボタンをクリックするするプログラムを作っています コマンドボタンのウィンドハンドルの取得をして、そこに SendMessage をすればいいと考えていますが、 SendMessage の引数に、どういう値を入れていいのかが解りません MSDNでは winuser.h というファイルに定義があると書いてありましたが パソコンにはありませんでした。(VB6のみの環境) MSDNのどこかに公開されているのでしょうか?
>>343 メモリには乗っているけどプロシージャ呼び出しごとのオーバーヘッドもなかなか捨てたもんじゃない。
頻繁に呼び出される小さいプロシージャをDLLに置くのはあまり勧めない。
逆にDLL中で長時間作動するようなコードは速度向上につながるけど、その間VB側に制御が帰ってこない。
特に文字列型とかユーザ定義型を引数にしたりすると変換・再配置のコストも多少増える。
ま、その程度の速度が致命的なら最初からVBを選択肢に入れてはいけないんだけどね。
348 :
デフォルトの名無しさん :03/02/11 21:36
おながいします。 ネットワーク上の他のコンピュータにログオンしているユーザー名を取得 したいのですが・・・。 nbtstat -a Pc1 などでバッチファイルで切り出したログ解析していたのですが、もっとこう 直接ユーザー名を知る方法はないものかと。 GetUserNameとか何とか色々APIはあるようですが、ネットワーク上の 他のコンピュータにログオンしているユーザー名は拾えないようで。 よろしくおながいします。
>>346 ありがとうございます。
定義ファイルは見る事ができたのですが、
どの定数を使っていいのか、見当がつきません。
ボタンをクリックさせる為のメッセージの定義名も教えてください。
よろしくお願いします
>>344 の処理に関わらず、Moveメソッドに時間がかかる時に考えられる原因で、
わかる事があれば教えて下さい。
フォームをデスクトップの端にひっつかせる方法の質問をした297です。 以下の方法で成功したので報告します。 ※WINDOWPOS構造体とRECT構造体は定義済みです。 ※本文が長すぎると文句言われました(;´Д`) Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, lParam As WINDOWPOS) As Long 'lParam は WINDOWPOS で固定、コールバック関数も同様 Public Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long Public WndProc As Long Public Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, lParam As WINDOWPOS) As Long Dim wRect As RECT, Width As Long, Height As Long Const Snap As Long = 20 'ひっつくまでの距離の指定 Select Case uMsg Case &H46, &H47 SystemParametersInfo 48, 0, wRect, 0 'デスクトップの領域を取得 Width = Form1.Width / Screen.TwipsPerPixelX Height = Form1.Height / Screen.TwipsPerPixelY If Abs(lParam.x) <= wRect.Left + Snap Then lParam.x = wRect.Left If Abs(lParam.y) <= wRect.Top + Snap Then lParam.y = wRect.Top If Abs(lParam.x + Width - wRect.Right) <= Snap Then lParam.x = wRect.Right - Width If Abs(lParam.y + Height - wRect.Bottom) <= Snap Then lParam.y = wRect.Bottom - Height End Select WindowProc = CallWindowProc(WndProc, hwnd, uMsg, wParam, lParam) End Function 今回初めてウィンドウのサブクラス化にチャレンジしてみました。 皆さんありがとうございました。
最近VB6をやり始めました。 ファイルを一行ごとに読み込んで別々のテキストボックスに表示したいのですが Do Until objFile.AtEndOfStream strRecBuff = objFile.ReadLine If (i = 0) Then Text0.Text = strRecBuff ElseIf (i = 1) Then Text1.Text = strRecBuff ElseIf (i = 2) Then Text2.Text = strRecBuff ・ ・ ・ End If i = i + 1 Loop こんな風に書いていくしかないのでしょうか。 何行にもわたってしまうのでうまく書けないかと思いまして、、、 よろしくお願いします。
353 :
デフォルトの名無しさん :03/02/12 07:24
TextBoxをコントロール配列にすればよい。
>>352 Controls コレクション とか、for each で検索してみな。
あと If TypeOf とか必要かもね。
>>353 >>354 初歩的な質問にすばやく答えていただきありがとうございました。
おかげでプログラムがすごくすっきりしました。
>>339 >え、DLLって早いんすか。
DLLが速いわけではない
DLLを作っている言語(Cとか)が速いだけ
VB(6)からSQLサーバーへの接続って普通何使うの? ADO?
358 :
デフォルトの名無しさん :03/02/12 21:43
VB6SP5でディストリビューションウィザードでセットアップファイルを作ろうとすると、 予期せぬエラー429が発生しました。:ActiveXコンポーネントはオブジェクトを参照できません。 といわれました。問題の回避方法をご存知のかた教えていただけないでしょうか。 ちなみにどのプロジェクトでもこうなります。 また同じプロジェクトを別のマシンで実行すると、成功します。
>>358 なんとなくだけど、参照設定で参照不可になってるアイテムとかない?
360 :
デフォルトの名無しさん :03/02/12 22:12
>359 Visual Basic runtime objects and proceduresというやつの場所が c:\winnt\system32\msvbvm60.dll\3 になってました。 言語は標準/英語でした。 場所がすごく変な気がするのですが・・・。 ちなみにその上のVisual Basic For Applicationsの場所が c:\winnt\system32\msvbvm60.dll になってます。 なにかソフトをインストールしたときにレジストリをこわされたのかな??
365 :
デフォルトの名無しさん :03/02/13 09:18
>>358 Visual Studio Installerは試した?
366 :
デフォルトの名無しさん :03/02/13 09:47
367 :
デフォルトの名無しさん :03/02/13 12:21
DVDの-Rから-Rへのコピー(セクタイメージも含めて)をするには なにかいいコントロールありますか?
>>367 処理開始はコマンドボタンが普通 Private Sub DVDCopyButton_Click()
( ・_ゝ・)ツマンネ
>365 VisualInsallerをインストールしてみました。そのあとWindowsUpdate(なにかセキュリティ関係のものがひとつ)をして、 念のためSP5をもう一度当ててみた。 ここでちょっとディストリビューションウィザードを使ってみると、なんと動きました。 再インストールで直ったということでしょうか・・・。どうもありがとうございました。
371 :
デフォルトの名無しさん :03/02/13 17:32
VBからAcrobat PDFのファイルを開いて、中身のテキストを取得するには どうしたらいいのでしょうか。Acrobat5の製品版は持っています。
372 :
デフォルトの名無しさん :03/02/13 18:03
WindowsXP+VB6です。 フロッピーのフォーマットをしようと、myformat.batファイルに format a: と書き、VBから Shell App.Path & "\myformat.bat" と実行しても、一瞬DOSプロンプトが見えてすぐ消えてしまいます。 当然、Formatもされておらず、何が悪いのかさっぱりわかりません。 FDをうまくフォーマットする方法を教えて下さい。 フォーマットするコマンドなんてないっすよね?
>>373 サンクスです!
ダイアログ無しでフォーマットしようってのが甘かったんすかね。。
batファイルについては、いろいろなサイト見て回っても、
>>372 の方法で行けるってかいてあったんすけど、もしかしたらXPだから
駄目なんですかねぇ。。
とりあえず、教えていただいたのでダイアログ有りでやってみようと思います。
ありがとう。
>>374 FORMAT A: /U/V:""<hoge.txt
hoge.txtには
Y
N
と書いておく
hoge.txtの中身はこっちのほうが分かりやすいか 59 0D 0A 4E 0D 0A 1A
377 :
デフォルトの名無しさん :03/02/13 19:32
ゲームのフルスクリーンを取ろうとしてゲーム画面で BitBlt Form1.Picture1.hDC, 0, 0,800,600,GetDC(0), 0, 0, vbSrcCopy を実行したところ、撮れませんでした。 フルスクリーンを撮れる方法は有りませんか?
379 :
デフォルトの名無しさん :03/02/13 20:15
メインメニューで作者のホームページを紹介したいのですが、ブラウザを開くソースが分かりません。 ブラウザを開くソースを教えてください。お願いします。 開発環境 VisualBasic.NET Standard
VBでWebアプリを作ってるんですが、Cookieを使いたいのでAPIで InternetGetCookie、InternetSetCookie を使ってるんですが ブラウザを閉じるまでは、Cookieにデータが保存されているんですが ブラウザを閉じるてから、開きなおすとデータが消えてしまいます。 どうしたらブラウザを閉じてもCookieが消えなくなりますか?
384 :
デフォルトの名無しさん :03/02/13 23:11
>>371 SDKを使うのが簡単。有料になったけど。
>>377 DirectXの画面はその方法じゃ取れない。
385 :
デフォルトの名無しさん :03/02/13 23:18
386 :
デフォルトの名無しさん :03/02/14 00:37
プロシージャーの中で自分のプロシージャー名って取得できるんですか?
できませ
388 :
デフォルトの名無しさん :03/02/14 04:17
windowを伸ばしたらテキストボックスも伸びるようにする プロパテはありますか?ウインドサイズをモニタして いちいちボックスのザイズとざひょをせっていシナケレバいけませんか
シナケレバいけません でも貴方はまず日本語を勉強シナケレバいけません。
390 :
デフォルトの名無しさん :03/02/14 04:39
ありがとうございました
>>384 ありがとうございます。やっぱりAcrobatのSDKが必要ですか・・・
ちなみに、多少手間がかかってもほかにやる方法をご存知でしたら、
ヒントだけでもお願いします m(__)m
AcrobatReaderのOCXをフォームに貼り付けてロードするところ
まではできたんですが、肝心の内容が取得できません。
VBでDirectXを使ってフルスクリーンを撮れる方法は有りませんか?
Form1.Show vbModal, Form2 と書くと From2を親にして、Form1を表示しますよね? この時タスクバーのアイコン(Form2)を見ると、 『アクティブでない状態(凹んでいない)』になりますよね... MsgBox InputBox APIを使用したコモンダイアログボックス を表示した時、 タスクバーのアイコンは、『アクティブな状態(凹んでいる)』のままになっています。 Form1を表示した時にタスクバーのアイコン(Form2)をアクティブにさせたまま にする方法は ないんでしょうか?? VB製のソフトは全て こうなるようですが...
少佐! MsgBox と 固定ダイアログFORM2.Show vbModal,Form1 の Spy++による調査が完了いたしました。 MsgBox は WS_POPUPWINDOW ステータスを保有し、Form1の子窓であるようです。
>>394 大佐!レス サンクスであります
Form1にWS_POPUPWINDOW を追加すると...試してみるであります
いろいろ試した結果
'Form2より Form1を表示
private Sub Command1_Click()
Form1.Show vbModal, Form2
End Sub
'Form1のロード時に SetParent
private Sub Form1_Load()
Call SetParent(Form2.hWnd, 0&)
End Sub
でむりやり できた
この方法って 違いますよね
SetParentすると、偽MDIになっちゃわないかい…。 SetParentとSetWindowLongで弄くればいいのかな。 ウインドウいじくれて楽しいんだけど、ウインドウの関係が不正に なっちゃわないか不安だったりする。問題ないのかな?
397 :
デフォルトの名無しさん :03/02/14 19:28
初心者の質問です、お願いします。 フォームに最小化ボタンは付けて、×ボタンを消すにはどうしたらいいので しょうか?どうしても最小化ボタンを付けようとすると×ボタンもついてき てしまいます(汗)
398 :
デフォルトの名無しさん :03/02/14 19:48
VBSで、あるフォルダ以下の全ファイルの「読み取り専用」属性を消したいのですが、
なにぶんVBSの知識が少なく、困っています。
再起呼び出しみたいなのを使わないといけないのでしょうか。
識者の方、よろしくおながいします。
>>397 消せないので、これでどうか。
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = vbFormControlMenu Then
Cancel = Not 0
End If
End Sub
Ifあたりかたインデントがズレた…。逝ってきます。。
= と := の違いを教えてください。
デルファイ?
名前付き引数でしょ。 Sub Hoge(strHage as String, lngFuga as long) ってプロシージャを呼ぶ時、 Call Hoge(lngFuga := 7743, strHage := "ゲイツ") みたいな、順番に依存しない呼び出しができる。 …正直言って、めったに使わない気がするがどうよ?
>>398 FileオブジェクトかFolderオブジェクトの中にAttributeプロパティがある
後はヘルプ読め
>>401-402 スレ違いかと思ったのですが、VBAです。
=は代入だとわかるのですが、:=というのが出てくることが
あり、なんなのかと思って質問しました。VBAの文法を解説
した本がなかなか見つからなくて、ヘルプ頼みなのでしょうか・・。
それともVBの本を買うしかないのでしょうか。
>>403 それは分かります。
あるPath以下のファイルを列挙するのに難儀しています。
再帰呼び出しみたいなのがあるのでしょうか。
>>404 >>402 さんのレスを嫁よ。
406 :
デフォルトの名無しさん :03/02/14 22:32
VB6.0、OSwin98、メモリ192M フォームにコンボボックスをコントロール配列で200*2並べないといけなくなったのですが 途中(150個ぐらい並べた所)でメモリ不足と出てフォームを開くことができなくなりました。 これはコンボボックスの数を減らすしかないでしょうか?
>>406 何の処理か非常に気になるな。
必要な処理?
>>407 他の人がVBAで作ったものをVBで作りなおして更に機能を強化させようとしているんです。
(そちらはコンボボックスが400個並んでました。。)
エクセルから20*20の表を読みこんで、その値の候補がコンボボックスに代入されるようになっていて
いろいろ値を選んで変えてみて計算させる、と言った感じの処理です。
409 :
デフォルトの名無しさん :03/02/14 22:49
>>404 なめてんのか?二度と質問するな。
誰が回答しても永遠に質問するんだろ?
410 :
デフォルトの名無しさん :03/02/14 22:50
ヤバイ。VB6ヤバイ。まじでヤバイよ、マジヤバイ。 VB6ヤバイ。 まず汚い。もう汚いなんてもんじゃない。超汚い。 汚いとかっても 「変数名おかしくない?」 とか、もう、そういうレベルじゃない。 何しろ手続き型。スゲェ!なんか設計とか無いの。仕様とかソフトウェア工学とかを超越してる。手続き型だし超汚い。 しかもフォームにべた書きしてるらしい。ヤバイよ、べた書きだよ。 だって普通はクラスとか分割するじゃん。だってペーストしたところ変更きたら困るじゃん。 コンパイルエラーとか変更もれとか困るっしょ。 処理が追加されて、Ver1.0のときはメソッド数行だったのに、Ver3.0のときはメソッド数百行とか泣くっしょ。 だからJavaとかべた書きしない。話のわかるヤツだ。 けどVB6はヤバイ。そんなの気にしない。カット&ペーストしまくり。ソース表示してる画面を 5画面ほどスクロールしてもメソッド終わらないくらい汚い。ヤバすぎ。 手続き型っていたけど、もしかしたらオブジェクト指向かもしんない。でもオブジェクト指向って事にすると 「じゃあ、VB6のクラスモジュールってナニよ?」 って事になるし、それは誰もわからない。ヤバイ。誰にも分からないなんて凄すぎる。 あと超いいかげん。Endステートメント。処理内容で言うと。強制終了。ヤバすぎ。メモリ開放する暇もなく終わる。怖い。 それに超処理遅い。超のろのろ。それに超機能不足。ActiveXコントロールとか平気で出てくる。ActiveXコントロールて。 高くて買えねえよ、グ○ープシティ。 なんつってもVB6はDLLが酷い。DLL HELLとか平気ででるし。 .NETなんてPublicメソッドとかDLLのインタフェース変更しても上手く扱えるように アセンブリを使ってバージョン比較したり、レジストリ無くしたり、グローバルアセンブリストア使ったりするのに、 VB6は全然無視。インタフェース違ったらエラーとしか扱わない。酷い。ヤバイ。 とにかく貴様ら、VB6のヤバさをもっと知るべきだと思います。 そんなヤバイVB6でシステム作った俺とか超偉い。もっとがんばれ。超がんばれ。
411 :
デフォルトの名無しさん :03/02/14 22:50
VBを使ってデータベースにアクセスし、内容を表示したいのですが、 20020120 20020210 20021010 以下略 という日付データがカラムに入ってるのですが これを4月〜翌年3月で年度ごとに抽出したい時 どの様にすればよいのでしょうか? SQLサーバーでの使用も考えておりますので、 SQL文は一般的なものを使いたいのです。 宜しくお願いいたします。
412 :
デフォルトの名無しさん :03/02/14 22:53
>>408 できる限り、必要なリソースの量が少ないウィンドウレス コントロールを使用します。
>>404 は、質問した背景と意図を説明しただけです。
>>402 >…正直言って、めったに使わない気がするがどうよ?
などを引用しておけばよかったですね。
>>405 と
>>409 は何か誤解しているかと。
>>413 だから、VBではつかわねーってのに、なんでVBの本買うのよ。
人のレス読んでない証拠だろうがよ。
せめてExcelやAccessのスレ逝けよ。
>>405 For EachとFilesオブジェクトを調べれ
417 :
デフォルトの名無しさん :03/02/14 23:19
>>391 フリーのテキスト取得クラスが複数公開されてるよ。
ソースはVBじゃなくて、Cだけどね。
>>416 ごめん、その辺りはすでに使って一日悩んでたんですが、
(疑うようでアレですが、)まじでそれだけでいけますか?
それ以下にサブフォルダが無いフォルダならそれでいけるというのはわかります。
VBで言うファイルをDir()で列挙するだけ、みたいな。
不特定多数のフォルダ階層に入っていけないんすよ。。
VBで言う再起呼び出しのようなのがあるのでしょうか。
>>418 関数作って再帰すればいい。
target="C:\"
set fso=createobject("scripting.filesystemobject")
func fso.getfolder(target)
sub func(folder)
for each q in folder.files
読み取り専用属性解除
next
for each q in folder.subfolders
func q
next
end sub
ガビーン!subとかいう概念自体ないのかと思ってますた。。。
うわーん、もっと勉強せねばならないなぁ。
…
>>416 氏、本当にごめんなさい!
マジで氏んできます。。
>>421 気にすんな、俺も最初の頃は使えないと思い込んでた。
subもfunctionも使えるから頑張れ。
そしてヘルプを隅から隅まで(ry
>>412 ありがとうございます。
なんとか調べてウインドウレスコントロールをインストールできました。
さっそくこれで試してみます。
>>414 winXPのことですか?
ちょっぴりOS変えたくなってきました。。
>>423 WinXPだよ1000個でも2000個でも平気だったよ。
コンボボックスは一個で良いような気がするんだが・・・
百個単位のコントロールを一つのフォームに貼るのはアレだと思う・・・ そもそも一つのフォームにそんな数のコントロールを貼る必要のある設計に問題が(略
例えば初心者がExcelを作りたいと思ったときにテキストボックスを 画面いっぱい並べる感覚なんじゃないかと思う。
>>424 1000個でも平気ってうらやましい
でも、その為にXP買うのなら勉強した方がよさそうですね(笑
>>427 >>Excelを作りたいと思ったときにテキストボックスを画面いっぱい並べる
まさにこんな感じです。。
429 :
デフォルトの名無しさん :03/02/15 00:54
テキストボックスの内容をファイル名にしたいのですが、ファイルに使える文字は 自分でチェックする以外に方法ないのでしょうか?例えば KeyPressで KeyAscii = ファイル名に使えないアスキーコード はKeyAscii = 0で返すとか。 やりたいことは1つのフォルダ限定でファイル保存したいだけなんですけど。 もしかしてDialogコントロールでフォルダ限定できたりしますかね^^;
やりたいことが変だと思います
431 :
デフォルトの名無しさん :03/02/15 01:12
>>429 「Windows ファイル名に使えない文字」で検索すれば、
リストがヒットする。
ほか、デバイス名は名前レベルで使えない。conとか。
俺って馬鹿なのかなぁ Private Sub Text1_KeyPress(K As Integer) '\/:*?<>| If K = 92 Or K = 47 Or K = 58 Or K = 42 Or _ K = 63 Or K = 60 Or K = 62 Or K = 124 Then K = 0 End Sub
433 :
デフォルトの名無しさん :03/02/15 02:06
>>432 Select Case K
Case 42,47,58,60,62,63,92,124
434 :
433MHz :03/02/15 02:07
数値よりvbKey定数を使う方が可読性がいい。
If Instr(K, "\/:*?<>|") <> 0 Then K=0 ってのは?
>>435 、間違い(何処が間違ってるか分かると思うんで読み替えてくれ)
437 :
デフォルトの名無しさん :03/02/15 02:26
If InStr("\/:*?<>|", Chr(K)) <> 0 Then K=0 なら、いちおうオッケーかな。 でも、InStr("hogehoge", "")が 1になるんだよな。
438 :
デフォルトの名無しさん :03/02/15 03:00
質問です フォルダの選択ダイアログでネットワーク上のドライブを指定すると C:\windows\NetHood\云々ってなるんですがUNCに変換する方法はないですか?
If (FileName Like "*[\/:,;*?<>|]*") Or (InStr(1, FileName, Chr(34)) <> 0) Then Err = 52 If Err <> 0 Then 'ファイル名不正 Exit Sub End If End If
>>429 適当なファイルを名称変更するときに、
あきらかに使えない文字を試してみるよろし。エラーメッセージに答えはある。
>>432 キーコード定数を使った方が賢い。
・・・と思ったが、_KeyDown ではなく、_KeyPress だった。
鬱で氏んできます。
(´ー`)oO○(キー入力でチェックをかけるときはクリップボード操作にも気をつけよう)
Shift+Insのペーストを見落としやすいね。
いい感じで無視されてるんですが…どなたかお願いします
446 :
デフォルトの名無しさん :03/02/15 22:16
質問があります Shell関数をつかって、 Program Filesの何階層か下のディレクトリにあるCSVファイルを 開こうとしているのですが Call Shell("C:\Program Files\〜Excel.exeのパス" & Space(1) & "C:\Program Files\〜csvファイルのパス") とすると、「Program.xlsがみつかりません」というエラーに なってしまいます。 他のC:\直下などのパスを指定した場合は問題なく開く事が出来ました。 Program Files階層下のファイルはこの場合開く事が出来ないのでしょうか? 開発環境はWindowsXPのVB5(SP3)です。
>>446 半角スペースが含まれているパスは "" で括る
448 :
デフォルトの名無しさん :03/02/15 22:36
>>438 さん
ご自分の案件を抱えつつのご回答ありがとうゴザイマス
正確に申し上げますと、EXEのパス、csvファイルのパスは
あらかじめ変数に格納しています
strPathAdd_A = "C:\Program Files\〜Excel.exeのパス"
strPathAdd_B = "C:\Program Files\〜AAAAA.csvのパス"
Call Shell(strPathAdd_A & " " & strPathAdd_B)
という感じです。
この中でさらにProgram Filesを""で括るということでしょうか?
..私では.438さんの悩みにはお力になれそうもないっす。スンマセン
>>448 strPathAdd_A = Chr$(34) & strPathAdd_A & Chr$(34)
って感じ、strPathAdd_Bも同じように
間違ってたらゴメン
Aは括んなくていいと思うが
括ったっていいじゃん 害無いし
452 :
デフォルトの名無しさん :03/02/16 14:50
>450 やってから言えよ
453 :
デフォルトの名無しさん :03/02/16 15:36
超初心者です。 lbl1=val1+val2 cmdコマンドボタンをクリックしても、lbl1の値を保存する 方法はどうしたらよいのでしょうか。 一つのラベルを使って連続で和を求めたいのです。
>>453 ・結果をラベルに表示して、次にそれを使う
lbl1.Cption = Format(val1 + val2)
lbl1.Cption = Format(Val(lbl1.Cption) + val3)
・Static変数を使う
・Public変数を使う
使い方はヘルプ見ろ
455 :
デフォルトの名無しさん :03/02/16 15:52
>>454 ありがとうごうざいます。
早速、やってみます。
>>453 自分が分からないことを、他人にも分かるような説明ができるようになるまで、
悪戦苦闘・・・ちゅーか、勉強するこった。
457 :
デフォルトの名無しさん :03/02/16 16:28
>>454 453です。
コードの書き方がおかしいと思いますが
下記のコードで出来ました。
Private Sub Command1_Click()
Dim val1 As Integer
Dim val2 As Integer
Dim val3 As Integer
val1 = txt1.Text
val2 = txt2.Text
Static x As Integer
val3 = x
lbl1.Caption = Format(val1 + val2)
x = lbl1.Caption
lbl1.Caption = Format(Val(lbl1.Caption) + val3)
End Sub
俺のは素でダメですか。・゚・(ノД`)・゚・。
>>457 それなら、
Private Sub Command1_Click()
lbl1.Caption = Format(Val(lbl1.Caption) + Val(txt1.Text) + Val(txt2.Text))
End Sub
の一行で事足りる。
が、これでは応用がきかないのでお勧めできない。
手直しするなら
Private Sub Command1_Click()
'変数宣言
Dim val1 as Integer
Dim val2 as Integer
Static x As Integer
'入力受け取り
val1 = Val(txt1.Text)
val2 = Val(txt2.Text)
'計算
x = x + val1 + val2
'表示
lbl1.Caption = Format(x)
End Sub
のように、やってることを整理区別して書くように。
あと、変数の型は意識して代入する癖を付けろ。Format、Valなど…
>>459 入門書等では、この様なことは書いてないです
大変参考になりました。ありがとう。
461 :
デフォルトの名無しさん :03/02/16 18:01
>460 とっつきやすくするために、入門書では型についてうるさく書いてない。 でも、あとで困るから、できるだけ意識したほうがいい。 数字か文字か、それだけでもね。
VB6でテキストフィールドがいくつかある 簡単なアプリケーションを作ったのですが、 そのアプリケーションが他のアプリケーションで隠され、 それがなくなったときにそれまで隠れていた部分が 白くなってしまうことが頻繁にあります。 それを改善するためにシステムが自動的に描き直してくれるように AUTOREDRAW=True としてみたのですが状況は変わりません。 他のIEなどの一般のプログラムではそういったことは起こらないのですが、、 どなたかわかる方がいらっしゃいましたらアドバイスお願いいたします。 OSはWINDOWSXPでGEFORCE2MXを搭載しています。
AutoRedrawはフォームやピクチャBOXへの描画行為が対象。 テキストボックスなんかは関係ないよ。 もともと、自動で描画される。 でも、イベント処理中には再描画されないぞ。 重い処理をやらせるとしばらく止まったようになるアレだ。 Form_MouseMove Form_Activate なんかに重ーい処理を書いてたりしてないかな?
>>463 アドバイスありがとうございます。
単純にテキストフィールドに入力されている数値を
ボタンが押されたらファイルに出力するというプログラムです。
ボタンを押していない時は特に重い処理はさせていないと思います。
ボタンを押したときに処理が重くなって白くなる現象とは違い、
何もしていなくてプログラムをdeactiveにして
IEやExplorerなどのアプリを移動させて横切らせると白い線が残ってしまうんです。
その後activeにしてもそのまま白い線が残ったままになっています。
ボタンを押してrefreshをかけると直ります。
ボタンを押してRefreshをかけるときはこのようにしています。 Private Sub Command8_Click() Refresh End Sub これだとうまくいきます。 フォームがアクティブになったら呼び出されるサブルーチンに Refreshをこのように入れてもうまく機能しませんでした。 Private Sub Form_Activate() Refresh End Sub こんな感じにするとRefreshはかかってくれませんでした。
>IEやExplorerなどのアプリを移動させて横切らせると白い線 そりゃ、描画のゴミかと。 再描画されんかぎり消えん。 かなりの速度でウィンドウを動かさないと ならないと思うのだがどうだろう? ある程度は仕方ないかと… Form_Activateでは 他のプログラム→自分のプログラムへのアクティブは受け取れんぞ。仕様だ。 代価案はおれは思いつかんので、誰か頼む。
>>466 アドバイスありがとうございます。
>かなりの速度でウィンドウを動かさないと
>ならないと思うのだがどうだろう?
ゆっくり動かしても早く動かしてもどっちでも
結構ゴミが残っちゃうんです。
>Form_Activateでは
>他のプログラム→自分のプログラムへのアクティブは受け取れんぞ。仕様だ。
そうでしたか。知りませんでした^^;どうもです
>>462 それはグラフィックボードのドライバのバグじゃない?
他のマシンではどうなる?
>>468 >それはグラフィックボードのドライバのバグじゃない?
過去にそういう問題があったようですが
最新のドライバ(現在使用中です)では解決されているようでした。
>他のマシンではどうなる?
明日学校にいって他のOS、マシンで試してみようと思います。
アドバイスありがとうございました。
410がみごとにスルーされてる。
>>396 Call SetParent(子ウィンドウ, 親ウィンドウ)
だと『偽MDI』になりますが
Call SetParent(子ウィンドウ, 0&)
だと ならない
Call SetParent(子ウィンドウ, 親ウィンドウ) だと子ウィンドウの操作が出来なくなります
>>462 VBって
サブクラスしないと取れないイベントが多すぎる
>>410 しょうがないから突っ込んでやる
V B だ か ら し か た な い じ ゃ ん
Access2000のレポートを VB6からDoCmd.OpenReportを使用して 印刷しているのですが 5枚1セット(全部レポートは別)の印刷をする際に プリンタjobが5つになってしまい 他の印刷物がタイミングにより割り込んでしまい 困っています この5つのjobを一つにまとめる方法はないでしょうか?
474 :
デフォルトの名無しさん :03/02/17 17:48
VBScriptで、HTML上のラジオボタンの状態を制御するにはどうすればいいのでしょうか。 <input type="radio" value="0" checked name="RB_RADIO"> <input type="radio" value="1" name="RB_RADIO"> <input type="radio" value="2" name="RB_RADIO"> といったような3つのラジオボタンがあり、あるコマンドボタンを押すとこれらの選択状態を 切り替えたいのです。(3を選択状態にする、等。) Web上のヘルプ・サンプルはJavaScriptばっかりです。
すんませんできました・・・ 単純にdocument.all付け忘れていただけでした・・・
既出の既出かもしれんが、カーソルが乗ったときイメージBOXの画像を 入れ替える方法頼む。 Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Dim udtCursorPoint As tagPOINT Dim lngResult As Long ' 現在のカーソル位置を取得 lngResult = GetCursorPos(udtCursorPoint) With Image4 If udtCursorPoint.x * Screen.TwipsPerPixelX <= .Left + .Width _ And udtCursorPoint.y * Screen.TwipsPerPixelY <= .Top + .Height Then Debug.Print udtCursorPoint.x * Screen.TwipsPerPixelX .Picture = LoadPicture("D:\album\image\close02.jpg") .Refresh Else .Picture = LoadPicture("D:\album\image\close01.jpg") .Refresh End If End With End Sub ↑いまいち反応鈍いんだよね(*´д`*)アハァ…
hoge.exeを作ったのですが、これを実行するとWindows起動時に自動的にhoge.exeが起動するように設定したいのですが こんなことできますか?
>>477 始めに読み込んでいてメモリ内で画像転送したら?
>477 最初からImageを2枚用意して表示/非表示を切り替えたら? その都度LoadPictureせなあかん理由があるなら別だが。
>>477 マウスが動くたびに必ずロードピクチャーするのは仕様ですか
484 :
デフォルトの名無しさん :03/02/17 21:30
PictureBox等にPDFの内容を表示することは可能でしょうか? IEでPDFを開いた時のようにしたいのです。 実現可能なAPIやOCXなどがあれば教えてください。
485 :
デフォルトの名無しさん :03/02/17 21:34
>484 Adobeの有料会員になって、SDKを送ってもらえ!
active xとかoleとかを使うだけじゃないのか?
487 :
デフォルトの名無しさん :03/02/17 21:39
VBのことまったくわからないのですが、 これはCのようにソースコードを書かなくてもアプリができるのですか? それともソースは書くようなのですか? 親戚に薦められてさっきVS付属のVisualBasicをやってみたのですが全然わからず・・・ ツールボックスでいろいろとボタンなどを作成する、ということはわかったのですが・・・。 どなたかよろしくお願いします。
>>487 本屋にでも行って、その手の本でも立ち読みするか、
WEBのその手のサイトでも見てください。
なぜ今ここで教えてくれないのですか? マルチもしてませんし。
>>489 本が何冊も出てる言語の説明をここでしろと?
みんな貴重な意見をありがとう。 一応それっぽく動くようになった。 もっとよい方法があればたのんます。 Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Dim udtCursorPoint As tagPOINT Dim lngResult As Long Static flag As Integer ' 現在のカーソル位置を取得 lngResult = GetCursorPos(udtCursorPoint) With Image4 If flag = 0 And udtCursorPoint.x * Screen.TwipsPerPixelX <= 50 Then .Picture = LoadPicture("D:\album\image\close02.jpg") .Refresh flag = 1 End If If flag = 1 And udtCursorPoint.x * Screen.TwipsPerPixelX >= 50 Then .Picture = LoadPicture("D:\album\image\close01.jpg") .Refresh flag = 0 End If End With End Sub
494 :
本物の487 ◆ZWvUpWTdCo :03/02/17 21:50
すいませんでした。
今検索したところヴィジュアルベーシック覚えーるっていうソフトがあったので
それをDLして見てみます。
便乗ですいませんが、お勧めの書籍ってなんですか?
すいませんがよろしくお願いします。
あと、
>>489 は私ではありません。
ほんのちょっとしかこのスレにいないと思いますが、
その場トリップつけます。
書籍なんて必要ない っつってみる
条件式の=はいりませぬ。
>>498 インストーラーでスタートアップにショートカットを登録したり、
hogeが自力で登録したり、専用のレジストリに書き込んだり。
500 :
◆b0UXJ88Ngw :03/02/17 23:23
VBで作成したアプリケーションからShell関数を使用して、VCで作成した、 コンソールアプリケーションを起動すると、コンソールアプリケーションが 落ちてしまいます。 コンソールアプリケーションを単独で動かすと、普通に動きます。 コンソールアプリケーションで扱うデータ件数を減らすと、VBからでも動きます。 VBからShell関数でアプリケーションをコールする際のメモリ使用量(?)などの制限って あるのでしょか? また、あるのであれば、どのような対応をしたらよろしいでしょうか? (特効薬的なものはなし?) ご存知の方、いらっしゃいましたら、ご教授お願いします。
一応 PIF ファイルを作成して、きちんと設定した上で、shell から PIF を呼んでみるとか。 start.exe 経由で起動させてみるとか。 なんとなく command.com /c なり cmd.exe /c 経由で実行してみるとか。
て言うかそんな経験は無いんだけどなぁ。たまたまかな。
503 :
デフォルトの名無しさん :03/02/17 23:54
>>501 32bitコンソールアプリにpifが関係あるのかな?
504 :
500 ◆b0UXJ88Ngw :03/02/18 00:55
レスありがとうございます。 win2000 では大丈夫なのですが、win NT(SP5.0)では、だめなんですよ。 とりあえず、command.comから試してみます。 ありがとうございました。
>>500 Shellで引数を指定してる?
それの引き渡し方がおかしいとかない?
506 :
デフォルトの名無しさん :03/02/18 01:43
VB6.0で、システム時刻を設定する関数、メソッドはありますか? 取得する関数、メソッド、ステートメントしか見当たらないのですが…
DateやTimeにそのまま値を設定すればよかったのですね・・・ 失礼しますた
508 :
デフォルトの名無しさん :03/02/18 03:44
.netは必要なメソッドを見つけるゲーム
start.exeなんて使うと、無い環境だと困るよな。XPとか。
startってXPで消えたのか? EXEじゃなくて内部コマンドだろ。
グローバルフックでキーロガーできますた。 実行するとc:\に自分をコピーしてスタートアップにショートカットを作成します。
>>511 必ず c: とは限らないよ。
スタートアップフォルダは API を使って求めた?
513 :
デフォルトの名無しさん :03/02/18 19:50
データベースより取得したレコードセットの情報から、各フィールドの情報を 取得するにはどうしたらいいのでしょうか。 具体的に得たい情報は、 ・キー情報(キーが張られているか否か)、 ・データ型、 ・データ長 です。
>>512 スタートアップは求めますた。
ルートディレクトリもAPIで取ったほうがよいですね。
どんなAPIだろ〜
516 :
デフォルトの名無しさん :03/02/18 20:07
>>515 DBはAccess、DAO接続です。
ここでのミドルウェアとは何を指すのでしょうか・・・
517 :
デフォルトの初心者さん :03/02/18 20:25
ファイルの保存先はデフォルトのままに してくださいとあったのですが・・・。 デフォルトってなんですか??
518 :
デフォルトの名無しさん :03/02/18 20:30
519 :
デフォルトの初心者さん :03/02/18 20:34
>>518 ありがとうございますた( ゚∀゚)y─┛~~
それVBの質問と回答かね。
521 :
デフォルトの初心者さん :03/02/18 20:41
>>520 いちおうVBの本読んでたもんで(´・ω・`)
IDEって雰囲気はわかるんですが
どういう意味なんですか?
連発質問スマソ
523 :
デフォルトの名無しさん :03/02/18 20:59
>>521 統合開発環境のこと。
エディタその他がセットになってるので、こういう。
昔は、エディタやデバッガが別売だったのだ。
>>522 IDEはHDDがヒットするので、検索するのはむずかしいだろう。
「VB IDE」で検索しても、ヒットしてきた。
>513 「Tabledefオブジェクト」でヘルプを検索しる
>>523 「VB IDE 用語 -HDD -ハードディスク」でググル
526 :
デフォルトの名無しさん :03/02/18 21:09
>>525 おっと、マイナス・オプションがあったな。
>>524 ヘルプ及び書籍から、Tabledefオブジェクトを参照してテーブル名を
取得するところまではうまくいきました。
ただ、513でも述べましたが、各テーブルのフィールド情報(フィールド名称は解決済み
それ以外の、型に関する情報やキー情報)をどのように判断/取得すればよいのか
わからずに困っています。
同様にTabledefオブジェクトを用いての取得が可能なのでしょうか。
これに関しては、ヘルプを参照しても方法がわかりませんでした。
529 :
デフォルトの名無しさん :03/02/18 21:27
>>527 そのページの右のほうにある関連用語(Glossary Help)をクリックすると、
下に IDE(Integrated Development Environment)の説明が出てくる。
>>523 下までスクロールしてみろ。
Asciiはそんなヤワじゃない。
>>529 うぉΣ(゚Д゚;≡;゚д゚)出てきました。
WindowsなどのGUI環境に対応したグラフィカルなプログラム開発環境。
プログラムソースのエディット、コンパイル、デバッグなどといった一連の
作業を統合的に行なえるようにした開発環境を総称してこう呼ぶ。
との事です。勉強になりました。
あとVBってこんな重いものなんですか??
>>531 が素人のふりして、ついにVB叩きを始めた。
コマンド?
→たたかう
にげる
ぼうぎょ
どうぐ
>>532 本当に素人なんですよ。
ってか今日インストしたばっかりですし・・・。
534 :
デフォルトの名無しさん :03/02/18 21:42
>>531 VBは相当軽いんだけど。
アプリいっぱい入れてると起動するのに時間かかるかな。
コンポーネントとか検索するから。
でも、コンパイルはVCより速い。Delphiより遅いけど。
>>534 そうなんですか。
ROMを5枚くらい突っ込んでインストしたから
重いもんだと思っていました(゚Д゚;)
537 :
デフォルトの名無しさん :03/02/18 21:48
TWAIN対応のスキャナをVBから制御するためには ImgScan.DLLを使えばいいのはわかったのですが どうやって使うのか、わかりません。 知ってる方が居ましたら教えてください。
>>538 じゃあ、なんで「ROMを5枚くらい突っ込んでインストしたから」重いもんだと思うんだよ?
>>539 ん〜素人のオレが考えられる原因は
そのくらいしか思いうかばなくて・・・。
541 :
デフォルトの名無しさん :03/02/18 21:59
>>565 VB6のCD-ROMは1枚なんだけど。
VB.NETと間違えてない?
VS6全部入れたとか?
全部入れても2枚では。
さ あ 、 混 乱 し て ま い り ま し た
VB1-VB6まで5枚のCDを使ったに200バリアント
もうイイカゲン デフォルトの初心者さん の話は 終┃ 了┃ 終┃ 了┃ 終┃ 了┃ 終┃ 了┃ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ 終┃ 了┃ 終┃ 了┃ 終┃ 了┃ 終┃ 了┃ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ 終┃ 了┃ 終┃ 了┃ 終┃ 了┃ 終┃ 了┃ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ 終┃ 了┃ 終┃ 了┃ 終┃ 了┃ 終┃ 了┃ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ 終┃ 了┃ 終┃ 了┃ 終┃ 了┃ 終┃ 了┃ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ 終┃ 了┃ 終┃ 了┃ 終┃ 了┃ 終┃ 了┃ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ 終┃ 了┃ 終┃ 了┃ 終┃ 了┃ 終┃ 了┃ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ 終┃ 了┃ 終┃ 了┃ 終┃ 了┃ 終┃ 了┃ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛ ━┛
死死死死死鬱死死死死死死死死鬱鬱鬱死死死死死死死死死 死死死死死■■鬱死死死死死死鬱■鬱死死死死死死死死死 死死死死鬱■■死死死死死死死■■鬱死死死死死死死死死 死死死鬱■■鬱死死死死死死鬱■■鬱鬱鬱鬱■■鬱死死死 死死死■■■死死死鬱死死死鬱■■■■■■■■■鬱死死 死鬱鬱■■鬱死鬱■■鬱死鬱■■鬱鬱鬱鬱鬱■■■死死死 鬱■■■■鬱鬱■■鬱死死鬱■■■死死死鬱■■鬱死死死 鬱■■■■鬱鬱■鬱死死鬱■■鬱■鬱死鬱■■■死死死死 死鬱■■■■■■鬱死鬱■■鬱鬱■■鬱■■■鬱死死死死 死死鬱■■■■鬱鬱死鬱■鬱死死鬱■■■■鬱死死死死死 死死死鬱■■鬱鬱■鬱死鬱死死死死鬱■■■死死死死死死 死死死鬱■■死死■■鬱死死死死死鬱■■鬱鬱死死死死死 鬱鬱鬱■■■鬱■■■■鬱死死鬱鬱■■■■■鬱死死死死 ■■■■■■■■鬱■■鬱鬱■■■■鬱■■■■■■鬱鬱 ■■鬱鬱鬱■■死死鬱鬱■■■■鬱鬱死死鬱■■■■■鬱 鬱鬱鬱死死■■死鬱鬱鬱■■■鬱鬱■鬱鬱鬱鬱■■■■鬱 死■■■鬱■■鬱■■鬱■■鬱死鬱■■■■鬱鬱鬱鬱鬱死 死■■■鬱■■鬱■■鬱鬱鬱死死鬱■■■■■■鬱死死死 死■■■鬱■■死鬱■■死死死死死鬱鬱■■■■鬱死死死 鬱■■■死■■死鬱■■鬱死死鬱死死死鬱■■鬱死死死死 鬱■■■死■■死死■■鬱死鬱■■鬱鬱鬱死死死死死死死 鬱■■鬱死■■死死■■鬱死鬱■■■■■鬱鬱死死死死死 鬱■■鬱死■■死死鬱鬱死死鬱■■■■■■■■鬱鬱死死 鬱■■鬱死■■死死死死死死死鬱鬱■■■■■■■鬱死死 死死死死死■■死死死死死死死死死死鬱■■■■■鬱死死 死死死死死■■死死死死死死死死死死死死鬱鬱鬱鬱死死死
>521 ||/ /|| /∧||∧ ( / ⌒ヽ | | | ∪ / ノ | || ∪∪ ∧ ∧,〜 ( (⌒ ̄ `ヽ _ \ \ `ー'"´, -'⌒ヽ /∠_,ノ _/_ /( ノ ヽ、_/´ \ 、( 'ノ( く `ヽ、 命を粗末にしてはならん! /` \____>\___ノ / /__〉 `、__> とりあえず雑談はもうやめてね。しらべたらすぐわかることはここでしないでね。
>528 Tabledefの下に色々ぶら下がってるでそ。 Fieldオブジェクトとか。 その辺のプロパティなり調べれば分かるはず。
549 :
デフォルトの名無しさん :03/02/19 15:02
あるステップでShell関数によってプログラムを起動し、それよって生成されるファイルを次のステップで開いて参照する場合、ファイルが生成するまで待機するにはどうすればよいのでしょうか? 次のようなコードでは、ファイルを参照できません。 MyPath="c:\中略\myprogram.exe" 'myresult.txtを生成するプログラム RetVal = 0 RetVal = Shell(MyPath, 1) For j=0 to 100000 'このように待機させても効果がありません Next MyPath="c:\中略\myresult.txt" If RetVal <> 0 Then Open MyPath For Input As #1 Line Input #1, MyText Close #1 MsgBox "MyText=" & MyText Else MsgBox "MyTextが生成できませんでした" End If しかしながら、myrogram.exeの実行結果としてmyresult.txtは生成されていて、イミディエートウィンドウではRetValは0以外の値になります。
>>549 WaitForSingleObject APIを調べて味噌
553 :
デフォルトの名無しさん :03/02/19 15:32
>>549 処理待ちの方法はたくさんあるけど、よりによって空ループとは。
コンパイルしたら空ループは削除される。
自前のアプリなら、DDE通信使えよ。
せっかくあるんだから。
>>553 > コンパイルしたら空ループは削除される。
そうなの?最適化のしかたに依存するような気もするけど?
(確認してないけど)
>>554 どっちにしろ、CPUのスピードが千差万別かつ十分高速である以上、その方法はエレガントではないと。
>>554 DDEについては何もふれず、空ループについて確認も
しないで疑ってかかるって何だよ?
確かめるのに1分もかからないだろ?
>550 この時点で あなたの希望金額に達しなかったということで、 ノ ー マ ネ ー で フ ィ ニ ッ シ ュ で す
558 :
デフォルトの名無しさん :03/02/19 17:20
>>549 Windows Script HostのRunメソッドが簡単だよ
559 :
デフォルトの名無しさん :03/02/19 17:34
どうしても分からないので・・・ VBからネットワーク上の別PCのHDD全容量/空き容量などを 取得することはできるのでしょうか?
>>559 そもそも他のPCのHDD容量って見れるの?
知らないんだけど。見れるならVBでもできそうだけど。
>>559 とりあえず ネットワークドライブの割り当て をやってみ
なるほど。割り当てると見れるのか・・・
ありがとうございます。 一時的に割り当てして容量チェックすればできそうですね。 ところでIPアドレスやMacアドレスがわかってる状態で可能なことって何があるでしょうか? Pingとかで該当PCが応答するかチェックするってのはすぐに思いついたんですけど 他に何かありますか?
564 :
デフォルトの名無しさん :03/02/19 17:54
>>564 なるほど。それはいいですね!
OS情報とか取得して詳細一覧作るってのもいいかも。
やれるか分からないですけど・・・
>>563 最低限はPINGも含めて何も出来ない。
できるのは相手が応答した場合のみ。
SMB?
559はそんなに上司のPCが覗きたいのか(藁
応答するという前提で考えれば色んなことができそうですね。 電源何かも切れるみたいですね。 上司のPCを覗くのは・・・ ヘ(゚∀゚ヘ)アヒャ
570 :
デフォルトの名無しさん :03/02/19 19:46
>>569 わざわざ中身のぞかなくても、パケットモニターで丸裸。
ソース公開されてるし。
Cだけど。
.NETはXPでしか動作しないのですか?
>>572 フレームワーク自体はWindows98以降でも動くよ。
>>549 >For j=0 to 100000 'このように待機させても効果がありません
>Next
>MyPath="c:\中略\myresult.txt"
Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
Private Sub (略
(略
MyPath="c:\中略\myresult.txt"
Do While "" = Dir(MyPath)
Sleep 100
Loop
あまり綺麗な方法じゃないかもしれないが、一番簡単。
これよりも、起動させるプロセスを監視してそれが消滅するのをチェック
する方がいいかもしれないが…。
>>573 ではXP以外でも作業できるってことですか?
576 :
デフォルトの名無しさん :03/02/19 21:07
age
>>575 金が惜しいならMSのサイト言ってあんたの買いたいソフトは何をする物なのか確認してきなさい。
すまんが今の状態でプログラミングなんてちゃんちゃらおかしいよ。
578 :
デフォルトの名無しさん :03/02/19 21:46
>>574 そんなVB房みたいなやりかた提案するなよ
580 :
困ったチャン :03/02/19 22:15
すいませ〜ん。。必死なのです。excelVBAの質問なのですが、 (VBのスレで聞くな?) 困っているのです。あるフォルダに格納されている、 word excel ppt txt のファイルをVBAから開き、 MSGBOXでOK押されたときに、全部閉じたいのですが、うまくいきません。 期限がやばいのでとりあえずやっつけだ、と思い、無理やり shellコマンドで立ち上げ、落とすときは、sendkeyしてるのです。。。 (&FXN)ALTキー+Fキーでメニューのファイルを閉じるで、保存しないキーを SENDしてる予定。。。 しかし、なぜかワードだけうまくうけとってくれないのです。 他にいい方法があったら教えてください。 環境はOFFICE97。OSはWINDOWSです。(95〜2000、NT、XP) で、クライアントの処理なので、できれば他の実行ファイル は作りたくないのです。
どうでもいいけどAlt+F4で何でも閉じるよ。 保存していないとダイアログ出るが。
582 :
困ったチャン :03/02/19 22:38
>>581 うん。そうなんですけど、ファンクションキーたまに
落ちないときがある、と聞いたので。。
で、苦肉の策、そうなったのです。。。
できれば、SENDKEYでない方向でいきたいのです。。。
動きもいまいちなので。。。クスン
583 :
困ったチャン :03/02/19 22:54
みすてないでぇ〜〜〜〜〜
shellの戻り値でインスタンスハンドルが帰ってくるよねー それを元にウィンドウハンドルを取得して強制終了のメッセージを SendMessageすればよいのでは?
期末試験 設計 名前 困ったチャン 7点 ExcelVBAでWordファイルを操作するという点が間違いです。
586 :
困ったチャン :03/02/19 23:12
>>584 そうなのです。。。shellでハンドル持たせて、
それをappactive して、sendkeyしてるのです。
でも、なぜかワードだけうまくいかない。。。
カーソルのところにひたすら「XNXNXN・・・」
って書き続けてる状態。。。本当に困ったチャン。
確かに、excelVBAでファイル操作、きついんだけど、
元の設計はc++でほとんどクライアントで処理して、
サーバに投げてきてたんだけど、
それを仕様変更して、分散して、クライアントが
excelVBA(客先に配布)で、サーバはvbなのです。
最終的に仕上げるファイルフォーマットがexcelなので、
VBAでやってるのです。
その他のファイルは、タダ、いったんこれらでいいですか?
という意味合いで、単純に開いて、単純に確実に殺す、です。
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
24時間受付 090−8505−3086
URL
http://www.h5.dion.ne.jp/~grobal/ メール
[email protected] グローバル探偵事務局
>>584 WORDだから良いもののウインドウ作らないアプリケーションならブルー。
>>588 ウィンドウを作らないアプリでこちらから終了させなければいけないというのは
どういったアプリケーションですか?
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long If MsgBox("やっちゃう?", vbYesNo) = vbYes Then Call SendMessage(&HFFFF&, &H2&, 0, 0)
591 :
困ったチャン :03/02/20 00:12
>>599 !ありがとうございます(^^)♪
lib使ったプログラム開発をしたことがないもんで。。。
いろいろHPあさって探しまくってたんだけど、いいのがなかったのです。
はぁ。たすかったぁ♪♪♪♪♪さっそくためさせていただきます。明日。
はぁ〜〜〜〜〜〜〜〜〜〜!
592 :
禁断のターミネータ :03/02/20 00:23
593 :
デフォルトの名無しさん :03/02/20 00:23
HIKEY_CURRENT_USERではなく HIKEY_LOCAL_MACHINEの中の値を取得したいです RegOpenKeyEx(API)を使って取得する方法は分かったのですが GetSettingのように、APIを使用せずに取得する方法は無いでしょうか? API使うの面倒臭いのよね 知ってたら教えてちょんまげ。
591に合掌・・
595 :
デフォルトの名無しさん :03/02/20 00:43
>>593 もしあったら、ハッキングし放題だと思わんの?
なんで制限つけてるか考えんの?
>>591 ごめんなさい。あのコードは大きなミスをしてました。
そのミスというのは、・・・だ、誰だ・・ぐは・・・ばたっ・・・。
597 :
デフォルトの名無しさん :03/02/20 00:54
>>595 それは、マクロウィルス使って悪さが出来るということ??
よく分からないけど、そういう機能があれば、595さんなら
ハッキング出来るわけですね
とにかく教えてくれてありがとうございます
明日はAPIの使い方調べて苦労することにします
では。
598 :
デフォルトの名無しさん :03/02/20 03:37
C++で作ったメソッド(ライブラリ)に、VBから配列を引数として放り込めば、 先頭アドレスを送ったことになる?
APIの使い方を知らんってことをWindows自体わかってないんでないの?大丈夫か?
>>598 ヘルプやMSDNに書かれていると思うけど・・・
配列の先頭の要素を参照渡し。
ユーザ定義型の配列の場合はまた別のルールがあったはず。
601 :
デフォルトの名無しさん :03/02/20 09:14
>>593 Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
MsgBox WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProductId"), , "ProductId"
ばかばっか
>>601 あのー、おもいっきし出来たんですが・・・
ありがとうございます。
>>595 うんこちんちん
604 :
デフォルトの名無しさん :03/02/20 11:24
VB6 + ADO2.7 使っているのですが インストーラー作る時にMDAC_TYP.EXEは含めたほうが良いのでしょうか?
605 :
デフォルトの名無しさん :03/02/20 11:53
>>603 最初からProductIDって言ってたか?
>>605 言ってないですよん、ProductID以外の値も取れましたが、何か問題でも?
607 :
デフォルトの名無しさん :03/02/20 13:03
一人バカがHIKEY_LOCAL_MACHINEを読み取れないと思っているだけだ。ほっとけ。
610 :
デフォルトの名無しさん :03/02/20 14:01
test
HIKEY_LOCAL_MACHINEを読んだおかげで彼女ができますた!! HIKEY_LOCAL_MACHINEを読んだおかげで大金を手にしました!!
さて、もうそろそろ「HKEY_LOCAL_MACHINEだろ?」と揚げ足取りが出てくるわけだが。
(-_-) ヨンダ?
614 :
デフォルトの名無しさん :03/02/20 16:24
ヒッキー・ローカル・マシン
615 :
デフォルトの名無しさん :03/02/20 18:44
よろしくお願いします。 FileSystemObjectを使わずにファイルをコピーしようとしています。 FileCopyステートメントを使ったのですが、 コピー先に指定したファイルがない場合、「ファイルが見つかりません。」 とエラーが返されます。 FileSystemObjectのoverwrite=trueに該当する処理を実現するには どうしたらいいでしょうか?
>>615 ファイルがあるか、使用中でないか確認する。
なんでそんな質問すんだ。
>>615 On Error Goto でエラー捕まえりゃいいだろ。
619 :
デフォルトの名無しさん :03/02/20 19:11
>>616-618 あーもうホントすみません。
いろいろ考えたんですけど、On Error Gotoの後の処理
(存在しなかった場合の処理)が分からなかったんです。
指定した名前のファイルを指定した場所に作成する?関数なりステートメントが
MSDNで引いても見つからなくて・・・・
ヒントの単語だけでも教えていただけませんか?
てゆーか >指定した名前のファイル って何?何でもいいなら空っぽのテキストファイル作れば?
>>619 大体、何言ってるのかわからん。
>コピー先に指定したファイルがない場合、「ファイルが見つかりません。」
「コピー元」の間違いかと思えば、
>FileSystemObjectのoverwrite=trueに該当する処理を実現するには
上書きに失敗しないようにするには、とも読みとれる。
通常は上書きに失敗することはない。属性とか使用中とかなら別だが。
「ファイルが見つかりません」とは、コピーする元のファイルがないってことだ。
てことは、最初にファイルの有無を調べればよい。
if Dir(FileName)<>"" Then
FileCopy FileName, FileName2
end if
とでもすりゃあ済むのではないのか? 違うのなら、もう少し状況説明を詳しく。
622 :
デフォルトの名無しさん :03/02/20 20:10
一般的に省略ボタンってどこにあるのですか?
テキストボックスの幅より、テキストが長い、つまり表示が切れている場合に ヘルプテキストをポップアップさせたいのですが、 テキストボックスの幅より出ている、というのはどうやって判断するのでしょうか。 VBでは等幅フォントで文字数数えたりそんなのしか無理ですか。
>>623 TextWidthプロパティで長さ調べるのは?
重なり順序をなぜZOrderと言うのでしょうか?
Z軸の順序。
>>626 さん
おお!横、縦、がx,yだから、なるほどzですね。ありがとうございました。
中卒発見しますた。
>>623 大体の長さでいいなら、Textボックスの幅と、
Textボックスに入れた文字と同じ文字を入れたAutoリサイズしている
非表示のラベルの幅を比べる。
#手抜きだけど。
ディストリビューションウィザードで、フォルダをその中身ごと追加するにはどうするのでしょうか? ディストリビューションをつかっって見たところ、ファイルを追加するということはできてもフォルダが追加できませんでした。
>>630 1ファイルずつボチボチとマターリやるしかない。
プロジェクト名.PDM を直接編集すると若干楽かもしれない。
634 :
デフォルトの名無しさん :03/02/20 23:36
Shell "gta.exe", vbNormalFocus Shell "gta.exe", vbNormalFocus Shell "gta.exe", vbNormalFocus みたいな感じで一定の期間で終了するexeを多重起動したとして起動しているexeがすべて 終了してプロセスから無くなるまで待機させたいんだけど、どうしたらいいですか?
635 :
デフォルトの名無しさん :03/02/20 23:54
WshShellのRun使う
637 :
デフォルトの名無しさん :03/02/20 23:59
638 :
デフォルトの名無しさん :03/02/21 00:06
>>636 多重起動したexeをどのように処理するのか?
641 :
デフォルトの名無しさん :03/02/21 05:29
OCXのコントロールを動的に追加する方法はありますか? コマンドボタンとかを動的に追加する方法は見つかったんですが OCXの方が分かりません…
642 :
デフォルトの名無しさん :03/02/21 06:20
VB上でFSO使うのってもしかして嫌われてる? 重いのかな?
644 :
デフォルトの名無しさん :03/02/21 07:39
VBってどうして実行速度が遅いのですか? しかもJavaよりもさらに遅いことが多いんですけど。
645 :
デフォルトの名無しさん :03/02/21 08:48
646 :
デフォルトの名無しさん :03/02/21 08:53
>>645 いえ、実際Web上の実行速度の調査とかを読んでいても
良くてJavaの実行速度近くまで出るけど、
アルゴリズムによってはJavaの3倍ぐらいの速度がかかってるんだよね。
どうしてかなと思って。
647 :
デフォルトの名無しさん :03/02/21 08:54
↑ もちろんJavaもVBも同じアルゴリズムだよ。 書き方が悪いとかそう言う問題じゃないと思う。
>>647 実際のソースを見ないと、なんとも言えんとおもうんだが、どうだろう。
649 :
デフォルトの名無しさん :03/02/21 09:19
>>644 書き方が悪いに1000ヤマシャキ
クラス(COM)を使ったコーディングだとVBは遅くなりやすい。
Javaはよく知らんけどコンパイルの最適化ってある?
651 :
デフォルトの名無しさん :03/02/21 09:30
652 :
デフォルトの名無しさん :03/02/21 09:50
>>652 それ見る限りじゃ、むしろ最適化したVBのほうが速いような感じだね。
とりあえず、646が「Web上の実行速度の調査」とやらのURLを
出さない限り話にならないような。
そんな古いやつ…
参照設定で登録できなくて、regsvr32では、エントリポイントが見つかりませんでした といわれるDLLは、VBでは使えませんか? Borland Cで書かれてるそうで、関数仕様以外はよく分からないものなんですが…
657 :
デフォルトの名無しさん :03/02/21 17:00
pic.ScaleMode = 4 pic.Picture = LoadPicture() pic.ForeColor = vbBlack pic.CurrentX = 10: pic.CurrentY = 3: pic.Print "モナー" pic.CurrentX = 10: pic.CurrentY = 4: pic.Print "ギコ" pic.CurrentX = 10: pic.CurrentY = 5: pic.Print "しぃー" pic.CurrentX = 10: pic.CurrentY = 6: pic.Print "8頭身" などの場合に"モナー"だけ赤く表示させるにはどうしたら良いのでしょうか? 何方かご教授お願いします。
658 :
デフォルトの名無しさん :03/02/21 17:07
よろしくです。 ファイルが使用中であるか(別のプロセスが使用中で無いか)を調べる方法を 教えてください。関数でもあるのでしょうか。 MSDNおよびグーグルで"ファイル 使用中 Visual Basic"で検索しましたが 力が及びませんでした。
>>657 pic.ForeColor = vbRed
pic.CurrentX = 10: pic.CurrentY = 3: pic.Print "モナー"
pic.ForeColor = vbBlack
pic.CurrentX = 10: pic.CurrentY = 4: pic.Print "ギコ"
>>658 とりあえず(ロック付きで)開いてみるとか名前を変えてみるとか削除に挑戦するとかは?
>>656 ドーモ。解決しました。関数のシンボル名が間違ってただけでした…(´・ω・`)スマソ
WebBrowserコントロールの事で質問なんですが HTMLを読み込む時にキャッシュを使いたくないのですが、どうすれば良いでしょうか? Googleで検索してもあまり出てこないし・・・ よろしくお願いします・・・(´Д`;)
アプリケーションに、右クリックのショートカットメニューを付けるやり方を教えてください。
>663 レジストリ弄るしょぼい方法しか知らない…
>>663 メニューエディタで表示をOffにしたメニューを作成しておき、
MouseUpイベントで、右クリックを感知したら
PopupMenuメソッドで呼び出せばいい。
>>662 ピクチャボックスにpngファイルを読み込む方法を教えてくれたら教えてあげる。
>>662 WinsockかINetコントロールで、ローカルファイルに
URLの内容を取得した後、Webbrowserの
Navigateで先ほど取得したローカルファイルのURLを
設定してはどうでしょうか?
あげてみる
670 :
初心者1号 :03/02/21 22:56
あのう・・・・すいません、ちょっと教えてもらえると幸いなのですが。 VB6.0でRichTextBoxを利用しているのですが、IMEmodeプロパティがなくて困っています。 何か解決方法はないのでしょうか・・・・
アンインストールまで自作しようとしてるんですけど、 自exeを削除する技を教えて下さい。 batファイル作成→exeを削除→batが残る→マズー こんな具合です。。
Private Declare Function ImmSetOpenStatus Lib "imm32.dll" (ByVal himc As Long, ByVal b As Long) As Long Private Declare Function ImmGetContext Lib "imm32.dll" (ByVal hwnd As Long) As Long Private Sub Command1_Click() dim mContext as long mContext = ImmGetContext(RichTextBox1.hwnd) ImmSetOpenStatus mContext, 1 End Sub みたいな感じでIMEをONにできます。また Private Declare Function ImmGetOpenStatus Lib "imm32.dll" (ByVal himc As Long) As Long を使うとIMEの状態を取得できるようです
>667 おお、サンクスです! 早速試してみます
>>671 batファイルの最後に、
del [batファイルの名前].bat
を追加すれば解決できると思います
>>674 うーん、さっき自batファイル消そうと、やった時は消えませんでしたが、
今やったら消えました・・。なんでかなぁ。。
ありがとうございますた。
676 :
デフォルトの名無しさん :03/02/21 23:36
>>675 不思議ですねー。
batの頭に CD [App.Path] とか入れると確実になるかもしれません
678 :
初心者1号 :03/02/21 23:40
>672 マジサンクスです。 でも技が良く分からない・・・ 試してみますです。
>>666 別に何も教えてもらいたくないけど...
imgctl.dllでDIB取ってピクチャボックスに転送しる
>>677 さらに App.Path を ”で囲うとイイ
>>678 ImmSetOpenStatus、ImmGetOpenStatus、ImmGetContext
についてはMSDNを参照してください。
これは、Win32APIを使った技なので、VBのマニュアルの
APIを使う・・・みたいな章を読めば詳しく書かれています。
681 :
初心者1号 :03/02/22 00:45
>680 ひじょ〜にありがたいです。 うちの教官が貴方みたいな人なら神だ・・・
682 :
デフォルトの名無しさん :03/02/22 02:50
>643 に便乗させてください。 FileSystemObjectは環境に依存するというのは なんとなくわかってましたが、 具体的に必要な環境としてはどういう環境が必要なのでしょうか? 教えていただけませんか? よろしくお願いします。
>>682 初期バージョンのWindows95で動かないだけでしょ。
金出し渋るタイプの、企業や国の機関以外で使ってないだろうから気にすな。
WM_MOUSEACTIVATEメッセージをフックしたいのだが、 VBではできねーのかな? いやねえ、戻り値をMA_NOACTICATEに変えたいだけなんだが・・・・ (Delphiなら簡単だが)
688 :
デフォルトの名無しさん :03/02/22 13:41
VisualBasicで --- Dim a As Double Dim b As Double Dim c As Double a = &H8000 b = &HAED000 c = a + b --- こんなことしてやると計算結果 c は &HAE5000 になります。 a が signed 扱いにされているようですが、これを unsigned に する(計算結果を &HAF5000 にする)方法ないですか?
>>689 realという型はVBには無いようですが…
a = CLng("&H8000") で解決しますた
&H8000&の方がいいよ。
以前あった質問で、結局レスがなかったものの再質問です。 treeviewコントロールを用いてエクスプローラ風に見せたいのですが、ドラッグ・ドロップ をする時に詰まってしまいました。ドラッグ中のアイコンが32*32で表示されるのは 32*32のアイコンのなかに16*16のアイコンを描いて、それをドラッグする時に選択することで 回避できたのですが、アイテムの名前が表示されません。IEのエクスプローラバーでの お気に入りと同じになってしまいます。自分としては是非アイテム名を表示しながらドラッグ したいのですが…ご教示お願いします。
>>679 >imgctl.dllでDIB取る。
dllの呼び出し方やDIBという言葉も知らんよ。
サンプルコードきぼんぬ。
質問者がどんな言葉遣いでも答えてくれる神以外は来るな。
非常にガッカリだ。
フォームを 最小化ボタンと終了ボタンのみで ウィンドウサイズを変更できないような風にするにはどうしたらいいのですか?
BorderStyle = 固定 Minbutton = True
ありがとうございます めっちゃ初心者質問ですみませんでした
>>666 いや、喪前が来るな。
質問者として最低限必要なものが喪前には無い。
703 :
デフォルトの名無しさん :03/02/22 23:51
よろしくお願いします。 ウィンドウの最小化とか最大化のボタンの左に同じ様なボタンを1つ2つ 追加したいんですがどうしたらできますか?
704 :
デフォルトの名無しさん :03/02/23 00:10
「れ、冷二さん……」 「なんだ」 「家へ、家へ帰してください、お願い」 無駄だとわかっていても、夏子は哀願した。愛する子供は今ごろどうしているのだろう、夫は……。ボロボロにされた身体ではあっても、夏子はこのまま家庭を捨てることはできない。 「こ、子供のことが気になるんです……」 「帰してやってもいいが……」 はじめは、このまま夏子を自分の牝として囲ってしまうつもりだった。ヤクザに追われて殺されるなら、それまでとことん楽しんでおこうというヤケっぱちな気持ちだった。 だが今の冷二は、不安と恐怖はあるものの、ずっと落ちつきを取りもどしていた。三人よりも、真樹子と二人のほうが安全だと思う。 それに夏子が行方不明ということで、警察が動きだしでもしたら、かえってやっかいになる。 「いいだろう、帰してやるぜ。だが、奥さんはもう俺の女だってことを忘れるなよ」 夏子は小さくうなずいた。だが、夏子はうれしくはなかった。冷二からは逃げられるものの、もう夫に顔向けできない身体にされ、殺人にまで巻きこまれて、どうして心が晴れよう。 「そうと決まったら、帰る前に、朝のつとめだ」 冷二は布団のなかで夏子を抱きすくめたまま、朝立ちで硬くたくましくなった肉塊を双臀に押しつけた。 「尻の穴だぞ」 「……は、はい……」 うなずいた夏子はすすり泣いた。 数えきれないまでに犯してもなお、朝からおぞましい肛交を求める冷二の貪欲さに、眼もくらむ思いだった。 「前……ではいけませんか……お尻、ヒリヒリと痛いんです」 「だから尻の穴がいいんだ、フフフ」 「ああ……」 夏子の声に哀しみとあきらめがこもった。何度されても肛交はおぞましい。 それでなくとも夏子のアヌスは赤く腫れて、ヒリヒリとうずいていた。 このうえまた冷二の太いものを受け入れさせられたら……。夏子はおびえた。 だが、おずおずと冷二のほうへ双臀を突きだした。
>>693 での追加質問ですが、treeviewをエクスプローラ風に見せるソースはDLしてきたものを
使っているのですが、同じフォームに別のtreeviewを他のカスタマイズのソースを適用したいと
思っているのですが、出来ますでしょうか?現状ではエラーは出ないのですが2つ目のカスタマイズが
有効になりません。私見では、一つのコントロールに対して異なる2つのサブクラス化(言葉は正確
ではないかもしれません)は出来ないようにも思えるのですが…
あ…666が…
サブクラス化といえば、 自アプリに飛んでくる全てのメッセージを取得する事はできませんか? SetWindowLongの引数にウィンドウメッセージを拾いたいコントロールのハンドルを渡せば、 そのコントロールに飛んでくるウィンドウメッセージは取得できますけど、 フォームに大量のコントロールを張ってるとき、 どのコントロールとは限らず全てのコントロール(と、フォーム)に飛んでくるウィンドウメッセージを知りたいんです。
すいません。
>>705 に関しては自己解決しました。サブクラスを2つ作れば
良かったのですね。ただ…693については依然わかりません。よろしく
お願いします。
>>707 一つのウインドウプロシージャに全部の
コントロールの処理させてはどうですか?
hWndでどのコントロールか分かりそうだし
>>706 もう少し詳しく…どのメッセージにどんな対処をすればいいんですか?
712 :
デフォルトの名無しさん :03/02/23 18:09
インストールするときにシェアウエアのように IDキーを入力してからインストール開始するようにする インストーラの作り方を教えてください。 ディストリビューションウィザードではできないのでしょうか?
>>712 VisualStudioInstller
ディストリビューションウィザードのようには簡単ではないが、
使いこなせばそれなりに良いみたいよ。マイクロソフトのサイトに行ってゲットせよ。
>>713 ありがとうございます。
さっそく探してみます。
ファイルのMD5の算出をしたいのですが、、、 ソースとかありませんか?
GUIにペインを使いたいのですが、 どのコントロールを使って実現したらいいのでしょう?
718 :
デフォルトの名無しさん :03/02/23 21:07
コマンドボタンに自分で作ったアイコンを表示する方法を教えてください。 プロパティのPictureで指定するのではなく,アイコンを登録してある場所の ディレクトリを保存したテキストファイルから,必要な行を呼びだして コマンドボタンに表示する方法です。
(・∀・)チンポーッ!!
>素のOSそのままで むぅ? ∩∩ (゜x゜ )○
>>724 OSインスコした直後の、OS付属のAPIだけでやる方法は知らないって意味ー。
>>723 の場合は、ソフトを配布する場合はDLLも一緒に配布が必要、ってことね。
そりゃPNGの形式を理解して ヘッダーよんでふんにゃかふんにゃかするんでしょう。
>>726 ヘッダに関しては難しいアルゴリズムとかとは無縁だから楽チンだね。
PNGはZIPの解凍作業がいるみたいですよ この前拾ったサンプルにzlib.dllの機能使ってる箇所があったので
>>726-728 それも参考にするけど、
とにかくコピペしてそのままつかえるサンプルやPNGを読み込むためのActiveXコンポーネントをきぼんぬ。
リッチテキストボックスぐらい使いやすいのを。
732 :
デフォルトの名無しさん :03/02/24 09:57
666 グレープシティーより LEADTOOLSというのがでてる。 9万で買えるActiveXだ。君の望みのものがある
>>732 むむ9万とは。でもほしい。
だけどそれは我慢してVB.NETを買っっちゃうかも。
余力があったらLEADTOOLSも買ってみる。
>>668 のさんぷるぷろぐらむはVB英語版用のサンプルだからかどうかわからないけど
参照設定のところがうまくいかなかったので
>>722 のSusieプラグインを使う方法に挑戦中。
>>723 もそのあと試してみる。
722のlzhの解凍先フォルダにSusie32 plug-in libraryというスージープラグインを入れてから、 プロジェクトファイルを開いてからF5キーでプログラムを動かし、ファイルを開く、で画像を指定しても 画像が表示できなかったのでプラグインを使う方法はあきらめる。 つぎは723を試してみる。
hDCとか初耳だがもうちょっと723の取説.txtを試してみるか。 取説.txtにサンプルプログラムがありそれはファンクションプロシージャがつかってあり、 SUBプロシージャしか使えない初心者のオレには難しい話だが試行錯誤ちう。
取説.txtのサンプルプログラムを どうやって実際にVBのピクチャーボックスでpngを表示させるプログラムに改造したらいいのかわからず断念。 結局ピクチャーボックスがpngを読み込んでくれるVB.NETを買うときまでpngファイルの扱いはあきらめる。
739 :
+激しく初心者+ :03/02/24 12:40
ExcelVBAにBASP21 DLLを組み込んで、PCから携帯へのメール送信アプリを 作ったんですが、 (いや、迷惑メールとは無関係です。会員登録アドレスへの一斉送信に使います) しばしばエラーメールが返ってきます。 もちろん、相手の方は拒否設定はしておられません。 届くこともあれば届かないこともあるといったような状況です。 相手がPCなら何のトラブルもないのですが、携帯だととたんに確実性が落ちます。 よい解決策をご存知の方はいらっしゃいませんでしょうか?
>>738 Vectorのヤツは取説がバグっとる…。
http://www.akikuma.cx/lzh/transg32.lzh こっちの修正済み取説.txtを使え。
んで、取説末尾のプロシージャを適当な標準モジュールにコピペ。
更に、そのプロシージャの上の行に、
Public Declare Function DCReadPNG Lib "TransG32.DLL" (ByVal pngf As String, ByVal TargetDC As Long) As Integer
をコピペ。
んで、
Picture1.AutoRedraw = True
ReadPNGFile Picture1, "C:\hoge\hoe.png"
ってやるとあらびっくり。
AutoRedrawがFalseだと表示しないので注意だ。
AutoRedrawは上記のような実行時に設定する方法ではなく、
デザイン時にプロパティーで設定しておくのが普通。
つーわけでがんがれ。
お客様のおかけになった番号は、電波が届かな(ry
>739 いいかげん言い飽きたこのフレーズ。 そ の エ ラ ー メ ー ル の 内 容 を 書 け 携帯は迷惑メール対策の関係上、同一サーバからの同時多発送信を 弾くという対策を取っているケースが多いのも関係しているかもな。
743 :
+激しく初心者+ :03/02/24 13:15
>>741 自分の携帯でテストしてみても、届いたり届かなかったりなんですよね。
744 :
+激しく初心者+ :03/02/24 13:16
>>742 キャリアによって異なりますが、概ね User Unknown なんですよね。
むしろVBの問題と言うよりキャリアのもんだいという気がするんですよね
>>744 なんか、スレ違いな領域の問題じゃないの?
VBとして解決できることは無いと思うが。
通信関係の板で聞いた方が解決すると思う。
同報発信の量が多すぎるとか、送信者のホスト名が引けなかったとか、
そういうようなVBと関係ない領域の不具合だと思うよ。
おしえた側からすればいちいち報告してくれるのは教えがいがある。
>>749 それも分かるが、試してから結果も含めて書けばいいだけの話じゃん。
時間かかるなら、ひとまず「ありがとうございました、試してみます」と言うのも分かるが、
>>740 の内容なんてものの数分かせいぜい数十分あれば試せる話でしょ。
「実験開始」なんていちいち宣言するのはまったくの無駄。
その発言だけならともかく、
>>733-738 がひどすぎるので、ちょっとね。
まあ、こんなこと書くのもレスの無駄使いなのでこの辺にしておく。
666もこのレスに反応しなくていいから。
>>750 は報告不足で会社でトラブルをおこさなければいいが・・・
性格は悪いが才能はありそうな予感
ActiveReport2.0で、ユーザー定義サイズの用紙を指定したいのですが、 反映されません。 Private Sub ActiveReport_ReportStart() Me.PageSettings.PaperSize = vbPRPSUser Me.PageSettings.PaperWidth = 12 * 1440 Me.PageSettings.PaperHeight = 17 * 1440 End Sub プリンタのデバイス名をnullにすればプレビューではサイズが 反映されるのですが…これはプリンタが対応していないってことなんでしょうか。 一応、プリンタはユーザー定義サイズに対応していて、専用のホッパも あるのですが…。 どなたか原因をご存知の方、教えてください。よろしくお願いします。
NULLについての質問です。 BinaryのFile(c:\NULL.lif)の中のデータに、NULLを含めようとテストプログラムを作ったのですが、うまくいきません。 Open "c:\NULL.lif" for Binary as #1 for i = 0 to 9 step 1 put #1 , , NULL next i close #1 この LINK.lif をBinaryEditerで確認すると、NULLの箇所が、 『 01 00 』とされています。 NULLなので、『 00 00 』とずっと思っていたので、 今まで私が間違っていたのか、それともこのプログラムがいけないのか、 そんなところで詰まってしまいました。 皆さん教えてください。お願いします。
756 :
初心者1号 :03/02/24 19:40
またまたrichtextboxの質問なのですが・・・ ユーザーにRichTextBoxに文章を入力させ,保存させたのですが。 当然のようにテキストを取得するとRTF形式に・・・ うまいことテキストだけ保存はできないのでしょうか・・・
vbNullChar、vbNullString
758 :
デフォルトの名無しさん :03/02/24 19:53
>>756 SaveFileで rtfTextを指定すればいいのでは?
759 :
デフォルトの名無しさん :03/02/24 19:56
>>755 VBでNULLは不定値。
もともとNULLの概念は処理系に依存。
760 :
初心者1号 :03/02/24 19:58
>757 ヒントでしょうか・・調べてみます。 取っ掛かりすらないので非常に助かります。 >758 当初そうしようと思ってRichTextBoxにしたんですが・・・ 少し事情が変わりまして。 シーケンシャルファイルの1レコードとして保存しなければならなくなってしまって。
761 :
たすけてママン :03/02/24 19:58
vb6sp5でmovieplayerコントロールを使っていたのですが、 先日wm9プレイヤーをインストールしたあと、プログラムを修正していたら、 デバッグ実行時に、PG中のメディアプレイヤーコントローラーの外観がwm9のものになってしまいました。 デバッグ中は問題なかったんですが、コンパイルしたexeを実行すると 「msdxm.ocxからコントロール'MediaPlayer'をロードできませんでした。msdxm.ocxのバージョンが最新のものではありません。以下略」 といわれ、起動できなくなってしまいました。 コンポーネントを見てみると、msdxm.ocxなるものがあり、選択してみるとwm9のアイコンがツールボックスに表示されます。 嗚呼、まさかwm9プレイヤーを入れただけでこんなことになるとは。たすけてママン
762 :
たすけてママン :03/02/24 20:12
2連続ですまん。 msdxm.ocxのリンクを張ってみると、ツールボックスには真っ白なアイコンが・・・・。(なくなってる!? ためしにmsdxm.ocxにリンクを張って、オブジェクト名を以前のバージョンのコントロールの名前を同じにして実行してみたら、 サポートしていないメソッドが・・・・・。(これってソース書き直しじゃん!? wm9アンインストールしたら元に戻るとおもいますか?
コード出せって言われそうだけど VBだけでPNG画像を扱うモジュールを作ったことがある。 もちろんZIP圧縮/解凍もVBだけでやった。 ・・・が、笑える程遅くて使い物にならなかったよ・・・ PNGの全部の形式に対応してた訳ではなかったが、 PNGのRFCよりZIP関連のRFCと格闘してる方が長かったな。 DQNなんで英語は苦手なんよ。 JPEGをVBでやった「つわもの」(バカともいう)もどっかにいたな・・
>>763 VBは遅くないって結論出たわけだし、あんたもコード出せないわけだし、信用度低いな。
> JPEGをVBでやった「つわもの」(バカともいう)もどっかにいたな・・
お前はもっとバカだな(w
766 :
デフォルトの名無しさん :03/02/24 22:56
あるexeに対するショートカットを作るなんてことは可能でしょうか。 できそうなら手法を教えてください。
>>760 SelTextなどを使って、保存したい部分のテキストだけを
文字列変数に入れて、それをファイルに保存してはどうでしょうか。
一部分だけをうまく選択するのが難しいかも
>>762 Windowsのセットアップディスクからmsdxm.ocxの
古いバージョンを持ってきてアプリと同じフォルダに
入れたらいけるかも
>>763-764 deflate圧縮はビットシフトとか多用しそうな気がする。
だとしたら、VBは速度的にかなり辛いんじゃないかなぁ…。
漏れは作ったこと無いからわかんないけど。
deflateの前に1回差分取るみたいな感じの圧縮もあったよーな気がする。
一度挑戦してみたいけど、漏れのスキルじゃzlib弄るのがせいぜい…。勉強しよ。
>>760 単にNULL値として 0x00を出力したいなら、素直に CByte(0) でも出力するのが
いいんじゃないかな。 0x00 0x00 なら CInt(0)。
vbの“Null値”はCの“Null文字”とは別物なので注意だ。“vbNullChar"も
“vbNullString"もまたちょっと違うのだ。
RichTextBoxからプレーンテキストを得たいだけなら、
RichTextBox.Text とか、
RichTextBox.SelText とか。
…意味が違う?
>> JPEGをVBでやった「つわもの」(バカともいう)もどっかにいたな・・ >お前はもっとバカだな(w バカ系プログラマには最高の褒め言葉だ。ありがとうw PNGやったときは300MHzぐらいのときでVB4だったんよ。 今なら少しは使えるかもしれんけど、ビット演算が多いからね・・・ あとVBが遅いとはおいらも思ってないな。 2^1398269-1(メルセンヌ素数)を出力するプログラムは Pen3-400MHz/VB4で6時間かかったが、 Pen3-933GHz/VB6で25分だった。 ちなみに同じマシンでVC++では16分。Linux/gccでは17分。 VC++/gccはコンソールだし最適化とか考えてないロジックでだから、 バカみたいに遅いわけじゃないんでない? VB4まではバカみたいに遅かったと思うけど。
>Pen3-400MHz/VB4で6時間かかったが、 >Pen3-933GHz/VB6で25分だった。 CPUの速度にプログラムの速度が全然ついて行ってないが。特に下。
>>772 ??
単に、VB4でP-Codeの場合死ぬほど遅い、
VB6で最適化コンパイルかけるとCと比較して遜色ない(と言えないこともない)、
という結果が出てるだけのよーに見えるけど?
何が言いたいかサッパリわからん…。
そういや、みんなは最適化コンパイルかけるとき、PentiumのFDIVバグチェック
外してる? 今どきPentium60/66があるとも思えないので必ず外してるんだけど、
かなり速度やサイズに影響するよ…。
>>773 普段から単位書かないから肝心なときに単位を間違えて恥をかく。
776 :
デフォルトの名無しさん :03/02/25 01:34
VBからCなどで作ったDLLを呼び出して処理したいのですが、 DLL側から値がどんどん送られてくる場合VB側ではどのような処理でその値を 取り出したらいいか分かりません。 具体的にはDLLのタイマーイベントで何秒かごとに値がVBに送られてくるとして、 VBではその値を送られてきた順に処理するという感じです。 VB側でタイマーをコントロールするのではなく、送られてきた値をキューに入れて どうにかするという方法は無いでしょうか?よろしくお願いします。
コールバック使うとか
778 :
初心者1号 :03/02/25 02:04
なんかいけそうです。 みなさんありがとうございます。
あのう、今さっきVB6をはじめた、超素人ですけど、質問していいですか? ログ読んでも俺レベルよりはるかに上ばっかりで下は絶対いなさそうなのでサッパリわかりませんでした。 今安いぺらぺらの本買ってきて読みながら勉強してるんですけど、最初の方でつまづいてしまって・・ しかも答えとか載ってないから全然わかりません、いろいろと試行錯誤してるんですが・・ もし答えていただける方がいるなら質問させていただきます。
VBでチン子を大きくするにはどうしたらいいですか?
>>780 やったぁ、ありがとう。
テキストの文そのままうつします。
問題・ボーリングのスコアを2回分入力すると平均とランクを表示するプログラムをつくりなさい。
○処理条件○
・コマンドボタンを「開始」をクリックするとデータ入力用のダイアログボックスを表示し、1回目のスコアを表示する。
300を超えるデータを入力したら、メッセージ表示用のダイアログボックスを表示し、データエラーを警告し、プロシージャから抜け出す
ただし、999の場合はプログラムを終了する。
・1回目のスコアを正しく入力したら、2回目のスコアを1回目と同様の条件で入力する。
・2回目のスコアを正しく入力したら、平均とランクの判定を行って、その結果をラベルに表示する。
・ランクの判定基準は、スコアが2回とも250以上の場合は「超A級」、平均が200以上の場合は「A級」
100以上の場合は「B級」、100未満の場合は「C級」とする。
です。
それから、ラベルは4つでコマンドボタン1つです。
しょーもない問題かもしれませんが、本当に困ってるのでよろしくお願いします。
わかりにくかったら言ってください
781は絶対俺ではないです。
宿題じゃないんですよ〜。 休みの間になんか覚えたいと思ってはじめたんです。 だめですか?
全部聞いたら身につかないので やってみてつまづいたら聞くようにした方がよいと思います (いきなりつまづくのはなしで)
わかりました。 ではどーしてもわからないのを聞きます。 判定の出し方とかはわかったんですけど、2回値を入力するとこがうまくいかないんです。 ダイアログボックスは2回でるんですけど、2回入力してもなんにも表示されないんです。 そもそも1回目に入力した値がどこに記録されてるのかもわからないんです。
>>781 VBでプログラム作って、揉んでもらえるところに池。
変数を覚えよう
まず、どのような方法で入力用のダイアログボックスを 出していますか? それから、ダイアログボックスで入力した値は変数に保存する 必要があります。変数の概念が分からなければマニュアルを 読んでみてください
変数って言うのは最初に宣言するやつですよね?
SUKOA = InputBox("スコアを入力してください","スコア入力",0) です。
>>792 それと全く同じ文を2回呼び出しているんですか?
はい・・だめなんですか?
1回目の値は最初のInputBoxでSUKOAに入力されます。 2回目は別の場所にいれないとまずいです
なるほど〜、だからだめなのか〜。 じゃあSUKOA2とかにしたらいいんですか?
dim sukoa1,sukoa2,heikin sukoa1=inputbox("1回目") sukoa2=inputbox("2回目") label1=sukoa1 label2=sukoa2 heikin=Int((sukoa1+sukoa2) / 2) label3=heikin if sukoa1>=250 and sukoa2>=250 then label4="超A級" elseif heikin>=200 then label4="A級" elseif heikin>=100 then label4="B級" else label4="C級" end if
あれ?俺が今勉強してる範囲で出てきてないのとかある。 intってなんですか? それからdimですけど、そんな風にまとめてよかったんですね。 俺は1つ1つ分けて書いてました。 797さんわざわざありがとう。 でも自分なりのを書いてみます。
#include <stdio.h> void main(){ int ちんこ通常; int ちんこトランス; int ちんこ平均; printf("通常時の大きさをいれてください[mm]\n"); scanf("%d",&ちんこ通常); if(ちんこ通常=999){ printf("終了します\n"); return 0; } if(ちんこ通常>300){ printf("化け物かよ!\n"); return 0; } printf("大きくなっちゃった時の大きさをいれてください[mm]\n"); scanf("%d",&ちんこトランス); if(ちんこ通常=999){ printf("ちんこ測定終了\n"); return 0; }
if(ちんこトランス>300){ printf("それでもでかすぎ!\n"); return 0; } if(ちんこ通常>=250){ if(ちんこトランス>=250)printf("超ボブさっ布級"); return 0; } ちんこ平均=(ちんこ通常+ちんこトランス)/2 if(ちんこ平均>=200)printf("外国AV男優級\n"); elseprintf("ちちぇえ\n"); return 0; }
VBスレでわざわざCで作った781に敬礼!
なんとかできました。 でも797さんみたいに綺麗にまとまらなくてバカ長くなってしまいました。 こんな感じです↓ Option Explicit Private Sub Command1_Click() Dim SUKOA1 As Integer Dim SUKOA2 As Integer Dim HEIKIN As Integer Dim ERA As Integer SUKOA1 = InputBox("スコアを入力してください", "1回目", 0) Select Case SUKOA1 Case 999 End Case 0 To 300 Case Else ERA = MsgBox("エラー", vbOKOnly, "エラー") Exit Sub End Select
SUKOA2 = InputBox("スコアを入力してください", "2回目", 0) Select Case SUKOA2 Case 999 End Case 0 To 300 Case Else ERA = MsgBox("エラー", vbOKOnly, "エラー") Exit Sub End Select HEIKIN = Val((SUKOA1) + Val(SUKOA2)) / 2 Label3.Caption = HEIKIN If SUKOA1 >= 250 And SUKOA2 >= 250 Then Label4.Caption = "超A級" End If Select Case HEIKIN Case Is >= 200 Label4.Caption = "A級" Case Is >= 100 Label4.Caption = "B級" Case Else Label4.Caption = "C級" End Select End Sub ひきプロさんアドバイスありがとうございました。
後半直しました。 SUKOA2 = InputBox("スコアを入力してください", "2回目", 0) Select Case SUKOA2 Case 999 End Case 0 To 300 Case Else ERA = MsgBox("エラー", vbOKOnly, "エラー") Exit Sub End Select HEIKIN = Val((SUKOA1) + Val(SUKOA2)) / 2 Label3.Caption = HEIKIN If SUKOA1 >= 250 And SUKOA2 >= 250 Then Label4.Caption = "超A級" ElseIf HEIKIN >= 200 Then Label4.Caption = "A級" ElseIf HEIKIN >= 100 Then Label4.Caption = "B級" Else Label4.Caption = "C級" End If End Sub
>769 ありがとう。いろいろやってみました。ではその一部始終をご覧いただこう。 他のWM9インストール前のPCから取ってきてコピーしてみたがだめでした。 そもそも同じバージョンのファイルでした。あとサービスパックから古いバージョンのファイルを入れてみたがだめ。 どうだめかというと、一度リンクをはずしてあったので、ファイルをコピーしてもコンポーネントの一覧には表示されない。 おそらくレジストリをいじられてるとおもわれる。レジストリをどういじれば出てくるのかわからないっす。 方法としては事前にディストリビューションウィザードで作ってあったセットアップを実行すれば、このocxが登録される可能性大 とおもって、セットアップを実行。さっきコンパイルしてたexeを実行するが同じエラー。そこで再度IDEを開き、コンポーネントを見てみると、 予想通り、ocxが使える状態に。リンクを張ると、ツールボックスのアイコンもちゃんと表示される。その状態で再度コンパイル&実行。 うまくいきました。 結論 wm9player入れただけで、VBのコンポーネントから旧バージョンのocxへのリンクを消された。これはマイクロソフトが意図的にやったのか だとしたら何のためか。意図的じゃないなら修正してほしい。
>>806 >wm9player入れただけ
って・・・ (´д`;)
開発環境に、ましてやWMPコンポーネントを使ったアプリを作ってるところに
バックアップも取らずにホイホイ新しいものを入れちゃう君の姿勢が
一番問題だと思うんだが。
利用可能な用紙サイズの一覧を表示するには どうしたらいいでしょうか? Printer.PaperSizeだと現在の用紙サイズだけですよね。
>>808 API使え。
DeviceCapabilitiesとか。
VB6の標準EXEプログラムをコマンドプロンプトから起動して、同じカレントプロンプトに 対して文字を出力するにはどうすればいいんでしょうか? VBから新規にコマンドプロンプト立ち上げて出力は出来るんだけど・・・
>>810 標準出力へ出力するってこと?
API使っためんどくさいやり方しか漏れは知らない…。
>807 そういうものですか。以後気をつけます。
>>814 「どうしてもVBじゃなきゃ嫌」 と言うわけでもなければ
さっさと別の環境を使った方が早い。
817 :
デフォルトの名無しさん :03/02/25 13:45
DB接続に以下のようなソースで実行しています 'Oracle 接続用オブジェクト作成 Set gOraSession = CreateObject("OracleInProcServer.XOraSession") 'データベースOPEN Set gOraDB = gOraSession.DbOpenDatabase("GA", "GA/GA", 0) この、セッション接続が6〜10秒ほどかかります この速度を早くする方法はありますか? 環境はWin2000(sp1)+VB6.0(sp5)+oo4o+Ora8iです。 それともこれってこういうもの?
>>816 さん、で、出来ました…感謝です!
でも、editbinってVB6オンリーの開発環境だと入らないのでしょうか?
私は幸いにもVisualStudioだったので使えましたが…
>>819 やっぱりそうですか・・・
ありがとう・・・
>>818 link.exeを置き換えて、リンクオプションで subsystem を指定する方法が
過去ログにあったと思います。
この方法なら editbin がない環境でも対応できるでしょう
>>818 プロジェクト プロバティの実行形式ファイルの作成タブの
アプリケーション タイトルに
CONSOLE:hogehoge
としたらできなかったかなあ
(ちょっと自信ナシなので、バックアップをお忘れなく)
>>822 あ、間違った。822は無視してくだされ
>>821 ほほう、そんな技が。link.exeならVB6にもありますしね。
色々と参考になります。
.NETならConsole.WriteLineで一発なのになぁ…
>817 Oracle知らんのだが、名前解決に時間がかかってるって可能性は?
826 :
デフォルトの名無しさん :03/02/25 17:00
RichEditコントロールのOLEオブジェクト埋め込み機能を無効にしたいのです。 で、OLEDropModeを1にして、OLEDragDropイベントが発生した時に RichTextBox.SelText = Data.GetData(vbCFText) ってやったんですが、これだとOLEオブジェクトは弾けるものの、 テキストをドロップするときの動作がOLEDropModeが2のときと変わっちゃうんですね。 (ドラッグ中に挿入位置が変えられなくなる) 仕方がないんでこの方法は諦めてGoogleで検索しまくってみたら、 SendMessageとEM_GETOLEINTERFACEでこちょこちょやると行けるらしいと発見。 しかし、それ以上探しても何も出てきませんですた。。 ということで、おまいら助けてください。よろしく。 #錯乱中なので文がおかしいかも知らんが許して。。
>>817 それはローカルに置いてるのかい?間にルーターとか挟まってない?
828 :
デフォルトの名無しさん :03/02/25 17:17
SQL文でビット演算の結果を拾いたいんだけど 別の意味の論理演算子に取られてしまうよう 全部拾いVBで選別する以外でよい方法ある?
>>825 すいません、名前解決ってよくわからないです
ちっともOracleのチューニングとかしてないので
これを設定すると早くセクションがはれるのですか?
>>827 ルータやら専用線やらはさまっていまつ
でも、SQLPLUSは早く繋がるので(といっても3〜5秒はかかる)
回線は大丈夫かなーとおもいまつ
つーか、ググってみてもセクションの部分の速度に関しては
言及してるところが見つからなかったので
そんなものなのかなとチト諦め気味です。
(他人のサンプルとか見ても接続中ってメッセージ出して
時間をかせいでいるかんじだし)
VBってどこに売っているんですか? 近くの電巧堂に売っていますか?
>>830 VB6単体はすでに販売終了だったよーな気がする…。
まぁ、流通在庫が山とあるだろうけど。
ビジネスソフトのパッケージとかを沢山置いてある店ならあると思うよ。
書店で売ってることもあるな。文教堂に売ってたの見たことある…。
>>831 厨房扱いされると思いましたが、
すばやい回答ありがとうございます。
うちは超田舎なので、あちこち探しても無いんですよ。。
>>757 ありがとう!早速試してみます^^
>>759 処理系に依存、システムによってNULLの値が変わるということでしょうか?
検証してみます。ありがとうございました^^
>>829 いっぺんローカルで試してみろ。問題の切り分けはそれからだ。
SQL*Plusで5秒もかかるなら仕方ないんじゃない tnspingとかは?ためした?
838 :
デフォルトの名無しさん :03/02/25 19:27
VBインストール時じゃないと MSDNライブラリ関連づけつつインストール出来ないんじゃなかったっけ。
Dim a as ? a=10/3 のような場合にaは何型で宣言すればいいのでしょうか?
>>839 Doubleなどを使う場合浮動小数点についても勉強しておきましょう。
843 :
デフォルトの名無しさん :03/02/25 20:08
VB.NETでDelphiのTWebBrowserに相当するコントロールって何ですかね?
(*´д`*)アハァ…
スレ分けるほどドトネトーは違うのか・・・
>>799 > intってなんですか?
これは一番やってはいけない聞き方だ。
まずはヘルプを見る癖をつけろ。
その上でヘルプのどこがわからないかを聞く。
VB勉強しようと思ってます。 とりあえずHP作ろうと思ってるんですがVBでホームページって作れるんでしょうか? やり方とか書いた本とか知りませんか?
851 :
デフォルトの名無しさん :03/02/25 23:30
はじめまして。 最近VBを始めたのですがちょっと分からない事が出てきました。 例えばデスクトップ画面などでファイルを複数選択して、削除 する場合複数同時に削除できますよね。 これをコードで書く場合にはどういう風に書けばいいのでしょうか。 点線で囲んだ範囲のコントロールを複数同時に削除したいのですが ちょっと分かりません^^; どうかお助けお願いします。
>>848 すいませんでした。知らないことを調べもせずにすぐ聞くのは失礼でしたね。
以後気をつけます。
854 :
デフォルトの名無しさん :03/02/25 23:49
855 :
デフォルトの名無しさん :03/02/26 00:07
VB4スタンダードからVB6スタンダードにアップデートできますか?普通に買いなおさなきゃダメですかね、4で事足りるですか?
>>851 じゃないけど、要約すると、
フォルダ内の選択中の複数ファイルを順に取得するにはどうしたら良いのか、
ってことじゃない?
俺取得方法がわからんけど、ループはFor Eachかなぁ。
VB.NETって普及してるの? まったく聞かないんだけど。
860 :
デフォルトの名無しさん :03/02/26 10:37
>>858 違うと思う。
ふつうはSHIFTやCTRLキーで複数選択するけど、
マウスのラバーバンドで範囲指定して、その領域内に含まれる
ファイル(アイコン状態)をすべて選択したことにする方法。
これってListViewコントロールで出来たっけ?
あんまり使ったことないんだよな。
861 :
デフォルトの名無しさん :03/02/26 10:40
>>859 VB.NETスレ見たら?
ネット関係とか、ネットデータベースが楽になったみたい。
でも、それ以外はよくなってないみたいだし、遅そうだし。
>855 VB4に慣れてるならVB6を探して買う事をおすすめする。 私はVB4、5、6とつかってきて、.NETのあまりの変貌さに驚いた。 はっきり言ってアレはVBじゃない。 それと、スタンダードはアップデートは無かったと思うぞ。 プロ版以上しかなかったと思われ・・・。
>>861 VB.NETはアプリの起動は遅いが処理速度は上がったと思うよ
864 :
デフォルトの名無しさん :03/02/26 11:01
今からやるならドトネトーだね。 それなりに苦労はあるが、取っつきやすいが色々と制限のきついVB6よりは ドトネトーの方が少々知らないといけないことが多いが遙かに柔軟性があって いろんなことが簡単に出来てしまうからお奨めだね。 特にVB6の中途半端なオブジェクト指向もどきは糞だね。
でもWindows98じゃ動かないからダメ
>>865 「VB4の32ビット版を買うやつはアフォ
Windows 3.1じゃ動かないからダメ 」
って感じですか?
867 :
デフォルトの名無しさん :03/02/26 11:26
IN = 128 aaa = Right$("00" & Hex(IN), 2) このaaaをまた10進数の値として取り出すことは可能ですか?
ありがとうございましたー!
VB6SP5でADOを使いCSVを扱いたいのですが、CSVへの書き込み時にエラーが出てしまいました。 ODBCでmicrosoft Text Driverを使っています。 読み込みはできました。今度はその読み込めたCSVのデータを書き換えるために以下のようにしました。 adodc1.recordset.fields(1) = 1 adodc1.updateの行でmicrosoft text driverが以下のエラーを出しました。 このISAMではリンクテーブル内のデータを更新することができません。 このドライバーは読み込み専用なのでしょうか?
>871 訂正です。 adodc1.udpate × -> adodc1.recordset.update ○
>>863 そう?
どっかにVB6とVB.NETのベンチマークない?
VS.NETが800MHz以上推奨だったので、見送ってたんだけど、
VB.NETのパッケージ見たら、それほどではなかったのね。
買ってみようかな。
VB6で作ったソフトに自作アイコンをつかってみたいんですけど、 なにかいいアイコンエディターはありますでしょうか?
>>875 さん
ありがとうございます。
サイズは32ですか・・・。
ガンバッてアイコン作ってみます。
877 :
デフォルトの名無しさん :03/02/26 13:35
>>871 >このドライバーは読み込み専用なのでしょうか?
残念ながらそうです。ひょっとしてINSERT文だけ使えたかもしれませんが、どっ
ちにしろほとんど実用的ではないです。Recordset.GetRowsをうまく使ってファ
イルを作り直すか、
Recordset.Save "hogehoge.xml" , adPersistXML
でXML形式で保存するとか。
>877 ADOでCSVを扱う情報が少なくて大変でした。 やっぱり書き込みは無理でしたか。 仮にINSERTだけが使えてもDELETEが使えないときついですね。 更新があるたびに新規にテーブルを作るという荒業も考えられますが・・・。 実用的じゃないですね^^; >Recordset.GetRowsをうまく使ってファイルを作り直す いま作ってるアプリがたいしたものじゃないので、こういう感じでつくってもいいのですが、 それ以外のアプリでも使えるようにするため、 一般にADOをつかってCSVをデータベースとして直接扱える方法があるかいろいろ調べてました。 XMLはぜんぜん視野に入れてませんでした。 XMLも視野に入れていろいろ検討してみます。ありがとうございました。
879 :
デフォルトの名無しさん :03/02/26 14:38
>更新があるたびに新規にテーブルを作るという荒業も考えられますが・・・。 ヤメテー。・゚・(ノД`)・゚・。
>879 いやまだ見てません。 検索してみます。 教えていただいてありがとうございました。
>>834 やってみたよ・・・
やっぱりセッション接続に6〜10秒ほどかかる・・・
sqlplusでもSqlplus.exe GA/GA@GAって起動すると
やっぱり6秒くらいはかかるぅ・・・
(2回目の接続はどちらも2、3秒でいけるのに)
つか、もう原因はOracleっぽい感じなので
スレ違いだな
つか、VB+Oracleな事してる人って
この辺はあんまり気にならないのかなぁ
>879 CSVで検索してみました。 CSV形式へのコンバートといった使い方が目的のソースと、 レコードセットをCSVで書き出すやつ(書き出すレコードが指定できないので実質はコンバート目的)しかありませんでした。 あと何か会員にならないと手に入らないソースがあるみたいですが・・・・。 面白そうなのがCSVをADOのような感覚で使えるCSVDBSなるクラスを発見しましたが、SQL使えない。 ADOコントロールと違ってフレックスグリッドコントロールと連携できないので今作ってるアプリに組み込むには多少面倒ですが、 やっぱりADOから直接CSV扱うのはいろいろ制限あって実質使えないかな・・。
過去ログ見たり、MSDN見たりしたけどダメだったので質問。 Dim frmD As frmDocument Dim font Set frmD = New frmDocument font = frmD.rtfText.font lblFontName = font でオプションダイアログだしたらなんか新しい子フォームが出た。 どうしてでしょうか? 教えて君で非常にスマソ
>>885 よくわからんが
Dim font
font = frmDocument.rtfText.font
lblFontName = font
でいいとおもうが
887 :
デフォルトの名無しさん :03/02/26 16:19
886でいいと思うが、、 Formってのは、Classと似たようなもんです(というと突っ込まれそうだが Set frmD = New frmDocument を繰り返すたびに、フォームのインスタンスが出来ます。ただし、 Set frmD = Nothing としてもそのフォームが消える(Unloadされる)わけではない。
>>886-887 返信どうもです。
が、
>>886 のコードでやると
実行時エラー '91' :
オブジェクト変数または With ブロック変数が設定されていません。
と出るんですよねー。
改めて自分がヘタレだって知りました。
889 :
デフォルトの名無しさん :03/02/26 16:35
>885 何がしたいんか? ラベルにフォントを設定したいんか? フォント名を表示させたいんか?
>>889 アクティブな子フォームのRichTextのフォントを取得して、
ラベルにフォント名を表示させたいのです。
>>885 885のコードで、スタートアップモジュールを
frmDocument(.frm)からmain(.bas)へ変更する。
もちろんmain.basは新規に作成し、frmDocument.frm中にはコードを
書かない。書きたければInitialize,terminateでコンストラクタ・デストラクタ
を記述する。
結構こういう組み方は海外のサイトで見かける。
893 :
デフォルトの名無しさん :03/02/26 16:43
>>890 フォントはStdFontオブジェクト。
そのNameプロパティがフォント名
よって…
Dim frmD As frmDocument
Dim objFont As StdFont
Set frmD = New frmDocument
Set objFont = frmD.rtfText.font
lblFontName.Caption = objFont.Name
では駄目かな?
実際試して無いんで解らないが。
規定のプロパティを付けるところと、
暗黙Variantは止めなさい。
>>885 補足:
すべて標準モジュール内に処理コードを書き、フォームは設計のみで
クラス(のように)扱う。VBで擬似マルチを行う場合によくやる。
895 :
デフォルトの名無しさん :03/02/26 16:46
>894 ここではモジュールの層は関係ないだろ。
VBはVBらしく組みたいな〜
897 :
デフォルトの名無しさん :03/02/26 16:49
>891 設計の話はまた今度。 もしくは別スレ立ててやってくれや。 言いたいことや、やりたいことは推奨するし、 層の切り分けは大事だが、 こ こ は 初 心 者 ス レ
前から思ってたんだが、スレタイの「初心者」って必要なの? だって「上級者」スレってないじゃんw 単なる「VB質問スレ」でいいような気がするんだが・・・
899 :
デフォルトの名無しさん :03/02/26 16:53
900 :
そうだ選挙にいこう :03/02/26 16:58
>>987 仕切っているところを見ると2ch初心者ですか?
>>885 Dim ft As New FontDialog()
ft.Font = TextBox1.Font
ft.ShowDialog()
TextBox1.Font = ft.Font
質問 フォント名の表示と多層アーキテクチャはどのような関係があるのですか? 初心者の僕には関係が見出せません。 よろしくお願いします。
902 :
デフォルトの名無しさん :03/02/26 17:01
987踏んだ香具師は2ch初心者ケテーイ
>>901 1を聞くと10答える人なんじゃない。超ウザイよね。
904 :
デフォルトの名無しさん :03/02/26 17:07
905 :
デフォルトの名無しさん :03/02/26 17:08
>>885 アクティブな子フォームってMDI使ってるの?
>>893 このコード使ってもだめでした。
うーん、オープンソースアプリにしようかな?
>>906 なんか斜め読みしかしてないんだが、すでに開いてるフォームを
新たにインスタンス作成してるのが問題なのでは??
909 :
デフォルトの名無しさん :03/02/26 17:30
修正前と同じですた。 オプションダイアログ出すたびにフォームが出ます。
>>885 すまん、アクティブフォームのコントロールを拾うのね(^−^;
これでは新規にフォームのインスタンス作ってるから、
子フォームが増える罠。
だから、フォームのインスタンスを作ってるところ
Set frmD = New frmDocument
これを、アクティブフォームを拾うように変えればいいよ。
>>885 > Set frmD = New frmDocument
この行は何をしているつもりだい?
913 :
デフォルトの名無しさん :03/02/26 17:37
これでだめなのかなあ Dim objFont As StdFont Set objFont = frmDocument.rtfText.font lblFontName.Caption = objFont.Name
ActiveForm つかえ
アホくさ
>911 やってみますたが、「複数の MDIフォームは使用できません」 と怒られてしまいました。 レス遅れるかも知れません。
>>916 Set frmD = [MDIフォーム名].ActiveForm
でアクティブな子ウィンドウを取得できるよ。
ど素人がオープンソースって、丸投げの言い換え?
毎回教えて君ですいません。
>>913 それでもダメでした。
ご教授ありがとうございます。
>>917 やっぱり、ダメでした。
ご指摘ありがとうございます。
>>918 いえ。おかしいところを口で説明するのが難しいため、
ソースを公開すると言うことです。
921 :
デフォルトの名無しさん :03/02/26 18:38
直接プログラムとは関係ない質問でスマソのですが… 今Win2000にVB6.0(訳あってSPなし)を 導入して画面を作っているのですが、 今日急にVBのヘルプが使えなくなってしまいました。 (メニューからヘルプ選んだりF1押すと 「"0x00730076"の命令が"0x80004005"のメモリを参照しました。 メモリが"written"になることはできませんでした。」 というエラーが出て強制終了する) どなたか解決方法をご存知ないでしょうか? ちなみにVB6やMSDNを入れなおしても解決しませんでした。 OfficeやIEなどほかのアプリのヘルプは 正常に見れるのですが…。
924 :
デフォルトの名無しさん :03/02/26 18:51
>>885 886。それで、ちゃんとその
rtfText
rtfText.font
がoublicになってるかどうか。
oublicはPublicのまちがい rtfTextってコントロール?
>>885 まず、MDIフォームはModule1のSub Mainでインスタンスを生成している、
fMainFormがインスタンス名。
よって、frmOptionsのロードイベントでのMDIフォームには
frmMainじゃなく、fMainFormを使う
その上にあるDim frmD〜がコメントアウトされてるから、有効にしとくように。
さらに、ActiveControlプロパティなっているが、呼び出すのはActiveFormプロパティな。
おそらく、これでフォント名は表示するはず。
で、閉じるときなのだが、cmdOKのクリックボタンを例に出すと、
frmDocumentを直接触ろうとしているが、これが間違い。
実際に触るフォームはfMainForm.ActiveFormである。
frmDocumentを触ろうとすると、新規のフォームのインスタンスを生成してしまうよ。
(クラス的に言えばフォームはGlobalMultiUse属性なので)
だから、frmDocumentの部分をfMainForm.ActiveFormに変えたら、新たにフォームを開かずに動くだろう。
書き方としてはもっと整理しなければならないが、現状動くというレベルまでで。
ちょっと厨房が触るにはまだ早いような気がするよ。 もう少し、オブジェクトとインスタンスは理解しないと、しんどいよ。
Err.Numberはプロジェクト全体で使えるパブリックな価なんですかね? また、Error.Numberというのもありますか? たしか、ErrオブジェクトとErrorオブジェクト両方あったような気もするんですけど やっぱりこれは同じもので、ただ短い文を書きたいときはErrをつかえばいいんですよね?
複数行のテキストボックスtxtaaaの中の文字一文字ずつ検索したいんですけど、始まりはdo until EOF(txtaaa.text) 見たいな感じでいいんですかね?
>>930-931 ヘルプ見たか?
自分で試したか?
自分で調べることをしない奴にはプログラムは無理だろう
神と人間の違いはなんだろうか? そう、献身さだ。
猿と人間の違いはなんだろうか? そう、知識に対する貪欲さだ。
つまり、神が猿に教えを与えるスレ、っと…。
いや、猿と人間の違いは 自慰行為に対する貧欲さだ。
おーい山田君。 猿のAA張っといて〜
ErrオブジェクトとErrorオブジェクトの違いをキボンヌ
脊髄反射しないでヘルプ読めよ
しばらく放置ですいません。 やっぱり、漏れは厨でした。 ご指摘してくださったみなさん、ありがとうございました。
神は寝る暇をおしんでカキコんでくれる。 オレが寝てる間に答えがあることを期待する。
>>941 VBにErrorオブジェクトは無い。
ErrorステートメントとError関数ならある。
Errオブジェクトもある。
なにがしかのコントロール(例としてData Report デザイナ)が
Errorという名前のオブジェクトを持つことがあるが、VBのエラー
とは関係無い。
満足したか? 漏れはこれから寝る。
GetFormat
946 :
デフォルトの名無しさん :03/02/27 07:44
VBで[標準のブラウザ]を変更するにはどうしたら良いでしょうか。 HTML上でハイパーリンクをクリックした時に開くブラウザをボタンで変更したいのです。 おながいします。
Picture1.BackColor = &HFFFFFF でも Picture1.BackColor = "&HFFFFFF" でもどちらでもピクチャボックスの背景色を変えられましたが、 正しくはどちらなんでしょうかね?
彡川三三三ミ 川川 ::::::⌒ ⌒ヽ ハァハァ 川川::::::::ー◎-◎-) ← 川(6|:::::::: ( 。。)) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ._川川;;;::∴ ノ 3 ノ < 漏れ? /;;;:::::::::::::::\_;;;;;;;;;;;;;;;;ノ \______________ /:::: /:::::::::::: |::::| (:::::::: (ξ:: ・ ノ::・/:::| \::::: \::::::: (::: | /:::\::::: \::: ヽ| /:::: \::::: \::: ヽ ) |::: \::  ̄ ̄⊇)__ 〜 |::::::: \;;;;;;;;;;;(__(;;;・) 〜 モワー \:::::::::: ξ(;;; );; ) 〜 \:::::::::::: ) ) )::::: // /::::::::: // /::::: (_(_ (;;;;;;;;;;;__っ)))つ))
,,,,-‐'" ̄ ̄ ̄ ̄"―-、. / \ / \ / ヽ / 神 ヽ | ヽ | ,,,,;;::'''''ヽ | ;;:::::::'''" .: ,,,,,, ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ... " ,,,,,,,,, .:: ;''“”` | < ハッハッハ!見ろ!人がゴミのようだ! .―. ;::''“”“~` ::::. .. |. \_____________ ..| | ̄.. ::::::: | .\{_ ( ,-、 ,:‐、 ) | \\/.. \\\\ | \_ヽ.| ヽ.__,-'ニ\\\\| ;": ..;.;".; `、ヽ ヾニ二.\\\\ ;": ..;.;".; ;".;"".;":ヽ\ ..\\\\;": ..;.;".; ;".;":;"." : `ー-::、_ ,,..'...\\\\ ;".;": .;".;: .;" `ー――''''' .\\\\ ;": ..;.;".; : ゴ オ ォ ォ …… ! !".;" \\\\ ;": ..;.;".;": ;" .;".;": _.;.;_".;": \\\\ ド カ ァ ン ! .;".;": ..;.;".; ζ /_.;_/| .;".;", _ \\\\ .;".;.;".;": .;".;": ..;.;".;": ;:'.;| ΓΓ | |;":从へ_/| . \\\\"_.;__..: 从へ从へへ从 ; ζ | Γ从 | |;:.. |从Γ | | 从へ从∠___/| ( ⌒( ⌒ ) ζ | 从Γ | |.:;. |从Γζ.;".. .;. \ |ΓΓΓ| |p
なんだよ? ( ( ,,.r'' ゛~~` ''ッ,, 何見てんだよ? ) ) 、 ゛ ,,,,,,,,,,,,,,,,,,,,, ヾ. 荒らすなよな! ,.、 / / ミ ミ゛,へ.__, ,_ノヽ i. .| |l l ,´ ミ ミ, ( ・) {・フ 〉 ミ. _-、i::| |ニニii ' 、,,,,ツi: ミ,`~´ ヽ~〈 .ミ /,‐ヽヽ`、|| 、シ`` i: ,ゞ 'n.inヽ. .ミ ( .〉〉/ シ // ミ` l.l ヽ"、 / ノ ミ/ シ 彡 ,=こ二=.{ ミ,, ,r'´ ,,、'゛ ミi. / / ' ! w、`~^' vwv '、 ミ 〃 .ミ .ミ / i: / `^^ \ ." 〃 ミ .ミ.:/ / / i: v ! ,, \ 、 〃 ミ :i; .i: w !! ミ!: ミ \\( ⌒ヽ :i; / i: !! .ミ キ , ⌒`、_ ) ) :il .i: ! w! ミ .:i. (_ ( _,ノ ) , :il ! i: ! ,〃゛ キ ゞ、 __, ノ , .:il ! /~~````` " '''' = ‐- 、ミ _,,,,_ミ, il ` ー ´ :il ´ ―  ̄ - ,,. -‐‐-、、 ヽ. ヾ、 ゞ、 ` 〃 ゝ、wx.mn.!!++ナ'~ ヾ~ヽ、 ヽ、 ,, ~^^}´ 彡 〃 〃 }} /〉.〉〉〉i''" 〃 彡、 {{ 〃,__!////l | 〃 X,, 》. ≪.__`‐'.' '´,Uwwvw'、...,,,___ ^^^^ !wニこ)こ)二)`) (_,,,..- 、...二⊃_).)
>946 レジストリ
952 :
デフォルトの名無しさん :03/02/27 10:02
ネットワークドライブに接続して、そこのフォルダにDIRしたら、 そのままつかんじゃって切断できません。なにかうまい方法はありますか?
>>947 ウソついた。上。
暗黙の型変換について調べることをオススメする。
>>954 VBの中で何かが起こってるんですね。ありがとうございます。
956 :
デフォルトの名無しさん :03/02/27 12:01
フォルダ階層を順に追っていって、あるフォルダの中にある すべてのフォルダ・ファイルにアクセスするにはどうしたらいいでしょうか。 色々試行錯誤してはみたのですが、どうもうまくいきません。
>>956 再起検索しる。
sub hoge(pathHoge)
a=Dir(pathHoge)
Do While a <> ""
aの値を配列にでも格納しる
a = Dir()
Loop
For 配列の中身
Call hoge(配列(i))
Next
End Sub
みたいな感じ。
間違っても、Dirで列挙している最中に再帰呼び出ししてはいけない。
Dir関数が腐るぞ(笑
>>884 マジデスカΣ(゜д゜|||)
Oracleスレはだれも反応しないし
ネット漁っても引っかからないし・・・
(´・ω・`)モ ウ ダ メ ポ
961 :
デフォルトの名無しさん :03/02/27 16:20
VBからCで作ったDLLのDllMainを呼び出すにはどうしたらいいのですか?
>>961 Declare か LoadLibrary
>>962 DllMain(HINSTANCE hDLL, DWORD dwReason, LPVOID lpReserved)
呼び出す時にこの引数の中に何も入れたくないんですけど無理ですか?
964 :
デフォルトの名無しさん :03/02/27 16:43
カンマ区切りの行ファイルがあって、そこからカンマを抜きにしたデータを 1つずつ取り出すにはどうしたらよいでしょうか?
>>963 どっかでみたような質問だな
引数に何も入れたくないってことは全部値0でってことか?
DllMainがエントリポイントである限り無理だと思われ。
何でそんなことがしたいわけ?
>>964 Dim arrayHoge() As String
arrayHoge = Split("hoge,hoe,hanyan", ",")
For i = 0 to Ubound(arrayHoge)
Debug.print arrayHoge(i)
Next
アドレスwww.uploader/forlder001/にファイルをアップしてみた。 というカキコミから www.uploader/forlder001/ だけを抜き出すにはどのような正規表現を使えばいいの? 当方InStr関数とかは使えるけど正規表現はサパーリ。
「www.uploader/forlder001/にファイルをアップしてみた。」 というアドレスだったらどうする?
>>969 全角文字列・/を含んだ半角文字列・全角文字列
という1行から/を含んだ半角文字列を抜き出すアルゴリズムがほしいのよ。
だから
「www.uploader/forlder001/にファイルをアップしてみた。」
というアドレスは無視。
ちなみに
upSHITEMITAYO----------KOKONI-----www.uploader/forlder001/
というようなのもupSHITE〜001/まで抜き出してしまってもかまわない。
とにかく/を含んだ半角文字列はアドレスである確立が高いのでそこを抜き出したい。
まぁ、普通はURLとして不正な文字があるかどうかチェックだな。 2バイトURLは見なかったことにする。 w+\...+\/.+[^!#-;=?-~] ってな感じかなぁ。試してないけど。
>>971 Dim myStr as String
myStr="www.uploader/forlder001/"
myStr2="アドレスwww.uploader/forlder001/にファイルをアップしてみた。"
'だとすると、
If myStr = (w+\...+\/.+[^!#-;=?-~](myStr2)) then
form1.caption="アドレス抽出しました。"
End if
'のように正規表現は使うわけ?
正規表現の書き方は今日教えてもらった
w+\...+\/.+[^!#-;=?-~]
をコピペして使ってみるけど
正規表現の使い方がわからないのだ。
つまり、 myStr2="アドレスwww.uploader/forlder001/にファイルをアップしてみた。" に対してどうやって正規表現を使ったら "www.uploader/forlder001/" が出てくるのだろうか?
「半角文字列を抜き出すアルゴリズム」 規定した文字列で連続するもの毎に配列に入れる処理 IN "つまりYouはこうEたい訳だ、「となりのuploader/forlder001/ってかっこEeeee」" OUT You E uploader/forlder001/ Eeeee 「アドレスかどうか判定する処理」 文字列 like "*.*/*" 程度でいいのかどうか・・
>>974 そんなことより速戦的な使い方のソースをクレよ。
たぶん
Set mySeiki = 正規表現オブジェクト
みたいな感じで宣言すると正規表現が使えると思うんだよね。
>>976 自分で探した方が早いなんてなんてスレだっ
>>968 「set 正規表現 オブジェクト」でgoogleしたら
すぐにヒットしたけど?
979 :
デフォルトの名無しさん :03/02/27 21:10
>>978 検索結果をこちらに貼り付けたまへーくるしゅうない
>>979 regexp
を見て、そうだ!そんな感じだった!と思い出した。
なかなかドキっとしたぞ。えらいえろい
最悪の質問者だな… 丸投げイクナイ
983 :
デフォルトの名無しさん :03/02/27 21:15
>>968 ◆HLRHHB4j46
思い出したんじゃなくて、今知ったんだろw
>>983 まったく知らなかったんなら正規表現という言葉自体知らないはずだろ。まあ多少の記憶のひっかかりはあった。
無事正規表現使用の見通しもたったところで、この話題はここでピタッと終了〜。
985 :
デフォルトの名無しさん :03/02/27 21:24
性器表現ってなんでしか?
なんで関数(FUNCTION)と手続き(PROCEDURE)に分けているんでしょうか・・・
988 :
デフォルトの名無しさん :03/02/27 22:27
フォルダの中にあるファイルを更新日時順にソートしてそのファイル名 をテキストファイルに書き出したいのですが、なにかいい方法はありま すでしょうか? よろしくおねがいします。
989 :
デフォルトの名無しさん :03/02/27 22:41
6.0のWebBrowserは.netでは何て言うのでしょうか?
>>990 どこにも6.0のスレとは書かれていない罠。
ところで次スレは?ないなら立てるけど。
992 :
デフォルトの名無しさん :03/02/27 22:49
>>988 ファイル一覧を取得し、ファイル名と更新日時を配列に突っ込む。
ユーザー定義型の配列か、二次元配列を使え。
んで、その配列をソートしる。
件数少ないならバブルソートでも充分だろ。
激しく手抜きしたいなら、Sorted = True にしたListBoxを用意して、
List1.AddItem Format(FileDateTime(ファイル名),"yyyymmddhhnnss") & ファイル名
っつー手も無いこともない。
書き出す時はForで回して、
Print #1, Mid(List1.List(i),15)
とかやる。
…ま、本気で手抜きする時以外は勧めないが。
や、少なくとも.netよりは近いだろうって事で。 ↓次スレよろ。
995 :
デフォルトの名無しさん :03/02/27 22:57
>>989 なんですが答えてもらえないのでしょうか?
Dim 1000() As Integer
Set 1000=ALL
1000か?
1000!
999!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。