v(・∀-)b VBプログラマ質問スレ(6.0以前) Part25

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
VBの質問スレです。

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

VB.net関連スレ
【老若】VB.net質問スレ【男女】 (Part2)
http://pc2.2ch.net/test/read.cgi/tech/1043629429/

Win32 API関連スレ
Win32API 質問箱 Build10 (979)
http://pc2.2ch.net/test/read.cgi/tech/1047819779/

心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
五.荒らしは相手しない。
六. VB情報募集中。
七. VB.NETはスレ違い
>>1
スレ立て早すぎるだろ
41:03/05/11 13:43
>>3
いやー。ごめん。このところ、このホストでは立てられませんって
出てから、またダメだろと思ってたら立てられちゃった。

     けつが離れねぇー!!!!!!誰かボスケテー!!!!!
  ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄

       ∧_∧                         ∧_∧
      (´Д`illl.)    / ̄ ̄ヽ((( )))/ ̄ ̄\    (.illl´Д`)
        i i⌒\__ノ     ノ)*´∀`(      ヽ_/⌒i i
        ヽヽ ヽ       //(∪ ∪)ヽ\       丿 /./
         )) )-─/ //  |  |  |  \\ \─( ((
         ヽヽ ヽ/ //   (_)_)    \.ヽ ヽ  ヽヽヽ
         (((_ノ( ( <              .>.)  ) .(_)))
             ヽ ヽ ヽ           //../
              \ \\        ..// /
             (⌒_(⌒__ヽ       /__⌒)_⌒)

                              ( (  (. )       
 @''^~^''@''^~^''@                -@''^~^''@ .       
(∴゚;)四(;゚・)(∴゚;)四(;゚・)       .´,.:::((∴゚;)四(;゚・)
( ⊃⊃⊂   )                 i ヾ<_∪~~~_,.ン |       
 (,,,/"(,,,,)(,,,/"(,,,)                l     ̄....:;:彡|       
                              }  . . ...::::;:;;;;;彡{       
           @''^~^''@            i   .. ...:::;;;;;彡|       
        ♪〜 (∴゚;)四(;゚・)
        .   }  .. .....:::;::;:;;;;彡{~^''@       
          , ⊂ ~~~~~ ⊃、  @''''^^~^^''''''@ . .:.::;:;;;彡j四(;゚・)       
.         . '  .    ; .丶  (゚;)四(;゚・≡゚;)四(;゚・)?...,:;:;:=:彳⊂ノ       
.        ,:´ .    '    ' `、    (⊃ ⊂)、.. ....::::;;;ジ       
    @''^~^''@   ■■■^~^''@   (__)__)    ̄ ̄       
   (( (   (∴゚;)四).  ■■■■(  y )))`'丶.、              
.  '´   (   ⊃  @''^~^''@ (,,,)(,,,)::::::::::...`.:   @''^~^''@''^~^''@
 i     (,,,,)(,,,,)_,._.((∴゚;)四(;゚・) .,,__,.,..ノ.:::::::::   !  (( ((∴゚;)四(;゚・)(∴゚;)四(;゚・))
. ヽ、         /  ⌒ヽ         ,:    ( ∩∩⊃▲⊂)
    `=ー--、....,,,(人__つ_つ,,,,,... --‐=''´       (,,,)(,,,) (,,,)(,,,)
      ``" '' 'ー───‐―‐' ''' "´                  

マスオの国から@2003〜帰郷〜
マスオ降臨中!!!!!!!!!!!!!!!jjvvvvvvvvvvvvvvvvvvjjjjjjjjjjj!!!!!!!!!!!!!!!

                      /⌒ヾ⌒ヽ.
                     /   丿  ..ヾ
                   /   。 人    )
                  (。...。_ .ノ 。ヾ。...丿
                   ( _ .  .. ノ   )
                  /        /
                  / ノ し   /
     三 ̄ ̄ ̄ ̄\    / ) と   /
     /  ____| .  /      /
     /  >     |   /      /
    /  / ⌒  ⌒ |  /     /
    |_/---(・)--(・) |  /     /
    | (6    つ  | /  ..  / / どうやら!!!!!!!!!!
     |    ___ |/   . /  <俺は増殖するらしい!!!!!!!
    \  \_/ / /   /    \_________
 シコ  \___/   /   /
      /     \ / .  /
 シコ  ( ) ゚ ゚/\ゝ 丿.../
      \ ヽ、 (  /  ⊂//
        \ ヽ / ⊂//
        ( \つ  /
        |  |O○ノ \
        |  |    \ \
        |  )     |  )
        / /      / /
       / /       ∪
       ∪
                  _ _     ∧_∧ ,・ '  .’               ,/⌒丶
          ∧  _ - ― = ̄  ̄ (    )  ,∵ _”         ∧_∧/  ヘ, 丶
         , -'' ̄    __――=r _/ /"―_ - ,, _ __ ,,___   ,/(´∀` ) / i. i  ̄ ̄
        /   -―  ̄ ̄    | y'⌒  ⌒i:_ ― _     ""~i  j    __,/  勿/ ──
       /   ノ          |  /  ノ | ー" ─ "" -- ,,,__ 丶 丶 ,,/
      /  , イ )          , ー'  /´ヾ_ノ ・、 - ; ;   -  イ,ヽ ヽ/    
      /   _, \        / ,  ノ                ,/  .,丶 丶  ────
      |  / \  `、     / / /                 ヽ,__,/ ヽ 丿   ____
      j  /  ヽ  |    / / ,' >>1      
    / ノ   {     /  /|  |  
age
結局こっちつかうの?
ここが本スレでよろしいか?
こちらへどうぞ。

(*´д`*)アハァ… VB初心者質問スレ(6.0以前) Part25
http://pc2.2ch.net/test/read.cgi/tech/1052756106/
13デフォルトの名無しさん:03/05/13 03:50
たまにスクロールバー(HScrollBarとか)がフォーカスを奪ったまま返してくれない(?)
自体が起こるのですが、これって回避できませんか?
原因もよくわからないです。

いっかいスクロールバーをいじると、他の部品をクリックしてもフォーカスが移りません。
一見フリーズしたかのように見えます。
で、タスクバーから最小化したり他のウインドウに切り替えたりすると、
フォーカスが帰ってきます。

こんな感じになる症状がたまにでます。
14デフォルトの名無しさん:03/05/13 04:38
VBだから
vb
v()b
v()b
v(∀)b
v(・∀-)b
なわけだね?
>>14
しつこいんだよ
16デフォルトの名無しさん:03/05/13 08:35
age
17デフォルトの名無しさん:03/05/13 09:48
QRコードを生成するVBのソースを紹介して
18:03/05/13 09:56
>>13
TabStop=Falseにして、フォーカスを取らないようにするとかどうでしょう。
19デフォルトの名無しさん:03/05/13 10:06
Dirで指定Path内のフォルダをループ列挙している最中に、
探しているフォルダがあったら、さらにそのフォルダ内にaaaというフォルダがあるか
またチェックしたいのですが、このaaaフォルダ探索用にDir使いたい所ながら
そこで使ってしまうと、最初に書いたDirループが崩れちゃうし、ってことで困ってます。

