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

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

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

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

MSDN Online Japan ホーム
http://www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6 正式リリース
http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
API 技術関連 - VBでのWin32APIのサンプル
http://homepage1.nifty.com/MADIA/vb/VBKANREN.htm
Google
http://www.google.co.jp/
※「まず自分で調べる」を身につけよう。

○VB以外の質問スレ
C++相談室 part33
http://pc5.2ch.net/test/read.cgi/tech/1090180012/
C++Builder相談室 Part10
http://pc5.2ch.net/test/read.cgi/tech/1089299158/
★初心者にVisual C++を教えるスレ★ Part13
http://pc5.2ch.net/test/read.cgi/tech/1089011118/
3
>>1


>>2
馬鹿(w
新スレオメコ
5デフォルトの名無しさん:04/08/19 20:48
質問です。
String型の文字のユニコード番号はどうやったら分かるのでしょうか。
番号<->文字の変換をやりたいと思っています。
>>5
strconv
7デフォルトの名無しさん:04/08/19 20:57
>>5
AscW
>>8
ありがとう!!
Text1 = Hex(AscW("漢"))
とやったら"6F22"と出ました。
10デフォルトの名無しさん:04/08/19 21:37
ちょこっとアンケート。

Debug.Print
って その時のデバッグが 終わった後、どうする?
1.コメントにする。
2.削除する。
3.そのままにしておく。
debug.printなんて使わないよ
>>10
3.そのままにしておく。

だって、コンパイルするときに関係なくなるじゃん。
EXEに対しては12さんの言うとおり。
実行モジュールの挙動には一切関係なし。

配布後の障害対応を考えたら残しておいたほうがいい。
はさむ場所ってのは、挟んだ理由があるんだから。
ソースの可読性は下がるかもしれないが、最初に何を調べてたとか証拠が残ると助かるときはある。
14天才男前バカボン:04/08/19 23:45
質問です。
同じフォームに、テキストボックスと
oracleに連結されているDateGrid があります。

テキストボックスに入力した値を、DateGridのセルに
入力したいのですが、どのようにしたらいいのですか?
DateGridのセルはDBと直接全て連結しています。

お願いなのだ、レレレのレ♪


 
15天才男前バカボン:04/08/19 23:46
上記と関連した質問ですが、
DBに連結されているDateGridの各列のデータ型を
分かる方法はあるのでしょうか?
>>10
1.コメントにする
条件コンパイルという手もあるけど、コメント化なら1行ですむ。
全置換で一発だし。
17デフォルトの名無しさん:04/08/20 00:57
Debug.Printって便利なんだけど悩むんだよねぇ。
いろいろ出力しすぎると わかんなくなるし、コメントにするとソースが
みずらくなるしさ。
みづらく
ついらく
>>16
それは良くないと思う。
(基本的にはありえないが・・・)置換ミスに対する試験が必要になるじゃない。
デバッカでテストしたモノと出力するEXEのソースが異なるってのは頂けない。
条件付コンパイルしなくてもDebugの部分は除外してくれるんだから、それに頼ればいい。

もし、コメントアウトしたり、Debug文を削るならば、厳密にはその後のソースで一度テスト必要ですね。
21デフォルトの名無しさん:04/08/20 10:55
すみません初歩的な事ですが教えてください。
VB5.0(97)なのですが、客先の環境にて開発環境では発生しない
エラーが出ていまして、解析の為、VB5.0をインストールさせてもらいました。
インストールが完了し、問題のプロジェクトを立ちあげると
フォームにてエラーログが発生し、コモンコントロール(ACTIVE X)
コンポーネントのライセンスがありません とおこられています。
デザインモードのライセンスが見つからないとの事なのですが
正常にプロジェクトがあがらず、再インストールしても改善されません
どなたかこのトラブル解決の糸口をご存知の方いらっしゃらないでしょうか?
おねがいします。
>21
エラーメッセージでぐぐれば類似事例多数
>>21
ヲイヲイ、客先のPCにインストールしちゃったの?
24デフォルトの名無しさん:04/08/20 11:21
フォームのイベント(またフォーム上のコントロールのイベント)で起きる例外を一括で処理したいのですが ON ERROR はどこに書けば良いですか?
フォームを Show する前に Sub Main で書いてもダメでした。(事前にロードしたりはしてません。)
フォームは Modal です。
>>21
よくあるパターンだな
26デフォルトの名無しさん:04/08/20 11:34
>>21
何か別に使ってるソフトをインストールしないとダメなんだな。
ま、そのためにログなどを出力する設計になってればいいのだが・・・。

>>20
やはり、そのまんまがいいのかねぇ。
デバッグの出力が多すぎると イミディエイトの画面がみづらくならない?
って それは出力のさせ方の問題かな。
>>24
多分できない。
あなたの目指しているのがつくり的に最悪なので、調べたり考えたりしたこともない。
MSDNでみる限り、エラー処理のスコープの説明から出来ないと思う。
>>26
不要になったDebugはコメントアウトしていいんじゃないの?

でも、その作業って他のDebug文でデバックしてるときだから、
まあ言えばそのコメントアウトのテストも兼ねられるじゃないですか。

>>20で指摘したのは、テスト完了時点でわざわざ外す必要はないということ。
29デフォルトの名無しさん:04/08/20 11:38
うむ
3121:04/08/20 12:10
ありがとうございます!!解決しました。サービスパックやランタイムのインストールで
既存のファイルがある場合、インストーラが上書きをしない仕組みだったのですね。
パッチツールでライセンスを書き込めそうです。ありがとうございました。
MSFlexGridで一度選択した場所の色(クリック時)が反転して
青色にかわりますよね?そのあとフォーカスが他へ飛んだら
どこのデータが選択されていたかわからなくなるので
フォーカスが戻った時に反転していたデータの場所の色を
青色にしたいのですが、そういうセレクト状態の命令を出す
プロパティってありますか?
33デフォルトの名無しさん:04/08/20 13:58
>>32
HighLightをねばーじゃだめなの?
85 名前: デフォルトの名無しさん 投稿日: 02/11/25 23:17
Debug.Print MsgBox("Msg")
これをEXEで実行してみそ。
http://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
VB6.0でタスクバーにドッキングさせるプログラムを作成する方法などを教えてくださいな。

BIGLOBEツールバーV3のタスクバー常駐機能みたいな感じのヤツ。
>>35
自力で何とかしてくださいな。
ウェブ上で個人情報などを入力するフォームがあって
それに数十人分を打ち込まなくてはならなくて、どうにか自動化できないかと思ったのですが、
webページにアクセスして、フォームに自動的にテキストやエクセルのデータを
入力していくようなものをVBで作りたいと考えています。
どのようにすれば、フォームに自動入力できるでしょうか?アドバイスをお願いします
>>35
個人を晒し上げてるようで気が引けるんだが、
http://intre.net/?ClockBar
の作者が過去に
http://www.google.co.jp/search?q=cache:zqtQdny4qOsJ:forums.belution.com/ja/vc/000/051/42s.shtml+%E3%82%BF%E3%82%B9%E3%82%AF%E3%83%90%E3%83%BC%E3%80%80%E4%B9%97%E3%81%9B%E3%82%8B&hl=ja
という質問をしています。(ただしリンク先は404
39デフォルトの名無しさん:04/08/20 21:10
現在有効になっているシリアル通信ポートを知る方法ってあります?

コンパネ→システム→ハードウェア→デバイスマネージャ(Win2000Pro)を開いた時に

ポート
- ECPプリンタポート (LPT1)
- 通信ポート (COM1)
- 通信ポート (COM2)
- 通信ポート (COM4)

とか出ますよね?
これだと、COM1、COM2、COM4が有効になってるわけですが

このCOM1、COM2、COM4が有効になっているのを取得したいわけです。
何か方法あります?
ウインドウを2つ以上同時に
アクティブにする方法をおしえてください。
できません。
>>40
PCを二台以上使って下さい。
質問です。

16進数を10進数に直すにはどうした処理をしたらよいでしょうか?
分かる方宜しくお願いします。
VBは6.0です。
>>43
Hex
>>44
Hexって10進数を16進数に変換するものじゃないですか?
その逆も出来ます?
>>43
16進表記された文字列を数値に変換したいなら
Val("&H" & Unko)
でもやってれば?
>>45
CLng("&h" & HexNum)

46のやり方だと3バイト以上対応していない。
質問です。説明うまくできませんがよろしくお願いします。

Format(A(I), "0.###0")
のようにすると、A(I)が小数点以下4桁で表されます。
しかし 例えば13.2と、1.32という数字があったとして、これを表示させるようにすると
13.2000
1.3200
と桁数がずれてしまいます。
これを
12.3000
1.2300
と1.23の前に空白を入れるようにはできませんか?

文字数を取得したりめんどくさいことしなきゃ無理なんでしょうか?

すいません 反角空白が省略されてうまく表示できませんでした・・・
>>37
WebBrowserコントロールを使って、
WebBrowser1.Document.forms("xxx").item("yyy").value = "zzz"

すでに開かれているIEの画面を使いたいならShDocVw.ShellWindowsを使え。
52デフォルトの名無しさん:04/08/21 11:35
VB6って中国語の入力とか表示って無理なのかな?
テキストボックスとかフォントを中国語に指定しても、入力すると文字確定した時点で化けてしまう
しまうのですけど。
53デフォルトの名無しさん:04/08/21 13:00
プログラム上で、Imageに画像を読み込ませるには、どうしたらいいのでしょうか?
54デフォルトの名無しさん:04/08/21 13:01
指定した文字列のファイルが存在するかどうか調べるには、どうしたらいいのでしょうか?
5537:04/08/21 13:12
>>50
ご指導ありがとうございます!
>>53
LoadPicture

>>54
Dir / FileAttr / FileLen / etc..
57デフォルトの名無しさん:04/08/21 13:24
>>56
ご指導ありがとうございます!
58デフォルトの名無しさん:04/08/21 19:00
リソースとして、JPEGファイルを取り込んだんですが
そのサイズが、250kBあるんです。

LoadResData関数では、64KBまでしかロードできないらしいのですが
どうしたらいいのでしょう。。。
よろしくお願いします。
59デフォルトの名無しさん:04/08/21 19:02
VB6でのclassの作り方が乗ってるページありませんか?
もしかして.NETでないとできません?
60デフォルトの名無しさん:04/08/21 19:02
画像加工してサイズ落としたら?
61デフォルトの名無しさん:04/08/21 19:07
>>60
ええーっ、そんな・・・。
画像、40枚あるんですよ。。。
62デフォルトの名無しさん:04/08/21 19:14
イミディエイトってどういう意味でえいと?
63デフォルトの名無しさん:04/08/21 19:37
>>60
http://homepage3.nifty.com/metis/contents/soft/chibisna/index.html
このソフトを使えば、一発で 40枚できるぞ。
ProgressBarの真ん中に現在の経過を % で表示してるヤツが作りたいんだけど...

TextOutで直接 文字を描画して出来たのですが
出来れば 反転色で文字を描画したいです

反転色の文字描画って どぉやんの?

環境
OS Win XP Home
VB6 Pro
>>64
自作してください
>>64
むかーしむかし、VB 2.0で自作した時は、BitBlt使った記憶があるが・・・
SetROP2 とか何とかあった気が…
6837:04/08/21 22:04
またまた質問なのですが、
以前教わったWebBrowserコントロールでいろいろ作ってみてます。
が、FormやらInputやらのあるWebページを開いたまではいいのですが、
うまく任意のテキストフィールドを選び出せません。
WebBrowser1.Decument.のあとのFormsやらItemやらElementやらの組み合わせがいまいち
うまくいきません。このあたりの指定方法が詳しく載っているサイトなどはないでしょうか?
もしくは簡単なご指導願えませんでしょうか?
7037:04/08/21 23:26
>>69
ありがとうございます! 参考にさせていただきます〜
なんか(時期的にも)夏休みの宿題教えてクンが涌いてきてる様な気がするのだが。
久しぶりにメモ帳(vbs)でプログラム作ったんだけど実行早々「エラー 行1 文字1 ステートメント
がありません。コード800A0400」と出ます。
今までこんな事無かった・・・誰か助けて
そういう時はね、質問するときに1行目とその付近のソースも一緒に提示するもんなんだよ。
スクリーン座標をクライアント座標に変換する方法を教えてください
Public Sub HotKeyProc()

ret = GetCursorPos(CurPos)
ret = ScreenToClient(Form1.hWnd, CurPos)
Text1.Text = "マウスの位置:" & _
Str(CurPos.x) & "," & Str(CurPos.y)

で上手くいきません。
スケール幅が3000に設定してあるんですが
x座標がフォームの左端で0,右端で250になってしまいます。
ご教授お願いします
>>75
PixelとTwipで比較してるとかいうオチじゃないか?
>>76
そうかもしれません^^;
Twipで表示させるにはどうすればいいですか?
7876:04/08/22 07:37
>>77
TwipX = CurPos.x * Screen.TwipsPerPixelX
TwipY = CurPos.y * Screen.TwipsPerPixelY
7975:04/08/22 07:42
>>76 >>78
!!!!!!
出来ました。ご親切にありがとうございます。
マウスの移動領域が制限されてるアプリケーションで
制限無しにしたいんですが
別のアプリケーションから"制限領域を指定しなおすor制限なしにする"ことはできますでしょうか?
方法を教えてください。
>>73
すいません 最初の二行です
<script language="VBSscript">
<!--
82デフォルトの名無しさん:04/08/22 11:04
>>81
修正
<script language="VBScript">
<!--
です。
83p2113-ipad04sasajima.aichi.ocn.ne.jp:04/08/22 11:09
219.162.213.113
8482:04/08/22 11:21
すいません 解決しました
最後に質問
INPUTBOXで入力情報を入れる場所を二箇所以上作ることは出来ますか?
>>84
できない、自作でダイアログを作れば?
86デフォルトの名無しさん:04/08/22 14:06
他の言語でよくある、メイン関数の戻り値ってどうするんでしょう?
例えば、
foo.exe arg1
の実行結果が0なら正常、マイナスだったら異常とかってしたいのですが
可能でしょうか?
ExitProcess
8886:04/08/22 15:28
>>87
ありがとうございます!
ExitProcessで検索したら下のが出てきました。

http://oshiete1.goo.ne.jp/kotaeru.php3?q=893097
F12で消去したいのですが、、、、
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

If KeyCode = vbKeyF12 Then
Text1.Text = ""

End Sub

なぜか消えてくれません。教えてください

>>89
Me.KeyPreview=Trueであるかどうか確認
9189:04/08/22 19:36
その通りでした。
ありがとうございます。
>>64
文字単位で反転するのは簡単だけど、ドット単位で反転させるのは面倒。
サンプルソースが見あたらなかったので、自作したことがある。
>>64
いまさらかもしれんけど、
文字を書いた上にShapeコントロールを反転(Xor)でおいてみたらうまくいかんか?
94デフォルトの名無しさん:04/08/23 00:24
ちょっと質問

例えばチャットソフトを作ったとして、Pluginみたいな感じで
お絵かき機能とか追加してみたいんだけど、やっぱ、そういうのって無謀?

よくPluginっていうと、DLLとかで、対応ファイルが増える
とか、そういう感じだと思うんだけど、機能まるごとの追加は無理かな?
>>94
できなくはない。
>>94
あたりまえの話だが、そのソフトの設計によるだろ。
無謀ではないと思うけど、VBでやるとめんどうだろうね>プラグインの部分
結局の話、データがどういう構造していて、どう流れるかってのがきちんと
定義されていれば、ソフトの作りは後でからどうにでもなると思う。
97デフォルトの名無しさん:04/08/23 00:56
Apacheみたいに全く新しい機能をプラグイン形式で追加できるものもあるから不可能じゃないな。
でもきちんとチャットソフトの方を設計しないと。
VBは動的なDLLの読み込みが難しいな
>>98
CreateObjectをうまく使えばVBだけで本体とプラグインの実現もできなくはない。
http://www.mentalis.org/apilist/BFE74A1901430F2637D60129E2B3C775.html
けっこう普通に動的にいけてるやん
>>100
工エエェェ(´д`)ェェエエ工
こんなん大丈夫なの?
WndProc渡すべきところにSetWindowTextA渡してるじゃん。
こんな使い方初めて見た。
>>101
それは SetWindowTextA の引数次第でしょ。
一般的な WndProc とコンパチブルなら問題無いワケで。
俺も>>101がなにをそんなに驚いているのかわからなかった。
10439:04/08/23 11:03
誰も答えてくれてない・・・シクシク。

こんなサイトを見つけました。
ttp://homepage1.nifty.com/MADIA/vb/vb_bbs2/200208_02080004.html
順次COMポートを開きエラーが起きればそのポートは無効、
無事開ければそのポートは有効にする方法で上手くいくみたいです。

さっき検索して自己解決しました。
それにしてもResume Nextを使うのか・・・もっとスマートな方法はないものか。
105デフォルトの名無しさん:04/08/23 11:47
VB6で、MDIフォームを使っています。
作ったアプリのメニューバーを操作するときに左右の矢印キーを押していくと、
MDIフォームのメニューの「元のサイズに戻す」、「移動」、「最小化」、「閉じる」
が表示されます。
それを表示しない方法ってありますか?
OutlookExpressや他のアプリではならないのに・・・。
かっこ悪いです。
>>105
OutlookExplessはそもそもMDIじゃねぇ。
正真正銘MDIのExcelやAcrobat Readerはそういう挙動をするから試してみな。
>>105
MDIに限らず普通のメニューバー使っているアプリだったら、
全部そうなっているっぽいぞ。
むしろこれができないと、キーボード操作だけでウィンドウの位置を
変えたりができなくなるんじゃないの?
>>107
Alt + Space
>>108 そうか...

>>105
多分これって、Windowsの標準の動作なんじゃないの?
やるとすれば、サブクラス化してWM_MENUSELECTあたりのメッセージで
何とかするとか。
ただ、タスクバーボタンの右クリックで出したシステムメニューと区別できるのか
知らんけど。

あとOutlook ExpressとかIEのメニューって
Spy++で見ればわかるけど、実はツールバーなので、
http://www.kumei.ne.jp/c_lang/sdk4/sdk_311.htm
みたいに頑張ってつくるか、
市販のコントロールを探して買うとかすればいいと思う。
110デフォルトの名無しさん:04/08/23 13:46
Functionがたくさんあるのですが、その中で Function名をそれぞれ出したいのですが、
いちいちFunction名をそれぞれに書いていくのが大変なので、Function内で
そのFunctionのFunction名を取得できるものがあったら教えて下さい。
111質問3回目:04/08/23 13:56
フォームを移動させたときに
ピクチャーの中心の位置を表示させたいのですが

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
TwipX = Form1.Left + Picture1.Left + Picture1.Width / 2
TwipY = Form1.Left + Picture1.Top + Picture1.Height / 2
Label3.Caption = Val(TwipX) & " , " & Val(TwipY)
End Sub

でうまくいきません。(ドラッグアンドドロップした瞬間に表示がかわらない)
他に方法はありませんか?教えてくださいorz
112デフォルトの名無しさん:04/08/23 13:57
>>106-109
今の自分には難しそうですね。 orz
完成したあと、実装を考えてみます。
ありがとうございました。 m(_ _)m
ダイアログのボタンにマウスカーソルが自動的に飛ぶ機能が
インテリポイントとかにあるけど
VBで自前で作ったダイアログだとカーソルが飛ばないんだけど
どうしたら飛ぶようになるかなぁ?
>>111
Timerコントロールを使う。
> TwipY = Form1.Left + Picture1.Top + Picture1.Height / 2
の行を修正する。
115111:04/08/23 15:18
>114
ありがとうございます。うまくいきました
が、なぜか微妙に位置がずれてしまいます。
クライアント座標とスクリーン座標、twipsとpixel、Scale付きと無し
この辺の問題なんでしょうか?
教えてください。。。。
>>110
アドイン(アドオン)で半自動的にコードを挿入させて対応するしか。
またはマクロが使えるエディタを使ってみるとか。
>>113
その機能がどうやって動いているかを考える。
  1.アクティブなウィンドウのハンドルを得る
  2.そのウィンドウの子ウィンドウを検索
  3.クラス名が"Button"でテキストが"OK"、かつ非表示でないか評価
きっとこんな感じかと。Spy++で確認すれば分かるように、
VBで作られるボタンのクラス名は"ThunderCommandButton"(プ
なのできっとカーソルが飛ばないんだと思うよ。漏れの手には負えないから、あとは自分で考えてネ(はぁと
>>115
こんなんでどうかな?
理屈はソース見て考えておくれ。
Dim TwipX As Single
Dim TwipY As Single
Dim MarginLeft As Single
Dim MarginTop As Single
MarginLeft = (Me.Width - Me.ScaleWidth) / 2
MarginTop = Me.Height - Me.ScaleHeight - MarginLeft
TwipX = Me.Left + MarginLeft + Picture1.Left + (Picture1.Width - Screen.TwipsPerPixelX) / 2
TwipY = Me.Top + MarginTop + Picture1.Top + (Picture1.Height - Screen.TwipsPerPixelY) / 2
119111:04/08/23 15:47
説明不足でした。
ずれるというのは
  ret = GetCursorPos(CurPos)
TwipX = CurPos.x * Screen.TwipsPerPixelX
TwipY = CurPos.y * Screen.TwipsPerPixelY
Label3.Caption = TwipX & " , " & TwipY

でpicture中央にカーソルを合わせたときと

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
TwipX = Form1.Left + Picture1.Left + Picture1.Width / 2
TwipY = Form1.Top + Picture1.Top + Picture1.Height / 2
Label3.Caption = TwipX & " , " & TwipY
End Sub

で300くらい縦にずれるということです
120111:04/08/23 15:56
>>118
凄い!!!!
助かりました。理屈はわからないけど・・・w
>>117
手に負える神はおらぬか?(漏れの手にもおえない
>>113
ダイアログの Form_Activate イベント中に SetCursorPos (API)でマウスをボタンの上に移動すれば良いだけじゃ?
ボタンの中心位置の取得は>>118を参考。
123デフォルトの名無しさん:04/08/23 17:16
VB6でHTTPチェックツールを作っています。HTMLファイルはあるが、移転したと予想されるHPの判別をするにはどうすればいいでしょうか?よろしくお願いし
ます。
>>122
いやいや、ええと、インテリポイントのオプションで自動移動をチェックしてる人だけ
インテリポイントの機能で移動するようにしたいの。
というのも、MsgBoxでボタンが2つ以上あるときは自動移動するんだよね。
だから、なんかボタンに設定すれば反応してくれるのかなって思ったんだけど
DefaultButtonとかじゃ何にもならないしなぁ。
いろんなダイアログボックスでボタンに自動移動してくれるんだけど
自作のフォームはちゃんとフォームを固定ダイアログにしてるのに行かないなぁ。
125デフォルトの名無しさん:04/08/23 17:49
別スレからこちらへ誘導されました。宜しくお願いします。

VisualBasic6.0でExcelブックの内容を読み込む処理をしているのですが、
Excelブックを開くときに、
「オートメーション操作中にファイル名またはクラス名を見つけられませんでした。(Error 432)」
というエラーが出ます。
デバッグで1行ずつ実行すると上記のようなメッセージは出ないのですが、
exeファイルを実行するとメッセージが出ます。
原因と対応策を有識者の方、お願いします。
126デフォルトの名無しさん:04/08/23 17:59
>>123

そのHTMLファイルを取得して、その中に移転関係の単語がないか
調べる。あれば、移転とみなす。
127デフォルトの名無しさん:04/08/23 18:13
MSFlexGridで、セルの内容が更新されたかどうか調べるには、どうしたらいいのでしょうか?
128デフォルトの名無しさん:04/08/23 18:17
>>125
参照設定で、Microsoft Excel 9.0 Object Library を入れて

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = CreateObject("Excel.Application")

'この状態で起動した場合マクロの警告は表示されません。
'以下の2行が(その1)との相違部分です
Set xlBook = xlApp.Workbooks.Open("file.xls") 'オープンするファイル名
Set xlSheet = xlBook.Worksheets(1) '最初のシートに書き込み
'          Worksheets(Sheet1等のシート名でも可)

xlApp.Visible = False 'Excelを表示

' たて よこ
xlSheet.Cells(5, 5).Value = Left(Now, 10) 'セルに値を入力
xlSheet.Cells(6, 5).Value = "34"
xlSheet.SaveAs "file.xls" 'ファイルを保存
' xlApp.Workbooks("file.xls").Close SaveChanges:=True
'終了処理
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing

とかやってもダメ?
129会社から:04/08/23 18:57
こんばんは。
VBで明細行を作成しています。
VBでスクロールバーとIndexを使って、無限に明細を発生させる方法(ACCESSの明細行)
をご存知の方、よろしければ教えてください。
>>102-103

引数が違うものをコールバックすると意図しない個所が破壊されると思い込んでたんだけど、
もしかしてそんなこと無いのか?
______________________________________
            .   。oO
           (´-`)
131デフォルトの名無しさん:04/08/23 19:10
>>129

意味がわかんねぇ。
発生させるって何だ?
無限って何だ? 無限に発生させて あふれないのか?
132125:04/08/23 20:09
自己解決しました。
ありがとうございました。
133デフォルトの名無しさん:04/08/23 20:13
>>132
で、理由は何でした?
134125:04/08/23 20:13
>>128
レスしてくださり、ありがとうございます。
リロードしないで書き込んでしまいました_| ̄|○
すみません。
開きたいエクセルファイルの格納場所を
ネットワーク経由で設定してしまっていました。

あと、開こうとするファイルにマクロが含まれている場合、
メッセージボックスが表示されていました。
(感)参考にさせていただきます(謝)
13564:04/08/23 21:34
>>93 できた サンクス
Dim i as integer

Private i as integer

どうやって使い分ければいいでしょうか?
>>136
オブジェクトとかインターフェースとかキーワードに調べてみればなんとなく分かるかも。
あとはiというグローバル変数を作ってないのを祈るのみ。
>>130
CallWindowProcで関数呼び出すってテクはかなり昔からあるよ。
配列とかに(機械語の)コードを入れて、それを実行するときにも使える。
まぁ行儀のいいもんじゃないけど、ファームとかやってると
そっちの方が解りやすかったりするんだよなw
>>138
( ゚-゚).。oO(情報サンクス。そんなことが出来るんですか。世界は広いな)
>>138
Athlon64とXPSP2で動かなくなりそう
141質問4回目:04/08/23 23:48
他のアプリケーション上で
一定間隔で特定のキーを入力するような命令はかけますでしょうか
教えてください。
keybd_event
143質問4回目:04/08/24 01:06
Private Sub Text1_GotFocus()

Call keybd_event(CByte(A), 0, 0, 0)
Call keybd_event(CByte(A), 0, KEYEVENTF_KEYUP, 0)

End Sub

win32APIは宣言してあります。
調べて書いてみたんですが、文字が書き込まれません。
どこがまずいのでしょうか?
144質問4回目:04/08/24 09:12
143解決しました
VK_Aなどとするんですね。
ところで他アプリケーションにキーを送りたいのですが
メモ帳などには送れるんですが
目的のゲームには送れないです。
遠隔的にキー操作ができないような仕様になってるのでしょうか。。。
何か方法があったら教えていただきたいです。
↑こういう人の神経って理解できんわ本当。
そんなもん浜の真砂ほどもあるVBのTips系のサイトには
たいてい出てると思うんだけど。

ここは2chにしか繋がらないインターネットですね、って環境なら納得するが。(嫌味
>>144
最近のゲームは大概DirectInputを使っています。
147デフォルトの名無しさん:04/08/24 16:31
VB6.0でAPIを使おうとしているのですが、
APIを呼ぶときに引数の最終文字をNullにしたいのですが
どうしたらいいのでしょうか?


Public Declare Function APIName Lib "DLLname" _
(Param As string) As Long

こんな感じでAPINameというAPIを呼び出したい場合に
引数のParamの最終文字をNullにする必要があるのですが
どうしてもうまくいきません。
148デフォルトの名無しさん:04/08/24 16:39
Param = Param & chr(0)

'テキトー
>>147
別にナル文字を自分つけなくてもVBが勝手にやってくれる。
うまくいかないのはたぶんByValがないから。
150デフォルトの名無しさん:04/08/24 17:04
>>148

ありがとうございました。
うまくいきました。

>>149
回答ありがとうございます。
せっかくですが
この引数はアドレス渡しだったので
うまくいきませんでした。
>>150
Declare宣言したプロシージャに文字列渡すときはByValで文字列へのポインタ渡すはずなんだけど…?
ポポインタを渡す関数かな?
152デフォルトの名無しさん:04/08/24 18:02
MDIを用いてるのですが、中で表示しているMDI Formの位置やサイズにより
ツールバーが表示されなくなる場合があります。
どうしたら、常に表示するようにできるのでしょうか?
>>151
BSTRで受け撮る場合はByRef、char* で受け取る場合はByVal。
>>150

>>148と同じだが
Param = Param & vbNullChar
でもOK。
定数vbNullCharとChr(0)は等価
VB6でプログラムを作っています。
急にフォームの左上隅に画像が表示されるようになってしまいました。orz
http://sterdust.net/upload/upload.cgi?page=Download&dir=&sort=date&filename=aak.jpg
どうしたら、消えるでしょうか?
よろしくお願いします。
塩を四隅に置くとか、オフダをCRTの裏に張るとか・・・
157155:04/08/24 23:08
>>156
マジレスきぼんぬです。。。
>>155
なんか起動したときにこのアイコンがクリップボード占領しやがるんだよね。VBだっけか。
ま、きっとプロパティシート上のFormオブジェクトのPictureプロパティの欄でDelete押せば直るさ
159155:04/08/24 23:38
>>158
き、き、き、き、消えました!
本当に泣きそうだったんですよ。
ありがとうございました。 m(_ _)m
CのDLLからVBのEXEにPostMessageを送る場合
VBのEXEがアクティブになっている場合は正常なんですが
アクティブでない場合にPostMessageを受け取れないようなんですが
なにかここらへんの事を詳しく書いてあるHPとかありませんか?
教えてください。

ACCESSに直結してるテキストボックスなのですが
AとBの入力項目があり(それぞれ時間を入力)
テーブルにはA〜Bと1つにまとまって落ちる仕組みになっています。
これを別のフォームにAとB、別々に表示させるにはどうしたら良いでしょうか?
ASPでDoeventsみたいなloopを軽くする工夫はどうやるのでしょうか?
ASPスレでは何年も回答が現れてません
>162
DoEvents的な手法はない。
ASP(つーかサーバサイドVBScript)の仕組みを理解すれば分かる。
Loop系の負荷を軽減するには設計かアルゴリズムで何とかするしかない。
ASP.NETがどうだかは知らん。
164デフォルトの名無しさん:04/08/25 14:59
VBプログラムの中から、ファイルをCVSにコミットしたりする方法しりません?
>>164
Shell関数とか
166164:04/08/25 15:18
やっぱしShellかー
SellExecuteとかSendMessageとか
VB6で使えるHTMLパーサーを誰かご存知でしたら教えてください。
HTMLの解析だけ行いたいのでIEコンポーネントは使いたくないのです。
169デフォルトの名無しさん:04/08/25 16:15
質問です。
ピクチャボックス等にraw画像を表示させたいのですが、
買ってきたVB本をみても、サポートされてないことが分かるだけで
どのように表示させればいいのか分かりません。
ググったところ、rawでなくTIFFについては書いてあったのですが…。

もしかしたら基本的なことすぎてどこにも書いてないのでしょうか?
サポートされていない画像形式の表示はどのようにするのかどなたか教えてください。
>>169
・・・RAW画像ねぇ・・・はつみみです:)
VBが対応していないのならご自分で読み込み->表示の処理を書くほかありません。
もしくはコンバータがすでに存在するのであれば、バックグラウンドで走らせて読み込むなりしましょう。
172デフォルトの名無しさん:04/08/25 18:39
>>171
レスありがとうございます。

Raw画像というのは結局のところ、バイナリの8ビット輝度値がずらっと並んでいる
全く加工されていないデータなので、
1pixelごとバイナリで読み込んで書かせるようにしようとすればできないことはないんですが、
Pset()メソッド?でやると、描画に時間がかかりすぎたり、ハングアップしたりして
使い物にならないんです(やってみたところハングアップしました)。何かほかの記述法はないでしょうか
>>172
描画はAPIで書くと速度が速くなるし、DIBでやるもよし。
174デフォルトの名無しさん:04/08/25 18:46
>>173
ありがとうございます!
APIですか?
今検索かけたところ、GetPixel,SetPixelというのがありました。
とりあえず、これでやってみてみます。

助かりました。ありがとうございました。
DIB操作はこのページが分かりやすかったな。絵はアレだけど。ただしソースが一部間違ってた気がしたんで、要注意。
別に速度を求めないのなら、GetPixel,SetPixelVでもいいけどね。
ttp://www.mhl.janis.or.jp/~imai/Old/documents/getpx.html
>>174
SetPixelだと状況あんまり変わらないと思う。
RAWをDIBに変換してから描画のほうが確実で応用利くよ。
VBでやるとめんどくさいと思うが。

ttp://black.sakura.ne.jp/~third/system/winapi/win121.html
177デフォルトの名無しさん:04/08/25 19:00
MDIフォームの中の一つのフォームの画面をキャプチャするには、どうしたらいいのでしょうか?
178デフォルトの名無しさん:04/08/25 19:11
>>175-176
続けて検索かけてたら、setpixelは激遅という記述をみつけて
がっかりしてました。。

DIBにします。
ご丁寧にURLまで教えていただき感謝します。
rawをDIBに変換してから描画というのは、つまりビットマップに変換してから
ということですよね。それにチャレンジしたいと思います。
179デフォルトの名無しさん:04/08/25 19:38
>>177
form.hwnd
180デフォルトの名無しさん:04/08/26 00:53
vbでキーストロークとか感知できる?
181デフォルトの名無しさん:04/08/26 00:58
ちょっと質問

例えば実行時にリストボックスをリサイズしたい場合
(フォームに合わせてサイズ変更じゃなくて、フォーム上でリストボックスだけリサイズ場合)
やっぱり、自分でカリカリコードを書かないとだめでしょうか?

細長いピクチャボックスのMouseMoveイベント使って
無理矢理実現することはできたんですが
もっとスマートな方法があったら知りたいです。
>>181
フォームに配置すれば自動的にサイズ変更してくれるようになるコントロールでも
探してるのかと思うけど、たしかそういうのは無かったはず。

スプリットバーのサンプルを参考に作ったんだよね?その処理をクラスに押し込んで、
フォームに1〜2行程度の初期化処理書いて終りにさせることはできるけど。部品の参照
もらってWithEventsで色々やる方法で。
まあ、これだと自分でコードをカリカリ書くのには変わりないんだが、使いまわしはできる
ようにはなるかな。

それか、既製品を買ってくるか、フリーのコントロール探すか、自分でコントロール作るか。
http://www.roguewave.com/products/stingray/
>>180
KeyDown ?

>>181
ウインドウスタイルをいじったりWM_NCHITTESTメッセージでごにょごにょすればできたような気もする
184152:04/08/26 09:37
MDIの中に 3つほど子のFormを表示したとき、そのうちの一つをアクティブにすると
親のFormのツールバーが表示されることが わかりました。

他の子のFormをアクティブにすると ツールバーが消えてしまいます。
どうしたら、消えないようにできるでしょうか?
>>152
再現できないなぁ、環境も書いてくれ。
こっちは
Windows Xp
Visual Basic 6.0
ツールバー Microsoft Windows Common Controls 6.0 (SP4)

ちなみに、ツールバーはMDIに張ってあるんだよね?
>>184
NegotiateToolbars とかそのへんはどうなってる?
187152:04/08/26 10:50
>>185,186

ツールバーが表示されない画面は、右クリック用にメニューが
設定されていたのが わかりました。

この場合、どうしたら表示されるのでしょうか?

>NegotiateToolbars とかそのへんはどうなってる?
Trueです。
VBで通常使用するプリンタの設定チェックを制御したいんですが。
可能でしょうか?
方法のヒントを教えてください。
189152:04/08/26 11:20
NegotiateMenus を False にしても 親のツールバーが表示されませんでした。
なんだ勘違い。
消えるのはメニューバーね?
その場合はポップアップメニューをMDI側に置き、
子MDIフォームでそれを呼び出すようにすれば良い。
子MDIにはメニューの設定をしない。
191デフォルトの名無しさん:04/08/26 11:34
Ver:VB6 保存データをエクセルとして住所録を作ろうと思っています。データコントロールを使って検索機能を付けるとしたら、エクセルを読み込んで各項目づつ検索するしかないでしょうか?アドバイスお願いします。
192152:04/08/26 11:36
>>190

サンクス。
親にすべてメニューを持たせれば よかったんですね。
思いつかなかった。
193デフォルトの名無しさん:04/08/26 13:39
Private Sub Form_Unload(Cancel As Integer)

ここの Cancelの値の内容を どなたか教えて下さい。
>>193
Cancel に 0 以外の値値を入れてサブルーチンを終了するとアンロードがキャンセルされます。
195177:04/08/26 15:11
画面のキャプチャ自体どすうればいいのでしょうか?

あと、そのキャプチャしたある範囲だけ白黒を反転させたいのですが、
そのようなことはできるのでしょうか?
196デフォルトの名無しさん:04/08/26 15:19
bmpファイルを印刷するには、どうしたらいいのでしょうか?
また、ヘッダーとかフッターとかつけられるのでしょうか?

プリンタドライバがインストールされていないとかは
どうしたらわかるのでしょうか?
また、プリンタの状態(電源が入ってないとか、用紙切れとか)は
わかるのでしょうか?
197177:04/08/26 15:23
白黒反転は、別のところでやるのでいいです。

MDIの子フォームだけをキャプチャする方法を教えて下さい。
198177:04/08/26 15:35
PrintScreenなどのキーを押すことにより
キャプチャすると 不要な個所までキャプチャされてしまいます。

それは 避けたいのです。
199デフォルトの名無しさん:04/08/26 15:43
別のフォームのテキストボックスから値(文字列)を取得する際、

(フォーム名)!(テキストボックス名)

とソースにあったのですが、この”!”にはどういう意味があるのですか?

(フォーム名).(テキストボックス名)

でもいいと思うのですが、知っている方がおられましたら教えてください。
VB6買ったんですけど何をすれば分かりません。
誰か教えてください
>>200
次にする事は、VB.NETを買いにいけ。
>>199
16bit時代のVBの名残かと。当時フォーム部品の参照には"."ではなく"!"を使うようにMSが奨励していた.。(うろおぼえ)
REMとかLet A=B(ただの代入式)とかも最近は見かけないね。
>>200
インストール、はがきを送る
203デフォルトの名無しさん:04/08/26 16:21
>>202
そういうことですか。ありがとうございましたm(_ _)m 実はVB4のソースで、"."となっていた為にメモリ不足となって
意味がわからず困っていたのでした。
>>195
CreateCompatibleDC, CreateCompatibleBitmap, SelectObject, BitBlt
InvertRect, InvertRgn

>>197
GetWindowPos, ClientToScreen

このあたりのAPIをいろいろやればできるはず。

>>198
Alt+PrintScreen
>>204
> Alt+PrintScreen
はMDIフォームも一緒にコピーされるやん。
206デフォルトの名無しさん:04/08/26 17:50
>>204

それだけでは わからん。
>>206
ならばあきらめろ。
208デフォルトの名無しさん:04/08/26 18:25
http://support.microsoft.com/default.aspx?scid=kb;ja;161299
を参考にやってみて、単体だとうまくいくのですが、

自分で作ったアプリに組み込むと

Set CreateBitmapPicture = IPic

の個所で型が一致しませんとか エラーが出ます。
なぜなんでしょうか?
209デフォルトの名無しさん:04/08/26 19:32
アプリケーションプロセスメッセージってどうやって出すんですか?
>>208
どっかで失敗してるんだろ。
211デフォルトの名無しさん:04/08/26 21:28
As Picture
って型宣言しているけど そんなのあるの?
>>211
LoadPictureの戻り値なんかがそれだ。
普通にヘルプに載ってるぞ。
213デフォルトの名無しさん:04/08/27 06:43
あ、As IPicture のほうだな。
こっちは どういうの?
214デフォルトの名無しさん:04/08/27 09:13
VBでoffice文書をmht形式に変換って可能?
もしくはOffice文書→htm→mhtの流れ。

エロいひと教えてください。
215デフォルトの名無しさん:04/08/27 09:42
ファイルをオフィスで開いて、保存するときに htmとすると
htmとなるかも。
>>215
ただし中身はとてもHTMLとは思えない罠。
217デフォルトの名無しさん:04/08/27 10:04
>>216
一応、中身もHTMLだぞ。
見られたもんじゃないけどな(w
218デフォルトの名無しさん:04/08/27 16:06
初歩的な質問ですいません。

 VBでプロシージャ内で宣言するローカルな静的変数の初期値を
 設定する方法を教えて下さい。
>>217
例えばWordでgifとか貼り付けたときに、「ファイル名.file」ができる。
Office2kとかだと、mhtmlにしても、「ファイル名.file」フォルダを包括できない。
だから「ファイル名.file」消しちゃうとmhtmlがちゃんと表示できない。

これが解決できる人はいませんか?
消さなければいい
221デフォルトの名無しさん:04/08/27 16:24
age
222デフォルトの名無しさん:04/08/27 16:27
>>218

Dim A as String
A = ""


Dim A as String : A = ""

の好きなほうを選べw

223デフォルトの名無しさん:04/08/27 16:32
>>222
ありがとうございます。

静的変数の初期値の設定なのですが、これだとプロシージャを呼ぶたびに
初期化してしまいませんか?
Static Initialized As Boolean
Dim Hoge As String

If Not Initialized Then
 Hoge = "HAGE"
 Initialized = True
End If
>>224
Dim Hage で宣言してどうするんだよとセルフツッコミ
226デフォルトの名無しさん:04/08/27 16:51
>静的変数の初期値の設定なのですが、これだとプロシージャを呼ぶたびに
初期化してしまいませんか?

あ〜た〜り〜ま〜え〜じ〜ゃ
>>220
使えねぇヤシだな
228デフォルトの名無しさん:04/08/27 17:37
>>227

そんな使えないやつを使うのではなく、オマエがやればいい。
>>228
ハァ?なに言ってんだおまえ
230デフォルトの名無しさん:04/08/27 18:19
時間待ちをしたいのですが、

Public Sub Wait(Interval As Long) 'ウェイト処理
Dim stime As Single, ntime As Single
stime = Timer '開始時刻
ntime = stime + Interval / 1000 '終了時刻
Do While Timer < ntime
DoEvents 'ウィンドウズに制御を返す
If Timer < stime Then Exit Do '時刻リセットへの対処
Loop
End Sub

というふうにすると 0時を はさむとき、おかしくなります。
0時をはさんでも大丈夫なようにするには、どうしたらいいでしょうか?
If ntime > 86400 Then
Private Sub Wait(Interval As Long) 'ウェイト処理
Dim stime As Single, ntime As Single
Dim dtime As Single
stime = Timer '開始時刻
ntime = stime + Interval / 1000 '終了時刻
Do
DoEvents 'ウィンドウズに制御を返す
dtime = ntime - Timer
If (dtime >= 86400) Then
dtime = dtime - 86400
End If
Loop While (dtime >= 0)
End Sub
233デフォルトの名無しさん:04/08/27 19:27
>>232

Time = "23:59:59"
Call Wait(50000)

こうすると 一日ループする。
残念ながら失格!
234デフォルトの名無しさん:04/08/27 20:16
>>232

dtime = dtime - 86400 を
ntime = dtime - 86400 に変えればOK
>>230
おいおい、そんなことの解決法って自分のこと振り返って考えても
小学校4年生ぐらいでも思いつきそうなもんだが。。

釣りじゃないならかなり惨めだと思われる。
236デフォルトの名無しさん:04/08/27 23:34
VBで指定ファイルからDBテーブルにレコード追加するプログラム(Insert.exe)を作りました。
このプログラムは引数にファイルパスをつけて起動し、フォームにはファイル名と
プログレスバーを表示して、コントロールは一切ありません。
ファイル中の全てのデータを登録したら自動的に終了します。

次に別のVBプログラム(oya.exe)からこのInsert.exeをshell関数で起動させると、
Insert.exeの処理が全て終わるまで次の処理に進みません。

いろいろいじって調べると、Insert.exeのForm_Loadを抜けないとoya.exe中のshell関数
へ処理が戻ってこないようです。
今はForm_Loadの中で登録処理ルーチンをコールしてますが、Form_Loadを抜けて自動的に
登録処理ルーチンを走らせるにはどうしたらいいでしょうか?ボタンイベント等の人の手による作業は
発生させたくありません。

Win2000 VB6.0 です。
237デフォルトの名無しさん:04/08/28 00:20
WinSockコントロールを使って不安定になることとかって普通ないよね?
なんか、下みたいなソース書いたら、たまーに不安定になることがあって
現象をうまく再現することができず、原因を特定できませぬorz

送信側
 ・コマンドを送る
 ・コマンドは、コマンド番号(2byte) パケット長(2byte) データ(nbyte)

受信側

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private mTcpBuf() As Byte
Private mTcpBufPos As Long
Private mPacketSize() As Long

Private Sub tcpWinSock_DataArrival(ByVal bytesTotal As Long)

Dim ReceivePacket As clsPacket
Dim Buf() As Byte, PacketSize As Long

tcpWinSock.GetData Buf, vbByte

238デフォルトの名無しさん:04/08/28 00:20
ReDim Preserve mTcpBuf(mTcpBufPos + UBound(Buf))
CopyMemory mTcpBuf(mTcpBufPos), Buf(0), UBound(Buf) + 1
mTcpBufPos = mTcpBufPos + UBound(Buf) + 1

Do While mTcpBufPos > 2
PacketSize = mTcpBuf(2) + mTcpBuf(3) * &H100
If PacketSize <= mTcpBufPos Then

ReDim Buf(PacketSize - 1)
CopyMemory Buf(0), mTcpBuf(0), PacketSize
If mTcpBufPos <> PacketSize Then
CopyMemory mTcpBuf(0), mTcpBuf(PacketSize), mTcpBufPos - PacketSize
End If
mTcpBufPos = mTcpBufPos - PacketSize
ReDim Preserve mTcpBuf(mTcpBufPos)

Set ReceivePacket = New clsPacket
ReceivePacket.SetPacket Buf
'ReceivePacketに関する処理
Erase Buf
Else
Exit Do
End If
Loop

End Sub

さーっと見て、おかしいところがあったら教えて欲しいなり
>>237
不安定の明細は無しかよ
240デフォルトの名無しさん:04/08/28 00:31
バッファにどんどん溜まってるときがあるような気がする。
つまり、mTcpBufの先頭が、パケットの先頭でなくなってしまうときがあって
それで、そのあとがずっと処理されない、みたいなときがあるきがします。

他の原因もあるかもしれないんですけど。
&書かなきゃいけないところに+書いてるとか?
全然わかんね。
>>236

Private Sub Form_Load()
 Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
 Timer1.Enabled = False
 Call 登録処理ルーチン()
End Sub
243デフォルトの名無しさん:04/08/28 08:30
VB6とWin2kを使っています。
どうにもイミディエイトウィンドウが使いにくいのでdebug.printの内容を別ウィンドウに表示したいです。
そういうツールか方法をご存じありませんか?
お願いします。
244236:04/08/28 09:12
>>242

なるほど、タイマーですね。ありがとうございます。

でも、VBってForm_Loadで長時間働いていても、
そこを抜けない限りシステムに「起動したよ」って知らせ
ないんですかね。ちょっと不思議。
>>243
Appオブジェクトにログ出力の機能があったような。
あとは自分で別フォームなりテキストファイルなりメモ帳なりに出力させる。

>>244
WaitForInputIdleで待っているんだろうか。
最初のForm_Loadが終わるまで初期化が完了していない扱いなんじゃないかと。
246236:04/08/28 10:36
例えば、今回のケースや解凍ツール等の全自動処理のプログラムでは
フォームの初期化を一旦終わらせてからメイン処理に移るときに、
タイマーイベントを使うのは常套手段なんでしょうか?

ただ、処理をして終わるだけのプログラムの構造としては
なんだか回りくどい印象を受けます。
イベント駆動型の言語だから仕方ないのかな。

興味を持ったのでネットで調べても、そのようなテクニックは
見つけられませんでした。皆さんもそうやって作っているんでしょうか。

247デフォルトの名無しさん:04/08/28 10:42
WinXP VB5.0

AというフォルダをコピーしてBというフォルダを作ります。
Bフォルダのプロジェクトを開いてプログラムを作成したあと
プロジェクトの上書き保存をします。
このとき変更したフォームがBフォルダ内では更新されずAフォルダ
のみで更新されます。
しかし、Bフォルダのプロジェクトを開いてコンパイルしても正常に
されるのですが、何故なのでしょうか?
>>246
Form_Activateで処理すれば?
>>247
.vbpファイルをテキストエディタで開いて
フルパスで指定されているところを直しましょう。
>>246
試してはいないけど、Sub Mainをスタートアップにして
その中でフォームを表示してから処理するようにしたらどうだろう?
251246:04/08/28 11:01
>>248
これだと何回も処理が発生するのでは?
そか、フラグで判断して最初だけ処理すればいけますね。
今度試してみます。

>>250
実はそれも試したのですが、Sub Mainが終わらないと
呼び出し元のshell関数には処理が戻ってきませんでした。
Sub Mainも初期化扱いなのかも知れません。
252247:04/08/28 11:05
質問の続きなのですが、
Bフォルダのプロジェクトを開きプロジェクトエクスプローラ上で
すべてのフォームとモジュールをBフォルダに上書き保存し、
プロジェクトに保存しました。
その後Bフォルダのプロジェクトを開くとエラーが出てしまい、
VBが落ちます。これは何故なのでしょうか?
パスを直せばなおるのでしょうか?
>>252
エラーの内容もかかずに
254247:04/08/28 11:25
申し訳ありません。
エラーの内容ですが、「問題が発生したために終了します」と
出てエラー内容を送信する画面がでます。
>>251
プロジェクト内の別フォームだと何回もActivateが発生するけど、
この場合は大丈夫だと思う。
>>247
たぶんこの中に対策が見つかると思う。
いや、単純に答えを教えるのは簡単だが、今後のこともあるだろうから。
http://www.vbasekai.com/mssp/vb5-6.html
>>251
VBだとあまり無いかもしれないが、WM_USERなんかを使ってPostMessageで
処理を登録する(溜まっているメッセージを処理させた後に目的の処理を起動する)
のはよくある話だと思う。
VBだとサブクラス化しないとWM_USER使えなかったはずだから、Timerで代用する
という手段は、けっこう常套手段じゃないかな。
Shell関数だけで非同期で起動させるのは諦めた。
ShellExecuteEXに頼るよ・・・
VBを起動したときクリップボードがクリアされちゃうのはなぜ?
>>259
VBのIDEのメニューのアイコンをクリップボード経由でしか設定できないから?
261デフォルトの名無しさん:04/08/29 09:28
結論から言うと、C言語の方が優れてるわけ?
・・・でもVBしかわからん
262デフォルトの名無しさん:04/08/29 10:30
>>246
"Insert.exe"をActiveX Exeで作成して、oya.exeから呼び出すのはどう?
>>261
用途によって使い分けるのが普通。
C/C++ならなんでもできるけど、面倒な部分もあるからVBでやったほうが早い
って場合も多い。
VBに限らずだけど、言語の長所と短所を知るのが大切。
まあ、VB6は終わりかけだから、使い続ける気は無いけどね。
これからはVB2005ですかそうですか。
265デフォルトの名無しさん:04/08/29 15:44
>>264
2005なんて出るんだw

てかVBでホームページとか作れますか?ちょっと凝った感じの
>>265
やってやれないことはないけど適材適所にはほど遠いと思う。
267Orator:04/08/29 17:50
>>10
自分はたまに 1.、基本は2.です。(テスト完了物は、仕方ないので3)

コンパイル後のログ出力が必要な時は、Debug.Printの代わりに
245氏も書いてる App.LogEventで代用してます。稀ですけど。

>>12
変数の表示程度なら良いですが、限定条件下では、
コンパイル後の動作に影響を与える事もあります。

Option Explicit
Private m As Integer
Public Function Test() As Integer
  m = m + 1
  Test = m
End Function
Private Sub Form_Load()
  m = 123
  Debug.Print Test() / 0
  MsgBox CStr(m)
End Sub

のようなコードの場合、
  開発時: 0除算エラー
  EXE時: エラーにはならない(※)けど、mは124に。
という結果になるので、コメントにしちゃうと結果が変わります。

(※) ただしTest()内でエラーが起きた場合、EXE時でもエラー。

なので、他人のソースを修正している場合は注意が必要かも。
268デフォルトの名無しさん:04/08/29 18:35
ちょっと質問なんだけど、クラスでWinsockコントロールって使えないの?

Private WithEvents mTcpSocket As Winsock

Private Sub Class_Initialize()

  Set mTcpSocket = New Winsock

End Sub

みたいなコードを書こうと思ったんだけど、どうやってもNewできない。
Winsockコントロールは、フォームに貼り付けるの限定ですか?
269268:04/08/29 18:51
ごめん、半分だけ自己解決した
「コンポーネント」じゃなくて「参照設定」すればいいのか。

ただ、この方法は、タイマーコントロールには使えない気がするんだけど
タイマーコントロールは、やっぱりフォームに貼り付けるの限定?
SetTimer
271デフォルトの名無しさん:04/08/29 19:18
>>270
APIを使えば良いということですよね?
それなら実現できるかと思うのですが、出来ればおき楽に実現したいと思っています。
何か良い方法がありましたら、アドバイスをよろしくお願いいたします
272Orator:04/08/29 20:27
>>269
Timerコントロールに限らず、標準コントロールは無理かと。
(ActiveXコントロールなら、物によっては使える事もありますけど)

ActiveXだと、IETimerコントロールってのがありますけど、
CreateObject("Internet.Timer") だとイベントが起きないかも…。
http://activex.microsoft.com/controls/iexplorer/x86/ietimer.cab


で、代用案としては、DHTMLのsetIntervalメソッドなどが使えます。

Set mobjClass = New Class1
Set mdocObject = GetObject(App.Path, "htmlfile")
Do Until mdocObject.readyState = "complete"
  DoEvents
Loop
mlngClearInterval = mdocObject.parentWindow.setInterval(CVar(mobjClass), 400, "VBScript")

こうすると、Class1の「規定のメソッド」が、400ミリ秒間隔で呼ばれます。
止めるときは、『mdocObject.parentWindow.clearInterval CVar(mlngClearInterval)』。

ただし、「規定のメソッドを持ったオブジェクト」を用意しないといけないのが難点。
273デフォルトの名無しさん:04/08/29 20:36
ううむ、やっぱり方法はあるけど、結構厳しいのですね。
どもどもありがとうございました。
何か手を考えてがんばろうと思います。
>>271
最初の苦労を厭わないのであれば自分でそんなコンポーネントを作る。


別に探してきてもいいんだけど。
275246:04/08/29 21:10
>>262
ActiveX Exeを使ったことが無いというのもあるのですが、
今回は非同期起動できるだけでいいのでタイマーイベント
で解決しました。どうもです。
>268
GUI上に表現されるわけではないのに、フォームに貼り付けないとダメっていうコントロール多いよ。
そういう時は、フォームモジュールに貼り付けてクラスモジュール代わりに。
フォームモジュールもGUIがくっついてるだけで実体はクラスモジュールだから、LoadだけしてShow
しないという使い方をすればまあ、クラスとして使えなくも無い。
277デフォルトの名無しさん:04/08/30 07:23
>>267
へー Debug.Print って コンパイル時にコンパイルされないのかと
思ってたら、ちゃんとコンパイルされるのね。
で、エラーが出ないのはどうして?
278デフォルトの名無しさん:04/08/30 10:20
開発環境:IIS5.0 + SQLServer2000 + ASP(VBScript)

某サイトの管理システムの一部なのですが、画像アップローダを作成することです。
アップロード操作画面に遷移したら、画像ファイルディレクトリ(アップロードする場所もここ)を参照し、
アップロードした(もしくはしてある)ファイルが5ファイルまで、一覧表示され、削除もできます。
というYahooオークションでのUI・改です。
http://up.isp.2ch.net/up/a4df3ce4ef4a.lzh
を参照願います。

途中までサンプルを作ったのですが、ちょっとよくわからないので教えて下さい。

詳細は添付の、基本設計.txtを見てもらえればわかると思います。

<何がわからなくて、何が教えて欲しいか>
・アップロードするディレクトリからファイル参照して、画像ファイルだけローカル変数に、格納して操作したい。
・自作設計なのでもっといい方法があれば教えていただきたい。
・できれば削除する際のポイントを教えていただきたい。

ASPでなくても「VBSならこうする」でも良いので、
よろしくお願いします。
実は何が分からないか、分かってないんじゃない?よーするに、FileSystemObjectの扱い方でしょ。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/jsfsotutor.asp
ググればワンサカひっかかるさ。
280278:04/08/30 16:00
>>279
ありがとうございます。
しっかり勉強してきます。
初心者です。画像と画像を合わせて、新たに画像をつくりたいとき、どーすればいいんでしょうか。
二つの画像の一点をとり足し合わせていけばいいんですか?その時の色の指定はどうーすればいいんでしょうか。
すいません、おしえてください。

>>281
合わせるとはαブレンドのようにしたいのかスプライトのようにしたいのかいろいろあるが
××のソフトの××のような事をしたいという風にきけばイメージわくんだがな
>>281
簡単に済ませたいならPaintPicture。
凝った処理したいならDIB使って
>二つの画像の一点をとり足し合わせていけばいいんですか?
みたいなことをする。
分からないことが出たら、ここで聞くより「画像処理」でググッたほうが早い。
284デフォルトの名無しさん:04/08/30 22:58
ゲームでも作ってみたよー
アクション系でジャンプとか無くてひたすらパンチ
奥行きの無いファイナルファイトって感じ
自分で作ったから自分なりに楽しいよー
でも最後まで作るのマンドクセかったから一面で終わりだよー

って言うかVBはやはり他の言語に劣るのかなー
あんな機能使いたいとか思ってたら結局API?に頼ってるし
でもがんばれば無限大だよね?????
285VB太郎:04/08/31 00:03
サービスパックってのを当てたいんだがそれって何処にあるんですか?
マイクロソフトとかのホームページで無料でダウソロードできるもの
なんですか?
286VB太郎:04/08/31 00:05
>>284
そのゲームやりてぇ!
うぷして〜
>>285
お前は何のために>>1に色々リンク張ってると思ってるんだ?
288デフォルトの名無しさん:04/08/31 00:31
>>287
馬鹿野郎!!
285はServicePackがサービスパックと分からない子供かもしれないだろっ
こういう奴が将来ドカプルグラマになってくれるんだぞっ

つまりあれだ、寝る前にひとネタ、と
F1〜F10キーの押しっぱなしツールを作ろうと思ったんだけど
キーを押下状態か押上状態かをコントロールする方法がわからなかった。
そこでSendKeysとループ使って、下記の様に押しっぱなし風に作ってみたんだけど
無限ループで固まってしまった。(押しっぱ解除ボタンを作ったのだが、固まるため押せない)
キーの押下、押上状態をコントロールする方法を教えてください。

OS:WindowsXP VBver:VB6.0
_________________
Do While BleStop = False         ’BleStopは解除ボタン押されたかどうか判断する変数
If M_Opt_F1.Value = True Then     ’M_O_F1はオプションボタン
SendKeys "{F1}"
ElseIf M_Opt_F2.Value = True Then
SendKeys "{F2}"
ElseIf M_Opt_F3.Value = True Then
SendKeys "{F3}"
ElseIf M_Opt_F4.Value = True Then
SendKeys "{F4}"
ElseIf M_Opt_F5.Value = True Then
SendKeys "{F5}"
ElseIf M_Opt_F6.Value = True Then
SendKeys "{F6}"
ElseIf M_Opt_F7.Value = True Then
SendKeys "{F7}"
ElseIf M_Opt_F8.Value = True Then
SendKeys "{F8}"
ElseIf M_Opt_F9.Value = True Then
SendKeys "{F9}"
Else
SendKeys "{F10}"
End If
Loop
>>289
Sendkeysの代わりにAPIのkeybd_eventを使えばコントロールできます
んでそのループの間にDoeventsをはさんであげれば解除ボタンがきっと押せることでしょう
291VB太郎:04/08/31 11:51
どっちダウソすればいいの?
ボク小学生だから英語読めないんだ。

Download Service Pack 6 for Visual Basic 6.0
Full Version - Single Download
Full Version - Multiple Part Download
292VB太郎:04/08/31 11:53
一回で全部ダウソと何回かに分けてダウソ。
内容は同じって意味なのかな?
あと、これダウソしたら英語になっちゃったりしない?
>>291
じゃあ日本語のサイトから探せよ
294デフォルトの名無しさん:04/08/31 12:53
VB6.0 (SP6)をつかってるんですが。ListViewで一行ごとに色を変えたい(文字じゃない)
のですがどうやればできますか?
なんだかオーナードローって言うのを使うのまではわかったんですが、
お願いします。

WIndowsXPです
295VB太郎:04/08/31 12:59
>>293
日本語のサイトあるの?
英語のサービスパック当てたら英語になっちゃうの?
296デフォルトの名無しさん:04/08/31 13:06
ま、英語のサイトにあるものを入れても
日本語が出てくるとは、誰も思わないわな。
297名あり:04/08/31 13:12
N88BASICやれ!!!!
>>294
オーナードローねぇ・・・
ListViewに似たものを作ったほうがラクだな
299デフォルトの名無しさん:04/08/31 13:18
N88BASICで何をやるんだ?
300VB太郎:04/08/31 14:10
>>294
グリッドを使えば?

ところで、サービスパックの日本語版何処でダウソするの〜?
301デフォルトの名無しさん:04/08/31 14:44
質問です。VBで漢字をカナでソートしたいのですが、できますかね?
>300
MSのサイトトップ→ダウンロード→製品にVBを選択して検索
303デフォルトの名無しさん:04/08/31 14:51
できません。
304VB太郎:04/08/31 14:59
>>302
ありがとう
>>301
データ構造として、カナフィールドを内部で持てないとできっこない。
で、漢字に対するカナ情報を何らかの手段で与えられればできるんじゃないの?
でも、これってVBとかによらずに、漢字に対するカナを誰が決めるか次第でしょ。
同じ漢字でも複数の読みがあるし。(じゅうふく・ちょうふく、など)
306VB太郎:04/08/31 15:10
ええっとぉ、ダウソした後、exeファイルをダブルクリックしたら、
なんかいっぱいファイルが出てきたんだけどその中の、acmsetup.exe
をダブルクリックしてもエラーになるだけなんだけど、どうすればいいの?
ダウンロードページの注意事項をよく読んでみよう。
308デフォルトの名無しさん:04/08/31 15:16
>>305
やっぱ無理ですかね。ありがとうございました。
>>306
いいかげんに氏ね
310VB太郎:04/08/31 15:31
出来た。
つうか、相手にするなよ。
過去見ても定期的にくる嵐だよ。
312302:04/08/31 15:33
餌を与えた俺の罪だ・・・
313デフォルトの名無しさん:04/08/31 18:00
画面のレイアウトするときに、Labelを貼り付けるとき
AutoSaizeをTrueで貼り付けられないでしょうか?
いちいち Trueに変えるのが面倒なので。
>>313
Autosize=Trueに設定したラベルをコピペする。
もしくはFor...EachでクルリとループをまわしてForm_Loadですべてのラベルについて設定する
Private WithEvents mIE As InternetExplorer
Private doc As HTMLDocument

Private Sub Form_Load()
'Set mIE = New InternetExplorer
Set mIE = CreateObject("InternetExplorer.Application")
Set doc = mIE.Document
End Sub

すみません、教えてください。これで、
Set doc = mIE.Document
がオートメーションエラーになるのは何故でしょうか?
俺は、
Public WithEvents ie As SHDocVw.InternetExplorer

Set .ie = New SHDocVw.InternetExplorer
って風にしてるけど。
理由は、本に載ってたから(笑)
317316:04/08/31 19:48
SHDocVw.InternetExplorer が重要だと思う。
318316:04/08/31 19:50
ちがうな。
参照設定してる?>315
319316:04/08/31 19:58
あかん、わかってなかったみたいだ・゚・(ノД`)・゚・
320316:04/08/31 20:02
>>315
質問なんですが、
 if mIe Is Nothing Then
  Set mIe = New SHDocVw.InternetExplorer
 End If
のようにしないのは、なぜですか?
>>318
はい。
参照設定されていなければ宣言でエラーでますよね?
>>318
1新規作成
2標準EXE
3参照設定 追加 Microsoft HTML Object Library
4参照設定 追加 Microsoft Internet Controls
5以下をForm1にペースト
---
Option Explicit

Private WithEvents mIE As InternetExplorer
Private doc As HTMLDocument

Private Sub Form_Load()
 'Set mIE = New InternetExplorer
 Set mIE = CreateObject("InternetExplorer.Application")
 Set doc = mIE.Document
End Sub
---
6実行
7エラー発生
---
実行時エラー '-2147467259 (80004005)':

オートメーション エラーです。
エラーを特定できません
継続(&C)終了(&E)デバッグ(&D)ヘルプ(&H)
---

という感じです。
#参照設定がおかしいのかなあ・・・
>>320
そうしても、同じでした。なぜ、なぜといわれるとこれでもいいんじゃないかなぁと思ったからというか。


IEのオブジェクトは取得できてて
Visible = True すれば、IEは立ち上がっています。
でも、Documentが見れません。ウォッチすると、こんなふうです。

: Document : <アプリケーション定義またはオブジェクト定義のエラーです。> : Object : Form1.Form_Load
324316:04/08/31 20:55
Private doc As HTMLDocument
って
Private WithEvents doc As HTMLDocument
じゃないの?
325316:04/08/31 21:09
参照設定だから、WithEventsってことかな?
>>324
Option Explicit

Private WithEvents mIE As SHDocVw.InternetExplorer
Private WithEvents doc As HTMLDocument

Private Sub Form_Load()
If mIE Is Nothing Then
Set mIE = New SHDocVw.InternetExplorer
End If
Set doc = mIE.Document
End Sub

でも同じエラーがでます。そちらでは動くのでしょうか?
327316:04/08/31 21:45
>>326
mIE.Navigate "http://www.yahoo.co.jp/"
とか指定したら、エラーでませんね。

328316:04/08/31 22:09
>>328
わぁありがとう御座いました。
まだドキュメントを開いていないからオブジェクトが無いってことだったんですね。
やっとわかりました。
330デフォルトの名無しさん:04/08/31 23:34
VB 5.0で、全角文字の変数名、プロシージャ名を使うのってどうなのよ?

最近派遣で出入りするようになった某プロジェクトで、当たり前のように使いまくってるのを見て目が点になりますた。
さらに、リーダー殿がこれから先のプロジェクトもそうしていくと力強く申しておりますた。





こんなのはほんの一例なわけだが,、
なんだか、逃げ出したくなってきた・・・orz
>>330
いいんじゃない?そこのレヴェルが一目でわかるから。
(俺もそうだが)弱い奴ほど自分より弱い奴を探して叩きたがる。

>>330
別に問題ないでしょ。

vb5だとプロジェクトのパスに全角つかってると問題がある場合があった気がするが、
変数名とかは全然問題なかったはず。

要するに本人たちがよければそれでいいことじゃん。
俺自身は変換する手間とインテリセンスが使えない(?)のが引っかかるけど、
それさえなければ日本文の変数名・関数名の方が可読性が高い場合は多いと思う。

自分と違う「流儀」を合理的な理由もなく叩く奴ってどこでもいるけど、
はっきりいって傍目には
 
 弱いもの達が夕暮れ さらに弱いものを叩く

にしか見えない。
・・・コーディングの効率とソースの保守性が上がるのならそれもまた一考の余地があるかと。
まぁ(ry
個人的には変数に全角使って文字入力するのがまんどくさい
データベースのカラムに全角使うのは結構普通になってきた。
桐はステートメントも全て漢字うわ何をする
↑懐かしいな(w

つか、漢字変数でハンガリアン記法てのも見てる分には面白いかもな。
自分でやるのはヤだけど。
>>334
同意。あと生理的に漢字は受け入れがたい。
http://pc5.2ch.net/test/read.cgi/tech/1087209526/
ローマ字よりは潔くていいし、辞書使ってまでアルファベットにこだわるのもめんどくさい。
けど、結論、粋じゃない。
>330
MSは「変数名等に日本語を使った際の動作は保証しない」というサポート文書出してる。
でもこの文書、かなり後だしだった気が・・・
それを踏まえて使うなら勝手にしろと。
341デフォルトの名無しさん:04/09/01 09:13
とかなんとか言いながら、全角の文章しか書かない(w
英語で 文章を書くと まず 叩かれるな(w
342デフォルトの名無しさん:04/09/01 10:06
ActiveXコントロールでUserControlを(1)のように関数の引数として
渡したいのですがコンパイルエラーになってしまいます。
Formでの(2)のようなかんじで行いたいのですが・・・。
よろしくお願いいたします。

(1)
Private Sub UserControl_Initialize()
Call fn(UserControl)
End Sub
Private Sub fn(oUesr As UserControl)
End Sub

(2)
Private Sub Form_Load()
Call fn(me)
End Sub
Private Sub fn(oForm As Form)
End Sub
343デフォルトの名無しさん:04/09/01 11:11
UserControlって定義されてないってことだろ?
344デフォルトの名無しさん:04/09/01 11:12
Oracle9のテーブルから、あるフィールドがNullでも文字数0でもないレコードを
抽出したいと思い下記のようにSQL文を作成したのですが上手くいきません。どこ
がおかしいのでしょうか?

SQL:
SqlStr = "Select * From A Where XX <> '' And XX Is Not Null"
345デフォルトの名無しさん:04/09/01 11:25
かっこでくるむとか・・・。
TabletPC+VB6(SP6)+SDK1.5の環境で
Textコントロールにフォーカスが当たったら
PenInputPanaelを表示するって事をやりたいのですが方法がわかりません。
VB.NET(やC#)のサンプルはあるのですが...
どなたか教えていただけないでしょうか?
>>347
5.0はたしかにそうだったな。
>>346
そのサンプル晒せば?
>347
6.0では大丈夫なのか?
いや純粋な疑問。
351デフォルトの名無しさん :04/09/01 13:07
こんにちは。

VBのver2で保存されたバイナリー形式のソースファイルを、
VB6.0でテキスト形式で開きたいのですが、
開けなくて途方にくれています。
コンバートする方法などあったらよいのですが。。。

どうしたらよいのでしょう・・・・・・。
352デフォルトの名無しさん:04/09/01 13:10
borderstyleをダイアログにした画面でメッセージボックスを出すと
ダイアログが隠れて変わりにメッセージボックスが出てくるんですが
ダイアログの上に出すにはどうしたらいいでしょうか?
353346:04/09/01 13:29
>>349
ttp://www.microsoft.com/japan/windowsxp/tabletpc/using/devtips/tip_pip.asp
です(VB.NET)。
SDKの説明によるとVB6ではInkObj.dll,InkDiv.dllへ参照設定を行い
InkConstants.basをプロジェクトに追加。
これだけではPenInputPanelオブジェクトは使えなかったので
PIPanel.dllも参照設定に加えました。
で、
Dim PIP1 As PenInputPanelと宣言して
Form_Loadイベントで
Set PIP1 = New PenInputPanel
とまでは書けるのですが
先のVB.NETサンプルのように
PIP1 = new PenInputPanel(textBox1)
とは書けませんでした。(というかコントロールの指定がそもそもできない?)
で、困っているという具合です。

#If False Then



#Else

#End If

↑のifとかの前の#ってどういう意味?
355デフォルトの名無しさん:04/09/01 13:47
Dim A As String
Dim B As String
Dim C As String
とあったとき

A = B & C

A = B + C
は、どう違うのでしょうか?

356デフォルトの名無しさん:04/09/01 13:49
>>354
コンパイラで処理するかどうかの違い
357351:04/09/01 14:07
ちなみにOSは、
win2000になります。

宜しくお願いします。
>>351
VB2でテキストに保存し直す。

多分、それが一番楽。
VB3をゲットするのはどう?
360351:04/09/01 14:18
>>358
レスありがとうございます。

今、VB2などの古いヴァージョンを持っていなく、
VB6しか持ってないのです。

この場合は、打つ手なしでしょうか。
361デフォルトの名無しさん:04/09/01 15:37
ここの例文(左上の腕試し)を取得するにはどうすればいいでしょうか?
VB6
http://www.e-typing.ne.jp/training/training.asp
362346:04/09/01 16:51
自己レス
とりあえず以下のサンプルでPenInputPanelの表示は確認できました。

Private pip As PenInputPanel
Private Sub Form_Load()
 Set pip = New PenInputPanel
 pip.AttachedEditWindow = Text1.hWnd
End Sub

Private Sub Command1_Click()
 Dim oTIP As Object
 Set oTIP = CreateObject("TabletTip.UIHost")
 oTIP.ShowWnd (True)
End Sub

でも素直に.NET系に移行すべきなんだろうなぁ。
>>344
Nullのチェックを先にやったらいいんじゃないかな?
364デフォルトの名無しさん:04/09/01 20:18
WIN2000Pro、VB6
常駐アプリ作ってるんですけど、
タスクトレイに常駐させた状態で、
WINDOWSをシャットダウンしても、
WINDOWSが終了してくれません。
どうすればいいのでしょうか?

いろいろ調べてみて、
クエリーアンロードのイベントが走るらしいけど、
そんな様子もない...。
>>344
 Oracleでは、長さ0の文字列はNULLになります
 だから、NULLチェックだけしとけばok

よく見ると、SQL自体もおかしい気がするが…
敢えて書くなら↓かな
Select * From A Where (XX <> '') OR (XX Is Not Null)

よく考えたらスレ違いな気もするが…
>>364
Form_QueryUnload
Form_Unload

晒せ
367354:04/09/01 20:38
>>356
意味が良く分からないのですが・・
下記の場合必偽になるってこと?

#If False Then



#Else

#End If
>>344
>>365
仕事場じゃ、AirH規制で書き込めないからもどかしい。

長さはLengthでチェックでいいんじゃないの?
NULLの場合にLENGTHが何を返すかはマニュアル確認してください。
NVLと組み合わせれば大丈夫だと思うけど。

あと、長さ0の文字列はNULLとは限らないはずです。
VarcharとCharでちがわなかったっけ?
>>364
そもそも、自分のアプリがWindowsに制御戻しているのか?
Windowsからの終了メッセージをキューに溜めっぱなしにしているような状態じゃないの?
370デフォルトの名無しさん:04/09/01 21:44
『form.show』で表示されたフォームのオーナーフォームの
名前を取得するにはどうすればよいのでしょうか?
>>354
プリプロセッサとかで検索

>>355
数字同士の場合下は計算される。
>>367
プリプロセッサでググれ。
その条件の場合、

#If False Then

  ここに書かれた処理がコンパイルされないで

#Else

  ここに書かれた処理がコンパイルされる

#End If
>>371
> >>355
> 数字同士の場合下は計算される。

計算されるかな?数値演算はされないと思いますが。
>>373
手元にVBないから断言できないけど、私もされないと思う。

ただ、元の変数がバリアントだと微妙なので、
新規につくるならば、文字連結は&にしとけ。
(そもそもバリアントを必要以外で使うなと)
>>355
この場合は全部 As String と宣言されているから
数値演算はされない。動作確認しました。
でも>>374さんの言うとおり、
Dim A As Variant, B As Variant
A=1 : B=2
のときは A + B は 3、A & B は "12" になる。
だから文字連結のときは & を使う癖をつけたほうがいい。
376デフォルトの名無しさん:04/09/01 23:44
最近VB6をやり始めました。
ちょこちょこいろんなサイトのソースを見てるんですがクラスモジュールを使ってるのを見ません。
(ほとんど全てフォームモジュールと標準モジュールです)
どうしてですか?
小さいものだからじゃない?
おらは使いまくりだよ
378デフォルトの名無しさん:04/09/02 00:01
OS:wimdows全般(開発環境XP)
VBのバージョン、サービスパック:最新
やりたいこと:
他人が作ったアプリがあるのですが、
そのアプリを人が操作する一連の作業(同じ作業を何回も繰り返すのが面倒なので)を自動化したいと思っています。
操作とは、ボタンを押して、グラフが出てくるのを待って、
その後Excel出力ボタン押して、保存して、
という作業です。

プログラムの仕方(アプリのボタンを押す時のオブジェクトの取得方法?など)、
もしくはそのようなソフトがあれば
ご教授ください。よろしくお願いいたします。
>>378
こう言った事がしたいのかな?
ttp://www.vector.co.jp/soft/win95/util/se074062.html
>>354
必偽になるのは見たとおりだけど、
「#」がついてるやつはディレクティブっていって
コンパイラに指示を出す命令なの。
「#if」で偽となる部分は「コンパイルされない」訳。
「実行されない」じゃなくて「コンパイルされない」この違いが解るかな?
試しに適当なモジュールに
#if false then
給料上げろ。やってられねーぜ。クライアントあほすぎ。
#end if
とか入れてごらん。コンパイルエラーすらならないよ。
381デフォルトの名無しさん:04/09/02 00:24
Winsockについて教えて下さい。
VB6.0(SP6)
W2k(SP4)(両方)
のTCPを使った通信をするプログラムを作ったんですが
ホストが何個かありクライアントがそれぞれのホストと
通信する感じになります。
で、どのホストから返って来たかを知りたいので
ホスト側にホストのグローバルIPを付加させて
クライアント側に返信したいのですが
NICが2枚有る為か、ローカルIPしか取ってきません。
どーやって取ればよいのでしょうか?
>>381
外からならわかります
383デフォルトの名無しさん:04/09/02 00:34
>>382
それはクライアント側からremotehostipを使って取得すると言う事でしょうか?
384376:04/09/02 00:35
>>377
どこかにそれなりの規模のVBプログラムソースが落ちてたり書き方のコラムがあったりしないかな?
どうにもコピー&ペーストばかりで自分のソースが汚いorz
再利用性が低いというか、他人が読みにくいというか・・・。
本でも英語ページでもおっけーっす。

>>378
SetWindowshookExとSpy++でぐぐる。
>>384
ttp://homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/
他人が読みにくい=自分も読みにくい
>>384
ありきたりだが、オブジェクト指向とかデザインパターンについて調べてみてはどうだろうか。
コピペ多用する人は、データや処理を分けないで考たりする場合が多い。(機能分類が苦手で
使いまわしできる単位で切り分けできない人が多い)
それらの考え方はVB使ってても有用だし、クラスとはどういうものなのかも分かるし。

VBのクラスを知るには、ActiveXで小さなライブラリを作ってみるのが一番手っ取り早いと思う。
胃が痛い思いをしながらVB特有の匂いが分かるようになると思うよ。

それなりの規模のVBプログラムソースは見たこと無いので知らないが、クラスを使っていて
且つ有用なサンプルは、やはりActiveXを使った物に多いと思う。
387デフォルトの名無しさん:04/09/02 07:10
こんにちわ。教えてください。m(_ _;)m

いまだにVB4を使っています。
エディタの中の行が長くなると横スクロールするのが面倒です。
この長くなった行をプログラムの動作に影響を与えないように
行を分けるにはどうやるのでしょうか?

昔、_(アンダーバー)を使って分けるようなことを聞きましたが・・・?

よろしくです。

>>387
すんません、自己解決しました。
「行継続」って言うんですね・・・

行の継続は改行の前に" _"(半角スペース+アンダーバー)

どうもでした
389デフォルトの名無しさん:04/09/02 12:42
メニューエディタについて質問します。
メニューの背景色は変更できますか?
>>389
いいえ
>>390
どうもです。
392デフォルトの名無しさん:04/09/02 13:40
コンソール出力ってどうやるんですか?
Debug.Printみたいに。
>>392
VBでコンソールアプリを作るってこと?それとも開いているコンソールに?
もしくはどっかに出力すればいいの?
>392
この辺は参考にならんかね?
ttp://homepage2.nifty.com/nihon-nouen/programming-stdinout.htm
>>393
VBでコンソールアプリを作りたかったのです。
>>394
VBのみでは無理なんですね。
そのページを参考にしてみます。
396デフォルトの名無しさん:04/09/02 14:23
すいません、VBSなんですが
コンピューターのシャットダウン時に処理をさせたいのですが
どうやってコンピューターの終了イベントを捉えたらいいのか分かりません
教えてくださいませ
>>395
GetStdHandleとWriteConsole/ReadConsoleのAPIを使えばVBだけでもできるはず。
398デフォルトの名無しさん:04/09/02 16:23
OSはWIN2000,VB(VER.6.0)です。
質問なのですが、プログラムを実行中に8007000Eというエラーがでます。
いろいろ調べてみるとメモリ不足とありましたが、実際
メモリ不足なのでしょうか。メモリ使用量はまだ十分
残っていますが、何が原因なのでしょうか。
すみませんが、教えていただけないでしょうか。
どうかよろしくお願いします。
>>398
エスパーでないので状況がさっぱりわかりませんが
・そのプログラムの特定の機能を使った時にそのエラーは出る
  →特定機能がメモリを食い潰している?
・そのプログラム以外でも使用中にエラーが出る
  →やっぱり足りないのでは?
・そのプログラムをしばらく使っているとエラーが出る
  →リソース等の開放し忘れ?

あとエスパーな人続きよろしく

>>398
漏れの念視によると、4番目に開かれるフォームの67行目にバグがある。
401デフォルトの名無しさん:04/09/02 17:37
とりあえずメモリを空けるためノートンをアンインストールして再度チャレンジだ。
402デフォルトの名無しさん:04/09/02 19:52
>>398
EXEを作製してそれを実行してなるの?
>>392

Private std_Hdl As Long 'コンソールのHANDLE

Public Function fOpenConsole() As Boolean
'コンソールの生成
fOpenConsole = False

Dim lRtn As Long

lRtn = AllocConsole()
std_Hdl = GetStdHandle(STDOUT_HANDLE)

If std_Hdl <> -1 Then
'改行を行っていく場合に最初の行の位置が合わなくなるので、1行空打ちする
Dim Buffer As String
Dim Written_Bytes As Long
Dim StdOut_Length As Long

Buffer = vbCrLf
StdOut_Length = LenB(StrConv(Buffer, vbFromUnicode)) + 2
lRtn = FlushConsoleInputBuffer(std_Hdl)
lRtn = WriteFile(std_Hdl, Buffer, StdOut_Length, Written_Bytes, ByVal
0&)
fOpenConsole = True
End If

End Function
Public Function fCloseConsole() As Boolean
'コンソールの終了

Dim lRtn As Long
Dim Read_Bytes As Long
Dim StdIn_Length As Long
Dim rBuf(254) As Byte

'コンソールの終了待ち状態の作成
fWriteConsole ("Push Enter Key")

StdIn_Length = UBound(rBuf) + 2

std_Hdl = GetStdHandle(STDIN_HANDLE)
lRtn = ReadFile(std_Hdl, rBuf, StdIn_Length, Read_Bytes, ByVal 0&)

'コンソールの廃棄
lRtn = FreeConsole

fCloseConsole = True

End Function

Public Function fWriteConsole(sMsg As String) As Boolean
'コンソールへの文字列出力

Dim lRtn As Long
Dim Buffer As String
Dim Written_Bytes As Long
Dim StdOut_Length As Long

Buffer = Format(Now, "hh:nn:ss") & Space(2) & sMsg & vbCrLf
StdOut_Length = LenB(StrConv(Buffer, vbFromUnicode)) + 2
lRtn = WriteFile(std_Hdl, Buffer, StdOut_Length, Written_Bytes, ByVal 0&)

fWriteConsole = True

End Function

・・・でSubMainから以上の関数を呼び出してみて。
一定時間Sleepしてループして出してみれば判ると思う。

コンソール内をマウス選択すると、出力は止まってしまいます。
>>396
シャットダウンをスタートメニューの終了からさせず、スクリプトからさせればいい。
そのスクリプトの前半に、やりたいことを並べればいい。
>>396
http://www.atmarkit.co.jp/fwin2k/win2ktips/455cexec/cexec.html
とか、あるけど。

うろ覚えだけど、終了時にコマンドを実行することは可能だったと思う。
Vectorとかで捜してみて参考にしては?
>>368 長さ0の文字列は、NULL扱いだよ オラクルのリファレンス見れ!
>>408
そうでしたね。ORACLEの糞仕様を思い出しました。
不定値と空文字列は違うだろって。w
この部分の仕様はSQLServerとかDB2が正しいと思う。
仕様に正しいもクソもあるかよ!
>>410
MS見たいな奴だな。w

でもさ、NULL値って不定値でしょ?
長さ0の文字を入れて不貞にされてもおかしいじゃん。
ORACLEを使ってる間は糞仕様でも従うってのは正しいけど、
その仕様が一般論として正しいかどうかは言ってもいいんじゃないか?

そもそも、長さ0の文字列をNULL扱いする仕様自体、
ORACLEが変える可能性ありって言及していたはずだし。
(OTNかなにかで読んだ記憶有。)
>>411
現実を見つめるほうが大切じゃないのかなぁ
一般論がどうとかここで言って、どうこうなる問題でもないわけだし
正式にきまっている仕様が間違っているとか糞とかいうのは勝手だが、
オラクルに直接言ってくれって感じだよなぁ
で、元質問の>>344はそうするとなぜダメなんだ?

Select * From A Where XX <> '' And XX Is Not Null

の前の部分の条件が、NULL値との比較で結果がNULLになるから、検索されないでいいのかな?

Select * From A Where XX Is Not Null

ならOKでしょうかね?
414378:04/09/02 22:51
>>379
ちょっと違いますw
>>384
おー、そんなものがあるんですね。
具具って見ます。
ありがとうございました。
415378:04/09/03 01:02
>>384
具具りましたが。。。あまりひっかかりませんでした。
書籍か何かお勧めがありましたら教えていただけないでしょうか?
エクセルのファイルが無かったら、新規作成する方法を教えてください。
filename = "c:\foo.xls"
if dir(filename) = "" then
新規ファイル作成(filename)
end
こんな感じで使いたいのですが。
Excelのクラス使え
>>416
元となるファイルを持っておき、作成のかわりにコピーすりゃラク
419Orator:04/09/03 07:41
>> 416
DAO + Excel IISAM、もしくは ADO + Microsoft.Jet.OLEDB.4.0 を
使うことで、Excelファイルを作れます。(Excel本体は不要)

とりあえずVBScriptだけど、こんな感じで作れました。

Set Cn=CreateObject("ADODB.Connection")
Cn.Provider="Microsoft.Jet.OLEDB.4.0"
Cn.Properties("Extended Properties").Value="Excel 8.0"
Cn.Open "C:\2ch.xls"
Cn.Execute "CREATE TABLE [Sheet1] ( A1 INTEGER, B1 TEXT)"
Cn.Execute "INSERT INTO [Sheet1] ( A1, B1) VALUES (123, 'はげ')"
Cn.Execute "INSERT INTO [Sheet1] ( A1, B1) VALUES (456, 'ひげ')"
Cn.Execute "INSERT INTO [Sheet1] ( A1, B1) VALUES (789, 'まげ')"
Set Rs=CreateObject("ADODB.Recordset")
Rs.Open "SELECT * FROM [Sheet1]", Cn
MsgBox RS.GetString()
Rs.Close
Cn.Close

が、書式設定の調整などは、Excel本体あるいはExcel Creator等が
必要になるので、個人的には >>418 氏の案を推奨。
(*.xls 形式にこだわらないなら、SYLKとかHTML形式という手もあるけど、面倒だし)
420デフォルトの名無しさん:04/09/03 23:14
優秀なプログラマの皆さん教えてください。
VB6.0でActiveDLLを作成し,COM+アプリケーションを作り,
ましたが、DLLを更新した際に、「型が一致しません!」と
表示されて、使用できなくなりました。
バイナリ互換でしているのですが、できません。
DLLは全部で4つで、3つがDB処理COM,1つがクライアント
との通信処理をするものです。
教えてください。宜しくお願いします。
バイナリ互換でコンパイルできてないんじゃないの?
コンパイルするとき警告表示されない?
メソッドの引数変えたり削除してない?
>バイナリ互換でしているのですが、できません。
警告も無くすんなりコンパイルできるけど使えないのか、
バイナリ互換でコンパイルできないのか曖昧。
主語無しで「できない」なんて言うとインポだと思われちゃうぞ。
422デフォルトの名無しさん:04/09/03 23:28
>>406 >>407
ありがとうございます、こんなのがあるんですね
うちはホームエディションだからベクターでツールを探しに行ってきます
たすかりました。
423デフォルトの名無しさん:04/09/04 09:08
>>421
どーもしーましぇん。確かに引数を変える!メソッドを追加しています。
削除はしてません。コンパイルするときは警告がでてます。@互換の解除
とA互換性の維持です。ぽちはAを選択しています。
すると、メソッドを追加したクラスのみ「型が一致しません」と表示され、
引数を変えたクラスはエラーが発生します。
よろしくお願いします。
424デフォルトの名無しさん:04/09/04 09:31
ちょっと質問

よくメニューアイコンに何を表示させるか設定できるUIとかあるけど
あれって、似たのばっかりだけど、そういうコントロールがあるのですか?
それとも、リストとボタンで自力で作ってる感じ?
425デフォルトの名無しさん:04/09/04 13:33
toolbarコントロールについて聞きたいんだけど
全部のボタンの幅が、一番長いcaptionの幅に設定されてしまうのはそういう仕様?
標準モジュールを複数作って
それぞれに同じ名前のパブリックプロシージャを書いてしまうと
そのプロシージャを呼び出したときにどのような動作になってしまうでしょうか
>標準モジュールを複数作って
それぞれに同じ名前のパブリックプロシージャを書いてしまうと
そのプロシージャを呼び出したときにどのような動作になってしまうでしょうか

こんだけ書き込みする間に実験できる。
というか、そうする。普通の神経してればね。
2chねらーに答えてもらうところに意味があるんです
>>428
427が標準的な2ちゃんねらーの回答でしょう。
まぁ学校の先生でもなければ、同じ回答だろうな。
>>423
そのまんまやんw
本来は全部が使えなくなるだが、
VBが小手先の業で問題ない部分は使えるように(努力)してくれるんよ。
で、あんたのやったことは問題のある行動な訳だ。
どんなときでもできるんなら警告いらんだろ。
昔同じ症状になった時、
一旦バイナリを削除して「互換なし」で作った。
やってみた。
プロシージャ名だけだと「コンパイル エラー: 名前が適切ではありません」
モジュール名.プロシージャ名だと問題なし。
>>424
あれはメニューをオーナードローしてます。もちろんVBが標準で扱えないメッセージを
フックしなきゃいけない->厄介だから、
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=49985&lngWId=1
でも使わせていただきましょう。へんな依存もなく、■で終了させてもIDE落ちないです。正しくぶりりあんと。
>>425
仕様です
VBのツールバーは贋物(顧問コントロールでない)なのかな。BTNS_AUTOSIZE(あってる?)というスタイルを
各ボタンにセットすればピシッと来るはずなんだけど、うまく反映されません。>>424の話もちょっと関係するけど、
一般的にメニューをクールバーに乗せるときは、ツールバーを使うのですが、キャプションの長さにあわせて
ボタンがリサイズされないとなると、ブカッコで困るわけです。
ファイル一つ開くのでもコンポーネントを全く使わずにわざわざAPIで書いてる人いるけど
あれって何か理由あるの?
>>434
コピペだとAPIで書いたほうが早い。
Sub Temp()
| ←カーソル



End Sub
プロシージャの先頭にカーソルを持っていくのは何キーをおすでしたっけ?
437434:04/09/05 01:37
>>435
そんな理由だったのかorz
>>436
←キーを数回
439デフォルトの名無しさん:04/09/05 02:17
どなかた教えてください。
VBで作成したDLLで不要なものがたくさん,「参照設定」に
表示されています。昔、開発していたときに何度もコンパイルした
のでいらないDLLで同じ名前のものがたくさんあます。
消すにはどうしたらいいんですか??
>>439
レジストリいじるしかない。
442デフォルトの名無しさん:04/09/06 01:28
質問させていただきます。
VB6で、VBSのExecuteGlobalのように、状況を引き継いでユーザ指定のコードを実行させることはできないでしょうか。

駄目もとでの質問なので、出来ないなら出来ないで構いません。ご存じの方居りましたら、どうかご教授願います。
>>442
そのまんまとは言えないが、VB6でもScript使えるし。がんばればやれると思う。
444デフォルトの名無しさん:04/09/06 07:06
実行すると オフィスのCDを要求される場合があります。
何のファイルが必要なのでしょうか?
正直、プログラミングの前に小学校の国語からやり直すべき奴が多すぎる。
説明能力が欠如してる奴がデスクワークやってちゃ周りが迷惑。
今すぐ辞職してガテン系にでも転職すべきだろう。
ガテン系なめんなよ!周囲とのコミュニケーションも取れない奴がやっていけるワケねーだろ!
ダメな奴は何(ry
448デフォルトの名無しさん:04/09/06 10:10
あるformから別formを開いた時に、開かれた側のformのkeydownプロシージャを
開いたformから呼び出す事は可能でしょうか?
>>448
聞くより、やってみたら?
開かれたformのイベントプロシージャを呼び出すだけじゃん。
450デフォルトの名無しさん:04/09/06 10:26
>>449
FormAからFormBのformを開いた時に下記のコードを書いてみたのですが
プロパティエラーで中断してしまいました。

Call FormB.Code_KeyDown(13, 0)

調べてみて、Form名を指定してからプロシージャ名を記述すればいいの
だと思ったのですが
451デフォルトの名無しさん:04/09/06 10:33
VBが勝手に作るイベント関数もあくまで関数です。
関数は変数とかと同じでスコープ指定に従います。

VBのForm自体がクラスで、Formレベルの変数はクラスのメンバー、
関数はクラスのメソッドと理解できれば、後は自明なんだけどね。
>>450
それは、イベント関数はデフォルトで作ったらPrivateだから。
そこをPublicに変更するか、別のPublic関数を呼び出しインターフェース用に作成してそれを通してみれば?
453デフォルトの名無しさん:04/09/06 10:50
>>451
>>452
理解できました。ありがとうございました。
Windows2000 SP4
VB6.0 SP5

Microsoft Tabbed Dialog Control 6.0をチェックしてSSTabを使用しています。
同環境の他端末で試すと、SSTabが激しくズレて表示されてしまいました。
そこで、コンポーネントの内容を見てみると、

[開発機]
Microsoft Tabbed Dialog Control 6.0
C:\Program Files\Support Tools\tabclt32.ocx

[他端末]
Microsoft Tabbed Dialog Control 6.0 (SP5)
C:\WINNT\system32\Tabclt32.OCX

こんな違いがありました。
できれば、開発機に表示を合わせたいんですが・・・
なにがマズイんでしょうか・・・アドバイスお願いします。
455454:04/09/06 12:03
追記
先週までは、他端末のほうでも開発機と同様の表示が為されていました。
開発機・他端末ともに、先週から環境はいじっていません。
今日、いきなり現象が発生しました。
自分の使うOCXを兎に角上書きコピーしてしまう、お行儀の悪いインストーラーを作成し、
再インストールして頂く。

典型的なDLLヘルだと思うけど。
コントロールの問題の可能性は低いと思うが。。

というか、
>同環境の他端末で試すと、SSTabが激しくズレて表示されてしまいました。

これで自分の問題を他人に伝達できたと思う言語感覚からまず何とかすべき。
458デフォルトの名無しさん:04/09/06 13:05
自分の使用している環境にほかのマシンのDLLを入れたほうがいい?
459454:04/09/06 13:13
レスありがとうございます。

>>456>>458
そのあたりは最終手段にしたいと思います。原因がわかれば、一番いいのですが・・・

>>457
すみませんでした。
原因をコントロールの問題だと思い込んで、表層よりもプロセスを詳しく伝えようと思って書いていました。

SSTabのズレかたですが、開発機側でこう見えているとすると(太線はハンドル)、
┏──────┓
┗──────┛
他端末ではこんな感じに、幅が短くなっています。
┏─────┐┓
┗─────┘┛
ただし、見た目の幅は短くはなっているものの、
コントロールのwidth値はそのまま、ハンドルの位置もそのままです。
460デフォルトの名無しさん:04/09/06 13:20
>>459
たとえば、デスクトップの設定(画面のプロパティ)で、使用する文字の大きさが違うと 画面の
表示が違う場合が出てくる。

>>461
俺も画面設計してるときに、画面のプロパティのデザインを
いじると画面が違ってくることに気付いて、
Windowsスタンダードを固定にすることにしました。
462454:04/09/06 13:36
>>460
デスクトップ設定を確認したところ、共にWindowsスタンダードでしたが、
開発機は各フォントサイズ8なのに対し、他端末は9でした。
フォントサイズをあわせても、現象改善しませんでした。

また、高さ・heightも、widthと同様にズレていました。
┏──────┓
│        . │
┗──────┛
     ↓
┏─────┐┓
└─────┘
┗        . ┛
>>462
OCXのバージョンはどう?
464454:04/09/06 13:51
さらに確認してみたところ、ズレが起こるのは、ひとつの端末のみでした。
OSも環境もバラバラの複数台の端末で試してみましたが、現象再現しません。

ズレ端末とその他の端末で、コントロールの参照先を確認すると、同じsystem32で、
ocxの更新日付もサイズも全く同じでした。

その中でocxの場所と更新日付が、開発機のみ他と違っています。
これだからVBってやーね
466デフォルトの名無しさん:04/09/06 15:10
そのマシンに怪しいソフトがインストールされている可能性が高そうだ。
怪しいソフトって具体的に何のことですか?
Delphi
469454:04/09/06 15:33
解決しました。

ズレが起こる端末の、画面のプロパティ→詳細にあるフォントサイズが、
通常「小さいフォント」のところ、別のサイズに変更されていました。
これを「小さいフォント」に戻したところ、正常に表示されるようになりました。

レス下さったかた、ありがとうございました。
これから端末使用者たたっ頃してきます。
>>469
俺はあんたを(ry
あいたたたたたたたたたた
472デフォルトの名無しさん:04/09/06 16:14
>>469

Windowsの設定は、個人の好みで自由に変更できるもの。
そんなんで殺しにいってたら、使用するユーザー すべて殺さないといけなくなってくる。
ま、フォントサイズの変更による影響を考慮したソフトは 少ないけどね。

ちなみに 460がその指摘だった。
結局おまえがうんこなだけじゃん
まあ、あなたの確認不足ですね。
>>455で、環境はいじっていないと書いてるわけですから。

ユーザーさんにとって、いじったうちに入っていないくても、こっちにとっては・・・ってのは幾らでもあります。
その辺りを含めて聞き取れることも、問題解決能力だと思う。
475454:04/09/06 18:23
>>469は私じゃないんですが・・・端末使用者って私ですし・・・。

ちなみにまだ直ってません・・・
>>460でご指摘いただいた際、>>469の箇所も確認していますが、「小さいフォント」になっていました。
他、OSやSPのバージョン等とっかえひっかえやってみた結果、現象はその端末でしか起こらないってことで、
今回は無視する方針になったみたいです。
環境変えていないつもりでも、複数人で使う端末なので、過去に変に触られてしまっているのかもしれません。

なんかお騒がせしてすみませんでした。
みなさんほんとにありがとう。
mukatukusine
477デフォルトの名無しさん:04/09/07 11:51
文字列の変数が数値のみか判断したい場合、どのようにするのが一番いいでしょうか?

たとえば 以下の値は数値としたいのです。

-1.00003

次の場合は 逆に数値ではないと したいのです。

-1.00003E
478442:04/09/07 12:56
亀レスですが…>>443
回答ありがとうございます。素直にCallByNameで応用させてみます。
>>477
Life使ったらどうでしょう
480デフォルトの名無しさん:04/09/07 13:06
>>479
Lifeって何?
初めて聞いた。
>>477
isNumericが、あなたの求めてる動作をするならそれでOK。
そうじゃなければ、ベタに許可文字チェック関数を作るに限る。
>>480
ごめんなさLikeでした。
isNumericは十六進数表記やカンマを許したりするので気をつけてください。

このページとか読むと良いです。
ttp://homepage1.nifty.com/rucio/main/technique/InputChk2.htm
483477:04/09/07 15:03
>>482

ああ それ。
3E
とか入れてもisNumericだと エラーにならないんだよね。
すいません、プログラマ以前の質問なのですが…

今度大学でVB使うことになるので少し勉強したいのですが、VB6.0または5.0の
体験版ってどこかダウンロードできる場所とかご存知ないですか?
(本買ってから体験版付いている本があることに気づいたorz)
485デフォルトの名無しさん:04/09/07 15:05
Dim c As Double
Dim s As String
Dim d As String

とあったときに dをチェックする文字列として
c = d
s = c

If s <> d Then
'数値じゃないよ。
End If

としたらどう?
>>484
VB5.0 CCEならMicrosoftから手に入る。

>>485
浮動少数を<>や=で比べるな。
487デフォルトの名無しさん:04/09/07 16:00
Text1のコントロール内で、数値のみ入力させたいのですが
文字とか入ったら、LostFocusできないようにするには、どうしたらいいのでしょうか?
>>487
他のコントロールを殺す
>>485
それの何処がチェックとしての妥当性があるのかと・・・。
本当にそれでチェックしてるの?そのソースを論理的に妥当だと説明できる?

>>487
バージョンを書かないと、5と6で答えが違ってくる。
入力自体を防ぐなら、KeyPressとかで要らない入力をはじいてしまえばOK。
(IMEが絡むと厳密じゃないんだけどね。)

6の場合はValidateイベント。
490デフォルトの名無しさん:04/09/07 16:14
Private Sub Text1_Validate(Cancel As Boolean)

Cancel = Not IsNumeric(Text1.Text)

End Sub

この場合、すべての textボックスにあわせて
Cancel = Not IsNumeric(Text1.Text)
のコントロール名を変更しないといけない。

これが どのコントロールにもっていっても同じように できる方法は
あるのでしょうか?

つまり
Cancel = Not IsNumeric(なんとか.Text)
のなんとかを 変更しなくていいものに変えたいということです。

>>490
だからIsNumeric使うなと。
me.text
>>490
コントロール配列にする。
VB6の場合はそれしかないはず。
Delとか.netなら、オブジェクトに対して自分で関数割り当てられるんだけどね。
493デフォルトの名無しさん:04/09/07 16:27
>>484
Visual Basic 2005 Express Edition日本語ベータ版
http://www.microsoft.com/japan/msdn/vstudio/2005/express/vbasic/
494デフォルトの名無しさん:04/09/07 16:29
VB6.0または5.0の
>>490
はやく.NETに移行しなさい
>>490
ユーザーコントロールを作れ
497484:04/09/07 18:37
>>486
ちょっと昔はあったみたいだけど今日探したらなかったーよ。残念。

>>493
とりあえずこっちダウンロードしてみます。VB6.0の予習にならなそう
だったらあきらめて評価版付きの本買います。


みなさん親切にレスありがと。
初心者です。マウスダウンイベントってあるじゃないですか。これって一回だけ有効にすることって出来るんですか?
>>498
いっそVBらしくグローバル変数で管理すれば?
>>498
プロシージャ内でStatic変数使うとか
プロシージャ内でEnabled=Falseとか



で、なんのためにそんなことをしたいのかな?
そのまんま書いてあると思うが
502デフォルトの名無しさん:04/09/08 12:47
多分VBの質問じゃないと思うんですが、どこで質問して良いのか
わからなかったので、ここで質問させてください。
もしくは妥当なスレがあったら教えてください、すみません。


Set objShell = CreateObject("Shell.Application")

'フォルダー参照に設定
Const lngRef = &H1
'ルートフォルダーをデスクトップに設定
'5でMy Documents、6でFavoritesなど
Const fldRoot = &H0

Set objFolder = _
objShell.BrowseForFolder(0, _
strTitle, lngRef, fldRoot)

みたいな感じでフォルダ参照ダイやログを出しています。

上記の流れだと「新規フォルダ作成」ってボタンが出てくるのですが
これを出なくするにはどうしたら良いんでしょう?
かなりググってみてるんですけど、どうしてもわかりません。

良かったら教えてください、お願いします。
MSDNライブラリのデータをサーバに置くような事ってできますか?
開発マシンのスペックがショボいので・・・

#マシン買い替えって話は無しのほうこうでおながいします
504デフォルトの名無しさん:04/09/08 14:00
age忘れました
505デフォルトの名無しさん:04/09/08 14:03
>>502
MKDIR
506デフォルトの名無しさん:04/09/08 14:03
>>503
CDの中身をすべて サーバのHDDにおけばいいのでは?
507デフォルトの名無しさん:04/09/08 14:06
通報するよ
508503:04/09/08 14:51
>506
MSDNをよく読んでみたら、サーバにデータ置く方法が書いてありました。
CDの中身をコピーするだけでなく、複数ディスクを一つのフォルダ内にまとめる必要がありました。
クライアントのHDDも空いたし、随分快適になりますた!
509デフォルトの名無しさん:04/09/08 15:29
コントロールを配列として用いてるのですが、たまに どういうわけか
Indexの1がないと エラーが出ます。
しかし、Indexは 1から5まであります。
Indexを変更もしていません。
どうしてエラーとなるのでしょうか?
>>509
どうしてだろうね?
まず、問題点を他人にきちんと知らせる、普通の情報伝達能力を身につけてくれ。
>>509の文書だけじゃ、
 何をしていて、
 何のエラーが出ていて、
 どのように困ってるか
わかりません。

たまに、どういうわけか、エラーがでます。
社内だったら、しるかボケ!ってところだよ。
512デフォルトの名無しさん:04/09/08 15:47
その たまに の状態が 把握できないため、たまに としかかけないのです。
ま、似たような現象の解決策を知ってる方がいたら、教えてください程度の質問です。
>>511
素人相手にそう熱くならんでも・・・
>>513
素人もプロも関係無いと思うな
人として、他人にモノを尋ねる時の最低限の条件だと思うけどね。
まあ、ああいう質問の仕方じゃ回答のしようがないから、お蔵入りでしょ?

本人が全く状況を把握できていなくて、それを質問しても、聞いてるほうも何を言ってるのか理解できんよ。
最低限、自分が試行したこと、発生する正確なエラーメッセージとかは伝えないと。
516デフォルトの名無しさん:04/09/08 16:19
517デフォルトの名無しさん:04/09/08 16:22
ある長方形の範囲内にこれ以下の様々なサイズの平面を詰め込めるだけ詰め込みたい
詰め込む平面の条件はこう
・ランダムではなく番号があり1番から順に詰め込む (範囲内での配置は自由)
・正方形、長方形、直角三角形、直角台形の四種 (なんとか長方形だけでも...)
・向きは問わない

どの番号まで詰め込めるかとその際の実際に必要な縦横のサイズを求める方法を教えて
結局理解できない奴の言い訳だろ。
519デフォルトの名無しさん:04/09/08 16:25
>>518
そうそう。分からないなら黙っていればいいのにね。
>>519
すこしでも答えようとしての質問なんだけどね。
まあ、それすらウザイというのであれば、もっと殺伐としたスレになるだけだし。
あの文面でかれの状況を理解できる人がいるなら、私は尊敬するけど。
521デフォルトの名無しさん:04/09/08 16:29
期待してるわけじゃないからいいよ。
>>520
理解できる人がいるかもしれないんだから理解できないあんたは黙ってれば良いじゃん。
別にあんたに答えて欲しい訳じゃないし。
523デフォルトの名無しさん:04/09/08 16:40
回答できないんなら、黙ってろっつーの。小言厨ウザすぎ。
524おこちゃまむけ:04/09/08 16:46
>>509
> コントロールを配列として用いてるのですが、たまに どういうわけか
> Indexの1がないと エラーが出ます。

エラーが出るのはどのタイミングですか?
VBでプロジェクトを開いたときですか?デバッカー実行時ですか?
実行時でも何時でますか?即でしょうか、それらのオブジェクトにアクセスしたときでしょうか?

> しかし、Indexは 1から5まであります。
> Indexを変更もしていません。

それはどのように確認したのでしょうか?
デザインモードのプロパティを参照したのでしょうか?
525デフォルトの名無しさん:04/09/08 16:47
>>524
シラネーヨ
>>509
あり得るのは

Private Sub ...
...
DoEvents ' <- ここでフォームを閉じてしまう。
...
Text1(1) = ""
...
End Sub

こんな状態か。
>>526
興味本位で試してみたけど再現しないよ。

Option Explicit

Private flg As Boolean

Private Sub Command1_Click()

Do
If flg Then
Exit Do
End If
DoEvents
Loop

Text1(0).Text = ""

End Sub

Private Sub Command2_Click()

Unload Me

End Sub

Private Sub Form_Unload(Cancel As Integer)

flg = True

End Sub
528デフォルトの名無しさん:04/09/08 18:09
ある文字列に ある文字が 何文字含まれているかを知ることができる関数とかありますでしょうか?

たとえば

"asdfghsjko" の中に "d"は ひとつだけとか。
"s"は ふたつとか d や s を指定すると その数が わかるようなのがいいです。
>>528
自力でコーディングせよ。For...NextとInStr$とIf...End Ifと足し算を使えばできる
530デフォルトの名無しさん:04/09/08 18:20
ま、そういう関数があるなら それを利用したほうが便利だから質問してるだけだよ。
instr とかもあるんだし。
>>530
飽きた。A点。
532デフォルトの名無しさん:04/09/08 19:17
DAO(3.5)を使用してアクセスMDBに接続する処理を作成しています
情報の取り出しを行う端末は複数ありまして、データを格納している
アクセスMDBはネットワーク上においているWInサーバの共有フォルダ(パスワードなし)に格納しています
最近顧客より要望があり、誰でもパスワード無しで見れる環境はマズイ
と指摘をうけ、共有フォルダをパスワード設定に変更しようと検討しています。
この際、端末からMDBにアタッチするアプリの起動時にログイン系の処理を
組み、ユーザーに入力してもらうように作りたいんですが
MDB接続方式をODBCに変更せずにDAOのままで実装する方法ありませんか?
開発環境はNT4 VB5.0となっております。
質問です
指定ポートからのパケットをテキストに記録しようと思っております
それをVBでしたいのですが、パケットを指定して記録って言うのが
出来ません。
そのようなツールを作る考え方、もしくは近いツールがありましたら
教えてください
>>533
それはTCP/IPのパケットモニタを作りたいってこと?
'COMポートの可能性もあるが、、、
network snifferのような感じ?
>>534
そうです。パケットモニターを作りたいと思っております
>>535
ありがとうございます。参考に見てみます

後、VBでexeファイルにパケットを送る方法も調べています
何がしたいかと言いますと、チャットのメッセージを
自作ツールにて送信したいのです
例えばmsnのメッセージを自分のツールから文字を打てば
msnからのメッセージとして文字が送られるようなものです
別にそんな物を作らなくてもmsnに直接文字を打てばいいのですが
プログラムの通信に対する勉強がしたいので調べています
まだまだ未熟なので流れしかわからず、どのような順序で出来るのかなど
基礎的なことがわかりません
よろしくお願いします
>>536
MSNはその程度のレベルの人がトライするような教材では無い。
>>536
本当に知りたいのであれば
ttp://regnessem.sourceforge.jp/
を見ろ。そして自力で内容を理解せよ。
くれぐれもあちらで教えてクンになるのはやめろよ。
>>538
Delphiかよ。プ
>>536
まずはHTTPから勉強しろ
>>528
N = Len( HOGE ) - Len( Replace( HOGE, Ch, "" ) )
>>540
HTTPはあなたがしててください

>>537
内容を理解してないみたいなので言っても仕方ないですが
別にmsnを解析してから作り変えるなんていってません
IATパッチングって方法(名前が確かではないですが)
その方法がどのような物か調べています
わかる人よろしくです
┐(´∀`)┌
544デフォルトの名無しさん:04/09/08 21:34
VB5.0 WinXP

別のパソコンからソースを取ってきて自分のパソコンに入れました。
プロジェクトを開くとComdlg32.ocxがロードできないと表示されました。
その後コンボダイアログをツールバーに表示させてフォームに付けようと
思ったのですが、ライセンスがないため付けられないと出ました。

これはどのようにしたらいいのでしょうか?
>>542
知っているがお前の態度が気に入らない
>>532
まず、よくMDBの共有なんてできるな。
過去の数多の事例を知ってれば、その構成の怖さは・・・。

まず、MDBをMSDEに移行、MDBの接続をODBCに変えるのなんて、
接続時のパラメータかえるだけだから1行直しでしょ?
>>544
これでしょ。きっと。激しく既出
[VB] ライセンス情報が書き込まれない場合の対処方法
http://support.microsoft.com/default.aspx?scid=kb;JA;411156
>>547

ありがとうございます!!
ダウンロードして修正してみます。
>>542
IATパッチングってのは聞いたことないな。

ちなみに俺だったらMSNメッセンジャの
メッセージ送信部分に割り込むようなものにするな。
ネトゲーのチートツールとか作ったときの経験からして
パケットなんかをみて解析するより、
APIコールあたりから呼び出し元を
逆アセンブルしてみてった方が手っ取りはやいし。

余計なことかもしれんがいきなり「EXEにパケットを送る」なんて表現は
どーみても使えない初心者チックな表現なんでしない方がいいぞ。
解っている者同士なら別だけどな。
550デフォルトの名無しさん:04/09/08 23:16
他APのIAT書き換えの仕組み自体は apihijack とか見ればすぐ分かると思うけど、
VBではフック関数の実装が無理なんじゃないかな。C++ に切り替えたほうが良いよ。
IATパッチングってAPIフックの事か。それならVBじゃ難しいね。
MSDNのPlatformSDKのWindows Base Serviceあたりを見ればわかるよ。
あれの覚えたては楽しいぞw
>>549
調べ方の意見ありがとうです
それとexeファイルにパケットを送るって表現改めます

>>550
C++の方がと言う意見ですが、実際のところVBでは辛いよって感じで
先輩から言われたことがありまして、それに反発もあり
VBで出来ないものかと思っておりました。
けど、VBではIATに関しては少し私の技術では出来ないみたいですね
もう少しVBに対して勉強しなおしてきます
C++でまず完成させてからVBで出来るかを検討したほうがいいようですね
色々単発的な質問に対して意見をいただきありがとうございました
>>551
ありがとうございます。早速見てみます

書き込み中にレスがあり
2つに書き込みが別れてしまい、すいませんでした
VisualBasic6.0SP5、VB歴は1週間とちょっとです。

実行ファイル内に画像(16bitBMPとicon)を埋め込みたいのですが、可能なのでしょうか。
教えて頂けると幸いです。
>>554
リソースとして可能だがあまり大きいものは入らない
556554:04/09/09 00:56
>>555
ご返答ありがとうございました。
日が浅いので、暗中模索ですが、出来ると分かったので色々やってみます。
557デフォルトの名無しさん:04/09/09 04:24
ベクトルの計算をしようと思うのですが、質問でごわす。
外積() : 外積=Aベクトル×Bベクトル の関数を作りたいのですが、
ベクトルは3次元でx方向とy方向とz方向の大きさがパラメータとなっていて
外積には各パラメータが必要なのです。
すかも、外積してもベクトルのままなので、
外積(1)、外積(2)、外積(3)というような変数を作らないとだめです。
さらに、その各々を求めたいがために関数が1個でなく3個必要になってすまいます。
これはなんというか非常にエレガントではありません。

長くなってしまいましたが要はベクトル計算の方法を教えてください。
一個の変数に3つのパラメータを保管するようなテクはないものでしょうか?
Cベクトル=外積(Aベクトル×Bベクトル)
ってなかんじにスマートに書きたいんですが・・・


558557:04/09/09 05:04
ん〜 なんかベクトル計算するようの命令があればいいんだけど、たぶん無いだろうし、
自分で何とかやりたいこと出来る解決策が浮かんだんで自己解決です。
しかし、なんというかやっぱり無理矢理なので、
ベクトル変数 みたいなのがあるなら教えてください。
559デフォルトの名無しさん:04/09/09 08:17
>>557
なんか釣り臭いような気もするけど。。
「ベクトル変数」って発想はまさに構造体(VBだと「ユーザー定義型」、だったか?)
の発想そのもの。

そして「ベクトル変数の操作(内積、外積、……)」って発想はクラスの
発想そのもの。

つまりクラスモジュールの使い方を調べましょうってことだね。
目から鱗が落ちたように感じること間違いなし。
560517:04/09/09 08:34
皆様どうか>>517をお願い致します
561デフォルトの名無しさん:04/09/09 08:53
>>560
VBの問題じゃなくて、不変的なロジックの問題でしょ?
宿題は宿題スレへ。
562517:04/09/09 09:29
>>561
品物を梱包する際の配置です
確かにVBの問題ではないのですが
いったいどこへ質問してよいやら...
>>562
元の問題の条件が少し曖昧なので質問。

箱は決まっていて、その中に商品を順番に入れた場合に何番まで入れられるか?でしょうか。
それとも、商品を全て入れるにために一番小さい箱はなんでしょうか?でしょうか。
まあ、もろオペレーションリサーチの領域な気がするから、このスレで回答求めても無理だと思う。
参考までに、似たような問題。

特定の材料からいろんな形を切り出すのに最適な切り出しは?って問題・・・だと思う。w
考え方は一緒だと思うけど。

ttp://www.ifcomputer.co.jp/IFProlog/Applications/RollCutting/home_jp.html
566デフォルトの名無しさん:04/09/09 11:04
>>546
解答ありがとうございます。製造、開発の依頼を受けた時に
データ管理をACCSESS97でされていました。フォームとかレポートを
駆使して複雑な仕組みをつくられていたためMDBのサイズが膨大な
量になっており、アプリ部分をVBとVCで作成し
テーブルとクエリーは稼動軽減の為、そのまま使いまわししてきた次第です
DBのワクとデータを別のDBアプリに載せかえるのも考えてみます。
テーブル単位でアタッチする昨日をDLL分割しているので
一個所でDB定義しておらず、全体を踏まえて接続方式を変更すると
かなりの試験項目が出るのでちょっと辛いとおもいました。
パスワード式に変更の場合ODBC接続は必須になりますよね?
ありがとうございました。
>>566
ソースの流用率という観点では、AccessからSQLServer(MSDE)ならばそれほど損はないはず。
(MSの資料で移行手順があるはず)

>>546で問題にしてるのは、MDB自体が複数ユーザーによる同時使用に対して脆い点。

あと、DLL毎にテーブルにアクセスしてると書いていますが、DBのオープンもDLL内で行ってるのでしょうか?
そうだとすると、毎回接続・切断って非常に遅そうに思えます。

パスワード云々は正直わからん。
Access2000でもデータベースパスワードの設定はあるけど、どの程度使えるのかやったことありません。

AccessはあくまでパーソナルユースのDBであると認識し、複数ユーザの同時使用には考えないほうがいいですよ。
568517:04/09/09 13:01
>>563
前者です
最終的に詰め込んだときのサイズが欲しいのは
あまりにもスカスカな場合にだけ連番を崩して
別のパターンを適用させるためです

>>564
。゚(゚´Д`゚)゚。

>>565
ありがとうございます
まだよく見ていませんがとても参考になりそうです
>>568
正直、オペレーションリサーチは難しいですよ。
上記をキーワードにしてGoogleで引っ掛けて、良さそうな事例を探してみてください。
>>565はそれで引っかかった最初のほうの奴なので、もっといいのあるかもしれませんし。

唯一の解を探すのではなく、最適解を探す形になるはずなので、
あとは処理速度とか結果の按配でバランスを取っていくことになると思います。

探査数が単純に多くなる場合、そういう計算はVBは不向きかもしれません。
万単位で繰り返し計算とかループがあると、流石に最近のCPUでもVBの遅さは出ると思う。
そこですかさず客にハード増強の見積提出ですよ
>>570
まず、客が納得する解を得られるプログラムの見通しが先だと思うが。

プログラムが数分かけて出した結論を、
現場でいつも詰め込みをやってるパートのおばちゃんに引っ繰り返されたら・・・。
こういう場合の人の感というか、按配は強敵だぞ。
そこでDelphiですよ
デルファイとかCとか、演算速度は速いけど、
こういう場合の演算回数って、そもそもの考え方が間違ってると平気で0が増えたり、何乗になったりするから。w
やっぱ、おばちゃんの脳の電子化ツール作成が・・・。

大体さ、真面目に1つめをどのあたりに置いたらいいかなんて、わかりっこないじゃん。
人だと次を置いていくうちに、”てきとうに”動かして按配決めるけど、プログラムでこれをやるのって、本当に大変。

明らかに不要な探査を削るのがORの使い道だけど。
574デフォルトの名無しさん:04/09/09 17:28
正五角形が中心を軸に回転するプログラムを教えてください
575デフォルトの名無しさん:04/09/09 17:34
>>574
画像を回転する単位毎に用意し、はりかえていく
576574:04/09/09 17:37
五角形の始点を中心にもってくることができないのでこまってます
五角形の始点?中心点じゃないの?
>>576
元の五角形をどうやって描画してるかによるでしょ?

ある点を中心と決めて、自分で60度毎に等距離の点を計算してそれらを結んでいるならば、
そのある点を決める際の基準からの角度を変えて計算するだけだと思うけど。

ある点が決まった場合、五角形の他の点は三角関数で出せるでしょ?
同じように、最初のある点を1度ずらして、それを元に5点を出していけば。
579517:04/09/09 18:15
>>569-573
皆様ありがとうございます
ヒントをいろいろ頂戴できて視野が広がります
とはいっても困難なことに変わりありませんが。。。
これらを参考にがんばってみます
580デフォルトの名無しさん:04/09/09 18:28
あのー、別に文字列操作するわけじゃない、純粋に数値の演算だけなら
VBで書こうがCで書こうが演算速度なんて大差ないと思うが。。

というか、VBのコンパイルオプションの数値演算関係のエラーチェック外せば
演算速度に違いを生じさせるようなメカニズムは何も存在していないわけで。。
>>580
ごめん、頭がPコード前提でした。
ネイティブコンパイルがあるんだよね。それなら大差なしのはずですね。
(MFCを使用したVCの同じようなプログラムに対してですが)
582デフォルトの名無しさん:04/09/09 19:00
>>578
すいません、ズバリそれが知りたいんです。
60度じゃなくて72度じゃねーか?
sinとかcosとか弧度法とかは知っているか?角度とか。
知らないなら諦めろ。

まず頭の中にアナログ時計を思い浮かべて
0分、12分、24分、36分、48分の5つの点を結べ。
正五角形が出来たか?

次は1分、13分、25分、37分、49分の(ry
>>557
どういう用途なんだかしらんけど、
作るのが目的じゃないならDirectX使ったら?
外積の関数も用意されてるし、そこそこ速いぞ。
VB6で作ったソフトの国際化対応(主に日本語と英語)をすることになったのですが、
何か便利なコンポーネントとかクラスとか無いですかね。
とりあえずキャプションと表示テキストとフォントの情報を
ファイルで持たせておけばいいかと思うんですが。
>>586
まず、ヘルプの国際化(多言語)対応を熟読しろ。
全く・・・。
588557:04/09/09 22:44
>>559
ただいま帰宅してチェックしてみたところです。
はい、まさに目からうろこでした。
どうも入門書が基本的すぎることしか載ってなかったかな・・・
大学の工学系で解析プログラム作ろうとしてるんですけど、
ろくに組んだこともないと辛いですね。
何はともあれありがとうございました。
今日作ったの全部無駄になりましたが・・・めげずに頑張ります。
質問なんですが、
VBからFlash、FlashからVBへと値を渡す事は可能なんでしょうか?
もし可能だとしたら、どのようにすればよいのでしょうか?
>>589
何種類か考えられるが、どんな環境で?
591589:04/09/10 00:19
>>590
環境はVB6.0、Flash2004MXで、
サーバに接続せずにローカルで動かせる事が出来るのであれば
基本的にどのような方法でも構いません。

現在色々と調べてはいるのですが、
FlashからVBへはFSCommandというものを使えば値を送ることが出来るような気がするのですが、
いまいちよくわかっていません・・・
そもそも、どうやってVB上でswfを再生させるかもわからないレベルですので・・・
593589:04/09/10 07:21
>>592
どうもありがとうございます。
そのpdfを見ながらいろいろ試してみたいと思います。
594デフォルトの名無しさん:04/09/10 17:34:16
SQLを使ってある値より大きいデータを1レコード(次のレコード)だけ抽出する
方法は何かないでしょうか?
今現在は値の大きいデータを全て抽出して先頭のレコードを使用する方法なので
すが、レコード数が多くなってきていて処理に時間がかかるので時間の短縮をで
きるようにしようとしています。
595デフォルトの名無しさん:04/09/10 17:40:02
いきなりなんだけどさぁ。

前々から考えてた事なんだけど、I-mode用サイトとか、
PCでIEなどを使い開こうとすると、携帯用サイトです。
PCからの閲覧は出来ない〜的な事を言われる事ってあるよね?

それを、閲覧可能なブラウザを考えてるんだけど自分の技術じゃ無理だ・・・
誰か試みてくれないですか?

ちなみに、板違いだろーからドコに持ち込むのが良い??
596デフォルトの名無しさん:04/09/10 17:42:38
>>595
仕組み上できねえよ
597デフォルトの名無しさん:04/09/10 17:45:17
>>595
よくわかんねーけど、使ってる回線自体違うんちゃう?

アイモードは携帯電波やろ。
598デフォルトの名無しさん:04/09/10 17:46:47
>>595
UA詐称で見られるところなんて限られてるからねー
IPアドレス詐称は難しいし
599デフォルトの名無しさん:04/09/10 17:47:43
>>597
わかってないならレスしないほうがw
600デフォルトの名無しさん:04/09/10 17:49:29
>>594
select top 1 from 〜

※SQL Server 限定
601デフォルトの名無しさん:04/09/10 17:49:43
>>597
言ってる事は合ってると思うよw
602デフォルトの名無しさん:04/09/10 17:51:21
>>601
そうか?
603デフォルトの名無しさん:04/09/10 17:55:43
>>594
ストアドを使う
604デフォルトの名無しさん:04/09/10 17:58:33
>>602
ドコモのなんかで読んだけど、携帯でサイト開く場合はwwwにしても
ドコモのサーバを経由して携帯に送られるはずなんだよね。

だから携帯は直接wwwを閲覧できる機能を持っている訳ではないわけ。
だから、いくら外部からi-modeを閲覧しようとしても接続してる回線自体
別物だから無理なはず。どっかで繋がりがあるなら別だけどね。
605デフォルトの名無しさん:04/09/10 18:03:04
>>604
それはそうだけど。
今回の話は勝手サイトの話でしょ?
まさか公式サイトを見たいっていってるんじゃないよね。
606デフォルトの名無しさん:04/09/10 18:04:41
>>600
レスありがとうございます。OracleのDBなのでTopは使えないのですが、そこから
検索してRownumというのを見つける事ができました。

>>603
ストアドをよく理解していないので調べてみます。
607デフォルトの名無しさん:04/09/10 18:06:35
>>605
・・・・勝手サイトってなに??(´д`)
608デフォルトの名無しさん:04/09/10 18:08:42
>>607
ぐぐってくれ
609デフォルトの名無しさん:04/09/10 18:14:10
>>606
where rownum = 1 ...
としてもあなたの期待する結果は得られないでしょう。
610デフォルトの名無しさん:04/09/10 18:16:06
>>609
本当にそうでした。他の条件をつけようとすると上手く次のレコードを抽出できま
せんでした。う〜ん
611デフォルトの名無しさん:04/09/10 18:18:55
SELECT *
FROM (SELECT 〜 FROM 〜 ORDER BY 〜)
WHERE rownum=1
612デフォルトの名無しさん:04/09/10 18:18:59
できるんじゃない?
select * from (select * from hoge where hage > 100 order by hage)
where rownum = 1;
613デフォルトの名無しさん:04/09/10 18:19:40
激しくかぶった
614デフォルトの名無しさん:04/09/10 18:22:57
>>611 >>612
はい。その方法を使えば正しいレコードが抽出できたのですが、Fromの後の()内
の「where hage > 100」の部分のせいなのか速度に全く変化がありませんでし
た。
615デフォルトの名無しさん:04/09/10 18:23:13
ホケーイ野郎ハケーン!
616デフォルトの名無しさん:04/09/10 18:25:21
>>614
その条件は複雑なん?
単純ならインデックスそこにはってソートして取り出したキーで
ゲットすればよさそうだけど。
617デフォルトの名無しさん:04/09/10 18:30:24
>>616
複雑ではなく下記のような感じです。

State = "Select * From TBL Where Code > '" + fCode.Text + "' order by Code"

TBLのレコード件数が4万を超えていて、使わないレコードを削除するという案が
出たのですが、消さなくても少しでも速度を上げれる方法はないかと探していま
した。
618デフォルトの名無しさん:04/09/10 22:31:35
このページを参考にしては?
夜の酔ってる頭なので、びんごかはよく見てないけど。

ttp://homepage1.nifty.com/kojama/works/rdbms/oracle/sql.html#term09

ここで出てるSQLですが、感じとしては、ORDERBYがいけないようなきが。
そこの部分で、検索された全件をORACLEさんがTEMPに広げてソートしちゃいますよね。
それが致命傷だと思う。

インデックスを使われて有効にするにはMAX関数で、大将となる最大のレコードを
実データに触らずにインデックスのみで探査させる工夫が必要で、それが上のリンクのはず。
619デフォルトの名無しさん:04/09/10 23:48:48
マージ作業(共同で開発しててソースを合体させる作業)をするのにいいソフトってありますか?
windiffやら、いろいろありますが、いいソフトがあれば教えてください。
620デフォルトの名無しさん:04/09/10 23:51:42
>>619
えぇぇぇぇええぇぇえ?!
ソースを合体?!?!1つのファイルに?!?!
621デフォルトの名無しさん:04/09/10 23:57:14
>>620
例えば、バージョンが5.1の時に、新機能を3つ追加したいときに
同時に開発を行って、後で追加部分を合体させるってこと。
速度が速いやつとか、使い勝手がいいツールって知りませんか?
622デフォルトの名無しさん:04/09/10 23:57:18
>>619
コピペ
623デフォルトの名無しさん:04/09/10 23:58:37
別ファイルに分ければいいだけじゃん
624デフォルトの名無しさん:04/09/11 00:01:04
Formにコードを長々と書くようなしょぼい
やり方やっているのだと別ファイルは難しいな
625デフォルトの名無しさん:04/09/11 00:33:47
T4Mergeというものを使っています。
比較しながら編集できるというものなのですが、
毎回編集するたびに比較しているみたいで。。。
速度が遅いんです。
626デフォルトの名無しさん:04/09/11 00:35:21
そんなツールを使わずにすむ開発したほうが効率が良いだろうに…
627デフォルトの名無しさん:04/09/11 00:39:01
>>626
私だけが開発しているなら、それでいけますが、
多人数で開発しているので。。。
628デフォルトの名無しさん:04/09/11 00:45:48
>>627
我々はプログラマだ!
必要ならば作ってしまえ!
オレは必要無いから作らないがな!
629デフォルトの名無しさん:04/09/11 07:21:55
VBのプログラムを書かなくてはならなくなりしょうがなく文法を勉強したけど
なんでこんな気持ち悪いの?配列が()とか関数と見分けつかないじゃん。あほかと。
630デフォルトの名無しさん:04/09/11 08:52:52
>>629
気持ちはわかる。
でもそれは「C は for 文を for( ) と書くから
関数と見分けがつかない」と文句言うようなもの。
まあ慣れてくれ。

ちょっと違うけど、俺は C の癖で
Select Case n
Case 1
Case 2
' なんかの処理
End Select
とやってしまったことがある。
本当は Case 1, 2 のつもりだったんだよ(馬鹿)
631デフォルトの名無しさん:04/09/11 09:07:24
>>630
でもCでその書き方する場合でも、コメントでわざとブレークしないんだよーって書いて欲しい罠。
632デフォルトの名無しさん:04/09/11 10:01:47
>>619
Visual SourceSafeにそんな風なことができるようなことを書いてあったような気がする。
633デフォルトの名無しさん:04/09/11 10:53:17
>619
普通にVSS使えばよいだけの話だと思うのだが、違うの?
634デフォルトの名無しさん:04/09/11 12:30:48
正直、同じ人間の書くコードならVBのソースはc系統のソースより
可読性、というより可視性(?)は高いと思う。

あとでソース見たときに、「えっとこの}に対応してるのは……」って
ネストの対応関係を追跡する非生産的な作業が発生する頻度が高すぎるんだよな
c系統の言語は。

おまけに人によってネストの記述の流儀が違うのがさらにこれに追い討ちを掛けるわけで。
635デフォルトの名無しさん:04/09/11 12:46:04
>>634
おいらは逆にC系のほうが読みやすい。

End If Next Loop etc etc...
これらで処理を括られると見難い。
VBは書き方C言語ほど自由にはできないから、みんな似たような
感じになって読みやすいと言えるような気はするが。

ネストが深い書き方するやつは、どの言語であろうと最悪だが、
インデント無しで書いたり、ネストが深くなったりすると、
{}のほうが見やすいと感じる。
636デフォルトの名無しさん:04/09/11 12:58:24
あと、ifや関数で括弧付けないで書けるのが嫌。
変数だと思ってたら関数だったというコードを見た時に
こいつマジで死んでほしいと思った。
637デフォルトの名無しさん:04/09/11 13:19:55
デルファイがいいよ
638デフォルトの名無しさん:04/09/11 13:51:44
WINSOCKコントロールってフォームに張らないと使えないのでしょうか?
Dim skt As Winsock
Set skt = New Winsock
とすると、Newキーワードの使用法が不正ですと怒られます
639デフォルトの名無しさん:04/09/11 14:18:47
>>637
begin endを{ } に変更したら考えてやるよ。
640デフォルトの名無しさん:04/09/11 14:27:37
逆パターンだが、>639みたいな奴が
ttp://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.8.2.html
のようなコード書くんだろうな。
641デフォルトの名無しさん:04/09/11 15:42:46
>>638
参照設定で使えるはずだが?
642デフォルトの名無しさん:04/09/11 15:50:59
>>639
なれればどうってことないよ
643デフォルトの名無しさん:04/09/11 19:16:50
>>595
それって環境変数を読み取ってからPCからか携帯からかを
判別してると思うので、それを偽装するしかないと思いますよ
結構前に公開してた(今もあると思うけど)人の名前みたいな
ツールで環境変数を偽装するってゆうのがありましたよね
今は使えるかどうかはわかりませんけど
それをブラウザに混ぜ込んだような物を作るとなると
かなり難しいと思いますよ
逆に言うと環境変数さえ偽装出来れば出来るので
ツールで偽装するプログラムを作ればいいと思います
ブラウザは触らなくても、それさえ出来れば閲覧できそうですね
やったことないので確信はないですけど
644デフォルトの名無しさん:04/09/11 19:31:17
>>643
想像でというより妄想だな
嘘ばかり並べ立てて何がやりたいのやら
最低なやつだ
645デフォルトの名無しさん:04/09/11 19:34:33
嘘を嘘と見抜けない人には、掲示板の利用は難しい
646デフォルトの名無しさん:04/09/11 19:41:29
>>645
技術系のまじめなスレで嘘をつく奴はおかしいよ。
間違った知識ならまだしも、意図をもっての嘘つきは最低。
647デフォルトの名無しさん:04/09/11 19:45:30
>>643
だからー
環境変数ってUAのことでしょ?
ここの人間はそんなこともしらないのかぁ
さすがVB房だな。
UAで判断してるところなんてわずかなんだよ。
ほとんどIPアドレスで弾いてる
DOCOMOのIPアドレスの範囲は公開されてるんだから
UA書き換えるプロキシなんていくらでもある。
マジで無知だな。おまえら。
648デフォルトの名無しさん:04/09/11 19:52:52
>>647
一緒にするなぁぁ
649デフォルトの名無しさん:04/09/11 19:58:04
>>647
> 環境変数ってUAのことでしょ?

これは飛躍しすぎてないか?
・・のことでしょ?って同一視できるもんじゃないだろ。
説明の前提が全然ちがってくるじゃん。
650デフォルトの名無しさん:04/09/11 20:01:05
全然飛躍してないよ。
651デフォルトの名無しさん:04/09/11 21:03:45
飛躍してない。
ってか説明の前提てなんだ?

>>643があほなだけ。
っていうか環境変数が先にあると思っとるな、しかもブラウザ側に…
652デフォルトの名無しさん:04/09/12 14:42:58
初心者な質問ですみません。
VisualBasic6.0で、ListBoxの項目にCheckBoxをつけることってできますよね。
この場合、そのリスト項目一つ一つのCheckBoxの活性/非活性って制御できないものでしょうか?

表示したリストのうち、
絶対チェックしていないといけないものは、チェック状態にしてCheckBoxの状態を変更不可に。
どちらでもよいものは変更可能に。
という風にしたいのですが…。
653デフォルトの名無しさん:04/09/12 14:59:35
>>652
その程度なら自作しては?
654デフォルトの名無しさん:04/09/12 15:07:04
グリッドでそれっぽいものを作るって手もあると思う。
655652:04/09/12 15:21:55
>>653サソ、>>654サソ
ありがとうございます。
ということは、ListBoxの標準的な機能ではできないということなのですね。

私は下っ端で、いま、先輩が先に少しだけ作ったプログラムを
完成させなければいけないのですが、
自作したり、使用するコントロールを変えたりすると怒られてしまいます(´;ω;`)

今回、
「このボタンを押したとき、○○という条件の時に、ココとココとココにチェックが入ってなかったらエラーにして」
と言われただけなのですが、それだとなんとなくモサモサした感じの動きになりますし、
それでは他の画面の制御と少し違う感じなんですね。
最初から変更不可の方がやっぱりスッキリするのではないかなー、
もし、標準の機能のままで対応可能だったら提案できるのになーと。
先輩に、
「自作orコントロール変更変えるくらいだったら、別に最初に言ったとおりでいいでしょっ!
 (ホント面倒臭い子ねーという雰囲気で)」
って怒られそうだけど、聞いてみようかな…。
656デフォルトの名無しさん:04/09/12 15:27:08
>>655
自作に関しては、先輩のいうことに一理あると思う。
その自作を納品するなら、誰がその保障をするのかと・・・。

まあ、先輩が求めてるのがそのもさもさした動きならば、まずそれを提示すればよしと。
それ以上が必要かってのは、エンドユーザーの問題(業務アプリの場合)だからね。

ただ、提案をするのはいいことだと思う
・・・けど提案するからには、夢を語るのではなく、あなたのやろうとしていたように実がないよね。
657652:04/09/12 15:38:32
>>656サソ
確かにそうですよね。
一度自作で失敗した過去を思い出されます…orz

モサモサしてるような気がしますが、とりあえず今のままで進んでみますね。
エンドユーザ今はいない(テクノフェアに出品するためのものを作っているのです)のですが、
先輩自身が私の画面を叩いている最中に言ってきそうな気もします。(今までもそうだったので。)
でも、その時は、上のように提案してみますね。

本当にありがとうございました(ペコリ
658デフォルトの名無しさん:04/09/12 18:42:20
いつも思うんだけど「参照設定」と「コンポーネント」って何が違うの?
659デフォルトの名無しさん:04/09/12 18:59:08
>>658
ライブラリーかコントロールかの違いじゃないの?
660デフォルトの名無しさん:04/09/12 21:24:39
システムに常駐してシステムを監視するプログラム
をVBで作る事は可能なのですか?
661デフォルトの名無しさん:04/09/12 21:27:21
>>660
その「システム」とは何を指しているの?
662デフォルトの名無しさん:04/09/12 21:31:06
>>661
だよな。

タスクマネージャーを作りたいのか、自分のシステム用のプログラムランチャーを作りたいのか?
監視って何を監視したいのか。生きてることか、何かログをリアルタイムで集中管理したいのか?
663デフォルトの名無しさん:04/09/12 22:02:57
>>662
あなたが述べた事柄は全て可能と言う事ですか?
664デフォルトの名無しさん:04/09/12 22:11:02
>>663
662ではないがVBで可能
665デフォルトの名無しさん:04/09/12 22:12:00
>>663
厳密なタスクマネージャは難しいと思う。

プログラムランチャーは楽勝でしょ?ShellでもCreateProcessでも。

生きてることなら、上記で起動したプロセスの状態を監視してればOK。
(EXEの終了待ちプログラムなんて検索すれば幾らでもあり、それがそのまま使える)

ログの集中管理は情報の持ち方とかはいろいろあるけど、(普通にファイルとかDBとかその他)
ログが発生したことを通知したり云々はメッセージのやり取りでできるっしょ?
VBならサブクラス化してメッセージを処理するだけ。
666デフォルトの名無しさん:04/09/12 22:32:17
> C#は絶対にC++は超えらんないと思うよ

それはそうなんだ、言語の汎用性という意味からするとあなたの言ってる事は
非常に正しいんだ。

> C#って実質Windowsでしかつかえねーじゃん

これもまさしくそうなんだ。

でも、仕事って、まぁ俺の場合はそうなんだけど、9割方Win絡みなんだよね。
でもって、次の世代のWindowsが06年に出るかどうかは別として何時か、近い
将来は必ず出るんだよね。で、そのWindowsからはWin32Apiはネイティブじゃなくて
WinFXでエミュレートされるんだよね。となると、これから始める人があえてwin32api
に精通する必要はなくなるんだよなぁ。むしろ、今は.NETのクラスライブラリの使い方
に精通した方が良いと言える。

> WindowsではVC++&MFCこれ最強
> ま ち が い な い!

現行ではね。Win32Apiがその存在意義を失うであろう、ここ2〜3年の間わって話し
だよな。OSのネイティブAPIがWinFXのクラスライブラリになれば話しはがらっと変わるよ。

まぁ、ハードに近い分野をMSがどうやってクラスライブラリにのっけてくるか、お手並み
拝見だけど、.NETの最適化も1.1→2.0βで大幅に進んでるからね。画像処理のコードを
1.1と2.0βで同じようにコンパイルしたら5倍ほど速度アップしてた。1.1上で約16秒
要してた処理がコンパイルし直すだけで3秒程で終わるようになってたからね。

ただ、間口を広げるという観点からは他のプラットフォームでも使えるC&C++を知っとく
ってのは悪くないとは思うけどね。
667デフォルトの名無しさん:04/09/12 22:34:00
>>666
ご苦労。下がってよいぞ。
668デフォルトの名無しさん:04/09/12 22:46:06
おむつの取り替えもVBで可能って聞いたが・・・
669デフォルトの名無しさん:04/09/12 22:48:14
>>668
LEGO/MindStorm
670デフォルトの名無しさん:04/09/13 00:27:55
>>647
IPだけではじいてるわけないだろw
VB房馬鹿にする暇があったら少しは勉強しろよw

>UAで判断してるところなんてわずかなんだよ。
わずかな物の中に何を取ってるのかわかっていってるのか?w
671デフォルトの名無しさん:04/09/13 00:30:11
第三者だが
>>670あなたも人の事言えないから。もうその話はやめにしてくれないか。
672デフォルトの名無しさん:04/09/13 01:02:16
上の方でベクトルの質問をした者なんですが、もういっちょ初心者的な質問でごんす。
標準モジュールで定数を宣言するときに、
構造体(ユーザ定義型)の変数で定数宣言するときはどうしたらいいのでしょう?
673デフォルトの名無しさん:04/09/13 01:04:01
できません
674デフォルトの名無しさん:04/09/13 01:06:32
質問読み返したら分かりにくかったので具体例。
Const ってどこにかくべ!?

'構造体の定義
Public Type Vector
    X As Single
    Y As Single
    Z As Single
End Type

'定数宣言
Public vec_reverse As Vector
With vec_ez
    .X = -1
    .Y = -1
    .Z = -1
End With
675デフォルトの名無しさん:04/09/13 01:07:28
>>673 まままじですか。

もしかしたらですねWith使わなかったらでける?

実験してくる。 
676デフォルトの名無しさん:04/09/13 01:08:35
ででできねぇ・・・
677デフォルトの名無しさん:04/09/13 01:10:57
ということは いちいちプロシージャ内に作って、
そっち飛ぶように仕掛けないと構造体の各々に定数を割り当てるのは無理ってことですか?
なんかださいですね・・・
678デフォルトの名無しさん:04/09/13 01:12:30
あ・・・ちなみに With vec_ez になってるのはミスです。
連続書き込みすんまそん。
679デフォルトの名無しさん:04/09/13 01:13:45
クラスで書けば?
680デフォルトの名無しさん:04/09/13 01:17:09
なんか クラスのHP見てみたけど、理解できませんで・・・
分かりやすい本ないかなぁと本屋いっても本見つかりませんで・・・
クラスを理解するのがめんどくなってやめました。
プログラムは式がいっぱいあるだけなんで、
標準モジュールに式いっぱいつくるだけでいいかなぁと・・・・
それでも初心者な私は
ユーザ定義型とモジュール名同じにしてしまって原因発見に3時間もかかってしまったです はい。
681デフォルトの名無しさん:04/09/13 01:19:55
クラス覚えるんならVBじゃなくてJavaやC++等をかじったほうが早道
682デフォルトの名無しさん:04/09/13 01:21:32
m_Constって作ってSub Const()の中に定数作ってfrmLoadのときに飛ぶようにしときまっす
683デフォルトの名無しさん:04/09/13 01:22:58
すごい 便利で覚えたら武器になるって言われてる割には
VBでクラスについて書かれてる初心者向きの本無いですな・・・・
と思った今日この頃
684デフォルトの名無しさん:04/09/13 01:24:26
ふと思ったんだがEnumのことじゃないのか?
いや、念のためだ。
685デフォルトの名無しさん:04/09/13 01:50:42
>>683
>>385は読んだ?
686デフォルトの名無しさん:04/09/13 05:31:19
確定申告もvbでできるんだって??
687デフォルトの名無しさん:04/09/13 05:41:51
>>686
いいかげん、そのつまらん書き込み繰り返すな。
688デフォルトの名無しさん:04/09/13 08:09:51
へっVaital Bombとはこの事か
689デフォルトの名無しさん:04/09/13 08:24:11
>>666って誤爆?ネタ?
しかしこれ誰かに対するレスみたいだが、レスしてる方もされてる方も
実際には自分で何にも書いたことない言語厨臭いな。

いまどき、っていうか昔からだけど、言語そのものの仕様なんぞの習得に
アップアップしてるような奴は話にならんだろ。
言語そのものの習得なんて必要事項の一割にも満たないと思うけどねえ。。

なんだよ、C#はWinだけとかC++なら他のプラットフォームでも使えるとか。
WinでC++でコーディングできる奴がただちにMacでも同じように出来るとでも
思ってんのかね?
690デフォルトの名無しさん:04/09/13 08:32:57
漏れには >>689 がネタに見える
691デフォルトの名無しさん:04/09/13 11:14:31
コマンドボタンをクリックするごとに
ラベルに、10ずつ加算させたいんですけど
どうやればいいいのですか?
692デフォルトの名無しさん:04/09/13 11:28:42
>>691

Private Sub Command1_Click()
Label1.Caption = Label1.Caption + 10
End Sub

デザイン時か、最初に Label1.Caption を 0にしてやればOK

693デフォルトの名無しさん:04/09/13 12:41:47
VB6のサポート期間っていつまでか解りますか?
MSのサイトずっと探してるのですが見つからないです・・・
694デフォルトの名無しさん:04/09/13 12:55:32
>>693
MSの基本姿勢は2バージョン出たら終わり。
なので、.net2005?が出たらサポート終了のはず。

まあ、そもそもMSのサポートって・・・。
695デフォルトの名無しさん:04/09/13 12:56:00
まだサポートしてるのか・・・。
696デフォルトの名無しさん:04/09/13 12:59:36
>>695
一応、今年サービスパック出てたじゃない。(SP6)

ただ、対応OSとかは、VB6より後に出たものは基本的に対応しないから、
あまりよろしくない状態だと思うけどね。

XPとかは動作保証なしのはず。
まあ、そもそもMSの動作保証って・・・。
697デフォルトの名無しさん:04/09/13 13:07:33
>>670
ちゃんと読めよ
この先走り汁めがw
698デフォルトの名無しさん:04/09/13 13:20:48
>694
そんなあいまいな回答しかできないからVB厨って呼ばれるんだよ。
ttp://support.microsoft.com/default.aspx?scid=fh;JA;lifeDevToolFam
699デフォルトの名無しさん:04/09/13 16:18:51
延長サポート終了日までを サポート期間とみなしていいわけ?
だったら 2008/03/31 となるね。
700デフォルトの名無しさん:04/09/13 16:44:33
>>698
言い訳させてもらえば、そんなサポートなんて当てにしようと思ったことないから。
701デフォルトの名無しさん:04/09/13 17:01:56
VBが走るOSが新規で売られなくなるのが実質的な死亡日になるのであ
702デフォルトの名無しさん:04/09/13 17:42:08
>>701
OSの入手ルートはともかく、Windows2000のサポート切れだな?>VBの終わり
とか言いそうだよ、今の職場

しかも次はDelphi(.Netに非ず)とか言っている奴がいる...orz

703デフォルトの名無しさん:04/09/13 18:40:33
VB6ってWinXPと2003ServerもOKじゃなかったっけか?
704デフォルトの名無しさん:04/09/13 18:41:49
>>703
根拠は?
705デフォルトの名無しさん:04/09/13 18:48:29
>>703
MSの基本姿勢は、その開発環境の箱なりに書かれたOSのみですよ。
後でSPなどで対応される場合も若干ありますが、基本的にはOSでたら新しいコンパイラー買えです。
706デフォルトの名無しさん:04/09/13 18:51:37
VBだけでぺーぺーこいてる人に言わせてくれ。(中にはかしこい人もいるけど)
あんたらにとってC言語などは超かしこい大学みたいなもんだろ。
素人相手に偉そうぶってんじゃないの、こら!
707デフォルトの名無しさん:04/09/13 18:59:41
>>706
精神病院へ行け
708デフォルトの名無しさん:04/09/13 19:14:36
>703-705
推測でばっか語らずに公式サイトくらい見れ
ttp://www.microsoft.com/japan/msdn/vs_previous/vstudio/techinfo/toolos.htm
709デフォルトの名無しさん:04/09/13 19:15:10
>706にとって、Cはものすごく敷居が高く苦労している事だけはわかったよ。
710デフォルトの名無しさん:04/09/13 19:17:39
>>708
ここは知っている。あえて根拠は?と聞いたんだよ。
711デフォルトの名無しさん:04/09/13 20:18:45
質問です。
VB6.0で16進数を日本語に変換するプログラムを作りたいのですが、
どのような関数・方法で可能でしょうか?以下例です。

82 b1 82 f1 82 c9 82 bf 82 cd → こんにちは

進数同士の変換ならグーグルに山ほど資料がありましたが、これについては分かりませんでした。
712デフォルトの名無しさん:04/09/13 20:23:00
>>711
その16進数とやらはどんな状態で入ってる?
713デフォルトの名無しさん:04/09/13 20:31:49
SJISとかEUCとかUNICODEとかね
714711:04/09/13 20:34:19
状態というのはどう意味でしょう?
手入力でTextBoxに例で書いた通りに16進数を入力し、変換後Labelに表示させたいと思っています。
715711:04/09/13 20:38:00
あ、16進数にもいくつかタイプがあったのですね。
シフトJISがSJISのことだと思いますから、状態はSJISです。
716デフォルトの名無しさん:04/09/13 20:39:13
>>715
Dim a As Variant
Dim s() As Byte
a = Split(Text1.Text)
ReDim s(UBound(a))
For i = 0 To UBound(a)
s(i) = "&h" & a(i)
Next
Text2.Text = StrConv(s, vbUnicode)
717デフォルトの名無しさん:04/09/13 20:40:23
いかりや長介ならここで

  ダメだこりゃっ

って呟くところだな。
718デフォルトの名無しさん:04/09/13 20:41:23
>>717
あぁ?ちゃんと表示できてるだろ?なにが駄目だてめえ
719711:04/09/13 20:47:09
>>716
すごいです。ちゃんと表示できてます。
感動しました・・。
厚くお礼申し上げます。

>>712
解決いたしました。712様もありがとうございました。
720デフォルトの名無しさん:04/09/13 20:48:13
>>719
716と712は中の人が同じだ。
721デフォルトの名無しさん:04/09/13 20:49:20
いや、ダメだこりゃってのは質問者のことね。
こんなのは人に聞くようなことじゃないだろ。
ヘルプちゃんと読めば猿でも分かることじゃないか。

まあそれでも、「読んでみたが分からない」というのならまあ仕方がない。
しかし質問の仕方からして、少しも自分で調べた形跡が感じられない。
722711:04/09/13 20:51:23
>>720
ああ、それは失礼しました。
今後また質問する場合がありましたらよろしくお願い致します。
723デフォルトの名無しさん:04/09/13 21:00:51
っていうかVB辞めろよ もう時代終わってるぞ
見苦しいわ
724デフォルトの名無しさん:04/09/13 21:03:58
>>723
これからはDelphiか?w
725711:04/09/13 21:06:17
>>721
調べ方がまだまだ未熟ですみません。
ヘルプとはMSDN ライブラリのことですね。
そのライブラリ、グーグル、参考書2冊使ったのですが探し方が悪かったようです。
精進します。
726デフォルトの名無しさん:04/09/13 21:07:40
VBのヘルプってわかりにくくていらいらしてくる。
727デフォルトの名無しさん:04/09/13 21:10:48
VB6関係の本も手に入りづらくなってきたしなぁ
728デフォルトの名無しさん:04/09/13 21:31:42
>>727
なんで?
729デフォルトの名無しさん:04/09/13 21:34:35
質問です。
ループで演算させると、長い計算だと結果が反映されるまでにものすごい時間がかかりますよね。
それってずっと待ってればちゃんと計算されますか?
計算数増やすとあんまり長いもんで途中でALT+Ctrl+Deleteすると、応答なしって出てるんですけど・・・
730デフォルトの名無しさん:04/09/13 21:40:31
>>729
反応なしと出るのは暴走しているわけじゃない
ループによってOSのイベントをソフトが受けられないだけ
ループ内にDoEventsを入れると反応なしではなくなるが、処理が遅くなる
731デフォルトの名無しさん:04/09/13 21:45:04
ループ回るたびに画面に変化起こさせれば動いてるかどうか分かるか・・・・
そのせいでちょっと遅くなるのかな?微々たるもの?
まぁ何はともあれちょっと気になったんで質問してみました。
730さんありがとうございました
732デフォルトの名無しさん:04/09/13 22:02:12
>>731
何十万回も回す場合は微々たる物ではないよ。
1000回に1回とか呼ぶと、まあ、許容範囲かなって思う。
この辺は泥臭い方法で調整するしかないんかもなあ。
上手い方法ってあるんだろうか。
733デフォルトの名無しさん:04/09/13 22:25:47
Doeventsで割り込むのではなく、特定のラベルだけをリフレッシュして状態表示をするほうがリーズナブル。
734デフォルトの名無しさん:04/09/13 22:30:37
反応無しの解決には・・・なるのかな
735デフォルトの名無しさん:04/09/13 23:21:15
>>734
反応なしの解決をするなら、DoEventsじゃ解決にならんよ。
マルチスレッドプログラムでやらないと。
736デフォルトの名無しさん:04/09/14 00:05:52
>>735
知ったかぶってそういうこと書く奴がいるからVB厨って言葉ができるんだよなあ。。
737デフォルトの名無しさん:04/09/14 00:11:44
>734
お手軽にDoEvents入れるのもいいだろうし、DLL使ってやるのもいいのでぁ。
そのアプリにどれだけの物が求められるかで決めてくだちぃ
質問です。

時間を計算させるための入力部を考えているのですが、
テキストボックスの初期値を「00:00:00」(時:分:秒)として、
「1」を入力すると「00:00:01」、次に「2」を入力すると「00:00:12」、
次に「3」を入力すると「00:01:23」・・・・となるようにしたいのですが、
参考になるサンプルが見つかりません。
ご教授いただけないでしょうか?
739デフォルトの名無しさん:04/09/14 00:55:46
ttp://tohoho.wakusei.ne.jp/lng/b200005/00050058.htm

VB厨ってこんなDQNばっかなんですか?
740デフォルトの名無しさん:04/09/14 03:17:12
普通に答えてくれてる人以外全部頭おかしいですね
741デフォルトの名無しさん:04/09/14 08:16:04
>>738
1)「サンプルコード」が必要になるレベルの問題とは思えない。
  もし必要というなら、そういう人はプログラマ辞めるべき。

2)そのようなUIを採用しようとするあなたのセンスは悪すぎる。
  例えばそんなUIで、分の値を入力したあと時間を修正したいと思ったらどうするの?
  Windowsの「日付と時刻のプロパティ」以下の操作性だと思うけど。
742デフォルトの名無しさん:04/09/14 09:11:08
それも最低だが(w
743デフォルトの名無しさん:04/09/14 16:39:16
>>738
Form Load
  TextBox1.Text = "00:00:00"
EndSub
 Command1Click
  TextBox1.Text = "00:00:01"
 EndSub
  Command2Click
   TextBox1.Text = "00:00:12"
  EndSub
   Command3Click
    TextBox1.Text = "00:01:23"
   EndSub
744デフォルトの名無しさん:04/09/14 16:56:31
>>738
該当のTextBoxのKeyPressにStatic変数で文字列を保持。
数値として認識できるキーが押された場合は、上記変数にその文字を追加。

文字保持変数 = Right("000000" & 文字保持変数 & CStr(KeyAscii),6)

で、TextBox.Text = Mid(文字保持変数,1,2) & ":" Mid(文字保持変数,3,2) & ":" Mid(文字保持変数,5,2)

VBのない状態でかいてるのであれですが。
745デフォルトの名無しさん:04/09/14 17:54:57
DataGridで
選択された行の2列目を
取りたいのですがどうすればいいでしょうか?
もしろんデータソースと連結してます。

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


746デフォルトの名無しさん:04/09/14 18:12:13
>>745
DataGrid1.Columns(1).Text
747デフォルトの名無しさん:04/09/14 18:15:11
VB6.0です

ttp://homepage1.nifty.com/MADIA/vb/API/GetOpenFileName.htm
このサンプルを使って「ファイルを開く」を作りました

で、「ファイルを開く」を選んで最初に開いているパスを変更する方法ってありますかね?
デスクトップに設定したいのです
748デフォルトの名無しさん:04/09/14 18:16:00
当方VB6.0の環境がないのですが案件が入ってしまいどうしても使わなければなりません。
そこで6.0を購入しようと思ったのですがどこにも6.0って売ってないんですよね。
.NET以上の環境での開発は互換性などの問題が出そうで怖いんです。

今からVB6.0買えるところってどこかありますか?
749デフォルトの名無しさん:04/09/14 18:27:41
>747
GetOpenFileNameでぐぐればいくらでもサンプル出てくるだろ。
理解できないなら素直にOCX使っとけってこった。

>748
それ以前に、VBの6.0と.NETは非互換。
売ってる所は・・・ヤフオクとか?
コピ品だったりユーザ登録済みだったりと色々めんどくさそう。
750748:04/09/14 18:35:35
>>749
ヤフオクですか?!
会社的に辛いもんがありますね
751デフォルトの名無しさん:04/09/14 18:48:38
>>747
サンプルに
.lpstrInitialDir = 開きたいフォルダ
を追加
752デフォルトの名無しさん:04/09/14 20:34:34
たまげた!
753デフォルトの名無しさん:04/09/14 22:51:33
MSHTML のHTMLDocument.createDocumentFromUrl で、エラーの種類を知る方法はありますか?
ホストが無かったとか、404だったとか。
754デフォルトの名無しさん:04/09/15 01:11:49
自分で作った関数のヘルプをVBのヘルプで探せるようにしたいんだけど
そういうことってどうやるの?
ぐぐるキーワードぷりーず。
755デフォルトの名無しさん:04/09/15 01:19:09
HTML Help chm
756754:04/09/15 02:24:51
>>755
thanx
757デフォルトの名無しさん:04/09/15 09:20:52
>>754
アドインの機能になるのかな?
それともOCXとかのほうかな?

アドインもOCXも確かにF1キーでヘルプ出せるから、そのあたりから突っついてみては?
758デフォルトの名無しさん:04/09/15 11:17:51
VB6です。
ソースの自動整形をOFFにしたいのですが

どうすればできますか?
759デフォルトの名無しさん:04/09/15 13:11:21
できません
760デフォルトの名無しさん:04/09/15 14:18:23
オプションの自動インデントのチェックをはずせばいいんじゃないの?
761デフォルトの名無しさん:04/09/15 14:32:45
VB6です。
テキストボックスなどでIME入力中変換中の文字があるとき、IMEの変換決定前にマウスでコマンドボタンを押されると、
入力中の文字が消えてしまいます。
これを確定させてやりたいのですが、どうしたら良いでしょうか。
validateでsendkeys の{ENTER}してみたりしましたが、駄目でした。その時にはすでに消えているようです。
また、IME フォーカス 変換 などでぐぐって見ましたが、見つかりませんでした。
よろしくお願いいたします。
762デフォルトの名無しさん:04/09/15 14:43:20
MSHTML のHTMLDocument.createDocumentFromUrl で、エラーの種類を知る方法はありますか?
ホストが無かったとか、404だったとか。
763デフォルトの名無しさん:04/09/15 14:51:04
764デフォルトの名無しさん:04/09/15 14:54:32
>>761
他の一般的なアプリでもそれが普通の動作ですよね。
なので、無理だと思いますよ。
(そもそもIMEでの変換確定まではアプリとは関係のない処理だし。)
765758:04/09/15 15:24:12
>>759
がっでむ
766デフォルトの名無しさん:04/09/15 17:55:17
? typeName(a)
Byte()
? typeName(b)
Byte
? typeName(MidB$(a, 1, 1))
String
b = MidB$(a, 1, 1)

↑エラーにならないときと型が違うといわれる時とあるのですが、なぜでしょう?
767デフォルトの名無しさん:04/09/15 17:58:27
>>758
VBのIDEを使わない。



もしかするとアドインでコードエディタをごにょごにょすればできるかもしれない。
768デフォルトの名無しさん:04/09/15 18:04:12
>>766
エラー名くらい書けないのか?
769デフォルトの名無しさん:04/09/15 18:05:46
>>768
な、なんだって(ry
770デフォルトの名無しさん:04/09/15 18:08:54
Dim a() As Byte
Dim b As Byte

a = StrConv("0123", vbFromUnicode)
b = MidB$(a, 3, 1) ' エラーにならない
a(2) = 65
b = MidB$(a, 3, 1) ' エラーになる

どう理解したらいいのでしょうか?>エロいひと
771デフォルトの名無しさん:04/09/15 18:10:30
>>768
型が違う、じゃなくて、型が一致しません、だった。

? err.Number
13
? err.Description
型が一致しません。
772デフォルトの名無しさん:04/09/15 18:34:24
>>771
暗黙の変換のため。
"2"は数字にできるが"A"は文字。
773デフォルトの名無しさん:04/09/15 18:37:59
型宣言以外に、保持しているデータも型のチェックに影響するということですかね
774デフォルトの名無しさん:04/09/15 18:39:14
>>772
ああ、そういうことかあ
775デフォルトの名無しさん:04/09/15 18:39:47
>>773
違う。ちゃんとトレースしてどんな数字が入ってるか見なさい。
776デフォルトの名無しさん:04/09/15 20:08:04
>>775
どうもありがとうございました。
777デフォルトの名無しさん:04/09/16 02:16:51
>>763
ありがとうございます。難しそうですがなんとか頑張ってみます。

>>764
Outlook Expressなどでは実現しているんですよ。
778デフォルトの名無しさん:04/09/16 09:29:03
マイクロソフトの製品は、除外しないとね。
裏で何をやっているのか わからん。
779デフォルトの名無しさん:04/09/16 11:32:15
VB6なんですが、
アプリが終了するとき(×ボタンおされたとき)に
実行される関数ってどこに書けばよいのでしょうか?
780デフォルトの名無しさん:04/09/16 11:33:39
Form_Unload
781デフォルトの名無しさん:04/09/16 11:35:13
From_Unloadつかうと
全てのFormに同じコード書くことになるので
それを避けたいのですが・・・
アプリが終了したとき、
DBのコネクションをきったりしたいんです。
782デフォルトの名無しさん:04/09/16 11:49:36
メインフォームなしで全ての画面がモードレスで動くアプリでしょうか?
(そんなUIやだな・・・落ち着きがない)

MSDNのSubMainの項目、Formsコレクションなど読んだ上で、それらを駆使するしかないと思います。
各フォームUnload時に、Formsコレクションに他がいないか?いなきゃ終わるぞ関数を追加。
783デフォルトの名無しさん:04/09/16 12:00:01
>>781
補足。
同じコードを書きたくない場合、VBではFormの派生はできないけど、テンプレはある。
お約束を書いたコードをVBインストール先のテンプレのしたのフォームにおけば、新規作成で
そのフォームのコピーを追加できる。
784デフォルトの名無しさん:04/09/16 13:02:12
メインとなるFormを閉じたときに すべて終了とすればいいじゃん。
785デフォルトの名無しさん:04/09/16 13:08:05
??メインファームとはなんぞや?
786デフォルトの名無しさん:04/09/16 13:21:22
>>785
基本的にはスタートアップフォームに指定したもの。
そのアプリの入り口・出口となる基本画面。
そういう形の画面遷移なら、メイン画面の開始でDBOpen、終了でCloseでOKなわけで。

どの画面もぽこぽこ開いて、順不同で閉じるんでしょ?元質問者のアプリ。
787デフォルトの名無しさん:04/09/16 14:26:39
Endステートメントを使ってアヒャヒャヒャヒャ
788デフォルトの名無しさん:04/09/16 14:56:00
これからVB覚えたいんですが、おすすめの書籍があれば教えてください。
789デフォルトの名無しさん:04/09/16 15:22:10
VB自体が あまりおすすめではry
790デフォルトの名無しさん:04/09/16 15:29:18
>>788
VB.NETにすれば?
791デフォルトの名無しさん:04/09/16 15:33:30
書籍ではないけれど、
「MSDNライブラリ」
マジオススメ。ちょっと無駄な情報量が多くて検索機能が弱いけど。
792デフォルトの名無しさん:04/09/16 15:35:19
どどねとだったらC#にしたほうがいい。あれならJAVAへもすんなりいけるし。
793デフォルトの名無しさん:04/09/16 17:57:42
参考書やネットで調べようと悪戦苦闘していたのですが、どうしてもわからない
ので教えてください。

データベース:Oracle9i プログラム:VB6.0
使うテーブル:マスタ、累積1、累積2
やりたい事:SQL。マスタのAフィールドに"1225"のデータが入っていて、尚且
つ累積1か累積2のどちらかに主キー(Code)で連結しているレコードを抽出した
い。
累積1・2の両方にCodeというマスタと連結させるためのフィールドを持たせてい
ます。

自分がやっていた方法だと累積1・2に同じCodeを持つレコードがあると、そのレ
コード分複数のレコードを抽出してしまっていました。Aに"1225"の値が入って
いて、累積1か累積2に連結データが入っているレコードを抽出したかったのです
が上手くできませんでした。どなたか是非教えてください。説明がわかりづらい
と思いますので、不明な点はどんどんつっこんできてください。
794デフォルトの名無しさん:04/09/16 18:00:56
>>793
不明な点・・・全て。w

1・2双方に同時に存在した場合、どっちのレコードを取るのが仕様なの?
795793:04/09/16 18:05:10
追記。自分が作ってみたのは下記のSQLです。

Select *
From (Select マスタ.* From マスタ, 累積1, 累積2
Where (マスタ.Code = 累積1.Code Or マスタ.Code = 累積2.Code))
Where A = '1225' Order By Code

です。間違ってる点はご指摘ください。
796793:04/09/16 18:06:27
>>794
レスありがとうございます。
1・2のどちらかに連結データのあるマスタのレコードを抽出したいと思って
います。
797デフォルトの名無しさん:04/09/16 18:18:39
Select *
From (Select マスタ.* From マスタ, 累積1, 累積2
Where (マスタ.Code = 累積1.Code and マスタ.Code = 累積2.Code))
Where マスタ.A = '1225' Order By マスタ.Code
798デフォルトの名無しさん:04/09/16 18:20:21
って よくよく見たら 違うな(w
こんな変なSQLは 理解できん(w
799デフォルトの名無しさん:04/09/16 18:22:36
Select * From マスタ Where Code=
(Select マスタ.Code From マスタ, 累積1, 累積2
Where (マスタ.Code = 累積1.Code or マスタ.Code = 累積2.Code)
Where A = '1225' Order By Code )

テキトー
800デフォルトの名無しさん:04/09/16 18:24:44
あっ カッコの位置が・・・。
って カッコいるのかな?
801793:04/09/16 18:30:15
>>799
早速試してみましたが、
「単一行副問い合わせにより二つ以上の行が戻されます。」
というエラーメッセージが表示されてしまいました。
1・2のどちらかに連結データのあるマスタのレコードを抽出したいといのは
SQLでは不可能なのでしょうか?
802デフォルトの名無しさん:04/09/16 20:43:10
>>793
マスタと累積1、マスタと累積2をそれぞれ結合して取得するSQLを
"UNION"でくっつけるといいのでは?

Select マスタ.*
From マスタ, 累積1
Where マスタ.Code = 累積1.Code
AND マスタ.A = '1225'
UNION
Select マスタ.*
From マスタ, 累積2
Where マスタ.Code = 累積2.Code
AND マスタ.A = '1225'
Order By マスタ.Code

手元にオラクルがないからテストできないが、たぶんいけるかな…

関係無いが、マスタがスマタに見えてしまう _| ̄|○
803802:04/09/16 20:46:49
>>793
よく考えたら、>>795のSQLに
GROUP BY句 か DISTINCTを指定すれば、
いいんではないのか?
804デフォルトの名無しさん:04/09/16 21:00:10
単純には、INでかけるじゃん。

SELECT マスタの* FROM M
WHERE コード IN (SELECT コード FROM 塁1 UNION SELECT こーど FROM 類2)
AND コード = ’ほげ’

で、いんは効率悪いから、EXISTSに書き換えるだけ。
805デフォルトの名無しさん:04/09/16 22:59:12
そのへんの入門書に書いてあります。
ネットで検索してもでてきます。
余裕で見つかります。
806デフォルトの名無しさん:04/09/16 23:00:47
すまん誤爆。
807デフォルトの名無しさん:04/09/16 23:02:42
>>805さんよ、804だけどさ。
確かにその通りだけど、いざ言われるとどきっとしちゃうだろ。w
808デフォルトの名無しさん:04/09/17 01:33:48
バイト配列Aに、バイト配列Bの任意の位置から後ろの部分を
くっつけたいんですが、どうやればいいでしょうか?
ループで回す以外に早い方法があればご教授ください。
RtlMoveMemoryでできるんでしょうか?いまいちどうすればいいのかわかりません。。
809デフォルトの名無しさん:04/09/17 01:41:51
>>808
ループ回してください。
810808:04/09/17 02:06:06
>>809
う〜んそう言わずになんとか…!
要素数も100万超えてくるとループでは苦しいんです。。
811デフォルトの名無しさん:04/09/17 02:29:54
Windows XP使ってんだが、Excel使ってたら怪しいファイルらしきもの
が出てきたんだが、これってウイルス?
だれか教えてクレー

「Visual Basic Editor」ってのがあったんでクリックしたら、知らない
意味不明の英文びっしり出てきたんだが、オブジェクトとか。。。
「Microsoft Script Editor」−Updat.csvってのもでてきて
数字がならんでんだ
いろいろクリックしてたらソースみたいのが超でてきた
VBって入力しなきゃでてこないもんだよな?
最初からインストールされてんものか?
教えてクレー
812デフォルトの名無しさん:04/09/17 02:38:53
>>811
PC初心者板へGO
813デフォルトの名無しさん:04/09/17 07:24:16
二つ以上ってことは、重複行があるのか。

重複をなくすやつ やればいいのね。
814793:04/09/17 09:39:24
みなさんレスありがとうございました。早速試してみたいと思います。
815デフォルトの名無しさん:04/09/17 10:47:33
VB6から移行するならVB2005待ちが良いでしか?
816デフォルトの名無しさん:04/09/17 11:10:31
VBから移行するならDelphiだな(w
817デフォルトの名無しさん:04/09/17 11:13:53
釣れますか?
818デフォルトの名無しさん:04/09/17 11:20:51

VBの配列処理で、値の重複チェックをして、さらに詰める
という処理をしたいのですが、簡単に可能なのでしょうか?

例えば、
Dim a(5) As Integer
a(0) = 1
a(1) = 2
a(2) = 1
というように値が入っている配列を
圧縮されて、
ReDim Preserve a(1) As Integer
a(0)の値1
a(1)の値2
という風にしたいのです。
ご教授お願い致します。

819デフォルトの名無しさん:04/09/17 11:26:38
>>818
自作したほうが早いんじゃないの?
標準機能内にはないでしょ。
820デフォルトの名無しさん:04/09/17 12:44:20
>818
コード書けば可能。簡単かどうかは本人のレベルによる。
ただ、俺なら素直にCollection使うな。
821デフォルトの名無しさん:04/09/17 13:11:18
DataGrid
で選択された、行のValueを全て取得
したいのです.ループを使わずに。
できればValuesコレクションで取得したいのですが
どうやればいいでしょうか?
ご教授おねがいします。
822デフォルトの名無しさん:04/09/17 13:13:46
>818
そういう場合は*原則として*値を入れる時にちゃんとしておく。
823デフォルトの名無しさん:04/09/17 15:49:46
質問です

エクセルの範囲指定のコピー&ペーストってVB6から使用できますでしょうか?

VBからファイルを開く(データ登録済み)範囲をコピーし集計用エクセルにペースト
ということをやりたいんですが。
VBAでは出来るのは判るのですが
いろいろ事情がありVBAでは不可とのこと

やっぱりセルを一つづつ読むしかないんでしょうか?
824デフォルトの名無しさん:04/09/17 16:43:26
>>823
できるでしょ?
手元にない&うろ覚えなのであれだけど、SheetのRangeとかで出来ない?
825デフォルトの名無しさん:04/09/17 17:24:27
VBとVBAとVB.NETの違いを教えてください。
826デフォルトの名無しさん:04/09/17 17:46:13
>>825
VB:
文字通りVisualBasicの統合開発環境及びそこで使用される言語の総称

VBA:
VB言語(って表現はなんだが)によるマクロ開発環境
VB言語を使用して、Excel等のマクロ開発が行える

VB.NET:
.NETフレームワーク上で動作するアプリを開発する統合開発環境のVB版。
既存VBとは言語的にほぼ別物。
.netアプリであれば、どの言語で作っても実行ファイルの性能差はないので、別にVBじゃなくても
827デフォルトの名無しさん:04/09/17 19:50:56
VB.NET:
の1行目と2行目で開発環境の話から言語の話に変わってるのはなぜだ。
828デフォルトの名無しさん:04/09/17 19:51:20
ありがとうございました。なんとなくわかりました。
829デフォルトの名無しさん:04/09/17 20:25:01
>>827
書いてるうちに疲れたから、持久力が無いんですよ。
830デフォルトの名無しさん:04/09/17 22:44:33
質問なんですが、
複数の画像ファイルを読み込んで、それぞれの画像の位置を指定した後、
それらを一つの画像ファイルとして書き出すことは出来るのでしょうか?
出来るとしたらどのようにしたらいいのでしょうか?
831デフォルトの名無しさん:04/09/17 23:06:24
画像編集ツールを使えば簡単じゃないかなっ
832デフォルトの名無しさん:04/09/17 23:27:18
セルの空欄をシート全体から検出する方法で、高速な方法を
教えてください。
1000行×10列セルくらいのデータを想定しています。
833デフォルトの名無しさん:04/09/18 01:32:18
>>830
LoadPictureしてPaintPictureしてSavePictureすれば簡単にできるかも。
試してないので本当にできるかわからんが。
俺なら32ビットのDIBに変換してメモリ上で合成するけどな。
834デフォルトの名無しさん:04/09/18 01:43:48
>>830
833のやり方でできるけど、保存形式はbmpだけ。
bmp以外の画像形式はdllを使うか、WinXP限定で話題のGDI+を使う。
835デフォルトの名無しさん:04/09/18 02:39:42
>832
勝手にExcelと判断して、その範囲をFor〜Each〜Next。
836デフォルトの名無しさん:04/09/18 03:27:36
ComboBoxやListBoxのListにアイテムをまとめて追加したいのですけど、
List1.AddItem("あ")
List1.AddItem("い")
List1.AddItem("う")

というようなことをやりたいとき、
一度にまとめて代入する方法はないでしょうか。
( "あ" , "い" , "う" )
とか、このような感じでまとめて渡したいのですけど…
837デフォルトの名無しさん:04/09/18 03:42:08
>>836
そういうプログラムを書きなさい
838デフォルトの名無しさん:04/09/18 04:02:46
VBってバッチ処理系のプログラムに向いてるのかのう?
839デフォルトの名無しさん:04/09/18 04:04:15
>>838
やりたい事柄によりますな。
840デフォルトの名無しさん:04/09/18 06:11:26
For Each x In Array("あ", "い", "う")
841デフォルトの名無しさん:04/09/18 07:51:39
>>838
向いていない。
バッチってサーバ上とかで動くでしょ?
サーバなんかにVB入れたくないし。

例えばDBにアクセスするのにミドルウェア使う分遅いし。
Oracleだったら、サーバだけで完結できるPLSQLとかProCアプリとか。
842デフォルトの名無しさん:04/09/18 08:18:44
ヤレヤレ
843デフォルトの名無しさん:04/09/18 10:33:27
>841
やった事無いならそう言えばいいのに。
844デフォルトの名無しさん:04/09/18 11:22:43
>向いていない。
>バッチってサーバ上とかで動くでしょ?
>サーバなんかにVB入れたくないし。
向いてない理由が「入れたくないし」って
845デフォルトの名無しさん:04/09/18 11:24:47
>>841って真性?
846デフォルトの名無しさん:04/09/18 12:26:07
残暑がきびしいからねぇ
847830:04/09/18 13:48:09
>>833>>834
ありがとうございます。
SavePictureで書き出してみようと思ったんですが、
PaintPictureで画像を組み合わせた後ですと
「実行時エラー380 プロパティの値が不正です」
と言われてしまいます。

32ビットのDIBについても調べてみたのですが、
読み込んだ画像をどのように扱えばいいのかがわかりませんでした。

また、書き忘れてしまいましたが、VBのバージョンは6.0なので、
GDI+というものは使えないようでした。

dllを使えばbmp以外のデータを書き出すことが出来るそうですが、
具体的にどのようなdllを使用すればいいのでしょうか?
848デフォルトの名無しさん:04/09/18 14:20:54
>>847
プロパティの値を変えればいい。

どれも調べればわかる。
もっと自分で努力しないと。
849デフォルトの名無しさん:04/09/18 19:13:10
そんなおかしいこと書きましたでしょうか?

まず、バッチ自体クリティカルな処理が多く、DB系の場合大量データの処理がメインなので
VBなどミドルウェアを経由して処理するものは向いていない。

次にサーバにVBランタイムを入れることには多大な抵抗がある。
ランタイムが変わることによる他のアプリへの悪影響(特にIIS)
逆にサーバにOSの修正パッチを適用したときの自VBアプリへの影響。
それらを考えた場合、クリティカルな処理に用いるべきではない。

850デフォルトの名無しさん:04/09/18 19:18:49
>>849
イカレてやがる。
ああ、釣りか。本気じゃないよな。
851デフォルトの名無しさん:04/09/18 19:21:01
>>850
だからさ、きちんと反論してくれよ。
変なレスいらないから。
852デフォルトの名無しさん:04/09/18 19:48:03
>>849
DBサーバーとWebサーバーを一緒にするような案件で
そんな心配するほうがアフォ
853デフォルトの名無しさん:04/09/18 19:49:30
>>851
日頃、頭が固いとか想像で語るなとか知識が古いとか言われてないですか?
854デフォルトの名無しさん:04/09/18 19:51:35
ミドルウェアやランタイムの影響より
オマエのプログラムの問題のほうが多いに決まってるだろw
855デフォルトの名無しさん:04/09/18 19:51:38
>>849
ランタイムが変わるとか言ってる時点で知識の古さがわかる。
856デフォルトの名無しさん:04/09/18 20:02:19
ID変わらないから連カキもOKですね。
まあ、同じ人が大勢いらっしゃる。

で、クリティカルな要件で不定要素を外すべきという考えのどこが間違ってるのでしょうか?
857デフォルトの名無しさん:04/09/18 20:04:43
>>856
そうだな。例えるなら、地球環境に悪いから全ての車を電気自動車にしろ!
というようなもんだよ。
858デフォルトの名無しさん:04/09/18 20:06:21
>>857
じゃあ、どっちがいいかはあんたもわかってるんじゃん。
それでも必要悪として使うならいいけどさ。
選択の余地があるなら、わざわざバッチ処理をVBで書くのか?
859デフォルトの名無しさん:04/09/18 20:10:09
>>858
処理が複雑であり、VBで作ったほうがラクなら書くよ。
処理といってもDB操作の事じゃないよ?
860デフォルトの名無しさん:04/09/18 20:11:58
処理が複雑って具体的にどんな状態?
そんなのこそ、それこそ普通にCとかでシンプルに構成すればいいじゃん。
わざわざVBを使って書くものでもない。
861デフォルトの名無しさん:04/09/18 20:12:01
>>858
あなたも自分の発言におかしい所があるのは理解できたかな?
862デフォルトの名無しさん:04/09/18 20:16:04
>>860
じゃあお前はC使えばいいじゃないか。なにを吠えてるんだ?
大体、バッチ処理=DBって考えも馬鹿っぽい
863デフォルトの名無しさん:04/09/18 20:18:00
あのさ、多分反論書いてる人2人いるとおもうんだけどさ。
具体的に反論できないで、馬鹿っぽいとか言ってる奴は黙ってろよ。
864デフォルトの名無しさん:04/09/18 20:21:11
>>862
元質問がVBがバッチ処理に向いてるか?でしょ。
だから向いていないと書いてるんだよ。

わざわざバッチ処理内に不定要素となるようなことを持ち込むべきじゃない。
構成をシンプルにすべきだと。

で、逆にVBじゃないとできないバッチ処理ってあるの?
対象者がVBしか使えないという理由以外で。
865デフォルトの名無しさん:04/09/18 20:21:35
自分は正しい、そう思い込みたいんですね。
866デフォルトの名無しさん:04/09/18 20:24:16
>>864
向いていないと断言するから反論も出てくるんだよ
867デフォルトの名無しさん:04/09/18 20:27:21
頭が化石の人に何を言っても・・・
868デフォルトの名無しさん:04/09/18 20:27:49
>>866
じゃあ、向いてるとでも思ってるのか?
どういう場合に向いてる場面があるの?本当に。
VBしか使えない奴しかいないというなら判るけど。
869デフォルトの名無しさん:04/09/18 20:35:53
>>868
視野が狭いなぁ
バッチ処理のスピードに関してVBが使えないほど遅いとか言わないよな?
オレはVCやVBその他色々やるが、客が使いやすいソフト作る時は
VBで作ったりするぞ?ラクだし
870デフォルトの名無しさん:04/09/18 20:38:09
>>869
私は安定性と構成のシンプルさを求めるだけだけど。
バッチ処理で客が使いやすい?どういう場面でしょうか?
871デフォルトの名無しさん:04/09/18 20:40:12
batch処理だろ?そのくらいVBでぱぱっと作れよ
872デフォルトの名無しさん:04/09/18 20:42:32
>>870
あなたはVBでは安定性も構成も満足いくものが作れないのですね。
873デフォルトの名無しさん:04/09/18 20:43:51
もういいよ。自分の好きなようにやれ。
874デフォルトの名無しさん:04/09/18 20:45:14
>>872
揚げ足とりばっか。
構成のシンプルさって理解できてないでしょ?
VBが必要じゃない場面で、VBのモジュールをよぶことのほうが嫌だよ。

875デフォルトの名無しさん:04/09/18 20:47:20
みなさま 真性 は放置で
頭が固い潔癖症になに言っても無駄だ
876デフォルトの名無しさん:04/09/18 20:48:45
じゃあ、私は頭の固い潔癖症でいいわ。
そういう業務やってるわけだし。
やってる世界が違うから、話は合わないよ。

VBが画面を作るのに向いているとは思うけど、バッチに向いてるなんて言う奴は理解できん。
877デフォルトの名無しさん:04/09/18 20:50:20
こんな真性がプロジェクトにいたら( ;´Д`)いやぁぁぁぁぁー!
878デフォルトの名無しさん:04/09/18 20:51:17
バッチ処理はVVBScriptだろ?
879デフォルトの名無しさん:04/09/18 20:51:49
新しい言語キターー
880デフォルトの名無しさん:04/09/18 20:52:50
すまん。ちょっと酔ってる。
881デフォルトの名無しさん:04/09/18 20:55:28
バッチに向いてるなんて誰か言ったっけ?
向いていない、に反論した人はいるけど。
目の前の0か100かしか考えられない頭の(ry
882デフォルトの名無しさん:04/09/18 20:56:37
こういう奴が将来COBOLerと呼ばれるようになるんだなぁ
883デフォルトの名無しさん:04/09/18 21:00:05
だからさ、
>>859
>処理が複雑であり、VBで作ったほうがラクなら書くよ。

>>869
>オレはVCやVBその他色々やるが、客が使いやすいソフト作る時は
>VBで作ったりするぞ?ラクだし

に対して質問出してるのに、返事ないじゃん。

処理が複雑でVBで作るのが楽って自分都合でしょ?
バッチ処理で客が使いやすいってどういう場面?
884デフォルトの名無しさん:04/09/18 21:02:53
今、バッチもVBで組むのが流行ってるのしらないんだね( ´,_ゝ`)プッ
885デフォルトの名無しさん:04/09/18 21:04:27
少なくともPL/SQLやPro*Cよりは分かりやすく書けるな。
886デフォルトの名無しさん:04/09/18 21:04:33
あのさ、元質問はVBが向いてるか向いていないかでしょ?
それに対してグレーな回答を返せるほど、VBでバッチを組んだらいい場面ってあるの?

他の選択肢が幾らでもある状態で、VBでバッチを組むべき!
と推せる要素があるなら書いてくれよ。
変な反論とか技術に関係ない揶揄ばっかりじゃ話にならない。
887デフォルトの名無しさん:04/09/18 21:05:26
実は俺も昔、バッチはPro*Cで書くという信念があった。
今は間違いだったことに気づいたが時既に遅し
888デフォルトの名無しさん:04/09/18 21:06:02
>>885
それはあんたに技術がないだけだし、PL/SQLのみで出来る処理なら
PL./SQLとORACLEのスケジュール機能だけで完結させればいいじゃん。
その中にわざわざVBとかOO4Oを入れる理由が判らない。
889デフォルトの名無しさん:04/09/18 21:06:21
実は、さらにその昔、OCIで組むべきという信念もあった。
890デフォルトの名無しさん:04/09/18 21:06:24
>>886
もう話するな。邪魔だ。
891デフォルトの名無しさん:04/09/18 21:07:19
>>888
いうと思った。
オマエ、若いだろ
892デフォルトの名無しさん:04/09/18 21:07:36
VB嫌いになに言ってもむだじゃん
893デフォルトの名無しさん:04/09/18 21:09:17
>>891
で?内容には反論できないのですか?
894デフォルトの名無しさん:04/09/18 21:09:31
>>888
じゃあ、すべてCで書けば?って思うよ。
さらにアセンブリ言語でもいいよ( ´,_ゝ`)プッ
895デフォルトの名無しさん:04/09/18 21:10:43
>>893
オマエ、真性のバカだな。
896デフォルトの名無しさん:04/09/18 21:10:54
だからさ、誰もVBでバッチを書く優位性を書いてないんだよね。
他の選択肢よりVBでバッチを書く優位性を誰か書けよ。
897デフォルトの名無しさん:04/09/18 21:13:02
だからVBの方が容易に書けるだろって逝ってるだろ
そしたら技術力がないとか言うだけだし。
898デフォルトの名無しさん:04/09/18 21:14:07
VBだろうがCだろうが、お前がこだわるほどの優位性の差が無いんだよ
899デフォルトの名無しさん:04/09/18 21:15:13
>>898
いいこといった!
900デフォルトの名無しさん:04/09/18 21:16:26
100と99なら100しか使ってはだめなんだ!!
という頭の(
901デフォルトの名無しさん:04/09/18 21:17:38
まあ、一番いいのはDelphiだけどな
902デフォルトの名無しさん:04/09/18 21:19:41
>>900
100と99を選択できるなら100を選ぶよな。普通。
なんで99を選ぶの?99で妥協を許される仕事ですか。
他に選択肢がないならしょうがないけどさ。

>>898
VBの場合、実行時に最低でもVBのランタイムをロードするもの嫌だ。
VBじゃなければできない処理ってのがあるなら別だけど、他に選択肢があるならVBはバッチからは除外だ。
903デフォルトの名無しさん:04/09/18 21:20:41
>>902
100じゃなきゃ許されない仕事って何よ?
904デフォルトの名無しさん:04/09/18 21:21:10
>>902
だからお前はVBつかわなきゃいいだろ。もう消えろ。
905デフォルトの名無しさん:04/09/18 21:22:41
>>903
普通に仕事していて、100と99の選択があって99を選ぶ仕事って何?

>>904
だから、画面を作るのとかはVBでやるのは好きだし、生産性がいいと思うよ。
あんたこそAllorNothingで語ってるんじゃないの?
906デフォルトの名無しさん:04/09/18 21:22:44
VBのバグよりオマエのコードのバグの方が心配だっていってるだろw
907デフォルトの名無しさん:04/09/18 21:23:38
なんで画面は99でいいんだよ?
908デフォルトの名無しさん:04/09/18 21:23:50
100で高い値段と遅い納期なら99の安い値段と早い納期選ぶな
909デフォルトの名無しさん:04/09/18 21:25:47
>>907
あのさ、VBが全てで劣ってるなんてだれも言ってないでしょ?
画面作るときはVBの生産性はいいと思うよ。
だけど、バッチ処理をVBで作るべきと推せないだけ。

>>908
そういうのを含めて100か99かの評価でしょ?普通。
なんでそういう極論で、しかも前提を曲げるかな?
910デフォルトの名無しさん:04/09/18 21:26:22
バッチだってVBのほうが生産性いいじゃん
911デフォルトの名無しさん:04/09/18 21:28:02
>>909
お前が極論なんだよ。馬鹿。
912デフォルトの名無しさん:04/09/18 21:28:22
>>911
いいこといった。
913デフォルトの名無しさん:04/09/18 21:28:25
>>910
画面のイベント処理を抜いて、VBを純粋に言語として抜き出した場合、
他の言語とそんなに生産性の要素に差がある?
914デフォルトの名無しさん:04/09/18 21:29:11
>>909
やれやれ。質問に答えたら前提を曲げるだの言い出すか。
915デフォルトの名無しさん:04/09/18 21:29:15
ここの人はVBしかできないとでも思ってるんじゃないの?
アホかっつーの
916デフォルトの名無しさん:04/09/18 21:30:17
俺はPL/SQLもOCIもPro*Cもやってきたが
やはりVBは楽でよい。
917デフォルトの名無しさん:04/09/18 21:31:46
ちなみに俺の公開している超有名フリーソフトは
C++で作っているがな
918デフォルトの名無しさん:04/09/18 21:31:52
VBをバッチ処理でつかったほうが良い点は、
1.(若干疑問はあるが)生産性が高い
2.楽
でOKでしょうか?
919デフォルトの名無しさん:04/09/18 21:33:17
3.バグが入りにくい
920デフォルトの名無しさん:04/09/18 21:43:10
>>917
なんか、子供の喧嘩のときに、訳わかんない自慢してるみたいで笑った。
921デフォルトの名無しさん:04/09/18 22:43:24
下記のようにコーディングして、テキストファイルを読み込むと、
当然読み込んだデータの末端に余計な改行が入るのですけど、
不要な改行を付加することなく、スマートに
テキストファイルを読み込む方法はないでしょうか?

Open TextFilePath For Input As #1
Do Until EOF(1)
Line Input #1, Temp
ReadData = ReadData & Temp & Chr(13) & Chr(10)
Loop
Close #1
Text1.Text = ReadData
922デフォルトの名無しさん:04/09/18 22:46:03
>>921
LineInput使わずにまるごと全部一度に読め
923デフォルトの名無しさん:04/09/18 23:13:52
つ〜か>>921みたいなヘルプ見れば直ぐ解決するようなこと質問する奴の
神経が知れん。

>>922みたいにそれに答える人間の神経もそれ以上に理解できん。
どちらも端的に狂ってる。
924デフォルトの名無しさん:04/09/18 23:15:57
それ以上に>>923みたいにくだらん書き込みする人間の神経も理解できん。狂ってる。
925デフォルトの名無しさん:04/09/18 23:17:03
全部一度に読めって言う答えも間違ってるし。
926デフォルトの名無しさん:04/09/18 23:33:55
>>925
オレは間違いとは思わんが、理由は?
927デフォルトの名無しさん:04/09/18 23:41:30
そもそもLine Inputで改行コードなんて付加されんからでしょ
928デフォルトの名無しさん:04/09/18 23:47:13
全部読む事と上のみたいなやりかたでLineInputで読むのと、
最後の改行の扱いに関してどういう違いがあるんだ?
# っていうか、解決策としては全然意味ないだろ?
929デフォルトの名無しさん:04/09/18 23:48:24
>>928
大馬鹿は去れ。
930デフォルトの名無しさん:04/09/18 23:50:41
ファイルサイズが限定されていない状態で全部読めってのはありえない。
931デフォルトの名無しさん:04/09/18 23:54:00
そんな大きなテキストをテキストボックスで扱うのかwww
932デフォルトの名無しさん:04/09/18 23:56:30
>921
2例考えられるから分けて書くよ。

1.
各行ごとに余分な改行が付加されるのかな?
その場合、元のtext fileの改行コードはどうなってるかチェックしてみて。

2.
最終的にText1.Textに表示されるデータの最後に余分な改行が入る、
具体的に言うと、Iビームカーソルはデータの最後の文字の直後にいて欲しいのに
最後の文字の次の行の先頭にいる、って事かな?
だったら当たり前。自分でChr(13) & Chr(10)を付加してるんだから(w
最後にReadDataの末端を2byte切り飛ばしましょう。
933デフォルトの名無しさん:04/09/18 23:57:47
>>931
じゃあ、あんたも元質問者と同レベルだ。
934デフォルトの名無しさん:04/09/18 23:58:43
>>933
だだっこだな、仕様をまげるなよwwwww
935デフォルトの名無しさん:04/09/19 00:03:38
>>932
2のパターンは不味く無いか?
手元にVBないからあれだけど、ファイルの最終が・・・

xxxxx(改行)
(EOF)
ならOKだが
xxxxx(EOF)
だと実でーたを切り飛ばしちゃうでしょ?

INPUTで読むことはあってるんだが、一定サイズ毎っていう指定が入るよな。
全部読めとかっていうのは答えとして乱暴すぎ。
936デフォルトの名無しさん:04/09/19 00:05:38
訂正、切り飛ばさないわな。
逆だ、改行があった場合に、その改行を削ってしまうね。
上記例だと上のパターンも下のように表示されてしまうかな?
937デフォルトの名無しさん:04/09/19 00:22:20
いやどっちにもならんと思うが…
思うがLineInputの仕様は忘れてるので間違ってるかもしれん。
938デフォルトの名無しさん:04/09/19 00:26:40
>>929
どこが大馬鹿か言ってくれ。

LineInputの方が自分で改行足してるだろとか言うなよ。
だからわざわざ
「上のみたいなやりかたで」LineInputで読むのと、
と書いたんだからな。

それとも「全部読むのが解決策になる」と言いたいのならどう解決するのか言ってみろ。
最後の改行削除とか言うなよ、全部読む事と何の関係もないんだからな。
939デフォルトの名無しさん:04/09/19 00:28:15
くそう、バチ祭りに乗り遅れた・・・
940932:04/09/19 00:30:05
>935
あー悪い。俺は「まず絶対に改行(他スペースやtabやカンマの場合有)があるであろう」って
場合も必ずIf文でチェックしてから処理してるんだわ。自分の中じゃ当たり前になり過ぎて
書くの忘れてた(w
ので、事故防止のためにそのようにね>921
941デフォルトの名無しさん:04/09/19 00:30:19
最後に改行ある場合はちがうのとちゃうか?
942デフォルトの名無しさん:04/09/19 00:30:59
>>938
それにしても読みにくい日本語だ。主題が判りにくい。

INPUTは改行コードを含めて読み込みだったような。
なので、最終行に改行が入ってるか否かは自ずからわかるよね。
943デフォルトの名無しさん:04/09/19 00:31:55
ああ、話がごちゃごちゃに…
944デフォルトの名無しさん:04/09/19 00:32:13
一発がそんなに難しいかなあ
Dim fn As Integer
Dim s() As Byte
fn = FreeFile
Open "hoge.txt" For Binary As fn
ReDim s(LOF(fn))
Get fn, 1, s
Close fn
Text1.Text = StrConv(s, vbUnicode)
945デフォルトの名無しさん:04/09/19 00:33:44
>>940
チェックするってどうやって?
LineInputで読み込んだ場合、その終端がEOFかCRLFかの判断って付かないよね。
Inputで読み込むことを前提に話していますか?
946デフォルトの名無しさん:04/09/19 00:34:59
VBってそもそも全部を文字列で読み込む機能がないんだっけ?
いずれにしても誰も一発で読むのが難しいという話はしてないと思うが…
947デフォルトの名無しさん:04/09/19 00:35:43
Line Input # ステートメントは、ファイルからキャリッジ リターン
(Chr(13)) または改行コード (Chr(13)) + Chr(10)) の直前までの
すべての文字を読み込みます。
キャリッジ リターンと改行コードは、変数に読み込まれる文字列に
追加されるのではなく、読み飛ばされます。
948デフォルトの名無しさん:04/09/19 01:16:35
しかしこんな低レベルな話題で盛り上がってる連中と
同じ開発ツール使ってるかと思うと悲しくなってくるな、リアルで。。

俺のレスが単なる煽りにしか見えない人、要するに>>921に端を発する
一連のレスの流れが低レベルだと思えない人は危機感持ったほうがいいよ。
949932:04/09/19 01:28:08
>945
再び悪ぃ(w
>921のソースの場合、絶対に1行ごとに改行が付加されるわな。
故に終端にのみ改行が付加する、という場合、俺が最初に書いた
2.でいいんだわ。
どうにかしてるな(w
950デフォルトの名無しさん:04/09/19 01:32:00
実際には1レスで終わってるのにねぇ
951デフォルトの名無しさん:04/09/19 02:53:48
9月はみんないらつく時期なのかねぇ
952デフォルトの名無しさん:04/09/19 12:58:42
ミスターちんはvisual basicの達人
mister chin ha visual basic no tatsujin
ちんさんはvisual basicの勃つ人
chinsan ha visual basic no tatsu hito
ちんさん派 visual basic NO経つ日と
mr.chin group day which passes visual basic NO
953デフォルトの名無しさん:04/09/19 13:01:32
VBのソースをHTMLに整形してくれるツールない?
web日記に書くときに使いたいねんけど。
954デフォルトの名無しさん:04/09/19 13:04:57
そのくらい作れ
955デフォルトの名無しさん:04/09/19 13:16:19
どう整形したいなんて、自分しかわからんだろうから、自作したほうがいいっしょ?
自分でソースをブラウザ上でどう出したかって考えればそんなに難しくないでしょ。
956デフォルトの名無しさん:04/09/19 13:18:42
1時間もあればかなり応用範囲の広いもの作れますけどね
957デフォルトの名無しさん:04/09/19 13:21:29
最近、心の狭い人が紛れ込んでいるような気がするのは気のせいでしょうか。
958デフォルトの名無しさん:04/09/19 13:30:50
>>953
具ぐるとこれがトップに来ました。
http://santamartadotnet.hp.infoseek.co.jp/releases/freewares/codetohtml.html

>>963あたりで使用感の報告をよろしくお願いします。
あなたは本当に良い>>963ですね。
<(_ _)>
959デフォルトの名無しさん:04/09/19 14:02:01
<CODE>
960デフォルトの名無しさん
デザインモードに貼り付ければ普通にHTMLになるじゃん。
何で外部のツールに頼ろうとするの??





という夢を見たんだ!