トップページ⇒tech
1001コメント362KB

VB初心者質問スレ Part8 (・∀・)

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
前スレはこちら
  Part 1 http://piza.2ch.net/tech/kako/968/968328471.html
  Part 2 http://piza.2ch.net/tech/kako/990/990793224.html
  Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
  Part 4 http://pc.2ch.net/tech/kako/1006/10069/1006922992.html
  Part 5 http://pc.2ch.net/test/read.cgi/tech/1010624646/
  Part 6 http://pc.2ch.net/test/read.cgi/tech/1013844542/
  Part 7 http://pc.2ch.net/test/read.cgi/tech/1015836357/
Win32 API関連スレ
  http://pc.2ch.net/test/read.cgi/tech/1017072275/

心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調てみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
0002デフォルトの名無しさんNGNG
2ゲット
0003デフォルトの名無しさんNGNG
Microsoft Common Controls の TabStrip ってコントロールを使ってます。
右クリックで「閉じる」というポップアップメニューを出すところまではできたのですが、
どのタブの上で右クリックしたかわかる方法はありませんか?
(例えばタブが3つあって一番左のタブが選択されているとき、
 真中のタブで右クリックしたことがわかる方法)
TreeViewコントロールの HitTestメソッドみたいなものもないようですし。
TabStrip1.SelectedItem を見ても、クリック前に選択されていたアイテムが格納されていて
正確に判定できないのですが…。

# Webでは「人気ない」とかかかれてましたが、別のコントロール使うべきでしょうか?

開発環境:
Windows2000 + VisualBasic6.0(SP5)
0004デフォルトの名無しさんNGNG
乙津枯れー>>1
0005デフォルトの名無しさんNGNG
>>3

こんなコードが手元にあるけどー。

Private Sub TabStrip1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
  If Button = 2 Then
    If TabStrip1.SelectedItem.Left < (x / Screen.TwipsPerPixelX) _
      And (x / Screen.TwipsPerPixelX) < TabStrip1.SelectedItem.Left + TabStrip1.SelectedItem.Width _
      And TabStrip1.SelectedItem.Top < (y / Screen.TwipsPerPixelY) _
      And (y / Screen.TwipsPerPixelY) < TabStrip1.SelectedItem.Top + TabStrip1.SelectedItem.Height Then
      popupmenu mnuHoge

どうやら私もいい方法が思いつかなかったらしく、SelectedItemの領域外を
右クリックした時は無視するようにてる模様。
…腐れてるなぁ。
00063NGNG
>>5さん
どうもありがとうございます。
コードを参考にさせていただきました。
全てのTabに対して領域内にあるかどうかでチェックすると
nSelectedIndex に右クリックされたタブのインデックスが入ります。

Private Sub TabStrip1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
 
 If Button = vbRightButton Then
  Dim tb
  For Each tb In TabStrip1.Tabs
   If tb.Left < (X + TabStrip1.Left) And (X + TabStrip1.Left) < tb.Left + tb.Width And _
      tb.Top < (Y + TabStrip1.Top) And (Y + TabStrip1.Top) < tb.Top + tb.Height Then
    nSelectedIndex = tb.Index
   End If
  Next
 End If
 
End Sub

さーて改造改造…
# 余談ですが、 Dim tb as Tab ってやったら構文エラーでした。入力候補にも出ているのに何故?
0007デフォルトの名無しさんNGNG
>>6
For Each 〜 は、バリアント変数限定。
0008デフォルトの名無しさんNGNG
>>6
Tab関数と混乱しているから。
Dim tb As MSComctlLib.Tab と書きなされ。

>>7
残念。はずれ。

MSDNの「For Each element In group」のelementの説明
必ず指定します。コレクションや配列の各要素を繰り返す変数を指定します。
コレクションの場合、引数 element にはバリアント型 (Variant) 変数、
総称オブジェクト型変数、または任意の固有オブジェクト型のオブジェクトの
変数を指定できます。また、配列の場合は、引数 element にはバリアント型のみ
指定できます。
0009デフォルトの名無しさんNGNG
メニューについて質問です。
IE6のように、CoolBar内にメニューを入れてしまう芸当はVBでできますか?
背景が透明になるコンテナにラベルとか自分で配置しないといけないんでしょうか…
0010デフォルトの名無しさんNGNG
フォームに貼り付けたスプレッドシートに、SQL文で、accessのデータを持ってくる
っていうコードきぼんぬ。
0011デフォルトの名無しさんNGNG
>>10
自分でやれ。
001210NGNG
はい。>10
テーブルをセルに表示する方法がわからんけど頑張ります。
Do Until rs.EOF
vaSpread1.Row =
vaSpread1.Col =
adoRecordset.MoveNext
Loop

こんなのが入ると思うんだけど
0013デフォルトの名無しさんNGNG
mdbファイルにADOでアクセスして
レコード追加、レコード削除を繰り返すとレコード数が少ないにもかかわらず
mdbファイルのサイズがどんどん大きくなるんですが、こういうもんなんですか?
0014デフォルトの名無しさんNGNG
>>10
BOCのSPREAD?
0015デフォルトの名無しさんNGNG
>13
そうだよ。
だからあるタイミングで最適化するようにしとかないといけない。
001610NGNG
vaSpreadとかいうコントロールを追加してやってます
助けて下さい・・
001710NGNG
Private cn As ADODB.Connection
Private rs As ADODB.Recordset

Private Sub Form_Load()


Set cn = New ADODB.Connection

'データベースに接続
cn.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=Y:\Sample2000.mdb"
cn.Open


'レコードセット取得
Set rs = New ADODB.Recordset
rs.Open "テーブル1", cn, adOpenStatic

'スプレッドシートにレコードセットの内容を表示します
Set vaSpread1.DataSource = rs
vaSpread1.DataField = "会員番号,会員名"


Do Until rs.EOF
????????????????
adoRecordset.MoveNext
Loop


'接続を閉じる
adoRecordset.Close
adoConnection.Close

End Sub



レコードセットのデータが無くなるまで
スプレッドシートのセルに当てはめていきたいんですけど
わからなくて進まなくて死のうかと思った事もあったりなかったり
0018デフォルトの名無しさんNGNG
>10
考え方は当たっている。
あとはヘルプでスプレッドのプロパティ・メソッドを調べ、
その動作について理解すればおのずと道は開かれるモナー
0019デフォルトの名無しさんNGNG
dim Res as Adodb.Recordset
dim Items() as string
dim Ret as string
dim i as long
dim y as long

'レコードセット取得関数
OpenRst(Res,"select * from TBL")

'---------↓サンプル-----------

'--初期化
ret=vbnulstring
y=1
redim Res(Res.Fields.Count-1)

'--該当件数分、処理を繰り返す
Do Until rs.EOF
'レコード→配列
for i=0 to ubound(items)
items(i)=res.fields(i).items(i).value
next i
'配列→文字列
ret=ret & join(items,vbtab) & chr(13)

y=y+1
adoRecordset.MoveNext
Loop

'文字列→スプレッド
with vaSpread1
.maxcol=ubound(items) + 1:.maxrow=y
.Blockmode=true
.Col=1:.Col2=Res.Fields.Count
.Row=1:.Row2=.maxrows
.Clip=ret
end with

'後始末
erase items
adores.close
set adores=nothing



#テストしてないよ
002010NGNG
あー ごめんなさい
途中から変数名間違えてました。死んできます
002110NGNG
むずかしすぎます・・ >19
ありがとう
002213NGNG
>15
さんきゅ。
検索したらJROってのが出てきて試してみた。
そしたら最適化できた。
最適化ボタンでも作っておきます。
0023デフォルトの名無しさんNGNG
>22
最適化時にファイルが壊れる事がタマーにあるんで、保存してからがいいよ。
002422NGNG
>23
さんきゅぅ。
その壊れた時何かエラーが出る?
それとも最適化が完了した事になってて実はファイルが壊れてるっていうパターン?
0025デフォルトの名無しさんNGNG
textファイルをc:\からc:\windowsに移動したいのですが、
どうやったらいいのですか?
0026デフォルトの名無しさんNGNG
MoveFile
0027デフォルトの名無しさんNGNG
CopyFileとKill
0028デフォルトの名無しさんNGNG
>>26-27
ありがとうございます。
じつはそのコマンドの使い方がわからないのです。
よかったら使用例を書いてもらえませんか?
0029ななしNGNG
>>27

> CopyFileとKill

以前に別のサイトで、おなじ質問に対して、私もそう書いたんですが、
その方法だと、エラー処理に注意しないと、Copyに失敗しているのに、
コピー元が削除されてトンデモないことになります。

API等使わずに無難に処理するなら、

Name OldName As NewName

が正解かと思います。

0030デフォルトの名無しさんNGNG
質問なんですが、
OLEドラッグドロップでフォルダをドラッグした場合
フォルダのパスは取得できるのですが、中のファイルがあるかどうか、
あったら中のファイルの名前を取得する方法がわかりません。

どなたか、お願いします。
0031デフォルトの名無しさんNGNG
>>29
ありがとうございます。今やってみたら移動できました。
↓
Name "c:\1.jpg" as "c:\DOWNLOAD\1.jpg"
0032ななしNGNG
>>31

例外処理(空き容量が足らんとか、媒体が書込み禁止されてるとか、・・・e.t.c.)は
ちゃんと書いてください。
0033デフォルトの名無しさんNGNG
VBで、exeにドラッグ&ドロップしたファイルのパスを得るにはどうすればいいのでしょう?
VBSなら、以下のようにすればいいことは知っているのですが・・・
------------------------------------------------------------
Set objArgs = WScript.Arguments
For I = 0 to objArgs.Count - 1
WScript.Echo objArgs(I)
Next
0034デフォルトの名無しさんNGNG
commandnihairuyo
003531NGNG
>>32
ご丁寧にありがとうございます。
これで今作ってるアプリケーションが完成に一歩ちかづきました。
0036デフォルトの名無しさんNGNG
(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)
 31はどんなアプリケーションを完成させようとしているんだろう・・・
(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)
003731NGNG
>>36
画像を整理するアプリケーションです。
マウスを使わずに矢印キーでフォルダ内の画像を全画面表示で次々表示して
気に入った画像はフォルダへ、
要らないのはゴミ箱へという感じのを作ってます。
フォルダに移す際、押すコマンドボタンによって移動するフォルダが選べるようにしてます。
command1押すとc:\winnt、command2を押すとc:\windowsという感じです。
コマンドボタンはF1とかF2を押すことで同じ効果があるようにしました。
もちろん移動先フォルダは任意に設定できます。

こんな感じです。初心者にはこれが精一杯。あはは。
0038デフォルトの名無しさんNGNG
エロ画像の整理か、大変だな。
003931NGNG
正確にはエロと非エロの分類分けだったりする‥。
0040デフォルトの名無しさんNGNG
>>37
先が別ドライブだと、コピーになっちゃうよ。
0041デフォルトの名無しさんNGNG
それなら
 Private Function Ero(Filename As String) As Boolean
みたいな関数作った方がいいよ。
004231NGNG
>>40
移動先が別ドライブだと移動ではなくコピーになってしまうのですか!
うむむぅ。

>>41
その命令は私の理解を超えています。
明日ヘルプとか見て解読してみます。
0043デフォルトの名無しさんNGNG
>>42

例外処理(エロかグロか区別がつかない、ホモ画像だったとか、・・・e.t.c.)は
ちゃんと書いてください。
004431NGNG
>>43
ご丁寧にありがとうございます。
モザイク無しからタテスジ、妊婦画像までありとあらゆる例外処理をしますのでご安心を。
0045デフォルトの名無しさんNGNG
>>42
コピーに成功したことを確認してから、元ファイルを削除すればオッケー。
Winのドライブ間移動だって、やってることはこれと同じ。
0046質問NGNG
VBでプリンタデバイスを制御したいのです。
1.紙面へのGDI描画
2.複数枚数
3.フォントを切り替えながらテキスト出力

どんな表現で行うべきなのでしょうか?
0047デフォルトの名無しさんNGNG
>>46
その程度はデバイス制御とは言わない、ふつう。
ただの印刷。
まず、MSDNで「印刷」を調べてから、再質問。
0048デフォルトの名無しさんNGNG
一瞬組み込み屋さんかな、とも思ったけど
VBでデバイス制御、っつってる時点で違うか。
0049デフォルトの名無しさんNGNG
>>46
そんだけの説明だと
Printerオブジェクトで十分じゃないのとしか言えない。
0050デフォルトの名無しさんNGNG
うむ。
せっかくVBにはPritenrオブジェクトという便利なものがあるんだから活用シヨーウヨ。
005150NGNG
Pritenr→Printer
タイプミス
0052デフォルトの名無しさんNGNG
WebBrowserコントロールのDocumentプロパティ使いたいんですけど、
strHtml = WebBrowser.Document.all.innerhtml
ってやってもできないのは何故?
オブジェクトがありません言われるけど、ヲッチするとあるんだよ〜(;Д;)
0053デフォルトの名無しさんNGNG
>>46
とりあえずこの辺をどうぞ
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9801/vbprint/


ちなみにディスプレイのテキスト表示でもプリンタの設定変更でも
デバイス制御には変わらない。
『デバイス』って言葉に過敏に反応するのは、いかにも、おもちゃGUIしか
知らないという感じ。別に普通に使う言葉。
そもそもVBなんだからDDのわけはない(見ればそのまま)。
難しい言葉だと思い込んで初心者スレで説教垂れるのは、かなり悲しい。
0054デフォルトの名無しさんNGNG
MsFlexGridコントロールで、
2行に一度、境界ラインを太く(濃く描画)するという方法をご存知の方、
教えていただけないでしょうか。

いろいろ試してみたのですが、全行が変わったりするので
悩んでます。よろしくお願いします。
005531NGNG
>>45
ありがとうございます。
やってみます。
0056目指せ脱初心者NGNG
プラグインに対応したVBのプログラムを作ろうと目論んでいます。
プラグインDLLの存在を確認してメニュー項目を動的に増やす方法は知っているのですが、
いざプラグインを実行しようとするとハテ?となってしまいます。
C++なら関数ポインタを駆使してできるのですが…
(プラグインは全て同じ関数をエクスポートしているという前提です)

なにかうまい方法をご存知の方はご教授くださるとありがたいです。
(おとなしくVCでクライアントを作れという説もありますが…)

こんなん見つけましたが、果たして安全なものかどうか…
members.tripod.com/~masapico/doc_FuncPtr.html
0057デフォルトの名無しさんNGNG
>>54
私も特定行のラインを太くすることにトライしたことあるのですが、
残念ながら上手い方法が見つかりませんでした。
仕方がないので、行の高さ変更を不可にして、
特定行の直後の行の高さを凄く細くしました。
こうすると一応太く見えますが、Fixedの部分もちょっと出っ張って見えますし、
なによりセルの操作が非常にやりづらいです…。

Dim i As Integer
For i = 0 To 9 Step 3
MSFlexGrid1.RowHeight(i) = 15'この数は適当です。twipがどうとか…
Next
0058デフォルトの名無しさんNGNG
どなたか33に答えてくださいまし・・
0059デフォルトの名無しさんNGNG
>>57
その方法だとキーボードでのカーソル移動にめちゃめちゃ違和感があると思われ。
0060デフォルトの名無しさんNGNG
>>58
Command 関数 ってのがあるから、それをSplitするなりしてがんばれ。
006154NGNG
>>57
早速のレスありがとうございます。
なるほど、そういう方法も有るんですね。
そのアイデアも踏まえて、もうちょっとがんばってみます。
ありがとうございます。
0062デフォルトの名無しさんNGNG
>>61
サブクラス化について勉強してみると得るものがあるかもしれん。
0063ななしNGNG
>>62
サブクラス化って、どんなメッセージがあるか(そして、それがどのWindow相手に
適用できるものなのか)把握しないと、使いこなせないのよね・・・。
(当り前やけど)

と、ツッコんでみるテスト。
0064デフォルトの名無しさんNGNG
>>56
関数ポインタは使えないよ。あきらめな。

>こんなん見つけましたが
一応理論上は間違ってないし、俺も似たようなことしてるw
でもVC++使うのが一番正常な人間だと思うぞ。
0065デフォルトの名無しさんNGNG
>>56
ActiveX DLLを使用して作る。VBのアドインとかもこの方法だ。

適当に説明すると
1.プラグインのインタフェース用クラスを作る
2.インタフェースをImplementsしたクラスを作る。
3.このクラスをActiveX DLLにする。(これが一つのプラグイン)
4.プラグイン対応プログラムからActiveX DLLのクラスのインスタンスを
 CreateObjectで作成しプラグインインタフェースにキャストして使用する。

手抜きしたいのなら、インタフェースを作らなくても
実行時バインディングで実装可能。
006656NGNG
>>64
ないんですか…残念。

>>65
ActiveXは使ったことないので気付きませんでした。
DLLはVCで作ろうと思ってたんですが…
ちょっと調べてみます。

レスくださった方々、ありがとうございました。
0067デフォルトの名無しさんNGNG
>>9
俺も知りたい…
006865NGNG
>>66
DLLはVCでActiveXでないDLLだったのか?
てっきりVBだけで作るものだと思っていた。

もちろんVCでもActiveXは作れるからさっきの説明の
プラグインの部分をVCで実装すればできる。

どうしてもVCのプラグインをActiveXでないDLLにしたいのなら、
プラグインのDLL名を同じにしてプラグインごとにフォルダを分けて
Declareで宣言して環境変数のPATHを実行時に変更することで出来ないかな?
やってみたこと無いし、変な方法だけど。
006964NGNG
>>66
プラグインに対応って、要するにSusieプラグインを使いたいとか、
そういうことじゃないの?

プラグインも作れます、ならVC系で普通のDLL作らせるほうが一般的だと思う。
007066NGNG
こちらの事情を書いてなかったので混乱させてしまいました。失礼。
既存のプラグインを使いたいというのではなく、
VBで作っているオリジナルのソフトにプラグイン機能をつけられたらいいな〜と
おもって聞いてみた次第です。
途中まで作っちゃったのでVCで作り直すのも面倒だなあと…
0071むNGNG
最近VBの勉強を一通り終わらしたのですが,参考書やりつくしたので
ここにすんでおられるプログラマーの人何か初心者が考えたらわかる程度の
問題作ってください.では
0072デフォルトの名無しさんNGNG
>>71
簡単なWebサーバ作ってみるってのはどう?
初心者が考えたら分かる程度か、というとちょっと辛いかと思うけど、
いろいろ応用できて楽しいよ。
自作ソフトのフロントエンドにブラウザ使うって用途にも使えるし。
0073デフォルトの名無しさんNGNG
>>71
問題の系統は?
0074デフォルトの名無しさんNGNG
>>71
よし!ねぼうしがちなプログラマーにVB6.0かVB.NET目覚まし時計を作ってあげるとよろこばれるぞ
ソースもできれば欲しい
007534NGNG
>>58
ga-n
orettigakotaetetanonikiduitekurenakattanone
samisi-
0076デフォルトの名無しさんNGNG
質問お願いしたいのですが。
フォルダのパスから中のファイルの名前を取得する方法
サクッと教えてください。
おねがいします。
007734NGNG
dir
0078四七子NGNG
>>53
その言葉、そっくりそのままオマエに返してやるさ。
オマエの国じゃ何か?
「ふつうは言わない」=「絶対言わない」なのか?
「不適切表現の指摘」=「説教」なのか?
それじゃ仕方ないな〜
0079デフォルトの名無しさんNGNG
DoCmd.TransferTextでCSV形式で出力したのですが、
出力したファイルの一行目がテーブルのフィールド名なのです。
これを無くしたいのですが、どうすればよいのでしょうか。
008076NGNG
>>77
えっと、俺へのレスでしょうか?
それなら、ありがとうございます。

ちょっとややこしいのですが、フォルダのパスまでがわかっていて、
その中のファイルの名前かパスを取得したいのです。
ややこしくてすいません。
008179NGNG
自己解決しますた。
お騒がせしますた。
0082デフォルトの名無しさんNGNG
>>78
逆切れ、かっこ悪い。
008334NGNG
>>80
むっキー
dirって書いてあるんだからヘルプでdir引いてみろよ
まったく最近の餓鬼は
0084デフォルトの名無しさんNGNG
>>76
>質問お願いしたいのですが。
って表現、日本語として変だから、VB覚える前にデバッグしてね。

んで、アドバイスだけど、Dirって、再帰呼び出しするとパニクると
思うので工夫してねー。
0085RubyistNGNG
最近 幼虫うまいんだ あまーいんだ とってもね けど あげないよ ぼく 甘党だからね
0086デフォルトの名無しさんNGNG
VCで作ったプログラムに
DWORD hoge(UINT argc, char* argv[]);
っていうエクスポート関数があったんですが、これはVBでは
Declare Function hoge Lib "aaa.dll" (ByVal argc As Long, argv As Long) As Long
で正しいでしょうか?(関数の名前が正しいことは確認済み)
1.2番目の引数をどうやって宣言していいのか、
2.宣言があってるとしたらどうやってString()を渡せばいいのかがわかんないのです…
0087デフォルトの名無しさんNGNG
すみません教えてください。
フォームを2つ用意して,メインフォームから.showで2つ目のフォームを呼び出すと
どうやらメインフォームでもForm_Loadが呼び出されているようなのですが
これはなぜなのでしょうか?
初期化処理を2度通過させられて困ってるんですが…。
どうかよろしくおねがいします。
0088デフォルトの名無しさんNGNG
>>87
load/unloadとかしてないよね?
今、フォームを2つ用意してそれぞれのForm_Loadに
 MsgBox "Form1" '(Form2は"Form2")
って書いてみて、Form1に貼ったコマンドボタンでForm2.showしてみたけど
そんな現象起こらなかったよ?
0089デフォルトの名無しさんNGNG
Inetコントロールについて質問です。
OpenURLメソッドを使ってデータを取得しているのですが、
404 Not Found や 403 Forbidden を検知するにはどうしたらいいでしょう?
0090デフォルトの名無しさんNGNG
実行中の画面(フォーム)をプリントアウトしたいんですけど どうすればいいので
しょうか? 今まで参考書とかに載ってるのをみても全く疑問に思いませ
んでしたが、いざ 自分がプリントアウトしてみようとするとどうすればいいの
か全くわかりません。

分かる方いらしたらお願いします。
0091デフォルトの名無しさんNGNG
>>89
Inetコントロール使ったこと無いからあてずっぽだけど、
ResponseCode プロパティ と ResponseInfo プロパティが怪しいぞ。
調べてみるといい。

009289NGNG
>>91
むむ、今ちょうど調べてるとこでした。
レスどうもです(^^
0093デフォルトの名無しさんNGNG
>>90
フォームの姿が分かれば良いなら
開発環境の「ファイル」→「印刷」
で表示されるダイアログでの「印刷対象」で
「フォーム」だけにチェック入れて印刷すれば?
画質も適当にセットして
プロジェクト中の全部なら、左側で
「カレントプロジェクト」にチェックを

実行中でないとダメなら
Alt+PrintScreen キーからだろうな。
#つーか、これじゃWin初心者じゃん?
0094デフォルトの名無しさんNGNG
>>87
Form2 の Load イベント内のコードで Form1 上のコントロールを操作
しているようなことはないですか?
0095デフォルトの名無しさんNGNG
質問です
VB6ですが
IEのように
メニューバーをCoolBar上に置くのは無理でしょうか?
せっかくCoolBarあるのに
VBではサポートしてないのかな…
009687NGNG
>>94
はい,Form1のメニュー項目をdisableしているのと,
Form1に張り付けたwinsockのプロパティを読み出しています。
これっていけないことだったんでしょうか…。
0097デフォルトの名無しさんNGNG
>>89
Inetコントロールはやめときなさい
機能が限定されすぎ
Winsockでおやりなさい

これならTCPレベルなので自由度が高い
ただし各クライアント、鯖機能の実装は 自分でやる
HTTPクライアントでの使い方をいっておこう
1)サーバーに接続要求し、確立する<Connectメソッド 
2)そしたら HTTP鯖に対して HTTPメソッド(命令)を送る<SendDataメソッド
 単にページ、ファイル要求は"GET"メソッドだ (通常我々がブラウザでやってるもんだ)
 GET□ファイルパス□HTTP/1.0[vbCrlf][vbCrLf]
の文字列をSendDataで送ればよい(□はスペース、[vbCrLf]はVB組込み改行コード定数)
おっとファイルパスはトップフォルダ以下相対だ つまり/で始まる
3)HELPにあるとうり、受信データは自分でどこかに保存せよ
4)鯖が閉じたら、こちらも接続を閉じろよ、忘れるな

つまりHTTPやFTP、POP3などTCP上のものは扱えるということだ
ただし!、上記は最も簡単な例だが、HTTPのメソッドや 鯖のレスポンス(返信)の意味に対する
処理を自分で処理しないといけない、HTTP1.0はまだいいが
HTTP1.1はな…大変だぞw
つまりは要求やレスは単なる文字列のやりとりなのだが、それでどう処理するかを知らないとダメなのだ
もちろんプロトコルで全然違う
鯖がjpegみたいなバイナリーデータ送るよって イッテんのに 理解できないで
テキスト処理してるとマヌケ HTTPをまず よく知ることだ
HTTPプロトコルとは言わないように(・∀・)