こういう場合のチェックの仕方を教えて下さい。
必死だな(ゲロ
21デフォルトの名無しさん:03/05/13 10:25
>>19
配列にDirの結果を突っ込むとかして、Dirのループが
重複しないようにするしかない
>>19
FileSystemObjectを使うって手もある。
APIでもいいけど。

# つーかなんで、APIみたいに検索途中の情報持たせるようにしなかったんだろうなぁ?
ジエンだな(ゲラ 
24デフォルトの名無しさん:03/05/13 10:41
VBでゲームを作ろうと思っているんですけど、
APIとDirectXではどっちが作りやすいですか?
というか、そもそもDirectXってVBで使えるんですか?
>>24
どんなゲームを作りたいの? 
>>24
> というか、そもそもDirectXってVBで使えるんですか?
使えます。

VBはCOMのReleaseとか面倒な部分を自動でやってくれるので、
C++より簡単です。
27デフォルトの名無しさん:03/05/13 11:03
困ってます・・・
ディストリビューションウィザードでパッケージを作ったのですが
PCによってはインストールに失敗することがあります。
どうやらXPで日本語ユーザー名の場合その症状が起きるみたいなんですが
同様の症状が起きた方で、回避策を見つけた方おりませんか?
>>27
Visual Studio Installerつかえ
30デフォルトの名無しさん:03/05/13 11:19
ある年のある月が何日あるかって、どうやって調べたらいいですか?
>>29に1バイト文字のユーザを作成してインストールと書いてあるけど、
環境変数のTEMPとTMP(だったっけ?)を一時的に変更してから
インストールする方法もある。

TEMPとTMPを適当なフォルダに変更してSetup.exeを実行する
バッチファイルを作るだけでOK
>>30
使い方を聞いてるの? それとも自分でコード書きたいの?
>>30
その翌月の1日の前日を調べればいい
3424:03/05/13 11:27
>>25
特に決めてないですけど、ノベルゲームとかRPGとか2Dシューティングとかです。
>>26
使えるんですね。Direct3Dも使えるでしょうか?
使えるなら3Dシューティングあたりも作ってみたいです。
それすら分からん状況でなんでVBチョイスやねん、と。
いいじゃん、別に。
>>34
工学社からDirectX8 + VB関係でいっぱい本が出てるから、
それ読んで勉強汁!
VBで3Dってマトモな速度で動くんかよ!?

と煽ってみるテスト

サンプル動かしてみたけど結構普通に動いているよ。

と自己レスしてみるテスト。
>>38
そのサンプルウpキボンヌ
>>38
3Dってマシンパワー食いそうに見えて(実際そうなんだけど)、
重い処理の部分はGPUが処理するから、あんまりVBだから
遅いってことはないよね。
ただ、俺はフライトシミュレータ作ったけど、ランドスケープの
メッシュデータを用意するのはやっぱ遅かった。
データセットし終わって、動き出したら早かったけどね。

>>40
DirectX SDKに入ってるよ。
43:03/05/13 11:42
>>43
リンク切れ(?)
俺の知っているあれだとは思うんだが。
45:03/05/13 13:21
>>44
あれ?こっちの環境だと見えるんですが。
こっちだとどうでしょう。
http://support.microsoft.com/default.aspx?scid=http://www.microsoft.com/japan/support/kb/articles/416/5/85.asp

まあ、内容的には >>39 と被ってるんですが。
46デフォルトの名無しさん:03/05/13 13:24
関数の引数を入力しようとしたとき等にでるヒントが出なくなりました。
Msgbox(
の、カッコまで売った時にポップアップされたりするあれです。
なんかの拍子に設定を弄ったのかも弄られたのかもわかりません。
どうやったら戻せますか?
>>46
「ツール」「オプション」の「自動クイックヒント」とかのあたりじゃね?
48デフォルトの名無しさん:03/05/13 13:28
>>46
ソースがぐちゃぐちゃでVBがソースの解析できない場合に起ります。
>>47
自動クイックヒントなどはチェックついてました。
すると>>48かもですかね。
5044:03/05/13 13:29
>>45
げっ。言語の優先順位が日本語じゃないと表示されない・・・。

MS。よけいなことすんなーーー。


設定でページがかわるのはWindows Updateぐらいだと思っていたよ。
違う意味で勉強になった。
あ、違うプロジェクト開いて試してみたらちゃんと出ました。
ソースがぐちゃぐちゃみたいです。
ありがとうございました。
>>49
そういうときは、コンパイル。
53デフォルトの名無しさん:03/05/13 13:37
おれは「開始」使わない。常に「完全コンパイル後に開始」。「開始」がVB
プログラマーの質を落としている一因の気がする。
俺も完全コンパイル後に開始を使うくちだが、
結局EXEにする時はコンパイルされるわけで
あんまり関係ないんじゃない?
>>53
なんで?
56デフォルトの名無しさん:03/05/13 14:03
いつでも客や上司に見せられるように。
>>53
俺もそう。開発途中でこまめに問題が発見されて解決されていくのと、
最後にexeにする段階になって一気に問題噴出、あわててゴソッと
直したのだったら、どっちが品質がマシか・・・ って考えると、
やっぱり多少コンパイル時間は食うとしても、毎回コンパイル後に実行をする
クセをつけておきたいと思う。
58デフォルトの名無しさん:03/05/13 14:12
>>57
っていうほど、時間も取られないしね。
5927:03/05/13 14:23
>>29 >>31 >>39 >>43
アリガトウございました。
Setup1.frm の Form_Loadをカスタマイズする方法を試してみます。
反応が早くて感激しました。
60デフォルトの名無しさん:03/05/13 14:30
>>30
こんなんどう?
DateDiff("d", "2003-05-01", "2003-06-01")
こっちにしとけ。
Day(DateSerial(2003,5+1,0))
62デフォルトの名無しさん:03/05/13 15:17
VBは死滅するって本当でつか!?
VB.NETになるだけ。
>>62
ほんとでつ。でも、あと数年は生き延びまつ。
死滅したところで、優秀なVBプログラマならJava厨とは違い、速やかに他の言語に移行できると思うけどな。
フォームのBorderStyleを2(可変)にしたまま、
タスクバーには表示させないように出来ますか?
>>66
ITaskBarList の DeleteTab で好きなように消せる。
が、自分でタイプライブラリを書かなきゃならんので、初心者向け
ではないわな。
>>66
ShowInTaskBar

>>65
別に優秀なやつならVBプログラマでもJavaプログラマでも
他言語に移行できるでしょ。
VBPG=優
JavaPG=劣
70だ ◆a.ZhoqQtfc :03/05/13 16:27
初心者な質問でごめんなさい。
大学の授業でVBとエクセルをリンクさせて使っています。
そこで、10つほどのセルに数字(0から100まで)を入力して
その中の最大値を表示するプログラムをつくっています。

ですが、どうしてもわかりません。誰か教えてください、お願いします。
>>70
それはVB(VBA)でやらなきゃならないのか?
なんつーんだっけ、エクセルのセルの中に入れる式で
事足りる問題な気がするが。
>>70
ネタだよな?
7370:03/05/13 16:38
>>71
>>72

ネタではありません。
授業で作れって言われました。
VBで作らないとダメみたいです。

よろしくお願いします

>>73
んで、どこまで書いたんだ?
VBA・・か?
んなもんつかわんでもできるけど。
なんかな〜。いくつもやり方あるんだけど。
VBとエクセルがど〜リンクしているの?って感じだし。
ってそれあまり関係ないともいえるし。
どういう仕様で作ればいいかわからんし。
その授業の目的がなんかよ〜わからんし。
どの程度の知識を今もっているのかって気になるし。
なんか答えにくいなぁ。
76に禿同。70は今書いたとこまででも晒してみ。
VBAの練習とかなのかなぁ。
経営とかだとやるみたいよ。
>>79 そんなこと今は関係ない。
つーか、内容はいいとして、日本語をもうちょい勉強したほうがいい >70
釣りに見られても無理ないぞ。
てか宿題なら自分でやれと。
端から人にさせる気じゃん。
>>70
どこまでできるの?
一つのセルに数字を入れてそれを表示させることはできますか?
二つのセルに数字を入れて大きい方を表示させることはできますか?
三つのセルに数字を入れて一番大きいのを表示させることはできますか?
             :
             :
10つのセルに数字を入れて大きい方を表示させることはできますか?
~~~~~
じゅっつて... とーつか?
とりあえず70のレスを待ちましょう。
エクスプローラスタイルアプリ作ってます。
左ツリービューのノードクリックで右領域にいろいろ画面を切り替えてます。
たくさんピクチャボックスをデザインしてその中にコントロールいろいろ貼り付けて
その1つのピクチャボックスを1ページという概念で
ひたすら切り替えて表示する仕組みにしてます。
デザイン時1フォームのコントロール限界の255個に達してしまいました。
それで動的にコントロール配置するしかないか…と思ってます。
set cnt = Me.Controls.Add("VB.TextBox","txtHoge")をひたすらやって
各プロパティいぢくるのは果てしなく面倒なので
たとえば他フォームのピクチャボックスをまるごとそのまんまコピーとかしたい
んだけどできないすかね。または他のスマートな方法とか…
>>85
コンテナにしたPictureBoxを丸ごとコピーするって事かね?
ユーザーコントロールにするのがいいんじゃないの
87デフォルトの名無しさん:03/05/14 05:05
age
88__:03/05/14 05:08
>>86
っていうか、85ってユーザーコントロールそのものだよね。
>>89
ピクチャーボックスにコントロール貼り付けてコンテナ化しただけだろ?
>>90
一番単純なユーザーコントロールじゃん
9285:03/05/14 11:04
>>89
そうです
ピクチャボックスをコンテナにしてバンバン
.visible を切り替えてるんです

今考えてるのが
デザイン専用フォームでデザインしてフォームをセーブ
その frmDesine.frm のテキストは
Begin ブロック と End ブロックで各コントロールのプロパティが
はさまれたテキストなんで
テキストを AWK かなんか(漏れPerl使えない)て
整形して
このテキストをコードモジュールにコピペして
動的配置コードを生成するっつうのを考えてる
漏れはアフォでせうか?

ちなみにユーザーコントロール作ったことないっす。
やってみる価値はありそうかねぇ。
>>92
規模によりけりじゃない?テキストボックス3つくらいだとおれも似たような
ことやってるよ
教えて、エラい人!
プロジェクト内でモーダルフォームが開かれているかどうかを判定する方法は有るのでしょうか?
どういう処理よ。
>>94
よくわからんが、For Each で App.Forms をまわして
調べればいいんではないかい
97デフォルトの名無しさん:03/05/14 19:24
TextBoxをマウスで右クリックしたときの
ポップアップメニューが出ないようにするには
どうすればいいんですか?
右クリック自体禁止するといいよ。
>>97
右クリックが来たときにTextBox.EnabledをFalseにして戻すか、
サブクラス化してWM_CONTEXTMENUを揉み消すか。

前者のほうが簡単だけど、後者の方が完璧にできる。
>97
もしかしてポップアップメニューを出さないのが目的じゃなくて、ポップアップメニューコマンドを実行させたくないっていうのが目的なんじゃねぇーの?

・・・そして誰もいなくなった。
10270:03/05/15 11:03
亀レスすいません。

とりあえず、最低点、最高点の問題は解決しました。
次の問題も不明なんで、よろしくお願いします。

=========================問題==========================
Ex.1 条件判断

下記の学籍番号をセルA1〜A10、試験の点数をセルB1〜B10に入力し、優、良、可、不可を判断して
C列に表示せよ。ただし、優は80点以上、良は70点以上、可は60点以上とする。

学籍番号  点数
1 75
2 92
3 63
4 48
5 95
6 82
7 68
8 56
9 62
10 71
=========================問題終了==========================
これは簡単なので、できました。
10370:03/05/15 11:05
続きです。
=========================問題==========================
Ex.2
優、良、可、不可を取った学生の学籍番号を、それぞれD列、E列、F列、G列に表示せよ。
その際、上から順に詰めて表示すること

=========================問題終了==========================

この問題がわかりません。
上から順に詰めて表示でなければできましたが、
つめて表示する方法がわかりません。

よろしくお願いします。
> 次の問題も不明なんで、よろしくお願いします。

> 10 71
> =========================問題終了==========================
> これは簡単なので、できました。

不明なのか? できたのか? 何を聞きたいのだ?(w
105104:03/05/15 11:08
途中までしか見てなかった。>>104は無視してくれ。
106bloom:03/05/15 11:13
107デフォルトの名無しさん:03/05/15 11:19
※末承諾広告
スタッフは皆様の生活を応援します
1万円〜100万円まで15分で審査
(100万円以上のご融資も可能)
完全自社貸付なので安心してご利用いただけます

お申し込みは
0120-39-4400
携帯からもOK!
インターネットは
http://www.staff-japan.com


迷ったらまずお電話ください
必ずお力になります。
>>103
> 上から順に詰めて表示でなければできましたが、
どういう風にやって出来たの?
102のコードを晒せ
11070:03/05/15 11:43
とりあえず、>>102までのコードを晒します。

Dim b As Integer
If Cells(b, 9) >= 80 Then
Cells(b, 10) = "優"
Else
If Cells(b, 9) >= 70 Then
Cells(b, 10) = "良"
Else
If Cells(b, 9) >= 60 Then
Cells(b, 10) = "可"
Else
Cells(b, 10) = "不可"
End If
End If
End If
End Sub

です。汚いコードですいません。
11170:03/05/15 11:44
問題文と自分のセルの場所が少し違うので、コードもおかしいです。
セルの場所は気にしないで下さい。
11270:03/05/15 11:48
最低点、最高点のコードがわからなくなってしまいました。
友人に教えてもらったときは覚えていたのですが・・・・
最低点、最高点のプログラムもお願いします。
>>112
答えを聞くだけじゃなくて、ちゃんと考えような。
でないと自分のものにならないよ。
114_:03/05/15 11:56
11570:03/05/15 12:02
>>113
ご指摘の通りです。
それからしばらく考えまして、たとえばaとbの変数を用いて、

a=0
For b=1 to 10
If cells(b,1)>a then
cells(11,1)=a
next b

これえでA1からA10までの最低点がでると思ったのですが、どうもうまくいきません。
なぜでしょうか?よろしくお願いします
>>115
最初に、
  a = 0
としてるだろ?ってことは、0点未満しか見ないじゃん。
117116:03/05/15 12:20
違った(スマソ

おれなら
a = 100 ' 最低点
For b=1 to 10
If cells(b,1)<a then
a = cells(b,1)
End If
next b
cell(11,1) = a
>>112
てか教えてもらったプログラム理解してなかったのかよ。意味ねぇし。
それにプログラムは一気に完成させる必要はない。
この場合だとまず一人だけをDEFG列どれかに分類するプログラムを作る。
その次にforとかでループさせて全員分類できるプログラムを作れば良い。
人に教えてもらうだけだったらはっきし言ってプログラムに限らず勉強してる意味なし。
就職とかにしても徐々に大学名じゃなくて実力主義の傾向になってきてるから
行き当たりばったりの勉強で20年30年先どうなっても知らんぞ。
119デフォルトの名無しさん:03/05/15 18:38
WINSOCKコントロールでインターネットを介したパソコン同士を通信するにはどうすればいいんじゃ!教えてけろ(特にアドレスの指定の所)普通にIPアドレスを入れてもだめなんじゃろ?
>119
アドレス変換ってのがわかんねーんだったらネトワクを勉強しろよハゲ。
121山崎渉:03/05/15 18:56
(^^)  
ユーザーコントロール内の処理で自身のユーザーコントロールを
表示、非表示にしたいのですが、どうすればいいでしょうか?
Visibleプロパティでは扱えないしShowとかのメソッドがあるわけでもなくて
途方にくれてます。具体的に言うと表示メソッド内で
メソッドからの引数でちょっとした処理とユーザーコントロールの表示処理を行いたいのですが…。
>>122
無いものは作る。
>>123
無いものは作る。ってShowメソッドをですか?
私にはそのShowメソッド内で表示処理のプログラムが想像すらつかないのですが、
よろしければ教えていただけないでしょうか?
125122:03/05/16 01:02
>>122=>>124です。失礼しました。
>>122
自分自身を見えなくしたいだけ?
Width = 0
Height = 0
じゃ済まないの?
127デフォルトの名無しさん:03/05/16 03:42
アドレス変換ってどうやんの?それっぽいサイトが見つからなくてわからないんだ。いいサイト知ってたら教えてけろ
>>127
たとえば何をやりたいんだい?
129デフォルトの名無しさん:03/05/16 06:22
>>128
用途の事であれば、チャットをできるようにしたいんよ。とにかくネットワークはあんまり詳しくないからアドレスをどういれればいのかわからん〜。ぜひおせーて
>>129
IPなら
Winsock1.Connect "127.0.0.1", 1234
で繋がるしURIとかなら
Winsock1.Connect "hoge.hoge.com", 1234
で繋がるし。
というか、本屋へ行ってネットワークの基本的な事を勉強してからにしておくれ
VB6以前のVB製ソフトはウイルス並の扱いですが何か?
>>131
ヌヒが心配せずとも、いずれ消え去るわけだからほっときやがって下さい。
133デフォルトの名無しさん:03/05/16 09:24
〉〉130
まじサンキュー!ちなみに1234って何なん?
134デフォルトの名無しさん:03/05/16 09:29
チャットってなんだ?IRCかメッセンジャーか?
>133
だから、ヘルプくらいは読みなさいとお母さんがいつも言ってるでしょう。
136デフォルトの名無しさん:03/05/16 09:39
おれの彼女はUnix使いだから,子どもできたらほんとにそういうこと言うんだ
ろうな。ヘルプじゃなくてmanだろうけど。
137デフォルトの名無しさん:03/05/16 10:04
≫135
ごめんググったけどわかんなかった。俺の力不足や。ちなみにグローバルアドレスを入れなきゃいけないんでしょ?
138_:03/05/16 10:05
>>137
もうやめろ。まじで。
アドレス変換ってNATのこといってるんだろ
>>130は無知
エクスプローラの検索ダイアログで、
FNDファイルとして検索条件を保存することができます。
ただ検索ダイアログを開くだけならば拡張子FNDのファイルを無理矢理作ればいいんですが、
「TEST.TXTを検索する」といったようなFNDファイルを
VBで作ることはできるんでしょうか?
ご存じの方がいらっしゃいましたら、ご教示ください。
よろしくお願いします。
>>137
ぐぐったけど出なかったって・・・検索の仕方もわからないのかよ。
無理だよ、あきらめな。
どうしてもってんだったらシャドウペンギン調べてみ。
これ以上の質問却下、シャドウペンギン見つけられないってのも却下、
読んで理解できないならVBごとやめれ。
プログラム能力ゼロだから。
VBは何でもできる最強のツールですね
>>143
うむ
最強かどうかは決して肯定できないなあ。
どっちかってーと、最兇ってかんじ?
147 ◆VBGo3bjTdQ :03/05/16 14:41
質問どぞ
VB4を初めて使った時は、なんじゃこのオモチャは
やっぱVCじゃないと使い物にならん と思ったけど、
VB5、6へと進化したことや、マシン自体の速度向上によって
遅さがある意味解消されたことで、VBってけっこう使えるヤシと
認識が変わってきた。
最強のツールとは思わんが、悪いツールじゃないな。
149デフォルトの名無しさん:03/05/16 15:13
せめてマスタリングTCP/IPくらいは読んでくれ
151デフォルトの名無しさん:03/05/16 16:34
>>148
禿胴。「VBで開発?マジですか」なんて言ってたのが一昨年。Pentium800Mhzあたり
が普及しだしてからは「おおっ!こりゃ楽チン」てな感じで積極的に使ってる。
で、いよいよ客先でもVB.NETが普及し始めたと・・・メンテドウスンノ(鬱
152デフォルトの名無しさん:03/05/16 16:35
検索キーワードが思いつかないのでここで質問させてください。
フォームをリサイズするときにこれ以上小さくできないという縦横のサイズは設定できますか?
今やってる方法が、リサイズの時にそのサイズが指定サイズ以下のときは指定サイズに戻すよう設定するプロシジャを書いているのですが、
これですと、リサイズの最中にはどこまでも小さくできるのですが、マウスから手を離したときにウィンドウが指定サイズに戻るので、
若干不自然です。どこかのソフトではマウスをドラッグしても、途中でマウスポインタが動かなくなるようなソフトがあるとおもいますが、
それをVBでやる方法を教えてください。よろしくおねがいします。
>>152
ウィンドウをフックしてメッセージ揉み消し。「サブクラス化」とかでぐぐれ
FAQだね
>>152
サブクラス化とMINMAXINFO構造体だな
サブクラス化なんてCでは日常茶飯事なんだけどねー
>153

>155

ありがとうございます。調べてきまんもす
>>156
(´・∀・`)ヘー ソレデ?
>>158
無意味に大変
>154

FACKだね
>>158
v(・∀-)b ウラヤマシイダロ
>>160

FUCKだろ
サブクラス化が悪いとは言わん
つーか、やらないとできないこともあるしね
でも覚えたてでうれしくて、しなくても済むことまで
面白がって(かっこつけて?)使ってるヤシを見ると、
なんだかゲンナリする・・・・
>>163
デバッグで死ぬ思いさせたれ。

>163
サブクラス化しないで
>152
をやる方法は?
ない
なんだジエンかよ。
169163:03/05/16 17:08
>>165
その場合はサブクラス化しかないよ
あるいは、サブクラス化を行う市販OCX、ユーザーコントロールの貼り付け。
俺はこういう用途用に、サイズ制限用ユーザーコントロールを自作して、
それ貼り付けるだけでリサイズ制限できるようにしてある。
v(・∀-)b
171デフォルトの名無しさん:03/05/16 17:18
すみません、多分すっごい基礎・・というかガイシュツな質問かもしれませんが教えてください。

小数値でで、23.3(23時間30分を表す値)を
23.5という小数値に変換したいのです。
計算式を考えているのですが、どうもいい方法が思いつかなくて。。。

何かスマートでいい方法があればご教授下さい。
20倍する。INT。あたりがヒントでできないか。
1.小数部を取り出す。
2.X/6で完了。
うまい
175172:03/05/16 17:34
あ、勘違いした。スマソ。
小数を整数に変換後、また小数に変換するのは大変危険です。


Dim a As Double
Dim b As Long
Dim c As Double

For a = 0.01 To 1 Step 0.01
b = a * 100
c = b / 100
If Str(a) <> Str(c) Then
MsgBox "なんじゃこりゃー"
End If
Next
177176:03/05/16 17:50
あれ?
なんか違う
>>176
>大変危険
それを回避する方法はさんざんガイシュツなわけだが。
B = Fix(A) + (A - Fix(A)) * (5 / 3)
A は変換前、 B は変換後
間違ってたらスマソ。
181122:03/05/16 18:34
>>126
あ、そうか。そんな単純な事でよかったんですね。
有難うございました&スレ汚しスマソ。
182sage:03/05/17 06:08
winsockコントロール使って確認君にアクセスしようとしたらできませんでした。
普通のページならちゃんと読み込めるのに。
cgiとかそういうのにはうまくアクセスできないんでしょうか?
>>182
んなわきゃない
184デフォルトの名無しさん:03/05/17 08:18
みなさんすまんかった。
自分なりに調べてグローバルIPに変換して、それで接続してみた。けどだめみたい。
ファイヤーウォールに蹴られてるんかな?それとも片方がLANの中のやつでどれもグローバルIPがいっしょだからだめなんかな?
みんなにはくだらんかもしれんけどおねがい!教えて。
>>184
RFCくらいは知っててやってる?
原因追求のやり方とかわかっている?
TELNETで手動で取ってくるくらいはできる?
>>185
レス番ちがった。185は182宛てね。
>>184
プログラム組む前にネットワークの勉強をしろ。
本屋行け。
>>184
まずは、テクニカルエンジニア(ネットワーク)の資格でも取れ。
話はそれからだ。
>>187-188
なにを偉そうに・・・
>>189
わかってるならこたえてやれよ。
>>189
しょうがないだろ。VBとは関係ない話なんだから。
>>184
とりあえずLAN内ならうまくいくんだね?
だったらマジでVBの話じゃないからネットワークを勉強してくれとしかいえないだろう。
LAN内で動かないならまずそこで動くようにしよう。
>184
ttp://www5e.biglobe.ne.jp/~aji/3min/
を隅から隅まで読んだ後に再度質問してくれ。
msdn、過去ログ、一応目を通し、ググったりもしたんですが、
既出だったら、すいません。

コンパイル環境:VB6.0、DriectX7.0、OS:Windows98
実行テスト環境:DirectX8.0a、OS:WindowsXP

DirectDraw の SetForeColor と、DrawText で、文字表示するプログラムなのですが、
Windows XPだと、すべて 黒 で表示されてしまいます。
原因はなんでしょうか?

下らない質問かもしれませんが、どなたか、教えて下さい。
VBで画像ビューワーを作ってるんだが、
テキストボックスにファイル名を入れて開くというコマンドボタンを押したら表示するという簡単な物なんだが、
開くボタンを押す以外にも、
ファイル名を入力→「エンターキー」「タブキー」を押しても画像を表示させるにはどうしたらいい?

>>195
サブクラス化
197195:03/05/17 12:03
>>196
Subプロシージャを作って、keyPressで制御すればいい?
198デフォルトの名無しさん:03/05/17 12:21
>>196
その程度のことでサブクラス化する必要は全くない
199デフォルトの名無しさん:03/05/17 13:00
FormのプロパティーのTagって、何に使うもんなん?msdn見ても今市つかみ所
がない
>>199
たとえば、テキストボックスで文字列が変更されたときに、
Me.Tag = "変更されました"
なんて入れておくわけだ。

そんで、QueryUnload で Tag の値を確認して、「変更されています。保存しますか?」
てな感じの確認メッセージを出す、と。

漏れがよく使うのはこれかな。
201199:03/05/17 14:12
>>200
それって、内部変数を持たせちゃいかんの?プロパティーを使う必要性があまり
感じられないんだけど、利点はあるんけ?
>>201
内部変数はそのフォームだけの情報。
Tagはすべてのフォームに共通して存在する情報。
って使い分けるとか。
>>202
えっ?
意見がないなら口をださない。
205203:03/05/17 15:11
>>204
いや、「Tagてすべてのフォームで共通するの?」て聞きたかったんだけど。
IDEで初期状態で設定した値は共通するだろうけど。
>>205
聞きたいことは正確に聞け。

同じ値って意味じゃないぜ?
フォームのCaptionはすべてのフォームがもっている情報だろ?
でも内部変数は作ったフォームだけが持っている情報だろ?
207203:03/05/17 15:24
>>206
なんじゃ、そんな意味で言ってたのか。スマン
Tagプロパティの値を複数のフォームで共通して使いまわせる
って意味で言ってんのかと思った。
どのフォームでも必ずTagプロパティがあるって言いたかったわけね。
>>200
もちろん、内部変数でもいいんだけど、外から見たいときってあるよね。
大昔のVBって、プロパティの自作ができなかったんじゃなかったっけ。

どちらにせよ、(VB.NETでは一回削除されたし)古い仕組みにはちげーねー。
大昔っていつのVBだ? VB5からしかろくに知らんからそれよりも前か。
210199:03/05/17 15:45
>大昔のVBって、プロパティの自作ができなかったんじゃなかったっけ。
激しく納得した。そういうことね。
211182:03/05/17 18:50
telnetでアクセスしたけどダメだったんですよ。
os win2k
open www.ugtop.com 80
GET /spill.shtml HTTP1.0
ってやったら404not foundで。
ブラウザならwww.ugtop.com/spill.shtmlでアクセスできるんですが・・・
どうなってるんでしょうか
212182:03/05/17 19:06

訂正
GET /spill.shtml HTTP/1.0 ね。
ちなみにGET / HTTP/1.0 だと英語のページになるし・・・
ん〜
-- 終了 --
214デフォルトの名無しさん:03/05/17 22:05
>>211
バーチャルホストを使っていると思われ。
HTTP/1.1でHostヘッダを使用したら取得できたよ。
215デフォルトの名無しさん:03/05/17 23:55
216211:03/05/18 00:01
おー、サンクス>>214
できました。
Hostヘッダが必要だったんですね。
ヘッダなしでやってたよ
ここのスレタイ、目潰しされて笑ってる…不気味な奴。
ウインクだろ。
つーか顔AAが気に入らないからって重複スレあげる奴ウゼー
219デフォルトの名無しさん:03/05/18 12:15
220インストーラー作りたいさん:03/05/18 12:36
VBで作ったアプリのインストーラーを作りたいのです。
*.vbpを指定して作成することが出来たような気がしたのですが、
どうやってやればよいのでしょうか?
VBで作ったアプリをインストールするなんて迷惑なだけだからやめとけ。
222 :03/05/18 13:46
以下のスペックのパソコンを使用してるのですが、このパソコンで使用できる
ビジュアルベーシックのバージョンていくつまででしょうか?

CPU  ペン2の350Mhz
メモリー 120M
OS    WIN98

MSのHPいったのですが、NETしか載ってなくて確認できませんでした・・。
223デフォルトの名無しさん:03/05/18 13:48
>>222
.NETつかえよバーカ
224195:03/05/18 14:10
誰か>>195のヒント下さい・・・。
明日提出なんで・・・。
225:03/05/18 14:18
>>224
ファイル名を入力するテキストボックスのキーダウンイベントで
押されたキーがtabかenterなのかを判断して
もしそうなら開くボタンと同じ処理。
tabが拾えるなんて聞いたこと無いぞ
227デフォルトの名無しさん:03/05/18 14:41
>>220
ディストリビューションウィザードか
Visual Studio Installerを使う
228:03/05/18 14:42
>>226
キーダウンなら拾えるが?


>>224
'開くボタンの処理
Private Sub OPEN_BTN_Click()

End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)

Select Case KeyCode
Case vbKeyTab, vbKeyReturn
Call OPEN_BTN_Click

Case Else
End Select

End Sub
229224:03/05/18 14:42
>>225
キーダウンイベントって、キープレスの事ですよね?
>>226
フォーム上のすべてのコントロールのTabStopをFalseにすれば拾える。
という裏技みたいな方法もあるが、通常はフォーカスが移ったときと
考えるべきかな? 元の仕様が分からんのだが。
231:03/05/18 14:44
>229
キー「ダウン」!!!!!!!
232224:03/05/18 14:46
>>228
>>231
ありがとうございます〜。
キーダウンって参考書に載ってないんで・・・。
VB初心者なんでスミマセン・・・。
233224:03/05/18 15:06
>>228
これだと、エンターを押した場合は画像開けるのですが、
タブの場合だと、開くボタンにカーソルが移るだけになってしまうんですが、どうすれば
タブキーでも画像を開けるようになるんですか?
>>233
>>230」!!!!!!!!
235:03/05/18 15:19
>233
Case vbKeyTab, vbKeyReturn
なのにエンターキーだと
Call OPEN_BTN_Click
が呼ばれてタブキーだと呼ばれない?
そんなはずはない。
もう一度よく確認。

フォーカスが移動するのは別問題。
テキストボックスのExitイベントで抑止できる。
236:03/05/18 15:27
スマソ、VBにexitはないみたいだ
237デフォルトの名無しさん:03/05/18 15:28
VB4.0という古いやつがあるのですが。
これを使って株の自動注文システムみたの
くめないでしょうか?

具体的にはIEの注文画面のある特定の数字を拾い
この数字が既定の値、または変位がいくつになった時に
自動で株注文をボタンをクリックし自動で買う数量
や損切りの額などを入力し注文をだすというものです。

じつは今結構勝っていまして、この手法を是非自動化したい
と思いまして聞いたのです。
もねがいします。
238224:03/05/18 15:31
>>235
さっきのやつをそのままコピペして、
OPEN_BTN_ClickのとこだけCommand1_Clickに変えただけなんですが無理でした。
239224:03/05/18 15:32
>>236
では、どうすればいいんですか?
>>237
がんがってプログラムを作ってウプしてください
それでこのスレのみんながお金持ちになれば
あなたは英雄です
241:03/05/18 15:47
>>239
漏れが作ってみて大丈夫だったのでソースうぷした。
試してみてくれ。
http://www.puchikomi.net/php-bin/uploader/datafile/puchikomi441.zip
242237:03/05/18 15:53
>>240
レスありがとう。
ではVB4.0で自動注文は可能とみてよろしいですか?
プログラムさえ出来れば言語は簡単なほうがいいと思ったのと
今手元にある言語はそれしか無かったもので
質問しました。

しかし仮に出来るとしても、説明書ないから難儀しそう・・


243224:03/05/18 16:55
>>241
ありがとうございます〜。
それを作りたかったんです〜。
ただ、スクロールバーを付けると、やはりタブでは開けなくなってしまいます。
かといって、TabStopをFalseにするわけにもいかないので・・・。
(教授のexeはきちんとタブで開く&移動する)
もう少し、頑張ってみます。
244:03/05/18 17:36
>243
すまん、わからん。
サブクラス化しかないと思う、、が、
>198いわく、他に方法がらしい。
気になるので方法希望!
245 :03/05/18 17:43
>>237

おなじこと考えている人がいてびっくりしました。
しかも私もちょうどVB4を持っています。
もし良かったら一緒に開発しません?
連絡下さい[email protected]

↓これ私w
>>http://pc2.2ch.net/test/read.cgi/tech/1051882835/606
そんなこともできないVBってうんこすぎ
>>237
>>245

VB4 には、インターネット関連の機能は含まれていなかったはず。
となると、Winsock やら Inet やらの API を使うか、その辺のコンポーネントを
探してこなくちゃならない。

あと、当然 https になるんだろうけど、その辺の実装が↑でできるのか
わからん。
>>237
プログラム売買?
禁止されてなかったっけ?
249248:03/05/18 18:39
あった、あった。一応大丈夫だけど気をつけたほうがいいと思う

プログラム売買
様々な投資基準を基にした一定の条件で、
売り買いの判断をするようにプログラムを組んだコンピューターで株式を運用することをいい、
東証は「一度に行う25銘柄以上の売買」に報告義務を課している。
この売買を行う際に、コンピューターから一度に多数の銘柄が発注されることが多いので、
単純なコンピューターによる売買と同一視されることがあるが必ずしもそうではない。
また、同じ意味で「システム売買」という言葉を使う向きもあるが適当ではない。
250224:03/05/18 18:40
>>244
あまりにもわからんから、教授にメールしたところ
「TextBox の LostFocus イベントハンドラを作成します。その中味は『開く』
ボタンがクリックされた」時の動作をする(呼び出す)だけ。」
と返信が来たんだが、さらにわからんようになっちまった・・・。
251 :03/05/18 18:41
>>247
げ、そうなんですか・・・。
ではVBのバージョンいくつからなら、インターネット対応してるのでしょうか?
>>237のようなことが出来るのはバージョンいくつからでしょうか?

>>248
いや、禁止されてなかった・・・はず・・・なような・・・・。
252デフォルトの名無しさん:03/05/18 18:44
ネタか?なぜにVB4.0?素直に.NET逝かんかい。ゴルァ!
>>250
あー、なるほど。
tabキーを押すとフォーカスが移り、LostFocusイベントが発生する。
そのイベントプロシージャを作って
そのプロシージャ内にファイルのロードの処理しろって事。
フォーカスとか分からんかったら自分で調べれ。すぐ分かるだろうから。
>>250
フォームのほうでタブを横取りして適当なメッセージをTextBoxに投げれば?
つーかLostFocusだとマウスクリックでフォーカスが移動した時どうすんだろ。
フラグ立てるのかもしれないけど汚いなあ。
>>255
まぁ宿題だしな。
作成じゃなくてプログラムを考えるのが主目的な訳で。
そうやってVB厨が大量生産されるわけだな。
んなわけない。
>>258
そう思いたいんだよねw
260:03/05/18 19:09
>250
なーんだ。
LostFocusでいいのか。

>254
Tabキーが押された時はそもそも押されたということ自体通知されない。

>255
試してみたけど、
MouseDownや、押されたボタン等のイベントよりも先に、
LostFocusが発生するのでフラグの立てようが無いのでは?
ボタンをクリックした時、フォームでMouseDownを先に
とらえることもできなかった。

>256
事実教授もそういう考えでこんな問題考えたんでしょうねぇ。
真剣に考えてものすごくあほらしく思えます。
261224:03/05/18 19:09
やべえ・・・。全然わかんねえ・・・。
明日学校休むか・・・。
262:03/05/18 19:12
>261
教授はこうさせたいんでしょうねぇ。。

Private Sub TEST_TXT_LostFocus()
Call OPEN_BTN_Click

End Sub
263:03/05/18 19:16
>262
自己レス。
でもそれなら開くボタン自体
必要なくなるような気もする。。
ファイルオープンダイアログみたいな
パスを読み出して表示されるボタン等が
あるとも考えにくいし。。
つうか、教授の問題のだしかたにも問題があるな。
まあ、教授の考える仕様なんてこんなもんだ。
266224:03/05/18 19:30
だめだ・・・。
いくらテキスト読んでもわかんねえ・・・。
明日は学校休みます。
フックしろよ馬鹿ども。VBじゃできないとでも言うのか?
まぁ、フックでもできるな。VBでもローカルフックはできるわけだし。
でも、フックでやるような内容じゃないと思うよ。
>>267は恥をかいた。
270デフォルトの名無しさん:03/05/18 21:09
ACTIVEX.EXEのデバッグを行なおうと、実行させておいて、他のプロジェクトから呼び出そうとすると、
クラスはオートメーションまたは予測したインターフェースをサポートしていませんというエラーが出てしまいます。
前はできていたのになぜでしょうか?
271デフォルトの名無しさん:03/05/18 21:10
フォーカスが移動する前にタブを奪うのが普通だろ?
273Defaultの名無しさん:03/05/18 23:32
CommandのTabIndexをTextの次にして
CommandのGotFocusにピクチャー開く処理を記述するとか。
こんな糞仕様却下だろ
>>224は絶対に分かろうとしていない罠。
宿題系の質問になると糞仕様を叩くのは必然なのか

漏れも糞仕様だと思うけどね。
277194:03/05/19 09:13
質問が糞すぎて、返事がないのか、
わかる人が居ないのか、どちらでしょうか?(´・ω・`)

前者なら、追い出して下さい。
278デフォルトの名無しさん:03/05/19 09:47
基本的なことかと思いますが質問させてください。

年齢計算のコードを書いているんですが、
どうもうまくいきません。
知り合いから、365.25で割る方法とかも聞いたのですが、
これだといわゆる「●年目」の値が表示されてしまい
満年齢の計算が出来ません。
何かいい方法があれば教えてください。
よろしくお願いします。
>>278
DateDiffとか?
280278:03/05/19 10:49
すみません・・・/365.25の式であってました・・

式をみたら、Int関数使うはずが,間違えてCint関数使っていました(死

癖って怖いですね・・・


というわけで、お騒がせしました。


>>279
お答えありがとうございます。
Datediffですね。
この関数も別の方法として調べてみます。
知っている方教えてください。

i-mode って VBScript 使えないんですか?
aspとVBScriptのセットで画面作成を行うつもりだったのですが・・・
本当にクライアント側スクリプトが必要か、もう一度考え直せ
>282
はい、if文駆使した場合分けとか、エラーハンドリングもVBScriptだし。
レジストリ情報取得DLLなど使う場面がありまして、どうしても必要なんです。
面白くない
>>283
それはサーバー側の話じゃないんか?それともネタか?
IE for i-mode を作れば解決だ。
287283:03/05/19 12:08
>285
すみません。なにしろVBScriptを扱うのもi-modeも初めてでして、手探り状態なんです。
しかし、みなさんの意見をみてるとi-modeで表示するhtmlやaspではVBScriptソースは利用できないと考えてよろしいのでしょうか?
>>277
レスの催促は慎みましょう。ここは解答スレではありません。よって全ての質問に
答える義務はありません。
>>277
どうしてもレスが欲しい質問はこちらへ

VB超初心者スレ
http://pc2.2ch.net/test/read.cgi/tech/1047222540/

ただし書き込みは必ずsageですること
>>287
i-modeの仕様くらい、探して読もうよ。
どこにあるんですかなんて言わないでくれよ?
291デフォルトの名無しさん:03/05/19 12:23
>>290
で、どこにあるの?
>>287
ASPはサーバー側で動くものだから見るほうがimodeだろうがPCだろうが
関係ないよ。よってVBScriptでもOK。
そのVBScriptで吐き出すHTMLがimode用のchtmlという規格に
あったものじゃなきゃだめだよ。
293デフォルトの名無しさん:03/05/19 12:56
>>287
ネタなのか?それともi-modeはWindowsで動いてるとでも思っているのか?
294283:03/05/19 13:30
>292さん
なるほど。そういう事だったのですか、初心者にご丁寧に教えていただきありがとうございました。
295デフォルトの名無しさん:03/05/19 14:27
>>294
292は間違ってるよ。VBScriptっていえば普通はクライアント側で動かすことだ。
296デフォルトの名無しさん:03/05/19 14:27
おっと、292の間違い。
297デフォルトの名無しさん:03/05/19 14:28
と思ったらあってた
>295
ASP触った事無いんだったら素直にそう言えばいいのに・・・
299デフォルトの名無しさん:03/05/19 16:25
ってかVBScriptの場合,クライアント、サーバーどっちでも使えるんでは?
300デフォルトの名無しさん:03/05/19 18:39
すいません質問させて下さい
VB6で下記のロジックを動かすと
year は2002のまま
year2は2004となってしまうのですけど何故かわかりません
どなたかご教授願えませんでしょうか?




dim year as integer
dim year2 as integer

year = 2002
year2 = 2003


yaer = year + 0.5
year2 = year2 + 0.5


>>300
小数部の.5を整数に丸めるときに、最も近い「偶数」にするらしい。
(なぜこういう仕様なのかは不明)
Int関数を使えば、小数部切捨てになるよ。
302300:03/05/19 19:09
>>301
ありがとうございます。
私も調べてみましたところFix関数を使うのがベターだということが
わかりました
http://www.gwork.com/magazine/issue/vb0007.htm

もうすぐ海が見える寂しがり屋達の伝説さワンナイトカーニバルファンファン
303300:03/05/19 19:14
最後の行は本文と関係ありません。
失礼しました。
もうすぐ海が見える寂しがり屋達の伝説さワンナイトカーニバルファンファン
305 :03/05/19 20:56
過去にすでに質問したのですが、もう一度質問します。
以下のようなプログラムを組みたいのです。VB6で可能でしょうか?

あるアプリケーションの特定の数字を拾い、この数字が既定の値、
または変位がいくつになった時に、IEなどのブラウザで自動で
株注文を出す(ボタンをクリックし自動で買う数量や損切りの額
などを入力する)。

よろしくお願いします。
>>305
あるアプリケーションによる
307 305:03/05/19 21:40
>>306

レスありがとうございます。
アプリケーションによるとのことですが、どんなアプリなら可能でしょうか?

私が予定しているアプリケーションはマーケットスピードというものですが、
大丈夫でしょうか。
>>307
可能な可能性は高いが今すぐ君ができるレベルではないと思われる。
309 305:03/05/19 21:55
>>307

どのようなやり方をすればいいのでしょうか?
軽くやり方のヒントだけでも教えてもらえると助かるのですが。
死ね>>1
311デフォルトの名無しさん:03/05/19 22:37
VBで開発した自アプリケーションをホットキーで起動させたいのですが
なかなか参考になるようなサンプルソースが見つかりません。
どなたかご存知の方がいらっしゃいましたら
URLを教えていただけませんでしょうか?
よろしくお願いいたします。
ショートカットのプロパティからどうぞ。
SetCursorPos+mouse_event->SendMessageへの置換で途方に暮れています。

別アプリの複数の特定座標をクリックする、というものなのですが、ポインタの移動が上手く行きません。過去ログのpart19の>450近辺を参考にしているのですが、クリックは出来ましたがポインタが動かないんです。
ウィンドウハンドル取得->SendMessage(ウィンドハンドル, WM_LBUTTONDOWN, 0, 座標)
というステップだけでは駄目なのでしょうか?
31417:03/05/20 07:49
お願いします >>17
>>311
>>312、それとも、自分で登録した Hotkey? 後者なら、WM_HOTKEY を
サブクラス化したウィンドウプロシージャで取ることになるね。

>>313
そのメッセージは、押したということを示すだけで、マウスカーソルが移動するわけ
ではないよ。ということで、置換できないね。

>>314
QRコードってことは2次元バーコードか。ってことは、その仕様を調べて実装
するしかないんじゃないかな。結構簡単そうに見えるけど、きちんと読み込める奴
を作るのは面倒だと思う。コンポーネントを探したほうがいいんじゃない?
31617:03/05/20 10:06
>>314
どうも!そうですデ○ソーが作った二次元バーコードのことです
オレも簡単だと思ってたが実際は数学の専門的な知識が必要なのよ
やってやれんことはないと思うがそこまで時間をかけられん
フリーの DLL なんかもあるがバイナリデータを扱えるものとなると高額でな
ソースどっかにありゃそれ参考にしてと考えていたんだが。。。
31717:03/05/20 10:07
スマソ >>315 だったな鬱
318311:03/05/20 10:31
俺のネットでのニックネームはゼブラマン!!
ヨロシク!!
ちんこぉぉぉぉーーーーーーーーーーーーーーっ
ちんっっこっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっxっっっっっっっっっっっっっっっっっc
>>1
死ね
320313:03/05/20 15:03
>315
Σ(´く_` ) ナント!!
それではSetCursorPos+mouse_event->SetCursorPos+SendMessageにするしか無い、といことですか?
SendMessageの第4引数の座標というのは何を示しているのでしょうか?
>>320
クリックされた位置でしょ?
// horizontal and vertical position
って、ヘルプに書いてあるよ。
なんか荒れてるな。多分向こうの>>1が向こうのスレに移動させたいんだろうが。
いっそのこと一思いに向こうのスレ削除依頼出すか。
323デフォルトの名無しさん:03/05/20 17:37
>>316
他の簡単なヤツにかえるっていうオプションはなし?
324狂信的アハァ信者:03/05/20 17:39
     リ,;;;;;;:: ;;;;;:: ;;;;; ::;;;;;; \       人 从
     (彡ノり/リノ" ミ;;;;;;,,,.. ゝ     ) あ (
     );;; ヾ、;;;;...__,,  );;;;;;;; ヾ    ) お (
     i:::) ` ;;ー--、` 〈;;;;;;;::;;; i   ) お (
    i i::/   ^:::::::.. i  ,ll/ニi ;; l   ) / (
    i l ヾヽ''    ゚   ))ノ;; /  ) っ (
  i |  | iにニ`i,     (_/i;;; |  ) !! (
  | |  ! `ー‐'"    /  ゞ:l  つ (⌒
  i l|  ! " ̄  ,,,. /,;    ミi      |l
  | |i  ヾ二--;‐' ,;; ,;   ミ ||i il   i|
  | ll  _|彡"  ,' ; /' ̄^ ̄''''\  ||
  l ,..-'"  〈    ; /        ヽ
 /  、, \)  ,,.-/           `i
     `  ミー,;;' ,l             l
    /   ;; /  .|             |
   ヾ/    ,i'  ト             |
   'i     '  /゙`       イ    !
   ,;;|o;   i|  /         ヲ    /
  ,;;人,,_   ハ /    ,     /     リ
 ‐''"⌒ヾ:;' /'゙ i    /    /ミ    ミ!
      \ ,/   '';;    / ゞ    i
        ヽ   ,    ,ノ _,,;:'     ,i
    /  Y  \ '   ,;;/ _,.;:'     l
  ;;'    l   :. \   /        /
   i   :: i   ''::. \ /        ,;;イ
   ;;   .  l   `'::. ヾ,        ';/ |
向こうは超初心者の次スレにすればいいんだよ
326デフォルトの名無しさん:03/05/20 22:16
# If ... Then ...#end ifを使おうとしています。
#Constディレクティブを、モジュール内だけでなく、プロジェクト全体でパブリックな値として
宣言したいのですが、方法がわかりません。
「VB public コンパイル定数」「VB public ディレクティブ」などで検索してみたのですが、
モジュール内での定義しか見つかりませんでした。

プロジェクト全体でパブリックなコンパイル定数はどうやって定義するのでしょうか?
>>326
プロジェクトの情報はもちろんプロジェクトにある。
「プロジェクトのプロパティ」→「実行可能ファイルの作成」→「条件付コンパイル引数」
コマンドラインからコンパイルするときは/dオプション
328デフォルトの名無しさん:03/05/20 23:13
>>326
プロジェクト->Project1
から「実行可能ファイルの作成」タブいって条件付コンパイル引数で
bDebugMode = -1
のように記述する
329デフォルトの名無しさん:03/05/21 03:48
最近、VBを勉強し始めたのですが
sendinputの使い方がよくわかりません
サンプル等を検索してみたのですが
それでも、ピンときませんでした。

たとえば、ハンドルの取得は無視して座標10,20を左クリックする場合は
どのよーなコードになるのでしょうか?
よろしくお願いします。
330デフォルトの名無しさん:03/05/21 09:28
331326:03/05/21 11:09
>>327
>>328
ありがとうございました。
>>330
レスありがとです。
そのソースも、見てはいたのですが
難しすぎて・・・・。
sendinput自体のパラメタに何が入るのかが
いまひとつ分かりませんでした。
うーん、本屋さんで参考になるものでも探してきます
ありがとでした。
333デフォルトの名無しさん:03/05/21 13:06
>>332
っていうか、何がしたいんけ?もしC++とか知ってるなら,VB上でwin32apiバリ
バリをやるよりC++でやったり、VBでも他のやり方があるかもよ。
334デフォルトの名無しさん:03/05/21 14:08
ACCESSに作成したテーブルから
.. SELECT * FROM uriage WHERE uriagebi = "05/20"
としてデータを読み出し
.. hizuke = rs!uriagebi
のように参照できるのですが、別のテーブルも参照したく
.. SELECT * FROM uriage INNER JOIN kokyaku WHERE uriagebi = 05/20
として同じように
.. hizuke = rs!uriagebi
すると「要求された名前、または序数に対応する項目がコレクションで見つかりません。」
とエラーになります。

正しい参照方法を教えてください。

335デフォルトの名無しさん:03/05/21 14:58
>>334
"" (ダブルクォーテーションなし)でレコードセット返ってきてるの?
336デフォルトの名無しさん:03/05/21 15:11
>>335

.. SELECT * FROM uriage INNER JOIN kokyaku WHERE uriagebi = "05/20"
の間違いでした

337デフォルトの名無しさん:03/05/21 15:24
>>336
で、問題解決したのか?それともまだ問題は残っているのか?
338デフォルトの名無しさん:03/05/21 15:27
>>337

まだ解決してません。

.. hizuke = rs!uuriage.riagebi
とかへんなこといろいろやってますが
参照できません。

339デフォルトの名無しさん:03/05/21 15:32
>>338

.. hizuke = rs!uriage.uriagebi
のまちがい・・・
340デフォルトの名無しさん:03/05/21 15:50
1. SQLは正しい?
-> Access で実行してみる
2. rs にはレコードセットはセットされてる?
-> Debug.Print (rs Is Nothig) で True なら、 rs がない
3. 件数は?
-> Debug.Print rs.EOF でTrue なら、 データがない
4. フィールド名はただしいか?
rs.Fields(0).Name とかでフィールド名をみてみ
(rs!hoge は使わないほうがいいらしい)
341デフォルトの名無しさん:03/05/21 15:52
>>334
ON がなくていいの?
>>334
そのエラーから察するにSQL文に問題あり。
[uriagebi]テーブルと[kokyaku]テーブルのフィールドはどうなってんの?
>>340
「!」で繋ぐのってVB4や5で一般的だったのかな?
最近の書籍やリファレンスでは見かけないのだが。
それともVBAなんかでよくやんのかな。

とりあえず遅いんだよね。

>>334
とりあえず日付囲むなら"より'のほうがよくない?Jetだと#だっけ?
で、SQLへん。INNER JOINの使い方おかしいんじゃない?

345デフォルトの名無しさん:03/05/21 16:46
>>340
他のフィールドは取り込めることがわかりました
ふたつのテーブルで同じフィールド名(uriagebi)をもっているものがダメなようです。

>>342
すみません。 実際にはONはあります。ココでは省略してました。

>>343
同じフィールド名のときは特別な記述方法があるのでしょうか?

>>344
「!」でつなぐ方法が初心者用VBの本に載っていたので。
他のいい方法があったら教えてください。

346デフォルトの名無しさん:03/05/21 16:49
話は変わるが
>>344
Jetでの日付は #12/31/1999# の形が一番無難だっけ。他のDBとあわせるなら
'1999-12-31' だったっけ。
347デフォルトの名無しさん:03/05/21 16:50
>>345
rs.Fields("tablename.fieldname").Value
348デフォルトの名無しさん:03/05/21 16:51
>>345
省略してるときは,わかるようにしといてくれ。 ... とか (省略)とか
349デフォルトの名無しさん:03/05/21 17:00
http://laguz.gaiax.com/home/vb_net
ここに行って勉強しな
SQLを学びなさい。
351デフォルトの名無しさん:03/05/21 17:07
>>347
ばっちりできました!
ありがとうございます。

解決です。
今後、「rs!」をやめて、「rs.Fields("tablename.fieldname").Value」でいきます

>>348
すみませんでした。

>>349
もっと良さげなところを教えてください。
352デフォルトの名無しさん:03/05/21 17:56
>>344
「!」が使われていたのは、多分ACCESSの古い仕様のなごりだと思われます。
以下ACCESS1.1のヘルプからのコピペ。


識別演算子

識別演算子 ! と . (ピリオド) は、識別子の構成要素どうしの関係を表します。
演算子 ! のあとには、必ずユーザー定義によるアイテム名 (ユーザーが作成した
フォーム、レポート、コントロール、フィールドなど) を指定してください。演算子 . (ピリオド) の
あとには、通常、プロパティ名を指定します。

演算子 . (ピリオド) を使って、フィールドの値を参照することもできます。その場合、
フィールドが格納されているテーブル名を入力し、そのあとに演算子 . (ピリオド) と
フィールド名を入力します (例:Customers.Address)。演算子 . (ピリオド) を使って、
SQL ステートメントのフィールドの値を参照することもできます。Access Basic の
モジュールでは、演算子 . (ピリオド) を使ってメソッドが参照できます。


ちなみにVB4.0のヘルプには、コード最適化のテクニックとして以下の記述があります。


レコードセットのフィールドを参照する場合は“!”演算子を使用する
Recordset オブジェクトのフィールドを参照するときは、次のように演算子“!”を使用します。

rstEmployees![First Name]

この方法は、フィールド名をかっこで囲むよりも高速です。

rstEmployees("First Name")
353デフォルトの名無しさん:03/05/21 18:48
>>351
349は単なる広告だろ、たぶん。
VBでjpegやgifなどの画像ファイルから
画像サイズ(幅、高さ)を取得する方法を教えて下さい。
>>354
  with TPicture.Create do
  begin
    LoadFromFile('C:\WINDOWS\winnt.bmp');
    ShowMessage('幅'+IntToStr(Width)+' 高さ'+IntToStr(Height));
    Free;
  end;

UsesにJpegを追加するとJpeg対応になる。
その他多種の形式に対応するならSusieプラグイン等を使うと良い。
356デフォルトの名無しさん:03/05/21 19:16
>>355
それはVB6じゃないだろ、、
.net?
358デフォルトの名無しさん:03/05/21 19:20
>>354
バイナリで開いて、数値を取得する。
ただし、jpegは固定位置じゃない。

非表示のimageコントロールに読み込むという手抜きワザもあるけど。
359デフォルトの名無しさん:03/05/21 19:23
Dim objPicture as Picture
Set objPicture = LoadPicture (strFileName)
Debug.Print objPicture.Width

とかでできなかった? gifはできないと思うけど
360デフォルトの名無しさん:03/05/21 19:51
質問です。

過去にActive Report 1.0で作られたデザイナで参照されているのがDAO 3.51らしく、
本体プロジェクトの参照をDAO 3.6に変更してもそれが変わっていないようなのです。

本体でACCESS2000のmdbを読み込んでいる部分(OpenDatabase)でエラー
「データベースの形式 'xxx.mdb' を認識できません。」
が出ていたので試しに参照をDAO 3.6に変更したら修正されたのに、同様にデザイナで
OpenDatabaseしている部分ではエラーが出る。

という症状なのですが、このデザイナの参照しているDAOを変更する事は可能でしょうか?

それとも、別な原因があるのか、ご存知の方いたらご教授願います。


環境は、Win2000sp3、VB6.0sp5です。よろしくお願いします。
>>354
構造の解説サイト見つけてバイナリで取得が一番スマートだと思う。
362デフォルトの名無しさん:03/05/21 22:45
>>361
そりゃそうだが、VBプログラマでそれができるのがどれほどいるか、、
363デフォルトの名無しさん:03/05/21 22:59
VBのクラスってのがよく分からんのだけど
解説してるサイトってない?
>>362
VBプログラマかどうかなんて関係ないだろ。
ToolTipで改行表示するにはどうすればいいのでしょうか?
366デフォルトの名無しさん:03/05/22 09:44
コードエディタウィンドウである文字列を一時的に色付けする方法があれば教えて
>>366
シンタックスエラーを出せば赤くなりますが、何か?
>363
ttp://homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/
とかは?

>VBのクラスって
って事は、他言語のクラスはわかるって事?
んな訳無いか。
ま、解説ページを読むのもいいが、クラスを理解するには
ひたすら使ってみるのが一番だぞ。
369366:03/05/22 10:05
>>367
変数名とかプロシージャ名とか値とかの特定の文字列だけを色付けしたいのです
行ならブレークポイントでもブックマークでもかまわないですし
370デフォルトの名無しさん:03/05/22 10:47
>>366
ツール -> オプション -> エディタの設定
371366:03/05/22 11:04
>>370
説明不足で申し訳ないです
色付けしたいのはひとつの文字列のみです
たとえば変数名 'lngHoge' とか
無理。
ありかが知りたいだけなら適当にCtrl+Fで検索しる。
373デフォルトの名無しさん:03/05/22 11:22
>>371
VB以外のエディターを使ってください
374366:03/05/22 11:34
>>372-373
やはりそういう機能はないようですね
アドインでもあればと思ったんですが...
あきらめるとします
皆様どうもでした
Excelの編集で複数行のセルをコピーして、TrueDBGridにCtrl+Cで、
セルを壊さずに貼り付けることは出来るのでしょうか?
知っておられる方がいらっしゃれば方法を教えて頂けないでしょうか?
よろしくお願いします。
376デフォルトの名無しさん:03/05/23 09:50
VB標準のコントロールの一覧みたいなのってどっかにあります?MSDNみても
コントロールのスクリーンショットまであるようなのは見当たらないんだが
(とくに、どのプロパティーを変えると見た目がかわるか知りたい)
>>376
標準コントロールの見た目って
3D→2D、枠線の色、背景の色、文字の色くらいしか変えられないかと。
378デフォルトの名無しさん:03/05/23 10:31
>>377
TreeViewとかListView、FlexGridとかがあればかなり助かるんだが
379デフォルトの名無しさん:03/05/23 10:48
>>345
VBの本って,間違っていないけどあまり薦められないことが平気で書かれてる
ことが多い。
380デフォルトの名無しさん:03/05/23 10:52
VBでフォームの最前面表示などを制御する為に
API関数「SetWindowpos」を使用し、開発を行っております。
ところが、コンパイルしたプログラムを客先に納品したところ
フォームが全く表示されなくなってしまいました!!
こちらの環境では全く問題なく動作します。
試しに客先に「SetWindowpos」をコメントにしてコンパイルし直した
ものを送ってみた所、うまく動いたとのこと...
ちなみにForm_Activateイベントで行っています
どなたかこのような体験のある方、いらっしゃれば
宜しくお願いいたします。
381デフォルトの名無しさん:03/05/23 11:07
>>380
APIの宣言時に、客先では存在しないパスを指定してるとか?
こちらの環境あちらの環境を語らないおまえが本気で回答を聞きたがっているとは到底思えない
開発環境を客先に合わせていない奴が悪い
俺んとこでは 客先=IE5 で、こちらをIE6に上げたとたんにADODCが使えなくなった
原因はわかったもののIEはバージョンダウン不可。(つーかコンポーネント類は戻せない)
なんで俺はOSから入れなおしたぞ。
そんなわけでOfficeも2000にはしてない。
Exl2000必須の開発を頼まれた時にはインストールだめと言って別PCは都合してもらった
' ここから*************************
Dim objPrinter as Printer

Set objPrinter = Printer

Set Printer = objPrinter '' <ここで型が一致しないエラー発生
' *************************ここまで

はダメで、

' ここから*************************
Dim objPrinter as Printer

For Each objPrinter as Printers

If objPrinter.DeviceName = strPrinterName Then '' strPrinterNameはプリンタ名の入った変数。
Exit For
End If

Next

Set Printer = objPrinter '' <似たようなことしてるのに、これはOK。
' *************************ここまで

はセーフなんだけど。
どうして初めのソースはダメで、
後のソースの最後の行がエラーになるのか理解できない。
何かご存知のかた、一手ご教授。
>>383
VMWareとかバーチャルPCとか買えばー
凄く便利だよ
386デフォルトの名無しさん:03/05/23 14:01
よろです。

EXCEL200+VBAなんですが、
リストボックスコントロールに横方向のスクロールバーってつけられますか?
長いテキストをAddしたいんですが、ケツの部分が隠れて見えないんですよ・・・
387デフォルトの名無しさん:03/05/23 14:34
>>383
IEごとこでADODCを変えるMSも悪い
>>380
単純に動作環境が違うんでないか?
オーエスの違いで
サポートされてるAPI関数が異なる場合がある
>384
ahoか。型に代入できるわけねえだろ
390デフォルトの名無しさん:03/05/23 15:28
>>384
おれも詳しくはしらんが、
最初の Set objPrinter = Printer で、 objPrinter と Printer は Printer
オブジェクトと呼ばれるもののアドレスを参照するようになる。そして、
Printer に Printer オブジェクトのアドレスを参照させることは出来ない。

次の Set Printer = objPrinter では、objPrinter は別物。Printers コレク
ションの中のひとつなので、全く別のアドレスを参照している。このアドレス
を渡しても、Printerオブジェクトの方のアドレスは変わらない。
Set Printer = New Printer
392デフォルトの名無しさん:03/05/23 15:53
ちゅうか、客先で環境限定できないならVB使うな。
または、この環境以外保障しないと仕様で言い切れ。

この辺だけだよな、.netでましになった点って。
>この環境以外保障しない

それだ!
あるオブジェクト変数が既に使われているか知るにはどうすればいいんでしょうか?
if ObjVar <> Nothing とかやってもエラーになります
>>394
例外を取る関数を作るのが早いかと。
関数内でその変数にアクセスして、Objectが初期化されていないというエラーが返るかどうか判断。

IsNULLとIsEmptyがこれに関して機能しないのてつらいよな。
396デフォルトの名無しさん:03/05/23 16:04
>>394
If Not ObjVar Is Nothing Then
397デフォルトの名無しさん:03/05/23 16:18
>>384
つまり、最初の
Set objPrinter = Printer
では、いわゆる Printer オブジェクトを参照していて、 Printer オブジェクト
に Printer オブジェクト を参照させるのは「型が一致しません。」というエ
ラーになるらしい。ためしに、
Set Printer = Printer
ってやったら同じエラーでたし。
マジな話、なんでVB厨ってキモイ配色にしたがるの?
俺もVB厨だが、それは謎。
コマンドボタンに色付けようという発想が分からん。
>>398-399
高校で単位とるだけの為にBASICの授業受けたが、先生から「自分なりに
変えてみれ」と言われると初心者はコードをいじるのが怖いらしく色設定と
コントロールの大きさを変えてばかり。

ラベルのフォントをMSゴシックの12pt太字とかにするなよ…
401デフォルトの名無しさん:03/05/24 17:56
printerオブジェクトで文字列を縦書きしたいんだけど、どうすればいいですか。
たとえば名前とかを

西村ひろゆき

じゃなくて、

  西
  村
  ひ
  ろ
  ゆ
  き

みたいに。
  __
 | ヽ_ |_|
 | ,' ̄| |
   ̄ ̄
 -→|-
  /
 ─┼
    、
  ,--'
 (
  `‐-,
    
 |    |
 ヽノ\|
 __
   /
 +-+
 ヽ_ ノ
 , 、
 | |_|_|_
    | |

ええっと、こうやって寝かせるのではないです。
純粋な縦書きで。
君の人生、努力する所を間違ってはいないか。
>>403
どういう事ですか?
簡単に実現できる事なのかしら。
>>403
ワロタ
406403:03/05/24 18:47
>>405
ガイドラインの住人がいるとは知らず…
407405:03/05/24 19:03
>>406
ばれたΣ(´Д`ズガーン

方法は知らない。ごめんね
408デフォルトの名無しさん:03/05/24 19:07
おまいらおもろい
で、縦書きは・・。
一文字ずつ下にシフトさせながら書いていくしかないのかしらん。
なんかすごいブサイクな方法な気がする。
ガイドライン板からきますた(w

>403
Printerオブジェクトに対してグラフィックメソッドを使って文字出力する手法が
なかったかいのう?ちょとうろ覚え&手元に環境がないので自信がないけど、
座標を直接指定して文字をOutPutするの。適当でスマソ
412411:03/05/24 19:36
×>403
○>401
ガ板からきますた.

>>401
lfEscapementで日本語ページをぐぐってみて.一番上に答えが.
http://that.2ch.net/test/read.cgi/gline/1053362736/312
>312 :水先案名無い人 :03/05/24 18:35 ID:Z4KTa1zh
>改行が多いって言われたのでリンクのみ。
>
>v(・∀-)b VBプログラマ質問スレ(6.0以前) Part25
>http://pc2.2ch.net/test/read.cgi/tech/1052627913/401-404

ここで晒されてるのか。
415デフォルトの名無しさん:03/05/24 21:45
VB6.0です。
文字列"a b c d e f"があって、それをスペースで区切り文字1つごとにある処理をしたいのです。
splitして配列を1個ずつ処理しようと思ったのですが、配列の長さがわからない(毎回変わる)ためうまくいきません。
配列の要素の数を知る方法か、それ以外の方法でうまくいく方法を教えてください。
>>415
splitを自作して動的配列に入れるとか。
>415 UBound()
>>415
Dim s
For Each s In Split("a b c d e f")
Debug.Print s
Next
419 :03/05/25 06:35
すいません。VB初心者です。
ACCESSのテーブル定義の画面のようなものを作りたいと思ってます。
で、SPREDを使わずに、sheet上でコンボボックスやチェックボックスを
配置したいのですが、良い方法はありませんか?
VBにもDelphiのコントロールグリッドみたいのがあれば・・・
421デフォルトの名無しさん:03/05/25 10:19
VBで常駐のプログラムを作成して、パソコンの使われてない処理能力だけを使って計算させる。みたいな事はできますか?
>>421
常駐とはサービスプログラムのことか?単なる起動させた状態のことか?
>>420
ちょっと違うけど、データリピータでどう?

>>421
CPU使用率を見ながら処理すればいいんでない?
424このテンプレいいね:03/05/25 11:51
VB ASP → JSP
VB MTS → EJB
VB ADO → JDBC
VB ADSI → JNDI
VB DCOM → RMI IIOP
VB MSXML → JAXP
VB SOAP Toolkit → JAXM
VB MSMQ → JMS
VB CDO → JavaMail  
>>424
VBがいかにすごいかわかるね。
>>421
スレッドの優先度を下げては?
427デフォルトの名無しさん:03/05/25 13:44
>>425
どこが凄い?
VBはvariant型がいやな感じ
てかJSPをASPと比較しようとしている時点で終わってる。
ASPはカスタムタグが貧弱だし。
429デフォルトの名無しさん:03/05/25 14:44
〉〉422
サービスプログラムとは何でしょうか?
〉〉423
それは考えたんですけど、たとえばループで何かの計算をする時に、どうすればCPUへの負荷を落とせますかね?
あと、CPUの使用率を得る方法でWINTOP.VXDのは知ってるんですけど、APIでやる方法はありませんか?なかなか見つからなくて
>>424
> VB MTS → EJB
ここが非常に引っかかる。EJBはクラス継承が使えないと話にならないフレームワークが
沢山あるしVBでは継承が使えない。

継承が使えなくてはVB MTSは貧弱ではないかと。
>>429
426は無視ですか
そういう言い方すっと余計無視される罠。
433デフォルトの名無しさん:03/05/25 15:20
「スレッド」がわからんだけだろ?
434デフォルトの名無しさん:03/05/25 15:25
「スレッド」って何ですか?
氏んでください。
>>427
バリアント型さえつかわなければいいけど。

バリアント型は楽でいいからって容赦なく使う人がいるから。

VBは簡単にプログラムを作れてしまえるだけに
汚いソースコードを大量に生産できてしまう危険性がある。
仕事では使わないよ。
面倒なソース例出せとかそんな時は使うけど。
438デフォルトの名無しさん:03/05/25 17:35
プロパティのUseMnemonicというのが今一つわからないので教えていただけませんでしょうか?
&を使ってアクセスキー定義するってどういうことなんでしょうか?
439デフォルトの名無しさん:03/05/25 17:45
〉〉426
すいません見逃してました。スレッドはわかるのですが、優先度を下げるというのはどうやるのですか?
440デフォルトの名無しさん:03/05/25 18:03
MIDIの事で・・
ストリーム形式の曲ってどうやって保存するんでしょうか?
右クリック禁止のところのソースを見る方法は知ってるけど。
>>440
VBに何か関係あんの?
442440:03/05/25 18:14
>>441
板違いでしたか・・スイマセン。
こういう事はどこに質問すればいいんでしょうか?

444デフォルトの名無しさん:03/05/25 20:53
Win2k で、VB6 + SP5 の、ListViewコントロールを使ってるんですが、

ListSubItems(1).ForeColor = vbBlue

と、設定しても、なぜか青に表示されません。(黒になる)
これを、青以外の、vbGreen、vbRed、vbYellow など他の色はすべて表示されます。
なぜ青だけだめなのでしょう?VBのバグでしょうか?
445デフォルトの名無しさん:03/05/25 21:42
DBからデータを読み込んでExcelファイルに書き込みしたいと思っています。
データに改行を含んでいると次のセルへ改行されてしまいます。
1セルに改行コードを含む文字列を書き込むようにするのはどうすればいいですか。
[alt]+[return]の改行コードがあるんですか。
>1セルに改行コードを含む文字列を書き込むようにするのはどうすればいいですか。
>[alt]+[return]の改行コードがあるんですか。
馬鹿にも程度ってもんがあるだろ!
447デフォルトの名無しさん:03/05/25 21:57
>>445
LF だけじゃなかったっけ、たしか
448_:03/05/25 22:02
うん、Excelのセル内ではvbLfが改行コード。
Excelやなんかのように、「ガワ」のウインドウの中に
小さなウインドウ(ブック)が開くようなのはどうやったら作れるのですか?
451デフォルトの名無しさん:03/05/25 23:07
>>450
MDIのことだな、多分。
>>450
あんたもスゲー人だな。
>>451
ありがとうございます。
調べてみます。

>>452
??
あるコマンドボタンがどのコンテナに属しているかを知るには、
やはりフレームなどをドラッグしてみて、それにつられてボタンも移動するかどうかで見分けるしかないんでしょうか?
申し訳ありませんが、印刷のことで質問させてください。
都合により、TrueTypeフォントをプリンタに180度回転させて上下逆にした状態で印刷する必要があるのですが、そのようなことは可能でしょうか?
>>455
CreteFontのEscapeMentを1800かな(ためしてないが)
>>456
なんでMを大文字にする? escapementって一語だぞ。
>>454
大昔ではフォームソース見て包含されているか見て編集していたんだが、今のはどうかな?
テキスト形式で吐ければ何か判るんじゃないの。
459454:03/05/26 19:34
>>458
.frmファイルを見たら
Begin VB.Frame Frame1
Begin VB.CommandButton Command1
End
End
というふうにフレームの入れ子になってるのがフレームに属してるボタンだとわかりました。
460460:03/05/26 22:38
オンラインハイスコアみたいなのを作ろうと思うのですが、
どういう風にしたらいいでしょうか?

Open ステートメントかまたはそれと同じように
Web上にアップロードしたファイルから読み込むとか出来るますか?
461デフォルトの名無しさん:03/05/27 00:23
>>460
perlかなんかでサーバーサイドに集計プログラム作って、
そのcgiにスコアの引数を送受信する形になってくるだろうな。
むろん、暗号化して。
462460:03/05/27 01:37
わかりました、ありがとうございます。
少ない知識で暗号化もがんばってみます
463デフォルトの名無しさん:03/05/27 06:27
構造体と動的配列に関する質問です。

構造体
type Atype
 b() as integer
end type
をつくっといて

dim a() as Atype
redim a(2)   ←a()のサイズを2に(これは問題ない)
redim a(1).b(3) ←a(1)に属するb()のサイズを3に

とすると、二つめのredimもa()に対するものとして受け取られてしまい、
b()のサイズを変更できません。
どうしたらこの状態でb()のサイズを操作できるでしょうか?

この方法でなくても、これと同じことができればよいのですが。
>>463
???
その書き方で動きましたが。
VBもいいけど無料でゲットできるDelphiへの移行も考えてみなよ。

ベクターのDelphiのダウンロードページ
http://www.vector.co.jp/soft/win95/prog/se205882.html
VBからDelphiへの移行を支えてくれるサイト
http://www.wwlnk.com/boheme/
Delphiって仕事では使わないからなー
ADOでAddNewでもSQL Insert文をExecuteでも
連続して大量に行おうとすると
メモリをどんどん消費してしまいます

コネクションを切った時点でメモリを開放するようなのですが
途中で開放したり
メモリを消費しないようにする方法はあるのでしょうか?
>>467
ADOを使わないっていうのが一つの手かも
469デフォルトの名無しさん:03/05/27 10:51
VBの開発なんだが、ファイルのアーカイブを行うのってどういう手段がある?
>>468
DAOですかね。ちょっと、ADOを指定されてて、まいったなぁ。

再現コードです。ループでメモリがどんどん消費されます。MSGBOXのところで、いったんコネクションを切るとメモリが開放されます。
大量のデータをDBに登録したいとき、みなさんだとどうやりますか?

Private Sub Command1_Click()
Dim fso As New FileSystemObject
Dim cat As New ADOX.Catalog
Dim cn As ADODB.Connection
Dim rs As New ADODB.Recordset
Dim i As Long

Call cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mdb & ";Jet OLEDB:Engine Type=5;")
Set cn = cat.ActiveConnection
cn.Execute "CREATE TABLE XXX(a CHAR(10),b CHAR(10),C CHAR(10),D CHAR(10),E CHAR(10));"
rs.Open "XXX", cn, adOpenKeyset, adLockPessimistic

For i = 0 To 999999
rs.AddNew Array("a", "b"), Array(Format(i, "000000"), "000000")
If i Mod 10000 = 0 Then
MsgBox "refleshしたい"
End If
Next i
End Sub
471_:03/05/27 10:56
>>470
接続プールを使う。
473472:03/05/27 11:09
あんま意味無いか
Delphiの企業向けの仕事ってあるの?
475デフォルトの名無しさん:03/05/27 11:12
>>474
ある
476bloom:03/05/27 11:13
>>472
接続プールって知らない。
ありがとう。それも調べてみるね。
最近VBの仕事が少ないと聞くけど、
delphiほど少なくはないんでしょ?
仕事ならDelphiよりVBだろうけど、VBはこの先先細りだからねえ。
Delphiでなくとも今のうちからC#かなにか覚えておいたほうがいいよ。
480472:03/05/27 11:28
>>477
470のような場合だと意味ないはず。
>>480
調べてみた。うん、関係ないか。

コネクションを切っても、即効でつなぎなおすとメモリは開放されないんです。
コネクションを切ったあとにMSGBOX出して1秒ぐらいあけて閉じれば
メモリは開放されるんです。

非同期でやってるわけでもないのに、いったい何をキャッシュしてるんだろう。
しばらく毎にアイドリングしなければだめなのかな。
オプションやプロパティーの設定で回避できるものなのか調べてるけど、さっぱりです。
もともとメモリなんてすぐ解放されるもんじゃないだろ。
メモリ管理もろくすっぽやってないDOSとかならともかく。
>>482
そうですが、大量のDB登録で
メモリスワップまで発生してパフォーマンスが落ちては問題ですし
途中でコネクションを閉じてアイドリングさせる方法以外に
もっとスマートでオフィシャルな開放方法があるんじゃないかなと思いまして。

ADOって、連続してレコードを追加する際は、合間に休ませろ
なんて仕様なんでしょうか
聞き方が悪いのかgoogleさんは答えてくれないし、困りました。
484デフォルトの名無しさん:03/05/27 11:46
どうでもいいけど、リフレッシュのスペルはrefreshだ。
>>484
もう、げんなりですよ。
>>483
ADOのことはよく知りません。
487デフォルトの名無しさん:03/05/27 11:58
ADOで十万件のINSERTじゃ、どうやっても遅いのは仕方ないんじゃなかろうか。
サーバー側でスクリプトやストアド組むのはダメなの?
>>487
ええと、サバクラじゃなくて、ローカルアプリケーションの内蔵DBといった用途でして
スピードは問題ないんですよ、メモリをなぜか消費してしまうと。

で、今、adLockBatchOptimisticでrs.BatchUpdateにしたら、ぜんぜんメモリ食わなくなりました。
しかも速度もアップ。Batchでまとめるほうがメモリ食わないんでうすね。

そんなわけで、とりあえず、解決しました。いろいろありがと>みなさん
489デフォルトの名無しさん:03/05/27 13:15
お邪魔します。
あのぉー、どこに質問したらいいのか分からない
くらいもしかしたら初歩的な質問かもしれないの
ですが、、、(汗)
自分でサイトを作っているのですが、
リンクを張って、普通にページに飛ぶのではなくて
小さい小窓のようなウィンドウが開くように
するにはどうしたら良いのでしょうか?

スレッド違いだったらホントごめんなさい。
どなたかよろしくお願いします。。
>>488
あ、嘘。追加されてなかった。
エラーも出ないのかな????
492デフォルトの名無しさん:03/05/27 13:37
>>490
エラーの場合,エラーが出るはず。UpdateBatchの前にUpdateしてる?
UpdateBatchのサンプルくれ
494デフォルトの名無しさん:03/05/27 13:49
On Error GoTo ErrH
If (rs.ActiveConnection Is Nothing) Then
Set rs.ActiveConnection = cn
End If

Call cn.BeginTrans
rs.Fields(flagName).value = "1"
Call rs.Update
Call rs.UpdateBatch
Call cn.CommitTrans

Set rs.ActiveConnection = Nothing
Exit Function
495デフォルトの名無しさん:03/05/27 13:57
レコードセット使わず、ConnectionかCommandだけでやったらいかが?
496470:03/05/27 13:59
493 494 は私ではないです。

>>492
メインで書いてるコードではエラーが起きない
AddNewのあとにはUpdateしてる

小さいシンプルなコードで書いたらエラーでました。

ちょっと、大きなコードのほうは別のエラーも入っていそうなので、
ちょっと精査してます。
>>495
ええとですね、Connection.Execute で SQL Insert文を連続発行しても、メモリが消費されてしまうんですよ。
で、スピードはAddNewの方が圧倒的に早いのでそっちでためしています。
ですが、メモリの問題がクリアできるなら多少遅くともExecuteでSQL投げます。
498470:03/05/27 14:06
 Const mdb As String = "c:\tmp.mdb"
 Dim cat As New ADOX.Catalog
 Dim cn As ADODB.Connection
 Dim rs As New ADODB.Recordset
 Dim i As Long

 Call cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mdb & ";Jet OLEDB:Engine Type=5;")
 Set cn = cat.ActiveConnection
 cn.Execute "CREATE TABLE XXX(a CHAR(10),b CHAR(10),C CHAR(10),D CHAR(10),E CHAR(10));"
 rs.Open "XXX", cn, adOpenKeyset, adLockBatchOptimistic
 
 For i = 1 To 999999
  rs.AddNew Array("a", "b"), Array(Format(i, "000000"), "000000")
  rs("c") = "cccc"
  rs.Update
  If i Mod 1000 = 0 Then
   rs.UpdateBatch
  End If
 Next i
>>497
Execute のオプションに adExecuteNoRecords を付けてる?
500499:03/05/27 14:08
付けてないみたいだね。
501470:03/05/27 14:11
>>499
あ、新情報ありがとうございます。調べてみます。
502470:03/05/27 14:39
Call cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mdb & ";Jet OLEDB:Engine Type=5;")
Set cn = cat.ActiveConnection
cn.Execute "CREATE TABLE XXX(a CHAR(100),b CHAR(100),C CHAR(100),D CHAR(100),E CHAR(100));", , adExecuteNoRecords

For i = 0 To 999999
 cn.Execute "INSERT INTO XXX VALUES( '" & Format(i, "000000") & "', 'b', 'c', 'd', 'e' );", , adExecuteNoRecords
Next i

これでも、どんどんメモリが消費されてしまうんです。
VB で、自プロセスの消費メモリ容量ってどうやって調べるのでしょうか?
消費してるメモリってDB側なんじゃ
>>503 隣でタスクマネージャ起動
506デフォルトの名無しさん:03/05/27 14:49
win2kならprocess viewer 立ち上げる方法しか知らない。

細かいけど,Formatは遅いから1000000回のループだと別の方法の方が
いいと思われ。
507470:03/05/27 14:53
>>504
DB側だと思うけど(JETエンジンのDLL?)
タスクマネージャだとVB6.EXEが増大してます。
508470:03/05/27 14:55
>>506
Right$("000000" & i, 6) って感じでしょうか。まぁ、これは実際には使わないコードだし、DBのパフォーマンスからみればチリのようなものかと。
今までメモリの消費量なんて気にしたことなかった。
いったい何件追加するの?
DBはAccessなんですよね?
大丈夫ですか?
510デフォルトの名無しさん:03/05/27 15:01
っていうか、mdbで100万件はMSの保証値を大きく超えてるな
511470:03/05/27 15:21
>>509 >>510
ん、まぁそう判断してあきらめるのを、どの辺りでするかといったところですかね。
どう判断した場合、何回かごとにコネクションを切断して、数秒アイドリングさせるといったことが必要になります。
できれば避けたいと思っています。
もう少し探してみます。
512470:03/05/27 15:23
>>510
100万件というのも、場合次第なのですが
レコードサイズもフィールド数も大きいので
メモリの消費量も大きくなるみたいです。
先ほどのコードのCHAR(10)ってのをCHAR(100)にすると、がんがんメモリ食います。
>>470
Connection を使わずに Recordset をダイレクトに開く・・・
なぜにADOX?
515470:03/05/27 16:11
>>513
試してみます。

>>514
あー、MDBを生成する為です。なにか問題あったりするのでしょうか。
VBに触れて5ヶ月、まだまだわからない定石だらけでして。
これで作ったmdb。うちのAccessだと開けない・・・
データベースの形式 <ファイル名> を認識できません。(Error 3343)
517470:03/05/27 16:23
ところで、ふつうADOを扱うときは
コネクションを頻繁に切断するものなのでしょうか?
たくさんInsertをしたりするアプリケーションを掻いたことのある人
どうしてましたか?
518470:03/05/27 16:25
>>516
MDBのバージョンかしら。
Microsoft.Jet.OLEDB.4.0 のところを下げたら見えるかも。
当方Accsess2000で開けています。
519470:03/05/27 16:28
>>513
rs.Open "XXX", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mdb & ";Jet OLEDB:Engine Type=5;", adOpenKeyset, adLockPessimistic
ってしても、案の定なんら変わらなかったです。
>>518
うちとこAccess97やけん。おかしいと思った、いつもはOLEDB.3.51やもん
やっぱDAOやな。俺はそれしかしらん。
ADOには泣かされた経験多々,がんがれ
521470:03/05/27 16:52
>>520
どうしてもADOだめならDAOもやってみるよ
なんか、コネクション切れば開放されるとか言ったけど
それも違ってたよ、開放されたようにみえて開放されてませんでした
再開したら同じとこまで戻っちゃう。
>>521
今ダオってみてるけど。桁が違うだけでリークされちまう・・鬱 ビルゲイツのバカやロウ!
523470:03/05/27 17:01
>>522
そうですかぁ。DAOはさわったことなかったので、調べつつやってみてますけど
気力が・・・。
こつこつ、ひとつづつ、つぶしていきます。
524デフォルトの名無しさん:03/05/27 17:09
>>517
それは接続プール。
cn.Closed
とすると、実はWindowsが裏でしばらくの間保持していてくれる。つぎにコネ
クションを張ったときにはこのプールされた接続を使う。
525470:03/05/27 17:12
>>524
なるべく、メモリを消費しないようにするにはどうしたらよいのでしょう?
アプリケーションを再起動しないとだめなんでしょうか?
vbsでDOSプロンプトから入力する方法を教えて下さい
> test.vbs
> メッセージを入力して下さい ← これが表示される
> xxxx ← 値を入力する

ソース側で値を受け取る方法も教えて下さい
よろしくお願いします
527長文御無礼:03/05/27 17:20
'一応DAO貼り。環境が違うので保証しがたいです。
'メモリ使用はワークスペースのサイズで、一度膨れたサイズは再利用されてる様子。
'(一回目Cancel→弐回目Cancel として動きを確認 排他制御やインデックスは別問題としてほしい)
'とりあえずうちとこの三勝設定 Microsoft DAO 3.51 Object Library のみ
Private Sub Command1_Click()
Dim db As Database: Dim rs As Recordset: Dim td As TableDef: Dim I As Long
Dim rc As Integer
On Error GoTo eHandle
Set db = Workspaces(0).CreateDatabase(Format(Now(), "HHNNSS") & ".mdb", dbLangJapanese)
Set td = db.CreateTableDef("XXX")
td.Fields.Append td.CreateField("A", dbText, 10)
td.Fields.Append td.CreateField("B", dbText, 10)
td.Fields.Append td.CreateField("C", dbText, 10)
db.TableDefs.Append td
Set td = Nothing
Set rs = db.OpenRecordset("XXX")
For I = 0 To 999999
rs.AddNew
rs.Fields(0) = Format(I, "000000"): rs.Fields(1) = "000000"
rs.Update
If I Mod 10000 = 0 Then
rc = MsgBox("refleshしたい", vbYesNoCancel + vbDefaultButton2)
If rc = vbCancel Then
Exit For
ElseIf rc = vbYes Then
End If
End If
Next I
Exit Sub
eHandle:
MsgBox Err.Description, vbMsgBoxHelpButton, , Err.HelpFile, Err.HelpContext
End Sub
530470:03/05/27 17:42
>>527
ああ、とても助かります。ありがとうございます。

で、DAOも駄目なのかぁ。。。さてと。どうしようかなぁ。
まだやってんのか、これ…
532470:03/05/27 17:50
>>531
すんません、なんかFAQネタかと思うぐらいシンプルなのに
はまってしまったようで・・・
>>532
オマエが言うな
534526:03/05/27 17:54
>>528-529
有難うございます。
inputboxでpop upからの入力は分かりますが
DOSのコマンドプロンプトからの入出力が分か
りません
お手数ですがお願いします
【PC版】Ever17-the out of infinity【大失敗作】
http://www2.bbspink.com/test/read.cgi/erog/1053601941/
536デフォルトの名無しさん:03/05/27 18:11
VBでスレッドの優先度を落とすのはどうすればいいのですか?VCならそれっぽいのがあるのですが・・・。VBでは見つかりません。
537470:03/05/27 18:14
>>533
なんで気を悪くされたのか、わかりません。
簡単な問題そうに思えたのに、意外と難しかった。
と思っています。
>>536
VCでのそれっぽいやり方を晒せや。それが可能かどうか答えが返ってくるだろ。
539デフォルトの名無しさん:03/05/27 18:18
--------●○●別れさせ屋●復讐代行業務●○●----------

●騙された・裏切られた・弄ばれた・逃げられた・捨てられた・
相手に誠意が無い・異性問題・家庭内暴力・不倫疑惑解明・人間関係・金銭トラブル★
●  http://www.blacklist.jp/i 【ファイルにコピーして開いて下さい】
別離工作・情報収集・トラブル対策・ボディガ―ド・等々!
●真剣にお悩みの方、安心してご相談下さい。解決へ導きます★
□■各種データ・電話番号調査・住民票・戸籍謄本など調査■□
ジャンプしない場合にはファイルにURLをコピーして開いて下さい★☆★
●  http://www.blacklist.jp/i  ●別れさせ屋・特殊工作・調査全般
●  http://www.blacklist.jp/   ●復讐代行・人生相談・駆け込み寺
--------------------------
リンク⇒ http://okudaira.co.jp 殺人事件簿!!!●●●
●リンク広告主大募集・詳しくは復讐屋まで!!!
540470:03/05/27 18:18
541526:03/05/27 18:28
vbsを右クリして”コマンドプロンプトで開く”でやっても
pop upが出ます。
cuiで入出力をやりたいんですが...。
>>541
他の言語つかえ。
VBでエラーが発生したとき、その発生した行を特定する方法ってありますかね?
544526:03/05/27 18:34
>>542
できないんですか。分かりました。
有難うございます。
>>543
EXEになってたら行もなにもあったもんじゃないだろ?
546543:03/05/27 18:41
>545
確かにそのとおりなんだけど・・・・

On Erorr goto ×××でエラートラップして、エラー内容と発生した関数をログに
落とすようにしてるんだけどさ、「どの行でエラーになったか」までが把握できたら
いいなあと思ったわけなんですわ。それで皆様のお知恵を借りたいな、と。
>>543
erl
548543:03/05/27 18:45
>547
昔のBASICにはあったけど、VBにもありましたっけ?
ヘルプでは出てこなかったので・・・・( ´・ω・) 
>>544
日本脳園 - Visual Basicアプリケーションによる標準入出力の利用−VBScriptの併用
http://homepage2.nifty.com/nihon-nouen/programming-stdinout.htm
>>548
インタプリタとコンパイラを同じように見られてもな。
>>547
ヘルプには載ってない。疑うより、試してみろ。
552543:03/05/27 18:57
>550
そりゃ解ってんだけどさー( ´・ω・) 

>551
ありがとう。当たって砕けてみるっす。
553526:03/05/27 19:14
>>549
有難う!試してみます!!
>>553
Dim str
WScript.echo("メッセージを入力して下さい")
str = WScript.StdIn.ReadLine
WScript.echo(str)
555526:03/05/27 19:59
>>554
有難うございます(涙
557デフォルトの名無しさん:03/05/27 20:10
タスクバーに表示されるアイコンで
XPのWindowsUpdateのような吹き出しのメッセージを表示させたいのですが
吹き出しを作り右隅に表示されることはできたのですが、そのプログラムの
アイコンから吹き出しがでてるようにすることができません。アイコンの
座標がわかれば出来ると思うのですが、方法がわかりません。どなたか
教えてください。
>>557
それ俺もしりたーい。
ソースくれくれ
559デフォルトの名無しさん:03/05/27 22:27
ブロック崩しを作っていて、球(picture1)を跳ね返す台(picture2)ありますよね。
球が台に当たれば跳ね返すという判定がわかんないんだけど
どうすればいいのでしょう?アホっぽい質問で申し訳ないんだけども(;´Д`)
560デフォルトの名無しさん:03/05/27 22:29
http://homepage3.nifty.com/coco-nut/
( o^∇^)ヘ_□~~~~~~‡~~~~~~□_ヾ(^ー^*) インターネット♪
http://jbbs.shitaraba.com/computer/2364/
562デフォルトの名無しさん:03/05/28 00:11
>>546
各行ごとに lngLine = lngLine + 1 として、エラートラップでそれを吐き出
せば?
563デフォルトの名無しさん:03/05/28 02:51
>>464
463です。この書き方で動いてました。
何か勘違いしてました。どうもありがとうございます。
ちなみに、こういう配列は「ジャグ配列」といってVB.netには
実装されているみたいですね。
>>562
下らんネタ言ってないで真面目に答えてやれよ。
行番号をつけるにはawkでも使うと楽。
Sub Main()
On Error GoTo ErrorHandler
100 Debug.Print 1 / 0
Exit Sub
ErrorHandler:
MsgBox Erl & " " & Err.Description
End Sub
565470:03/05/28 09:21
VBでADO+MDBのように使えるローカルアプリケーション用のデータベースってありますか。
MySQLにはたしか内蔵用のライブラリもあったような。。。
DLLにしてAPIコールすれば使えるのか試してみよ・・・。
567デフォルトの名無しさん:03/05/28 09:57
VBのコメントの ' を付け消しするボタンってショートカットキーありますか
Shift+7
>>567
ツールバーに「編集」を表示し、ツールバーをユーザ設定状態にし、
コメントブロック、非コメントブロックを右クリックしてボタンのテキストを表示して、
名前に(&C)とか入れるとALT+Cをショートカットとして使えるようになる。
>>543
金をかけてもいいなら DevPertner とかいうソフトがそんな機能持っている気がする。
571山崎渉:03/05/28 12:27
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
>>568
不覚にも試してしまった
573デフォルトの名無しさん:03/05/28 13:02
>>572
不覚すぎ
574デフォルトの名無しさん:03/05/28 14:59
クラスのコピーってどうやって作んの?
575デフォルトの名無しさん:03/05/28 15:32
クリレポ(8.5)のスレありませんか?
576_:03/05/28 15:32
577デフォルトの名無しさん:03/05/28 15:56
>>574
インスタンスのことか?
>>577
インスタンスのことかどうかはよくわからないのですが
自分自身のコピーを作り一部のプロパティを変更して
最終的にグローバルなコレクションに追加したいのです
もちろんコピー元のクラスもこのコレクションのメンバです
しかし普通に代入すると元の値まで変わってしまうようで

見当違いなこと考えてるのかも知れませんが
>インスタンスのことかどうかはよくわからないのですが
レスもらったら、まず調べてから次のレスしる。
580デフォルトの名無しさん:03/05/28 16:28
>>569
ありがとうございます。
設定はできたけど、なんか動きませんでした。
いろいろ試してみます。
581デフォルトの名無しさん:03/05/28 16:48
>>578
その話し振りだと、クラスのこと理解してないね。クラスの勉強をしたらどう?
>>578
memcpy
>>557
できましたよー
NOTIFYICONDATA構造体を新しくして
NIF_INFOでMODIFYすればいいみたいですよ。

tnd.uFlags = NIF_INFO;
lstrcpy(tnd.szInfo, "aaa");
tnd.uTimeout = 15000;
lstrcpy(tnd.szInfoTitle, "AAA");
tnd.dwInfoFlags = 1;
Shell_NotifyIcon(NIM_MODIFY, (NOTIFYICONDATA *)&tnd);
585デフォルトの名無しさん:03/05/28 17:25
Berkeley DB をVBで使えますでしょうか?
どこかにラッパーでCOMになってるようなものがあったら教えてください
>578
=演算子をオーバーライドしてください。
587デフォルトの名無しさん:03/05/28 18:10
クラスモジュールって、どういう時に使ってる?
共通的な処理でもないのに徹底的に処理をクラスモジュール化したPGMあるんだけど、
こんなのってどうよ?
追っかけきれん。
初心者で申し訳ございませんが、是非皆さんの知恵をお貸しくださいませ。
ランダムアクセスファイルで検索機能をつけたいのですが、1つだけ検索結果を
表示することができるのですが、複数の場合(住所が東京で複数ある)
For i = i To LOF(filenum) \ Len(Address)'レコード全部読み込む
Get #filenum, i, Address     
If Address.Name Like (strtemp & "*") Then '.Nameとstrtempを比較
rcNo = i '検索条件にヒットしたレコード番号を取得
End If
Next i
Get #filenum, rcNo, BihinType '取得したレコード番号のデータを取得
複数検索条件と一致した時にどうすればすべてのレコード番号を取得できますか?
すみませんが、よろしくお願いします。
>>588
動的配列使うえばー
うえばー
>587
共通処理かどうかは、クラスモジュールにするかどうかとは関係ない。
オブジェクトにすべき物をクラスに分割する。
静的分析に関しては、
[憂鬱なプログラマのためのオブジェクト指向入門]でも読め。
592デフォルトの名無しさん:03/05/28 18:35
>>587
> 共通的な処理でもないのに徹底的に処理をクラスモジュール化したPGMあるん
> だけど、こんなのってどうよ?

VB.Netでは、標準モジュールもクラスの特別な例だそうだから、おんなじ
じゃない?おれが作るプログラムは大体標準モジュールはほとんどない。
593デフォルトの名無しさん:03/05/28 18:43
スタートレックファン集まれ
皆でドンドン盛り上げましょう。
スタートレックファンの証明・・
http://tv.2ch.net/test/read.cgi/tv2/999144896/l50
594リアル消防X:03/05/28 19:13
三本の棒が立っている。
この三本の棒の一番左の棒には下が一番大きな輪
上が一番小さな輪がくなるようにはめてある。
この輪を全て中心の棒に移動させる訳だが、それにはルールがあり
・一度にひとつの輪しか移動できない。
・必ず下に大きな輪が来るように移動させなければならない。

10 LET X=2
20 PRINT X-1;"枚"
30 PRINT 2^X-1
40 LET X=X+1
50 GOTO 20
END
595リアル消防X:03/05/28 19:14
とやると、49枚あたりからうまく表示されないんだよな〜
スレタイ嫁よ。
>>594
M-x hanoi
あるコントロールのツールチップをポップアップさせる方法ありませんか?
マウスカーソルを上に持ってくるとかは無しで
上にラベル表示させる。
>>598
APIでメッセージ送る。具体的な方法はぐぐれ。2000件ほどヒットする。
ググッたんならアドレス貼ってやればいいのに。
602デフォルトの名無しさん:03/05/28 22:12
印刷はどんな方法使ってますか?
どれが一番いいと思いますか?

>>602
プリンタ使わないときついだろ、やっぱ。
漏れもプリンタだな。
605デフォルトの名無しさん:03/05/28 22:17

≡ ∧_∧  ∧_∧  
≡( # `Д´)⊃ )Д`) >>603
≡/つ  /  ⊂ ⊂/
>>605
___    ビシ!
 ̄ ̄  ∧_∧ ピシ!!  ∧_∧
 ̄ ̄ <丶`∀´> ☆ (#)´Д`)
ー  ノ⌒つ ノ⌒て〕☆ノ #  ⌒つ
   ( ´ / ̄ ̄  /#   ノ´
 / )  )__  / /\ く
 〆 レ ' ̄    レ´   し´
やりやがったな!そりゃそりゃ
607デフォルトの名無しさん:03/05/28 22:19
>>606
チョン氏ね
608デフォルトの名無しさん:03/05/29 01:23
csvファイルに出力する方法で
A列、B列の順に出力したいです。
xx.WriteLine(a b)
aとbの間に何を入れればいいでしょうか。当方office2000です。
初歩的な質問ですみません
609:03/05/29 01:45
>608
xxx.WriteLine(a &"," &b)
カンマ
610デフォルトの名無しさん:03/05/29 01:56
クソ初心者な質問をさせてください。

VBプログラムを配布したのですが、実行環境に必要なファイルが
ないと怒られるので起動できません。

とりあえずVBの標準ランタイムなどもふくめ、必要なdllやらocxやらを
exe本体と同じフォルダに置いたらいいんでしょうか?
system32の中とかあまりいじりたくないので・・・。

よろしこおながいすます。
>>610
Side-By-Sideを使うなら、それでOKです。ただし、レジストリへの登録は、
すでに同じCOMコンポーネントがあるなら、それを上書きしてはなりません。

Side-By-Sideを使わないのなら、それは不可能です。
612デフォルトの名無しさん:03/05/29 08:19
>>587
そのプロジェクトはオブジェクト指向でつくられたんだろう。君はOOPをしらないよう
だから、へたに手を出さないほうがいいよ。手続き型しか知らない人がオブジェクト
指向でできてるものをいじると、せっかくのオブジェクト指向を壊すから。
オブジェクト指向なんていらないと思われ
614デフォルトの名無しさん:03/05/29 09:23
>>613
自分ができないだけでしょ
615デフォルトの名無しさん:03/05/29 11:50
 ピクチャーボックスの中に置いたテキストボックスやラベルをそのまま印刷する方法を教えていただけますか?
 printpictureでは、画像しか印刷されず、何も映らないんです。
printscreen
617デフォルトの名無しさん:03/05/29 11:53
 すいません、>>615のものです。form自体はプリントアウトしたくないんです。あくまでピクチャーボックスの中だけをプリンターで出力したいんです。
>>617
A案
1.もう一つ,裏に同サイズのピクチャ(p2)を用意する(Vis=False,AutoRedraw=True)
2.さらに,テキストのコピー用にピクチャ(ptxt)を用意する(Vis=False,AutoRedraw=True)
ptxt.FontName = text1.FontName
ptxt.FontSize = text1.FontSize
ptxt.Print text1.Text
p2.Picture = p1.Image
p2.PaintPicture ptxt.Image, text1.Left, text1.Top
Printer.PaintPicture p2.Image
Printer.EndDoc
3.ボックスの境界線とかが居るならそれは自分で書く。

B案
1.API,GetWindowDCとBitBldを定義
BitBlt p2.hDC, 0, 0, 100, 100, GetWindowDC(text1.hwnd), 0, 0, &HCC0020
p2.Refresh
619デフォルトの名無しさん:03/05/29 13:34
>>618
 ひとまずAでやってみます。ご丁寧にどうもありがとうございました。
620デフォルトの名無しさん:03/05/29 13:47
ADOのRecordsetのFieldsで、フィールドがあるかどうかはどうやってわかります?

If (rs.Fields("FieldName") Is Nothing) Then

ではダメなので、For で rs.Field(i).Name = "FieldName" で判定しているん
ですが、もっとかっこいいやり方がないかと。
あるかないか分からない状況って何?
622デフォルトの名無しさん:03/05/29 13:54
SELECT * FROM hoge
したときにあるかどうかわからん、みたいな状況です。
答1
 For Each fldWk In rs.Fields
  If fldWk.Name = "hogege" Then
   Msgbox "I't so cool!!"
   Exit For
  End If
 Next

答2
 基本設計を見なおせ
答2ワラタ

後々の事考えると、こっちが有力だろうな。
625デフォルトの名無しさん:03/05/29 14:11
>>623
>答1
既にやってます。

>答2
たんなる SELECT * なら基本設計見直すべきところでしょうが、DBスキーマを
見るモジュール作ってるんで。
>既にやってます。
十分かっこいいだろ、まだ不服なのか?
627デフォルトの名無しさん:03/05/29 14:34
>>626
620でそれ以外にといってるのに、あえてその方法を出してくるところが
わからん。
>>620
フィールドの構成を取得したいなら SQLDMO を使え。
SQLDMOを使ったところで同じことだろう。もう少し考えてから発言しろ。
630デフォルトの名無しさん:03/05/29 16:08
失礼します。
Inetコンポーネントで、FTPサーバからファイルを取得するプログラムを
作ってるんですが、相手がUNIXのためEUCで取得してしまうので(?)、
改行コードが消えてしまい、その後のファイルから1レコードづつ
配列に格納する部分で、データが1レコードに全部収まってしまいます。

ファイル取得時に改行コードが消えない方法を教えていただきたいのですが。
よろしくお願いします。
631デフォルトの名無しさん:03/05/29 16:29
>>630
俺も似たようなやつ作ってるんだが
一旦 ローカルにFTPしたファイルを
VBで改行コード リプレースする処理作ってるぞ
632デフォルトの名無しさん:03/05/29 16:30
>>630
Unixの改行コードは LF (ちなみに、Winは CR + LF、マックは CR)だから、
置換すれば?
633デフォルトの名無しさん:03/05/29 16:32
>>631
>>632

ありがとうございます。
一度置換するクッションをいれればよかったですね。

やってみます。
ありがとうございました。
634_:03/05/29 16:33
ASCIIモードで転送できないのかい?
WinInet.DLLなら指定できるが。
お初です。

前から疑問だったのですが、VBで作成した EXE はリターンコードを
返せないのしょうか??
ExitProcessで返せるよ
>>637

おっしゃる事は分かるのですが、VBの中でExitProcessは
やっぱまずいと思います。
VBでも END を実行する訳ですよね。
>>638
じゃあ、無理
>>638
イヤなら他の方法考えたら?
CでVBのプログラム呼んで、VBプログラムを監視し、
VBは終了際に特定のファイルを作成
Cプログラムはそれを読んでリターンコード作成。
(あほらしいか)
641638:03/05/29 21:01
やっぱり、それしか無いですかね。
ちょっと、だるいですね。
>>609
どうも有難う。
ここは親切なインターネットですね
643610:03/05/29 22:32
>611

Side-by-Side というのですね。初めて知りました。
とりあえずキーワードを頼りに調べながら、実際にやってみます。
ありがとうございました!
標準モジュールの宣言セクションで変数を宣言した場合は
Privateで宣言してもどのFormからも利用できる変数になってしまうのでしょうか?
>>644
ならないと思うけど・・・
646644:03/05/30 08:29
>>645
ありがとうございます。
647610:03/05/30 09:24
すんません、あと1つ。
必要なコンポーネント(ディストリビューションウィザードとかでくっ付け
られるファイル)を、ぜーーんぶexeに入れてしまうことってできます?
そういうのはコンポーネントと言わんような
>>610
そういうツールが海外のものであったりするけど、日本語環境で
うまく動くかは不明。

基本的にはできないって考えたほうがいいよ。
>>610
VBのフリー・シェアウェアが嫌悪される理由その1
Delphiマンセー
すいません質問させていただきます

FF F4 BC
のバイナリデータを
BC F4 FF
にしたいのですが
BC 81 45
になってしまいます。
なぜでしょうか?

プログラムはこんな感じです
Dim Strbuff As String
Dim FileNo1 As Integer
Dim FileNo2 As Integer
FileNo1 = FreeFile
Open "rp" + ".txt" For Binary Access Read As #FileNo1
FileNo2 = FreeFile
Open "rp2" + ".txt" For Binary Access Write As #FileNo2
Strbuff = String(3, Chr(0))
Get #FileNo1, 1, Strbuff
Strbuff = StrConv(Strbuff, vbFromUnicode)
Strbuff = MidB(Strbuff, 3, 1) + MidB(Strbuff, 2, 1) + MidB(Strbuff, 1, 1)
Strbuff = StrConv(Strbuff, vbUnicode)
Put #FileNo2, , Strbuff

Close #FileNo2
Close #FileNo1
'F4BC を1文字として認識してるね。バイト操作ならバイト型がいいでしょう
Private Sub プログラムはこんな感じです()
Dim FileNo1 As Integer
Dim FileNo2 As Integer
Dim rb(1 To 3) As Byte
Dim wb(1 To 3) As Byte
Dim I As Byte
FileNo1 = FreeFile
Open "c:\temp\a.tmp" For Binary Access Read As #FileNo1
FileNo2 = FreeFile
Open "c:\temp\b.tmp" For Binary Access Write As #FileNo2
Get #FileNo1, 1, rb
For I = 1 To 3
wb(4 - I) = rb(I)
Next I
Put #FileNo2, , wb
End Sub
>>652
できました。
ありがとうございます
>>653だ間違えました
>>656 サブクラス化するしかない
658647:03/05/30 13:28
レスさんくす。

>648
dllとかocxの集まりですよね。コンポーネント類とでも言ったらいいのかな。

>649
なるほど、VBでは基本的にはできないと。
そうなると例えば、exeとテキストファイル(INIとか)だけを解凍して使わせる
アプリはVB以外ってことでしょうか。

>650
確かにいろいろ調べていくうちに面倒に思えてきました。
http://www.galliver.co.jp/writing/vmx/sxs2k/
とかにside-by-sideについて詳しく書かれてるけど、う〜むって感じ。
659デフォルトの名無しさん:03/05/30 13:59
こんにちは。

今VBでメールの送受信をしたいと思っています。
(常時稼動のシステムがエラーを起こしたとき、携帯のメール宛
に報告を行いたいから)

そこで現在 下調査中ですが
酒井法雄氏のサイトより
http://www.int21.co.jp/pcdn/vb/noriolib/vbcomp/6/vbcomp6/vbcomp6.html
>Internet Controls Packは、32bitのInternet用ActiveX コントロール集である。
>ActiveXコントロールはOCXだから、VB, VC++, Access などで利用することができる。比較的上位のプロトコルに合わせて作成されているので、WinSock APIやプロトコルに対する詳しい知識はなくてもなんとかなってしまう。さらに、フリーライセンスである。

なんて素敵なものが!!(SMTP,POPコントロールも付いてる)
そこでそのコントロールパックを入手したいのですが、見つからなくて困ってます。

提供してある場所をご存知であれば教えていただけないでしょうか?
また、検索で見つけられたかたは?
どのようにして見つけられたか後学の為、合わせて教えてもらえれば幸いです。

#WinSock作ろうとしていた矢先にこれを知り、是非しようしたいなぁ
>659

http://asia.cnet.com/downloads/pc/swinfo/0,39000587,39028269s,00.htm

"Internet Controls Pack"でぐぐったら普通に見つかったけど?
「日本語のサイト」限定で検索してた、もしかして?
661デフォルトの名無しさん:03/05/30 14:43
>>660
ぎくっ!日本語サイトだけを見てました。

660のサイトですが、同名ですが別のソフトウェアみたいです。

重い腰を挙げて、現在英語ページも検索対象として探すと
発見できたみたいですが、本家でもなく・・・なんとなくダークな感じの
ページで本当にダウンロードしていいのか躊躇しています。
http://webm43ac.ntx.net/files.html
だって血だらけの人間のアイコンがあるページだし。。。。
今、本家MSサイトで探してます。
>>659
関連情報
ttp://www.asahi-net.or.jp/~ai2h-ykmz/tech/mail_sys.htm

VB6ならWinSockコントロールとかがあるでしょ。
663659:03/05/30 15:01
度々です。

MSのInternetControlsPackは以前 ベータ公開されていたものを
>>660の会社に移籍したそうです。
現在、MagnetSoftwareが開発、サポートしています。
ただMSが公開していたバージョンには搭載されていたPOP、SMTP機能が
MagnetSoftwareバージョンでは削除されており、ガーンって感じです・・・

やっぱり、VBでメールを使うのって(Outlookは使わないで)
WinSockで組むのが定番なのでしょうか?
664659:03/05/30 15:02
ありゃ、ほんとだ、Microdoftのって書いてあったね。こっちも早とちりしますた、スマソ

メールの送受信だけならそんなに難しくもなかった・・・・・はずだよ。たしか。
665664:03/05/30 15:03
ご、ごめん、漏れは>660だ。本物の>659氏ごめんよおぉぉ
>>659
BASP21が(・∀・)イイ!!よ
MFCのMAPIをVBから呼び出して使えないかなあ?
668659:03/05/30 15:11
>>665
ちょっとビックリしました(^_^)

>>666
ありがとうございます。BASP21は以前ASPで使用したこともあり
前向きに検討しています。
現在、ライセンス情報を確認してます(やったー 業務利用OK)
おそらく、BASPを使用する方向になりそうです。
皆さん、ありがとうございました。
669デフォルトの名無しさん:03/05/30 15:21
えと、Access⇒VBのノウハウなどが書いてあるWebPageとか、ご存知ありませんか?
多分同じような経験をした方は多いと思いますので、まずは先人の知恵に縋ろうと思います(^^;

さしあたって問題なのがDBグリッド(データシートビュー)とあの多機能なコンボボックス(^^;の移植だと
アタリを付けているのですが、やはりBOCあたりのコントロールを使ったほうがカンタンでしょうか?

他にも「ここは気をつけれ!」という部分があればご指摘ください。よろしくお願いいたします。
>>669

> 「ここは気をつけれ!」

(1) エラー処理には神経使わないとダメ。

・Accessだと、エラー時は実行中のスレッドが停止するだけだが、VBで適切な
 エラー処理ルーチンが記述されていないと、プロセスが落ちる。

・VBでは通常、実行ファイルしかお客に再配布しないので、メッセージやログ
 の文言でエラーの原因がわかりやすいように配慮をしないとエラー原因の追求
 & 解明が困難。

(2) 同名のクラス(例: TextBox、ComboBox)、メソッド、プロパティでも、Access
  とVBで仕様が違う場合がある。なまじ経験があると、確認を怠る場合があり、
  危険。

他の留意点は次の人、どうぞ。
671669:03/05/30 16:06
>>670
アドバイスありがとうございます。その後中身を洗い出している最中なのですが、
結構複雑(Accessのカンタンさにモノを言わせた画面(^^;))が多いので、あまり
クリティカルでない部分はプロジェクト(.adp)を併用しなければならないかも、
と考えております。

……プロジェクトの事って、「ビジネスsoft」で聞いたていいのかなぁ?(^^;
(3)実行前にファイルを保存(Ctrl+S)する癖をつけたほうが(・∀・)イイ!!
 やべっ、無限ループ・・修正内容あぼ〜ん!
Ctrl+Breakで止まるよ
674デフォルトの名無しさん:03/05/30 16:22
入力と出力でファイルを開きたいんですが、出力先のファイルが
他のアプリで開かれているか調べる方法はありませんか?
今は、OpenステートメントのOutputで開いているんですが、
他アプリが排他制御で開いていると On Error GoTo になってしまうもので。
何かいいやり方がありましたらよろしくお願いしますm(__)m
>>674
ん? On Error でエラートラップできるならそれでいいんでないの?
676674:03/05/30 16:44
>>675さんレスどうもですm(__)m
あまりよく分かっていないのですが、On Error は自分の予想外のエラーの為だと思っていました。
できれば入力と出力ファイル別にエラーメッセージを分けたいのですがm(__)m
>>676
Err.Number(だっけ?)でエラー番号を調べれるし
On Error goto 0 でエラートラップの範囲も指定できる
多分やりたいことは On Error で十分トラップ可能と思われ。
On Error Resume/Goto を使い分けるのがプロ
On Error 禁止で挑むのが匠
あえてOption Explicit も禁止で挑むのがDQN
>>677

可能性のあるエラーコードの種類が多い局面ほど、知識と経験とセンスが問われる。
発生し得るエラーが一種類しかない状況なら、初心者でも新人でも対応は容易。
ファイルが開けないなどの、実行時に発生するエラーを捕らえるにはOn Errorを使う。
これ以外の方法では捕らえられないし、On Errorを使うのはごく普通の話。

余談
C言語などでは関数の戻り値でエラーをチェックするが、エラー処理が煩雑になる、
エラーチェックをしなければエラーであってもそのまま処理が続行されるなどの問題があり、
VBではそれが改良されて実行時エラーが発生する方式になっている。
C++、C#、VB.NETなどではtry-catchを使用する。これはさらに改良されており、
エラー情報がエラー番号、エラーメッセージだけでなく、任意のオブジェクトになっている。
>>680

> C++、C#、VB.NETなどでは

Delphiは無視でつか?
「など」と書いてあるだろ。いちいち出てこなくていいよ。
683デフォルトの名無しさん:03/05/30 17:30
>>678
ワラタ
684デフォルトの名無しさん:03/05/30 17:32
エラートラップでもいいが、674はFileSystemObjectとかでなんとかならん
かったっけ。
> On Error 禁止で挑むのが匠
タダの馬鹿だと思うぞ。
C++等で言えばtry禁止か?
>>684
VB(VBS)のライブラリを使っている限り、エラーは実行時エラーになります。
APIを使えば旧式の「戻り値でチェック」が使えます。
それだけのためにわざわざ面倒なことをする必要はないけど。
687デフォルトの名無しさん:03/05/30 17:36
>>685
ネタなんだとおもうぞ
688674:03/05/30 17:41
>>677-680さん
>>674 = 676です
Err.Number 55 で出来そうです。エラー番号があるのを知りませんでした。
どうもありがとうございましたm(__)m
>>688
Err.Descriptionでエラーメッセージが分かるぞ。
ユーザーフレンドリーなエラーとしては使えんが、デバッグ用ならOK。
あと、Err.Raiseで好きなエラーを作成・発生させられる。
これも一緒に覚えておこう。
690674:03/05/30 17:54
>>689さん
ありがとうございます
MSDN見て勉強してみますm(__)m
691デフォルトの名無しさん:03/05/30 18:46
InetでTXTファイルをUNIXのFTPサーバにPUTしようとしているのですが、
自分のローカルでS-JISからEUCに変換して
PUTしても、行の最後に^Mがついてしまいます。
これは、どうやったら消せるでしょうか?

初心者質問で申し訳ありません。
692デフォルトの名無しさん:03/05/30 19:34
>>691
改行コードだろ、多分。WindowsはCR+LFだから、CRを消してLFだけにする。
693デフォルトの名無しさん:03/05/30 22:03
DataComboについて質問させていただきます。

DataComboのドロップダウンリストの横幅を変更したいのですが
下記のソースの様にAPIのSendMessageを使用しても、変更する事
が出来ません。
通常のComboBoxは上記のAPIを使用して変更できるのですが、DataComboは
無理なのでしょうか?
それとも別の方法で変更することが可能なのでしょうか?
ご存知の方がいましたら、教えてください。

環境
VisualBasic6.0(SP5)
Microsoft DataList Controls6.0(SP)(OLEDB)

*****標準モジュール****************************************************
'API宣言
Declare Function SendMessage Lib "USER32" Alias "SendMessageA" _
(ByVal hWnd&, ByVal wMsg&, _
ByVal wParam&, ByVal lParam&) As Long
'定数
Public Const CB_SETDROPPEDWIDTH = &H160

*****フォームモジュール*************************************************
Private Sub Form_Load()
Call SendMessage(Combo1.hWnd, CB_SETDROPPEDWIDTH, 500, 0)

Call SendMessage(DataCombo1.hWnd, CB_SETDROPPEDWIDTH, 500, 0)
End Sub
>>685
不用意に適用するのは駄目だろ。

保守性は下がるしエラー原因の特定が困難になる。

ちゃんとログを残しながらトラップしてれば良いけど・・・


695デフォルトの名無しさん:03/05/30 23:47
USBで繋げた複数のHDを自動的にフォーマットを行ったり、
ボリュームラベルを変更したりするようなソフトは作ること可能ですか?
>>695
楽勝
697デフォルトの名無しさん:03/05/31 00:12
>>696
5つぐらい繋げたHDのパーティションを分けることも可能ですか?
楽勝
699デフォルトの名無しさん:03/05/31 00:32
>>698
なるへそ。
ありがと〜。作ってみます。
>>695
Shell "format ドライブ"
SetVolumeLabel()

>>697
かなり難しいと思う。DeviceIoControl で IOCTL_DISK_SET_DRIVE_LAYOUT で
できそうではあるけどね。
701age:03/05/31 11:48
にゃん
VB糞だな
>>702
何をいまさら?
704デフォルトの名無しさん:03/05/31 14:54
,
705karen:03/05/31 17:28
VB6.0で画像のヒストグラフ書きたいんですけど
よくわかりません。
とる込むところまではできているんですけど
この後、どうすればいいのですか?
706デフォルトの名無しさん:03/05/31 17:35
取り込むってなんだよ、プログラミング用語でいってくれ。
>>705
とる込むって何を?
まぁPictureBoxでLineやPsetメソッドなんかを使って描画して
SavePictureでbmpで出力。
708デフォルトの名無しさん:03/05/31 20:34
激初心者なのですが、
誰か暇で心麗しいシトがいたら宿題教えてください。
おながい致します。

*フィボナッチ数列を任意の項数まで求める事のできるプログラムを
 <For~Next文>を使って作る。
 求める項数はテキストボックスを使って入力する。


 
>>708
潔いな
710デフォルトの名無しさん:03/05/31 20:54
>>708
で、どこまでやったんだ?
711デフォルトの名無しさん:03/05/31 23:55
>>700
ありがとー
ボリュームラベルの変更は出来たよ!
でもやっぱ、パーティションの変更はよく分からん( ´・ω・)
今回はフォーマットとラベル変更で勘弁してやら−ヽ(`Д´)ノ
標準EXEのプロセスの優先度をAPIで下げた場合、そのプログラムから
呼び出されるACTIVEX.EXEの優先度はどうなるのでしょうか?
くだらない質問ですいません。
713デフォルトの名無しさん:03/06/01 03:42

VBのメッセージ出力のような、表示したいメッセージの番号を組み合わせて
(1,2,4で、1,2のメッセージを表示したい時は3というような)
作るパターンの関数を作りたいのですが、これで良いのでしょうか?

Function test(int_ChkNo)

 arr_Data = Array(1,2,4)

 For i=UBOUND(arr_Data) to 0 Step -1

  If(int_ChkNo >= arr_Data(i)) Then

   Select Case arr_Data(i)

    Case "1"

    Case "2"

    Case "4"

   End Select

   int_ChkNo = int_ChkNo - arr_Data(i)

  End If

 Next

End Function
>>713
ビットごとにAnd取ったら?
715713:03/06/01 04:02
>>714 簡単で結構ですので詳しくお願いしまする
「簡単で結構」≠「詳しくお願い」
ワロタ  
さげろ

.NETスレほど注目されてねーんだよ
勘違いやろーども














こぴぺ推奨
719デフォルトの名無しさん:03/06/01 05:03
>>715
const MSG_A = 1
const MSG_B = 2
const MSG_C = 4

という形で宣言しておき、

If value and MSG_A Then
End If
If value and MSG_B Then
End If
If value and MSG_C Then
End If

という形で使う。
720デフォルトの名無しさん:03/06/01 05:05
>>719 続き
ビット演算は基本的テクニックだから、覚えておいたほうがいいぞ。

10進の1 が 2進の0001
10進の2 が 2進の0010
10進の4 が 2進の0100

10進の3(1+2)だと、0011になり、0001、0010のどっちでもヒットする、ってわけだ。
わかりづらかったら、電卓で変換しながら試してみるといい。
721デフォルトの名無しさん:03/06/01 07:11
VisualBasic6.0ってXPでも動きまスカ?
722直リン:03/06/01 07:13
>>721
動くよ。いくつかの問題はあるけどね。
724デフォルトの名無しさん:03/06/01 07:48
>>723
レスありがとうございます。
問題とは具体的にはどういったものでしょうか?
msのnewsgroupの過去ログに詳しい情報があった。

開発環境が固まるとか、Formatでの丸めが違うとか、等幅フォントの扱いが
違うとか、そんな感じ。
726デフォルトの名無しさん:03/06/01 07:56
>>725
調べてみます。本当にありがとうございました。
727 :03/06/01 08:27
Enterキーを入力すると編集モードになるコントロールがある場合
プログラムで編集モードに入る方法を教えて頂けませんか?
厨房な質問ですいません
>>727
たとえばどんなコントロール? 普通、なんらかのインターフェイス(メソッドとか
プロパティね)を用意してると思うんだけど。

そういうのがないなら、keybd_event()とかで、Enterを送っちゃうとか。
729 :03/06/01 08:53
>>728
スプレッドシートみたいなものです。
メソッドやプロパティにもないようなので困っています。

>そういうのがないなら、keybd_event()とかで、Enterを送っちゃうとか。
ありがとうございます。試して見ます。
>>729
だから、どのコントロールか書けっての。
もしかしたら、すごく詳しい人がいるかもしれねーべ。
731 :03/06/01 09:31
それが他の人が作ったコントロールなんです(^^;
>>731
じゃ、作った人に聞くしかないね。
733713:03/06/01 11:40
>>719-720
レスありがとうございます。
僕の作ったやつは必ず値の大きい方から表示されていたのですが、
それも一気に解決できました!
助かったです。
勉強になりました。
詳しいお答えありがとうございましたm(_ _)m
734デフォルトの名無しさん:03/06/01 13:59
時々意味不明に悩まされています。
例えばステータスバーのちょい上にCommandボタンを置いて実行すると、
時々ボタンがステータスバーに半分以上隠れちゃうのです。なぜなんでしょうか
またどうすればいいのでしょうか。
それと、テキストボックスでエンターキーを押すと次のテキストにフォーカス
を移ろうとしても、なぜかコマンドボタンが実行されてしまいます。よく
わからないのですがこれは仕様なんでしょうか?ボタンのコントロールを作っ
て使えば大丈夫くさいんですけど。原因が知りたいと思います。
>>734
意味不明に悩まされました。
ニポンゴ シャベッテ クダサーイ
>>731
ユーザーコントロールでいじくれるなら自分で改造すれば?
>>734
シ ツ モ ン ノ イ ミ ガ カ イ ド ク デ キ マ セ ン
C:\>□
739727:03/06/02 02:14
>>728

keybd_eventでクリアできました。
ありがとうございました。
>>734
マウスでプログラミングすることなんかにたよってるからそうなるんだよ。
741デフォルトの名無しさん:03/06/02 05:03
ボタンを押したら画面が切り替わるのは
どうやったらいいのですか?
例えば、最初に名前入力させて
実行ボタンを押すと問題がでるみたいに
したいんですけど…
>>734
ステータスバーはコンテナではないので、その上にコントロールは置けない。
なので、コントロールの上下関係に気をつける必要がある。

Enterでボタンが実行される件は、デフォルトボタンになっていないか確認すれ

>>741
フォームをShowすれ
なんでVBにはSenderないんだYO!
わざわざクラスで作るかYO!
この糞プログラムめ!
Delphiマンセー
スマソ、自分に知識のない香具師の愚痴ですた。
>>743
VB.NETに移行しる
745デフォルトの名無しさん:03/06/02 11:12
>>743
VBとスクリプトぐらいしか知らん者ですが、Senderってなんですか?
746直リン:03/06/02 11:13
>>745 なはっなはっ
Sender偉い!Sender偉い!
749デフォルトの名無しさん:03/06/02 11:55
GP-IB通信ついて、おすすめサイトを教えてくれ
naha naha naha!!!!
>>749
GP-IBボード/カードのサイトがいいよ。
Senderオブジェクトが好きなDel厨よ、
ならば次から作るVBプログラムは全部コントロール配列にしる。
Senderオブジェクトって何?
754デフォルトの名無しさん:03/06/02 15:33
結局ここには説明できるまともなDel使いはこないのか、、
>>753
イベントプロシージャを呼び出したコントロール。ボタンのクリックイベントなら、
クリックされたボタンが入ってる。

VB.NETでは、Delphiと同様にSenderが利用できる。
前と同じような事を書き込んでしまうのですが、アウトプロセスの
ACTIVEX.exeの優先度を下げるにはどうすればよいのでしょうか?
757693:03/06/02 21:05
だれか教えてくらはい〜>>693
やはり普通のコンボボックスではないと駄目なのでしょうか?
pointメソッドでPicture1の色情報を得て次に何をしているのかが
わかりません。
HFFってのは色を表しているのだと思うんですが、、、
どなたか教えてください。

For j = 0 To 199
For i = 0 To 199
k = Picture1.Point(i, j) And &HFF
hist(k) = hist(k) + 1
Next
Next
>>757
やって駄目なら無理でしょ。

>>758
色は表してない。いわゆる、「アンドを取る」ってやつだね。
ビット演算について学ぶとよし。
まともなVB厨がんばってるか?
ときどき糞スレたてるVB厨を矯正してくれよ
761デフォルトの名無しさん:03/06/03 15:33
VBの質問じゃないかもしれないですが
MDBファイルをADOで触ってます
ACCESSでいう「テーブルのレイアウト」というのを、VBから設定することは出来ますでしょうか?
>>761
ADOXを調べてみては?
>>758
赤の輝度を取得している。
AND &HFF00 で緑
AND &HFF0000 で青
(´-`).。oO(VB知らんけど、&H000000FFって書かなくていいんだ・・・)
765デフォルトの名無しさん:03/06/03 21:33
picture1とpicture2の画像を重ね合わせて表示する方法ってありますか?
>>765
ありますが、どんな結果が望み?
透明色とかアリ?
767デフォルトの名無しさん:03/06/03 21:48
>766
もちろんありです。
>>767
方法を言い出せばうんざりするほどある
VB標準の機能で自力で描画、TransparentBlt、DIB、DirectXまで。

てきとーにやりたいならTransparentBltをお勧めする。
IE5以降が入ってないと使えない上にリソースリークするらしいがな。
769デフォルトの名無しさん:03/06/03 22:25
テキストボックスの途中に文字列を挿入ってできますか?
[abcghi]→[abcdefghi]みたいな感じに
cとgの間クリックしたらそこにクリップボードから貼り付けみたいな
>>768
一番すすめちゃだめなのぢゃんw
771デフォルトの名無しさん:03/06/03 22:30
765です。
いろいろありがとうございます。
もう少しがんばってみます。
772デフォルトの名無しさん:03/06/03 22:51
例えばテキストボックスでform1で入力させた文を
form2に持ってく方法ありますか?
>>772
ふつーにやればできるが。
774sage:03/06/03 22:53
form1.text1.text1とか頭にフォーム名つける
>>769
クリックイベントに
Text1.SelText = "ほげほげ"
みたいなイメージ?
勝手に補足。対象のインスタンス名がform2の場合は、form2でいいが
インスタンス名が別ならそのインスタンス名をつけること。


Dim form2instance As Form2
Set form2instance = New Form2
なんてコードならform2instance.text1.textという風になる。
777
778デフォルトの名無しさん:03/06/04 00:08
>>774
ほんとありがとうございます。
初心者でとりあえず、某書のビギナー編を買ったんですが載ってなくて…
ググっても見たんですけど、vbのいいHPがなかなか見つからなくて苦労してました。
779デフォルトの名無しさん:03/06/04 00:17
すいません、vb使ってるとよく馬鹿にされるので他の言語に移行したいのですが、
無理ですか?
>>779
2ch以外で馬鹿にされることはないだろ
>>779
がんばって移行してちょうだい
>>780
プロなら職場でも思いっきり馬鹿にされるだろ
783デフォルトの名無しさん:03/06/04 00:25
すいません、2chができる前から良く馬鹿にされていました。
VC++などにも挑戦したのですが、挫折したので何かもうちょっと
簡単なものないですか?
馬鹿にされる要素に気づけ
>>783
C++Builderは結構いいと思うよ
Javaもいいね
http://www.geocities.co.jp/SiliconValley/5944/bookback/bbv15.htm
プログラミング関係
> [Q] たか子さん
> 今度はSQLが走る部分で、
> 実行時エラー”3706”プロバイダが見つかりません
> というエラーが出てしまいます
> SQLの部分はMicrosoft.Jet.OLEDB.3.51;を
> 使っています
> どうもADOのエラーらしいのですが

> [A] アルシャーネさん
> 憶測で書くならば最初のVB5.0の端末へのインストール時のエラーは
> 上位バージョンから下位バージョンへのインストールの為にうまくインス
> トールされなかったことが考えられます。
> 次のVBが入ってないほうの端末の場合では、
> プロバイダが見つからないということなのでインターネットへのアクセスに
> 失敗していると思われます。それでは、ダ フストリェーチャ
>
> PS:ADOではなくDAOの間違いでは?(苦笑)
787デフォルトの名無しさん:03/06/04 09:10
>>778
vbの本でいいのはなかなかない。vbの構造上解説しにくいのかもしれない。
788_:03/06/04 09:10
789動画直リン:03/06/04 09:13
>>783
馬鹿にするのは馬鹿だから。大抵無知な学生が理由もなしに言っているだけだから気にするな。
たしかに出来ないことはあるがそれは馬鹿にすべき要素じゃなく適材適所ってだけの問題。
プロの世界じゃ普通に使われる。
(入社時期なんかなまじ知識つけた奴がVBを馬鹿にして恥を書く姿がちょこちょこ見られる(w)

もちろん他の言語「も」使えるのは当然なんで他の言語を勉強するは当然いい。
ただ、VC++でウインドウをもったアプリを作ろうとすると、C++とともに複雑なMFCを理解しなければ
ならないので挫折しやすい。コンソールアプリからちまちまとやるか、GUI作成がVBと同じ
RAD系の言語、C++BuilderやJavaやMS製ならC#なんかがいいだろう。
(VB.NETもオブジェクト指向なんでいいんだが、名前で馬鹿にする程度の奴には理解不能なんで
やっぱり馬鹿にするかもしれない。馬鹿は放置すればいいだけなんだが。)

>>787
こんな本いいと思うよ。構造上解説しにくいなんて勘違いが直るかもね。

Visual Basicによるビジネスアプリケーション開発
- オブジェクト指向設計で作る3層C/Sアプリケーション -
http://www.rational.co.jp/products/books/bk_19.html

あとVBを作ったのはマイクロソフトなんでマイクロソフトの本もなかなかいいと思う。
ただ俺は買っていなくて本屋で立ち読みする程度なので具体的に進めることが出来ない。
MSDNライブラリ(ヘルプ)で十分だしね。本じゃないけど。

ただどの言語にも当てはまるけど初心者むきでいい本ってのは少ないな。
VBは良くも悪くも「作るための言語」なんで勉強には向かないかも。
プログミングで必要なことってのはどの言語でも通用するから
違う言語の本でも読んでみるのもいい。
791デフォルトの名無しさん:03/06/04 10:35
>>790
VB6までは構造(言語仕様)的には問題が結構あると思うがな。たとえば、Form
がクラスでもあり暗黙的にインスタンスになってるところ。説明しづらいったら
ないね。そこまで辿り着けば君のいうとおりだと思うよ。


個人的にお勧めは
Visual Basic 6: Error Coding and Layering
http://www.amazon.com/exec/obidos/tg/detail/-/0130172278/qid=1054690288/sr=8-1/ref=sr_8_1/102-0723294-1391308?v=glance&s=books&n=507846

プログラマのメモ帳
http://www.gj.il24.net/~nakasima/

>初心者むきでいい本ってのは少ないな
いい本以前に、VBの場合間違ってることが平気で書かれてるのが問題だ。
792あぼーん:03/06/04 10:46
793デフォルトの名無しさん:03/06/04 10:46
>>778
Codegruやplanet-source-code.comなんかで他人のソースみてみるのもいいかも
794デフォルトの名無しさん:03/06/04 10:57
VB5でInetコントロールを使用したあと、1分ほどフリーズするんですが、
なにが原因ですか?
Inet1.Cancelもやりましたがダメでした。
スイマセン
vbでGetSettingっていう特定のレジストリキーを操作する関数があるんですが
あれって 制限とかあります?
例えばDWORDの値だとエラーが発生するんです。
今 VCで同じレジストリを流用してるんだけど VB側でエラーになってます
796795:03/06/04 12:05
あげさせてください すいません
vbってリジストリいじれるのはあそこだけじゃなかったっけ?
798795:03/06/04 13:10
>>797
はい ヘルプをみてるとそのようです
ただその使用出来る値の型もREG_SZのみっていうとさすがに
辛い感じです
799動画直リン:03/06/04 13:13
>795
そのDWORDって値をVB側では何の型で宣言してんの?
801795:03/06/04 13:36
>>800

型をinteger にしていたので エラーになってたみたいです
variantに変更したら解決されました ありがとうございます
802795:03/06/04 13:39
とおもったんですが やっぱり駄目みたいです
DWORDはVBで言うLong
804795:03/06/04 14:04
long も ダブルもチャレンジしてみましたが
プロシージャの呼出が不正ですのエラーがでちゃいます
>>804
素直にAPIで読めば?
うむ。APIでやってみたらできた。あたりまえか。
807795:03/06/04 14:42
そうします。ありがとうございました。
Debug.printは書き残したまま本番用exeファイルをつくってしまってかまわないのでしょうか?
かまわないけどその分パフォーマンスが落ちるかも知れない。
810808:03/06/04 20:18
>>809さん
ありがとうです。
ちょっと質問なんですが、WinsockコントロールでTCPでは普通に送れていた
データがプロトコルをUDPにしたら、「データグラムはバッファより大きい
ため切り詰められます」と出るようになってしまいました。内容はそのままんま
なのかもしれませんが、これを解決するにはやはり小出しにして送るしか
ないのでしょうか?やはりこれがプロトコルの違いなんですか?
>>811
ただ小出しにするだけじゃだめだよ。
届く順番も送った順番で届くとは限らないし
同じデータが2回届くかもしれない。
そういう制御をやってくれてるのがTCPだから。
UDPにするならその辺も考えないとね。
まあ、そんなの気にしなくていいデータならいいけど。
813デフォルトの名無しさん:03/06/05 10:39
>>809
ん? Debugってコンパイル時に除かれるんじゃないの?パフォーマンスは
落ちないと思うが
>>813
除かれないよ。
815デフォルトの名無しさん:03/06/05 11:49
Win98以降とVB5で使えるFAX送信OCXを探しています
STARFAXが有名ですがこれはVBで作ったFAXアプリを使う
PC全てにSTARFAXをインストールしないといけないのですよね
そうではなくVBアプリと一緒に配布可能なやつが欲しいのですが
NetMan for FAX以外で何かありますか?
816デフォルトの名無しさん:03/06/05 11:49
>>814
VB6のドキュメント(プログラミングガイド p.602)によると

アプリケーションをコンパイルして実行可能ファイル(.EXE)を作成すると、
Debug.Print ステートメントは自動的に削除されます。 ... ただ
し、Debug.Print の引数に関数呼び出しを使っていると、そのDebug.Printは自動
的には削除されません。 ...

ってことだ。たぶんオブジェクトのメソッドやプロパティーも削除されない。
817816:03/06/05 11:52
>VB6の ...
VB4.0のドキュメントだった
>>813
VBにそんな最適化機能はない。
もっとも、落ちるパフォーマンスなんて大した事無いし、
Debug.Printを取り除いた事による生産性の低下の方が怖い。
819デフォルトの名無しさん:03/06/05 13:05
もともとのパフォーマンスがたいしたことない











と言ってみる
>>819
で、元々のパフォーマンスの低さが、Debug文を利用した場合とそうじゃない場合の
差異にどのような関係があるのか?とマジレスしてみる。
821デフォルトの名無しさん:03/06/05 13:10
Debug.Print を除くことは最適化とはいわないが
822動画直リン:03/06/05 13:13
条件付コンパイルも知らないヴァカどもが集う糞スレはここでつか?
824デフォルトの名無しさん:03/06/05 13:33
条件付コンパイルとDebug.Printは違うんだが
>>824
消さずに条件付コンパイルで無効化汁と言ってるんだが。
行間が読めないヴァカは死んでくれ。
>>821
確かに、除くことが確実に良いわけじゃないしな。
Debug.Printに副作用を持つ関数が含まれている。
たとえば、関数にフォームのCaptionを変える命令が含まれている場合。
Debug.Printを行うのと行わないのでは処理が違ってしまう。
こっちの方がパフォーマンスの問題なんてちっぽけだと思ってしまうほど重要。

最適化ってのは処理は変わらないから勝手に書き換えたりするわけだが、
Debug.Printのように処理が変わって勝手に取り除くのがまずい場合は、
取り除くかどうかは仕様によるとしかやりようがないだろう。

ちなみにDebug.Assertの方はコンパイルすると消えるという仕様だね。
で、コンパイルすると消えるようにしたい場合は条件付コンパイルを使うわけだ。
デバッグなんてしないにこしたことはない
828デフォルトの名無しさん:03/06/05 13:48
>>826
Debug.Print があるかないかでプロパティーが変わるっていうのは Debug.Print
の使い方としておかしくないか?
>>818
落ちるパフォーマンスは場合によるよ。この例だと取り除かれない場合、一分も遅くなる。
Debug.Print foo()

Function foo()
 'データベースとかに接続して'大量のデータ読んで
 '値を得るのに1分かかる代わりにスリープ
 Sleep(60000)
 foo="ok"
End Function
830デフォルトの名無しさん:03/06/05 13:50
>>825
816にあるとおり、変数の出力だけならDebug.Printはコンパイラが勝手に無視し
てくれる。それをわざわざ #If hogehoge Then なんてするのは馬鹿らしい。
プロパティの出力は消してくれない。
だから、Fields("NAME").Valueとかも消されない。
勘違いするなよ。
832デフォルトの名無しさん:03/06/05 13:56
>>831
それは816でガイシュツ
833デフォルトの名無しさん:03/06/05 14:02
何げにつかってたDebug.Printだけど、うまく使うには奥が深いな
引数もデバッグプリントだとたぶん自動削除されないうえに無限ループになるかもしれない。
Debug.Print (Debug.Print)
835デフォルトの名無しさん:03/06/05 15:34
コマンドボタンを押すと画像が500msecだけ
出したいんですけど、Timerとかやっても
うまくいかず、秒間隔ならできるんですけど…
うまい方法はですか?
>>835
ありますよ。
837デフォルトの名無しさん:03/06/05 15:45
>>836
よかったら教えて下さい。
838デフォルトの名無しさん:03/06/05 15:55
ADOでAccess97形式のMDBはSeek出来ないものなのでしょうか?
>>834
なんでやねん!

Debug.Printは戻り値を返さない上にたとえ返したとしても(略


それよりか、イミディエイトウインドウで、do:loopと書いてエンターを押すと・・・。
840デフォルトの名無しさん:03/06/05 17:39
>>838
本によるとRecordsetのOpenメソッドの第4引数で adCmdTableDirect をつかうと
できるとある。

rs.Open "TableName", cn, adLockPessimistic, adCmdTableDirect
rs.Index = "PrimaryKey"
rs.Seek 12, adSeekFirstEQ

この方法はJet以外には使えないので、移植性を考えると使わないほうが
いいらしい。
>>839
つづきの文をどうぞ↓
>>841
839はただいまPCの再起動中です
初心者むけのVBのサイトってないですか?
検索してもパソコンスクールの宣伝だったり閉鎖中だったりでなかなか見つからなくて。
845デフォルトの名無しさん:03/06/05 19:50
テキストボックスにスクロールバーがついたやつで
そこに入力されてる文字の最後尾までスクロールさせてくる
みたいな方法ありますか?
846デフォルトの名無しさん:03/06/05 19:51
>>844
サイトより本買った方がいい
>>845
Text1.SelStart = Len(Text1.Text)
>>845
Text1.SetFocus
SendKeys "^{END}"
>>846
金無いっす。・゚・(つД`)・゚・
850845:03/06/05 20:27
>>847,>>848
ありがとうできました!
>>848
{}があるということはC言語???
852デフォルトの名無しさん:03/06/05 21:25
3桁の数字を001、002みたくレコードに連続で番号をふっていくようなこと
できる?
853デフォルトの名無しさん:03/06/05 21:34
>>835
できたら、835を教えて下さい…
>>853
どんなふうにうまくいかんのだ。
フォーム Load
 Timer1.Enabled = False
 Timer1.Interval = 500
コマンドボタン Click
 Picture1.Visible = True
 Timer1.Enabled = True
タイマー Timer
 Picture1.Visible = Flase
 Timer1.Enabled = Flase
856438:03/06/05 23:06
part24のスレでもありましたが、
ダブルクオーテーションの"をテキストボックスに表示したいです。
どうやったら"を表示できるでしょうか?
"" や """ や " としてみても、うまくいかないです。
857デフォルトの名無しさん:03/06/05 23:11
>>755
というか、
Java作ったのがDelphiつくってC#つくったんだろ?
858_:03/06/05 23:11
859デフォルトの名無しさん:03/06/05 23:17
>>856
""""
860デフォルトの名無しさん:03/06/05 23:27
>859
できました。ありがとうございます。
861デフォルトの名無しさん:03/06/05 23:33
>>855
ありがとうございます。助かりました。
862>>811:03/06/06 00:33
>>812
具体的に小出しにするにはどうすればいいのでしょうか?バイト型で宣言
した変数にデータを代入しても、それをどうやって分割して送ればよいか
わかりません。よろしければ他のどなたかでもいいので教えてやってく
ださい。
>>862
すなおにTCPつかいなされ
864デフォルトの名無しさん:03/06/06 01:02
>>852
意味が分からん。00を頭につけたいのか?そうだとしたら
コードを書く方が「圧倒的に」良いが、Format$(var, "000") でもできる。
Format$は癖があるので勧めない。
865>>811:03/06/06 01:55
>>863
それもそうなのですが、いろいろ事情があって、2つのプロトコルを用いた
結果を比較したいのです。面倒でしょうが教えてください。
>>865
分割して、ヘッダ(ユーザー定義のね)にシーケンシャル番号を振っておき、
取得した側で組み立てればいいんでないの。
867デフォルトの名無しさん:03/06/06 08:57
>>790
話を蒸し返すようでスマンが、vbが馬鹿にされるのには理由がある。
本当はvbというか、vbしか使えないヤツの事なんだけど。

と、いうか馬鹿にしたくなるよね。VBオンリーPGのソース見てみればな。
前どっかのスレでも話題になったけど、論理演算さえも知らないヤツが何人もいたし・・・

それに、フリーソフトとか見てもVB製の優秀なソフトを見た事がない
868デフォルトの名無しさん:03/06/06 09:05
>>855
だからなにがうまくいかんのだ。
>>865
素人にUDPは使いこなせない。
そもそもTCPもあやしいな。あんたの場合。
870動画直リン:03/06/06 09:13
┌───────────────────
│あ、どうもスイマセン、お騒がせしますた・・・
└───v───────────────
     /⌒\ っ   /\
    /'⌒'ヽ \ っ/\  |
    (●.●) )/   |: | すぐ連れて逝きますんで・・・
     >冊/  ./     |: /
   /⌒   ミミ \   〆
   /   / |::|λ|    |
   |√7ミ   |::|  ト、   |
   |:/    V_ハ   |
  /| i         | ∧|∧
   и .i      N /⌒ ヽ) ←>>867
    λヘ、| i .NV  |   | |
      V\W   ( 、 ∪
              || |
              ∪∪

872_:03/06/06 11:10
wavファイルを録音、波形表示したいのですが
情報を下さい。
現在やりたいのはマイクを使っての音声録音です。
mci〜を使えば録音自体は出来るようなのですが
波形の表示もしたいのです。
873直リン:03/06/06 11:13
>>867
MIDIStationなんかどーよ
876872:03/06/06 13:12
>>875
情報ありがとうございます。
良さそうなので早速買ってみます。
877動画直リン:03/06/06 13:13
878デフォルトの名無しさん:03/06/06 14:48
Win32 DLL の 〜A と 〜W
ANSI と UNICODE だそうだが
結局どう使い分けんの?
〜A しか使ってないんだけど
>>878
API呼び出しの際に、自動的にANSI変換がかかるから、A の方だけでおっけー。
どうしても W が使いたければ、バイト配列でどーぞー。
880878:03/06/06 15:32
>>879
ありがと
これで安心して 〜A を使えるよ
881>>811:03/06/06 19:32
>>866
もう少し具体的に方法を教えていただけないでしょうか?無理でしたら
そういった事を扱っているサイトでもいいです。お手数ですがよろしくおね
がいします。
>>869
そうかもしれませんが、あなたにそんな事を言われる筋合いはありません。
>>881
何故そこまでしてUDPにしたいのですか?
UDPの特徴はわかってるでしょうから、不具合ないように使えばいいだけですのに。
883デフォルトの名無しさん:03/06/06 23:33
PictureBoxのフォントの色を指定するにはどうすればいいですか?
884デフォルトの名無しさん:03/06/06 23:47
ソースをコーディングしたパソコンから違うパソコンに移して
起動したところ、コンボボックスのコントロールに埋め込んだリストが
読み込めなくてエラーになりました。
何でなんでしょうか?
環境は両方ともXP+VB6(SP5)です
885デフォルトの名無しさん:03/06/07 00:03
「文全体の終端」を示す記号はありませんでしょうか?
「行の終端」はCHr(&HD)があるというのに・・・。
EOFかなとも思うのですが、少し違うような気がします。
どなたか教えて下さい。
>884
移し方が悪い。ソースディレクトリごっそり移せば動くはず。
>>883 .ForeColor を変えれ
>>884 .frx もコピれ
>>885 0 れ
888デフォルトの名無しさん:03/06/07 09:52
ファイルを移動する関数っていうのはないんでしょうか?
今はFileCopyした後にKillしてるんですが、でかいファイルだと時間がかかります
>>888
APIにSHFileOperationがあります。
CやDelphiならそれ以上の速度のルーチン作れるのにプププ
>>888
Shel "move"
>>888
Scripting.FileSystemObject を使うのが簡単。
あと dos command で move を呼び出すのもありかな。
>>888
MoveFileってその名もずばりのAPIがあった
>>889
結局API呼び出すだけなんだから、速度は同じでは?
もしかしてAPI知らなかった?
894デフォルトの名無しさん:03/06/07 12:48
リンクをたどって画像収集するプログラムを作ろうと思っていますが、
どこかに参考になるいいサンプルのソースはないでしょうか?
>>894
そこはかとなくスレ違い
>>894
ttp://www.google.co.jp/images/hp0.gif
こういうのを自動採集する気か?(藁
>>893
メモリを多く使えば高速にコピーできるけどそういう事じゃないの?
コピーじゃなく移動だろ。ファイル管理情報を書き換えることになる
移動ならなんの処理使おうが速度に大差ないと思うな。
(ディスクが異なればコピーと変わらないことは解ってるよな?)
>>897
違うでしょ。SHFileOperation以上のルーチン作るなんて言っているから
MoveFileを知らなかったと思われ。
>>888
Name ステートメントじゃダメ?
バグってて使えないとか。
901デフォルトの名無しさん:03/06/07 16:59
FTPで長時間ダウンロードしたいのですが、
ほかの処理をストップさせずにバックグラウンドで走るAPIなどの方法はありますか?
>>901
FTP関連のAPIの引数にコールバックがあるだろ?
あれ使って非同期で実行すればいいよ。
903902:03/06/07 17:03
>>901
InetコントロールやWinSockコントロールでも可
904デフォルトの名無しさん:03/06/07 17:28
メールを送るにはどうすればよいでしょうか?
>>904
基本はhttpを使ってサーバーに接続して、決まった文字列を送信するだけ。
サーバに接続するのはwinsock等でやる。
決まった文字列はRFC等を調べる。
もっと簡単に済ませたいならそういうコントロールがあるはず。
906905:03/06/07 18:17
ごめん。httpじゃなくてsmtp
>>904
basp21を使う
EnterキーのKeyAsciiはどんな整数値でしょうか?
>>908
そのくらいトレースして追いましょうよ。
13

912908:03/06/07 22:33
>>909-911
ありがとうございます。
Text1のKeyPressイベントでKeyAsciiが13のときはText2にSetFocusしてみます。
913超初心者より:03/06/08 00:29
dbgrid にソート機能をつけたいんだけど
どうすればいいのでしょう?
コードを書くところがわからないのですが
914デフォルトの名無しさん:03/06/08 08:43
>>913
接続したテーブルをソートするだけでは?
915超初心者より:03/06/08 09:43
>914
ソートはできたんですけど、、
dbgridのフィールド名のところにボタンをつけたいんですが、
916デフォルトの名無しさん:03/06/08 14:04
VB4.0です。
プリンターで印字するとき、プログラム中に
Printer.FontSize = 30
と書いたのですが、いうことを聞くときと聞かないときが
あります。おなじコマンドの中に数カ所書き込んでも、ある
場所は30ポイントになっているのに、他の場所は小さな
文字しか印字されません。これはいったいどうしたことな
のでしょうか。


VB6ラーニングエディションは、ピクチャークリップがついていないために、
一つの画像をいくつかに分割するのが出来ないですよね。
MCI32.OCXを強制認識させるか、ピクチャークリップを使わないで分別させる
方法を、誰か詳しい人教えてください。よろしくお願いします。
ピクチャークリップを使わないで分別させる →ピクチャークリップを使わないで分割させる
です。
>>917
PictureBoxを分割する数作っておいてバラバラにしておくとか
関数でもつくって呼び出されたときに範囲を計算して絵を返すとか。。。
920デフォルトの名無しさん:03/06/08 19:52
>PictureBoxを分割する数作っておいてバラバラにしておくとか
バラバラにする方法を教えてください。
お願いします。
>>920
PaintPictureのヘルプを見てわからなかったらまた書き込んでみてください
922デフォルトの名無しさん:03/06/08 20:16

配列(サイズ不定)を返す関数の定義を

(1)
Public|Private Function Hoge() As Type()
と書くのと、

(2)
Public|Private Function Hoge(ByRef vntArray As Variant) [As RetVal]
'VariantのByRef引数に配列を割り当てて返す。

と書くのと、どちらが正統(正しい作法)ですか?
どちらも動作には問題ないようですが、(1)の形式のコードは見たことがないので、
邪道なのか気になります。
923917:03/06/08 20:33
Picture1.PaintPicture Picture1.Picture, 0, 0, 200, 500, 0, 0 = Image1(0).Picture
で無事に表示されたんですが、
x1, y1
width1
height1
x2, y2
width2
height2
について分かりやすく説明していただけないでしょうか?
申し訳ありません。
>>923
ソレ、意図した通りに動いてるんでしょうか、ちょっと心配です
ヘルプはわかりにくいですかね、実際の使い方をみたほうがぴんとくるのでは?
Googleを活用しましょう。http://www5d.biglobe.ne.jp/~tomoya03/shtml/class/CopyGra.htm
もうすこし試行錯誤することをお勧めします。
925デフォルトの名無しさん:03/06/08 22:53
Set objArguments = WScript.Arguments
strRet = InputBox("題名","新規ファイルの作成","無題")

に、「/\:*?"<>|」は入力できないようにしたいのですが、
どのようにしたら良いのでしょうか?

若しくはstrRetの文字列の中の文字のうち「/\:*?"<>|」だけ削除できれば
それでも大丈夫です。
>>925
削除するのか? エラーにしたほうがいいと思うんだが。
消すのなら正規表現使って消すのが一番楽かな。

ファイル名として使えないものをはじくわけだから
入力されたファイル名でOpenしてエラーになるのを
捕らえるという手もあるかも。
927デフォルトの名無しさん:03/06/08 22:57
>>925
性器エクスプレッション使うだけだろ?アフォは氏んでね。
928デフォルトの名無しさん:03/06/08 22:58
MS-DOSで
---
set /a count=0
set dp=%~dp1
set aaa=%DATE:/=.%
set bbb=%~nx2

if exist "%dp%%aaa% - %bbb%.txt" goto sub
date /T >> "%dp%%aaa% - %bbb%.txt"
goto end

:sub
set /a count=%count%+1
if exist "%dp%%aaa% - %bbb%(%count%).txt" goto sub
date /T >> "%dp%%aaa% - %bbb%(%count%).txt"
---
これをVBSに書き直したいのですが、
どなたか翻訳して頂けませんでしょうか?
>>927 煽りはスピードが命。
930デフォルトの名無しさん:03/06/08 23:28
>>925
Dim strRet
a:
strRet = InputBox("題名", "新規ファイルの作成", "無題")
If InStr(strRet, "/") <> 0 Or InStr(strRet, "\") <> 0 Or InStr(strRet, ":") <> 0 Or InStr(strRet, "*") <> 0 Or InStr(strRet, "?") <> 0 _
Or InStr(strRet, """") <> 0 Or InStr(strRet, "/") <> 0 Or InStr(strRet, "<") <> 0 Or InStr(strRet, ">") <> 0 Or InStr(strRet, "|") <> 0 Then
MsgBox "ファイル名やフォルダ名に/\:*?""<>|は使えません。"
GoTo a:
End If
931>>811:03/06/08 23:39
>>811
すいませんが、これを親切な方教えていただけないでしょうか?ちょっと
急いでまして・・・あつかましい御願いですがよろしくおねがいします。
>>931
色々解答を出してる人がいるようですが?
>>931
ここで聞いてみてはどうでしょう?
http://pc2.2ch.net/test/read.cgi/tech/1052106444/
>>930
Likeが早い。IsDisitとかより俺は長宝
If strRet Like "*[/\:*?""<>|]*" Then
935デフォルトの名無しさん:03/06/09 09:52
>>922
おれは(1)を使うときあるよ
tukautokiaruyo
936デフォルトの名無しさん:03/06/09 10:16
>>902 >>903
どうもありがとうございます。
コールバック関数はどのように使えばよいでしょうか?
>>783
VBだけでどんなプログラムも作れるからVBで設計しよう、というと
馬鹿にされるどころか嫌われるよ。とくにエンタープライズ系では。

オブジェクト指向言語でやっているところをアセンブラでやれ、と押し付けられちゃたまらんからね。
938狂信的アハァ信者:03/06/09 10:28
関数のアドレスセットして、呼び出されるの待つだけ。
939デフォルトの名無しさん:03/06/09 11:18
すいません、新すれのほうに書き込んでしまいました。

質問内容は以下のとおりです。

ファイル変更をフックしようと思い
ReadDirectoryChangesW API を調べているのですが
なかなか VB でのサンプルが見つかりません。
もしVBで組んだことある方がいましたら
多少の手解きお願いできませんでしょうか?
940_:03/06/09 11:26
>>935
ありがとう。
よく考えたら、(2)の方もVariantにする必然性がないですね。
個別の型指定(String()、Long()等々)で問題なく動作しました。
配列を返すと最初から決まってるなら、Variantにしない方がいいみたい。

Hoge() → Hoge型の配列を受けられる。
Hoge → Hoge型の変数は受けられるがHoge型の配列は受けられない。
Variant → 配列も配列以外のオブジェクトも代入可能。
Variant() → 配列は受けられるが、配列でない変数は受けられない?(未確認)

つうことで、sage
厨な質問ですいません。

datagridオブジェクトは、貼り付けたフォームがロードされたとき、
1行分しか見えてませんよね。それを初期状態だとすると、
いったん何かデータを読み込んだものを、もう一度その状態に
戻すことは出来るのでしょうか?
943デフォルトの名無しさん:03/06/09 14:57
GetMetaFileBitsEx で lpvData に Null 又は 0 を指定しとるのだが
データを格納するために必要なバイト数というのが取得できん
予め大きなサイズを割り当てれば関数自体は成功するが後味悪い
やり方教えてくれ
944直リン:03/06/09 15:13
945デフォルトの名無しさん :03/06/09 15:28
質問です。

ホームページをアップするのに、
どこかの本を参考に下記のコードでやってますが、非常に遅いです。
いくつものファイルを転送するとかなりの時間がかかります。

FTPソフトで転送するととても早いのですが、
何か技があるのでしょうか?

. With objInet
.  .URL = "ftp://*********"
.  .UserName = "******"
.  .Password = "******"
.
.  .Execute , "CD ********"
.  Do While .StillExecuting = True
.    DoEvents
.  Loop
.
.  .Execute , "PUT index.html index.html"
.  Do While .StillExecuting = True
.    DoEvents
.  Loop
. End With
946デフォルトの名無しさん:03/06/09 16:02
DoEvents を全部コメントアウトしてやったらどう?
948デフォルトの名無しさん :03/06/09 16:06
>>946

これでいいんですか?
誤動作しません?

.  .Execute , "CD ********"
.  Do While .StillExecuting = True
.    ' DoEvents  'コメントにする
.  Loop
.
.  .Execute , "PUT index.html index.html"
.  Do While .StillExecuting = True
.    ' DoEvents   'コメントにする
.  Loop
950!
>>945
ファイルを転送するごとにログインしなおしとかしてない?
>>945
マルチスレッドにして5つくらい一気に平行してUPするようにしたらどうよ?
>>946
あんまり意味ないと思われ。むしろCPU使用率が増えて逆に遅くなる可能性も。

>>948
DoEventsで処理が割り込まれる可能性が無いから、こっちの方が誤動作しにくい。
ただし処理速度にはなんの影響も無いか少し遅くなるかも知れない。

.StillExecutngでグルグル待つやり方(ビジーウェイト)はやめて、StateChangedを
使った方法がいいと思う。プログラムの構造が大きく変わりそうで面倒なら、
せめてDoEventsの前に10ミリ秒ぐらいSleepを置いた方がいい。

でも遅い原因は他にあると思われる。
>>952
FTPサーバーにマルチでログインするつもりか?
955デフォルトの名無しさん:03/06/09 20:55
あまり有効なのはないのでしょうか?

FTPソフトだと問題ないのはなぜでしょう?

>>955
余計な処理が入っているからでしょう。
遅いって転送し始めるまで時間がかかるの?それとも転送速度が遅いの?
958デフォルトの名無しさん :03/06/09 21:27
>>957

はっきり調べてませんが
ひとつひとつの.ExecuteからDoEventsを抜けてくるのが遅いです。

ねむくなるスレだ
>>958
StateChanged方式に変えてみたら?
>>959
空回り?(w
962959:03/06/09 21:33
>>961
あっちはケンカがあってねむけがさめる
あっち・・・・あのスレか。
>>962
VB厨がVB厨と言われるゆえん。
Win32システムプログラミングぐらい読めよ。
>>959
あんた、こっちでそんな事言っていると煽りだといわれるぞ。
あっちでいえ。
966デフォルトの名無しさん :03/06/09 21:37
>>960

StateChanged方式を教えてください。
>>964
もういいよ。あっていでやれ。
これ以上ここに書きこするなら荒らしとみなす。
>>967
うぜーよ厨
>>967
もう来るな
>>966
途中まで出いいからやってから分からないことろを書いてね。
たぶんそれじゃレスつかないと思うけど。
あと無駄な空行いれてあげるのもやめたほうがいいよ。
偽者扱いされるのがオチだから。
971デフォルトの名無しさん:03/06/09 21:40
VB初心者スレを質問スレと勘違いして質問してしまいましたので
再度こちらで質問させて下さい。

ファイル名に今日の日付が入ったファイルを作成したいので、
日付から、例えば2003.06.09という文字列を作って
文字列の変数に入れたいのですが、
どのように書けばよろしいのでしょうか?
>>970
はい。がんばります。すみませんでした。
>>971
Format
>>972
駄レス消費すんなゃー?
>>971
Format$(Date(),"yyyy.mm.dd")
976デフォルトの名無しさん :03/06/09 21:45
>>970
StateChanged がなんだかもわかりません。
参考になるサイトを紹介していただければ、勉強してみます。
>>976
MSDNライブラリに書いてある。
>>971
プログラマ向いてない
なんかスレのびていると思ったら粘着煽り厨が出現してるのか。
980デフォルトの名無しさん :03/06/09 21:49
>>977
ありがとうございます。 ^^;
>>980
下げろ厨
埋めるぞコルァ!
983アシュル ◆adhRKFl5jU :03/06/10 08:45
ゴルァゴルァ
984アシュル ◆adhRKFl5jU :03/06/10 08:45
モララララララァ 
おまんこやりたい