0098デフォルトの名無しさんNGNG
面倒な処理を簡単にやるためだけの存在のVBに
メンドイ実装してどうするんだ・・・
0099デフォルトの名無しさんNGNG
>>96
ロードされていない Form 上のコントロールを触ると
自動的にロードされます。
気をつけましょう(w
010087NGNG
>>99
そうですか,ただForm1はメインフォームなので,
プロジェクト起動後は1度すでにForm_Loadを通過してるんです。
それでもまた(2度も)Loadイベントが発生してしまうのがよくわからないんですが…。
0101デフォルトの名無しさんNGNG
↑何気に100GETしてるし(´Д`;)
0102デフォルトの名無しさんNGNG
>>100
それじゃその前にどこかで Unload してませんか?
0103デフォルトの名無しさんNGNG
>>93
デキマシタ━━━━━(゚∀゚)━━━━━!!!!

ありがとうございます、本当に助かりました。
0104デフォルトの名無しさんNGNG
>>100
スタートアップちゃんと Form1かい?
逆だと 死ぬよw
010587NGNG
>>102
Unloadしていないんです…。
ただ,さきほどの>>94さんのお話を受けて,Form1のwinsockコントロールの
プロパティをForm2から読み出すのをやめてみたら,Form1のLoadイベントの
二重発生はとりあえずなくなったようです。
よくわかりませんが前へ進むことができそうです。ちょっと不安ですけど。
ここへ来てよかったです。どうも本当にありがとうございました。
0106デフォルトの名無しさんNGNG
>>105ネちゃったね
>>102もねたかい? 解決したよな しないよな もどかしさw
010787, 105NGNG
>>106
起きておりますよ。コーディング中。
結局原因は不明のままですが,ちなみにLoadイベントが2度目に起きたときには
グローバル変数もなんだか初期化されていたんです。
ようするにおなじForm1が実際に2つ立ち上がったようなかんじでした。
なんだったんだろうなあ。
0108デフォルトの名無しさんNGNG
>>107
どこかにNew From1って書いてないかい?
0109横レスNGNG
>>107
表示して即終了、ってやってもなるのかな?
Form2_Load でいきなり Exit Sub してみるとかw
0110もしもし亀よ亀さんよNGNG
>>76
FileSystemObjectつかうってのはどうよ。
Splitでさくっと分解すりゃいいんじゃない?
0111デフォルトの名無しさんNGNG
>>110
FileSystemObjectを使用するならGetFileNameや
GetParentFolderName等の方が便利じゃないかい?
0112デフォルトの名無しさんNGNG
>>86
×Declare Function hoge Lib "aaa.dll" (ByVal argc As Long, argv As Long) As Long
○Declare Function hoge Lib "aaa.dll" (ByVal argc As Long, Byval argvStr As String) as long
011376NGNG
>>83
失礼しました。
DIR関数はパスからのファイル名やフォルダ名を返すものだと思ってました
フォルダからはファイル名が取得できない、と思ったら、ワイルドカード使えるんですね
ありがとうございました。
0114デフォルトの名無しさんNGNG
なにげに34の答えが無視されまくりだな。
0115デフォルトの名無しさんNGNG
↑
そういわれて何気に最初から読んでたら
34前後のエロ画像整理アプリの話にちょっとワロタ
0116超初心者NGNG
ボタン押したら他のフォームが出てくるように
したいんですけど、どうしたらいいですか
0117デフォルトの名無しさんNGNG
>>116
他のフォーム.Show
0118107NGNG
>>108
書いてなかったです。
>>109
Form2_LoadでExit Subでは即終了にはなりませんよー。
0119超初心者NGNG
ありがとうございます。
パラメータって意味を
噛み砕いて教えて下さい。
0120デフォルトの名無しさんNGNG
>>118
Form_Load にブレークポイントを設定して、呼び出し履歴を確認してみては。
0121デフォルトの名無しさんNGNG
>>119
値
012233=58NGNG
>>33
>VBで、exeにドラッグ&ドロップしたファイルのパスを得るにはどうすればいいのでしょう?
>>58
>Command 関数 ってのがあるから、それをSplitするなりしてがんばれ。
ありがとうございます。で、流れはわかったのですが、
例えば「"C:\Documents and Settings\Administrator\デスクトップ\foo.txt" "C:\Documents and Settings\Administrator\デスクトップ\bar.txt" 」
を、2つのパスとして取り出すにはどうすればいいのでしょう?
スペースでsplitすると、「Documents and Settings」も分割されてしまうし・・・
0123デフォルトの名無しさんNGNG
データベースを一から勉強するのにおすすめな本、サイトはありますか?
0124デフォルトの名無しさんNGNG
esa
0125デフォルトの名無しさんNGNG
>>123
ラリー・エリソンの自伝(w
0126デフォルトの名無しさんNGNG
VB仕様書工房ってどんな感じですか?
0127デフォルトの名無しさんNGNG
>>74さんの問題を解いて見ました。
テキストボックスの時間になると音がなります。
STOPにすると音が鳴りません。どうでしょうか。

Private Sub Command1_Click()
With Command1
If .Caption = "SET" Then
.Caption = "STOP"
Timer1.Enabled = False
Else
.Caption = "SET"
Timer1.Enabled = True
End If
End With
End Sub

Private Sub Timer1_Timer()
If Text1.Text = Format(Now, "hh:nn:ss") Then Beep
End Sub
0128デフォルトの名無しさんNGNG
Text1.Textにはいつ代入されているのか・・・ハァハァ
0129 NGNG
.png ファイルを扱えるコントロールありますか?
あと、.bmp や .jpg を .gif に変換したいのですが、VBだけでできますか?
 
0130デフォルトの名無しさんNGNG
>>129
>あと、.bmp や .jpg を .gif に変換したいのですが、VBだけでできますか?
UNISYSに高額な料金を払えば可能。
0131デフォルトの名無しさんNGNG
>>122
Command$のパスはOSによって違うのだ。(藁鬱)
自分でやってみた?
確か9x系ならDOS名+スペースで、NT系なら"で区切られてたはず。

>>129
>.png ファイルを扱えるコントロールありますか?
どっかにあった。竹熊公房だっけか。

>あと、.bmp や .jpg を .gif に変換したいのですが、VBだけでできますか?
できる。GIFのフォーマットを知ってればね。

>UNISYSに高額な料金を払えば可能。
フリーライセンス(使い放題)で数千万だったかな。
0132デフォルトの名無しさんNGNG
>>123
VB系の初心者向けの本はどれも似たり寄ったり。
タイトルに「VB」「初心者」「データベース」が
付いてる本選んどき。
0133129NGNG
>>130 >>131
いいのか悪いのかわかりませんが、IrfanView で「.bmp → .gif → .png」と
全部出来ちゃいました(w
.bmp や .jpg から .png を作りたかったので、とりあえず目標は達成できたと(w
あとは VB 側から IrfanView を操作して一連の作業を自動化したいんだけど、できるかな?
0134デフォルトの名無しさんNGNG
>>126
仕様書工房シリーズは仕様書作成に時間がかかります(あたりまえか)
関数、変数などの情報から呼び出し順までいろいろ書いてくれます。
関数の仕様やコメントを入力する機能が糞でストレスがめちゃめちゃ溜まります。
全部のフォームのスクリーンショット取るために起動されるVBがかわいそうです。
0135デフォルトの名無しさんNGNG
>>119
サブルーチン(関数)呼び出しで、呼び出した側がサブルーチンに渡す情報のことをパラメータという。
例えばタクシーの運転手に「東京駅まで」て言ったきは、その「東京駅まで」というパラメータを運転手に渡している。
こんな説明じゃダメ?w
0136デフォルトの名無しさんNGNG
VBのメニューエディタが使いづらいんですが、何かいいツールとかないですか?
0137127NGNG
>>128
テキストボックスにはhh:nn:ss形式でユーザーが入力して欲しいです。
なんかコードだけだと良くわからないですね・・・
013874NGNG
>>127
動作確認してみたぞ。
基本的な機能を作り終わったという感じだな。
あとは肉付けして人が朝に起きれるぐらいの物に発展させていこうじゃないの。
起きれるは起きられると書きなさい。という突っ込みは無しだぞ。
0139デフォルトの名無しさんNGNG
>>127
目的時刻に重たいアプリが1秒以上タスクを占有すると
アラームが鳴らない可能性がある罠。
対策はいろいろバリエーションがありそうね。
0140122NGNG
>>122ですが、
「"C:\Documents and Settings\Administrator\デスクトップ\foo.txt" "C:\Documents and Settings\Administrator\デスクトップ\bar.txt" 」
という文字列を、「" "」でsplitして、なおかつ最初と最後の要素について、左右の「"」を取り除く作戦で
いこうかと思います。
ただ、以下が本題ですが、「「" "」でsplit」する方法がわかりません。
strArg = Split(Command(), "\" \"")なのかなと思ったのですが、エラーになっちゃうんですよね?
どうすればいいんでしょう?
0141ななしNGNG

板違いな質問(確信犯)ですが、C言語でVBの動的配列(ReDim)に相当するものは作れる
のでしょうか?
もし、できないとすると、別のデータ構造(リスト等)を使うしかないでしょうか?
0142デフォルトの名無しさんNGNG
>>140
C:\で取っちゃえば?
0143デフォルトの名無しさんNGNG
>>140
""" """と書け。
0144デフォルトの名無しさんNGNG
>>141
連続したメモリに置く場合は、メモリの確保→コピーで作れる。
C++とは書いてないのでオブジェクトの動的配列・STL等の使用は考慮外。
0145デフォルトの名無しさんNGNG
VBでDOSのnetstaの実行結果を所得することは可能ですか?
また可能なら方法を教えてください。
0146デフォルトの名無しさんNGNG
>もし、できないとすると、別のデータ構造(リスト等)を使うしかないでしょうか?
なぜリスト構造知っていて動的配列を知らないの。
malloc, reallocは可変長配列を使用するときに使う。

0147ななしNGNG
>>144
>>146

コメント、ありがとうございます。m(_ _)m
厨房質問は、やはり恥ずかしいので、勉強して出直して来ます。
0148デフォルトの名無しさんNGNG
>>145
http://www.vector.co.jp/soft/win95/prog/se222454.html
こーゆーのはダメでつか?
使ったことはないケド。。。
0149@ ◆Yqz..... NGNG
質問させて頂きます。
今までVB5Proを使っていたのですがこの度VB6にしたのです。
が、VB5で既に作ってあったプロジェクトを読み込んで、実行すると
str関数の所「nas.caption = str(reftext.text) & str(refnum.text)」でエラーになる。
「コンパイルエラー:プロジェクトまたはライブラリが見つかりません」と。
VB5Proの時にはちゃんと実行できていたのですが・・・。
そしてStr以外のところは全く問題無くコンパイル、実行できます。
どういうこと??長文スマソ
0150読まずにカキコNGNG
>149
参照設定開いて頭に「Visual Basic」ってついてる奴を入れる
0151_NGNG
>>149
+でやらないで&で文字列を繋げばstr関数いらないんじゃ?
気のせいか?だったら逝ってきますが何か?(w
0152Delフサギコ ◆zE1iiRdQ NGNG
   ∧,,∧   / ̄
@,,,ミ,,゚Д゚彡 < 質問スマーソ
⊂,,,,,,,,,つつ.   \_

VBで、画像を画面に描く事なく
メモリ上で描いて、ファイルに書き込むような
プログラムってどうやってかくですか?

教えてくださいまし。VB6です
0153いちいちレスする男NGNG
すいません、わかりません。
0154Delフサギコ ◆zE1iiRdQ NGNG

   ∧,,∧   / ̄
@,,,ミ,,゚Д゚彡 < 動的にImage1かPicture1を生成して
⊂,,,,,,,,,つつ.   \描いてファイルに書いて
            破棄しちゃったりしたらよさそうなんだけど…

具体的なコードがかけないの…シクシク
0155127NGNG
>>138-139
改良しました。
デフォルトでコマンドボタンのCaptionは"停止中"、タイマーのIntervalは"500"、
Enabled="True"です。テキストボックスに「時時:分分」で時間を入れると、
停止にするまで5分間なり続けます。これ以上コードが長くなるとウザイですね。
すいません・・・。
Private Sub Command1_Click()
With Command1
If .Caption = "動作中" Then
.Caption = "停止中"
Else
.Caption = "動作中"
End If
End With
End Sub

Private Sub Timer1_Timer()
If Text1.Text <= DateAdd("n", 5, Format(Now, "hh:nn")) And _
Command1.Caption = "動作中" Then Beep
End Sub
0156デフォルトの名無しさんNGNG
>>152
デバイスコンテキストじゃん?
0157デフォルトの名無しさんNGNG
>>152
VBの範疇でやるには、PictureBoxをVisible=False、AutoRedraw=Trueで
生成して、それにLineとかで書き込み、SavePicture Picture1.Image,"hoge.bmp"
でファイルに保存すればok。
0158Delフサギコ ◆zE1iiRdQ NGNG
  ∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚ミ < デバコンテ感じ。
  ミ   ミ   \__
〜ミ,UU_ミ

http://www.aqube.pos.to/fly/vb/graphic2.html
ここ見て勉強中っす。

どやたら、これをメモリ上だけでファイル書き込みなどが出来ますの?

隠れたFormとかは使えないの…(使えるかもしれませんが…)
単なるActiveXDLLのメソッドとして画像ファイル生成処理を
ageなければならんもんでして…
0159デフォルトの名無しさんNGNG
>>152
CreateCompatibleDC
CreateCompatibleBitmap
SelectObject
GetDIBits
SetDIBits
BitBlt
DeleteObject
DeleteDC
とか使えばできるのでは?
0160Delフサギコ ◆zE1iiRdQ NGNG
  ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ;゚Д゚彡 < PictureBoxの生成コードがわからんでし…
  ,;゙  ミ     \_____________
 ミ.  ミ  ゴメンナサイゴメンナサイ
/゛゛゛゛
PictureBoxはFormに貼り付けないでも生成できますか?

ActiveXDLLで、ASPのVBSからコールしたいのです。
だから、普通のFormに依存することが出来なさそうな雰囲気。
(いや、実はよくわかりませんです)

0161126NGNG
>>134
なんだか使い難そうですね。
購入考えてたけど止めておきます。どもでした〜。
0162デフォルトの名無しさんNGNG
MSDNの契約?使用?料ってかかるんですか?
0163デフォルトの名無しさんNGNG
>>160
Form必要だね。
Formが作れないなら、VBの範疇じゃ無理なので>>159に出てきてるAPI使って
やるしかない。API使えばできるよ。
0164_NGNG
ついでに俺も質問。
VB6でWINDOWSに貼り付け、を実行させるにはどうすりゃいい?
つまり今Text1にフォーカスがあったら、そこにクリップボードの内容を貼り付けるっていう。
「SendKeys "^V"」とかやればできるか?

調べるの下手なもんで・・・誰か検索テク教えれw

0165デフォルトの名無しさんNGNG
>>164
MSDNライブラリをクリップボードで調べれ。
0166デフォルトの名無しさんNGNG
>>164
それ、めちゃめちゃ簡単にできるぞ・・・・
0167デフォルトの名無しさんNGNG
>>155
む、改良版はなんだか目覚ましと言うよりカップラーメンタイマーに近づいてるな。(笑)
目覚ましをつくるには指定の時間になると自動的にパソコンのボリュームをあげる機能も必須だがこの機能の実装もAPIでできるからお願いね。
0168デフォルトの名無しさんNGNG
各コントロールに使う使うフォントは、等幅とプロポーショナルではどっちがいいのでしょうか?
初期設定ではプロポーショナルになってるけど、等幅の方が何かと便利な気がするのですが。
0169デフォルトの名無しさんNGNG
プロポーショナルと等幅の便利な点をそれぞれ挙げよ。
0170デフォルトの名無しさんNGNG
>>161
限りなく成功に近いプロジェクトには、そんなもん使わないでも、
それ以上に意味のある仕様書が存在しる。

それ系のツールで仕様書出すプロジェクトほどヘタってるって感
じするよ(w
で、使うときに限ってコーティングがタコで、ロクな仕様書吐い
てくんない(w仕様書出力のためのコーティング修正が始まる
始末・・・・(w
で、仕様書出力のためのコーティング修正時に致命的なバグが・・・(以下略
0171_NGNG
>>165 >>166
そこまで冷笑されながらわからなかったYo!
何だ!?何なんだ!?GetTextか?
いや、、、もしかしたら俺がやってることが特別なのかもしれん。
どういう事かっていうとだな、俺は今hotmailの垢取りツールを作ってんのよ。
もちろん練習兼ねてだけどな。
んで楽するためにWebBrowserコントロールを使ってる。
そんでWebBrowserの表示URLをhotmail登録のURLにするだろ。
これでWebBrowserコントロール内に登録フォームが表示されてる状態。
SendKeys "{TAB}"で最初の入力欄にフォーカスが行って、
そこであらかじめTextBoxからクリップボードに入れたテキストを
SendKeys "^V"とやって入力欄に貼り付けようとする。
失敗する。
0172_NGNG
これだよ。
0173デフォルトの名無しさんNGNG
>>170
仕様書作成ツールってさ。プログラム解析ツールと改名するべきだよな。
もしくは、仕様書捏造ツール。実際の用途はそのように使われているだろ。
仕様書ってなんだよ?

プログラムを作成するための仕様書を作成するためのプログラムを作成するための仕様書を作成するための・・・
0174_NGNG
原因として俺の腐った脳で考えれたのは
 ・WebBrowserコントロール「自体」にSendKeyしてしまって、
  入力フォームにキー入力されたことになってない?
って事だけ。
0175168NGNG
>>169
テキストボックスに決まった文字数の半角(or 全角)文字のみ入力させるような場合には
等幅にしておくと、Widthをギリギリに設定することが出来る、とかそんな感じですかね。
ラベルの文字とかはプロポーショナルの方が見た目がいいのかな?よくわかんないです。
0176デフォルトの名無しさんNGNG
質問なのですが
(VBの)アプリで重い軽いってありますよね
あれって、どのようにしたら、重い軽い、ってなるのでしょうか?
軽いはおいといて

重いほうは、やたらLOOPしたり、&多用、重いファイル読み込んだりしたら重くなるけど
たとえばList20とかCommand40とか、コントロールをやたら増やしたら
重くなるのでしょうか?

お願いします
0177デフォルトの名無しさんNGNG
>>175
使い場所によって、等幅の方が利点があると考えたなら等幅をつかい、
プロポーショナルの方が利点があると考えたなら等幅をつかえばよい。
どっちでもいいなら、デフォルトで見た目がよいプロポーショナルを推奨する。
0178名無しさん@そうだ選挙にいこうNGNG
>>171
SendKeys "{TAB}",True
SendKeys "^(v)",True
でもダメ?
なんかvは小文字じゃなきゃダメだった記憶(経験)が・・・
0179_NGNG
出来たっ!
サンクス178!何故かわからんけどそっちをコピペしたら出来た・・・!
感謝すぃます!
0180デフォルトの名無しさんNGNG
>>9
>>95
基本的な方法としては各ボタンにTBSTYLE_AUTOSIZE スタイルをセットしるだけ。
すると文字の幅に合わせてボタンの大きさが変わる。
よって、フラットスタイルにしてクリックしたときの処理を上手くまとめればOK。PopupMenuとか使って。
ただ、漏れにはボタンにスタイルをセットする方法がわからない。いろいろ試したんだけど、どうもうまくいかない。
どうすればいいんだ ヽ(`Д´)ノ ウワァァン
たれか教えてください。Delphiだと簡単なんだけどなぁ。
もしかして簡単だったりして。わるれてるだけかな?
0181デフォルトの名無しさんNGNG
>>180
あ、一応ツールバーコントロールをクールバーに載せるって事で。わるれてました。
0182デフォルトの名無しさんNGNG
>>160
元のデータはどこにあるんだ?
デバイスコンテキスト?自分のメモリ?PictureBox?
それによって処理が変わるぞ。
018395NGNG
”ツール”じゃなくて”メニュー”をクールバー上で〜
IEの一番上のだよ TEXTだけのやつだよ

VBのツールバーエディタはバカでイメージがなくても、その分の余白つくって
しまう。結局ダミーの1x1のイメージでごまかす こんなの正当じゃないよ

それは 別として
まとれす 最近来ないねw (´∀` )

0184デフォルトの名無しさんNGNG
>>180
Delphiだとどーやるの?
0185デフォルトの名無しさんNGNG
>>95
ツールバーでメニューを作るんだよ、頼ってばっかのバカちん!
0186デフォルトの名無しさんNGNG
>>173
んー。名前はどうかね。
しかし、仕様書生成ツールなんて、はっきり言って不要よ。
ツールでちゃんとした仕様書が出力されるように糞なコーティング
ルール作って強制するなら、んなもん使わんでも済むように設計時
にしっかりした仕様書作成するほうが絶対にイイ(・∀・)

まぁ、納品ドキュメントの「格好」として利用する場合もあるかも
しれんが、「格好」だけなんだから、製品を購入する必要はなし。
フリーも多数あるんだから、それで十分でしょ。

0187デフォルトの名無しさんNGNG
>>185
だからVBのじゃできないっていってんじゃん、アホチン!
ニッケイ良く読め 
0188デフォルトの名無しさんNGNG
>>187
ん?ツールバーでメニューできんか??
0189デフォルトの名無しさんNGNG
>>188
ヤッテミナ
テキストだけだと 変だから
エディタの仕様が悪いらしいw
0190188NGNG
>>189
確かに、テキストだけは変

だから、ボタンのビトマップを、絵ぢゃなくってテキストにして
作成したりしてたんですが・・・・ダメ?

結論として、VBでもできる・・・・だと思うのだけど、ダメ?

>>187
それって何かの記事?
0191デフォルトの名無しさんNGNG
>>190
それって何かの記事? <いや 意味はない(´Д`;)
0192デフォルトの名無しさんNGNG
>>187
ttp://www.int21.co.jp/pcdn/vb/onepoint/knvol002.html
ttp://www.int21.co.jp/pcdn/vb/onepoint/knvol014.html
ttp://www.int21.co.jp/pcdn/vb/onepoint/knvol0811.html
この方法でいいのか?よくわからん。
0193デフォルトの名無しさんNGNG
OLEDragDropについての質問なのですが
OLEDragDropが有効なコントロールが2箇所あって、
その2箇所とも同じ作業を行いたいのですが、
その一方に
File1_OLEDragDrop
と書いてやっても引数がうまく渡せないので、うまくいきません。
今はコードをコピペしてるのですが、もっとうまい方法ないでしょうか?
0194即レスNGNG
>193
出来るぞ。DataObject渡してるか?
自作の関数で引数にDataObject取ればすむ話だ。

同じコントロールならコントロール配列にするもよし。
0195でいNGNG
VBでデータベース処理ができるようにVBとSQLの勉強をしておりどちらもある程度
知識がついてきたので就職しようと思っているのですが、実はネットワークの知識が
殆どありません。これだとやばいですか?
0196即レスNGNG
>195
就職先による。
時間があるなら勉強しとき。
0197へっぽこ野郎NGNG
TAPIを使ってパソコンから電話をかけて相手側に音声放送をするような
プログラムを作りたいと思い、TAPIの資料をあさっているのですが
なかなかよいものがみつかりません。
何かよいサイトなどありましたらご教授おながいします。
0198デフォルトの名無しさんNGNG
>195
ネットワークの知識つーても広ぅございますので...
新人として入るなら、小規模LANが組める程度で十分じゃないか。

欲を言えば、セグメント分けたネットワーク構築まで出来るとイイ。
0199即レス(でもないか?)NGNG
英語
http://allen-martin-inc.com/

お勧め本
http://216.239.33.100/search?q=cache:iGbWiEG2KPQC:mfc.acty-net.ne.jp/ml/mfc/logTop/logAll/00017027.shtml+TAPI+%8Eg%82%A2%95%FB&hl=ja&lr=lang_ja

俺は専門外なのでこれぐらいで。
0200デフォルトの名無しさんNGNG
>197
TAPI系のコントロールを買ったほうが早くない?
http://www.google.co.jp/search?q=TAPI+OCX&hl=ja&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0201へっぽこ野郎NGNG
>>200
ありがとうございます!早速しらべてきまっす
0202193NGNG
>>194
即レスありがとうございます。
自作の関数とは
Public Function DragDropList1(Data As DataObject)
という関数を作って中身をコピペすればいいんですよね?
結果は、うまくいきませんでした。

ありがとうございました。
0203Delフサギコ ◆zE1iiRdQ NGNG
  ,,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡 < もとデータは自前で描画するのです>>182
  UU"""" U U    \_______________
レスくれた方々、サンクスコ

とりあえず、
VBS >>呼ぶ>> VBのActiveXDLL >>呼ぶ>> BCBのDLL(描画する機能)
という、世界の終わりっぽい逃げで
一応作ってます…今のところ…
ああ、デスマーチデスマーチ

株価チャートみたいに
Webアクセスしたら動的に画像を見たいだけなのに…
0204デフォルトの名無しさんNGNG
>>202
うまくいかないのに、ありがとうございましたか。
なんか違和感あるな。もうどうでもいいのかな?
関数と自分の書いているコードの意味がわかればちゃんとできるはずだが。
0205元即レスNGNG
>>193
こーゆーことだ。
Function GetDrop(D As DataObject) As Long
Text3.Text = D.Files(1)
End Function

Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
GetDrop Data
End Sub

Private Sub Text2_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
GetDrop Data
End Sub

Text1,2,3を貼りつけてText1,2のOLEDropMode=1に。

>>204
嫌味なんじゃないか?
ちょっとワラタが。
0206193NGNG
>>205
レスありがとうございます。
うまくいきました。なるほど、こういう使い方をするのですか。

ところが、また問題が、MSFlexGridにドラッグしたいのですが
型がMSFlexGridLib.DataObjectとなっているのでListBoxと型が合いません。
むむむ、、、

ありがとうございました。
>>204
自分がうまくいかなくても、レスをもらったのだから、その意味で
ありがとうございました。です。まあ、読み返してみたら、確かに変ですが。
0207元即レスNGNG
>>206
じゃあObject型にすれ。
0208デフォルトの名無しさんNGNG
(追記)GetDropのDataObject型をな。
0209へっぽこ野郎NGNG
>>197でTAPIについて質問したものです。
どうにかこうにかTAPIの制御はできて、ダイヤルまでは逝ったのですが
新たな問題が・・・・
Windows98SEの環境でTAPIを呼び出してコールを行うと電話に相手が
出るまで延々とコールし続けてくれるのですが、
Windows2000の環境でダイヤルを行うと3回目のコールあたりで
ブチっときれてしまいます。
98と2000では実装されているTAPIのVerも違うようなのでその当りが
問題なのかなとか思うのですが・・・
0210デフォルトの名無しさんNGNG
VBで作ったEXEを起動させて、
終了させてから、そのEXEファイルを
棄てたり移動させたりしようとすると、
「ウィンドウズが使用してます。」
と表示されます。
なにが原因だと思われますか?
0211即レスNGNG
>>210
終了しきってないから。
君がするべきことはコードの見直し。
0212145NGNG
遅レスすいません>>148さんありがとうございます。
自分自身で使用ならそれで事足りそうですが、できればVBのみで
netstatの結果を使用したいのです。
DOSコマンドなのでnetstat自信の使用は可能だったのですが、
情報を取得がうまくいかないので・・・
他の方法は何かご存知の方いらっしゃいましたら、ご教授願います。
0213193NGNG
>>207
おお、ありがとうございます。
うまくいけました。
これで中身をいじったあと、コピペすることがなくなりました。
うっかりミスもなくなりそうです。

ありがとうございました。
0214デフォルトの名無しさんNGNG
この質問をここに書くべきじゃないかもしれませんが、
実は今、VBでサウンドプレイヤーを作成しているのですが
再生したい曲の、曲名や、アーチスト名、曲の長さ等を
取得するには、どうしたらいいでしょうか?
0215デフォルトの名無しさんNGNG
レコード会社
0216密男NGNG
起動している任意のアプリを最小化したいのですが、、
どうしたら良いでしょうか?ライブラリーを探してみたのですが判りませんでした。。
又、sendkeysでWindowsロゴキーを送信する事は出来ないでしょうか?
0217デフォルトの名無しさんNGNG
>>216
APIのCloseWindowを使う。
0218デフォルトの名無しさんNGNG
Windowsのタスクバーに表示させなくしたいのですが、どうしたらいいでしょうか?
設定のフォームを普通のForm2で作ったんですけど、
普通、設定のフォームは普通のフォームじゃなく、何か別のフォームを使って作るのでしょうか?
おねがいします。
0219デフォルトの名無しさんNGNG
vbmodalで表示させるか、showintaskbarをfalseにすればいいんでないの?
0220218NGNG
>>219
ありがとうございます。サクっといけました。^^
0221三平NGNG
皆様に教えていただきたいのですが、タイマーってどういうときに使いますか?

私が教えていただきたいのは、Formの見出し画面、(プログラムの名前を表示する)
  例えば、Netscapeです、起動するときでる。読みこみ中ですとか言う!
 を使うプログラムありますよね!
 それで、見出し画面を表示して、タイマーを使って一定時間計って、
終わったら、プログラムが起動する、プログラムコード・・・・

 よろしくお願いします。
0222デフォルトの名無しさんNGNG
>>221
別にタイマー使ってるわけじゃなくて、それだけ処理を実行してる。
進行表示には、時間がかかる処理の中でプログレスバーを使う。
0223デフォルトの名無しさんNGNG
>>212
BATファイルを書き出して、NETSTATの結果をファイルにリダイレクトし、
そのファイルを読み込む。あとは証拠隠滅。
ただし、Windowsによって、NETSTATの結果書式は異なるので注意。
0224デフォルトの名無しさんNGNG
>>221
タイマーコントロールの使い道?
それとも プログレス表示のアルゴリズム?
どっちが 知りたいねん?

てか タイマーって 聞いてるので こっちと判断

VBのタイマーコントロールは 厳密でないのは 有名
使い道は HELPにあるとおり
一定時間ごとに 何かさせるのに 使う

オレは グラフィック描画と組み合わせたときに 使うかな
わざと 部分的に 描いていって ゆっくり 見せるとき
ウエイト用に使うわけだ
特に ラインでタイマーイベントで1ラインごと描くのに いいだろ
遅い処理が わざと 必要なときだな  あいまいで もちろんいいわけだ

タイマーコントロールで 何か正確な 時間を 量るのは ムリ

 
0225Name_Not_FoundNGNG
CやVBには仕様書工房とかの自動生成ツールがありますけど、
VBscriptも仕様書を自動生成してくれるツールとかないですか?

0226デフォルトの名無しさんNGNG
224が 句読点を 使うのも ムリ
0227デフォルトの名無しさんNGNG
>>214
そんなもん、扱うファイル形式による。
それぞれのファイルフォーマットについて研究せよ。
そもそも情報があるとは限らないよん。
0228デフォルトの名無しさんNGNG
>>221
ゲームでは、ほとんど使う。
業務系ではあまり使われないが、無人=自動処理をするときは必要。
0229三平NGNG
皆様の言葉、ありがとうございました。

 他の方もよろしければいつでも書いてください
  よろしくお願いします。
0230デフォルトの名無しさんNGNG
Form1〜3を用意して、

Form1のボタンで、
From2.Show vbModeless, Me

Form2のボタンで、
From3.Show vbModeledd, Me
From3.Hide

の後に、Form2を閉じると、Form1のウインドウが背面に移動してしまうのですが、
どうしてなのでしょうか?
0231密男216NGNG
>>217
有り難うございます。APIですか、、難しそうですね、、
VBを始めたばかりなのですが、避けられないですよね、API、(^^;
よく調べてみます。。
なんとかsendkeysで出来ないものでしょうか、、
0232デフォルトの名無しさんNGNG
>>225
VBSは
Vusual Studio6ファミリーの
Visual InterDev6で書けるぞ
JavaScriptももちろんできる
当然ながら今から買うのは お勧めしない

Studioプロ版以上はセットだが?
持ってないのか… 
0233デフォルトの名無しさんNGNG
>>231
どっちみち起動してるアプリ名を取得するのにAPIが必要になるし、
そもそもSendKeysはWindowキーに対応してない。

IE4以降がインストされてる環境なら、次のコードでもいけるかな。
Dim objShell As Object
Set objShell = CreateObject("Shell.Application")
Call objShell.MinimizeAll
Set objShell = Nothing

0234 NGNG
下記のような CallWndProc 関数を使い、SetWindowsHookEx でフックしたウインドウメッセージを処理しているんですが、
RtlMoveMemory の使い方が悪いのか、どうしても WM_NCPAINT メッセージを拾うことができません。
lParam からメッセージを正しく取り出す方法をキボンヌ。
WM_NCPAINT メッセージが間違いなく流れていることは Spy++ を使って確認しています。

Private Type CWPSTRUCT
lParam As Long
wParam As Long
message As Long
hwnd As Long
End Type
Private cwps As CWPSTRUCT
Private Const WM_NCPAINT = &H85

Function CallWndProc(ByVal ncode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Call RtlMoveMemory(cwps, lParam, Len(cwps))

If cwps.message = WM_NCPAINT Then
'ここに目的の処理

End If

CallWndProc = CallNextHookEx(HHook, ncode, wParam, lParam)

End Function
0235莇NGNG
CRC16/CRC32を計算するにはどうしたらいいですか?
フリーのDLLを呼ぶのはなしで自前のコードを書いてみたいです。
0236デフォルトの名無しさんNGNG
>>235
CRC16は、x^16 + x^12 + x^5 + 1 の剰余
CRC32は、長いので省略

VBでやるとたぶん激遅だけど、やってみるよろし。
0237莇NGNG
xって何を表してるんですか?
0238デフォルトの名無しさんNGNG
>>237
想像できない?
まず、1バイトのファイルを作って、CRCツールの結果と比較してみる。
次は、2バイトファイル。
そういう探求心が必要。人に質問する前に。
0239莇NGNG
諒解です。ありがとうございました。
0240デフォルトの名無しさんNGNG
LabelにあるディレクトリまでのPathを入れようと思ったところ、
「Documents and
Settings」
みたいに勝手に2行に分かれてしまって困ってます。
Labelにはマルチラインプロパティみたいなものも無いしどういうことですか。
0241デフォルトの名無しさんNGNG
>>240
AutoSizeとかWordWrapいじくってみたら?
0242デフォルトの名無しさん NGNG
 ある関数を使って計算させるプログラムを作りました。
そこで、プログラムそのものを効率良く・無駄なくしたという前提で、
さらに計算ににかかる時間を少なくしたいのですが、一般方法として
どのようなものがありますでしょうか?
ご教授いただければ幸いです。
0243デフォルトの名無しさんNGNG
>>242
C言語やアセンブラで書く
0244デフォルトの名無しさんNGNG
>>243
それ以外で。
なんと言ってもEXCELは使いやすいもので。
業務ではEXCELは欠かせないのですよ。
0245デフォルトの名無しさんNGNG
速いCPUに変える。
0246デフォルトの名無しさんNGNG
>>245
EXCELでって言ってんだろーがー!!!
だからこうやってVBスレに書き込んでるんだよ。
ったく人が下手に出てりゃふざけやがってよ。
0247デフォルトの名無しさんNGNG
>>246
「プログラムそのものを効率良く・無駄なくしたという前提」なら
これ以上どうしようもないのでは?
本当に無駄がないのかはしらんが。
0248名無し募集中。。。NGNG
MS Word のように複数ページをスクロールして表示するにはどうすりゃいい?
0249デフォルトの名無しさんNGNG
>>246
マイクロソフトに入社して、もっと効率のいいAPIを開発するか、
あんた自身のスキルアップのために大学院に入ってアルゴリズム
の研究をした方がいいよ。
0250デフォルトの名無しさん NGNG
>>249
2chに救いを求めるようなアフォに研究生活は無理だと思われ
0251デフォルトの名無しさんNGNG
>>242
無駄をなくす。最終的には速さはこれしか影響しない。

具体的な方法は、
○アルゴリズムの見直し
○Variantを使用しない
○APIが使えそうなら使う。
○ループの中の見直し
こんな感じ。(ホントはもっとあるけど割愛。)
上のものほど速くなる。

>246
2chのネタぐらいで切れるな。2ch初心者かい?


>>248
あれは自前で描画してるが。
どっかにそれ専用のコントロールでもあるかな?
0252デフォルトの名無しさんNGNG
>>242
今はどれくらいの時間がかかってんの?
0253デフォルトの名無しさんNGNG
>>249
PCそのものが1年くらいの経験年数。
>>250
うるせー
>>251
ありがとう。
ちなみに切れた振りしてるだけ。
最初はボケにつきあってたのさ。
>>252
少なくとも一時間以上。
計算量が多いってのもあるけど。
0254251NGNG
>253
ありゃ、そうなのね。

ボトルネックになってるところは分かるか?
コードを貼りつけてみればアドバイスも増えるかもな。
0255デフォルトの名無しさんNGNG
>>254
申し訳ないが。。。会社で使ってるんですよ。
貼れない。。。
0256デフォルトの名無しさんNGNG
ちなみに「Variantを使わない」ってのは参考になりますた。
ありがとう。色々試してみます。
0257248NGNG
>>251
こっちも自前で描画したい。コントロールは恐くて使えん。
まずメモリに全部描画して、その後ピクチャに...
ってやるんだろうが、具体的にはまったくわからん。
今は1ページ分の拡張メタファイルを作ってピクチャに描画してる。
当然画面には1ページしか表示できず、メニューなどで切り替えている。
ここから何とかならんものか?
0258デフォルトの名無しさんNGNG
>>256
そんなに初心者だったのか。ならいろいろアドバイスすることはありそうだね。
0259251NGNG
>>257
2ページ分書いて表示位置をずらす。(はみ出る分は描画しない。)

>>256
頑張れ。
0260デフォルトの名無しさんNGNG
>>256
とりあえずなるべくメモリに展開してから計算すると速くなることがあるね。
最近のPCのメモリはたくさんあるからフルに利用しよう!
0261デフォルトの名無しさん NGNG
mikeさんのDLLを用いて、MP3演奏ソフト作ってるんですが、
繰り返し演奏をしようと思いまして、そこで
"C:\My Documents\My Music\okuyasu.mp3"
のファイルパスをString型のMp3fileという変数に格納しました。
そこでVBのソースコード中でMp3fileがEOFになるという
条件文の書き方はどのようにすればよいのかしら。
0262即レス(251)NGNG
>>261
ごめん、文字列型のEOFと言う意味が分からん。誰か分かる?
0263248NGNG
>>259
まあそうなのだが、スクロールとズームを考えるとイマイチ方法がわからん。
1ページだけだとピクチャの Move だけで実現できるのだが。
0264莇NGNG
>>262
End Of File?
空文字列という意味?
0265(261)デフォルトの名無しさんNGNG
失敬.261です。
>文字列型のEOFと言う意味が分からん。
ここに誤りがあったか。
ではMP3ファイルを演奏して、終了したときに出される
EOFを検地するには,VBコード中で
どのように書けばよいか?





0266即レスNGNG
>>263
ああ、そういう方法使ってたのね。

つまり自前で描画ってのはDC(PictureBoxでもいいけど)を2つ用意して、
1,2ページをそれぞれに描画して、BitBltなりStrechBlt(だっけ?)で
表示させたい所に転送する、って感じになるんよ。

スクロールは転送位置を操作、ズームはStrechBltでいけるでしょ。

#ちょっちめんどくさいかも。


>>264
どうなんだろう。
0267デフォルトの名無しさんNGNG
すんません
VBで ダブルな引用符 ---> " を文字列の中で使うにはどうすればいいのでしょうか?
いまは、 & chr(34) & で書いていますが、何か他の書き方が絶対にある気がしているのですが。
0268デフォルトの名無しさんNGNG
>>267
無いよ
0269莇NGNG
>>265
func.txtに載ってないの?

>>267
""とする。文字列なら
txt = "これが""引用符""だよ"
って感じ。
0270即レスNGNG
>>265
フリーのDLL使ってるんならコールバック関数なり何なりがあるはず。
ヘルプなりReadMeなり見れ。

>>267
Str="""
0271248NGNG
>>266
既存のコードを生かすとすると、
拡張メタファイル DC をページ分作って
そこから更に表示域のビットマップをこしらえる、
ってことでイイのかな?
うまくできるかどうかはわからんがやってみるよ。
ありがとう!
0272デフォルトの名無しさんNGNG
VB5.0で作ったの開かないYO!
0273デフォルトの名無しさんNGNG
Private Sub From_Activate
Print "ゴルァ"

End Sub
0274莇改め ◆.EEeEe9c NGNG
>>272
何が言いたい?
0275デフォルトの名無しさんNGNG
>>269 さん >>270 さん ありがとうございます!
これで プログラムがとてもすっきりします。
0276268NGNG
俺の立場がー
0277即レスNGNG
>272
原因の可能性がありすぎ。

>276
藁
気にすんな。
0278デフォルトの名無しさんNGNG
\\server\みたいに始まるパスを普通のパスに直すにはどうしたらいいですか?
0279デフォルトの名無しさんNGNG
>>278
普通のパスって?
0280デフォルトの名無しさんNGNG
M:\
とかです
0281即レスNGNG
>>278
if left$(Path,2)="\\" then path="c:\" & mid$(path,3)
こんなんでいいのか?お勧めせんが。
それともローカルのパスだったらローカルパスに直す、とか言う処理か?
0282デフォルトの名無しさんNGNG
>>278
\\server\に対するM:\が存在しないことがあるのは知っているか?
0283デフォルトの名無しさんNGNG
DoEvents以外でループ処理から脱却する方法を知りたいです。
0284デフォルトの名無しさんNGNG
>278
WNetAddConnection2で\\Serverに接続しよう
0285デフォルトの名無しさんNGNG
Exit For?
0286デフォルトの名無しさんNGNG
>>283
どういう機能がほしいんだい?
0287デフォルトの名無しさんNGNG
>>283
goto?
0288デフォルトの名無しさんNGNG
DoEvents ってループから抜けられたっけ?
0289 ◆.EEeEe9c NGNG
>>283
脱却ってのがなんだかわかんない。
0290デフォルトの名無しさんNGNG
いや、脱却は語弊がありましたね。
要するに、処理がForに集中してフリーズ風になるのを避ける
方法を伺っておるのです。
0291デフォルトの名無しさんNGNG
ENDで抜けろ
0292デフォルトの名無しさんNGNG
ループ処理を行い、なおかつその他の動作ができる状態・・・
いや、DoEventsで十分なんですが、これではループに時間が・・・
0293 ◆.EEeEe9c NGNG
DoEvents入れる間隔を変えるべし。
for〜next処理をdo〜loop内に入れてして数千回回したら一回forを抜ける。
ここでDoEvents。

ってのはどう?
0294デフォルトの名無しさんNGNG
ふむふむ。参考になるっす。
自分は
 If Rnd<0.001 Then DoEvents
見たいなのも考えてみたのですが、条件判断にもいちいち時間かかり
そうだったので気が引けてました。
>>293さんの方法でやてみます。ありがとうございます。
0295デフォルトの名無しさんNGNG
ACCESSについて質問なんですけど
Form_1.Name.Text
というテキストボックスに
ユーザーに文字を入力してもらった後、
Docmd.Close
でForm_1を閉じ、
Module1
を呼びました。
Module1内から
Form_1.Name.Text
内にユーザーから入力してもらった文字が参照できるのですが
なぜ、閉じてるのに参照できるのでしょうか??
参照は確実にできるのでしょうか???
VBのUnloadとはどう違うのでしょうか???

以上、お教えいただけませんでしょうか・・・・・
0296デフォルトの名無しさんNGNG
>>294
重い処理をアウトプロセスサーバにして非同期で動かすとか...
0297デフォルトの名無しさんNGNG
>>296
すみません、意味わかんないっす(w
0298デフォルトの名無しさんNGNG
>>295
できない
0299296NGNG
>>297
MSDN ライブラリで ActiveX EXE について調べてみてはいかがでしょ。
0300 ◆.EEeEe9c NGNG
300ゲトー
0301即レスになってないけどNGNG
>>290
Sleep使え。

>>295
DocmdのCloseはVBのHideと似たような動作になるんだったかな。
0302 ◆.EEeEe9c NGNG
>>301
>Sleep使え。
それも手か。
0303デフォルトの名無しさんNGNG
>>301
Sleep 使ったらスレッド止まっちまわね?
0304 ◆.EEeEe9c NGNG
>>303
スレが止まるのかw
0305303NGNG
>>304
(・∀・)ハジメ イミ ワカンナカタヨ (w
0306デフォルトの名無しさんNGNG
>>303
Call Sleep(1)
DoEvents
みたいに組で使えってことだろ、たぶん。
0307 ◆.EEeEe9c NGNG
>>306
一見良さそうだよね。
0308デフォルトの名無しさんNGNG
>>306
それどういう意味があるの?
0309(・∀・) NGNG
VBの実行ファイルサイズがでかくて困っております。
小さくするコツなどありましたらご教授お願いします。
P-CODEコンパイルってアリですか?(いまいちメリットがわからん)
なるべくネイティブコードコンパイルにしたいのですが…
0310デフォルトの名無しさんNGNG
>>309
デカイってどれくらいなのサ?
0311(・∀・)NGNG
>>310
200KBを半分くらいにしたいのサ(;∀;)
1つのフォームにTabSplitとFrameを5つくらい貼って切り替えるやつなのサ
0312デフォルトの名無しさんNGNG
>>311
TabSplitとFrameを置いただけじゃそんなにならないよね。
その他のコードに無駄はないかい?
最適化をいじくるのはそれからだよ。
0313デフォルトの名無しさんNGNG
>>302
あかんやろ。
>>292 で「いや、DoEventsで十分なんですが、これではループに時間が・・・」
って言ってるぐらいだから。

そもそも >>290 で...
> 要するに、処理がForに集中してフリーズ風になるのを避ける
> 方法を伺っておるのです。
の意味があいまい。
1. 他のプログラムの動きがのろくなる
→ プライオリティ設定すべし。もしくは、SMP マシンでも買え。
2. 自分のプログラムのコントロールが反応しなくなる
→ ちゃんとやるなら >>296 の方法。簡易的には DoEvent しかないよ。
0314 ◆.EEeEe9c NGNG
>>313そうだね。遅くなるのは避けたい。
プライオリティは具体的には
Private Declare Function GetCurrentProcess Lib "KERNEL32" () As Long
Private Declare Function SetPriorityClass Lib "KERNEL32" (ByVal hProcess As Long, ByVal dwPriorityClass As Long) As Long
で宣言してどっかに
SetPriorityClass GetCurrentProcess, &H80
を組み込む。&H80で十分っしょ?

>>311
1:頑張ってコードを最適化(最適化の術はGoogleで検索してみ)←推奨
2:UPXで潰す。
3:コンパイルされるときに強制的に
/MERGE:.data=.text /MERGE:.idata=.text /SECTION:.text,erw
を付加する。これ超裏技。
Link.exeにこのコマンドが渡されるのであらかじめVBでLink.exeをリネームしたものに
このコマンドを渡すプログラムを作っておく。
更に/ALIGN:4096をつけるのもよし。
VB側では『サイズの最適化』にしとく。
0315デフォルトの名無しさんNGNG
>>292
DoEventsの変わりの関数を作って決められた回数もしくは一定時間を
超えた場合のみDoEventsを行う用にすればいいのでは。
決められた回数はCPUに比例してDoEventsの回数が増えるから
一定時間ごとDoEventsがよさそう。
0316 ◆.EEeEe9c NGNG
>>315
固まりかけてるような重いプログラムで一定時間が判定できるのかな?
0317(・∀・)NGNG
>>312
ほかにもいろんなコントロールをぺたぺたぺたぺたぺたぺたぺたぺた貼り付けております。
とりあえずコードから見直してみます。
ありがとうございました。
0318_NGNG
ListViewコントロールでアイテム追加ってどうやるんですか?
ごーぐるさんでも出ないのですが。
0319デフォルトの名無しさんNGNG
>>318
ヘルプを見よ。
0320デフォルトの名無しさんNGNG
>>318
ListView に直接追加するんじゃなくて、ListView.ListItems コレクションに
追加しる。
0321デフォルトの名無しさんNGNG
質問です。
送信元を[email protected]としたメールを送信したいときのソースは
どう書けばいいですか?
0322デフォルトの名無しさんNGNG
逝ってよし
0323デフォルトの名無しさんNGNG
下げるナ あぽ
0324デフォルトの名無しさんNGNG
SPAMかよ
0325デフォルトの名無しさんNGNG
そうそう。
悪用はいたしませぬ。
教えてケロ
0326デフォルトの名無しさんNGNG
だから。さげるナってば
0327デフォルトの名無しさんNGNG
>>321
そもそも、人に聞くような問題じゃないし。
0328デフォルトの名無しさんNGNG
だってここ初心者が質問できるとこでしょ??
教えてくれい>>327
0329デフォルトの名無しさんNGNG
おーい
0330デフォルトの名無しさんNGNG
ソースを書いてって言われて書く奴なんかいないって。
0331デフォルトの名無しさんNGNG
どうきけばいい?
タグっていうかとにかくエクセルにメールアドレスを登録している人達に
メールを送りたいんだーーー!
0332デフォルトの名無しさんNGNG
で、下げるナヨ(怒
0333デフォルトの名無しさんNGNG
ここで質問しないで検索すれば?
ずっと早いと思うよ。

あ、俺わかんない。ごめんな。
0334デフォルトの名無しさんNGNG
>>331
まず努力。ヘルプ見て自分でやってみて、わかんないとこが出てきたら、
自分でやったことを書いてから質問する。
0335デフォルトの名無しさんNGNG
>>321
つーか、ネタだろ。ネタじゃなければバカ
0336即レスNGNG
>331
WinSockを使う。VBのサンプルコードはあんまり見かけんが。

めんどくさいならフリーのDLL、OCXを使うかOutLookのVBAを使ってみれ。
0337デフォルトの名無しさんNGNG
即レス以外はみんなあぽう。
まったくもうっ。ここで質問する位の初心者だと理解しろYO!!
0338318ですがNGNG
ListView.ListItems.Add , ,"text"
のカタチでちゃんとアイテム追加できましたです。
サンクスっす。

ところがもひとつ質問が増えました(w
複数カラムがある場合に、それぞれのカラムにテキストを入れますよね?
カラムが3つある状態のListViewコントロールにAddで追加しても、
1つ目のカラムにしかテキストを入れれないんですが。
2つ目、3つ目のカラムに入れるテキストはどう指定すればいいんでしょう?
0339>>321NGNG
winsockコントロールを貼り付け、
SMTPサーバのIPをリモートIPに設定。リモートポートは25。
winsock1.connect で接続
winsock1.Winsock1.SendData "〜〜〜" で直接データを送れる
あと向こうからの反応の感知は DataArrivalだ。
感知したらgetdataで向こうからの反応を取得できる。

あとはTELNETでのSMTPの構文をVBでやらせりゃいいだけ。
その際送り元を"mail from: [email protected]"ってやれば[email protected]からになる。

ソースじゃないがこれで書けるだろ>>321
これ以上は俺説明する気ないぞ
0340即レスNGNG
>338
ListItemのAddの戻り値であるListItemオブジェクトのSubItemを使う。

MSDN見れ。サンプルコードが確かあった。
0341訂正NGNG
winsock1.Winsock1.SendData "〜〜〜"
↓
winsock1.senddata "〜〜〜"
(ちなみに〜〜〜はSMTPに送るデータだ。
わかってるだろうがデータの最後にChr(10)を付けないとだめだぞ)
0342デフォルトの名無しさんNGNG
winsockがなんなのかさぱーりなのだが検索して調べてみよう。
ありが玉金(私、いちお女、ね)
0343おながいしますNGNG
EXCEL関係のQ&Aや解説本を調べても分からなかったので
質問します。分かる方教えてください。ここを見ろでも結構です。
当方EXCEL2000です。

TEST01.XLS(名称は都度変わります)のマクロから
TEST02.XLS(名称は都度変わります)内部のB1:C2のセルを
TEST01.XLSのA1:B2のセルにコピーして
TEST02.XLSを自動で閉じたいのですが?
−−−−−−−−−−−−−−−−−−
Sub a()
  Dim boCheck As Boolean

    boCheck = Application.Dialogs(xlDialogOpen).Show

  If boCheck = False Then
    MsgBox "キャンセルが選択されました。処理を中止します。"
    Exit Sub
  End If

  Range("B1:C2").Copy

  ActiveWorkbook.Close SaveChanges:=False

  Range("A1:B2").Select
  ActiveSheet.Paste
End Sub
−−−−−−−−−−−−−−−−−−−−−
上記マクロでは、A1:B2になにも入りません。
ご存知の方、助けてください。 おながいします。
0344デフォルトの名無しさんNGNG
厨な質問なんですが、VB+DirectXでテキストボックス使うのってどうやればいいですか?
フォームに貼り付けてもフリップしまくりで見えないんですけど・・・。
誰か教えてください。
0345デフォルトの名無しさんNGNG
>>343

Sub a()
  Dim boCheck As Boolean
  Dim filename As String
  
  boCheck = Application.Dialogs(xlDialogOpen).Show
  filename = ActiveWorkbook.Name
  
  If boCheck = False Then
    MsgBox "キャンセルが選択されました。処理を中止します。"
    Exit Sub
  Else
    ActiveSheet.Range("B1:C2").Copy
    Workbooks(filename).Close SaveChanges:=False
    ActiveSheet.Range("A1").Select
    ActiveSheet.Paste
  End If
End Sub
0346343NGNG
>>345
ありがとうございます。大変助かりました。

もう1つだけお願いします。
B1:C2と書きましたが、コピーエリアはもっと大きくて
>Workbooks(filename).Close SaveChanges:=False
ここで、下記メッセージが出ます。

クリップボードに大きなデータがあります。他で参照する場合はYESを
参照しない場合はNOを選択してください。
↑
これを出なくすることは出来ますか?
0347デフォルトの名無しさんNGNG
>>346
Elseの次の行に
Application.DisplayAlerts = False
を追加
0348343,346NGNG
>>347
ありがとうございます。解決しました。助かりました。
0349デフォルトの名無しさんNGNG
>>345
そんな感じでVBAでセルからアドレスを取得してメールを送る方法を
教えてよー
0350デフォルトの名無しさんNGNG
その
態度を
改めろ
0351デフォルトの名無しさんNGNG
>>349
教えてほしけりゃ、>>343のように自分がやったことを示せ。
お前のような奴に教える奴はいねぇよ。
初心者未満には何を教えても理解できないだろうし。
0352343,346,348NGNG
スイマセン。新たな問題が発生しました。
大変申し訳ありませんが、分かる方お願いします。

Sub Macro6()

Dim boCheck As Boolean
Dim filename As String

boCheck = Application.Dialogs(xlDialogOpen).Show
filename = ActiveWorkbook.Name

If boCheck = False Then
MsgBox "キャンセルが選択されました。処理を中止します。"
Exit Sub
Else
Application.DisplayAlerts = False
ActiveSheet.Range("BF6:BI105").Select
Application.CutCopyMode = False
Selection.Copy
Workbooks(filename).Close SaveChanges:=False
ActiveSheet.Range("BF6:BI105").Select
ActiveSheet.Paste
End If
End Sub

上記を実行すると、クリップボード内でセルの値をまとめてしまいます。
例:BF6セル BG6セル BH6セル BI6セル   
   100    200   300   400
が 元のBOOKにペーストすると  BF6セルにまとめて『100・200・300・400』
となります。対処法ご存知の方よろしくお願いします。
0353デフォルトの名無しさんNGNG
Option Explicit
Declare Function SendMail Lib "bsmtp" _
(szServer As String, szTo As String, _
szFrom As String, szSubject As String, szBody As String, szFile As String) As String
Sub MySendMail()
Dim ret As String
Dim szLogfile As String
Dim szServer As String, szTo As String, szFrom As String
Dim szSubject As String, szBody As String, szFile As String
Dim flBody
Dim i As Long
Dim fs, a As Object

On Error GoTo Err_Handler
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\log.txt", True)


' メール送信結果を記録するファイル名を指定します。
szServer = Worksheets("本文").Cells(11, 1) ' SMTPサーバ名
'
With Worksheets("宛名及び置換文字")
If .Cells(1, 3) & .Cells(1, 7) = "" Then
MsgBox "タイトルとFROMを入力してください"
GoTo Exit_sub
Else
0354デフォルトの名無しさんNGNG
If MsgBox("タイトル:" & .Cells(1, 3) & "、送信元" & .Cells(1, 7) & "で良いですか?", _
vbOKCancel, "確認") = vbCancel Then
GoTo Exit_sub
End If
End If
szSubject = .Cells(1, 3) ' 件名
szFrom = .Cells(1, 7) ' 送信元
i = 3
Do While .Cells(i, 1) <> "END"
If .Cells(i, 1) = "○" Then
szTo = .Cells(i, 5) ' 宛先
szBody = .Cells(i, 6) ' 本文
szFile = ""
ret = SendMail(szServer, szTo, szFrom, szSubject, szBody, szFile)
If Len(ret) <> 0 Then
a.WriteLine (Date & " " & Time & " " & ret & "−" & szTo & "−" & szBody)
'MsgBox "エラー" & ret & "−" & .Cells(i, 4)
.Cells(i, 1) = "エラー"
Else
.Cells(i, 1) = "完了"
End If
End If
i = i + 1
Loop
End With
' パラメータエラーのときは、戻り値にエラーメッセージが返ります。

MsgBox "終了"
GoTo Exit_sub

Err_Handler:
MsgBox Err.Description, vbCritical, "Error"
GoTo Exit_sub

Exit_sub:
a.Close


End Sub

・・・で解決できたもんね!!ぶひーだ
0355デフォルトの名無しさんNGNG
INIファイルのことで質問なのですが
INIファイルにInteger型の数値を書き込みたいのですが、
もし、INIファイルがないorその項目がないとき
””
が戻ってくるので、エラーが出てしまいます。これを回避する方法はないのでしょうか?
よろしくお願いします。
0356343,346,348,352NGNG
>>352の内容から新たに分かったことです。
マクロを実行するBOOKがEXCEL形式なら問題なしのようですが
今回必要なのは、CSVを開いてそこからの実行だと
>>352のようになるようです。
もし分かる方いらっしゃればお願いします。
0357355NGNG
↑すいませんINIファイルを読み込みにいくとき、””でエラーが出ます。
0358デフォルトの名無しさんNGNG
>>355
WritePrivateProfileString使ってんの?
項目が無ければ作るはずだよ。
0359355NGNG
>>358
レスありがとうございます。
すいません、書き間違えました
本来はWritePrivateProfileStringでかきこんで
GetPrivateProfileStringで、読みにいってるんですが、

何かの拍子にINIファイルがなくなったり、項目がなくなったりしたとき
GetPrivateProfileStringで読みに行くと
””
が返ってきますよね?そうなると、型が合わないとエラーが出てしまいます。

何かよい回避する方法はないでしょうか?
0360359NGNG
追加
Integerで宣言すると
””
が戻ってきたとき、型が合いません

何かいい方法はないでしょうか?おねがいします。
0361デフォルトの名無しさんNGNG
>>359
GetPrivateProfileIntがあるよ。
0362_NGNG
>>359
GetPrivateProfileStringでも、
項目が見つからない(≒ファイルが見つからない)
ときに返す値を決めれたはずだけど・・・?
GetPrivateProfileString(section,key,"",value,length,file)
とあったら、""のトコじゃないの?それを"0"とかにすればOKかと・・・。
0363361NGNG
>>362
それダメじゃない?宣言はString型なんだから。
0364_NGNG
んでもって今俺もなんか変なんで質問する。

普通ならメニューから参照設定で「Microsoft Internet Controls」
にチェックを入れてOKすると、WebBrowserコントロールがリストに入りますよね
なんか今やったら追加されてないんだよ・・・。
何度かチェックを外したり入れたりしてみたけど変化なし・・・。
バグなのか?対処方法とかないのかねぇ
0365_NGNG
>>363
あとで使うときにVal関数でやればOKだろうが。
0366361NGNG
>>365
んな手間かけるならGetPrivateProfileInt使えばいいじゃない
0367_NGNG
>>366
そりゃそうだなw
いや新着レス読む前に書いたもんで(w
まぁどっちでもできるわけで。
0368361NGNG
>>367
熱くなってすまんかったw
0369359NGNG
>>361 >>362
レスありがとうございます。
実はAPI関係、あまりわかってないのです。お分かりでしょうが、
でも、これでいけそうです。
ありがとうございました。
0370361NGNG
>>369
頑張れ
0371343,346,348,352,356NGNG
自己解決したので報告だけします。

PERSONAL.XLSのマクロから
TEST02.XLS(名称は都度変わります)内部のBA6:BI105のセルを
TEST01.XLSのBA6のセルにコピーして
TEST02.XLSを自動で閉じたいのですが?


Sub Macro1()
Dim strFileName As String
Dim wbTargetBook As Workbook
Dim mySheet As Worksheet

Set mySheet = ActiveSheet
strFileName = Application.GetOpenFilename()
If strFileName = "False" Then
MsgBox "キャンセルが選択されました。処理を中止します。"
Exit Sub
End If

Set wbTargetBook = Workbooks.Open(strFileName)
With wbTargetBook
.Worksheets(1).Range("BF6:BI105").Copy
mySheet.Range("BF6").PasteSpecial xlValues
Application.CutCopyMode = False
.Close SaveChanges:=False
End With
End Sub

先ほどコードの記述は変わりましたが、上記で解決しました。
お騒がせしました。
0372240NGNG
>>240です。ものゴッツい亀レスになってすみません。
>>241サン
ありがとうです。両方Falseになっていました。
Trueの動きはかなり嫌なので、他に方策はありませんでしょうか。
0373デフォルトの名無しさんNGNG
すごく遅いけど、Winsock使うときは一応、
DataArrivalが意味をなす単位ごとに発生
しないことを留意しておいてくださいです。
0374デフォルトの名無しさんNGNG
ローカルグループの一覧を取得するような関数ってありますか?
0375デフォルトの名無しさんNGNG
”意味をなす単位”ってなんだ?
0376デフォルトの名無しさんNGNG
Excel関連は、ビジネスソフト板のExcelスレで。

0377デフォルトの名無しさんNGNG
タイマー処理で教えてください。
Xxxx_Timer()の中でMsgBoxを使っているんですが、MsgBoxで入力が無いままだと、タイマー割り込み
が溜まるって事あるんですかね?
なんかデバッグで動かしているとそんな感じになるんですが・・・
タイマー処理の頭で、タイマー.Enabled=Falseにして抜ける時にTrueにするのが
普通??

0378デフォルトの名無しさんNGNG
>>377
VBのMsgBoxは出ている間しっかり処理がとまる。これ仕様(だった筈)。
0379デフォルトの名無しさんNGNG
wroxのプログラマーシリーズ
VB.NETプログラミング第7章「データアクセス」p280のコード
(ASP.NET)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim objCustomerOrders As New CustomerOrders()
Dim MyDataSet As DataSet
MyDataSet = objCustomerOrders.FillPurchaseOrdersDataSet()
DataGrid1.DataSource = MyDataSet
' 明示的にコントロールとデータを結合するために必要
DataGrid1.DataBind()
End Sub

を実行して、Button1を押すと、

'/WebADO1' アプリケーションでサーバー エラーが発生しました。
--------------------------------------------------------------------------------

IListSource に、データ ソースがありません。
例外の詳細: System.Web.HttpException: IListSource に、データ ソースがありません。
ってなって、
DataGrid1.DataBind()
がエラーになります。ダウンロードしたコードそのままなんだけど?

よろしくお願いします。
0380初心者のつもりNGNG
TabStripを使っているんですけど、
タブをコードから移動させることはできますか?
どうやればいいのか調べてもわからないんです・・・。
0381デフォルトの名無しさんNGNG
先生!!
.NETは漏れにはわかりません!!
0382デフォルトの名無しさんNGNG
>>377
MsgBoxを表示している間はタイマーカウントされません。

>>379
コードがあってもデータがないというオチだったりして…

>>380
tabs(index)のselectedプロパティをtrueにする。
TabStrip1.Tabs(index).Selected = True
で、index番目のタブが選択されるよ。
0383デフォルトの名無しさんNGNG
デスクトップなどにあるテキストの内容をテキストに表示させるにはどうすれば良いですか?
0384デフォルトの名無しさんNGNG
意味がわからん
デスクトップにある***.txtをテキストボックスに表示するの?
0385デフォルトの名無しさんNGNG
VB6ラーニングエディションを使っているのですが、
APIビューアが見つかりません。
そもそも\Microsoft Visual Studio\Commonの下に\Toolsというフォルダが
無いのですが、ラーニングエディションではAPIビューアは使えないと
いう事なのでしょうか?
閲覧できる過去ログやヘルプを見ましたが該当する記事が見つかりませんでした。
どなたか分かる方がいらっしゃいましたらお願いします。
0386仕様書無しさんNGNG
>>385
Learningには付属していません。

>閲覧できる過去ログやヘルプを見ましたが該当する記事が見つかりませんでした
英語は読めますか?国内だけじゃだめだよ。
0387385NGNG
>>386
早速のご回答ありがとうございました。
別の方法を考えてみます。
0388383NGNG
>>384
そうなんです。
お願いします。
0389即レスNGNG
>388
目的のパス調べてOpen,Getとか使う。
0390デフォルトの名無しさんNGNG
VB6+SP5です。
自作ソフトのバージョン情報を追加のフォームモジュールから行ったのですが、
バージョン情報を出している間メインフォームをロックしたいんですけどどうす
ればいいでしょうか?

メインフォーム側をロックしただけではALT+TABでアプリを切り替えたときなど
バージョン情報がメインの後ろ側に回ってしまい操作できなくなってしまいます。
0391390NGNG
訂正
メインフォーム側をロックしただけでは
↓
メインフォーム側の EnableをFalseにしただけでは
0392380NGNG
>>382
サンクスですちゃんと動きました!
どこ調べていいのやらさっぱりで・・・。
ありがとうございました。
0393_NGNG
>>390
Object.Show vbModal
ってVbModalつければそのフォームからフォーカス移せなくなったハズ。
だめならもっと技術ある人、指摘して下さい(w
0394393NGNG
あ、ここでのObjectってのは当然だけどそのバージョン情報のフォームの事ね。
0395390NGNG
>>393
即レスサンクス
これでおkですわ
0396デフォルトの名無しさんNGNG
か〜なり、低レベルの質問です。
VB5.0 ってWINXP で使えますか?
0397_NGNG
>>396
俺エラー出て使えなかった。
のでVB6買ったら直後に.NETとやらの話が出て・・・。
鬱だ
0398デフォルトの名無しさんNGNG
VB6です。
InetコントロールでWeb上のファイルを取得できると聞き、
調べてやってみたんですが、TextBoxに取得した文字列データ(htmlのソース)
を入れると改行されてません。横にめちゃくちゃ長くなっています。
そしてその文字列をコピーして、メモ帳に貼り付けてもそのままなんですが、
秀丸に貼り付けるとちゃんと改行されてきれいに表示されます。
どういうことなのでしょうか?またどのように対処すればいいですかね?
0399即レスNGNG
>398
改行の文字コードの違い。
ReplaceでVbCrLfに変換すれ。
0400デフォルトの名無しさんNGNG
>>398
漢字コードは、シフトJIS決め打ちでいいのかな。
JISやEUCのサイトもあるから、バイト配列で受信して、
変換するのが汎用的。その時、改行コードも変換。
0401398NGNG
>>399
早速のレスありがとうございます!
やってみた所
Text1.Text = Replace(Text1.Text, Chr(10), vbCrLf)
で見事に改行されました。
0402377NGNG
タイマー処理の件
>>378さん、>>382さん
レスありがとうございました。
って事はタイマー処理を抜ける時、タイマー.Enabled=Falseにしてしまえば、
それ以降、タイマー処理は起動されないんですよね<くどいって?(^^;汗
0403デフォルトの名無しさんNGNG
>>402
テストコード書いて試してみれば?
手元にVBが無いんだったらスマン
0404デフォルトの名無しさんNGNG
WinSockオブジェクトを使って2つのダイアログ間でテキストデータのやり取りをしているんですが、
クライアント側を終了させると再接続ができなくなってしまいます。
鯖側ではクライアントのクローズを感知したあと、
再びListen状態で待機しています。
再起動時のクライアント側でConnectしているんですが、
鯖はConnectionRequestイベントが発生していないみたいです。
何が原因何でしょう。
Win2KSP2、VB6SP5です
0405デフォルトの名無しさんNGNG
クライアント側を終了するときにcloseメソッドを実行してますか?
0406デフォルトの名無しさんNGNG
クライアント側でLocalPortを固定にしているとか?
0407デフォルトの名無しさんNGNG
VBでの関数の戻り値の初期値って自動的に0や""だったりするのですか?
Cでの経験でローカル変数は宣言直後はゴミが入っているような
感覚があっていままでずっと初期化コードを書いていたんですが…。
0408デフォルトの名無しさんNGNG
>>407
変数宣言時に以下にのように初期化される。
関数名も暗黙の変数のようなものなので同様。

Byte CByte(0)
Boolean False
Integer 0%
Long 0&
Single 0!
Double 0#
Currency 0@
Date #1899/12/30 00:00:00#
Object Nothing
String vbNullString
String * n String$(n, 0)
Variant Empty

0409デフォルトの名無しさんNGNG
Formの背景にbmp画像を表示したいのですが、
1つの小さい画像をいくつも並べて表示ってできますか?
いろいろ検索しても出てこなかったのですが…
0410デフォルトの名無しさんNGNG
>>407
VBは自動的に初期化されるよ。
0411デフォルトの名無しさんNGNG
TrueDBGrid6.0についての質問です。

ストレージモードでグリッドにデータを表示していますが、
行番号を識別する方法がわかりません。

rowプロパティでは画面に表示されている行しかカウント
してくれません。

グリッド全ての行を識別する方法を知ってる方は是非
教えて頂きたいのですが。よろしくお願い致します。

ちなみにVB6(SP5),Win98SE。
0412デフォルトの名無しさんNGNG
>>409
VBのSampleコードにそのものずばりがあるよ。
0413デフォルトの名無しさんNGNG
質問させていただきます。
実は同じテキストをたくさん必要とするようなコードを書いているんですが
デザイン時ではなくて実行時にオブジェクトを作成できると聞き、調べた所
SetとかNewとかいうのを使うとわかったのですが、具体的なやり方が・・・。
Text1を100個複製するにはどうやればいいのでしょうか?
具体的なソースを一部書いていただけると幸いなのですが。
欲を張りすぎですね(w やり方だけでもお願いします。
0414デフォルトの名無しさんNGNG
>>413
コントロール配列でHELP見よ
この場合
最低ひとつ 用意しないとだめ
例 text1(0)を 貼っておく

コントロールは コンテナが必要なため(単独で存在できない)
何か(まあ フォームか)に貼りつけておかないダメだからだ

あとは 自分でどぞ
HELPにあるぞ 
0415407NGNG
>>408,410
勉強になりました。ありがとうございました。
0416がいしゅつ?NGNG
谷尻のVBでDB本てさあ、在庫管理のIDがInteger型なんだよね。
3万件越えたら、じきにパンクするぞ。

それと、せっかくSQL文使ってるのに、SELECTだけかよ。
なんでSUMとかBETWEENとかじゃなくてVBのコードでやってんだよ。
0417デフォルトの名無しさんNGNG
>>416
谷尻本は読んでないのでわからんが、
入門者向けだから、mdb使ってるんでない?

>3万件越えたら、じきにパンクするぞ。
だったら、この心配はいるまい。

>なんでSUMとかBETWEENとかじゃなくてVBのコードでやってんだよ。
VBの説明がメインなんではないだろうか。
だから、いちいち説明するのが面倒なんじゃないかな。

とか言ってみるテスト。

0418416NGNG
>>417
MDBだけど、ADOでSQL文投げてる。変数名もmySQL。
Public cn As ADODB.Connection
Set rsAll = New ADODB.RecordSet 
rsAll.Open mySQL, cn

いちおうソートはSQLでやってた。

合計のやり方は、こんな感じ。
Do Until rsAll.EOF
 If (rsAll!日付 >= DateValue(ss) And _
    (rsAll!日付 <= DateValue(es) Then
     nyuuko = nyuuko + rsAll!入庫数
 End If
 rsAll.MoveNext
Loop
0419VBA歴3ヶ月。。NGNG
プログラマー板で質問したけど、ここに行けと言われて来ました。
VBAで非表示のセルを対象外にするには、どうしたら良いでしょうか?
朝までにツール作らないとならないので、よろしくお願いします。
0420デフォルトの名無しさんNGNG
>>418
SQL側にロジックを偏重させるのは嫌いだが、
rs!FieldName
なんて書き方してる時点で糞本決定。
rs.Fields("FieldName").Value と書け。
0421デフォルトの名無しさんNGNG
>>420
SUMとかBETWEENはSQLでやるべきだろ。パフォーマンスにかかわる。
mdbレベルならたいして変わらんかもしれんが。
0422デフォルトの名無しさんNGNG
VBのSockコントロールがリークばっかで使い物にならないんで、
自作しようと思うがどうだ。
ソース上げてもいい?
0423名無し募集中。。。NGNG
>>422
好きにしろよ
0424デフォルトの名無しさんNGNG

どなた様かリストボックスに羅列したものから選んだ任意の数字を
整数値として抜き出す方法を教えてくださいませ(泣)

しくしく。
0425デフォルトの名無しさんNGNG
>>424
clng(List1.List(List1.ListIndex))
0426デフォルトの名無しさんNGNG
Public Function SelectForRead(ByVal TimeOut As Long) As Long
Dim lngRet As Long
Dim fdRead As fd_set
Dim tv As timeval

'タイムアウトの設定
With tv
.tv_sec = TimeOut \ 1000
.tv_usec = TimeOut Mod 1000
End With
'fd_set構造体
With fdRead
.fd_count = 1
.fd_array(0) = m_hSocket
End With
lngRet = apiSelect(0, fdRead, ByVal 0&, ByVal 0&, tv)
m_hErrNo = apiWSAGetLastError()
If lngRet = tcsocSocketError Then
Err.Raise tcsocErrSelect, , mcstrErrSelect
End If
SelectForRead = lngRet

End Function


Public Function SelectForWrite(ByVal TimeOut As Long) As Long
Dim lngRet As Long
Dim fdWrite As fd_set
Dim tv As timeval

'タイムアウトの設定
With tv
.tv_sec = TimeOut \ 1000
.tv_usec = TimeOut Mod 1000
End With
'fd_set構造体
With fdWrite
.fd_count = 1
.fd_array(0) = m_hSocket
End With
lngRet = apiSelect(0, ByVal 0&, fdWrite, ByVal 0&, tv)
m_hErrNo = apiWSAGetLastError()
If lngRet = tcsocSocketError Then
Err.Raise tcsocErrSelect, , mcstrErrSelect
End If
SelectForWrite = lngRet

End Function
0427デフォルトの名無しさんNGNG
Private Function CastLongToInt(ByVal lngVal As Long) As Integer
CastLongToInt = CInt("&H" & Right$(Hex$(lngVal), 4))
End Function

Public Function Send(ByRef bBuff() As Byte, _
Optional ByVal Start As Long = 0, _
Optional ByVal BytesToSend As Long = -1) As Long

'BytesToSendの確認
If (BytesToSend < -1) Or (UBound(bBuff) - Start + 1 < BytesToSend) Then
'負の値が指定されている、またはデータ長より大きい
Err.Raise tcsocErrInvalidDataLen, , mcstrErrInvalidDataLen
ElseIf BytesToSend = -1 Then
'省略時はデータ長に等しくする
BytesToSend = UBound(bBuff) - Start + 1
End If
Send = apiSend(m_hSocket, bBuff(Start), BytesToSend, 0)
m_hErrNo = apiWSAGetLastError()

End Function


Public Function Recv(ByRef bBuff() As Byte, _
Optional ByVal Start As Long = 0, _
Optional ByVal BytesToRead As Long = -1) As Long

'BytesToReadの確認
If (BytesToRead < -1) Or (UBound(bBuff) - Start + 1 < BytesToRead) Then
'負の値が指定されている、またはデータ長より大きい
Err.Raise tcsocErrInvalidDataLen, , mcstrErrInvalidDataLen
ElseIf BytesToRead = -1 Then
'省略時はバッファ長に等しくする
BytesToRead = UBound(bBuff) - Start + 1
End If
Recv = apiRecv(m_hSocket, bBuff(Start), BytesToRead, 0)
m_hErrNo = apiWSAGetLastError()

End Function

'非同期接続
Public Function IOCTL(ByVal cmd As TcsocIOCtlCommand, ByVal arg As Long) As Long
Dim lngRet As Long

lngRet = apiIoctlsocket(m_hSocket, cmd, arg)
m_hErrNo = apiWSAGetLastError()
If lngRet Then
Err.Raise tcsocErrIoctlSocket, , mcstrErrIoctlSocket
End If
IOCTL = arg

End Function
0428デフォルトの名無しさんNGNG
Public Sub Socket(ByVal SocketType As TcsocSocketTypeConstants)

m_hSocket = apiSocket(AF_INET, SocketType, 0)
m_hErrNo = apiWSAGetLastError()
If m_hSocket = INVALID_SOCKET Then
Err.Raise tcsocErrSocket, , mcstrErrSocket
End If

End Sub


Public Sub CloseSocket()
Dim lngRet As Long

lngRet = apiCloseSocket(m_hSocket)
m_hErrNo = apiWSAGetLastError()
If lngRet Then
Err.Raise tcsocErrCloseSocket, , mcstrErrCloseSocket
Else
'ソケットが閉じられたことを明示的に示すため、
'ハンドルにINVALID_SOCKETを代入しておく。
m_hSocket = INVALID_SOCKET
End If

End Sub

Public Function Connect(ByVal RemoteAddr As String, _
ByVal RemotePort As Long) As Long
Dim lngIPAddr As Long
Dim sain As sockaddr_in

'ドット区切りアドレス文字列を4バイト整数に変換する。
lngIPAddr = apiInet_addr(RemoteAddr)
If lngIPAddr = INADDR_NONE Then
'アドレス文字列として認識できなかったので、ホスト名として解決を試みる。
lngIPAddr = InternalGetHostByName(RemoteAddr)
If lngIPAddr = INADDR_NONE Then
Err.Raise tcsocErrGetHostByName, , mcstrErrGetHostByName
End If
End If

'ポート番号の確認
If RemotePort < 1 Or RemotePort > 65535 Then
Err.Raise tcsocErrInvalidPortNo, , mcstrErrInvalidPortNo
End If

'パラメータをセットしてconnectを呼び出す
With sain
.sin_family = AF_INET
.sin_port = apiHtons(CastLongToInt(RemotePort))
.sin_addr = lngIPAddr
End With
Connect = apiConnect(m_hSocket, sain, LenB(sain))
m_hErrNo = apiWSAGetLastError()

End Function
0429デフォルトの名無しさんNGNG
なぜ自作?
0430デフォルトの名無しさんNGNG
Public Function GetHostByName(ByVal HostName As String) As String
Dim lngAddr As Long
Dim lpChar As Long
Dim strBuff As String
Dim nBuff As Long
'gethostbynameの呼び出し
lngAddr = InternalGetHostByName(HostName)
If lngAddr = INADDR_NONE Then
Err.Raise tcsocErrGetHostByName, , mcstrErrGetHostByName
End If
'戻り値はネットワークバイトオーダーの4バイト整数なので、
'ドット区切り文字列に変換する
lpChar = apiInet_nta(lngAddr)
'lpCharが指す文字列の文字数を調べ、バッファを確保してコピー
nBuff = apiLstrlen(lpChar)
strBuff = String$(nBuff, vbNullChar)
apiMoveMemory ByVal strBuff, ByVal lpChar, nBuff
GetHostByName = strBuff
End Function
Private Function InternalGetHostByName(HostName As String) As Long
Dim lphe As Long
Dim he As HOSTENT
Dim lngAddr As Long
Dim pAddr As Long
lphe = apiGethostbyname(HostName)
m_hErrNo = apiWSAGetLastError()
If lphe Then
apiMoveMemory he, ByVal lphe, LenB(he)
apiMoveMemory pAddr, ByVal he.h_addr_list, 4
apiMoveMemory lngAddr, ByVal pAddr, 4
InternalGetHostByName = lngAddr
Else
InternalGetHostByName = INADDR_NONE
End If
End Function
0431デフォルトの名無しさんNGNG
Public Property Let hErrNo(ByVal vData As Long)
'プロパティに値を代入するときに、代入式の左辺で使用します。
'Syntax: X.test = 5
m_hErrNo = vData
End Property
Public Property Get hErrNo() As Long
hErrNo = m_hErrNo
End Property
Private Sub Class_Initialize()
Dim lngRet As Long
Dim wsad As WSAData
'Winsock初期化:&H101でバージョン1.1を要求する。
lngRet = apiWSAStartup(&H101, wsad)
m_hErrNo = apiWSAGetLastError()
If lngRet <> 0 Then
Err.Raise tcsocErrWSAStartup, , mcstrErrWSAStartup
End If
'ソケットハンドル初期値
m_hSocket = INVALID_SOCKET
End Sub
Private Sub Class_Terminate()
'Winsock終了処理
apiWSACleanup
End Sub
Public Function GetHostByAddr(ByVal strIPAddr As String) As String
Dim lngIPAddr As Long
Dim he As HOSTENT
Dim lphe As Long
Dim strBuff As String
Dim nBuff As Long
'ドット区切りアドレス文字列を4バイト整数に変換する。
lngIPAddr = apiInet_addr(strIPAddr)
If lngIPAddr = INADDR_NONE Then
Err.Raise tcsocErrInvalidIPAddr, , mcstrErrInvalidIPAddr
End If
'gethostbyaddrの呼び出し
lphe = apiGethostbyaddr(lngIPAddr, 4, AF_INET)
m_hErrNo = apiWSAGetLastError()
If lphe = 0 Then
Err.Raise tcsocErrGetHostByAddr, , mcstrErrGetHostByAddr
End If
'戻り値のポインタが指す先の中身をheにコピーする。
apiMoveMemory he, ByVal lphe, LenB(he)
'h_nameの文字数を調べ、バッファを確保してコピー
nBuff = apiLstrlen(he.h_name)
strBuff = String$(nBuff, vbNullChar)
apiMoveMemory ByVal strBuff, ByVal he.h_name, nBuff
GetHostByAddr = strBuff
End Function
0432デフォルトの名無しさんNGNG
'_/_/_/_/_/_/_/_/_/_/_/_/API宣言部_/_/_/_/_/_/_/_/_/_/_/_/
Private Declare Function apiWSAStartup Lib "wsock32.dll" Alias "WSAStartup" ( _
ByVal wVersionRequired As Integer, ByRef lpWSAData As WSAData) As Long
Private Declare Function apiWSACleanup _
Lib "wsock32.dll" Alias "WSACleanup" () As Long
Private Declare Function apiWSAGetLastError _
Lib "wsock32.dll" Alias "WSAGetLastError" () As Long
Private Declare Function apiGethostbyaddr Lib "wsock32.dll" Alias "gethostbyaddr" ( _
ByRef addr As Long, ByVal lenAddr As Long, ByVal typeAddr As Long) As Long

Private Declare Function apiInet_addr Lib "wsock32.dll" Alias "inet_addr" ( _
ByVal cp As String) As Long
Private Declare Sub apiMoveMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
ByRef lpDest As Any, ByRef lpSrc As Any, ByVal nBytes As Long)
Private Declare Function apiLstrlen Lib "kernel32" Alias "lstrlenA" ( _
ByVal lpString As Any) As Long
Private Declare Function apiGethostbyname Lib "wsock32.dll" Alias "gethostbyname" ( _
ByVal Name As String) As Long
Private Declare Function apiInet_nta Lib "wsock32.dll" Alias "inet_ntoa" ( _
ByVal inaddr As Long) As Long
Private Declare Function apiSocket Lib "wsock32.dll" Alias "socket" ( _
ByVal af As Long, ByVal soctype As Long, ByVal protocol As Long) As Long
Private Declare Function apiCloseSocket Lib "wsock32.dll" Alias "closesocket" ( _
ByVal s As Long) As Long
Private Declare Function apiConnect Lib "wsock32.dll" Alias _
"connect" (ByVal s As Long, ByRef Name As sockaddr_in, ByVal namelen As Long) As Long
Private Declare Function apiSend Lib "wsock32.dll" Alias "send" ( _
ByVal s As Long, ByRef buf As Any, ByVal lenbuff As Long, ByVal flags As Long) As Long
Private Declare Function apiRecv Lib "wsock32.dll" Alias "recv" ( _
ByVal s As Long, ByRef buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long
Private Declare Function apiHtonl Lib "wsock32.dll" Alias "htonl" ( _
ByVal hostlong As Long) As Long
Private Declare Function apiHtons Lib "wsock32.dll" Alias "htons" ( _
ByVal hostshort As Integer) As Integer
Private Declare Function apiIoctlsocket Lib "wsock32.dll" Alias "ioctlsocket" ( _
ByVal s As Long, ByVal cmd As Long, ByRef argp As Long) As Long
Private Declare Function apiSelect Lib "wsock32" Alias "select" (ByVal nfds As Long, _
ByRef readfds As Any, ByRef writefds As Any, ByRef exceptfds As Any, _
ByRef TimeOut As timeval) As Long
Private mcstrErrSelect As String
Private m_hSocket As Long
Private m_hErrNo As String
0433デフォルトの名無しさんNGNG
'Winsock API呼び出しのエラー文字列
Const mcstrErrWSAStartup = "WSAStartupが失敗しました。"
Const mcstrErrSocket = "socketが失敗しました。"
Const mcstrErrCloseSocket = "closesocketが失敗しました。"
Const mcstrErrGetHostByAddr = "gethostbyaddrが失敗しました。"
Const mcstrErrGetHostByName = "gethostbynameが失敗しました。"
Const mcstrErrIoctlSocket = "ioctlsocketが失敗しました。"
'ユーザー入力値のエラー文字列
Const mcstrErrInvalidIPAddr = "アドレスが不正です。"
Const mcstrErrInvalidPortNo = "ポート番号が不正です。"
Const mcstrErrInvalidDataLen = "データ長が不正です。"
'GetHostByAddr用(API)定数
Const AF_INET = 2
'WSAData構造体用定数
Const WSADESCRIPTION_LEN = 256
Const WSASYS_STATUS_LEN = 128
'その他定数
Const INADDR_NONE = &HFFFFFFFF
'_/_/_/_/_/_/_/_/_/_/_/_/構造体宣言部_/_/_/_/_/_/_/_/_/_/_/_/
Private Type WSAData
wVersion As Integer
wHighVersion As Integer
szDescription(WSADESCRIPTION_LEN) As Byte
szSystemStatus(WSASYS_STATUS_LEN) As Byte
iMaxSockets As Integer
iMaxUdpDg As Integer
lpVendorInfo(1) As Integer
End Type
Private Type sockaddr_in
sin_family As Integer
sin_port As Integer
sin_addr As Long
sin_zero(7) As Byte
End Type
Private Type HOSTENT
h_name As Long
h_aliases As Long
h_addrtype As Integer
h_length As Integer
h_addr_list As Long
End Type
Private Type fd_set
fd_count As Long
fd_array(FD_SETSIZE - 1) As Long
End Type
Private Type timeval
tv_sec As Long
tv_usec As Long
End Type
0434デフォルトの名無しさんNGNG
Public Enum TcsocIOCtlCommand
tcsocFIONREAD = &H4004667F
tcsocFIONBIO = &H8004667E
End Enum
Private Const FD_SETSIZE = 64
Public Enum TcsocErrorConstants
'SOCKET_ERROR定数
tcsocSocketError = -1
'Winsock API呼び出しのエラー
tcsocErrWSAStartup = vbObjectError + 1000
tcsocErrSocket
tcsocErrCloseSocket
tcsocErrIoctlSocket
tcsocErrGetHostByAddr
tcsocErrGetHostByName
tcsocErrSelect
'ユーザー入力値のエラー
tcsocErrInvalidIPAddr = vbObjectError + 1100
tcsocErrInvalidPortNo
tcsocErrInvalidDataLen
End Enum
Public Enum TcsocSocketTypeConstants
tcsocSockStream = 1
tcsocSockDgram = 2
End Enum
Const INVALID_SOCKET = Not 0&
0435デフォルトの名無しさんNGNG
'TCPエラーコード
Public Enum TcsocWSAErrorConstants
tcsocWSABASEERR = 10000
tcsocWSAEINTR = tcsocWSABASEERR + 4
tcsocWSAEBADF = tcsocWSABASEERR + 9
tcsocWSAEACCES = tcsocWSABASEERR + 13
tcsocWSAEFAULT = tcsocWSABASEERR + 14
tcsocWSAEINVAL = tcsocWSABASEERR + 22
tcsocWSAEMFILE = tcsocWSABASEERR + 24
tcsocWSAEWOULDBLOCK = tcsocWSABASEERR + 35
tcsocWSAEINPROGRESS = tcsocWSABASEERR + 36
tcsocWSAEALREADY = tcsocWSABASEERR + 37
tcsocWSAENOTSOCK = tcsocWSABASEERR + 38
tcsocWSAEDESTADDRREQ = tcsocWSABASEERR + 39
tcsocWSAEMSGSIZE = tcsocWSABASEERR + 40
tcsocWSAEPROTOTYPE = tcsocWSABASEERR + 41
tcsocWSAENOPROTOOPT = tcsocWSABASEERR + 42
tcsocWSAEPROTONOSUPPORT = tcsocWSABASEERR + 43
tcsocWSAESOCKTNOSUPPORT = tcsocWSABASEERR + 44
tcsocWSAEOPNOTSUPP = tcsocWSABASEERR + 45
tcsocWSAEPFNOSUPPORT = tcsocWSABASEERR + 46
tcsocWSAEAFNOSUPPORT = tcsocWSABASEERR + 47
tcsocWSAEADDRINUSE = tcsocWSABASEERR + 48
tcsocWSAEADDRNOTAVAIL = tcsocWSABASEERR + 49
tcsocWSAENETDOWN = tcsocWSABASEERR + 50
tcsocWSAENETUNREACH = tcsocWSABASEERR + 51
tcsocWSAENETRESET = tcsocWSABASEERR + 52
tcsocWSAECONNABORTED = tcsocWSABASEERR + 53
tcsocWSAECONNRESET = tcsocWSABASEERR + 54
tcsocWSAENOBUFS = tcsocWSABASEERR + 55
tcsocWSAEISCONN = tcsocWSABASEERR + 56
tcsocWSAENOTCONN = tcsocWSABASEERR + 57
tcsocWSAESHUTDOWN = tcsocWSABASEERR + 58
tcsocWSAETOOMANYREFS = tcsocWSABASEERR + 59
tcsocWSAETIMEDOUT = tcsocWSABASEERR + 60
tcsocWSAECONNREFUSED = tcsocWSABASEERR + 61
tcsocWSAELOOP = tcsocWSABASEERR + 62
tcsocWSAENAMETOOLONG = tcsocWSABASEERR + 63
tcsocWSAEHOSTDOWN = tcsocWSABASEERR + 64
tcsocWSAEHOSTUNREACH = tcsocWSABASEERR + 65
tcsocWSAENOTEMPTY = tcsocWSABASEERR + 66
tcsocWSAEPROCLIM = tcsocWSABASEERR + 67
tcsocWSAEUSERS = tcsocWSABASEERR + 68
tcsocWSAEDQUOT = tcsocWSABASEERR + 69
tcsocWSAESTALE = tcsocWSABASEERR + 70
tcsocWSAEREMOTE = tcsocWSABASEERR + 71
tcsocWSAEDISCON = tcsocWSABASEERR + 101
tcsocWSASYSNOTREADY = tcsocWSABASEERR + 91
tcsocWSAVERNOTSUPPORTED = tcsocWSABASEERR + 92
tcsocWSANOTINITIALISED = tcsocWSABASEERR + 93
tcsocWSAHOST_NOT_FOUND = tcsocWSABASEERR + 1001
tcsocWSATRY_AGAIN = tcsocWSABASEERR + 1002
tcsocWSANO_RECOVERY = tcsocWSABASEERR + 1003
tcsocWSANO_DATA = tcsocWSABASEERR + 1004
End Enum
0436デフォルトの名無しさんNGNG
あーあ
0437デフォルトの名無しさんNGNG
Listenが無い
0438デフォルトの名無しさんNGNG
Win98SEで作ったソフトがWinXPで上手く動きません。
MAPIを使ってメールの配信をするソフトなんですが、
サーバーではじかれてエラーになります。

原因としてどんな事が考えられますか?
0439424NGNG
>425様

感謝至極であります(感涙)
0440デフォルトの名無しさんNGNG
ASM>C++>C>PASCAL>JAVA>COBOL>N-88BASIC>>>>>>>>>>>VB
0441デフォルトの名無しさんNGNG
>426
使い方分からん。
全部コピペして、新規クラスに貼り付けた。
エラーが出るので、Private Const FD_SETSIZE = 64 の行を
一番上のほうに持ってきた。
とりあえずGetHostNameは動いた。

HTTPでページをとってきてDebug.Printするサンプルか何か欲しいなあ。
どういう順番でメソッドを呼び出すかだけでも。
0442424NGNG
やっぱし動かないや(泣)
0443デフォルトの名無しさんNGNG
くだらない事なんですが、VBの開発画面でプロパティとかのウィンドウは
インテリマウスのホイールが効くのにエディタ画面で効かないのですが
何か設定があるのでしょうか?

隣の机の人がエディタでも使えるので一寸気になりまして・・・・
0444デフォルトの名無しさんNGNG
気にすんなYO!
0445デフォルトの名無しさんNGNG
オプションボタンのTabStopをFalseにしても、実行時にValueがTrueの状態になると
Tabキーでフォーカスがオプションボタンに飛んでしまいます。
これを回避する方法を教えてください。
0446デフォルトの名無しさんNGNG
>>443
IntelliPoint入れてるかい?
0447デフォルトの名無しさんNGNG
VS.NETとVS6を同じパソコンに入れても大丈夫ですか?
0448デフォルトの名無しさんNGNG
>>443
IntelliMouseなら動くよ。
ただし、ドライバのバージョンは3.1以上な。
0449デフォルトの名無しさんNGNG
>>445
ほんとだね。TabStopがTrueになるようなので、

Option1.Value = True
Option1.TabStop = False

でどうかな。うちではOKだったYO!

>>447
OK.
0450445NGNG
>>449
フォームロード時にコードで指定するということでしょうか。
最初はOKでしたが、一回オプションボタンをクリックすると
元に戻ってしまいます・・。
なんとなく解決したので報告を。
テキストボックスを一個置いて、
Private Sub Text1_GotFocus()
Option1.TabStop = False
End Sub
と書くと大丈夫っぽいです。
0451hebogrammerNGNG
当方ただいま本当に困っています。

VB 6.0 を用いてボタンをクリックしたら Windows2000 の PC を
ShutDown (完全にパソコンが停止した状態)にしたいのですが、
どうすればよろしいでしょうか?
市販の本の ShutDown プログラム (ExitWindowsEx を使うやつ)
を試したのですが、パソコンに電源が残ったままログイン画面に
なっています。

何か解決方法はありますでしょうか?よろしくお願い致します。
0452447NGNG
>>449
VBPファイルの関連付けは、やっぱり後から入れた方になっちゃうんですか?
0453デフォルトの名無しさんNGNG
>>452
.NETの拡張子はsln だから大丈夫。
つーか C# にしる。
0454デフォルトの名無しさんNGNG
Open 〜でWeb上のファイルからデータの読み込みできますか?
0455447NGNG
>>453
そうなんですか。ソレは安心。
VB始めたばっかなので、もうちょっとVBやらせてください。
0456デフォルトの名無しさんNGNG
>>451
ExitWindowsExだけですむのは、Win9x系。
NT系の場合、InitiateSystemShutdown を使う。
特権を要求して、自プロセスに設定する必要がある。
0457デフォルトの名無しさんNGNG
>>454
一般的には出来ない。
インターネット・トランスファー・コントロールでダウンロードするしかない。
0458デフォルトの名無しさんNGNG
質問です
VB6で
文字列のHTMLソースをHTMLドキュメントとしてWebBrowserオブジェクト(IEでもいいけど)
に表示させる手が見つかりません

Winsockで鯖からHTMLソースを取得はできましたが、これをブラウズするには?
一度 HTMLファイルで保存して このファイルを 読むしかないでしょうか?

0459デフォルトの名無しさんNGNG
WebブラウザコントロールってあるYO!
0460デフォルトの名無しさんNGNG
しかもSocketの知識不要。
プロジェクト−コンポーネントからMicrosoft Internet Controlsをえらんで
WebBrowserコントロールを貼り付けてあとは適当に。
0461458NGNG
え〜と
英語のMSDNの手引きでは
すでにあるHTMLドキュメントに対して
WebBrowser1.Document.body.innerHTML = "タグなど"
などで あとづけ書き込みは 分かります
空白(about:blank)を作っておいて BODY内だけは できますが…

そうではなくて HTMLソース文字列から HTMLドキュメントを 純粋に作る法
これを IEなどに 表示させるには?
MSHTML 読んでも… VCじゃないと だめなの?
0462458NGNG
いいえ みなさん
WebBrowserコントロールは わかりますが…

セキュリティに徹したものを 目指すために
まず HTMLを解析するために ソースで取得してるのです
 
0463デフォルトの名無しさんNGNG
>>462
何をしたいのかわからん。

>HTMLソース文字列から HTMLドキュメントを 純粋に作る法
HTMLソース=HTMLドキュメントだぞ。

>これを IEなどに 表示させるには?
そのままOpenするだけ。

それとも、最終的にはIEで表示するが、その前に
危険なタグをフィルタ処理したいとか?
0464458NGNG
>>463
そうです
<IMG>や<OBJECT>など チェックしてから IEのブラウズ機能を使いたのです

例えば s="<HTML><HEAD></HEAD><BODY>テスト</BODY></HTML>"
と VBで文字列で持っていて これをそのままブラウズしたいわけです

WenBrowserのプロパティDocumentは 読み出しONLYで
そもそも このDocumentオブジェクトをソースから どうやって定義すんだろ?
いやん 英語がイタイ もう イヤン

0465デフォルトの名無しさんNGNG
あきらめれば?
0466458NGNG
なんとか、やってみる
できたら報告する
気長に待ってテネ
0467デフォルトの名無しさんNGNG
>>464
その手のツールがどうやってるか考えればわかると思うけど、
プロクシになって、HTMLを加工してからIEに渡してる。

0468デフォルトの名無しさんNGNG
!
串!
なりほど
せっかくWinsock使ってるんだから
串になればいいのか
そか WebBrowserのナビゲートで ダミー串通せばいいのか
その手も 考えてみます!!
0469デフォルトの名無しさんNGNG
串実装〜しないと… クッキーは無視しよw
英語MSDN行ってきます(古い記事もあたってみよ)
0470404NGNG
>>405-406
亀レスすいません。
>>406さんの言うとおり、ローカルポートを固定してました。
解決です。
ありがとうございました。
0471デフォルトの名無しさん NGNG
.aspが拡張子のファイルを仕様書に立ち上げてくれるツールって
どこかにありますか?VB仕様書工房だと.vbpが拡張子のやつじゃないと
駄目みたいなので・・・
0472デフォルトの名無しさんNGNG
>>466
加工したHTMLドキュメントを適当なフォルダに保存して、
WebBrowser1.Navigate "file:///" & ファイルへのフルパス
じゃダメなの?

>>471
聞いたことない
0473デフォルトの名無しさんNGNG
いま、VBScriptを使ってSendmailを送るようなものを作ってみたいと
思っています。
そこで、メールヘッダのFromに表示されるメールアドレスと、Return-Pathのアドレスを違うものにして
送りたくて、四苦八苦しています。

また参考になるページとかあったら教えて下さい。宜しくお願いします。
0474デフォルトの名無しさんNGNG
つまりSPAMを送りたいと。
0475_NGNG
VB6で質問です!
タスクバーに常駐させるプログラムを書いたのです
これを終了するときに、
ちゃんとサブクラス化を終了して正常にEndさせてるのですが
タスクバーにアイコンが残ったままになってます。
でもそれにカーソルを合わせるとパッと消えます。
プログラムが終了した時点でアイコンをタスクバーから消せないのでしょうか?
よろしくお願いしますです。
0476デフォルトの名無しさんNGNG
>>475
消してから終わらないとだめだよ
0477デフォルトの名無しさんNGNG
Unload Me
End
0478473NGNG
>474
SPAMになるんですか!?
用は宛先不明のメールを送信者とは別のアドレスに送りたいんです。
いろいろ調べてたら、SMTPの仕様とかで出来ないとかってどっかで読んだんですが...
0479デフォルトの名無しさんNGNG
>宛先不明のメールを送信者とは別のアドレスに送りたい
のに、
>メールヘッダのFromに表示されるメールアドレスと、Return-Pathのアドレスを違うものに
する必要あるのか?
0480デフォルトの名無しさんNGNG
>>475
ちゃんと、Form_QueryUnloadで
Shell_NotifyIcon(NIM_DELETE, NoftyIconData)
を呼ばないと駄目よ。

>>478
ふつう、その技はSPAMに使う。i-mode宛にFromとToを同じにして送るとか。
自力だけで解決できないなら、あきらめてこの質問はしない方がいい。
0481473NGNG
言い方悪いのかなぁ
エラーメールを任意のReturm-Pathに返したいということなんですが...
VBSじゃ無理かなぁ
0482473NGNG
かぶりました。了解です。
0483デフォルトの名無しさんNGNG
>>473と>>478でやりたいことが一貫してないなw
0484デフォルトの名無しさんNGNG
>>481
言い方が悪いw
その場合は「宛先不明で戻ってきたメール」といわなきゃ。
0485475NGNG
言い方が悪かったですわかりにくくてすみませんでした。
まず常駐させて、終了させる前にちゃんと


Dim NotifyIcon As NOTIFYICONDATA
'タスクトレイのアイコンを削除------------------------

With NotifyIcon
.cbSize = LenB(NotifyIcon)
.hwnd = Me.hwnd
.uID = 10
End With

Call Shell_NotifyIcon(NIM_DELETE, NotifyIcon)
DoEvents
'-------------------------------------------------

'サブクラス化の終了
Call SetWindowLong(Me.hwnd, GWL_WNDPROC, lpOldWndProc)
とやっています。483さんのようにForm_QueryUnloadで。
それで確かに常駐は解除されてますし、ちゃんと終了されてるんです。
なのにアイコンが消えてない・・・

終了されてるのにアイコンが残る っていう現象です
(ウィンドウは既に消されているのに表示だけ残るあれみたいなものかと)
0486デフォルトの名無しさんNGNG
>>485
Endで終了させちゃったりしちゃったりしてたりしないの?
0487デフォルトの名無しさんNGNG
>>481
RFC 見れ。Return-Path は、送信側でつけるもんじゃねーぞ、ヴァカ。

> エラーメールを任意のReturm-Pathに返したいということなんですが...
そんなもん SPAM か ML しか必要ねーだろうが。何したいのか、書けるもんな
ら書いてみ。
0488デフォルトの名無しさんNGNG
InitiateSystemShutdown を使って WIN2000 系の自分の PC を
Shutdown させたいのですが、やり方が分かりません (ToT)
誰か教えてください
0489デフォルトの名無しさんNGNG
488
ExitWindowsExつかったら?
0490デフォルトの名無しさんNGNG
>485
既知の問題。
解決法は、Formにフォーカスを当てるんだったかな。ああ、ど忘れ。
FormのVisibleをTrueにするか、HideのままNormalSizeに戻すかしてみたら?
0491デフォルトの名無しさんNGNG
>488
せっかくヒント出したのに、それはないだろう。
検索しろよ。ヒットするから。
0492デフォルトの名無しさんNGNG
>>489
>>456 見てねーのか ?
0493デフォルトの名無しさんNGNG
>492
フォローどうも。
再質問を明記しなかった488が悪いんだけど。
WinNT系では、特権の取得は避けて通れないから、きっちり押さえないと。

と思ったら、今度はV友で質問か。
人のヒントを自分で調べたかのように書いて。
0494デフォルトの名無しさんNGNG
Visual C++やC++に関するお勧め本、
これだけは読んどけって言う教本ありますか?
Javaしか扱ったことない。
0495デフォルトの名無しさんNGNG
Private Sub Command2_Click()
Picture1.Enabled = True
Picture2.Enabled = True
Picture3.Enabled = True
  〜
Picture9.Enabled = True

のPicture.Enabledを一つにまとめるにはどうしたら良いですか?
0496デフォルトの名無しさんNGNG
>>495
コントロール配列にしる!!
0497デフォルトの名無しさんNGNG
>>496
すいません、何すかそれ
0498デフォルトの名無しさんNGNG
>497
ヘルプ見ろ! コントロール配列は基本だから。
もっと簡単にしたかったら、コンテナ使う。1行ですむ。
0499デフォルトの名無しさんNGNG
>>497
何でも聞くんじゃなくて、MSDNのヘルプ見ろよ…。

for i=0 to 9
 Picture(i).Enabled = True
next

Indexプロパティに値を設定すればできる。
0500デフォルトの名無しさんNGNG
コードじゃなくて、概念の問題。
変数の配列すらわからなかったら、
コントロール配列を理解するのはむずかしいかも。
0501デフォルトの名無しさんNGNG
コレクションもあるよ(´∀` )
0502デフォルトの名無しさんNGNG
Label1.Caption = Winsock1.LocalIP
で自機のIPを表示させようと思ったのですが、二枚イーサネットカードを差していて、いらん方のIP(192.168.0.*)が表示されてしまいます。どうやったらもう一枚のカードに割り当ててあるIPを取得できるでしょう
0503デフォルトの名無しさんNGNG
>502
イーサを逆に挿す。PCIスロットの若いほうが取得されるから。

ってことじゃない?
それなら、どういうネットワークなのか書かないと。
IPHLPAPI.DLL を叩けば、IPテーブルは取得できるけど。
ざっと100行ぐらい。
0504デフォルトの名無しさんNGNG
VB6のDLL作成について質問です。
新規作成画面で"ActiveX DLL"と"ActiveX Document DLL"という2種類があるのですが、
VC++で言うところの"Win32 Dynamic-Link Library"にあたるのはどちらでしょうか?
0505デフォルトの名無しさんNGNG
>>504
VBでは"いわゆるDLL"は作れないと聞いたが。
0506504NGNG
>>505
なんですとーΣ( ̄▽ ̄;)
即レスありがとうです。
0507デフォルトの名無しさんNGNG
>>506
確かVBは中間コードまでしか書き出さないんじゃなかった?
Javaみたいに。
だからだと思う。
0508デフォルトの名無しさんNGNG
DLLを使うために別途VBのDLLを用意しなければならないってのも変な話だしな。
0509デフォルトの名無しさんNGNG
>>507
それはVB4まで。
VB5とVB6はネイティブコードを吐く。

0510hebogrammerNGNG
>>491
一応いろいろと検索してみて、作ってみたりしました。
しかし、InitiateSystemShutdown の第1引数にどのように
設定してよいのやら分からず困ってます。(-_-;)
0511デフォルトの名無しさんNGNG
なんか'97年あたりで時間の流れが止まってる人が混じってるみたいですねぇ
0512ぷっちんぷりんNGNG
こんにちわ。
TreeViewの背景色を自由に変えたいのですが
プロパティが無いです。API調べてみたけどわかりません。
優秀なみなさん、教えて下さい。
0513デフォルトの名無しさんNGNG
>>512
色じゃなくて画像だけど…
http://www.users.gr.jp/ml/archive/vb/VB24.asp
サブクラス化するしかないのでは?
0514デフォルトの名無しさんNGNG
>>508
うそつくでねぇ。VBからはDLLもActiveX DLLも使える。普通のDLLが作れないだけだよ。
VCからVBのDLLが使いたければActiveX DLLを使うようにコーディングすればいいだけ。
0515まとれす ◆mato/KTI NGNG
久しぶりのカキコ。トリップも変更した。

>>504
無理だ

>>507
関係ない

>>510
つか、ExitWindowsEx()の方がいいぞ

>>513
ツリービューのメッセージでできなければ、>>513のいうとおりサブクラス化だな

>>514
>>508の言いたいのは、そういうことじゃないと思うぞ
0516デフォルトの名無しさんNGNG
>>515
おお、まとれすだ
0517デフォルトの名無しさんNGNG
ふつーに Winsock を使い、

Private Sub Form_Load()
WinsockServer.Close
WinsockServer.LocalPort = 1229 'ポートを設定
WinsockServer.Listen
End Sub

Private Sub WinsockServer_ConnectionRequest(ByVal requestID As Long)
WinsockServer.Close '接続を閉じて新しい接続を受け付ける
WinsockServer.Accept requestID 'requestIDをパラメータにしてAcceptメソッドを呼び出す
lblServerStatus.Caption = "Be connected from " & WinsockServer.RemoteHostIP '接続が成功したことを知らせます
WinsockServer.SendData "hello, again"
End Sub

としたのですが、個のサーバが 192.168.0.255 のブロードキャストアドレスに
反応しません。どうしてですか?
0518517NGNG
あと、今日からVBを使い始めたのですが、設定ファイル(*.ini)を

[Buz]
Foo=Bar

みたいな形でやりたいんですけど、定石のアルゴリズムってありますか?
っていうか、もしかして関数かコンポーネントありますか?
0519デフォルトの名無しさんNGNG
>>518
1行読み込んではsplit…
0520デフォルトの名無しさんNGNG
>>518 *.ini
API使うだ。
標準モジュールにしたものや
クラスモジュールにしたものが
あちこちで配布されてるだ。

おらWinsockは使ったこと無いだ。きっと他のエライ人が教えてくれるだ。
0521517NGNG
ありがとうございました。自前で組んだほうが早そうですね。
CじゃなくPerlでもないので面倒くさそうですけど。
0522デフォルトの名無しさんNGNG
>>517
UDPとTCPの区別はついていますか?
0523デフォルトの名無しさんNGNG
>>518
GetPrivateProfileStringAPIをしらないのですか?
0524デフォルトの名無しさんNGNG
>>517
おら田舎もんでしらねがったけど、都会のネットワークじゃ
ブロードキャストアドレスに投げたパケットをTCPで拾えるんだべが?
同一ネット内に複数サーバがあったらどないすんだべがな。
0525ディフォルトの名無しさそNGNG
VB6 WinXP です。
大量にいくつもの処理を平行して行いたい事がありまして、
調べているとマルチスレッド、ということにたどり着きました。
さらにそれについて調べるとAddressOf、CreateThread API等がキーのようです

質問はここからなのですが
・VB6環境でマルチスレッドは実現可能でしょうか?
・それによって本当に高速化するのでしょうか?
・具体的にマルチスレッドとはどのようなものなのでしょうか?
多分ヘタレなこと聞いてると思うんですがお願いいたします〜。
0526デフォルトの名無しさんNGNG
>503
ありがとうございます。一応、それでしのげました。

後一つ、ダイアルアップ接続でつないだ時のIPはどうやって拾うのでしょうか?
どなたか教えてください。
0527デフォルトの名無しさんNGNG
>>525
高速化されるかどうかは、具体的にどういう処理をするか、
何が理由で遅くなっているか、による。

ムダな空ループとかは論外として、CPUが100%占有される処理なら、
わざわざマルチスレッドにするだけの意味はない。
高速なハードに替えるとか、専用鯖を立てて分散処理するほうが確実。
0528デフォルトの名無しさんNGNG
VBとSQLを使ってグリッドにAccess2000のテーブルを表示したいのですが
テキストなんかに1レコードずつ表示するのはできるのですが
グリッドにまとめて表示するというのができません。
つまり、上のテキストで現在のレコードの表示に対して、
下のグリッドそのレコードが選択反転させたいのですが、教えてください

よろしければ詳しく乗ってるページとかってないですか?
0529デフォルトの名無しさんNGNG
>>526
グローバルIPの取得ね。
VBから利用できるDLLがベクターとかでも公開されてるけど、
ipconfig の結果をファイルにリダイレクトするほうが
2枚挿しの時は確実かも。
0530まとれす ◆mato/KTI NGNG
>>525
基本的に、マルチスレッドにしたからといって速くなるわけじゃない。
SMPなら別だが。

んで、VBからだが、はっきり言ってお勧めできない。まだ、マルチ
プロセスのほうがいいだろう。

>>528
ミドルウェアは何だ?

ADO、DAOならデータコントロールを使って、グリッドのDataSourceに
設定するだけだ

反転云々については、Bookmarkを使えばできる
0531デフォルトの名無しさんNGNG
アウトルックの受信トレイをクリックしたときに表示される着信メールのリストは
フレキシブルグリッドを使っているのですか?
それとも別のコントロール?
ああいう感じのリスト表示をさせたいのですが。
0532親子NGNG
他プロセスが持っているウインドウを、自分が作成したウインドウの
親ウインドウに設定したいんですけど、何か良い方法ありませんか?
WIN32APIの“setparent”を使うかと思ったんですけど、MSDNを
見ると、親ウインドウと子ウインドウは、同一アプリケーション上に
なければならないと書いてありました。
無理ですかね・・・
0533まとれす ◆mato/KTI NGNG
>>531
今、手元にOutlookがないので確認できないけど、リストビューとかじゃないのか?

>>532
確かに、MSDNにはそのように書かれている。が、可能だったりする。どんな不具合
がでるのかはわからんが
0534デフォルトの名無しさんNGNG
>>531
OutlookはVBで作られていない。
Spy++ では、キャプション: "表" クラス: SUPERGRID
0535デフォルトの名無しさんNGNG
おお!?
まとれすだ (´∀` )
0536デフォルトの名無しさんNGNG
お聞きしたいことが有るのですが、

Dim OBJ_EX As Object 'エクセルファイルを操作する為の変数
〜〜省略〜〜
OBJ_EX.Workbooks.Add "シート名"

と書くとき、OBJ_EX. 以下のプロパティーを
Intellisenseテクノロジーで楽するってことは可能なのでしょうか?。
今までずっと手打ちしてたのですが、ふと思いまして。
みなさん、どうされてますか?。
ご回答、よろしくお願いします。
0537デフォルトの名無しさんNGNG
メールを受信するとイベントが発生するプログラムを
作りたいのですがそんなAPIないでしょうか。
0538デフォルトの名無しさんNGNG
そんなAPI知らないけど、定期的にPOPサーバにアクセスして新着メールが
あったらイベントを発生させるみたいなことは自分でも書けるレベルだと思います
0539525NGNG
525です。
質問が抽象的だった為、高速化するかどうかの判断が難しくなってしまったようで
申し訳ありませんです。
実は作っているのはWebを自動巡回してページのリストを取得する、
みたいなものなのです。トップページを指定するだけでその下にあるページを
"<A href="などをキーに検索してリスト出力します。
これは現時点で完成できているのですが、とても処理が遅いのです。
多分私の見解はInetでOpenURLをしてそのアドレスのソースを取得するときに、
OpenURLするのに大体1秒ほどはかかってしまうのです。
順にページのソースを取得しようとする時などは
for Nextでコントロール配列のTextに順にソースを入れていくので
ひとつひとつの処理に1秒かかってしまうのです。
これをInet(0)〜Inet(10)まで同時に読み込ませるようなことができれば
解決するのです。Inetで時間がかかるのはネット接続のための遅延であって
CPUなどの負荷はとても小さいものです。なので同時進行にできないか、と。
めちゃくちゃ長文で迷惑かけますが何かいい方法ありませんでしょうか?
0540デフォルトの名無しさんNGNG
>>536
Dim oExcelApp As Excel.Application
Dim oExcelWorkBook As Excel.Workbook
Dim oExcelWorkSheet As Excel.Worksheet
Dim oExcelRange As Excel.Range

開発時はアーリーバインディングで、納品時はレイトバインディングにしたりする。
0541536NGNG
>540
おおおっ!。
そういうことができるとは、気づかなかったです。
ノーミソのシワが一個できた気分です。ありがとうございます。

引き続き、ノーミソ・シワのできるアイデアを募らせて頂きたいです。
よろしくおねがいします。
0542デフォルトの名無しさんNGNG
>>512
MSサイトにあるよ。
http://support.microsoft.com/default.aspx?scid=kb;JA;q178491

VBのバージョンによって、ひょっとしたら挙動が変わるかも。
VB6ではノードの背景色が個々に設定できたと思うので。

>>539
別の言語にする。
従来のVBでマルチスレッドはお勧めできないから。
(というよりできないと思ってもらってよいかと)
VB.NETならOK。.NET移行ならお勧めかもね。
0543537NGNG
それってどんなAPI使うんですか
BSMTPってDLLはわかったのですが

問題はPOPでなくIMAPでもやれるようにしたいのです。
0544デフォルトの名無しさんNGNG
>>543
socketとかconnectとかsendとかrecvを組み合わせていけばできると思うYO!
0545デフォルトの名無しさんNGNG
>>539
そういう用途なら、InetつかわないでWinSock使って
http手書きで通信した方がいいと思うよ。
WinSockコントロールならノンブロッキング型なので、
コントロール配列でも作って、片っ端からconnectさせて
イベント来たらSendDataしてGetDataして内容読んで、
ってやれば効率良くできるかと。
0546デフォルトの名無しさんNGNG
>>543
pop3ですけどこんな感じじゃないですか?
Option Explicit

Dim gCommand As String
Dim gPassword As String

Private Sub Command1_Click()

If Winsock1.SocketHandle > 0 Then
Winsock1.Close
End If

gPassword = Text1.Text

Winsock1.RemoteHost = "pop.mai.server.ne.jp"
Winsock1.RemotePort = 110
Winsock1.LocalPort = 0
gCommand = "connect"
Winsock1.Connect

End Sub

Private Sub Winsock1_Close()
Winsock1.Close
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
Winsock1.GetData strData, vbString
Select Case gCommand
Case "connect"
Winsock1.SendData "USER yamada" & vbCrLf
gCommand = "user"
Case "user"
Winsock1.SendData "PASS " & gPassword & vbCrLf
gCommand = "pass"
Case "pass"
Winsock1.SendData "STAT" & vbCrLf
gCommand = "stat"
Case "stat"
Winsock1.SendData "LIST" & vbCrLf
gCommand = "list"
Case "list"
Text2.Text = strData
Winsock1.SendData "QUIT" & vbCrLf
gCommand = "quit"
End Select
End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
MsgBox Number & ":" & Description
End Sub
0547まとれす ◆mato/KTI NGNG
>>535
これからもよろしくな

>>536
無理だ。なので、開発時だけ、参照設定してアーリーバインドし、
配布時に例とバインドに切り替えろ

>>537
SMTPはCDOみたいなオブジェクトが用意されているんだが、POP
はないな。自作するしかない

>>539
それなら、非同期で複数処理すればいいだけだ
0548デフォルトの名無しさんNGNG
>>547
すみません。ちょっと質問なのですが、>>536 の件で配布時にレイトバインドに
するメリットって何なんですか?
まともな質問じゃないんで sage ときます。
0549まとれす ◆mato/KTI NGNG
>>548
別にない。強いてあげれば、ターゲットを変更できるところぐらいか
0550548NGNG
>>549
感謝。
0551537NGNG
>>まとれす
>>546,547

まともなレスばかりで感動です。
winsockについて詳しく書かれたサイト、書籍でよいもの
ないでしょうか?
pop3ではできてもIMAPでやるのはどうしたら・・・。
英語サイトでもよいのでお願いします。
0552デフォルトの名無しさんNGNG
>>551
ひとつお願いしたいのはVBでWinsockを使うは結構簡単だと思います。
でも、それでOKというわけではないのがネットワークプログラミングだと思います。
取り急ぎ作らないといけないものができたらじっくり勉強してもらいたいと思います。
0553sageNGNG
>>552
全角好きだね(ワラ
0554デフォルトの名無しさんNGNG
>>553
COBOLerは全角命です
0555デフォルトの名無しさんNGNG
>>548
例えば、Excelのオブジェクトを使うのに参照設定してしまうと
そのバージョン限定になってしまう。
レイトバインドなら、Excel.Applicationという名前で実行時に、
使うオブジェクトが決まるので、Excel97、2000、2002のどれが
実行環境にあってもOK。

もちろん、その場合は、使用できるオブジェクトやらメソッドやらは
Excel97、2000、2002のどれでも使えて同じ結果になるものでなければならんけどね。
0556まとれす ◆mato/KTI NGNG
>>551
Sokectについて知りたいのか、WinSockについて知りたいのか、WinSockコントロール
について知りたいのか、IMAP4について知りたいのか、そもそもやりたいことはなんだ?

単に実現したい、ということなら、迷わずコンポーネントを勧めとくぞ
で、勉強したいってことなら、まず、RFCを読むことだなIMAP4だとRFC2060か?

0557525=539NGNG
>>545さん
>>547ことまとれすさん
お答えありがとうございます。
ところが私の知識不足と腐ったカニ味噌のせいでどちらもうまく理解できません・・・
545の方のwinsockはwinsockでメール送信とかやったことあるのでそれ自体は使えるのですが
HTTPのコマンドをまったく知らないので困ってます。

547での「非同期で複数処理」ってのはもう全然わかりませんです(汗
具体的にどういうことなんだろ。

もうちっと勉強してきますか・・・。
0558まとれす ◆mato/KTI NGNG
どうも誤字が目立つな。今後は気をつけるから勘弁してくれ
0559まとれす ◆mato/KTI NGNG
>>557
要するに、OpenUrlして、結果が戻ってくるまで待機してるわけだ。これを同期という。
そうじゃなくて、待機せずにすぐ次の処理を行うことのが非同期だ。

ヘルプが手元にないので、Inetコントロールでできるのかはわからんが、少なくとも
WinInet API のInternetOpenで、INTERNET_FLAG_ASYNC を指定してやれば、非同期
処理ができるようになるぞ
0560548NGNG
>>555
なるほど。
たしかに Office 系のアプリを外部から使うって事になると
バージョンの問題が出てきますね。
この辺っていままで考えた事なかった...
感謝です。
0561デフォルトの名無しさんNGNG
>>558
許さん。
0562デフォルトの名無しさんNGNG
>>557
Inetコントロールなら、OpenUrlではなく、Executeメソッドを使う。

Executeメソッドでサーバに接続し、GET要求を出すのだけど、
結果は受け取らず、Executeメソッドは実行後すぐ終了してしまう。
これが非同期って意味ね。

んで、データは、Inet_StateChangedイベント内で受け取る。
State=12になったら、GetChunkメソッドを呼び出してデータを
受け取る。

この2つの操作の間には別のことをしていてもいいし、別のInet
コントロールを使って別のサイトを取得していてもいい。
(Inetコントロールを、コントロール配列にして使うのが普通。)
0563525=539=557NGNG
ありがとうございます! >>559 >>562
最初>>559の方法で作っていて、やっと同期しないで動くのを確認して
よかった〜できた〜と思ってまたここ開いてみたら562さんの書き込みが(w
ちなみにそっちでもできました。
なんだか一石二鳥的な感じに2つも知識をつけさせてもらいました。
本当にどうもでした。
0564536NGNG
>547さん
私の疑問に答えていただきありがとうございます。
一度、試してみます。
0565デフォルトの名無しさんNGNG
VBでベーシックインタープリタを作りタイ!
0566デフォルトの名無しさんNGNG
どうぞお好きに。
0567デフォルトの名無しさんNGNG
おれつくった
0568即レスNGNG
おや、しばらく来ないうちにまとれす復活してる。よろしこ。
串規制うんぬんはクリアーしたんかな。

>565
頑張れw
0569デフォルトの名無しさんNGNG
>>568
おお、即レスだ
0570デフォルトの名無しさんNGNG
質問です 環境 VB6Pro SP3 WinXP
トリップ検索のプログラム(「見知らぬ国のトリッパー(w」 みたいな)
を作りたいんですが、perlによるcryptってのはVBでどう再現すればいいんでしょう?
トリップの仕組みはわかってるのでそれがわかれば作れるんですが・・・。
どなたかわかる方いませんでしょうか?
0571デフォルトの名無しさんNGNG
一太郎などジャストシステム製品についてくるJOCAについての解説している資料はないですか?
この中のひとつにJSVBrowser OLE Control moduleというActiveXコントロールがあります
MSのWebBrowserコントロールと同じようなものです。
JustViewというジャストシステム製のブラウザで使われていますが
ActiveXなのでVBでも扱えるようです。
でも、プロパティやメソッドの使い方が一切ない…
ナビゲートの仕方すらわからん(笑
パラメーターの意味が…不明なの
本家ジャストシステム見てもナイ!
検索してもナイ!
機能的には最新のMSHTMLにはおよばないんだけど
シンプルなところがいいのです(一応JavaScriptサポートしてる)
さて
資料はあるのか????教えて君でした。

教えてだけじゃ悪いので
http://support.microsoft.com/default.aspx?scid=kb;JA;q183235
WebBrowserの動作改造法 サンプル以外にやるにはVCが必要
これで、ActiveX、Script、Javaや画像のON,OFF、読み込まないなどIEにではなく
WebBrowserのみに設定できる
これをMSはあまり、教えたくないらし(藁

じゃあ お願いします
0572デフォルトの名無しさんNGNG
>570
Crypt完全互換をVBで実現することはできないことは確かだけど、
はたしてActivePerlとか使っても出来るかどうか…。
総当たり方式で、トリップ解析するつもり?

>571
同じく探したことあるけど、見つかりませんでした。
JS製品自体持ってる人が少ないし、どんなバグがひそんでるか
わからないし…。
まあ、そんなこと言ったら、VBについてるサードパーティの
ActiveXだってバグあるけど。
0573570NGNG
>>572
ん〜やはり無理ですかね。
Googleで検索して出ないあたりから諦めかけてたんですけどね・・・。
だとすると今ある総当りトリップ検索は言語何でつくられてるんだろ。
やっぱCとかC++になるのかな。とにかくサンクスですた。
0574デフォルトの名無しさんNGNG
他メーカーのActiveXって、そのメーカー以外のソフトから
使おうとするとエラーになるように出来て無いかい?
JustSystemのも機能が使えるかは保証できないと思うけど…
0575仕様書無しさんNGNG
>>574
アホ丸出し。プロですか?(藁
0576デフォルトの名無しさんNGNG
>574
たしかにJSのはエラーが出た。

>575
JS限定で、動作サンプルきぼん。
0577まとれす ◆mato/KTI NGNG
>>561
うるせーバカ

>>568
こちらこそよろしくな。串規制は結局駄目だったんで、ID買った。海外鯖
だからしょうがないな

>>570
Crypt API じゃ駄目か?

>>571
本家に聞いてみて、駄目なら無理じゃないか?開発ツールとしては配布
しない、ってスタンスのところも多いぞ。で、どうしても、というなら、オブジェクト
ブラウザでメソッド、プロパティを見て、適当にやるしかない

ハックしてるような気分になって、結構楽しいぞ。おれも、いくつかのActiveX
コントロールを試してみたことがある

>>574
つか、きちんと使ってあるなら、開発環境で開いたときに、「開発ライセンスが
ねーぞゴルァ」とかって出すと思うんだけどな
0578デフォルトの名無しさんNGNG
VB6(learning edition)がインストール出来ないんだけど。。。
インストールしようとすると、いきなり一般保護エラーが出るんですよ。
もちろん、常駐物は全部切ってあります。
インストーラにバグがあるような事は聞いていたんですけど、
このエラーを回避する方法ありませんか?
使用OSは、WindowsXP Professionalです。
0579まとれす ◆mato/KTI NGNG
>>578
Enterprise版だと、何の問題もなくインストールできたぞ。互換モード
とか使っても駄目か?
0580デフォルトの名無しさんNGNG
>>579
だめれす。
インストーラのバグの原因がわかれば解決できると思うんですが。。。
誰かバグについて情報持ってる人いませんか?
0581デフォルトの名無しさんNGNG
>578
管理者IDを半角英数字にしてる?
0582571NGNG
JOCAについての一太郎に付属の注意テキストによると
開発に使うのはできるらしい
ただ配布については記載なし(笑
VBで扱う際のごくわずかな記述がある(笑
VBで扱えない変数型もありますのでそれはあきらめて使わないとの事(笑)
JSVBrowserはオブジェクトブラウザで見ればわかると思うけど、VBで扱えない変数型はほとんどない
でもナビゲートわかんねーw
エラー出すとVBが落ちるんだよね(大汗
資料☆ー欲しー
解明した方がいたら情報あげキボンヌ
JSなんとかのコンポーネントでいっぱいの人 他にもいるでしょ?(笑

0583578NGNG
>>581
えーと、管理者IDっていうと、Administrator権限のあるユーザ名のことでしょうか?
それなら、半角英数字になっています。

http://www05.u-page.so-net.ne.jp/gf6/tadaei/diary_bk02.html
には、
「WindowsNT4.0にORACLE8がインストールしてある時に、
ORACLEのサービス(OracleStartORCL)が起動されていないと
Visual Studio6.0のセットアップでアプリケーション・エラーが発生」
と書いてはあるんですけど、OracleStartORCLなんかインストールしてもいないし。。。
0584デフォルトの名無しさんNGNG
>>583
違ってたか。

上のOracle云々はEnterprise版で起きそう。

あと、可能性としては、tmpフォルダに日本語を使ってるとか、
インスト先に日本語使ってるとか。

VBで作ったEXEがWinXPにインストできないトラブルは多いけど、
VB自体がインストできないのは、例が少なそう。
Officeがらみかなあ。

0585578NGNG
>>584
システム関連のフォルダには日本語使ってなかったです。
Officeも入れてないんですよね。。。あー。。。

http://support.microsoft.com/default.aspx?scid=http%3a%2f%2fwww.microsoft.com%2fJAPAN%2fsupport%2fkb%2farticles%2fj046%2f7%2f41.asp
コレを試してみてもダメでした。

他にも同じ現象の人がいたのか。。。
http://pc.2ch.net/test/read.cgi/tech/994129650/135
http://pc.2ch.net/test/read.cgi/tech/994129650/684
0586即レスNGNG
>578
HDDからインストールするとエラーになることがあると聞いたことがある。

まあ、違うだろうけどさ。
0587デフォルトの名無しさんNGNG
C++の勉強の勉強はやったんだけど、
どうやってWinのソフトウェアを作ればいいのか全然わからない。
Visual C++を使ってなんか作りたいんだけど、
どのように勉強したらいいでしょうか?
お勧め本とかホームページ教えてくれますか?
0588892NGNG
猫でもわかる・・・
0589デフォルトの名無しさんNGNG
>>587
VBで作れ
0590即レスNGNG
>587
一通り勉強したんならあとはやりながら勉強するのがいいと思うぞ。
俺の勉強方法は「とりあえずやってみる」だし。

どの言語でもそうだけど初心者の読む本なんて何読んでも
一緒だと思うんだが。お勧め本とか聞かれてもなあ。

俺の持ってるのは「猫でも・・」と「初心者・・」ぐらいかな。

#スレ違い。
0591デフォルトの名無しさんNGNG
Perlって難しくね?
0592デフォルトの名無しさんNGNG
>>591
難しくはない。ただ、仕様がクソ汚い。
0593デフォルトの名無しさんNGNG
だからか。ぱっと見理解できなかったから。
0594即レスNGNG
>>570
まあ今更だが、暇なんで。

ここにCryptをCで再現してるソースがあるよ。
http://www.coms.ne.jp/~paz/mktrip/

で、そのufccrypt.dllを使わせてもらったサンプルコードがこれ。

Private Declare Function ufccrypt Lib "ufccrypt.dll" (ByVal Key As String, ByVal Salt As String, ByVal retStr As String) As Long

Function MakeTrip(ByVal Key As String) As String
Dim ret As String * 13
ufccrypt Key, Mid$(Key, 2, 3), ret
MakeTrip = Mid$(ret, 6)
End Function

cそのまんま移植するのはめんどいのでパス。


>591
そうなん?俺専門外なんだけど。
0595570NGNG
>>594
何気に回覧してたらなんかすげー情報がっ!
いや〜あるとこにはあるものですな・・・。
感謝感激感動です。やってみま。
0596デフォルトの名無しさんNGNG
VBでエディタをつくりたいのですが、どこかにソースを公開したエディタありませんか?
文法の勉強より手本を見ながらいきなり作るのが好きなんです
探したけどC++ばかりでなかなかありません・・・
0597デフォルトの名無しさんNGNG
>>596
TextBoxをMultiLineで貼り付けるか、
自分でDCに描画するか好きなほうを選べ。
0598デフォルトの名無しさんNGNG
>>597
処理が単純で速いほうがいいですが、
どちらでもかまいません
0599デフォルトの名無しさんNGNG
>>598
ぇ、いやどっちか選んでやってみろってことだろ、597は。
0600デフォルトの名無しさんNGNG
質問すまん
ListViewで新しい項目追加するときに
項目を更新させないようにして
追加するのってどうやるんだっけ?
いちいち画面書き換えるんではチラついてうざいので。
0601即レスNGNG
>>600
DoEventsやSleepを入れなかったら追加するたびに更新されないはずだけど。
Refreshとか使ってないよな?

>>596
ちょっと探してみたがホントに無いな。
いまどきテキストエディタってのも流行らんからなあ。
簡単でいいならRichTextBoxを貼りつけりゃ完成だが。
0602570NGNG
ぐふっ!
トリップ検索ためしに作ってみたのはいいが
1500trip/s・・・(w
これがVBの遅さですか?
それともトリッパーはマルチプロセスとかで高速化してんのか。
0603即レスNGNG
>602
普通のってどれぐらい?
0604570NGNG
俺のCPUが遅いせいもあるけど、
「見知らぬ国のトリッパー(w」
は俺がやって16000trip/sぐらい出る。
俺のやつの10倍速と。w
0605即レスNGNG
>604
ちょっとやってみるから待ってろ。
0606570NGNG
>>605
待ってろ、といわれたが具体的になにをやってみるんだ?(w
作るのか?トリップ検索プログラムを・・・。
いやそれともトリッパーの速さを見てみてるのか。
0607597NGNG
>>598
処理が単純で速いほうか、なるほど茨の道を選ぶのだな。
答えはは既におまえが手にしたC++のソースの中にある。

まずはこれから始めようか。
Public Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (
ByVal dwExStyle As Long,
ByVal lpClassName As String,
ByVal lpWindowName As String,
ByVal dwStyle As Long,
ByVal x As Long,
ByVal y As Long,
ByVal nWidth As Long,
ByVal nHeight As Long,
ByVal hWndParent As Long,
ByVal hMenu As Long,
ByVal hInstance As Long,
lpParam As Long) As Long
0608即レスNGNG
>606
とりあえず前方完全一致の単純検索で試してみた。

結果

見知らぬ国の・・・ 13000 trip/s
文字列操作、比較  9000 trip/s
バイナリ操作、比較 16000 trip/s

参考
ufccryptの呼び出しだけ 18000回/s

っつーわけで、1500trip/sって何なんだ。
まあもちろん部分一致だの正規表現だのに対応すれば
その分遅くなるが、それでも1500trip/sは遅すぎだろうな。
0609570NGNG
>>608
早っっ
俺のやってる事がいかに効率悪いやり方かが分かるわ・・・
そっちはどんな風にしてやってんのか気になるわぃw
0610600NGNG
>>601
DoEventsを入れてやってました・・・
でもDoEventsを抜いてしまうと、Do Loopの中にあるので
固まってしまうんですが?DoEventsをいれずにも固まらないようには
どうやったらできるんでしょう?
0611即レスNGNG
>610
1.Doeventsを呼び出す頻度を少なくする
2.非表示にする
3.サブクラス化
4.ListViewのDCをゲット、オーナーに同じ物描画、ListView非表示。

とか。1がお勧めかな。


>608
別に大したことしてないが・・・
ソースはあとで気が向いたらうpするよ。
0612デフォルトの名無しさんNGNG
今会社で一人で困ってます。どなたか助けて下さい。
ListViewコントロールのヘッダをクリックしたら、ListItemオブジ
ェクトを文字順ではなく数字順でソートされるようにしたいんです。
リストビューのSortOrderプロパティを使うと文字列でソートしちゃ
うんです。

こんな感じにソートしたいです。
0
1
2
3
4
…

今こうソートしてる。これはイヤ。
0
10
100
1000
1001
…

.....ヒントでもいいです。
0613  NGNG
Dim ni As Integer
ni = InStr(1, Text1.Text, "に")
If ni > 1 Then
Dim a1 As Byte
a1 = Left(InStr(1, Left(Text1.Text, ni - 1), 1 Or 2 Or 3 Or 4 Or 5 Or 6 Or 7 Or 8 Or 9 Or 0), 1)
Text1.Text = a1
End If
これだと 0 でますが、どこがちがいますか?
0614デフォルトの名無しさんNGNG
>>612
こうするのが一番てっとり早いかと。

0000
0010
0100
1000
1001
0615612NGNG
>>614
ありがとうございます!助かりました!この方法で行きます!

実は半日くらいWWW検索しまくっちゃって悩んでたんですけど、
全然解決しなくって。。
てっとり早くない方法っていうのは、ソートの関数(?)みたい
なのを自分で作るはめになるんでしょうか?
0616デフォルトの名無しさんNGNG
>>615
APIを使ってそうすることになると思う。<自前ソート関数
詳しくは MSDN あたりで ListView_SortItems というキーワードを調べてみるべし。
0617デフォルトの名無しさんNGNG
>>615
>>616で正しいね。
正確にはSendMessage APIのMsgパラメータにLVM_SORTITEMSを指定して
リストビューにメッセージを送信することによってコールバック関数を設定し
そんでコールバック関数の中で独自のソートを作ればok。
0618608NGNG
>>611
気が向いてくれるように祈ってみるテスト。
0619即レスNGNG
気が向いた。


Private Declare Function ufccrypt Lib "ufccrypt.dll" (Key As Any, Salt As Any, retByte As Any) As Long
Private Declare Function timeGetTime Lib "winmm.dll" () As Long

Function a()
Dim T#, st$, i&, T1#
Dim ret As String * 13
Dim by(20) As Byte
Dim a1&, a2&, C&
Dim s$
Dim Chars(52) As Byte
Dim SearchChar(3) As Long, SearchLen As Long
Dim KeyChar(7) As Byte

For i = 0 To 25
Chars(i) = (Asc("a") + i)
Chars(i + 26) = (Asc("A") + i)
Next

SearchChar(0) = 26
SearchChar(1) = 33
SearchChar(2) = 40
SearchLen = 2

T = timeGetTime

For a1 = 0 To 7311615
For a2 = 0 To 7311615
C = C + 1
0620即レスNGNG
KeyChar(0) = Chars(a1 \ 140608)
KeyChar(1) = Chars((a1 Mod 140608) \ 2704)
KeyChar(2) = Chars((a1 Mod 2704) \ 52)
KeyChar(3) = Chars(a1 Mod 52)
KeyChar(4) = Chars(a2 \ 140608)
KeyChar(5) = Chars((a2 Mod 140608) \ 2704)
KeyChar(6) = Chars((a2 Mod 2704) \ 52)
KeyChar(7) = Chars(a2 Mod 52)

ufccrypt KeyChar(0), KeyChar(1), by(0)

If by(5) = Chars(SearchChar(0)) Then
If by(6) = Chars(SearchChar(1)) Then
If by(7) = Chars(SearchChar(2)) Then GoTo OK
End If
End If

Next
Next

OK:
DoEvents
Sleep 1
T = timeGetTime - T

s = KeyChar
s = StrConv(s, vbUnicode)
MsgBox (s & vbCrLf & vbCrLf & C & "個を" & Int(T / 10) / 100 & "秒で検索。" & vbCrLf & "1秒あたり" & Int(C / T * 1000) & "個。")

End Function

コマンドボタンくっつけてa呼び出すなり。

#一応最適化全チェックでコンパイルしてちょ。
0621即レスNGNG
タブが消えてしまうという罠。(今知った。鬱。)
0622デフォルトの名無しさんNGNG
>>616
>>617

度々ありがとうございます。
もし力尽きてなかったら、難しい方(>>617)も後で試してみます!
0623608NGNG
>>619-620
わーい!
でもやってることがあんま理解できない罠。
俺がやはり如何に低レベルだったかと納得させられるw
今からがんばって解読すんぞ〜。
サンクスコです >>即レスサソ
0624即レスNGNG
>>613
何がしたいのかよく分からん。目的はなんだ?

>>623
どーいたしまして。
色々いじくった後を修正してないので
もう一度作り直した方がいいだろうな。
0625まとれす ◆mato/KTI NGNG
ついにおれが誰だかばれてしまった。まずいことを書いてるわけじゃ
ないからいいけどね。しかし、わかるもんなんだなー。

>>607
そこからやるのは無謀だと思うぞ

>>612
すでに回答がでているように、リストビューのソート関数を定義する。
日付型のソートをするサンプルが、KBにあったぞ

>>613
何がしたいんだ?とりあえず、アスキーコードとか、ShiftJISとか、その
辺から確認してみろ
0626デフォルトの名無しさんNGNG
実は有名人なの?
0627即レスNGNG
俺は名前を聞いてもわからない自信がある。>まとれす

#PG界の人名なんてぜんぜん知らんもん。
0628まとれす ◆mato/KTI NGNG
>>626
別に有名じゃない。たまたま、知り合いが見て、気づいただけだ

>>627
せいぜい、一度くらいはMLとかで見かけたことがある、ってレベルだと
思う。俺も、PG界の人名なんて知らんし
0629デフォルトの名無しさんNGNG
>>596
http://www1.plala.or.jp/uz/
にハイレベルなサンプルがある。

が、このソースを見ればわかるが、VBでテキストエディタを
作っても苦労は報われないと思われ。

>>613
俺も何がやりたいのかさっぱりだが、
a1 = Left(InStr(1, Left(Text1.Text, ni - 1), 1 Or 2 Or 3 Or 4 Or 5 Or 6 Or 7 Or 8 Or 9 Or 0), 1)
の中の「1 Or 2 Or 3 Or 4 Or 5 Or 6 Or 7 Or 8 Or 9 Or 0」は
間違ってるだろうな。

s = "123"
For i = 1 To Len(s)
  ret = InStr("0123456789", Mid(s,i,1))
  If ret = -1 Then Exit For
Next
If i = Len(s)+1 Then Debug.Print "sは数字だよ"

みたいなことがしたいのだろうか・・・とふと思った。
0630Mr.DoEventsNGNG
聞いてばかりじゃ悪いんでw
ここはすごい!
http://www.domaindlx.com/e_morcillo/

VBとしてはかなり上級テクばかり
自作のタイプライブラリをVBに提供!!それを使ってVBの機能をUPするテクを公開してる
なんていい人なんだ!

でも英語だよ(・∀・)
あせらないようにな でも厨も、もらっておけ!

0631デフォルトの名無しさんNGNG
>>612
めんどくさいのが嫌なら、ColumnHeaderを右寄せにしたうえで、
数字の左に半角スペースを桁数分詰め込むと楽。
Li.SubItems(1)=Format(intHoge,"@@@@") みたいな感じで。
#独自にソートさせた場合、面倒があった気がする…。コードが腐ってた
#だけかもしれんけど。
0632Mr.DoEventsNGNG
Sub Main()

Dim s As String, a As String, l As Long, r As Long

s = "おまえ厨だろ?"
l = Len(s)

Randomize

Do
r = Int(l * Rnd + 1)

a = InputBox(String(r - 1, "*") + Mid(s, r, 1) + String(l - r, "*"))

If Len(a) = 0 Then Exit Sub

Loop Until s = a


End Sub

いつも聞いてばかりなのでちょっとしたゲームサンプルお礼
上記は標準モジュールのみで動かしてね
Formはいらないよ(解放していいよ)
スタートアップ設定はSub Mainね(プロジェトのプロパティ)
どう?
0633Mr.DoEventsNGNG
あ!何するかって?
文字列あててね
毎回1文字だけ表示されるから 全体の文字列ね
何も入力しないと 即終了〜
当てる回数はまっどうでもいいでしょ
糞コードあげんなって?(´∀` )
0634デフォルトの名無しさんNGNG
VB のコンボボックスのリストって VBA のように一気に設定できないの?
0635517NGNG
あ、TCPじゃブロードキャストは受け取れませんね。ボケてました。
で、WInsockのプロトコルをUDPに下のですけどエラーが出てしまいます。
サーバを作るときは、

Private Sub Form_Load()
txtRemoteHost = "192.168.0.2"
txtRemotePort = 1229

WinsockServer.Protocol = sckUDPProtocol

Rem WinsockServer.Close
WinsockServer.LocalPort = 1229 'ポートを設定
WinsockServer.Listen
End Sub

じゃだめなんでしょうか?
0636デフォルトの名無しさんNGNG
>>635
bindがねーしlistenなぞいらん
0637517NGNG
>>636 すみません。勉強不足でした。
調べたら解りました。逝ってきます。。。
0638デフォルトの名無しさんNGNG
>634
一気に設定って何だ?RecordSourceとか値リストの事?
0639ショックNGNG
VBサポート中止!
0640634NGNG
VBA は配列を直接ブチこめる
0641ショックNGNG
どうしよう・・・
0642デフォルトの名無しさんNGNG
>639
2005年までっしょ
0643デフォルトの名無しさんNGNG
>>641
ソース希望。
MSサイト覗いてもそんな記述はなかった。
もしかしてネタってやつですか?(w
0644デフォルトの名無しさんNGNG
>>643
俺は>>639じゃないけど、zdnetの記事にあった。
ちなみにVB6.0の話。
0645644NGNG
確か2005年からは有償サポートになって、2008年にはうち切るんじゃなかったかな。
0646デフォルトの名無しさんNGNG
ttp://www.zdnet.co.jp/news/0203/20/e_vb6.html
0647デフォルトの名無しさんNGNG
http://www.zdnet.co.jp/news/0203/20/e_vb6.html
0648ショックNGNG
まじです
0649ショックNGNG
VBNって値段いくら位?
0650643NGNG
サンクス!!

>>641
疑ってすまぬ。
0651デフォルトの名無しさんNGNG
お前ら笑える
0652デフォルトの名無しさんNGNG
>>651
あおりごくろうさん。
くだらんからsageじゃ。
0653デフォルトの名無しさんNGNG
>640
DBコンボって同じ事出来なかったっけ?
未確認sage。


なんだ、2005年まで猶予あるんだ。
ちょっと意外。
0654デフォルトの名無しさんNGNG
ASテクノロジっていうメモリ最適化の技術があるそうなのですが、
どういうものでしょうか。
教えて欲しいんですけど…
0655デフォルトの名無しさんNGNG
VBでEXEファイルを作成しようとするとエラーメッセージも無く
強制的にVB自体が落ちてしまいます。
メモリ不足かと思い他のアプリケーションを全て終了したり
再起動したりしたのですが全く同じ現象になってしまいます。
デバッグモードでは動作しています。
他のプログラムではEXEを作成することが可能なので
このプログラム単体の原因があると思うのですが
理由がさっぱりわかりません。
他の人に聞いてもこのような現象は聞いたことがないと言われたのですが、
このようにメッセージも無く落ちる原因になりうるものって何かありますか?
環境はWIN2000でVB6(SP4)、メモリは256Mです。
0656デフォルトの名無しさんNGNG
フォルダパスに日本語が混じっているとか?
0657デフォルトの名無しさんNGNG
>>654
マルチ
0658デフォルトの名無しさんNGNG
>>655
漏れもなったことあるぞ。VB入れなおせ。SP5入れるのも手か。
0659デフォルトの名無しさんNGNG
>>655
とりあえず SP5 でてるから、当ててみれば。
0660デフォルトの名無しさんNGNG
VBでメモリマップドファイルをどうすれば作れるか
解説サイトなどありましたら教えてください
0661659NGNG
かぶってもうた。
0662655NGNG
レスどうもです。試しにパスに日本語を含まないようにしたところ
「メモリが”READ”になることが出来ませんでした」との
エラーメッセージは出るようになりました。
まぁ、落ちることに変わりはないのですが…
皆さんの助言通りSP5にバージョンアップしてみます。
0663デフォルトの名無しさんNGNG
まさかcpuいじってなんかいないよね
0664655NGNG
>>663
私ですか?いじってないですよ。
まだ増設とかもしていないのでPCはメーカーの
ものをそのまま使用している状態です。
0665デフォルトの名無しさんNGNG
Win2000って強制終了がみょうちきりんだからね…
0666即レスNGNG
誰も654につっこまないんだな。結構笑えるネタなのに。
0667デフォルトの名無しさんNGNG
>>666
そうなの?
0668デフォルトの名無しさんNGNG
>666
いや、初心者スレだし...

>655
Windows2000のSPは...?
0669即レスNGNG
とりあえずこちらをご覧あれw
http://page.freett.com/hachikou/

一応同名でまじめな技術があるかも、と思って検索したけど
無かったのでこれで間違い無いよ。たぶん。
0670デフォルトの名無しさんNGNG
えーと質問させてください。
NSにコネクションを張ってればメールの着信をGETできる、って
教えてもらった(http://pc.2ch.net/test/read.cgi/tech/1006154451/486)
んですけど、全く分かんないんです。
winsockかなんかで繋いどくんですかね?
やり方教えてもらえませんか。よろしくお願いします。
0671612NGNG
>>625
>>631
ありがとうございます。 (一括でごめんなさい。)

>>612を解決するためのサンプルコードをここ↓で発見しました。
(callback関数使う方です。)
http://www.mvps.org/vbnet/


....今度からもっと調べて質問します。
0672デフォルトの名無しさんNGNG
>>619,620
KeyChar(0)〜(3)への代入を外側のループに出せば、約4割速度アップ。
SearchChar(0)〜(2)を単純変数に代入すれば、約1割速度アップ。
0673即レスNGNG
>672
ま、そういうことだね。
0674まとれす ◆mato/KTI NGNG
>>634
できない。どうしてもやりたければ、そういうユーザーコントロールを作るしかないな

>>654
懐かしいネタだな

>>660
CreateFileMapping、MapViewOfFileExあたりをキーに検索してみれば、サンプルが
見つかるぞ

>>670
なんだNSって?メッセンジャーの話か?
0675デフォルトの名無しさんNGNG
>>674
どもありがとうございました。
0676634NGNG
>>653 >>674
いろいろスマソ。諦めて Additem で一つずつ追加するよ。
0677デフォルトの名無しさんNGNG
VBでFlashを再生するソフトを作っているのですが、ちょっと質問させてください。
フォーム上に置いたFlashに、ドラッグ&ドロップでFlashムービーを再生させたいのですが、
VB上でドラッグ&ドロップしたときに、ドラッグ&ドロップされたファイル名を取得するにはどうすればいいのでしょうか?
よろしくお願いします。
0678デフォルトの名無しさんNGNG
>>677
ファイル名は、OLEDragDropイベントプロシージャの
Data.Files に格納される。
0679まとれす ◆mato/KTI NGNG
>>677
OLEDragDropイベントで、DataObject引数の中から取得すればいいぞ
0680677NGNG
それでもやっぱりわかりませんでした…。
下記で試してみたのですが、だめでした…。

Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
Flash1.Movie = Data.Files
End Sub
0681デフォルトの名無しさんNGNG
>>680
Flash1.Movie = Data.Files(1)
ちなみに複数選択してドロップすると2,3,4...となる。
0682まとれす ◆mato/KTI NGNG
>>680
そういうときはだな、ブレイクポイントをしかけておいて、変数の中身をウォッチ
するといいぞ。何が入っているのかすぐわかる
0683677NGNG
ありがとうございました。
これで完成です。
0684 ◆.9BqZfqQ NGNG
テキストファイルをopenで読み込んだら改行されずに1行で表示されるんだけどどうすればいい?
0685デフォルトの名無しさんNGNG
>684
大体想像つくけど、まずそのソース示せや。
openったって、書き方ひとつじゃないでしょ?
0686即レスNGNG
>684
Line Input使うか、ReplaceでVbcrlfに変換すれ。
0687 ◆.9BqZfqQ NGNG
すんません。
Open strFilePath For Input As #LngFNum
こんな感じで開いてます。
0688デフォルトの名無しさんNGNG
ある文字列をテキストボックスに表示させたいのですが
tabスペースの部分が来たら改行させたいのですがどうすればいいですか?
0689即レスNGNG
>688
Text1.text=Replace(str,vbtab,vbcrlf)

こういうことか?
0690      NGNG

Private Declare Function GetStockObject Lib "gdi32" (ByVal nIndex As Long) As Long
とありますが、「Declare」「Lib」「gdi32」ってなんですか。読めません。ヘルプもありません。
0691即レスNGNG
>690
Declare=宣言
Lib=Library(たぶん)
gdi32=DLLの名前

つまり、gdi32っていうライブラリのGetStockObjectっていう
関数を宣言する、ってことだ。
0692688じゃないんだがNGNG
単なる半角スペースとかを改行に置き換えるときって半角スペースの関数(vbtabみたいなやつ)
ってあったっけ?
0693即レスNGNG
>692
無いよ。
自前で宣言しとく?
0694688じゃないんだがNGNG
Replaceで半角を置き換えるときはどうなんの?
Replace(str, ,vbcr)とかになんの?
それとも
Replace(str," ",vbcr)とかになんの?
それとも両方間違いですか?
アフォな質問かもしれんがたまたま気になったからさ・・・
0695      NGNG
ありがとうございます。
Dim a as〜 の Dimension の宣言とはどうちがうのでしょうか……。

0696即レスNGNG
>>695
Declare〜Libはその名の通り、他のDLLの関数を宣言すること。
Dim〜はVB内での変数の宣言。

スゴく簡単に言うと
通常の宣言=Dim
APIの宣言=Declare〜
かな。

>>694
後者。
Replace(str,chr(32),vbcr)
でもいいよ。
0697      NGNG
>>696
  ありがとうございます。おつかれさまです。  
0698 ◆.9BqZfqQ NGNG
適当な場所にあるテキストを1行ずつ読み出してテキストBOXに書き出すモノなんですが
Do While Not EOF(LngFNum)
Line Input #LngFNum, strRecData
Text1.Text = Text1.Text & Replace(strRecData, Chr(32), vbCrLf)
1行読み込むと改行としたいのですがうまくいきません。
バカ初心者の私に愛の手をお願いします。
0699即レスNGNG
>698
×Text1.Text = Text1.Text & Replace(strRecData, Chr(32), vbCrLf)
○Text1.Text = Text1.Text & strRecData & vbCrLf

・・・まさかとは思うがMultiLine=Trueにしてるよな?
0700デフォルトの名無しさんNGNG
初期化ファイルの読み込みをする関数の関数名は何が適当でしょうか。

iniFile_Load() でいいですか?

#くだらない質問ですみません。変数名と関数名決めるのがいちばん苦痛なんです。
0701デフォルトの名無しさんNGNG
VBでPerlみたく変数宣言しないで簡単にやってると、
処理を間違えたりVB自体が落ちたりします。仕様ですか?
SP5はあてててます。
0702デフォルトの名無しさんNGNG
>701
ネタですか?
0703即レスNGNG
>>700
十分でしょ。動詞を先にするのもあり。

>>701
処理を間違えるのはVariant型が分かってない可能性があるが
VB自体が落ちるってのは聞いたこと無いな。
0704デフォルトの名無しさんNGNG
VBにてIEを起動させているのですが、
IE終了時にVB側も一緒に終了させる方法はあるでしょうか?
---------------------------
Option Explicit
Dim IE As Object

Private Sub Form_Load()

Set IE = CreateObject("InternetExplorer.application")

IE.FullScreen = False
IE.ToolBar = True
IE.MenuBar = False

Call IE.Navigate("localhost")

IE.Visible = True
Me.Visible = False
End Sub

Private Sub IE_OnQuit()
Unload Me
End Sub
-----------------------------
フォームに上記のように書いたのですが、
_OnQuit()ではだめなのでしょうか。
IEオブジェクトの終了イベントの受け取り方法を
教えてください。

0705デフォルトの名無しさんNGNG
>700
よく言われるのは動詞+名刺やね。
それに拘らずとも、プログラム内で命名方法が統一されていれば問題なし。
よく使う動詞をまとめておけば名前決めも楽〜
0706デフォルトの名無しさんNGNG
質問なのですが。
TextBoxの文字を中央に揃えたいのですが、どうしたらいいでしょうか?
右揃え、左揃え、中央揃えではなく、
デフォルトでは、上に揃えられてる文字を中央におきたいのですが、
Alignment
か何かのプロパティでいけないのでしょうか?
お願いします。
0707まとれす ◆mato/KTI NGNG
>>704
アーリーバインドしろ

>>706
EM_SETRECTで位置を修正だな
0708706NGNG
>>707
レスありがとうございます。
EM_SETRECTで調べてみました。
うっ、SendMessage()API、、、
これは難しそうだ。水平方向なら簡単なのに、、、
ありがとうございました。
0709デフォルトの名無しさんNGNG
VBのベーシック言語ってどこに載ってるんでしょうか・・・
MSDNディスク?
0710デフォルトの名無しさんNGNG
>709
何それ?VBのベーシック言語?MSDNディスク?
0711デフォルトの名無しさんNGNG
>>700
俺は、普通 LoadIniFile() だけど、iniFile_xxx() が色々ある
(例: iniFile_Save(), iniFile_Print(), iniFile_Export()...) なら、
そっちの方がいいかも。要は、>>705 の言う通り統一していることが重要だと
思う。
0712デフォルトの名無しさんNGNG
クラスモジュールのプロパティプロシージャにLetとSetがありますが、
この2つの違いって何ですか?
0713デフォルトの名無しさんNGNG
>>712
>Property Set プロシージャは、オブジェクトへの参照を設定します。
>Property Let プロシージャは、プロパティに値を設定します。
0714712NGNG
>713
すばやい返答ありがとうございます。
MSDN見ても両者の文面が同じにしか見えなかったんで戸惑って
いたんですが、おかげさまでなるほど納得です。
0715デフォルトの名無しさんNGNG
>>712
値を代入するのに 2 種類のプロパティ プロシージャがある理由は、
Visual Basic では、オブジェクト参照をオブジェクト変数に代入する
場合、特別な構文を使うためです。
0716         NGNG
 print では ; を打つと改行しなくなります。
では、文字を改行するにはどうしたらいいでしょうか。
Label1.Caption = "a + b = " & Format(wa, "######.######") & " です。" & 改行 _
"a - b = " & Format(sa, "######.######") & " です。"
0717デフォルトの名無しさんNGNG
>>716
クイズみたいな文面ですね。(w
vbCrlfとかじゃダメなの?
0718         NGNG
>>717
      それはどのように使いますか?
0719デフォルトの名無しさんNGNG
>>718
MSDN見るなり、全部聞くんじゃなくてやってみろよ…
"あいうえお" & vbCrLf & "かきくけこ"
0720         NGNG
>>719    ああ、&をつけるのでしたか……。
      ありがとうございます。それだけで助かりました。
0721デフォルトの名無しさんNGNG
初心者にもほどがあるぞぷーそぷそ!
0722デフォルトの名無しさんNGNG
>>721    心中には。 
0723デフォルトの名無しさんNGNG
PictureBoxの左上の1ドットを透明色として取得しようと
ToumeiColor = Picture1.Point(0,0)
とするも戻り値は-1
msdnをみると-1はobjectの外側にあるからだとか。
意味不明です。助けて・・・。
0724デフォルトの名無しさんNGNG
フルパスをDOS形式に変換する関数てありますか?
0725デフォルトの名無しさんNGNG
>>723
Picture1 の ScaleMode, ScaleTop, ScaleLeft, ScaleHeight,
ScaleWidth をチェックしてみなされ。
0726デフォルトの名無しさんNGNG
>>724
ShortPath, ShortName あたりを調べてみなされ。
0727デフォルトの名無しさんNGNG
>>726
ありがとうございました。これで解決できそうです。
0728@NGNG
指定した座標(デスクトップ上)の色を取得する方法は
どんなんがありますか?
100 200と指定したらデスクトップ上でのX=100 Y=200の位置の
色を取得できるような・・・。
0729デフォルトの名無しさんNGNG
>>728
GetPixelってAPIがあるぞ。
昔それにチャレンジして失敗したが(--;
がんばれ。
0730デフォルトの名無しさんNGNG
>>728
Win32API の GetDesktopWindow() と GetPixel() を調べてみなされ。
0731デフォルトの名無しさんNGNG
>>728
デスクトップのウィンドウハンドルは取得できてるの?
0732731NGNG
パオーン
0733723NGNG
ScaleModeはTwip
ScaleTopは0
ScaleLeftも0
ScaleWidthもHeightも適当な値になってます。
原因は・・・。
0734デフォルトの名無しさんNGNG
プログラム初心者のためのVBの参考書を紹介してください。
出来れば初心者さんに聞きたいです。
0735即レスNGNG
>>733
PictureBoxがFormからはみ出してないか?
0736723NGNG
>>735
その可能性は無きにしも非ず。
あたってみます!
0737723NGNG
とおもったのですがそんなはずはないです。

ところでPicture1.Point(0,0)
の戻り値が毎回違うのはどうしてでしょう?
色は同じはずなのに。
0738デフォルトの名無しさんNGNG
>>723
もしかして BorderStyle が 1 になってね?
0739738NGNG
738 は漏れの勘違いだった...スマソ
さっきサンプル書いてみたんだけど問題無く動くんだけどなぁ...何が悪いんだろ。
0740                           NGNG
>>734    この本は、基本からきっちりと解説されている。大事なことが凝縮されている、って感じ。
      一面的に、要点が並んでるって感じ。しかし、それほど重要でなさそうなことにも平ぺったくページを割く。
      全体的に平ぺったい本。でも文法やプログラミングの枠的なところはしっかりと身につけられると思う。この本からは、
      私はあまり元気は得られなかったが、実際に書きながらすると、確かに基礎は身に付く。文法的な知識書、かな。

      初めてのプログラミング Visual Basic 
      http://www.amazon.co.jp/exec/obidos/ASIN/4881357182/ref=sr_aps_d_1_1/250-3193683-3728223

       マイクロソフト公式解説書  この辺がいいという人もいる。
      http://www.amazon.co.jp/exec/obidos/search-handle-form/ref=br_ncs_/250-3193683-3728223

0741デフォルトの名無しさんNGNG
>>739
とんでもございません。
でもやっぱり取得する値は毎回違う・・・。
Versionは8176
違いますか?
0742デフォルトの名無しさんNGNG
>>741
うん ? >>723 では、-1 って言ってたような気がするがのう。
どういう値が返って来てるんじゃ ?
ちなみにわしんとこの Version は、VB 6.0 (SP5) だから 8988 じゃ。
環境が心配なら、ピクチャボックスだけをフォームに貼り付けて Point(0,0)
してみて切り分けたらどうじゃ。
0743738NGNG
>>741
Version 8988 だった。
後、漏れがさっき書いたサンプルって、下記の様なものです。

1) Form に PictureBox を一個貼り付ける。
2) PictureBox の MouseMove イベントに下記のコードを追加する。
  Debug.Print X,Y,Picture1.Point(X,Y)

参考になるとは思えないけど、とりあえず。
0744734NGNG
>>740
サンクスです。参考にします。
失礼ですが、初心者ですか?
0745723NGNG
FormにPictureBoxを貼り付けて
TextBoxもつけて
FormLoadに
a=Point(0,0)
Text1.text=a
とすると
aは-1です。
バージョンの違いですか・・・。
0746即レスNGNG
>>745
Pointの前にMe.Showを追加すれ。

PictureBoxのAutoRedraw=Falseの時は
フォームが表示されてない時は
(フォームの上に別のウィンドウがある時も)
どこにも情報がないので範囲外で-1が返ってくる。
0747デフォルトの名無しさんNGNG
フォーム(*.frm)のソースをエディタで開いて見たら、
VERSION 5.00 ってなってるんですけど、VB 6.0 を使ってても
これで正常ですか?
もしかしたらプロジェクトを 5.0 からアップグレードする時に、
失敗したんじゃないかと心配になったもので・・・。
0748738NGNG
>>723
これはあくまで推測だけど、Load イベント中は、まだコントロール類の
初期化が完了していないからでは?
間違ってたら誰か突っ込んで下さい。
0749デフォルトの名無しさんNGNG
>>747
それで、正常みたいじゃ。わしんとこも VERSION 5.00 となっておる。
正直しらんかったぞ。で、>>746 の Me.Show は追加したのか ?
0750                           NGNG
>>744  はい、まあだいたいその本しか読んでません。しかしもっと自然な解説な本もあるかも。
    プログラミングにそまりきったら、今のプログラムは自分で作るのだし、今のパソコンはまだ生きてませんから、
    そまって自分を失ったら、失いっぱなしです。我を失ったら、自然なものは作れません。私は、
    自分の基礎(自然)を忘れないようにして、つくっていきたいです。パソコンも生き生きしてほしいですね。
    まだ、パソコンも、できたばかりです。自然もそうであるように、これから、少しずつ、
    角がとれていくのでしょう。

0751デフォルトの名無しさんNGNG
>>748
>>746 の言う通り、フォームが表示されていない段階で Point() を実行したため
じゃろ。心配なら、ボタンを一つくっつけて、そのボタンのクリックイベント中で
やれば良いぞ。わしは、テストの時はいつもそうやってるんじゃよ。
0752723NGNG
もうパンツ脱ぐ勢いでソースだします。
おそらくどっかに致命的なものが・・・。
Sub main()
Dim tmp As Long

Load Form1
Form1.Show
'tmp = SetWindowPos(Form1.hwnd, HWND_TOPMOST, 500, 500, 0, 0, SWP_SHOWWINDOW)

Byouga

End Sub
Public Sub Byouga()
'リージョンのハンドル
Dim hRgn As Long

'Combine用リージョンハンドル
Dim hRgnTmp As Long

'CreateRectRgnの戻り値を格納
Dim modoriRgn
'透明にしたい色を指定。
Dim toumeiColor As Long
'For文用
Dim i, j As Integer

Form1.Show

toumeiColor = Form1.Picture1.Point(0, 0)
hRgn = CreateRectRgn(0, 0, 0, 0)
For i = 0 To 31
For j = 0 To 31
If Form1.Picture1.Point(i, j) <> toumeiColor Then
hRgnTmp = CreateRectRgn(i, j, i + 1, j + 1)

modoriRgn = CombineRgn(hRgn, hRgn, hRgnTmp, RGN_OR)
modoriRgn = DeleteObject(hRgnTmp)
End If
Next j
Next i


modoriRgn = SetWindowRgn(Form1.hwnd, hRgn, True)

End Sub
お願いします!
0753デフォルトの名無しさんNGNG
>>750
なんか、怖い...。
0754デフォルトの名無しさんNGNG
>>749
VB 6.0 でも VERSION 5.00 で正常ですかー。
これで安心しました。さんきゅ〜です。
0755738=748NGNG
>>751
突っ込み感謝。
0756723NGNG
いまきずいたんですけど、
if文のあたりに入る前にbreakかけると
画面に1ドット程度の
ウィンドウが表示されていました。
どこでこんなに小さくされてしまってるの??
0757デフォルトの名無しさんNGNG
>>752
VB は、Form1.Show とやってもコードが実行されているとフォームを表
示しないじゃ。だから、Point() の値がおかしくなるんじゃろ。
> Form1.Show
> Byouga
の間に、DoEvents を入れて、フォームを表示させればいいと思うぞ。

あと老婆心ながら言っておくと、Dim i, j As Integer と書くと、i は
Variant になるから、気をつけたほうが良いぞ。
0758即レスNGNG
>>723
あー、つまりこのコードは、
「左上のピクセルと違う色を元にリージョンを作成して
ウィンドウに設定する関数」
ということでいいか?
サイズからしてアイコンを読み込むんだろうが。
PictureBoxはScaleMode=VbTwipsなんだよな?

じゃあ
PictureBoxのAutoRedraw=Trueにして、
適当なアイコンをPictureBoxに読み込んで、
×If Form1.Picture1.Point(i, j) <> toumeiColor Then
○If Form1.Picture1.Point(Form1.ScaleX(i, vbPixels, vbTwips), Form1.ScaleY(j, vbPixels, vbTwips)) <> toumeiColor Then
だ。

>>756
分からんな。他のコード見直してみな。
0759723NGNG
>>757
>>758
な・なるほどー
すごい、凄すぎる。
またお願いします。

0760デフォルトの名無しさんNGNG
>>758, >>723
ScaleMode を vbPixel にすることを検討してみてはどうじゃ...。
なお、こういう処理をやるならラスタオペレーションを勉強すると良いか
もしれないぞ。
http://homepage1.nifty.com/CavalierLab/lab/win/transparent.html#sprite
0761即レスNGNG
>760
え?俺?

俺は普段画像処理にVBの標準関数は使わないので、、、
0762723NGNG
いやようやくリージョンについてわかってきたのですが、
先のソースでCombineRgnしたリージョンは
どーーーしてもSetWindowRgnの後表示されないのです。
普通にCreateRectRgnしたやつやCreateEllipticRgn
でつくったやつは表示されるのになぜゆえなのでしょう。
Delphiのソースまで読んだのに・・・。
0763デフォルトの名無しさんNGNG
送るメニューから起動して、送られたファイルのパスを取得するには
どうしたらいいですか。
ワケあってVB4なんですけど。
0764デフォルトの名無しさんNGNG
質問です
コントロールによくあるToolTipTextプロパティの文字列は改行できませんね?
vbCrLfダメ vbNewLineもダメ もちろん chr(13)やchr(10)もダメ
使えネー そう思わない?
0765即レスNGNG
酒飲みながら寝ようとしたんだが。
結構みんな起きてんだね。お疲れ。

>>762
上記のサンプルコードでは俺の所では動いたぞ。
他のところが間違ってるんじゃないか?
君はC系出身みたいだからVBの仕様で
とまどうところが多いかもな。

>>763
SendToフォルダとCommand。
VB4でも使えるだろう。たぶん。

>>764
まじめにTip作りたいならCreateWindowExを使う。
VBらしくFormで代用してもいいな。楽だし。
0766763NGNG
>>765
取得されたパスがMS−DOS名(チルダ入り)になるのは仕様ですか?
0767デフォルトの名無しさんNGNG
Windowsの仕様だよ。
長いファイル名にしたかったらFindFirstFile APIでも使え。
0768デフォルトの名無しさんNGNG
正確には、Win9x系の仕様だな。
NT系だとロングファイルネームで取得される。
汎用性を保ちたいなら、そのへんも注意してや。
0769デフォルトの名無しさんNGNG
早朝にナイスフォローやね。
0770763NGNG
手早いアドバイス、ありがとうございました。

このへんも参考にしました。
ttp://www.vbvbvb.com/jp/index.html
ttp://homepage2.nifty.com/sak/index.htm
0771デフォルトの名無しさんNGNG
>>766
手抜きしたかったら、Dir(strShortPath)ってやってファイル名だけ
ロングファイル名を取得する手もある。パスは取得できないが。
まぁ、1階層ずつ全部DirすりゃOKだけど。
0772723NGNG
いやー昨日は泣き寝入りして
起きてすぐCombineRgnの引数を
RGN_ORから2に変えたら難なく成功。

VBだと定数って使えないのでしょうか・・・。
0773デフォルトの名無しさんNGNG
>>772
自分で定義しないと使えない。
その場合なら
Const RGN_OK = 2
かな?
0774デフォルトの名無しさんNGNG
VB tips 1000+ってなかなかいいぞ
0775デフォルトの名無しさんNGNG
フォーム上のコントロールのプロパティにコレクションから値を設定する方法はありますか?

Command1のキャプションを変更する際に、
FN = "Form1"
CN = "Command1"
PN = "Caption"
Value = "TESTCaption"
Forms(FN).Controls(CN).Properties(PN) = Value
というようにはできないもんでしょうか?
0776723NGNG
APIでよく使われる定数をVBで使う場合
どこを見て実際の数値を調べればよいのですか?
0777デフォルトの名無しさんNGNG
>>775
FormsにForm1が複数あったらどうするんだい?
0778デフォルトの名無しさんNGNG
>>776
VCのヘッダーファイル
0779デフォルトの名無しさんNGNG
>>775
すばやいレスありがとうございます。

>FormsにForm1が複数あったらどうするんだい?
同じ名前のフォームが造れることは知りませんでした。

コントロールを指定するところまではできるんですが、
プロパティを指定する方法がどうしても見つかりません。
0780デフォルトの名無しさんNGNG
>>779
CallByName
0781デフォルトの名無しさんNGNG
>>780
ありがとうございますぅぅ!!
できました。感謝いたします。

ついでに質問なんですけど、
CallbyNameで任意のプロシージャを起動できますか?
0782781NGNG
解決しました。プロシージャをPublicにすればOKでした。
0783デフォルトの名無しさんNGNG
>>772
ちょっと待て、それまで未定義でやってたのかよ。悪いこと言わんから、
全部のソースの頭に Option Explicit 入れろ。(ついでに、ツール(T) -
オプション(O)... の編集タブの「変数の宣言を強制する(R)」のチェックを
入れとけ。

>>773, >>776
API ビューアー使え。でもたまに間違えてるらしいから、MSDN で確認した方が
良い。(つーか、あんまり VB で API 使うな。)
0784デフォルトの名無しさんNGNG
素人サイトの軽知識でAPIをVBで使っているとは…(゚Д゚;)
確かなリファレンス本ぐらい買えよ
情報の信頼さを考えれば決して高くない
0785デフォルトの名無しさんNGNG
http://www.vbvbvb.com/jp/guide/index.html
0786デフォルトの名無しさんNGNG
速度と使い勝手からどーしてもAPI多用しちまいますが
ナニカ問題があったんですか。
ビットマップ転送なんかどーしても頼らんとムチャかと。
0787デフォルトの名無しさんNGNG
厨よ BitBltなど使うな
厨には危険な割には速度は大して出ない
DirectDraw7を使え
DirectX 7 for Visual Basic Type Libraryを参照すること

Option Explicit
Dim ObjDX7 As New DirectX7, ObjDD7 As DirectDraw7
Dim PrDDSurf7 As DirectDrawSurface7, OffDDSurf7 As DirectDrawSurface7
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long



Private Sub Form_Click()
Unload Me
End Sub

Private Sub Form_Load()
Me.BorderStyle = 0
End Sub

Private Sub Form_Resize()
Set ObjDD7 = ObjDX7.DirectDrawCreate("")
Call ObjDD7.SetCooperativeLevel(Me.hwnd, DDSCL_NORMAL)

Dim ddsd1 As DDSURFACEDESC2, ddsd2 As DDSURFACEDESC2
With ddsd1
.lFlags = DDSD_CAPS
.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE
End With
Set PrDDSurf7 = ObjDD7.CreateSurface(ddsd1)

With ddsd2
.lFlags = DDSD_CAPS
.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN
End With
Set OffDDSurf7 = ObjDD7.CreateSurfaceFromFile("ビットマップファイルのパス", ddsd2)

Dim nRECT As RECT, fRECT As RECT, rv As Long
rv = GetWindowRect(Me.hwnd, fRECT)
rv = PrDDSurf7.Blt(fRECT, OffDDSurf7, nRECT, DDBLT_WAIT)
End Sub

解説いるかい?
0788デフォルトの名無しさんNGNG
厨達よ 解説しておこう
Dim ObjDX7 As New DirectX7, ObjDD7 As DirectDraw7
DirectX7オブジェクト;VBタイプライブリ参照必須、DirectXを使うって宣言だ
DirectDraw7オブジェクト;DirectDrawを使う宣言だ

DirectDrawではサーフェイスと呼ぶ、ビットマップを格納する仮想スクリーンを使う
(Win32APIのディスプレイデバイスコンテキストと同じようなものだ)
これが表示する全ての基本である、描画はサーフェイスに行なう
実際に画面に表示されるサーフェイスはプライマリーサーフェイスと呼ばれる
その他の表示されないものはオフスクリーンサーフェイス(バックバッファ)と呼ばれる
基本描画法はプライマリーサーフェイス作成は必須
オフスクリーンサーフェイスを作成して、そこに表示するビットマップを格納しておく
表示するには、そのオフスクリーンサーフェイスからプライマリーに領域を指定して転送してやる
この作業はBitBltと仕組みは同じだ

さてサーフェイスの作り方だが…
DirectDrawのモードによってやや異なる
ウインドウモードとフルスクリーンモードだ
ウインドウモードでは、ほぼBitBltと同じ使い方になる
座標系なども説明する必要があるか…
もう面倒なので 希望者あったらな(藁
ジャネー
0789デフォルトの名無しさんNGNG
>>786
だったら、VC 使った方が良いと思うが...。
0790               750NGNG
無理にそう思うからです。

0791デフォルトの名無しさんNGNG
別にAPIぐらい使ったっていいと思うが。
ただのツールでもBitBlt使うときもあるだろーに。
(でもMSDNぐらい見ろ、ってのは同意)

>>786
PaintPictureがあるけどね。
無理矢理VB標準関数だけでやるよりゃ
いいと俺は思うよ。

>>789
VBが好きだからです。ナンツッテ

#スレとあんま関係なくてスマソね。
0792即レスNGNG
↑名前入れんの忘れた。とほほ。
0793デフォルトの名無しさんNGNG
VBはヘルプが充実してて、作例見れば初心者でもなんとかなってしまう。
でもちょっと込み入ったことやろうとすると小回りがきかない。
0794デフォルトの名無しさんNGNG
厨達よ モーニングサービスだ

プライマリーサーフェイスは作成時におまえらのディスプレイ表示画面と同じサイズで作成される
見ている画面そのものと言う事だ
それに対してオフスクリーンサーフェイスは作成時にサイズを決める いいな?

DirectDrawを使うからにはウインドウモードとフルスクリーンモードのどちらにするか決める
ウインドウモードではDirectDrawアプリは通常通りWindow支配下にある、画面を占有することはできない
まあふつうのVBアプリと変わらないと思ってよい(描画速度の事ではない)
フルスクリーンモードはその名の通り画面をこのアプリだけのものに占有できる
ただし、画面はすべてサーフェイスに占有されるため、VBに限らず、その他のウインドウはユーザーインターフェイスに関わるイベントは無意味となる
これはフォームなど表示できないから当然わかるであろう
しかしパフォーマンスはウインドウモード以上に期待できる

まず慣れないうちはウィンドウモードでやることだ
Set ObjDD7 = ObjDX7.DirectDrawCreate("")
これは DirectX7オブジェクトからDirectDraw7オブジェクトを作成している
ここからDirectDrawが扱える、引数の""はこれでいい、現在デフォルトのビデオカードが使用される
何も考えるなw
Call ObjDD7.SetCooperativeLevel(Me.hwnd, DDSCL_NORMAL)
これはさっき言ったモード決定だ
このDirectDrawをバインドするウインドウハンドルは必要だ(フォームでなくてもよい)
DDSCL_NORMALはウインドウモードと言う事だ、今回はフルの設定は割愛する

さあサーフェイスの作成だ DDSURFACEDESC2構造体がまっているなw
初心者は最初わかりにくいが、わかってしまえばなんのことはない
ウインドウモードでは設定するパラメータは多くない
おっとDDSURFACEDESC2構造体などはVBのユーザー定義型として既にDirextX7 for VBのタイプライブラリに宣言されている
じゃあ ああ 面倒だな
また 後でな (´Д`;)新手のもったいぶりアラシか オデは(藁






 
0795Part7スレ217NGNG
>タスクマネージャのアプリケーションの所に
>アイコンを表示させない方法知ってる人いる?ぜひ、おせーて下さい。

が自己解決したんで。
ShowWindow(hWnd,SH_HIDE)でいけました。
こんなことで出来たのか。鬱。
0796まとれす ◆mato/KTI NGNG
>>786
じつは、StrechBlt()よりPaintPicture()の方が速かったりする。ま、条件によるの
かもしれんが
0797デフォルトの名無しさんNGNG
>>796
今は無き VB増強作戦で検証してたのを見た気がする。
あのサイト良かったのにナァ。
0798デフォルトの名無しさんNGNG
動的配列を確保してから解放するのはどうすればいいのですか?
0799即レスNGNG
>798
Erase
0800デフォルトの名無しさんNGNG
>>799
ありがとうございました。
できましたー。
0801デフォルトの名無しさんNGNG
>>796
StretcBltとPaintPictureのどちらが速いかは、環境次第で違う結果になる。
でも、両者にあまり速度差はないので、
拡大/縮小やるなら、やや高機能なPaintPictureの方がお勧め。
0802即レスNGNG
APIの使い始めにStrechBltを使うとAPIの意味がないと思いこむ罠。

#StrechBltが遅すぎる気もするな。
#VC++使って自前で作った方が速いんじゃないか?
0803即レスNGNG
追記。

昔の話ね。(2,3年ほど前)
今は速いかも。
0804デフォルトの名無しさんNGNG
>>794
その調子でDirectMusicも〜
0805デフォルトの名無しさんNGNG
複数のファイルを結合させるプログラムを作ろうと思うのですが、
ファイルの開き方はやはりBinaryで開くのでしょうか?
一般的に結合ソフトはどのように結合させてるのでしょうか?

とんちんかんな質問かもしれませんが、よろしくおねがいします。
0806デフォルトの名無しさんNGNG
                   ||
  アホォ               ||        モウクンナ
         ヴォケ      ∧||∧←>>805       イッテヨシ ! 
  ∧_∧   ∧_∧      (/ ⌒ヽ      ∧_∧   ∧_∧
 ( ´∀`)  ( ´∀`)      | |   |     (´∀` )  (´∀` )
 (    )  (    )      / ノ     (    )  (    )
 | | |   | | |       | ||      | | |   | | |
 (__)_)  (__)_)     怫      (_(__)  (_(__)
                    ;
                   -━━-
0807即レスNGNG
>>805
俺ならメモリに読み込んでPutで追記。
ファイルそのままにしたいならOpenはBinary。
だな。

#たまには質問。
#ファイルの末尾を削る時ってみんなどうしてる?
#俺は全部読み込んでKill→Putなんだけど無駄が多くて。
0808805NGNG
即レスさん
レスありがとうございます。
なるほど、その方向でいきたいと思います。
まだまだ前途多難ですが、、、

#質問はわかりません。すいません。
0809デフォルトの名無しさんNGNG
>>805
ファイルによるだろ。テキストファイルなら、Text モードだし、
バイナリファイルなら Binary モードだ。どっちかわからんのなら、
プログラム作る能力が無いのだから、あきらめれ。

>>807
俺は、一時ファイルに必要部分のみコピーして、Kill 元ファイル、
Name 一時ファイル AS 元ファイル だな。Kill → Put だと、
その間に異常終了したらファイルがなくなってしまうので、ちょっと
怖い。
0810まだまだ未熟NGNG
VBでDirectX7をつかってゲームを作っているのですが、半透過のやりかたがよくわかりません。
透過ならカラーキーを設定して
Call BackSurf.BltFast(x, y, CharSurf, r, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
でできるのですが・・・。ご存知の方、いますか?
0811まとれす ◆mato/KTI NGNG
>>805
SetEndOfFile()なんてどうだ? 使ったことはないが

>>810
DirectXはよくわからんが、普通はアルファブレンドとかを使うな
0812805NGNG
>>809さん
レスありがとうございます。
テキストファイルをバイナリモードで開けてはダメなのでしょうか?
困ったな、

>>まとれすさん
レスありがとうございます。
SetEndOfFileですか、難しそうですけど、使いこなせれば、うまく
いくかもしれませんね。ただ、ほんとに難しそう、、、

ありがとうございました。
0813809NGNG
>>812
> テキストファイルをバイナリモードで開けてはダメなのでしょうか?
別に良いんだけど、テキストファイルだと行単位の処理とかないの ?
テキストモードなら Line Input # で、行単位に読んだりできるので、
ちょっと楽。あと、Binary モードだと指定したファイルが無い時に
エラーにならずにそのファイルを作っちゃうので注意が必要。
0814デフォルトの名無しさんNGNG
>>810
Darw7では実装していない
DX8以降Drawは7のままであるから Drawでは、ないという事だ
ただし3Dのほうでテクスチャーで、できるようだ オデは3Dはやらない フィギュアヲタではないからだ

パフォーマンス無視のテクヒントをあげておく
Msimg32.dllにAlphaBlend関数がある
サーフェイスのデバイスコンテキスト互換ハンドル取得はわかるかな?
Draw使ってんのにAPIで描画という情けない技(藁
0815まとれす ◆mato/KTI NGNG
>>812
すまん。>>811の回答は、>>807の間違いだった
で、元の質問に対してだが、Shell関数でCOPYコマンド呼ぶ、ってのがかなり速いぞ
0816デフォルトの名無しさんNGNG
int a=0;
みたいな書き方はVB6ではできなかったですよね?
0817即レスNGNG
>>815
ありがとう。やってみたけど、これいいね。
早速自前のライブラリに追加しますた。

>>816
出来ないよ。
a as longはa=0で初期化されるけどね。
0818812NGNG
>>813さん
レスありがとうございます。
なるほど、ためになります。
その点に注意しながらやってみます。

>>815さん
レスありがとうございます。
あの回答は即レスさんのでしたか、、、
まとれすさんのことだから、これをうまく使う方法があるんだろうな、と思ってました。。。
で、Shell関数でCOPYコマンド呼ぶってのは、ファイルの中のデータを読まずに、
ファイルを単純に結合してしまう、ってことでしょうか?
これはかなりよさそうですね。今からそれを調べてみます。

ありがとうございました。
0819デフォルトの名無しさんNGNG
>>807
SetEndOfFileですなー。
こんな感じ。

hFile = CreateFile(strFilename, GENERIC_WRITE Or GENERIC_READ, FILE_SHARE_READ, 0&, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL Or FILE_FLAG_SEQUENTIAL_SCAN, 0&)
If hFile = INVALID_HANDLE_VALUE Then Exit Function
Call SetFilePointer(hFile, lngFileEndPos, 0&, FILE_BEGIN)
Call SetEndOfFile(hFile)
Call CloseHandle(hFile)
0820デフォルトの名無しさんNGNG
ADOでAccessのデータベースに接続しています。
フォームに単表形式で表示しているのですが、現在表示しているレコードを
「15/20」みたいに何レコード目かを表示したいのです。((現在のレコード)/(全件数))
全件数はRecordset.RecordCountで取れたのですが、現在表示中のレコードが
何番目かというのの取得方法が分かりません。
おながいします。
0821まとれす ◆mato/KTI NGNG
>>816
できない。Constなら別だが。VB.NETでは、できるようになってる

>>818
そういうことだ。待機の問題とか出てくるけどな

>>820
AbsolutePositionでどうだ? 一応行っておくが、RDBMSでは、何番目、
という考え方はあまり使わないぞ(代わりにカーソルの位置を使う)
0822デフォルトの名無しさんNGNG
まとれすかっけーな。なんつーか、怖いモノなしじゃん。
0823810NGNG
>>814
そうですか。ありがとうございました。
表示する画像パターンを増やしてなんとかごまかします・・・・・。( ;´Д`)ソレデセイイッパイ
0824デフォルトの名無しさんNGNG
Dim Arr1() As String
Arr1 = Split("a b c d e"," ")
Debug.Print UBound(Arr1)

ってすると、4とでる。
つまり、Split関数は勝手にReDimしてくれてるってわけ?
そんな記述、どっかにありましたっけ?

0825あの・・・NGNG
プログラム作成の解説とかのホームページに
よくウィンドウ丸ごとgif画像とかにして
貼りつけたりしてますがあれはどうやってるん
ですか?詳しい方教えてくださいな。
0826どこかへ消えてくださいNGNG
>>1-824

825のような常識はずれの低脳初心者なクソにマジレスしないように。
0827デフォルトの名無しさんNGNG
>>825
Photoshopで出来ます。
ttp://www.adobe.co.jp/products/photoshop/main.html
0828デフォルトの名無しさんNGNG
>>825

以下のソフトを使用。開発者の常識
http://www.sourcenext.com/products/satsuga/
0829デフォルトの名無しさんNGNG
デジカメ買っといで(W
0830デフォルトの名無しさんNGNG
>>828
すげ、、
こんな素晴らしいソフトがたった\4,900
しかも今ならドットコム価格\4,165 、、、恐るべしソースネクスト。
0831デフォルトの名無しさんNGNG
>>825
PhotoShopは高いからソースネクストの製品がいいよ。
つーか、俺の知り合いのPGも全員これ。
C使ってる連中は画面キャプチャ専用のプログラムを自作
するのが常識らしいが、VBAやVBのPGはこのようなツールを
使うのが常識。API使って作れないことも無いが、4千円
程度でこのような高機能なユーティリティが使えるなら
買う方が良い。
0832デフォルトの名無しさんNGNG
画面キャプチャは最近ようやくソフトウエアが
整ってきたからなあ。
0833デフォルトの名無しさんNGNG
アホか。シェアウェアなんて割れちまえよ
0834デフォルトの名無しさんNGNG
>833
ハゲ同
0835デフォルトの名無しさんNGNG
つーかMXやれよ
0836デフォルトの名無しさんNGNG
割れる気にもならん
0837デフォルトの名無しさんNGNG
>>833-836
お前等、痛すぎ。
0838デフォルトの名無しさんNGNG
>>833-836
マジレス恥ずかしーあはは?
0839あの・・・NGNG
>>828
ありがとうござます!!
こんな良いソフトがあるとは知りませんでした(汗
さっそく買っちゃいました。マジレスして頂いて
ありがとうございますぅ!!日々精進です。
0840ああぁぁぁ......NGNG
828はマジレスじゃないと思うのは俺だけか?
0841デフォルトの名無しさんNGNG
>>840
俺も。
0842デフォルトの名無しさんNGNG
その前に、「あの・・・」氏はマジ質問なのかな。
0843デフォルトの名無しさんNGNG
FindWindowかなにかでターゲットのhWndを取得して、
GetWindowDCでhDCを取得、
GetWindowRectでウインドウサイズを取得しBitBit、
ReleaseDCでhDCを解放。
書き写した画像を適当な方法で保存してできあがり。

…一応マヂレスしてみた。
0844まとれす ◆mato/KTI NGNG
>>822
ほめても、何も出ないぞ(テレ笑

>>824
ほんとだ。ま、Array関数と同じ動きだな

>>825
[Alt]+[PrintScreen]して、ペイントにコピー、Officeをインストールしてれば、
gifで保存できる

>>843
まじめにやろうとすると、カーソルをどうするとか、半透明ウィンドウをどうする
とかって問題が出てくるな
0845デフォルトの名無しさんNGNG
インターネットに接続された瞬間、切断された瞬間ってどうやって取得したら
いいでしょうか。
0846デフォルトの名無しさんNGNG
>>845
外にping打ちまくる。
0847845NGNG
>>846
バカ丸出し
0848まとれす ◆mato/KTI NGNG
>>845
>>846の方法は、あながち的外れじゃないぞ

とりあえず、RASならWM_RASDIALEVENTをトラップすればよさそうだな。問題は、
LANなんだが・・・

LANの場合は、厳密な判断は無理だろう。ルータやプロクシがどうなってるか、って
ことになっちまうからな。それこそ、外にPingを打つとかで判断するしかない
0849デフォルトの名無しさんNGNG
>>846、>>848
ありがとうございます。ちと調べてみます。
>>847
偽物氏ね。
0850デフォルトの名無しさんNGNG
おおアレテルな
いいぞ
厨スレらしいぞ
0851デフォルトの名無しさんNGNG
質問です。グローバル変数は良くないってよく聞きますが具体的にどんなとこがやばいの?
折れいつも楽だからループカウンタ以外ほとんどグローバルにしちゃうんですけど。
ちなみにこんな質問するくらいのスキルです。
0852デフォルトの名無しさんNGNG
もしPGの仕事をしていたら殺す。
0853デフォルトの名無しさんNGNG
>>851
フォームにコントロールはっつけて使っているだけの
純な厨はそれほど深刻ではないYO
いいぞ、それでも
わかるようになったらわかる
今はイイ(・∀・)
0854デフォルトの名無しさんNGNG
>>852
俺がプロPGなれるなら誰でもなれちゃうでしょ^−^;

>>853
そーですか、でも殺意を持たれるみたいなのでなるべく使わないようにシマス。
0855デフォルトの名無しさんNGNG
>>852
変数が多いと変数名がかぶって、考えるのがめんどいから
さらに、スペルミスで関係無い変数を参照してしまう可能性があるから
それを減らす為に長い変数名を付けると、タイプするのがめんどいから
それでも、バカなやつは間違えるから
0856即レスNGNG
>>851
デバッグしづらいからだよ。

例えばグローバル変数に依存してる関数を呼び出す時は、
いつどこでそのグローバル変数が変化するかも把握しとかないと
いけないだろ?
ある程度でかいアプリなら、実際不可能だ。

#いかにグローバル変数がウザいかは
#ある程度規模の大きいアプリを作るか、複数の人間で
#開発してみればすぐ分かるよ。
0857探索者&rlo;トステ@&lro; ◆RXcNtpf. NGNG
テストさせてくらはい。
スレ汚しすまそ。
0858どうやって&lo;やったの&ler;NGNG
トリップ付きで!!
0859どうやって&lo;やったの&lre;NGNG
鬱だ氏脳
0860デフォルトの名無しさんNGNG
DirectSoundを使うとWAVEファイルがどうやっても8bit音声で出力される もうだめぽ。・゜・(ノД`)・゜・。
0861VB初心者NGNG
質問です。
バリアント型がもつ「Empty 値」と「Null 値」。
これの内部的なビット並びはどうなっているのですか?
asc() で調べようとするとエラーになってしまいます。

また、Null 値はどういった用途に使うのですか?

よろしくお願いします。
0862探索者&rlo;問質@&lro; ◆RXcNtpf. NGNG
質問でふ教えていただきたいんですが
TabStrip上で右クリックされたら、っていう判定はできますか?
それと、TabStripに何かをD&Dしてどのタブにドロップされたのかを
調べることはできるのでしょうか?
よろしくお願いいたしまふ。
0863デフォルトの名無しさんNGNG
>>861
Variant 型は、型情報 (2バイト) + その時の内容 の形で保存されてい
る。(Put ステートメント参照のこと。) だから、Empty 値の時は、
型情報が &h0000 になっているし、Null 値の時は、&H0001 になってい
る。(VarType 関数参照のこと。) より詳細が知りたければ、
Variant 変数を Put でディスクに書き出して、バイナリエディタなどで
見ればいい。
Null は、無効な値を示す時に使う。例えば、入力された文字列を返す
ルーチン等で、キャンセルボタンがクリックされたら Null を返すように
するなど。あと、データベースで連携の時にデータベースも Null 値を
持っているからそう言う時に便利。

>>862
> TabStrip上で右クリックされたら、っていう判定はできますか?
SSTab1_MouseDown() でできると思う。
> それと、TabStripに何かをD&Dしてどのタブにドロップされたのかを
> 調べることはできるのでしょうか?
マウスの座標値から判断するしかなさそう。
0864まとれす ◆mato/KTI NGNG
>>851
「デバッグしづらい」は間違いじゃないがどちらかといえば「バグを起こしやすい」ってところ
かな。10個ぐらいのグローバル変数なら、何をやっているのか管理できるけど、100個になったら
無理。そのために、構造体を使ったり、クラスを使ったり、ローカルスコープに押し込めたりする。

これが「カプセル化」。オブジェクト指向でも出てくる重要な概念だから、きちんと把握しておいた
方がいいな

>>861
内部的な状態が知りたければ、RtlMoveMemory()とかでコピーして調べるしかない。
で、Null値は、データベースと一緒に使われるもので、「何も入っていない」状態を示している。
Empty()は、初期化されていない状態、だったかな

>>862
MouseDownイベントでとれるんじゃないか? もう一個の、どこのタブにドロップされたかだが、
結構面倒みたいだな。DropされたときのMouse位置から計算して求めることができるぞ
0865まとれす ◆mato/KTI NGNG
>>864
うお。サンプルプログラム書いて試してたら、もろかぶった・・・鬱
0866861NGNG
>>863 >>864
ありがとうございます。
そうか、データベースは思いつかなかった。
Pro*C でオラクル相手の仕事してるのに……(w
VB はユーザーインタフェース専門言語って思っていたので。
0867探索者&rlo;問質@&lro; ◆RXcNtpf. NGNG
>>863
>>864
ありがとうございまふでふ。
D&Dの方は座標で調べるんですね。
とりあえずやってみまふわ。
でわでわ、、、
0868デフォルトの名無しさんNGNG
サウンドを鳴らしながらフォームを移動させたいのですが
DirectXを使わないで良い方法ありませんか
0869まとれす ◆mato/KTI NGNG
>>868
ん? PlaySoundとかでもできるだろ?
0870デフォルトの名無しさんNGNG
これだと音楽鳴らしながらできるんですか。
いつもMDIコントロールとかいうのをつかってました。
それだと音が鳴り終わらないと次にいかないんですよね。
ありがとうございます。
0871デフォルトの名無しさんNGNG
VBで変数の初期化ってどうやるんですか?
Booleanがたを宣言時にTrueにしたいのですが
0872デフォルトの名無しさん NGNG
Dim temp As Boolean = True
0873デフォルトの名無しさんNGNG
>>872
VB.NETかよ!?
0874デフォルトの名無しさんNGNG
>>872
それだと「ステートメントの最後」
とかいうエラーになるんですが・・・。
0875デフォルトの名無しさんNGNG
>>874
Dim temp As Boolean
temp = True

そのまんま。VB6までは宣言と同時に初期化はできない。(デフォルト値で初期化される)

Dim temp As Boolean : temp = True
とかできなくないけど、あんまり意味ない。
0876デフォルトの名無しさんNGNG
>>870
非同期型のオプションを付けて鳴らせば、同時進行が可能。
0877通りすがりNGNG
宣言:
Declare Function PlaySound Lib "WINMM" Alias "PlaySoundA" (ByVal pszSound as String,ByVal hmod as Long,ByVal fdwSound as Long)As Long

引数
pszSound:WAVEファイル名、またはリソース、またはメモリアドレス、vbNullStringなら演奏中止
hmod:ファイルの時0,リソースを使う時、実行モジュールインスタンスハンドル、
fdwSound:下記演奏動作指定フラッグ(組み合わせ可)
&H20000:ファイル指定、&H40004:リソースID指定、&H4:サウンドデータをメモリにロード <pszSoundに合わせる事
&H1:非同期再生、&H0:演奏終了まで戻らない
&H8:繰り返し再生
&H10:他に再生中なら実行しない

この関数の戻り値:エラーでないとき1 エラー0
例
Dim r As Long,WData() As Byte
WData()=LoadResData(リソースID、リソース定義名)
r=PlaySoundA(WData(0),0,&H1 Or &H4)

注:バイト配列に読み込んだ場合、配列の初期要素WData(0)は先頭メモリアドレスである

厨よ
わからないならむやみにAPIに手を出すな
VBどころかWINのクラッシュを招くぞ
ジャナ

0878もったいぶりアラシで決定NGNG
DDSURFACEDESC2構造体の説明するかい?藁
0879デフォルトの名無しさんNGNG
windowsXP + VB6.0なんですがFormプロパティの
BorderStyle = 0(なし)にしてもタイトルバーが
消えません
これって仕様?それともただの暴走?
win98のときはそんなことなかったのにあとほかに原因ありますでしょうか
0880デフォルトの名無しさんNGNG
>>862
過去ログにTabStripで右クリックのサンプルコードがでてるよ。
このスレか、一つ前のスレだったと思う。
0881デフォルトの名無しさんNGNG
>>878
ゲーサロ野郎ハケーン!
0882即レスNGNG
>>879
コードでやってるんならControlBox=Falseかつ、
Caption=""じゃないと消えない。

デザイン時にやってるなら今XPが無いから分からんな。
0883デフォルトの名無しさんNGNG
>>864
ローカルスコープに押し込めるってどういう意味ですか?
というか他のモジュールで同じ変数を使いたいのでグローバルにしちゃうんですが、
どうすれば使わず済むんですか?
真面目に疑問です。教えて!
0884デフォルトの名無しさんNGNG
「Visual Basic大全500の極意」って、
目次や索引のページ数がデタラメなだけだと思ってたら、CD収録の
サンプルまで中身がダメダメだった。
出来が悪いとかじゃなくて、プロジェクトファイルで存在しないフォーム
呼び出してたり。
改訂版出たら無料で取り替えたりしてくれんのかな?
改訂版の印税まで著者に入ったりしたらイヤだぞ。
0885デフォルトの名無しさんNGNG
そんなもん買ってる君にアーメン。
0886山太郎NGNG
>883
他モジュールから参照したい場合は、プロパティプロシージャを通して公開すべし。
その変数がモジュールに依存しない、本当の意味でのGlobalなものでない限りは
グローバル変数化は極力避けるようにした方が無難だよ。

...でも、このへんの大切さは一度失敗してみないと分からないかもなァ。
0887まとれす ◆mato/KTI NGNG
>>879
こっちの環境だと消えるぞ

>>883
パブリックにしない、ってことだ。逆に聞くが、どういう用途の変数をグローバルに
したいんだ?それを聞いてから、回答を考えることにするぞ

グローバル問題の直接的な解決ではないが、昔やった小ネタでは、

Type g
End Type

という構造体を作っておいて、グローバル変数をこの構造体のメンバーにした、
なんてのがあったな。スコープの問題はクリアできないが、プログラミング上の
管理はすごい楽だった。

あと、デバッグ用のフォームを用意しておいて、グローバル変数を全部その
フォームのラベルに格納したり。デバッグ時は、変数の値を見ることができるので、
すげー便利だった。もちろん、リリース時には非表示にするけどな

>>884
出版社に訴えろ。改訂版がでることは、まずないだろうけどな。売れ行きがよければ、
版を重ねたときに訂正されるかも。そのときは、著者に印税が入るな
0888デフォルトの名無しさんNGNG
VBでネットワーク経由のプリンタへのポートを変更するにはどうしたら良いでしょうか。
Win98でいう、プリンタのプロパティ→詳細タブ→ポートという部分を変えたいのです。
---------
現在ポートは
    「\\ServerA\Printer」
になっていますが、
これを
    「\\ServerB\Printer」
にしたいのです。
---------
数十台のクライアント端末でこの作業をするので、自動化出来ればと思ったのですが…。
0889888NGNG
追記。
あるプリンタ情報に「ポートの追加」→「それを使用」→「以前のポートを削除」と
出来れば良いのですが…。
ご存知の方おられましたらおながいします。
0890デフォルトの名無しさんNGNG
皆さん長い間お世話になりました。
今回をもってVBを卒業させていただきます。
次回は・・・。
0891デフォルトの名無しさんNGNG
COBOLです。
0892890NGNG
あ、C#始めました。
0893デフォルトの名無しさんNGNG
そして挫折しました。
0894デフォルトの名無しさん NGNG
>>888
>おながいします。
人にもの聞くのにふざけてやんの
0895デフォルトの名無しさんNGNG
>>879
メニューバーを出しているからだったりして…
うそうそおこらないでぐはっ
0896まとれす ◆mato/KTI NGNG
>>888
ポートの変更ってのはやったことがないんだが、SetPrinterじゃだめなのか?

>>892
がんがれ。

>>894
>>888はそんなこと言ってないが・・・ 2ch初心者か?
0897!894NGNG
>>889で言ってる。
0898デフォルトの名無しさんNGNG
おねがいしますよりおながいしますの方が気持ちがこもってると思う
0899デフォルトの名無しさんNGNG
>>886
プロパティプロシージャを通して公開・・・の意味が分からないです・・・
すいません;

>>887
グローバル変数を構造体にまとめる、っていうのはいいアイデアですね。
今度から使わせてもらいます(グローバル使うなって・・・)

どういう用途の変数を・・・って質問ですが、
例えばrect型を10個くらい作って、最初に全部代入しておいて、Bltの時に使い分ける、という風にしてるんですが、
(一つのrectに毎回入れなおすのは処理の無駄な気がするので・・・)
その代入させる処理が結構長いので、フォームモジュールが長くなるのが嫌なので別のモジュールでやりたいんで、
仕方なくその10個のrectをpublicにしてるんです。
こんな感じなのでどんどんグローバル変数が増えてしまう・・・
どうすればいいんでしょうか?
0900899NGNG
ちなみに883です。名前書き忘れました。スマソ
0901デフォルトの名無しさん NGNG
>>896

>888はそんなこと言ってないが・・・ 2ch初心者か?
あはは〜、言ってますよ。注意力が幼稚園児レベルだねえ〜。
0902デフォルトの名無しさんNGNG
>>899
10個のrectをクラスモジュールに入れればいいんじゃないの?

dim rect1 as class1
dim rect2 as class1

set rect1 = new class1
set rect2 = new class1

rect1.a=1
rect1.b=1
rect1.c=1
・
・
・
rect2.a=1
rect2.b=1
rect2.c=1
・
・
・
0903もったいぶりアラシNGNG
さあ厨達よDDSURFACEDESC2構造体だったな、メンドクセーナー
>>787>>788>>794 >>881これはどうでもイイ(´∀` )
Dim ddsd1 As DDSURFACEDESC2, ddsd2 As DDSURFACEDESC2
With ddsd1
.lFlags = DDSD_CAPS '●1
.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE '●2
End With
Set PrDDSurf7 = ObjDD7.CreateSurface(ddsd1) '●3
上記はVBのコード参考例
Type DDSURFACEDESC2
ddckCKDestBlt As DDCOLORKEY
ddckCKDestOverlay As DDCOLORKEY
ddckCKSrcBlt As DDCOLORKEY
ddckCKSrcOverlay As DDCOLORKEY
ddpfPixelFormat As DDPIXELFORMAT
ddsCaps As DDSCAPS2 '★1 構造体である下記参照
lAlphaBitDepth As Long
lBackBufferCount As Long
lFlags As CONST_DDSURFACEDESCFLAGS '★2 フラグ定数
lHeight As Long '★3 高さ
lLinearSize As Long
lMipMapCount As Long
lPitch As Long
lRefreshRate As Long
lTextureStage As Long
lWidth As Long '★4 幅
lZBufferBitDepth As Long
End Type
DDSURFACEDESC2構造体はサーフェイス作成のDirectDraw7.CreateSurfaceメソッドの引数だ
これでサーフェイスの属性を決めて作るわけだ、ウインドウモードでは★の部分だけ考えればよい
ではプライマリーの作成を説明しよう、プライマリーは実際の表示画面だ、これがなくてはD.Drawは意味がない
まず●1のようにlFlagsを設定しよう、DDSURFACEDESC2の他のメンバー設定が有効か決めるのだ
設定値は既に定数が用意されている
.lFlags = DDSD_CAPS これで★1のddsCapsメンバーのみ設定を認めるということだ、他のメンバーはデフォルト値が適用される
★1のDDSCAPS2構造体、これも構造体だ、これが初心者のわかりづらいところであろう
DDSURFACEDESC2構造体のメンバーにさらに構造体が含まれているのだ、よく考えりゃなんでもない
Type DDSCAPS2
lCaps As CONST_DDSURFACECAPSFLAGS '■1 フラグ定数
lCaps2 As CONST_DDSURFACECAPS2FLAGS
lCaps3 As Long
lCaps4 As Long
End Type
これがDDSCAPS2構造体だ、結局は設定すべきメンバーのパラメーターのみやればいいだけだ
●2の.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACEを見ればわかるように、こいつはプライマリーかオフスクリーンサーフェイスか決めるのだ、他にも組み合わせられるフラグ値はあるがこれでいい
さあこれでプライマリーのためのDDSURFACEDESC2構造体はできた
●3のようにメソッドを実行する、Set PrDDSurf7 = ObjDD7.CreateSurface(ddsd1)
このメソッド自体は戻り値として完成したサーフェイスオブジェクトつまりDirectDrawSurface7オブジェクトを返す
プライマリーは簡単だろ?、DirectX7SDKの日本語HELPぐらいもってるだろな?
ああメンドクセーまた気が向いたらな


0904デフォルトの名無しさんNGNG
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
0905デフォルトの名無しさんNGNG
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ちんこ
0906まとれす ◆mato/KTI NGNG
>>897, >>901
>>889 で言ってるな。見逃してたスマソ

>>899
>>902の言うとおり、クラスに分けたほうがいいだろうな。
で、どっかで聞いたような名前だが、SetRect()なんてメソッドを用意してもいいし、
コレクションで公開してもいい

どちらにせよ、オブジェクト指向とかの最近のプログラミングメソッドは、パフォーマンスが
要求される処理などにはきつい部分がある。その辺は、トレードオフだな
0907デフォルトの名無しさんNGNG
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ちんかす
0908デフォルトの名無しさんNGNG

こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
し
0909デフォルトの名無しさんNGNG
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
0910デフォルトの名無しさんNGNG
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ki
0911デフォルトの名無しさんNGNG
sakana]
0912デフォルトの名無しさんNGNG
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
0913デフォルトの名無しさんNGNG
>>903
sine
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
0914デフォルトの名無しさんNGNG
む!
まとれす と オデのレスが アラサレテイグ
オマエ ユルサン
0915もったいぶりアラシNGNG
オレジャナイゾ!!
0916デフォルトの名無しさんNGNG
>>906
> どちらにせよ、オブジェクト指向とかの最近のプログラミングメソッドは、パフォーマンスが
> 要求される処理などにはきつい部分がある。その辺は、トレードオフだな
実際トレードオフを取るとパフォーマンス上問題がないことがほとんどという罠。
0917883NGNG
>>902 >>906
実は漏れは恥ずかしながらクラスというものが理解できていません。
いいページ見つけたんで勉強しに逝ってきます。
http://homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/
0918もったいぶりアラシNGNG
オフスクリーンもやるか アトデナ
厨よ、理解できないからってアラスなYO
これも理解できないんじゃHTMLのお勉強から逝け
0919デフォルトの名無しさんNGNG
>>918
SDKヘルプ嫁
0920デフォルトの名無しさんNGNG
削除してもらったほうがえぇんでないか?
0921もったいぶりアラシNGNG
>>919
MSDNHELPも読めない厨がSDKが日本語だろうとそれだけで理解できるわけないだろ
またSDKだけですべて理解できるやつがいたら2ちゃんには来ないわ(藁
基本的にSDKに限らず、リファレンスは英語のMSの出したままのほうが望ましい
それがわかってないうちは”厨”の定義は免れないZO
日本語リファレンスしか読まんやつは既成コントロール貼るしかできんぞ
ジャナ 新スレになったらまたオフスクリーンサーフェイスでアラシに来るぞ

0922即レスNGNG
なんだかなあ。えらく荒れてるねえ。
GWだから仕方ないとはいえ。

>>899
まとれすも言ってるとおり、結局はスピードとどっちを選ぶか、になるよ。
1秒間に数十万回代入するならクラスなんか使ってちゃ遅すぎだし。
0923デフォルトの名無しさんNGNG
・祝日
・六曜
これを返すそれぞれの関数キボーヌ
0924即レスNGNG
>>923
無い。
0925デフォルトの名無しさんNGNG
String型にサイズ制限ってあります?
えらく長い文字列を入れても大丈夫でしょうか。
0926即レスNGNG
>>925
特に無い。システムメモリは考慮しとき。
0927デフォルトの名無しさんNGNG
>>925
可変長文字列には、約 2GB (2^31) までの文字を格納することができます。
固定長文字列には、1 〜 約 2GB (2^31) の文字を格納することができます。
0928即レスNGNG
>927
あ、ホントだ。悪りぃ。
0929デフォルトの名無しさんNGNG
質問なのですが
Shell関数のCOPYコマンドを使って、複数のファイルを結合するプログラムを作りたいのですが。
例えば、C:\テストファイル にある test1.txt test2.txt test3.txt という3つのファイルを
 Res.txt という1つのファイルに結合するとき、

Dim DP As String
DP = "COMMAND.COM /C COPY C:\テストファイル\test1.txt + _
C:\テストファイル\test2.txt + C:\テストファイル\test3.txt C:\テストファイル\Res.txt"
task = Shell(DP, 0)

と書いても、taskのところでプロシージャの呼び出し、または引数が不正です、といわれてしまいます。

ショートネームに変換して
DP = "COMMAND.COM /C COPY C:\テスト^1\test1.txt + _
C:\テスト^1\test2.txt + C:\テスト^1\test3.txt C:\テスト1^\Res.txt"
と、やってもうまくいきません。

ドライブCの直下だと
DP = "COMMAND.COM /C COPY C:\test1.txt + _
C:\\test2.txt + C:\test3.txt C:\Res.txt"
うまくいくのですが、


なぜ、ショートネームにしてもうまくいかないのでしょうか?
プロシージャの呼び出し、または引数が不正です、といわれる意味がわかりません。

よろしくおねがいします。
0930デフォルトの名無しさんNGNG
VB6 SP5 で
標準のリストコントロールに文字列ぶちこんでるんですが
半角1024文字、全角512文字で切れてしまいます。
MSDNにはサイズ制限は特に無い、というように書いてあるのですが
やっぱり切れてしまいます。
MSDNが嘘で本当はサイズ制限があるんでしょうか?
自分の読み間違いでしょうか?
それとも.textプロパティとかが隠れた制限を持ってるんでしょうか??

リストボックスだと並べ替えたりの操作がラクなのデスが
切れるのが仕様だとすると自分でリスト構造(よくわかってない)を
なんとかしないといけないらしい。
0931925NGNG
>>926>>927
それならOKそうです。ありがとうございました。
0932デフォルトの名無しさんNGNG
タイトルバーのないフォームでリージョンを作成し
必要な部分以外を透明にしたが、
領域外でフォームのイベントが発生しないようだ。
絵じゃなく文字なんでドラッグして移動するのに都合が悪い。
できればフックはしたくないが、どうすりゃいい?
0933まとれす ◆mato/KTI NGNG
>>923
ない。祝日はテーブルで持つのが楽。六曜は、どっかにDLLがあったな

>>929
そのエラーが出るときは、ほとんどパスの間違いだ。ショートパスは "^"
じゃなくて "~" じゃないか?

>>930
まぁ、そんなものだろう。自分で管理するのが面倒っていうが、配列に
入れるだけでもいいし、リストボックスに文字列の一部を入れておき、
ItemDataで配列の要素と同期するって手もあるな
0934まとれす ◆mato/KTI NGNG
>>932
そら、透明な部分はフォームじゃないからな。

リージョンを使わずに、フォームの背景に、その下の画像を表示するか、
マウスをキャプチャーしたらどうだ?
0935デフォルトの名無しさんNGNG
VisualStudioのサービスパックの最新版って雑誌かなんかの
付録についていないんですか?
0936デフォルトの名無しさんNGNG
>>まとれすさん
レスありがとうございます。
本当だ、”^”になってますね。
パスの間違いですか。
書き忘れてましたが、本当は、GetShortPathName()を使って、パスを取得してるのですが、

ショートパスに変換するにあたって、何か注意する点はないでしょうか?
あるいは、ショートパス特有のクセのようなものはあるでしょうか?

今から、パスを見直してみます。ありがとうございました。
0937デフォルトの名無しさんNGNG
>>935
VBマガジン 2001,7〜11月号についてた。
0938923NGNG
>>924 >>933
ありがとう。まっとうに算出するのはあきらめるよ。
0939ムラタNGNG
1分おきにPingを打ちたいんですがどうすればいいですか?
0940デフォルトの名無しさんNGNG
>939
丸投げすぎて、何が聞きたいのかわからん
一定時間おきに何かしたいならタイマーコントロール使えば?
0941932NGNG
>>934
壁紙描画にするよ。それ以外の方法はめんどくさすぎる。Thanks!
0942デフォルトの名無しさんNGNG
プログラムの中でメニューに項目を追加したい、
ブラウザのブックマークへの追加みたいな事をしたいのですけど、
どうすればいいのかさっぱりわかりません。おしえてください。
0943デフォルトの名無しさんNGNG
942
WIN32APIではInsertMenuItem()だが誤爆かもしれん。
0944デフォルトの名無しさんNGNG
TextBoxに入ってる文字列のバイト数を高速に取得したいんですが、どうするといいでしょうか。
LenB(StrConv(str, vbFromUnicode))
で取得はできるんですが、これだとstrのサイズが巨大だとめっちゃ遅いです。
もっと高速に取得する方法はないでしょうか。
0945デフォルトの名無しさんNGNG
StrConv(str, vbFromUnicode))
?
0946デフォルトの名無しさんNGNG
StrConv使うのやめれ。
0947ななしNGNG

質問じゃなくて愚痴なんだけど(おいおい・・・)、MSDNのサンプルコードって、どうして手抜きで粗削り
(Variant使いまくりとか、マジックナンバー使いまくりとか、オブジェクトを.... As Newで宣言・・・
e.t.c.)なのが多いんだろ?

「わかっている」人がそうした点を踏まえた上で参考にするなら問題ないが、(批判力のない)初心者に
薦めるのはリスクが多過ぎる。(といって、ヘルプを読む習慣をつけさせなければ、厨房質問が増殖する
のが眼に見えてるし・・・・)

初心者を指導するコツを教えてください。
(やっぱり質問だった。(^^;)
0948即レスNGNG
>>936
さっきやってみたら出来たぞ。
特に注意する点は無いと思う。普通のAPIと一緒。

>>942
インデックス使うなり。
コントロールを動的に読みこむのと一緒。

>>944
Unicodeなら文字数×2でいいが。
Shift-Jisならつらいな。

>>947
うーむ。俺はあんまり初心者を指導する立場にないのであれだけど、
やっぱ基礎は大事なので初心者本を3,4冊読ませてから実践で鍛えるような
感じがいいかと。その過程でMSDNの使い方を教えてやれば。

#ネットで調べるようにするはダメなの?
0949942NGNG
Public Declare Function InsertMenuItem Lib "user32.dll" Alias "InsertMenuItemA" (ByVal _
hMenu As Long, ByVal uItem As Long, ByVal fByPosition As Long, lpmii _
As MENUITEMINFO) As Long
でした。
0950即レスNGNG
>>949
?
APIじゃないと嫌なん?
0951942NGNG
>>950 え、もっと簡単なやりかたあるんですか?
0952即レスNGNG
948で書いてるのに( ´д`)

・メニューエディタで増やすメニューにインデックスをつける。
・増やしたい時に、LoadしてCaptionやらVisibleやら設定。

サンプルはネットに転がってるよ。一般的なやりかただし。
0953942NGNG
Private Sub mnu_Smp_Add_Click()
Load mnu_DynamicMenu(Cnt + 1)
mnu_DynamicMenu(Cnt + 1).Caption = "メニュー項目" & Cnt + 1
Cnt = Cnt + 1
End Sub
でした。
0954デフォルトの名無しさんNGNG
VB6 WinXP環境です

他アプリケーションを遠隔操作できるようなものはつくれるのでしょうか?
メモ帳に、Aが押された、とかそういう命令をVBアプリから送る方法のことです。
どのようなAPI等を、使えばいいのか教えていただきたいです。
0955デフォルトの名無しさんNGNG
SendKeys ステートメント。普通にやるだけなら、API はいらない。
0956デフォルトの名無しさんNGNG
で、第二月曜はどうやって取得するのが楽ですか。
0957デフォルトの名無しさんNGNG
>>956
Weekday 関数使え。
0958954NGNG
>>955
でも、Sendkeysでやるとフォーカスを持たせないとできないんじゃ?
先ほどのメモ帳のような例ならいいですが
もうちょっと複雑に、「あるボタンを押して」などの情報を送りたいときは
Sendkeysでは対処できませんし・・・。
0959デフォルトの名無しさんNGNG
>>945-946
VBは内部でUNICODEだから、strconvしないとLenBで正確なバイト数は取得できないんだよ。
例えば、
LenB("あいa")だったら、6バイトって帰ってくるんだぞ。
おかしいだろ、本当は5バイトだもんな。
これを正確にバイト数を調べたいと思ったら、strconvでvbFromUnicodeしないとだめなんだよ。
0960デフォルトの名無しさんNGNG
>>958
だったら、はじめからそう書けよ。こっちには、そっちの事情なんか
わからないんだから。
で、フォーカス持っていないアプリに Key 送りたいの ? そのアプリの
ウィンドハンドルは得られてるの ? また、「あるボタン押してなどの
情報」って具体的に何 ?
0961デフォルトの名無しさんNGNG
>>960
まぁまぁ、そうカッカせずに。

>>958
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t02.htm
↑ここ有名だけど参考になると思う。
0962デフォルトの名無しさんNGNG
>>959
おかしくないだろ・・・。君も書いてるとおり、VBだと内部UNICODEなんだから
「あいa」は正しく6バイトだよ。
Shift_JISなら5バイトだけどな。でも、日本語表現はShiftJISだけじゃない
からね。Unicodeでファイル保存して悪いことはないのだし。

んで、VB使ってる以上、API使うにしてもどーせShiftJIS<->Unicode変換は
おきる。あきらめてStrConvつかうしかないかも。
0963デフォルトの名無しさんNGNG
>>936
もう解決しているかもしれないが、COMMAND.COM には 128バイト以上の引数は
渡せない。VB は、Unicode だから、LenB(StrConv(DP, VbFromUnicode)) の
値が 128 以上だとそのエラーになる。

DOS 時代は常識だったが、いまやおばあちゃんの知恵袋みたいな知識だな...。
0964デフォルトの名無しさんNGNG
今のVBの最新バージョンはなんていう名前ですか?
0965404NGNG
>>964
「最新バージョンのVB」
0966デフォルトの名無しさんNGNG
>>936
ディスクアクセスを若干高速化するために、
ショートファイル名を作らない設定にしてるユーザもたまにいるけど、
その場合はどうなるんだろ?

それが原因で正常に動かないインストーラも時々見かける。
0967964NGNG
Ver6.0とかそういうの知りたいんですけど。
0968デフォルトの名無しさんNGNG
VB.NETり
0969デフォルトの名無しさんNGNG
VBでCGI作れればいいなと思うんだけど標準出入力ってできますか?
0970デフォルトの名無しさんNGNG
>>969
API使えばできるよ。
Googleで検索すれば、いくつか実例がヒットする。
0971デフォルトの名無しさんNGNG
>>970
どもです。早速見てみます。PerlやCより楽そうですね。
0972まとれす ◆mato/KTI NGNG
>>942
メニューアイテムをLoadしてけばいい。コントロール配列と同じだな

>>944
むずかしいな。lstrlen なんてどうだ?

>>947
それはプログラムを教えるものじゃなくて、メソッドやプロパティの使い方
を教えるものだからな。ちょっと早いかもしれんが、CodeComplete とか
読ませたらどうだ?

>>958
ウィンドウメッセージを送れ

>>963
それは環境依存じゃないか?

>>964
正式名称は、Visual Basic .NET 7.0 らしいな

>>969
Visual Basic .NETなら楽チン。それ以前なら、>>970が言うとおり、APIだな
0973デフォルトの名無しさんNGNG
これなんてまさに!
http://tokyo.cool.ne.jp/taquino/vbcgi/index.shtml
0974デフォルトの名無しさんNGNG
ほぉぉ。さすが.NET!でも自分6.0なんでAPIでハァハァします。
0975デフォルトの名無しさんNGNG
>>即レスさん
レスありがとうございます。
そうですか、即レスさんの環境ではうまくいきましたか、
俺のは何かがおかしいのですね、何かが、、、しらべてみます
ありがとうございました。
0976975=936ですNGNG
>>975=936です。遅くなりましたがありがとうございました。
0977デフォルトの名無しさんNGNG
クスッ
CGIができて喜ぶなんてカワイイ
厨らしいYO
HTTP1.1鯖作るぐらいやってみなよクスッ
自鯖用なら何もHTTP1.1なんてメンドーなもんやらんで
オリジナルプロトコルでオリジナルクライアント配布してやるとか
それぐらいの情熱はナイノカネー
まっだから厨なのか


0978デフォルトの名無しさんNGNG
CGI作りたいのに鯖作ったって意味ないでしょ。バカダネー
0979デフォルトの名無しさんNGNG
クスッ
CGIの意味がわかってない
オマエはヤッパリ、Perlの配布コードコピペで終わりミ゚Д゚,,彡
0980デフォルトの名無しさんNGNG
VBならASPの方がいいような気がする。
0981デフォルトの名無しさんNGNG
>>979
ぶび厨が何を言う。
0982デフォルトの名無しさんNGNG
>>979
クスッ
日本語が理解できてない奴がいる。本当のことを言われてあせったんだね。
0983デフォルトの名無しさんNGNG
>>977
どうせネタかCGIと鯖の違いをわかってない真性バカだろ。
あいてにするだけ無駄。
0984デフォルトの名無しさんNGNG
おっ荒れてるな
いいぞ もめてこそ厨スレだw
なるほど
VBでCGIプログラムを作りたいのか
それはできるが
HTTPレスポンスわかってる?
アラシもそこを言いたいのだろうな
VB以前にHTTPがわかってるかどうか
高速化するならIISなど製品鯖使わず
VBCGIにカスタマイズしたHTTP鯖作るのも手だな
それをいいたいのだろう
まあ、またもめていいぞ。
0985デフォルトの名無しさんNGNG
>>984
ウザイ
口田氏するな
0986デフォルトの名無しさんNGNG
>>984
発言が意味不明。まっこれもアラシか。
0987デフォルトの名無しさんNGNG
>>977
最近ソケット通信を覚えた房だと思われ
ずぼしでも荒らすなよ
0988デフォルトの名無しさんNGNG
盛りage
0989デフォルトの名無しさんNGNG
初心者スレを荒らすなよ...
0990デフォルトの名無しさんNGNG
ForeColorプロパティとかに入ってる、
0-16777215の整数値を、RGBに分解したいんですが、
どうすればいいでしょうか。
0991デフォルトの名無しさんNGNG
>>990
取りあえず8bitx4に分割しなされ。
共用体とかあれば楽だね。
0992デフォルトの名無しさんNGNG
>>990
RGBは256*256*256って考えれば分解できるでしょ
0993デフォルトの名無しさんNGNG
し、新スレの話が出てないのはなぜだ??
09941000!NGNG
0995デフォルトの名無しさんNGNG
禿
0996( ´・∀・`)@28歳くん ◆7aTaLnPA NGNG
じゃじゃじゃじゃーん
0997( ´・∀・`)@28歳くん ◆7aTaLnPA NGNG
あひゃひゃひゃ!!
0998( ´・∀・`)@28歳くん ◆7aTaLnPA NGNG
大名レース
0999( ´・∀・`)@28歳くん ◆7aTaLnPA NGNG
殿様競輪
1000デフォルトの名無しさんNGNG
>>999
馬鹿
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。