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

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

VB.NETは別物なので専門スレで、VBS、APIの質問もそれぞれのスレで。
VBAは、Officeアプリの操作以外ならばこのスレで質問しても大丈夫です。

○ 質問者の心得
 一.質問する前に過去ログにも目を通してみる。
 二.質問する前に MSDN などで調べてみる。
 三.VBScript はこのスレでOK。
 四.インストーラーなどの質問もOK。
 五.荒らしは相手しない。
 六.VB.NETの話題はできるだけひかえる。
 七.質問は第三者にもわかりやすいよう簡潔かつ具体的に。

○ 回答者の心得
 一.答えられない質問は無駄に罵倒せずスルー。
 二.代用法を強制しない。
 三.回答する上で必須ではない情報をむやみに聞き返さない。
 四.荒らしは相手しない。
 五.VB情報募集中。
 六.VB.NETの話題はできるだけひかえる。
 七.回答は質問者が理解できるよう具体的に。

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
Google
http://www.google.co.jp/
※「まず自分で調べる」クセを身につけよう。
2デフォルトの名無しさん:2006/03/03(金) 02:41:48
3デフォルトの名無しさん:2006/03/03(金) 02:42:26
4デフォルトの名無しさん:2006/03/03(金) 02:43:11
5デフォルトの名無しさん:2006/03/03(金) 02:43:41
6デフォルトの名無しさん:2006/03/03(金) 07:41:10
7デフォルトの名無しさん:2006/03/04(土) 01:19:58
お疲れまんこ!!
8デフォルトの名無しさん:2006/03/04(土) 01:44:42
あげ
9デフォルトの名無しさん:2006/03/04(土) 15:34:41
9だったら処女に加えて可愛くて若くて性格よくてキツマンの子と結婚出来る
10デフォルトの名無しさん:2006/03/04(土) 15:42:01
>>9
キツマンだと一擦りで逝ってしまうぞ。
11デフォルトの名無しさん:2006/03/05(日) 18:03:05
しつもーん^o^/
コマンドボタンを押したように(クリックしたように)
アニメーションさせる方法ってありますか?
12デフォルトの名無しさん:2006/03/05(日) 18:08:05
SendMessageで実際に押してやれば?
13デフォルトの名無しさん:2006/03/05(日) 18:20:50
>>11
Command1.SetFocus
SendKeys " ", True
14デフォルトの名無しさん:2006/03/06(月) 18:19:04
済みません。教えていただきたいのですが、
XPSP2にVB6のServicePack6を入れたいんですが
エラーが出て入れられません。
setupsp6.exeを叩くと
「C:\windows\system32\autoexec.ntファイルシステムは
MS-DOS及びMicrosoftWindowsアプリケーションを実行するのに
適していません。アプリケーションを終了するには[閉じる]を
選んでください。」
って出て、「閉じる」と「無視」が有るのですが、
無視を選んでも何も起きません。
WindowのCaptionには「16ビットWindowsサブシステム」と出ています。
原因と対処法を教えて頂けないでしょうか?
15デフォルトの名無しさん:2006/03/06(月) 18:48:19
>>14
可能性1:入手したSP6のパッケージが壊れている
対処方法;もう一度ダウンロードしなおす

可能性2:XPのシステムファイルが壊れている
対処方法:つ http://support.microsoft.com/default.aspx?scid=kb;ja;324767
16デフォルトの名無しさん:2006/03/06(月) 19:14:05
>>14
VB6はXP上では正しく動作しません。
17デフォルトの名無しさん:2006/03/06(月) 19:22:02
>>15
可能性1に関しては3回くらいダウンロードしなおしたので大丈夫かと思っています。
可能性2に関してですが、
http://support.microsoft.com/default.aspx?scid=kb;ja;314452
をやってみた所「NTVDM CPUは不正命令を検出しました。」
と言うエラーが出てきました。
これから可能性2に載せて頂いた対処法をやってみます。


>>16
マジッスカ(;´Д`)
1817:2006/03/06(月) 19:23:08
済みません。
sage忘れました・・・
1917:2006/03/06(月) 20:10:05
>>15
可能性2をやってみたら正常にインストールできました。
有難うございました!
20デフォルトの名無しさん:2006/03/07(火) 03:31:20
21デフォルトの名無しさん:2006/03/07(火) 17:40:52
>>20
IDEのバッファオーバーフローなんてどうでもいい
22デフォルトの名無しさん:2006/03/07(火) 18:10:29
>>21
確かに。
見つけた奴は何がしたいんだ?
23デフォルトの名無しさん:2006/03/08(水) 15:36:42
IDEユーザーに悪意があった場合、そのクライアントが無茶苦茶にされてしまう危険性があるだろ。
もはやローカルアプリだからセキュリティは不要なんて言い訳は通用しない。
24デフォルトの名無しさん:2006/03/08(水) 15:41:35
果たしてパッチは出るのだろうか・・・
25デフォルトの名無しさん:2006/03/08(水) 20:54:21
dbpとslnなんて触ることあるんだろうか。いや無い。
26デフォルトの名無しさん:2006/03/08(水) 21:09:05
>>25
そういう文体、何て言うんだっけ?
反語?
27デフォルトの名無しさん:2006/03/08(水) 23:14:57
そうだね。反語。
古典のテストだと、翻訳時に「いや無い」を付けないと誤答に
されやすいんだよね。「俺は反語を知っているぞ」というアピールのために
ちゃんと書いておかないと。
28デフォルトの名無しさん:2006/03/09(木) 00:16:58
>>27
ちぃ覚えた。
29デフォルトの名無しさん:2006/03/09(木) 15:44:27
Timerについて教えてください。
timerのintervalは65000(1分少々)程度ですが、1〜120分程度
のtimerをすることはできませんか?
ちなみに、do loopで時間みといて、イベント発生させるとCPU負荷
が上がってしまいます。あまり、負荷を掛けない方法をお願いします。
30デフォルトの名無しさん:2006/03/09(木) 15:51:13
>>29
1 スタート時間を記憶する
2 タイマーをほどよい頻度でON
3 タイマーイベントで記憶していたスタート時間と今の時間を
比べ指定の時間を超えたらガッテム
31デフォルトの名無しさん:2006/03/09(木) 15:54:16
>>29
最初に現在時間から必要な間隔を足した日時を求めて、
その日時に到達するまでタイマーを一定時間おきに発生させる。
その日時に到達したらタイマーを止め目的の処理を行う。
32デフォルトの名無しさん:2006/03/09(木) 16:04:03
>>29
Sleep(0) コールすればCPU負荷はないよ。
33デフォルトの名無しさん:2006/03/09(木) 16:37:49
>>32
それはタイムスライスをOSに返すだけだから、CPU使用率100%というのは変わらないはず。
34デフォルトの名無しさん:2006/03/09(木) 16:49:41
>>29
まあ基本は>>30-31と同じだけど、

1.イベントを起こしたい日時と現在の日時の差を求める。
2.差が65000を超えていたら、65000。それ未満の場合はその時間でIntervalの設定する。
3.イベントハンドラでイベントを起こしたい日時を超えていなければ1に戻る。超えていれば処理実行。
3529:2006/03/09(木) 23:36:48
>>30-34さん ありがとうございました。

もう少し、timerが長ければなー
こんな用途はいくらでもあると思うのだが・・・
36デフォルトの名無しさん:2006/03/09(木) 23:43:26
>>35
カウントを自分でやればいいだけじゃん。
37デフォルトの名無しさん:2006/03/10(金) 11:49:41
2分毎と3分毎にガッテムのときはタイマー2個使う?
タイマー1個で自分でカウントする?
38デフォルトの名無しさん:2006/03/10(金) 11:50:52
一個で十分じゃん?
二個で二十分にはならないけどな
3929:2006/03/10(金) 14:33:22
ちょっと作ってみました。
1秒程度の誤差は気にしないので
こんな感じでしょうか?


Sub Command1_Click()
start = Round(Timer, 0)
Timer1.Interval = 1000
End Sub
Sub Timer1_Timer()
If (Round(Timer, 0) - start) >= Val(Text1.Text) Then
'----処理---- Debug.Print "OK"
start = Round(Timer, 0)
End If
End Sub

'-------------------
Global start As Double
40デフォルトの名無しさん:2006/03/11(土) 13:41:15
ループ
Sleep
DoEvents
timeGetTime

あたりを使えばかなり正確&低負荷なのつれくない?
timeGetTimeは計算がミリ秒になるから
41デフォルトの名無しさん:2006/03/11(土) 14:18:11
>>40
つくってから言え
42デフォルトの名無しさん:2006/03/11(土) 14:55:22
Windowsなんて、どうせ一日に3回位リブートするんだし、
そんなに長時間のカウンタなんて無意味な様な。
43デフォルトの名無しさん:2006/03/11(土) 16:46:15
Public sub SabuRu-chin(byval obj as object)

End sub

すんません。オブジェクトをサブルーチンに値渡ししたとき
受け取ったオブジェクトがForm1かどうか見分けたいのですが
どうすればいいのでしょうか
44デフォルトの名無しさん:2006/03/11(土) 17:06:44
>>43
普通にやればいいと思うよ
45デフォルトの名無しさん:2006/03/11(土) 17:11:49
>>43
if TypeName(obj) = "Form1" then
>>44
普通って何だ?
46デフォルトの名無しさん:2006/03/11(土) 17:21:02
>>44-45
ありがとうございましたー
47デフォルトの名無しさん:2006/03/11(土) 22:50:08
> 受け取ったオブジェクトがForm1かどうか見分けたいのですが

Form1オブジェクトなのか、
Form1クラスなのかによって
コードは変わるけどな

まあ、オブジェクトと書いてあるからオブジェクトなのだろうが。

あと、TypeNameよりは、えーっとなんだっけ?
Is? オブジェクトを直接比較したり、型を直接比較したほうがいいよ。
最近使ってないからわからん。
48デフォルトの名無しさん:2006/03/11(土) 23:24:13
>>47
VBA.Information.IsObject ?
49デフォルトの名無しさん:2006/03/12(日) 05:35:25
現在VB6(SP6)環境にてActiveXコントロールを作成しているの
ですが、ActiveXのプロジェクト内に標準モジュールを追加して
そのモジュール内でコントロールのオブジェクトを指定すること
ができません。
とりあえずモジュール内でオブジェクトを生成してやれば行けるかな
と思い、モジュール内で

Dim hoge As TextBox
Set hoge = CreateObject("active.txt1")

activeはactiveXコントロール名
txt1はコントロール上のテキストボックス名

とコードを書いても実行すると、

実行時エラー'429';

ActiveXコンポーネントを作成できません。

というエラーがでます。
429についてMSDN等で調べて対処法を試してみたのですが、
解決しませんでした。

何かいい方法ありませんでしょうか?
50デフォルトの名無しさん:2006/03/12(日) 09:05:05
>>49
「コントロールのオブジェクトを指定する」てのが、何をしたいのか分からん・・・
しかも何故 CreateObject なのか・・・
51デフォルトの名無しさん:2006/03/12(日) 12:13:29
IActiveDesktop用のTBL
誰か持ってません?
52デフォルトの名無しさん:2006/03/12(日) 13:46:06
5349:2006/03/12(日) 22:36:01
説明がわかりにくくてすみません。

コントロールのオブジェクトってのは、作成中の自作ActiveXコントロール上に
配置したテキストボックス、コンボボックス等のコントロールの事です。

そのActiveXコントロール上に配置したコントロールが、ActiveXプロジェクト
内に追加した標準モジュールから「ActiveXコントロール.テキストボックス」
の様に指定ができなかったので、CreateObjectでオブジェクトを生成したら
ActiveXコントロール上のコントロールを操作できるかと思ったのでやって
みたのですが、>>49のエラーが出てできませんでした。
54デフォルトの名無しさん:2006/03/12(日) 22:54:00
>>53
テキストボックスはユーザーコントロール上に貼ったんでしょ?

UserControl1.txt1

じゃね???????????????

>>「ActiveXコントロール.テキストボックス」
テキストボックスを外部公開しないとこの様な記述は出来ない
って言うかテキストボックスをActiveX越しに呼び出す必要あるの?
55デフォルトの名無しさん:2006/03/12(日) 22:55:09
>>53
あのな。CreateObject で指定するのは「アプリケーション名.クラス名」。少なくとも、テキストボックスを
公開しておかなきゃ無理。
56デフォルトの名無しさん:2006/03/12(日) 23:10:32
>>53
ぐだぐだ長文なんか書かなくていいから、コピペですぐに
現象が再現する、必要最低最小限のコードを提示しろよ。
5749:2006/03/12(日) 23:36:06
返信ありがとうございます。

>テキストボックスはユーザーコントロール上に貼ったんでしょ?
はいそうです。
>UserControl1.txt1
モジュール上でそう記載すると「変数(UserControl1)が定義されていません」とでます。

>って言うかテキストボックスをActiveX越しに呼び出す必要あるの?
ユーザーコントロール内に関数を作っていってもいいのですが、どうせなら
関数の役割ごとの標準モジュールを作成していったほうがいいかなって
思ったので。
その標準モジュールから、作成中のユーザーコントロールに貼り付けたテキストボックスを、
指定したいんです。

>あのな。CreateObject で指定するのは「アプリケーション名.クラス名」。少なくとも、テキストボックスを
>公開しておかなきゃ無理。
すみません、プロパティやメソッドの公開の仕方はわかるのですが、コントロールの公開の仕方が
よくわかりません、よければ教えていただけないでしょうか?
5849:2006/03/12(日) 23:46:21
すみません、下記がコードです。


標準モジュール内のコード:
Public Function Ftp_Connect() As Boolean
Dim nFlag As Long
If Not bActiveSession And hOpen <> 0 Then
If UserControl1.cmb1.Text = "" Then         ←この部分でユーザーコントロールのコンボボックスのText値を指定したい
MsgBox "サーバが選択されていません!!"
Exit Function
End If

        ・
        ・(途中省略)
        ・
Ftp_Connect = True

End Function

59デフォルトの名無しさん:2006/03/13(月) 00:44:40
>>45
>>if TypeName(obj) = "Form1" then

こんな馬鹿かいるとは
Object型・インタフェースのインスタンス型を調べる時は

If TypeOf obj Is Project1.Form1 Then

だろ普通は...
6049:2006/03/13(月) 09:59:07
すみません、自己解決しました。

Dim box As ComboBox
Set box = CreateObject("プロジェクト名.ユーザーコントロール.コントロール")
と指定してやると、
If box.Text = "" Then
の様に指定してやることができました。

レス下さった皆さんありがとうございました。
61デフォルトの名無しさん:2006/03/13(月) 12:45:43
MSINETコントロールを使ってFTPアップロードをしているのですが、
JPEGファイルだけがアップできません。
ルーター辺りも疑ってみたのですが、Nextftpだと普通にアップできるし…。

どなたか同じ症状が出た方はいますか?
6261:2006/03/13(月) 13:10:11
原因はWindowsファイアウォールのせいみたい。
無効にしたら普通にアップロードできた。
けど、何でMSINETでJPEGファイルPUTするときだけ、
駄目になるんだろ??

ともかくVBは関係なさそです。
スレ汚しスマソ。
63デフォルトの名無しさん:2006/03/13(月) 13:11:00
64デフォルトの名無しさん:2006/03/13(月) 13:57:46
>>61
Nextftpはパッシブモードで通信してたんじゃないかい?
65デフォルトの名無しさん:2006/03/13(月) 17:57:17
ニッチテキストボックスで、改行コードがあったら↓と表示させる方法を教えてください
66デフォルトの名無しさん:2006/03/13(月) 19:21:50
>>65
ニッチ・・・
67デフォルトの名無しさん:2006/03/13(月) 21:04:34
while true
KBD(VK_2, CLICK, 2)
KBD(VK_4, CLICK, 2)
KBD(VK_7, CLICK, 2)
wend

このようなプログラムを実行しようとしたのですが、
2行目の20文字目。Subプロシージャを呼び出すときカッコは使えません。
というエラーがでます。
どうしたらよいでしょうか
68デフォルトの名無しさん:2006/03/13(月) 21:45:07
VB6SP6を使用しています。フロッピーディスクのフォーマットについて質問があります。

CommonDialogを使用して、フロッピーディスクからファイルを開き、データを取得した後に
SHFormatDriveでフロッピーをフォーマットしようと思うのですが
フォーマットダイアログの開始ボタンを押すと「他のプログラムで使用している」という旨の
メッセージが出てフォーマットできません。

解決方法などありますでしょうか。
69デフォルトの名無しさん:2006/03/13(月) 22:14:46
>>67
Call KBD(VK_2, CLICK, 2)
70デフォルトの名無しさん:2006/03/13(月) 22:15:31
>>68
ちゃんとそのファイル閉じてる?
71デフォルトの名無しさん:2006/03/13(月) 22:20:43
解決法は知らんが、現在どのプロセスがファイルを使用しているか調べるツール。
http://www.forest.impress.co.jp/article/2005/05/10/unlocker.html
72デフォルトの名無しさん:2006/03/13(月) 22:23:23
>>69
ありがとうございます。

しかし次は型が一致しません ’KBD’ とエラーが表示されてしまいました
これはどのように対処したほうがよいでしょうか
よろしくお願いします。
73デフォルトの名無しさん:2006/03/13(月) 22:26:03
>>72
>>56
KBD VK_2, CLICK, 2
74デフォルトの名無しさん:2006/03/13(月) 22:30:59
while true
Call KBD(VK_2, CLICK, 2)
Call KBD(VK_4, CLICK, 2)
Call KBD(VK_7, CLICK, 2)
wend

行 2
文字 1
コード 800A000D
75デフォルトの名無しさん:2006/03/13(月) 22:52:54
>>65
その質問よく出るよな 過去にも何人も質問してるけど誰もまともに答えて無いよ

・アレはテキストボックスでは無く テキストボックスの様に見える絵

ってのが結果

ttp://vivi.dyndns.org/tech/tech.phtml を読んでみ

わかんなかったら テキストボックス の vbCrLf を "↓" & vbCrLf にするw
76pp:2006/03/13(月) 22:56:13
offceのクリップボードのアイテムをクリアする方法は無いのでしょうか?
当方PPTのデータをADOBEのソフトにコピペをするバッチ処理のツールを
作ろうと思っているのですがいつも15〜16ページ前後でメモリ不足で終了
してしまいます。どなたか知恵をかしてください。
77デフォルトの名無しさん:2006/03/13(月) 23:59:42
>>70
閉じてます。

>>71
試してみます。

ありがとうございました。もう少し調べてみます。
78デフォルトの名無しさん:2006/03/14(火) 00:03:58
>>75
それのどこを読めばいいのかわからんが、

> ・アレはテキストボックスでは無く テキストボックスの様に見える絵
> ってのが結果
アレとか結果って言葉の使い方がおかしいのはいいとして、
そういう実装もあるってだけでしょ?

オーナードローで改行の位置に絵を書くというやり方もあるだろうし。
79デフォルトの名無しさん:2006/03/14(火) 00:04:39
>>76
Excelとかでマクロ記録してクリップボードをクリアして、
そのVBAを参考にすればいいじゃん。
80pp:2006/03/14(火) 00:19:10
>>79
返答ありがとうございます。しかしながらクリップボードのクリアは、マクロには
書き込まれないみたいなのです…。
81デフォルトの名無しさん:2006/03/14(火) 00:32:30
>>78
テキストボックスは オーナードロー属性を持たないよ
サブクラス化してもやるんだったら描画捕まえるとかしか(精度低くていいんなら キーが入力された とか スクロールした時ので十分)

HTMLのハイライト表示やった事あるけど重しチラつくし使い物にならなかった
改行程度ならいけると思う
82デフォルトの名無しさん:2006/03/14(火) 00:35:45
おいおいGetDCの引数は何ですかw
83デフォルトの名無しさん:2006/03/14(火) 00:40:30
>>80
コピーしてクリアしたら
Selection.Copy
Application.CutCopyMode = False
Selection.Clear
こうなった。
84pp:2006/03/14(火) 00:50:57
>>80
ありがとうございます、もう一度ためしてみます。
85デフォルトの名無しさん:2006/03/14(火) 13:43:33
環境はオラクル10gとVB6です。

テーブルAにdate型のJikanフィールドがあり、2006/01/01 12:12:12というデータが入っているとして、

select * from A where Jikan = '2006/01/01 12:12:12'

を実行すると
literal does not match format string というエラーが発生してしまいます。

抽出条件に日付・時刻を指定したいのですが、どうすればいいのでしょうか?
86デフォルトの名無しさん:2006/03/14(火) 13:59:02
>>85
select * from A where Jikan = ?
プレースフォルダにして日付時刻型のパラメータを指定。
または
select * from A where Jikan = TO_DATE('2006/01/01 12:12:12','YYYY/MM/DD HH24:MI:SS')
87デフォルトの名無しさん:2006/03/14(火) 14:09:13
>>77
おまいの作ったアプリのカレントフォルダがFDDのドライブになってるんでない?
CurDir で適当な場所に変更したらすんなり通るんじゃないかと
88デフォルトの名無しさん:2006/03/15(水) 09:12:20
VB6.0のアプリケーションってランタイムライブラリが必要ですが
コンパイルしたexeを起動したときに
「ランタイムが必要です。」とかメッセージを出して
ランタイムを配布しているサイトを開くといったようなことは
できないでしょうか?
ただランタイムエラーが発生するだけなのを放置するしかないでしょうか?
89デフォルトの名無しさん:2006/03/15(水) 09:25:42
インストーラーを作ってそれを配布しればいいじゃん。
そうじゃなければ、.netへ移行してノータッチデプロイなりクリックワンスなりで実現。
90デフォルトの名無しさん:2006/03/15(水) 10:55:27
>>88
ActiveXコントロールを作り、ディストリビューションウィザードで
インターネットパッケージを作ってみては?
VBランタイムもMSのサイトから自動的にインストールできるようになるよ。
ただ、インターネットパッケージはActiveXベースのプロジェクトでないと
使えないのが難点だけど。
91デフォルトの名無しさん:2006/03/15(水) 11:05:11
>>88
出来る。
9288:2006/03/15(水) 11:57:04
>>89-91
ありがとうございます。

ちょっと考えたのですが
VCなどでVBのランタイムが入っているかどうかのチェックをする
アプリを作って、そこからVBのexeを起動するようにしてはどうかと
思ったのですが、そもそもVBのランタイムが入っているかどうかの
チェックのやりかたがわからないのですが、困ったものです。
93デフォルトの名無しさん:2006/03/15(水) 12:07:12
setup.exeはVBで作られています
94デフォルトの名無しさん:2006/03/15(水) 12:47:20
>>92
簡単にチェックするなら、
MSVBVM60.DLL / VB6JP.DLL
辺りの存在を見てみるとか。
9588:2006/03/15(水) 13:32:09
>>94
ありがとうございます。
exeを秀丸で開いてdllとocxを検索してみたところ
VB6JP.DLL
MSVBVM60.DLL
MSWINSCK.OCX
MSCOMCTL.OCX
が必要みたいでしたので、これらをLoadLibrary()してみれば
よいかもしれません。
96デフォルトの名無しさん:2006/03/15(水) 14:13:17
>>95
いや下の2つは・・・
9788:2006/03/15(水) 14:23:12
なんとなくうまくいったような・・・・
でもこれってバージョンとかどうなんでしょうね。

#include "stdafx.h"
#include <windows.h>

int main(int argc, char* argv[])
{
HINSTANCE h;
h = LoadLibrary("mswinsck.ocx");
if (h == NULL) {
printf("ng!");
} else {
printf("ok![%d]\n", h);
}

getchar();
return 0;
}


98デフォルトの名無しさん:2006/03/15(水) 14:49:10
>>95
そんな寒い方法で調べてないでディストリビューション ウィザード起動して
パッケージを選択、パッケージ形式を依存ファイルにしてDEPファイルを作れ
そのファイルの中身をメモ帳で見れば、何が必要なのかわかるよ
9988:2006/03/15(水) 14:54:51
>>98
わお!
出ましたよ。リスト。秀丸では見つけられなかったものが
たくさんありました。
100デフォルトの名無しさん:2006/03/15(水) 16:17:07
VB5.0ラーニング使いなんですが
GUIありなしに関わらずdllって作れますか?
101デフォルトの名無しさん:2006/03/15(水) 16:24:55
こんなことができるソースないかな?

HTMLをテキストに変換する
http://win32lab.com/fsw/htox.html
102デフォルトの名無しさん:2006/03/15(水) 17:29:16
>>100
いや普通DLLにGUIはないが。
103デフォルトの名無しさん:2006/03/15(水) 18:04:58
>>100
ActiveXDLLなら作れるが、ネイティブなのはムリポ
104デフォルトの名無しさん:2006/03/15(水) 18:18:15
>>102,103
そうか
どうもです
105デフォルトの名無しさん:2006/03/15(水) 18:22:51
すいません。先日書き込んだものですが
テンキーの 7 4 2 を半永久的に押し続けたいのですが
初心者なもので起動してもエラーばかりです。

どなたか作っていただけませんでしょうか
106デフォルトの名無しさん:2006/03/15(水) 18:43:56
>>105
「起動してもエラーばかり」って、どんなコードでどんなエラーが出るんだよ。
107デフォルトの名無しさん:2006/03/15(水) 18:48:45
>>105
「先日書き込んだ」って、アンカー付けろよ。

Option Explicit

Const VK_NUMPAD2 = &H62
Const VK_NUMPAD4 = &H64
Const VK_NUMPAD7 = &H67

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags&, ByVal dwExtraInfo&)



Do
Call keybd_event(VK_NUMPAD2, 1, 0&, 0&)
Call keybd_event(VK_NUMPAD4, 1, 0&, 0&)
Call keybd_event(VK_NUMPAD7, 1, 0&, 0&)
DoEvents
Loop

#さて、釣れるかな・・・
108デフォルトの名無しさん:2006/03/15(水) 21:47:47
#さて、釣れるかな・・・
ひとことよけい
109デフォルトの名無しさん:2006/03/17(金) 09:52:39
VB6でピクチャボックスに表示させた
JPGとかPNGの画像を縮小する方法
教えてください〜
110デフォルトの名無しさん:2006/03/17(金) 11:18:26
>>109
一旦 Image コントロールにコピーして Stretch してから戻すとか。
111デフォルトの名無しさん:2006/03/17(金) 18:13:08
>>107
ばか、それじゃ押してないだろ、押し続けたいって言ってるんだよ。
USBにロボットアームをつないで指で247キーを押さなきゃダメに
決まってるだろ。早く教えてやれ。俺?しらねえよそんなの。


112デフォルトの名無しさん:2006/03/17(金) 18:44:20
まぁ、誰かが質問に回答しても、その後質問者は
二度と現われないからどうでもいいじゃん。
113http://www.vector.co.jp/soft/win95/util/se072729.html:2006/03/18(土) 19:28:26
64bitに対応したトリップ検索プログラムありますか?

TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
114デフォルトの名無しさん:2006/03/18(土) 19:35:06
>>113
その TextSS  はVBアプリの上 DLL類を必要とするから ネイティブ対応は簡単ではないよ
115デフォルトの名無しさん:2006/03/18(土) 19:38:30
>>113
スレ違い。
116デフォルトの名無しさん:2006/03/18(土) 19:52:38
>>113
時間帯によって文体が違うのな。今日一日で何回読んだか…超マルチ。嫌われただろうなぁ。
117デフォルトの名無しさん:2006/03/20(月) 00:14:20
実行ファイルのみから、すべてのソースを抽出するようなツールはありませんでしょうか?
118デフォルトの名無しさん:2006/03/20(月) 00:18:06
>>117
黙れ乞食
119デフォルトの名無しさん:2006/03/20(月) 00:33:28
vb6用の逆コンパイラって無いでしょうか?
ググってみてもver4とか古いのしか対応していないやつばかりで
見つかりません。
前任者が仕様書も何も残さず突然出社しなくなって困っています。
ご存じの方がいらしたら教えてください。お願いします

120デフォルトの名無しさん:2006/03/20(月) 00:37:22
ソースは前任者の家にしかないのか?
不自然な設定だなぁw
121デフォルトの名無しさん:2006/03/20(月) 00:44:17
>>119
常日頃からバックアップを取っておかなかったあなた自身の失策ですよ

>>118,120
わからないのなら、わからないと言える素直さを身に着けましょう。
122デフォルトの名無しさん:2006/03/20(月) 00:45:10
>>119
わかりません。
123デフォルトの名無しさん:2006/03/20(月) 00:45:41
>>119
わかりません。
124デフォルトの名無しさん:2006/03/20(月) 00:46:12
>>119
俺もわかりません。
125デフォルトの名無しさん:2006/03/20(月) 00:46:42
>>121
わからないのなら、わからないと言える素直さを身に着けましょう。
126デフォルトの名無しさん:2006/03/20(月) 00:51:07
会社のPCにはソース残ってるだろ?
まさかそいつの個人の持ち物のPCにしか入ってないなんて馬鹿な事はしてないだろうしな
ウイルス問題もあるし、会社の外に持ち出すなんて考えられないよな
127デフォルトの名無しさん:2006/03/20(月) 00:51:56
>>12
わからないのなら、わからないと言える素直さを身に着けましょう。
128デフォルトの名無しさん:2006/03/20(月) 00:56:29






129デフォルトの名無しさん:2006/03/20(月) 01:44:29
VB6 用の逆コンパイラはあるけど、いまいちだな。
実際の動きから作り直したほうが早いかも。
130デフォルトの名無しさん:2006/03/20(月) 01:59:35
>>12
わからないのなら、わからないと言える素直さを身に着けましょう。
131デフォルトの名無しさん:2006/03/20(月) 09:15:36
>>119
ある訳がない。
そんな人が書いたプログラムなんてろくでもないので、
最初っから設計し直した方が遥かに早くて高品質。
132デフォルトの名無しさん:2006/03/20(月) 09:43:42
133デフォルトの名無しさん:2006/03/20(月) 16:38:17
FormなりPictureBoxなりのhDCに描いたデータをjpgとして保存する方法を教えてください
134133:2006/03/20(月) 16:40:09
カラーは少ないのでgifでもいいです
135デフォルトの名無しさん:2006/03/20(月) 17:38:31
>>134
VB単体ではめんどくさいのでよそのDLLを使うといい
136133:2006/03/20(月) 17:57:34
>>135
早速ありがd。

よそのDLL使う場合配布等面倒なんだよな。
できれば単独でやりたいけど、いろいろ探したがサンプルはなかなか落ちてないなあ。
GDIPlusとか使ったら簡単みたいだけど、これも環境によっては配布端末に入ってない可能性ありそうだし。

ああ、作んのマンドクセ('A`)
誰か、ソースくれ!
137デフォルトの名無しさん:2006/03/20(月) 18:04:38
>>135
Dll も Ocx も、その程度の機能のやつなら、
フリーで沢山ありそうだね。
138デフォルトの名無しさん:2006/03/20(月) 18:12:46
>>136
ここは学校の課題や仕事を、あなたの代わりにやってあげるためのスレではありません
速やかに消えてください
139デフォルトの名無しさん:2006/03/20(月) 18:28:47
>>136
配布自由のフリーなら、全然面倒じゃない。
140デフォルトの名無しさん:2006/03/20(月) 18:50:47
>>137, 139あんがとね。
>>139
既に配布してるアプリの追加機能にするから、配布面倒な事情もあって。
まあ、いろいろとあってさ。
その辺はなんとかできなくもないけど、どっかにソースあったらその方がいいなと思って。。。

>>138
んなこたあわかっとるが、まんどくせえから親切な人をあてにして聞いてるんであって、
おまえが答えたくないなら答えんでもよろし。
俺が消える必要はないだろ。

ってか、fjにしても、2ch他BBSにしても、教えて厨、クレクレ厨に冷たい奴多いな!
答えたくないならスルーしとけばいいのに。
141デフォルトの名無しさん:2006/03/20(月) 18:56:50
>>140
おまえはホームラン級の馬鹿だな
言葉を選んで質問するだけで波風たたずに答えがかえってくるのに
142デフォルトの名無しさん:2006/03/20(月) 18:59:52
>>140
街中を肩で歩いてる奴に温かい声を掛けてくれるってよっぽどの所だと思うぞ
143デフォルトの名無しさん:2006/03/20(月) 19:01:15
社会不適合者ってこんな感じなんだろうね。
144デフォルトの名無しさん:2006/03/20(月) 19:07:09
思考がどうみても在日です。
145デフォルトの名無しさん:2006/03/20(月) 19:10:23
馬鹿って言うな馬鹿><
馬鹿なもんは仕方なかろうもん。


波風立たせようとしてるわけじゃなくて、特に技術者関係(PGやソフト開発関連)のBBSとかでは、
『調べたの?』とか『ヘルプ読んだ?』とか、答えも教えてやらないくせに難癖つける奴が多いと思ったの。

そういう奴ってリアルに嫌な奴だと思うぜ?

一昔前なら、大手でもそんな奴多かったし、そういう先輩に嫌味も一杯言われたけど、
正直今時流行んないと思うのね。そういうの。

別に2ch、BBSに正解を求めてないし、教えたい人が教わりたい人に
つドゾー
tp://www.hogehogeuhauha.....
とか言って教えてやりゃいいじゃんか、と思うのだ。

今時の技術者には開発期間が短すぎて時間がないんだから、
知ってる奴は教える、知らない奴はスルー、一々つまらんレスで煽ったり、煽られたりしてる時間なんかないっての。

こんなだからSE、PGがすぐにやめてくんだよ。
楽しく仕事しよーぜ?
146デフォルトの名無しさん:2006/03/20(月) 19:19:47
無駄に長文かくな馬鹿
147デフォルトの名無しさん:2006/03/20(月) 19:21:02
成長の無い幼稚な馬鹿に何を言っても無駄
148デフォルトの名無しさん:2006/03/20(月) 19:41:57
タカアンドトシのコントかとおもった。
「こどもか!」ってつっこみを繰り返すやつ。
149デフォルトの名無しさん:2006/03/20(月) 19:46:39
みんな余裕がないんだね ┐(´∀`;)┌
150デフォルトの名無しさん:2006/03/20(月) 19:52:43
>>140
意味不明。
どのみち配布するんだから、何使おうが同じだろが。

>>145
皆がちゃんと親切に正解を教えてくれてるのに、聞く気ないじゃん全然。
151デフォルトの名無しさん:2006/03/20(月) 19:59:24
>>140
ここはVBプログラミングについて教えを請う場であって
作成依頼をする場所ではありません
ソース下さいは「教えを請う」こととは違います
わがまま放題したいなら、自分のサイトで掲示板を立ててやってください
152デフォルトの名無しさん:2006/03/20(月) 20:03:51
>>145
すでに回答もらったのに、
「それじゃ、まんどくせ、ソース書いてくれ」
って言ってきてるんだが、後輩がそういってきたら
お前なら、そいつの担当部分を実装してやるのか?
153デフォルトの名無しさん:2006/03/20(月) 21:05:40
>>140
fj は junet の頃から見てるけど、
お前の様な質問者は昔は皆無だった。
154デフォルトの名無しさん:2006/03/20(月) 21:32:51
VB6で、Program FilesフォルダやProgram Files\Common Filesフォルダの取得の仕方って
どうすればいいのでしょうか?

ググってみて、SHGetSpecialFolderPathというAPIには辿り着いたんですが、
少々思っているディレクトリのパスとは違いましてorz
このAPIだとユーザ毎の各種特殊フォルダが取得できるみたいですが。

どなたかご教授くださいませ。
155デフォルトの名無しさん:2006/03/20(月) 21:43:51
>>154
CSIDL_PROGRAM_FILES と CSIDL_COMMON_PROGRAMS や
CSIDL_COMMON_DOCUMENTS じゃだめなわけ?
思ってるディレクトリって何よ
156デフォルトの名無しさん:2006/03/20(月) 23:38:17
>>154
つEnviron$("CommonProgramFiles")
157デフォルトの名無しさん:2006/03/21(火) 00:19:30
>>153
> fj は junet の頃から見てるけど、
> お前の様な質問者は昔は皆無だった。

昔は回答者も匿名で罵倒だけするような
モラルのかけらも無い奴じゃなかったからなw
158デフォルトの名無しさん:2006/03/21(火) 01:49:44
確かにw
159デフォルトの名無しさん:2006/03/21(火) 04:57:43
WinXP-Pro+SP2 で VB6.0+SP6 です。
プロミスキャストモードで、パケットキャプチャしてます。

これを簡易的なFirewallに昇華させたくて相談です。

取得したパケットの中で自分が送信するパケットだけを
遮断させたくて、TCPヘッダを見て自分発だったらその
ときのソケットにSetsockopt()で、SO_LINGERをセットを
しようとすると、強制終了しちゃいます。

lRet = Setsockopt(s, SOL_SOCKET, SO_LINGER, Linger, Len(Linger))

3晩ググッて分からなかったので、とりあえずやってみた
のですが、いろいろ読んだり試していくうちに、自分でも
これはかなり常識的な手段では無いと感じています。。

やはり、かなりおバカな方法でしょうか?
プロミスキャストモード以外でパケットを見張る方法が、
他にありましたら、そこからシャットダウンが出来そうな
気もしますが、そんな感じで合ってますでしょうか?

また、Setsockopt()するソケットをWSADuplicateSocket()で
複製して、そいつにSO_LINGER,を与えて急いで送出すれば
受信側にRSTが届くのと同じ効果を与えられそうな気がしま
すが、これも有り得ない方法でしょうか?

VBだけでドライバ云々はスキル的に無理なので何とか
こんな感じで遮断を実現したいのですが、何か方法が
ありませんでしょうか?ご教授よろしくお願いします!
160デフォルトの名無しさん:2006/03/21(火) 09:45:31
>>157
まぁ匿名掲示板だしね。
161デフォルトの名無しさん:2006/03/21(火) 09:46:20
>>159
そういうOCXを買った方がいいんじゃないの。
162デフォルトの名無しさん:2006/03/21(火) 09:47:35
VB6でAPIを使わずに、ウィンドウの有無は無視、アクティブ優先で
指定した座標クリックしたいのですが、
何か技法あったらご教授おねがいします。
163デフォルトの名無しさん:2006/03/21(火) 10:32:12
>>162
APIを使わない理由は何だ?
164デフォルトの名無しさん:2006/03/21(火) 10:38:48
>>162
「ウィンドウの有無は無視、アクティブ優先」の意味が不明。
165デフォルトの名無しさん:2006/03/21(火) 10:59:37
>「ウィンドウの有無は無視、アクティブ優先」
最前面のウィンドウをクリックしたいって事だろ
VBだけじゃ無理だな
166デフォルトの名無しさん:2006/03/21(火) 11:13:58
>>165
keybd_event で解決なのにね。
167デフォルトの名無しさん:2006/03/21(火) 11:52:37
>教えて厨、クレクレ厨に冷たい奴多いな!

冷たくないやつの方が珍しいと思うが。
168デフォルトの名無しさん:2006/03/21(火) 20:45:24
Excelとかのファイルのプロパティの概要のところにある
作成者を書き換える方法あります?
169デフォルトの名無しさん:2006/03/21(火) 20:51:04
微妙にスレ違いだとは思うんですが、質問させてください。

VBのソースの日本語部分だけを抜き出して、エクセルにはきだしたいのですが、
これってプログラムくまなきゃ駄目なんでしょうか・・・
エディターとかで出来ないでしょうか?
170デフォルトの名無しさん:2006/03/21(火) 21:14:22
>>169
GREPして結果をエクセルに貼る
171デフォルトの名無しさん:2006/03/21(火) 21:22:36
>>168
エクセルVBAならありそう。
172デフォルトの名無しさん:2006/03/21(火) 21:31:56
>>170
返答ありがとうございます。
ただ文字列は不特定なので「日本語」の部分だけを抜き出したいんですよね。
173デフォルトの名無しさん:2006/03/21(火) 21:37:31
>>172
不特定の場所にある「日本語」という文字列を探せばいいわけだろ?
174デフォルトの名無しさん:2006/03/21(火) 22:11:53
>>172
エディタの正規表現で出来るじゃん。
175デフォルトの名無しさん:2006/03/22(水) 18:46:14
>>162
俺のエスパー能力で推察するに
Excelとか、ソースが存在しないプログラムを自分のプログラムから
操作したいと見た。

見たところで回答は浮かばないのでドロンします。
176154:2006/03/22(水) 19:34:20
>>155-156

Environ(4)で取得できました。
でもこれだと
CommonProgramFiles=C:\Program Files\Common Files
って返ってきてしまうんですが・・・
等記号の右辺を切り出して使用することにしました。

でもなぁ・・・
177168:2006/03/22(水) 23:11:08
>>171
どうもです。
ActiveWorkbook.BuiltinDocumentProperties("Author").Value = "hoge"
でできました。
178デフォルトの名無しさん:2006/03/23(木) 00:03:05
>>177
ちゃんと結果のコードを書き込むなんて素晴らしい人だ。
それでこそ、このスレのログがDBとなるね。
179デフォルトの名無しさん:2006/03/23(木) 02:17:46
>>176
>Environ(4)で取得できました。
俺の環境だと CLIENTNAME=Console が返ってくる
つか、なんでインデックスで取ろうとしてるんだよw
インデックスは普通列挙するときに使うもんだろ
もうちょっと、しっかりMSDN読んでこいよ
180デフォルトの名無しさん:2006/03/23(木) 09:16:18
>>179
>>156 にちゃんと Environ$("CommonProgramFiles") と
書いてあるのに、わざわざ 4 にしたのは何故か・・・
181デフォルトの名無しさん:2006/03/23(木) 11:28:21
いつどこで誰が作ったか知らないプログラムを見させられてるんですが
PictureBoxの中にコントロールをまとめて、フレームっぽく使ってるのは、
なんか意味があるんでそか
182デフォルトの名無しさん:2006/03/23(木) 11:32:38
お前が理解できるかどうかはともかく、作った人にとっては意味があるからそうしてるんじゃないの?
コードまで見ないとコンテナにFrameではなくPictureBoxを使った理由までは明確に断言できないけどね。
183デフォルトの名無しさん:2006/03/23(木) 11:38:58
>>182
コード見ると、まとめて可視/不可視、まとめて座標移動くらいしかしてないですね
フレームでもいいけど、たまたまこの人は絵箱が好きだった、ってだけのことなのかな
18488:2006/03/23(木) 11:54:40
スクロールバーを出したかったからだよ
185デフォルトの名無しさん:2006/03/23(木) 12:10:48
>>181
懐かしいテクニックだな。
186176:2006/03/23(木) 15:24:04
>>179
>>180

あ!>>176の左辺を引数にすれば良かったんだorz
すっきりした!
あんがと。
187デフォルトの名無しさん:2006/03/23(木) 15:56:30
>>186
お前には >>156 が見えないのか?
それともわざと無視してるのか?
188186:2006/03/24(金) 11:59:09
>>187
だから、>>176の左辺って書いてるじゃん。

CommonProgramFiles=C:\Program Files\Common Files

の左辺つったら CommonProgramFiles だろ?
189デフォルトの名無しさん:2006/03/24(金) 13:14:51
190デフォルトの名無しさん:2006/03/24(金) 15:28:47
NUMLOCK CAPSLOCKの状態を判別するにはどうしたら…?
(?_?)
191デフォルトの名無しさん:2006/03/24(金) 16:14:28
>>190
キーボードにランプがついていると思うので、それを見れば状態がわかりますよ
光っていたらONです。


ttp://www.bcap.co.jp/hanafusa/VBHLP/specialkey.htm
192190:2006/03/24(金) 17:43:53
それはわかります
条件式として組み込みたいので

ブール型などで返すようなコードが
知りたいのです
193デフォルトの名無しさん:2006/03/24(金) 17:47:43
>>192
コードが書かれているリンクもおしえてるのに、なにが不満なんですか?
194190:2006/03/24(金) 17:47:45
スイマセン
リンクとんだら分かりました
ありがとでした
m(_ _)m
195デフォルトの名無しさん:2006/03/25(土) 01:15:25
>>181
多分XPのビジュアルスタイル対策だと思う
Frameの中にコントロールを置くとXP(ビジュアルスタイル適用)で真っ黒表示になるVB6のランタイムバグがある
196デフォルトの名無しさん:2006/03/25(土) 02:18:01
誰だあげた奴はまったく・・
197デフォルトの名無しさん:2006/03/25(土) 02:26:43
>>181
単なる装飾目的のこともあるよ。
ボタンとかをやたらPictureBoxの中に置いてみたりするやついるじゃん。
たまに。いない?いるんだってそれが。
198デフォルトの名無しさん:2006/03/25(土) 15:19:27
:呼んだ?
199デフォルトの名無しさん:2006/03/26(日) 00:55:01
いや、呼んじゃいないけどさ。
200デフォルトの名無しさん:2006/03/26(日) 03:27:36
質問です
最近の高機能なマウスに、ブラウザのページ移動の機能なんかがついたボタンがありますが
フォーム上で、こういう特殊なマウスのボタンが押されたことを知る方法を教えてください
201デフォルトの名無しさん:2006/03/26(日) 03:40:19
>>200
spy++
サブクラス化
202デフォルトの名無しさん:2006/03/27(月) 04:24:35
ADOでデータベースアプリ作っているんですが以下の連続したIf文でどちらもスルーします。
変数 "rs!日付" はデータベースのレコードセットの日付/時刻型のフィールドです。
両方にelseをつけるとどちらもelseを通ります。なぜだか教えてください。

If rs!日付 <> Null Then
MsgBox ("Not Null")
End If
If rs!日付 = Null Then
MsgBox ("Null")
End If
203デフォルトの名無しさん:2006/03/27(月) 07:03:28
>>202
Nullとの比較はIsNull()を使うんだよ
204デフォルトの名無しさん:2006/03/27(月) 13:23:49
>>203
ありがとうございました。
IsNull() 調べてみました。

>重要 IsNull 関数を使用すると、式に Null 値が含まれているかどうかを
>調べることができます。If Var = Null や If Var <> Null のように他の
>状況では真 (True) と評価される式でも、偽 (False) になります。
>これは、Null 値を含む式はすべて式自体が Null 値となり、偽 (False)
>と評価されるためです。

なんでこんな仕様なんでしょう?
205デフォルトの名無しさん:2006/03/27(月) 13:49:46
>>204
仕様だから。
206デフォルトの名無しさん:2006/03/27(月) 14:15:44
Nullは値じゃないから。
207デフォルトの名無しさん:2006/03/27(月) 14:21:31
Nullは値
208デフォルトの名無しさん:2006/03/27(月) 14:54:40
VBから参照設定でExcelを指定して、セルへの値の貼り付け、
レイアウトなどを全てVBから行って、印刷する場合なんですが

複数台のパソコンにインストールする場合、Excelのバージョンを
全て同じにしないと動かないもんですか?
209デフォルトの名無しさん:2006/03/27(月) 15:00:12
参照設定したらアーリーバインドだから、動かないんじゃないの?
CreateObjectなら互換性ある範囲で動くと思うけど。

まあ、どっちにしても普通は避ける。
210デフォルトの名無しさん:2006/03/27(月) 15:14:00
>>208
逆だよ。
「VBから参照設定でExcelを指定して、セルへの値の貼り付け、
レイアウトなどを全てVBから行って、印刷する」必要があるから、
インストールする全てのPCを同じ設定にして下さい、と頼む。
211208:2006/03/27(月) 17:06:10
なるほどー
調べてみたら、レイトバインドでやる、というのが常道みたいですね
ありがとうございました
212デフォルトの名無しさん:2006/03/27(月) 17:23:05
>>211
いや、だからなるべくその状態にしないのが常道だよ。
同一コンパイルモジュールでの、複数Office対応は基本的に考えない。
極端な話、Officeのバージョン毎にEXEを分ける。

少なくとも、同一EXEであっても、全てのOfficeバージョンに対するテストは必須となる。
なので、当然見積もり時点でそれを考慮すべきであって・・・。
213デフォルトの名無しさん:2006/03/27(月) 20:16:53
つまりExcelはExcel単体で使えと。
214デフォルトの名無しさん:2006/03/27(月) 23:39:12
将来のバージョンでの動作は保証しませんの一言でいいやん。
215デフォルトの名無しさん:2006/03/28(火) 01:18:46
現在接続されている自分のグローバルIPアドレスを取得する方法を教えてください
216デフォルトの名無しさん:2006/03/28(火) 01:51:17
>>215
外部のサーバに接続してIPをかえしてもらうのが一番正確かと
217デフォルトの名無しさん:2006/03/28(火) 02:02:37
ルータ使っていると自分のグローバルIPは存在しないしな。
UPnP対応のルータだったら、ルータに聞けば答えてくれるらしいが。
218デフォルトの名無しさん:2006/03/28(火) 02:13:34
>>216
外部のサーバーに対してどのように働きかければIPアドレスを返してくれるのですか?
その具体的な方法を教えてください

>>217
ルーターに聞くとは、具体的にどういう意味ですか?
またルーターではなく、モデム接続の場合は取得可能な方法がありますか?
219デフォルトの名無しさん:2006/03/28(火) 02:32:09
>>218
そのまえにどんな状況でIP知りたいんだ?闇雲にやったって遠回りだ
オレはこれから寝るから誰かあと頼む
220215:2006/03/28(火) 04:07:44
>>219
ありがとうございます
ルーターやモデム、無線LANなど、一般的なインターネット接続環境を対象にしています
ただ全ての環境で通用する方法でなくてもよいです
特定の環境でしか通用しない方法でもいいので、具体的なやり方を教えてください
221デフォルトの名無しさん:2006/03/28(火) 11:36:15
>>220
Dim Tmp$
With Inet1
.URL = "http://taruo.net/e/"
Tmp$ = .OpenURL
End With

Dim chBuf() As String
chBuf = Split(Tmp$, vbLf)

Dim i%
For i% = 0 To UBound(chBuf)
If InStr(chBuf(i%), "host=") <> 0 Then
Text1.Text = chBuf(i%)
Exit For
End If
Next i%
222デフォルトの名無しさん:2006/03/28(火) 11:55:01
>220
特定の環境でさえ…と言うなら、まず特定の環境を定義してくれ。
じゃないと、決め打ちでいんじゃね?とか、答えちゃうぞ。
223デフォルトの名無しさん:2006/03/28(火) 12:44:22
>>220
決め打ちでいんじゃね?
224215:2006/03/28(火) 13:41:44
>>222
わかりました
YahooのADSL回線でレンタルのモデムを使用して接続した環境での取得方法を教えてください
最初の質問する段階から、環境によって取得方法が変わることすら知らなかったので
これだけでいいのか私には分かりませんので、まだ不確定な要素があれば指摘してください
225デフォルトの名無しさん:2006/03/28(火) 14:07:55
そもそも何でグローバルIPが必要なの?って事の方が重要な気が
すなおにグローバルIPを取得するべき物じゃないの?
226デフォルトの名無しさん:2006/03/28(火) 14:11:14
>>224
何のためにそういうことをしたいのかがわからないから推測で書くけど、
外部からインターネット経由で自宅のPCにつなぎたいの?
確認くんとかDDNSで解決しないかな?
227215:2006/03/28(火) 14:41:21
>>225
>すなおにグローバルIPを取得するべき物じゃないの?
その素直な取得方法を教えてください

>>226
せっかくの提案ですが、代わりの方法は考えていません
私が知りたいのはあくまでも>>224条件下でのグローバルIPアドレスの取得方法です
228デフォルトの名無しさん:2006/03/28(火) 14:42:31
YahooのADSL回線でレンタルのモデムを使用して接続した環境でも
無線と有線では違うし。
229デフォルトの名無しさん:2006/03/28(火) 14:44:38
>>224
>>221 はあぼーんしてるのか?
230215:2006/03/28(火) 15:14:28
>>229
あ、定期リロードして一番下にスクロールしてたので、ちょうど隠れて見落としてました

>>221
ありがとうございます、参考にさせていただきます
ただ、その方法だと、特定サイトに依存した処理になってしまいますよね
出来れば、もう少し確実に取得できる方法を教えていただけると助かるのですが
231デフォルトの名無しさん:2006/03/28(火) 15:22:05
それで215は何でグローバルIPが必要なのか?
理由によってはグローバルIPが判らなくても別の方法があるかもしれないだろうに。
232デフォルトの名無しさん:2006/03/28(火) 15:25:31
確実にやりたきゃ複数のサーバにIP返すCGIを仕込んでおいて
一つが失敗したら切り替えてトライするしかない
233デフォルトの名無しさん:2006/03/28(火) 15:29:36
>>230
だ・か・ら。
他の人が書いてる様に、あぁいう方法しかない、って事が理解出来ないのか?
特定の環境下で可能な方法を聞いておきながら、特定のサイトに依存しては駄目
とは、我侭な事夥しい。
あのサイトと同じ事をするサーバを、お前自身で立ち上げてそれを使え。
234デフォルトの名無しさん:2006/03/28(火) 15:33:01
即答されてるのにどうしてこんなにぐずってるんだ?
235215:2006/03/28(火) 15:46:04
>>323
なるほど、ということは DiCE などのIPを取得する機能を持つアプリは
作者が自前のCGIを用意して、そこへアクセスして実現しているということですか?

>>233
>他の人が書いてる様に、あぁいう方法しかない、って事が理解出来ないのか?
すみません、どのレスのことでしょうか?
ああいう方法とは、どういう方法ですか?

>特定の環境下で可能な方法を聞いておきながら
違います、環境は一般的な接続環境ならなんでもいいんです
ただ、環境によって取得方法が変わるとのことなので
全ての環境で取得できる方法でなくても、どれか1つでいいので知りたいんです
そのために環境を指定しろとのことなので、言われるままに指定しただけです
236デフォルトの名無しさん:2006/03/28(火) 15:52:04
もうあとは自分で調べられるだろ。
237デフォルトの名無しさん:2006/03/28(火) 16:13:47
>>235
「全ての環境で取得できる方法」を、何人もの人が書いてくれてる件。
238デフォルトの名無しさん:2006/03/28(火) 16:51:22
もしこんな知識の人間がP2Pソフト作ったら日本のプロバイダは壊滅するぞ
239デフォルトの名無しさん:2006/03/28(火) 17:29:55
>>238
作れないだろ。
240デフォルトの名無しさん:2006/03/28(火) 17:34:18
それもそうか
241デフォルトの名無しさん:2006/03/28(火) 18:05:14
>>227
素直にグローバルIPを取得ってISPに申請をしてグローバルIPを割り当ててもらうのが筋だと思うが
そんな事よりもISPの利用規約ちゃんとよんどけよYahooがそうかどうかは知らないが
さすがにルータで複数接続禁止の所は減ったみたいだが、ダイアルアップや一般のPPPOE接続だと
P2Pソフトに拠るファイル共有や、サーバソフトを実行して外部にサービスを提供する事を禁止している所が多いぞ
242デフォルトの名無しさん:2006/03/28(火) 22:20:18
かわいそうに。まともに答える気が無くて、中途半端な事書いて
初心者を混乱させるのが好きな粘着さんにつかまったんだね。

ここのサンプルがあるみたい。
http://www5.airnet.ne.jp/init/vb/tips/network001.html

前提知識書いとくね。
まず自分には複数のIPが割り当てられることがある。
gethostbynameで自分のIPが分かるけど、プライベートIPの場合もある。
グローバルIPかどうかはIPの範囲で区別がつく。
http://ja.wikipedia.org/wiki/IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9

ADSLモデムとかの場合だとこれでわかるけど、間にルータとかはいっていると
ルータ自体にグローバルIPが割り当てられて、PCにはプライベートIPしか割り当てられない。
この場合は自分のグローバルIPは分からない(というか無い)
243デフォルトの名無しさん:2006/03/28(火) 22:20:48
粘着さんがごちゃごちゃ言ってやり方言わないのは、このようにどうしても分からない場合があるから。
知ってるなら、分かる場合、分からない場合、その理由とか説明すればいいのにね。

で、ルータの場合グローバルIPがわからなかったりと不便なのもあって、
比較的最近(結構たつか?)UPnPというのが出来た。UPnPに対応しているルータだと、
ルータに割り当てられているグローバルIPを問い合わせることが出来る。

ルータに対して、GetExternalIPAddress命令を送ればいいんだけど、やったこと無いんで詳しくは省略。
どうやらルータ内蔵のhttpサーバーに、GetExternalIPAddress命令を含めたXMLデータをPOSTすればいいみたいね。
普通にInetコントロールでhttpサーバーにアクセスする方法でいけそう。

XPなら、HNetCfg.NATUPnP コントロールでできるかもしれない。

あとは詳しい人よろしく。      といいたいけどこのスレには詳しい人はいないでしょうね。
244デフォルトの名無しさん:2006/03/28(火) 22:45:26
>>242
まともに答えてるだろ
中途半端はお前だ馬鹿
245デフォルトの名無しさん:2006/03/28(火) 22:47:18
>>242
イニTさんのサイトじゃん。懐かしいな。まだランエボ乗ってるのかな。

で、ルータなしの場合なんかを質問してる訳ないでしょ。
直結ならどうにでもなるんだし。

で、ルータに問い合わせればいい事なんて誰でも分かってるっての。( >>217 とか)
質問者がルータの型番とかも未だに秘密にするし、だからこそ、皆は
「サーバにIP返すCGIを仕込んでおいて」って書いてるのに。
246デフォルトの名無しさん:2006/03/28(火) 22:54:18
'-----------------------------------------------------------
' WAN側(インターネット側)のIPアドレスをゲットするスクリプト
'-----------------------------------------------------------
'ルーターのIPアドレスを指定する
igdIp = "192.168.0.1"
'-----------------------------------------------------------
Set dom = CreateObject("MSXML2.DOMDocument")
dom.loadXML "<?xml version=""1.0""?><SOAP-ENV:Envelope →続く→
xmlns:SOAP-ENV=""http://schemas.xmlsoap.org/soap/envelope/"" →続く→
SOAP-ENV:encodingStyle=""http://schemas.xmlsoap.org/soap/encoding/""> →続く→
<SOAP-ENV:Body> <m:GetExternalIPAddress →続く→
xmlns:m=""urn:schemas-upnp-org:service:WANPPPConnection:1"">→続く→
</m:GetExternalIPAddress> </SOAP-ENV:Body>→続く→
</SOAP-ENV:Envelope>"
Set http = CreateObject("Msxml2.XMLHTTP")
http.open "POST","http://" & igdIp & "/upnp/service/WANPPPConnection",False
http.setRequestHeader "SOAPAction","urn:schemas-upnp-org:service:WANPPPConnection:1#GetExternalIPAddress"
http.send dom.xml
MsgBox http.responseXML.text
Set dom = Nothing
Set http = Nothing
247デフォルトの名無しさん:2006/03/28(火) 22:55:34
ブロードバンドルータにWAN側のIPAddressを問い合わせる際には,
以下のようなsoapパケットを投げていました.
<?xml version="1.0"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m:GetExternalIPAddress
xmlns:m="urn:schemas-upnp-org:service:WANPPPConnection:1"/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
248デフォルトの名無しさん:2006/03/28(火) 22:58:52
POST /upnp/service/WANPPPConnection HTTP/1.1
SoapAction: urn:schemas-upnp-org:service:WANPPPConnection:1#GetExternalIPAddress
Host: 192.168.10.1
Content-Length: などのヘッダを適当に
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m:GetExternalIPAddress xmlns:m="urn:schemas-upnp-org:service:WANPPPConnection:1"></m:GetExternalIPAddress>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


HTTP/1.0 200 OK
〜HTTPのヘッダが色々〜
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m:GetExternalIPAddressResponse xmlns:m="urn:schemas-upnp-org:service:WANPPPConnection:1">
<NewExternalIPAddress>61.203.161.165</NewExternalIPAddress>
</m:GetExternalIPAddressResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
249デフォルトの名無しさん:2006/03/28(火) 23:08:52
すいませんちょこっと教えてください。VB5からVB6に
アップグレードしようとおもうのですが、再コンパイル程度で
のせかえれそうですか?あまり特殊なAPIは使ってないんですが
1000本を越えるソースがあるんでちょっと不安がありまして
250デフォルトの名無しさん:2006/03/28(火) 23:12:07
>>245
> で、ルータなしの場合なんかを質問してる訳ないでしょ。
おまえぜんぜんよんでねーのな。

>>224
> YahooのADSL回線でレンタルのモデムを使用して接続した環境での取得方法を教えてください
これでルータありだと思う奴はよっぽどひねくれている。
251デフォルトの名無しさん:2006/03/28(火) 23:14:05
>>248
ちゃんとソース元も書こうよ
http://www.bosuke.mine.nu/blog/archives/2004/04/upnp.php
252デフォルトの名無しさん:2006/03/28(火) 23:44:34
>>250
そんなに詳しく読んでるなら教えてやれよ。w
253デフォルトの名無しさん:2006/03/29(水) 00:17:29
そしてその後、>>215 の姿をこのスレで見た者は居ない・・・
254デフォルトの名無しさん:2006/03/29(水) 00:51:32
>>215は明日の同じぐらいの時間にくるでしょ。
255215:2006/03/29(水) 01:22:48
今、終電で帰宅したのでレス遅れてすみません

>>241
忠告は分かりましたが、技術的な問題を聞いているに過ぎません
包丁の作り方を聞いたからといって、殺人の心配をされても困ります

>>242 >>243 >>246-248
有用な情報をありがとうございます
これだけ、とっかかりのキーワードが頂けましたので
細部のやり方についてはなんとか自分でも調べられそうです
なんとなく取得できる状況というのが見えてきたので考えをまとめたいのですが
まず、モデムに関しては >>242 のgethostbynameで分かる
ルーターの場合はUPnPという機能を持っているならXMLデータで問い合わせ
それらの方法でも無理ならば、IPアドレスを返すCGIにアクセスする
このような認識で概ね合ってるでしょうか?

>>245
取得に必要な条件で足りない要素があれば指摘してくださいとお願いしたはずです
ルーターの型番について1度も触れられていませんので秘密にしたと言われるのは心外です
また、私が元々知りたいことは >>220 にあるとおりです
256デフォルトの名無しさん:2006/03/29(水) 01:37:40
>>255
足りない事を指摘(>>228)してるのに無視してんじゃん。
257デフォルトの名無しさん:2006/03/29(水) 01:38:47
結局取得してどーするんだろう?
258215:2006/03/29(水) 01:57:14
>>256
わかりました
ではその無線に限定したやり方を教えてくださいますか?
259デフォルトの名無しさん:2006/03/29(水) 02:00:09
>>258
馬鹿かお前は!!
260デフォルトの名無しさん:2006/03/29(水) 02:01:35
>>258
お前も、そういう奴にいちいちレスすんな
粘着君は回答持ってないし、質問者をおちょくってるだけだからな
261デフォルトの名無しさん:2006/03/29(水) 02:02:38
はいはいゆとり教育ゆとり教育
自分で考えることをやめた若者増産
262デフォルトの名無しさん:2006/03/29(水) 02:03:17
こりゃ何とも香ばしいな。

つか最近こんなのばっかなの?
いや、俺は嬉しい。
アホが増えれば増える程儲かるからなwwwwwwwww
263デフォルトの名無しさん:2006/03/29(水) 02:05:10
で、結局何に使うんだ?
掲示板利用してこれに答えないのは失礼だろう。
264デフォルトの名無しさん:2006/03/29(水) 02:10:44
ipconfig作った人に、なんでIP表示するの?といっているようなもんだなw
なんでそんなに用途を聞きたがる?
それを聞いていったいどうしたいんだ?
265デフォルトの名無しさん:2006/03/29(水) 02:14:49
>>264
わからないの?用途に最善の方法を提示しようとしてるだけなのに。
266デフォルトの名無しさん:2006/03/29(水) 02:16:56
>>255
> まず、モデムに関しては >>242 のgethostbynameで分かる
> ルーターの場合はUPnPという機能を持っているならXMLデータで問い合わせ
> それらの方法でも無理ならば、IPアドレスを返すCGIにアクセスする
> このような認識で概ね合ってるでしょうか?

基本的にそれであってる。
最後のはCGIじゃなくても、インターネット越しに通信できる
相手がいれば、その他の方法でも出来る。

あと、DDNSについても調べておくといいかもしんない。
無料で自分だけのアドレスを持つことも出来る。
それを利用すれば、グローバルIPを知る必要も無いかもしれないし、
また、DDNSサーバーを利用して自分のグローバルIPを知ることも可能。

267デフォルトの名無しさん:2006/03/29(水) 02:18:27
>>265
ごめん。俺エスパーだから先に答えちゃったw
もう何も言うこと無いでしょ?
268デフォルトの名無しさん:2006/03/29(水) 02:20:47
> 無料で自分だけのアドレスを持つことも出来る。
アドレスっつーか、名前ね。
hoge.foo.jp みたいな。
269デフォルトの名無しさん:2006/03/29(水) 02:26:52
>>258
こんだけ答えが出てたのにそれかよ。
270デフォルトの名無しさん:2006/03/29(水) 02:35:56
なんでそこまでつっかかるんだ?
271デフォルトの名無しさん:2006/03/29(水) 02:39:57
仕様をなかなか出さない客や上司などと姿がだぶるのであろう
情報出せばすぐ終わるのにいくらつついても出さないからな
272デフォルトの名無しさん:2006/03/29(水) 02:43:47
答えがわかっている場合は答えを言ったほうが早い。
273215:2006/03/29(水) 02:53:33
>>266
>基本的にそれであってる。
よかった!ありがとうございます

>最後のはCGIじゃなくても、インターネット越しに通信できる
>相手がいれば、その他の方法でも出来る。
これは要するに、あらかじめ決められた通信手段で応答するソフトを
待機させておくことが前提ということですよね?
そうすると、問い合わせる相手のグローバルIPが必要で・・・鶏と卵?
あ、その場合に DDNS があれば可能ということですかね、なるほど。

とりあえず大体理解出来たと思いますので、あとは実際に関数などを調べながら作ってみようと思います
ありがとうございました
274デフォルトの名無しさん:2006/03/29(水) 03:00:09
塩。
275デフォルトの名無しさん:2006/03/29(水) 03:20:57
>>271
仕様は220とか224にあるだろ、しっかり読めよ
お前が知りたがってるのは単なる好奇心だろ
276デフォルトの名無しさん:2006/03/29(水) 03:25:09
>>275
おまえがよく読め…足りてなかったからこんなにダラダラ話が伸びたんだろ
277デフォルトの名無しさん:2006/03/29(水) 03:28:44
>>276
何が足りなのか言えばいいだろ、アホか
278デフォルトの名無しさん:2006/03/29(水) 03:30:09
>>277
よく読めよ
ああ、足りてないのはお前の頭か

情けない
279デフォルトの名無しさん:2006/03/29(水) 08:32:36
久し振りにスレが伸びてると思ったらこれか。w
まぁ今時、逆ギレする質問者なんて珍しくもないが。
しかしコミュニケーション能力ゼロだな。
280デフォルトの名無しさん:2006/03/29(水) 12:43:38
>>249
VB5とVB6はソースコードレベルでは互換性があるけど、
変わったコントロールを使っているなら注意が必要。
VB6のコントロールに置き換えるか、VB5からコントロールを持ってくる必要がある。
281デフォルトの名無しさん:2006/03/29(水) 13:54:46
>>280
VMWareとか使って、VB5のままで運用するのは駄目なのかな。
282デフォルトの名無しさん:2006/03/29(水) 14:12:42
既に動いてるものをいまさら5から6に上げる必要があるかどうかだよな
283デフォルトの名無しさん:2006/03/29(水) 14:25:02
>>282
そうそう。
しかも1000本て。
284デフォルトの名無しさん:2006/03/29(水) 20:42:47
>>279
どうみても逆(?)切れしてるのは、回答者(回答してないけど)のほうです。
ありがとうございました。
285デフォルトの名無しさん:2006/03/29(水) 21:14:27
286デフォルトの名無しさん:2006/03/30(木) 00:13:27
XMLHTTPで都度、PROXYを指定することはできますか?
287デフォルトの名無しさん:2006/03/30(木) 01:50:34
XMLHTTPでPROXYの指定は出来んよ
UrlMkSetSessionOption使えばアプリが使用するPROXYが設定できるから
XMLHTTPにも反映されるような…

ぁま 試してないから分からんけどね
288デフォルトの名無しさん:2006/03/30(木) 02:30:37
そういやUrlMkSetSessionOptionだっけ?
ユーザーエージェントを変えるの。

これ使ってもIDEでは変更されてないことがある。
でもEXEにして実行するとちゃんと設定されている。

でもIDEでも変更されているときがある・・・?
IEコンポーネント読み込むタイミングとか
IDEで動かした場合実行ファイルがIDEのプロセスに
なっちゃうとかが関係してそう。

まあともかく、EXEにすればちゃんと動くので問題ないけど
混乱しないように情報提供です。
289デフォルトの名無しさん:2006/03/30(木) 09:58:50
>>279
粘着回答者のほうがキモイ

>>288
ちょっw中途半端に間違ってて余計に混乱するw
IDEでもEXEでもきちんと変更される
ただし、そのAPIで変更できるのはプロセス起動中に1度きり
要するにIDEだとVB6.EXEを再起動しなければ変化しなくなるってわけ
290デフォルトの名無しさん:2006/03/30(木) 20:38:49
> 粘着回答者のほうがキモイ
同意。答えを知らないのに、偉そうに講釈たれるやつとか。
291デフォルトの名無しさん:2006/03/30(木) 21:26:31
>>289-290
自己紹介乙。
292デフォルトの名無しさん:2006/03/30(木) 21:46:47
さぁどんどん質問してくれ。
分かる事は何でも回答しちゃうよ。
293デフォルトの名無しさん:2006/03/31(金) 12:35:43
chr(&hF2)を指定すると、返ってくるのは、 "SOH"(chr(1))
chrb(&hF2)を指定すると、返ってくるのは、"o"(chr(6f)) になってしまうんです。

なんで?
294デフォルトの名無しさん:2006/03/31(金) 14:18:16
さぁどんどん質問してくれ。
分かる事は何でも回答しちゃうよ。
295デフォルトの名無しさん:2006/03/31(金) 14:26:57
>>293
何がやりたいのか分からん。
「返ってくる」って何?
それらを何かの関数に渡してその戻り値が?
別に &HF2 のまま扱えばいいじゃん。
296デフォルトの名無しさん:2006/03/31(金) 19:34:45
>>283
その1000本をさらに.netに乗せかえる予定だったりしてな。
297デフォルトの名無しさん:2006/03/32(土) 22:15:41
Windows2000とVB6SP6の環境で、マイクロソフトのホイールマウスでスクロールしないのですが
対応させる方法はないでしょうか?
298デフォルトの名無しさん:2006/03/32(土) 22:51:50
どこでもホイール
299デフォルトの名無しさん:2006/03/32(土) 22:53:15
>>297
主語が抜けておりまする!
解答不能にござる!
300デフォルトの名無しさん:2006/03/32(土) 23:32:49
TextBoxに64KB以上の文字列を代入したいのですが、お知恵をお貸し下さい。

EM_LIMITTEXTメッセージで入力制限を拡張する方法はやってみたのですが、

Text1.text = 64KB以上の文字列

として代入された場合は、64KBまでしか受け付けないんです。
代入と入力では制限の仕方が違うんでしょうね。
そこでクリップボード経由でWM_PASTEメッセージで貼り付けたんですが、
これはうまくいきました。
しかしクリップボードを汚さないスマートな方法があればいいのですが。。
何かないでしょうか。
301300:2006/03/32(土) 23:46:38
補足ですが、RichEditは処理が遅いので使いたくないんです。
TextBoxに64KB以上の文字列をクリップボードなしで読み込ませる方法をお願いします。
302デフォルトの名無しさん:2006/03/32(土) 23:52:51
>>301
ない。
303デフォルトの名無しさん:2006/04/02(日) 00:02:52
>>297
マウスドライバをダウングレードする
304300:2006/04/02(日) 00:05:29
>>302
EM_SETHANDLE辺りをゴニョゴニョしたらなんか出来そうな気もするんですが。。
いまVBのサンプルソースとか探してます。

でもVB, TextBox, 64KBでググったら、どこのサイトでも
64KB制限を突破する方法はないからRichEdit使えって
断定的に書いてあるんですよね。
クリップボード経由ならできたのに・・・。
305デフォルトの名無しさん:2006/04/02(日) 00:40:47
>>304
そもそも、TextBox はそんな用途に使うコントロールじゃないし。
クリップボードで出来るならそうすればいいだけ。
306デフォルトの名無しさん:2006/04/02(日) 00:48:38
>>305
TextBoxの用途を勝手にお前の妄想で限定すんなよ
307デフォルトの名無しさん:2006/04/02(日) 01:00:45
妄想で限定してるんじゃなくてMSが64kbって限定してるんだろw
308300:2006/04/02(日) 01:15:00
自己レスです。
クリップボード経由ではない方法を見つけました。
WM_SETTEXTメッセージで何の苦労もなくセットできました。
これは意外と知られていないことかもしれません。
309デフォルトの名無しさん:2006/04/02(日) 01:16:52
>>297
>>298を使ってるけど、俺のWinXP環境だと、まれに横スクロール専用に
なったり挙動不審なことがある。再起動で直るから困るほどじゃないけど。

試してないけどネット上でアドインを探すと出てきますよ。
ttp://search.yahoo.co.jp/search?p=VB6+%A5%A2%A5%C9%A5%A4%A5%F3+%A5%DB%A5%A4%A1%BC%A5%EB&fr=top_v2&tid=top_v2&search.x=1
310デフォルトの名無しさん:2006/04/02(日) 01:52:24
>>308
9x系だとそれでも64KBまでだからな・・・最近は気にしないでいいのかも。
311デフォルトの名無しさん:2006/04/02(日) 02:25:57
すいません、他スレできいていたのですが、答えられる人がいなかったようなので
このスレで聞かせてください。

struct KEYBOARDDATA
{
enum { BREAK = 1,
E0 = 2, E1 = 4,
TERMSRV_SET_LED = 8 };
enum { KEYBOARD_OVERRUN_MAKE_CODE = 0xFF };

USHORT UnitId;
USHORT MakeCode;
USHORT Flags;
USHORT Reserved;
ULONG ExtraInformation;
};

上記のようなC言語の構造体をいまVBに移植しているのですが、
まったくもってわけがわかりません!
まず第一にUSHORTって調べてみたら符号なし16bit整数とか書いてるし
VBには符号なし16bit整数の宣言なんてないはずだし・・・

VBに上記の構造体を移植するのは不可能なんでしょうか?

312デフォルトの名無しさん:2006/04/02(日) 02:26:05
>>309
主語がないから、IDE画面のスクロールとは限らんぞ
なんらかのVBのコントロールの話かもしれん
313デフォルトの名無しさん:2006/04/02(日) 08:44:07
>>308
VB標準のクリップボードでは駄目で、APIならいい、ってのが
サッパリ理解出来ん。
で、クリップボードの内部で同じ処理してるだけだと思うが。
314デフォルトの名無しさん:2006/04/02(日) 08:45:25
>>311
別に、ビット幅が16ビット、ってだけなんだから、Integer でいいじゃん。
それを符号なしで扱う方法なんて、何とでもなるし。
315デフォルトの名無しさん:2006/04/02(日) 08:52:50
>>313
クリップボードはユーザが意図して使うものであって、
プログラム処理の都合で勝手に内容を書き換えていいものではない。
それに、クリップボードのバッファを経由する分、無駄な処理になる。
316デフォルトの名無しさん:2006/04/02(日) 10:41:35
複数のファイルを読み込むには、どの様なコードを書けばよいですか?
たとえばテキストファイルとかなのですが、書店の本などを見ても
1つのファイルを読み込む内容しか書いてないです。(私が見つけられないだけかも..)

すみませんが、どなたかご教授願います。
317デフォルトの名無しさん:2006/04/02(日) 10:57:38
>>315
だったら何故VBにクリップボードオブジェクトが実装されてるんだよ。
既にデータがあったら、退避して戻せばいいだけ。
API使ったって何処かのバッファは経由するだろうが。
枝葉末節に囚われて、正しく動作するコードが書けない奴の典型だな。

>>316
一つのファイルを読み込む処理を繰り返せばいいのでは。
318デフォルトの名無しさん:2006/04/02(日) 11:24:02
クリップボードはプログラムが勝手に使うな、っていうのは自分も思うが。
後でペーストするつもりでコピーしておいたものが、プログラムを実行したら
消えてた、って言うとイヤだし。オマエどこのEXCELだよ!とか
まぁ個人の好き嫌いっていうわけでもないけど、推奨はされないと思う>プログラムでクリップボード書き換え

それはそれとして、WM_SETTEXTでセットする方法は意外と知られていない
というよりは、普通にみんな知ってるけど64KB以上使おうという人があまり
いないからなのではないか、とか思った。
319デフォルトの名無しさん:2006/04/02(日) 11:34:10
>>317
>既にデータがあったら、退避して戻せばいいだけ。
底の浅い考えだな〜
クリップボードの履歴を取るソフトに影響する点は考えもつかない?
320デフォルトの名無しさん:2006/04/02(日) 11:38:26
>>317
レス有難うございます。
ですが本に載っているやり方は、決まったファイル名を
読み込む事は書いてあるのですが、フォルダ内にある色々なファイル名の
ファイルを取得するような事は、書いてない(見つけられない)のです。

このような事をする際は、どの様なコードを書けばよいのでしょうか?
321デフォルトの名無しさん:2006/04/02(日) 11:48:46
>>320
要するに君が分からないのは、複数のファイルを読み込む方法じゃなくて
特定のフォルダ内にあるファイル一覧を取得する方法を知りたいってことかい?
322デフォルトの名無しさん:2006/04/02(日) 11:49:46
>>318
だね。
しかし、テキストボックスに64k以上の文字列って、
一体どんなのなんだろう・・・
323デフォルトの名無しさん:2006/04/02(日) 12:43:33
>>321
複数のファイルを読み込みたいのです。
例えば、種類別に在庫数などを書いてあるファイル(テキストなど)を
特定のフォルダにあるもの全て読み込んで、在庫数を計算するなど
の事をやりたいのですが...
324デフォルトの名無しさん:2006/04/02(日) 12:57:51
>>323
やりたいことは分かってるって
その処理のうち分からない部分はどこなの?
一連の処理を全部作って欲しいってことじゃないっしょ?
325デフォルトの名無しさん:2006/04/02(日) 13:07:45
>>320
ネットで、DirやFileSystemObjectを使う方法がすぐ見つかる。
326324:2006/04/02(日) 13:20:28
いいや、疑問点を聞き出すの、めんどくさいから適当に書いとく
ファイルの開き方とか読み込み方はデータ形式次第なんで自分で調べてくれ

Dim strFileName As String
strFileName = Dir("C:\Windows\*")
While Len(strFileName) > 0
  strFileNameファイルを開く
  If ファイルを開けたかどうか Then
    strFileNameファイルの内容を読み込む
    読み込んだデータを集計する
    strFileNameファイルを閉じる
  End If
  strFileName = Dir '次のファイル名を取得
Wend
327デフォルトの名無しさん:2006/04/02(日) 13:20:55
TextBoxは64K以上は扱っちゃダメ
ペーストで動いているのは多分 2000かXPだから

ちなみにTextBoxにメッセージを送る時はテキスト64Kまでしか扱えないようになっている
なぜならメモリーが64K以上扱えても Win32 APIが64Kまでを基準に設計されてるから(古いWindowsの名残)
(2000・XPでは仕様が変わって64K以上が扱えるようになってるけど推奨されていない)

だから64K以上のテキストを扱うときにはリッチテキストか市販されてるテキストコンポーネントを使うしかない

あとクリップボードのデータを無闇に入れ替えたりすると クリップボードを監視するソフトが誤作動を起こすよ
クリップボードはWindowsでデータを共有する為にある事を忘れるな
バッファに使うなんてとんでもない低脳バガ
328デフォルトの名無しさん:2006/04/02(日) 13:24:48
>>323
「一つのファイルを読み込む」方法が分かってんなら、
後はファイル名を変更するだけでしょうが。
329デフォルトの名無しさん:2006/04/02(日) 16:21:06
EXCELでVBAを勉強してるんですがこれってC言語に似てますね
ひょっとしたらVBってのも仕様がVBAに似てるんですか?
330デフォルトの名無しさん:2006/04/02(日) 16:44:08
>>329
>EXCELでVBAを勉強してるんですがこれってC言語に似てますね
CとVBが似てるとは、結構変わった感覚の持ち主だね
このレベルで似てると思えるならJavaもDelphiもJavaScriptなんかも同じようなもんだなw

>ひょっとしたらVBってのも仕様がVBAに似てるんですか?
ものすごく砕けた言い方すると、VBAはVBの体験版
似てるというレベルじゃなくて、ほとんどそっくり

でもどうせ勉強するならC、C++にしといた方がいいぞ
これを身に付けておけば他の言語の習得は容易になるからね
VBやってると簡単すぎてバカになる、、、気がする
331デフォルトの名無しさん:2006/04/02(日) 17:00:52
関数は違うけど書き方が似てるはほとんどの奴で一緒か・・・
332デフォルトの名無しさん:2006/04/02(日) 17:13:57
>>329
クラスモジュール使ったこと無い事は分かったw
標準モジュールマンセーなのも分かったw


ってうか釣りレスだろ
333デフォルトの名無しさん:2006/04/02(日) 17:17:54
そうですね、まだ「勉強中」ですから。

けどVBプログラマ>>332がなぜ嫌われているのか分かった気がします。
334デフォルトの名無しさん:2006/04/02(日) 17:32:40
まあ、気にするな
初心者に対して見下すような態度を取る奴ほど実際は大した技術を持ってない
335デフォルトの名無しさん:2006/04/02(日) 19:07:34
すいません、昔どこかでWriteFileのAPIを使用してCDドライブの開閉を行っているプログラムをDLしていたのですが、

もうページがなくなったのか探してもみつかりません。

どなたかWriteFileをつかってのCDドライブの開閉方法をおしえていただけませんでしょうか?
336デフォルトの名無しさん:2006/04/02(日) 19:55:37
337デフォルトの名無しさん:2006/04/03(月) 13:56:53
Excel2000からVBAを使ってます。

ExcelのCell内に書かれた内容に変更があった場合のイベントの
検知方法を教えて欲しいです。

WorkSheet単位で内容の変更があった場合のイベントは
取得できるのですが、Cell単位で内容の変更があった場合の
内容の変更は検知できるのでしょうか?
338デフォルトの名無しさん:2006/04/03(月) 15:15:25
>>337
WorksheetのChangeイベント拾って、
そのTargetが目的のセルかどうかの判定をプロシージャ内で行う。
339デフォルトの名無しさん:2006/04/03(月) 23:19:27
はじめまして。VB6.0を勉強して3日目の超初心者です。
データ型に数値を格納する際、オーバーフローというエラーが出てしまいます。
デバックしてみると、変数に「5.011456E+09」が格納されています。
これは指数表記で、5011456000のことでしょうか?
340デフォルトの名無しさん:2006/04/03(月) 23:49:29
>>339
いやそんな事より、そのエラーをどうにかしたいとは思わないのか?w
>>339
そうだよ
342デフォルトの名無しさん:2006/04/04(火) 08:27:05
>>339
それより今からVB6勉強してもしょうがなえだろ。
343デフォルトの名無しさん:2006/04/04(火) 10:15:35
ExcelでVBA使ってるんだけど
このスレでいいですか

IMEでローマ字か英数かの状態を判別と設定をしたいんだけど
API使わないとダメかな
APIなんて手を着けたこともないので
どうしたらいいのか…(^_^;)
344デフォルトの名無しさん:2006/04/04(火) 10:19:43
>>343
Asciiで調べたらいいんじゃない?
345デフォルトの名無しさん:2006/04/04(火) 10:22:25
質問
VB6でWake On Lan(マジックパケット)を使いたいが
送信するデータ構造が不明
AMDとかみてみたけど情報なさす・・・

出来ればサンプルとか、何でもいいので情報ほしいっす。

環境
WinXP-SP2
VB6 SP6
346デフォルトの名無しさん:2006/04/04(火) 10:50:23
>>343
Excel総合相談所 40(VBAの質問でも可。回答率バツグンの良スレ)
http://pc8.2ch.net/test/read.cgi/bsoft/1134006968/
347デフォルトの名無しさん:2006/04/04(火) 10:50:59
>>343
その程度のサンプルなら、WEB検索すれば幾らでもあるよ。
348デフォルトの名無しさん:2006/04/04(火) 10:51:50
>>345
VBと関係ないじゃん。
349デフォルトの名無しさん:2006/04/04(火) 10:56:27
>>348
VB6で作るから関係あるかな・・と思っただけっす
350デフォルトの名無しさん:2006/04/04(火) 11:02:37
351デフォルトの名無しさん:2006/04/04(火) 11:07:17
>>350
そうそう、ソフトは結構見かけるのに
その仕様が見あたらなかったんですが・・・

なるほど、紹介してくれたページに
サンプルもみたいなので参考にやってみるっす
352デフォルトの名無しさん:2006/04/04(火) 11:09:34
おっと書き忘れ

>>350
情報ありがとです(´▽`)

スレ汚し
353デフォルトの名無しさん:2006/04/04(火) 16:05:31
>>346
そこのスレ、VBAの質問どころか丸投げすら許容してるし回答率もいいけど
VBAに関してはブックやシートなど直接エクセルに関わらない部分のVBA操作は
スレ違いってことになってるから、ブックやシートの操作以外の質問を誘導しても
結局向こうでスレ違い指摘されて戻ってくるだけだよ。
354デフォルトの名無しさん:2006/04/04(火) 19:52:41
VBって、オブジェクト指向とは言わないのですか?
355デフォルトの名無しさん:2006/04/04(火) 20:15:29
あの〜今から独学でプログラミングを始めようとしているのですが、どのプログラミング言語がもっとも初心者向きですかね?
プログラミングを始めるならVB6.0かJavaが一番良いと聞いたのもでお聞きしました。
僕はプログラムに関しての知識はゼロです。
356デフォルトの名無しさん:2006/04/04(火) 20:19:43
>>354
まぁあの3つの条件を満たしてないからね。
357デフォルトの名無しさん:2006/04/04(火) 20:19:56
>>355
あなたにはVB6.0がいいよ。
358デフォルトの名無しさん:2006/04/04(火) 20:24:37
>>357

そうですか。
ありがとうございました!
さっそく勉強して頑張ります!

それとVB6.0を覚えたあとVBNETに移行することも簡単ですよね?
359デフォルトの名無しさん:2006/04/04(火) 20:29:17
>>358
いいえ
VB6とVB.NETはまったく別の言語です
英語と中国語くらいの差があります。
360デフォルトの名無しさん:2006/04/04(火) 20:32:33
>>359

そうなんですか・・・
では、VB6.0とVB.NETのどちらから始めればいいのでしょうか?

VB6.0はもう手に入らないと聞いたのですが・・・
361デフォルトの名無しさん:2006/04/04(火) 20:33:24
>>360
手に入りますよ?誰がそんな事を言ったんですか?
362デフォルトの名無しさん:2006/04/04(火) 20:37:18
>>356
あの3つの条件って?
363デフォルトの名無しさん:2006/04/04(火) 20:40:43
>>361

えっ?そうなんですか?
それって無料で手に入ります?


>誰がそんな事を言ったんですか?

忘れましたが、どこかのサイトでそう書かれているのを見ました。


実は兄から誘われているんですよ・・・・手伝ってくれって。
でも困ったことに僕は中卒なんですよね・・・
しかもまったく知らない世界で小中と数学も一番苦手だったんですよね・・・

それで、本当はC#を覚えて兄の会社のHPをC#で2人で作成してソフトウエアの受注をしたいとかなんとか言ってました。
でも、独学だと厳しいです・・・何がなんだかさっぱりなのが正直なところ。
そこで一番簡単なプログラミング言語から勉強して、基礎知識を付けてからのほうがいいかなって思いまして。
364デフォルトの名無しさん:2006/04/04(火) 20:46:03
>>362
俺とお前と大五郎
365デフォルトの名無しさん:2006/04/04(火) 20:49:17
中卒とか関係ないから。俺は高卒だし。

C# はそんなに難しい言語じゃないぞ。兄貴にサンプルプログラムをもらって、それを
改造するところからはじめてみ。

今なら、Express Edition が無料で手に入るし。
366デフォルトの名無しさん:2006/04/04(火) 20:53:00
>>362
ヒント:カプセル化、継承、ポリモーフィズム
367デフォルトの名無しさん:2006/04/04(火) 20:59:37
>>365

なんかすっげぇーやる気になってきました!
その言葉一生忘れませんよ!ありがとう!
俺の人生のターニングポイントになったって感じがする。

マジで感謝しています!ありがとうございました!
368デフォルトの名無しさん:2006/04/04(火) 21:33:15
いや、せっかくやる気になったところで悪いけど
もし職業訓練みたいなノリで将来それを仕事にするつもりで始めようとか
思ってるのなら止めておいた方がいいよ。

数学苦手でプログラマになろうなんて、身長150のガリガリ君が関取めざすようなもんだ。
貴重な人生無駄にしたいなら止めないけど。

まあ趣味のつもりなら好きにすればいいけど、
100%途中で投げることになるよ。
369デフォルトの名無しさん:2006/04/04(火) 21:37:21
オレは数学苦手だが、プログラマやってるぞ?
数式が必要ならぐぐれば大抵みつかるし、得意な奴がほかにいるし
何の問題も無い
370デフォルトの名無しさん:2006/04/04(火) 21:54:10
俺も数学苦手だ。自慢じゃないが、数I で挫折した。
でも、何の問題もなくプログラマから SE になれてる。

一部のアルゴリズムばりばり、3Dモデリングばりばり、みたいなプログラミングを
除いて、そうそう数学能力なんていらん罠。
371デフォルトの名無しさん:2006/04/04(火) 22:00:24
プログラマやSEに一番重要/必要なのは、コミュニケーション能力。
372デフォルトの名無しさん:2006/04/04(火) 22:02:51
>>354
コンポーネント指向だからオブジェクト指向て解釈ででいいんでね?
373デフォルトの名無しさん:2006/04/04(火) 22:03:45
C#なんか憶えてもあんまいいことないぞ
374デフォルトの名無しさん:2006/04/04(火) 22:09:40
VB6.0覚えるよりは未来がある
375デフォルトの名無しさん:2006/04/04(火) 22:28:55
だったらVB.NET憶えたほうがよくね?
376デフォルトの名無しさん:2006/04/04(火) 22:31:12
だったらJavaにすりゃええがな
377デフォルトの名無しさん:2006/04/04(火) 22:50:33
機械語を覚えるのが一番。
378デフォルトの名無しさん:2006/04/05(水) 01:00:59
オブジェクト指向で1番大事な事は

『1つのクラスから複数のインスタンスが生成できる事』だと思う

カプセル化も継承も大事だけど コレだけは絶対忘れないで欲しい っていうか慣れてくると忘れがち

VBは機能不足にしろオブジェクト指向であるとは言えるよ


オブジェクト指向の学習はJavaが一番良いね
.NET(C#もVBも)は 初心のうちはツール(VisualStudio・フレームワーク含む)覚えるのに精一杯になって
オブジェクト指向の学習にまで手が届かなくなるよ
379デフォルトの名無しさん:2006/04/05(水) 01:48:16
>>378
それポインタ本の前橋もそういってるけど違うと思うよ。
それはオブジェクト指向の特徴的な(他には見られない)部分ではあっても
最重要な部分ではない。

最大の恩恵は、それがヒトの思考パターンによりマッチするって点でしょう。
ヒトにとっては「A君の算数のテストの点数」って考えるほうが、「算数のテストの点数の
配列の中のx番目のデータ」って考えるより易しい。

ついでにA君に関するデータと、それを処理する関数を「同じところ」に
書ける様にした方が両者の関係がはっきりする。

要はそれだけのことでしょ。
380デフォルトの名無しさん:2006/04/05(水) 08:18:31
オブジェクト指向の一番の問題点は、概念を理解/習得する事が
非常に困難、って事だと思う。
理解/習得すれば、>>379 「ヒトの思考パターンによりマッチする」
ので、設計/開発がやり易いのかもしれないが・・・
381デフォルトの名無しさん:2006/04/05(水) 10:34:35
>>380
VB6ならまずはForm1のインスタンスとかScreenオブジェクトとかで
感覚をつかむ練習をして、じゃあクラスモジュールで似たような
コーディングをしてみましょう、みたいな進み方をするといいと思われ。
Screen.Widthのことを
「『画面幅取得関数』じゃなくて『画面は幅を持ってる』んだよ」と説明するみたいな。
382デフォルトの名無しさん:2006/04/05(水) 10:56:10
ちょっと亀レスですが、VB6を起動するとクリップボードの文字列が
消されるよね・・・
383デフォルトの名無しさん:2006/04/05(水) 11:27:29
> VB6を起動するとクリップボードの文字列が
> 消されるよね・・・
いいえ
384デフォルトの名無しさん:2006/04/05(水) 16:08:48
>>382
アドインのツールバーアイコン画像をクリップボード経由で読み込んでるからだね
アドインをことごとく無効にすれば解消されるかもしれんけど、
俺はクリップボード履歴取ってるからウザいけど許容範囲なんで放置

>>383
頭悪そうなレスだなw
385デフォルトの名無しさん:2006/04/05(水) 17:05:33
>>384
へぇ〜、そうなんだ、と思ってやってみたら、
別に消されなかった。
386デフォルトの名無しさん:2006/04/05(水) 20:06:46
>>385
どっか他のがロックしてたんじゃないの?
387デフォルトの名無しさん:2006/04/05(水) 23:10:11
VB6.0で質問なんですが、VBでエクセルを操作して、改ページしたいんですが、
xlSheet.HPageBreaks.Add xlSheet.Range("H30")やxlSheet.VPageBreaks.Add xlSheet.Range("H30")で改ページします。
でもエクセルを見てみると確かに太線で改ページ出来てるんですが、破線の自動改ページの線が残ったままになっていて
このまま印刷すると自動改ページの線の範囲が優先されてしまいます。
この自動改ページの線も同じ範囲にしてやりたいんですが方法がわかりません。
どうすればいいですか?
388デフォルトの名無しさん:2006/04/05(水) 23:13:23
俺の環境はVBのエディタでコピーした内容に限って消えるな
他のからコピーされたクリップボードデータは消えない
数年前から気になっていたが そういう理由があったのか
389デフォルトの名無しさん:2006/04/06(木) 00:14:03
VB6.0で何故か編集のツールバー(ブックマークとかコメントのボタン)を出しておいても、
次VBを起動させた時にはまた無くなってるだが、何でだろ?
ちなみに他のPCのVBは出しておけばずっと表示されたままになってんだけど。
あとエディッタのスクロールがマウスのホイールで何故か出来ない。
VB以外のエディッタじゃちゃんとスクロールするのに。ほんとわけわからん…

390デフォルトの名無しさん:2006/04/06(木) 00:29:01
>>388
(>>382)VBを起動する時「VBのエディタでコピー
した内容に限って消える」ってどういう意味??
391デフォルトの名無しさん:2006/04/06(木) 00:29:59
>>387
エクセル上で出来るなら、それをマクロ記録するとか。
392デフォルトの名無しさん:2006/04/06(木) 00:34:54
>>389
スクロールに関しては、単にVBが
WM_MOUSEWHEEL に対応してないだけでは。
393デフォルトの名無しさん:2006/04/06(木) 01:11:47
WorkSheet_Calculateプロシージャ内で
Application.Caller.Addressを参照しようとすると

「実行時エラー424 オブジェクトが必要です」

というエラーが出ます。これはどういうことでしょうか?
Addressはどうして参照できないのでしょうか?

環境はExcell2000+VBAです
394デフォルトの名無しさん:2006/04/06(木) 06:38:11
VBSでmasgbox "tset",1,"sample"
とかで表示した時「OK」「キャンセル」どっちが選択されたのかはどうすれば判断できますか?
395デフォルトの名無しさん:2006/04/06(木) 06:46:31
自己解決しました
396デフォルトの名無しさん:2006/04/06(木) 09:29:53
>>389
Visual Basic 6.0 IDE でマウス ホイール イベントが機能しない
ttp://support.microsoft.com/default.aspx?scid=kb;ja;837910
397デフォルトの名無しさん:2006/04/06(木) 09:48:48
Errをトラップした際の
”オートメーションエラー”ってざっくり言って何のエラーなの?
398デフォルトの名無しさん:2006/04/06(木) 10:08:02
OLE オートメーションでエラー。
399デフォルトの名無しさん:2006/04/06(木) 10:14:41
>>398
対処方法はありますでしょうか・・・?orz
400デフォルトの名無しさん:2006/04/06(木) 11:11:32
質問になってないのに何を解答しろと?
あんたは>>397>>399の書き込みを客観的に見て、自分の状況が伝わってると思えるのか?
401デフォルトの名無しさん:2006/04/06(木) 11:17:19
>>396
方法1をやってみたけど、スクロールしない・・・_| ̄|○
402デフォルトの名無しさん:2006/04/06(木) 11:18:05
>>399
OLE オートメーションでエラーが
発生しない様にコードを書く。
403デフォルトの名無しさん:2006/04/06(木) 11:59:38
VB6でEUCコードのファイルを扱うことになったのですが、
イミディエイトウィンドウで表示しようとしても化けててみえません。
回避方法ご存じないですか?
404デフォルトの名無しさん:2006/04/06(木) 12:28:01
405sage:2006/04/06(木) 12:36:22
>>404
ものすごいありがとうございました。
406デフォルトの名無しさん:2006/04/06(木) 12:55:55
>>401
どこでもホイール
あと、ロジクールのマウスドライバを入れてもOK。
407デフォルトの名無しさん:2006/04/06(木) 14:32:13
スプレッドシートのアクティブセルのフォーカスについて質問させて頂きます。
環境:VB6.0 Windows2000 SPREAD:Ver.7.0j

スプレッドシートのを3行を1行として扱うような感じでアクティブセルのフォーカスを結合させる方法を探しています。
ヘルプでいろいろ探したのですがそのようなプロパティは見当たりませんでした。

恐れ入りますが、ご存知の方にお答え頂けると幸いです。
408デフォルトの名無しさん:2006/04/06(木) 14:43:25
>>406
d!
どこでもホイールでスクロール出来ました。
これは便利だ・・・
409デフォルトの名無しさん:2006/04/06(木) 15:14:13
>>407
それ、グレープシティの製品?
ならそっちで聞いた方がいいかも。
410デフォルトの名無しさん:2006/04/06(木) 15:38:30
>>407
派生して自作・・・って.netじゃなかったね。
とことんイベントに書き込むしかないんじゃないの?

411デフォルトの名無しさん:2006/04/06(木) 23:39:49
if aaa<>vbnullstring then
とか書いてるのを見るんだけど""とどう違うんですか?
412デフォルトの名無しさん:2006/04/07(金) 01:01:27
413デフォルトの名無しさん:2006/04/07(金) 03:07:26
VB上では vbNullString と "" は同じ扱いなる(実際は違うけどVBのコンパイラが同値として判断する仕様)けど
Win32APIに渡す時は vbNullString は文字列としてのヌルポインタ(0アドレス)で "" は長さ0の文字列となる
414デフォルトの名無しさん:2006/04/07(金) 08:27:48
なんか間違ってる気がしますがw
415デフォルトの名無しさん:2006/04/07(金) 09:23:02
>>414
正しく説明してよ。
416デフォルトの名無しさん:2006/04/07(金) 09:24:16
半端な知識は身を滅ぼす・・・。しかもAPI絡みの大事なポインタ渡しの局面で。
417デフォルトの名無しさん:2006/04/07(金) 10:00:55
418デフォルトの名無しさん:2006/04/07(金) 10:02:16
質問です。(環境 Windows2000sp4, VB6.0)

サーバー側にフォームをもつIISアプリケーションをつくりたいのですがうまくいきません。ご教授願います。
 今の構成
  [IISアプリ(ActiveX.DLL)] → [ブリッジソフト <データ受け渡し用>(ActiveX.EXE)] ← [サーバー側のモニタソフト]

モニタソフトを複数起動してブリッジソフトのデータは共有できるのですがIISアプリからは共有できません。
CreateObjectすると違うプロセスで起動しているようです。

コードです。------------
Dim objA As Actcom.clsBridge

Set objA = CreateObject("Actcom.clsBridge")
objA.ShowForm ブリッジソフトのフォームを表示
Set objA = Nothing
----------------------
419デフォルトの名無しさん:2006/04/07(金) 10:23:24
>>418
ActiveX.Exe なんて、マトモには動かないよ・・・
全く普及する事もなく、とっくに消えた技術だし・・・
420デフォルトの名無しさん:2006/04/07(金) 11:12:01
ExcelでのVBAも、このスレで質問しておkですか?
Excelスレのテンプレ読んだら「Excelの操作に関係ない部分はスレ違い」
とあったので…
421420:2006/04/07(金) 11:16:21
あ、>>1読んだらおけなのですね
スマソ
422デフォルトの名無しさん:2006/04/07(金) 11:30:31
【1 OSの種類         .】 WindowsXP HomeEdition
【2 Excelのバージョン   】 Excel2003
【3 検索キーワード     】 日本語かどうか判定
【4 レベル         】 初級(ポインタとか構造体とかサッパリ)
【5 目的          】 名字と名前を入力させ、セルに出力する

<現状>
試験的に名字を判定しています。現在の状況は、
半角数字、半角英字、一部の半角記号
全角数字、全角英字、一部の全角記号
が判定できています。

構文は超原始的です。てか、キレイに書けないorz

コードは次で↓
423420:2006/04/07(金) 11:34:13
 ∧||∧
(  ⌒ ヽ 改行多すぎで貼れませんでした…
 ∪  ノ 
  U U
424420(半分荒らしになりまつた):2006/04/07(金) 11:43:24
H = Len(NM)

For L = 1 To H
If Mid(NM, L, 1) Like "[0-9]" Then
MsgBox "数字は入力できません"
GoTo A
ElseIf Mid(NM, L, 1) Like "[0-9]" Then
MsgBox "数字は入力できません"
GoTo A
ElseIf Mid(NM, L, 1) Like "[a-z]" Then
MsgBox "英字は入力できません"
GoTo A
            ・
            ・
            ・
ElseIf Mid(NM, L, 1) Like "[ ]" Then
MsgBox "スペースは入力できません"
GoTo A
ElseIf Mid(NM, L, 1) Like "[ ]" Then
MsgBox "スペースは入力できません"
GoTo A
End If
Next L
425デフォルトの名無しさん:2006/04/07(金) 12:08:18
>>424
かんたんコース :InStr関数を使う
発展コース    :正規表現を使う
426デフォルトの名無しさん:2006/04/07(金) 12:33:12
>>413
ああスマンそれであってるねw
俺の勘違いだわ。
最近ほとんどVB使ってないもんでつい申し訳ない。
427デフォルトの名無しさん:2006/04/07(金) 12:49:00
ガントチャートでスケジュール表を作りたいのですが市販のガントチャートのように
表のヘッダ部分に月日を表示、そして各アイテム事に日程期間のガントチャートを描画する
フリーウェアでいえばhttp://www.gansuke.com/にある”がんすけ”のようなものを作りたいのです
がいい考えが受かびません。
市販のコントロールとしてはSpread2.5J、ChartBuilder5.0Jの開発ライセンスを持っているので
最初はできると思い作業を進めていったのですが・・・
どなたかいい知恵があればご教授お願いします。
428デフォルトの名無しさん:2006/04/07(金) 12:55:27
>>425
ありがとうございます
早速、修行します
429デフォルトの名無しさん:2006/04/07(金) 13:01:00
>>427
何聞きたいのかはっきりしろよ。
430420:2006/04/07(金) 14:27:36
"←ダブルだけすり抜けてしまうぅぅ。あと一歩のところで…

無念!(><)
431デフォルトの名無しさん:2006/04/07(金) 14:45:24
>>430
Debug.Print """"
432デフォルトの名無しさん:2006/04/07(金) 15:19:21
>>430
日本語でおk。
433420:2006/04/07(金) 15:30:44
>>431
Gracias!
434デフォルトの名無しさん:2006/04/07(金) 16:09:22
>>424
If NM Like "*[0-9]*" Then
435デフォルトの名無しさん:2006/04/07(金) 16:51:26
>>422
「日本語かどうか判定」が、いわゆる「全角」のアルファベットとかも弾くのなら
If (Text1.Text = StrConv(Text1.Text, vbLowerCase) And _
(Text1.Text = StrConv(Text1.Text, vbUpperCase))) Then
MsgBox "日本語です"
Else
MsgBox "日本語じゃないってばっちゃが言ってた"
End If
とか。
436420:2006/04/07(金) 21:02:29
>>434-435
おお、勉強になります φ(。。)
437427:2006/04/08(土) 08:28:49
>>429
> >>427
> 何聞きたいのかはっきりしろよ。

まず、日程のためのカレンダー表の作り方がわからないのです。
横軸を月日、縦軸を各プロジェクトのアイテム項目としたいのです。
EXCELなら簡単にできますがVBではどうやっていいものかわかりません。
438デフォルトの名無しさん:2006/04/08(土) 09:22:04
PictureBoxでautoredraw = true
にした時に使用するバックバッファのサイズって変更できますか?
扱う画像がバックバッファに収まりきれずにAutoredrawエラーが発生します。

すいませんが、どなたかご教授願います。
439デフォルトの名無しさん:2006/04/08(土) 10:30:18
>>437
エクセル使えばいいじゃん。
つーか、VBは、その手のソフトを作るツールじゃないよ。
カレンダーを実装したいなら、そういうコントロールを
買って貼り付ける。

>>438
無理。
440デフォルトの名無しさん:2006/04/08(土) 12:14:43
>>438
つーかバッファのサイズを変更って発想が理解不能。
必要なバッファのサイズは当然描画領域の面積によって自動的に決まっちゃうんじゃないの?
脳味噌腐ってないか?w

何らかの理由で[ピクチャーボックスのサイズ] ≠[描画領域のサイズ] ってことなら
描画領域だけAutoredraw = Trueにした別のピクチャーボックス使えばいいんじゃないの。
441デフォルトの名無しさん:2006/04/08(土) 12:29:27
>>440
お前の脳味噌も半分腐ってるな
442デフォルトの名無しさん:2006/04/08(土) 12:33:14
>>441
具体的なことは何もいえないのかなw
443デフォルトの名無しさん:2006/04/08(土) 13:38:55
>>438
画像を真面目に扱いたいなら、「LEAD TOOLS」とか使った方がいいよ。
444デフォルトの名無しさん:2006/04/08(土) 14:09:38
>>439-443
御回答有難う御座います。

>つーかバッファのサイズを変更って発想が理解不能。
>必要なバッファのサイズは当然描画領域の面積によって自動的に決まっちゃうんじゃないの?

と言う事はメインメモリを増やせば改善されるということですか?
445デフォルトの名無しさん:2006/04/08(土) 14:15:04
>438 名前:デフォルトの名無しさん :2006/04/08(土) 09:22:04
>PictureBoxでautoredraw = true
>にした時に使用するバックバッファのサイズって変更できますか?
>扱う画像がバックバッファに収まりきれずにAutoredrawエラーが発生します。
>
>すいませんが、どなたかご教授願います。

×使用するバックバッファのサイズ
○使用するバックバッファサイズの上限
446デフォルトの名無しさん:2006/04/08(土) 14:46:56
>>444
メインメモリを増やしても無駄。
リソースの問題だから。
447デフォルトの名無しさん:2006/04/08(土) 14:59:46
え?w
448デフォルトの名無しさん:2006/04/08(土) 15:18:25
>>444
実現したい処理内容を明確にしないと、ゴチャゴチャどうでもいいレスは付くが
問題の解決方法は得られないよ。

描画に関しては「すべからくこのようにすればいい」なんていう
銀の弾丸は存在しないからね。
449何かを作りたい人:2006/04/08(土) 21:13:52
わけあってVisual Basic Vr.4.0を使っているのですが
コマンドをクリックするとプロジェクトを終了する方法は知っているのですが
Private Sub Command1_Click()
If Text1.Text = "Hello." Then Unload Me
If Text1.Text = "" Then Text1.Text = "Hello."
End Sub
とコマンドのところに打ち込んで
開始のボタンを押すと
hello.は表示されるんですが
もう一回コマンドをクリックすると終了されたように見えて実行中になっているのですが
なんでですか?
450デフォルトの名無しさん:2006/04/08(土) 21:25:12
>>449


'ココで Unload される
If Text1.Text = "Hello." Then Unload Me

'Unload されているのに Text1.Text = "" を比較しようとしているので
'FormはText1を見る為に再ロードされた
If Text1.Text = "" Then Text1.Text = "Hello."

でOK?

下のIfをElseIfにすればいいんでない?
451デフォルトの名無しさん:2006/04/08(土) 23:14:32
Unload Meの次にExit Subを入れるとか
Select Caseにするとか、とにかくUnload後にText1を見に行かなきゃ
いいわけですね。
452デフォルトの名無しさん:2006/04/08(土) 23:17:00
Command1_Clickでは常にUnload Meして、QueryUnloadで
Text1.Textが"Hello."じゃなかったらCancel=Trueとか。
ここまで書くとよけいなお世話か。
453デフォルトの名無しさん:2006/04/08(土) 23:21:02
430→432→433の流れがおもしろい。
454437:2006/04/09(日) 06:53:31
>>439
> >>437
> エクセル使えばいいじゃん。
> つーか、VBは、その手のソフトを作るツールじゃないよ。
> カレンダーを実装したいなら、そういうコントロールを
> 買って貼り付ける。

そういうコントロールが市販されているメーカーがあればば知りたいのです。
グレープシティ社しか私は知らないので・・・
455何かを作りたい人:2006/04/09(日) 07:59:17
デフォルトの名無しさん
ありがとうございました
いいものが作れそうです
456デフォルトの名無しさん:2006/04/09(日) 10:05:59
Unload Me は、最初ちょっと躓く所だね。
457438:2006/04/09(日) 10:30:09
Win2000で開発してNT3.5で実行するとリソース不足に陥るのは
開発OSと実行OSのデスクトップ・アプリケーション・ヒープサイズの
違いが問題となっている事が多いのでしょうか?

NT系であれば上記ヒープサイズは普通3Mbyte確保されているらしいですが、
どうもNT3.5だけ512kbyteに設定されているみたいです・・・・・・
458438:2006/04/09(日) 10:36:30
レジストリ変更によりデスクトップアプリケーションヒープサイズの
上限を変更できるようですが如何せん、上記ヒープは全てのプロセスに
マッピングされるようなので下手にサイズ変更するのは危険らしいです。
共用で使用しているPCならなおさらですね・・・・・・・

結局、扱う画像のサイズを落とすしかないのか・・・・
459438:2006/04/09(日) 10:42:47
オブジェクトのライフサイクルを最短にして
リソース使用率を低下させるという策もあるようですが、
確実に解決できる策ではないですね・・・・・・・
460デフォルトの名無しさん:2006/04/09(日) 10:47:32
>>457
運用環境と全く同じ環境で開発&テストするのは、常識以前の話なんだが。
それに、2000でセットアップを作成してNT4にインストールなんかしたら、
NT4の環境が破壊される。
461438:2006/04/09(日) 11:08:31
Pictureboxに描画するサイズ=ある物体の実寸のサイズ値
にして、Scale関係のプロパティで拡大縮小表示をしたいのですが
実寸の数値が大きすぎてAutoRedrawエラーが発生してしまっています。

変更したい倍率にしてからPictureBoxに描画すれば良いのですが、
現状、データを整数値で管理している上、整数値でPictureBoxに
描画を行っている為、誤差が酷くなってしまうのです。
462438:2006/04/09(日) 11:15:47
物体のサイズ=整数値を前提としてその他の処理も構築してある為、
整数値で描画をする処理は変更をしたくない状態です。
463デフォルトの名無しさん:2006/04/09(日) 11:19:10
>>461
そうですか。
464デフォルトの名無しさん:2006/04/09(日) 11:27:48
>>462
ヒント:日記は自分のブログで。
465デフォルトの名無しさん:2006/04/09(日) 11:37:38
>>461
まあ幼稚なガキのレスは無視するよろし。

しかし、君のレスにも問題あるだろ。
461で君が言っていることが正しいとすれば、(俺は正しくないと思うんだけど)
それってAutoRedrawと関係ないように聞こえるけど。

MSDNによると、VBのグラフィックメソッドの座標の引数は単精度、
つまりSingle型となっている。

実寸の数値が大きすぎて、というけど、Single型で足りない実寸って
どんな巨大なもの表現するつもりよ?
太陽の直径をmmで表現したってお釣りがくるはずなんだけど。

まず起こっている問題をもっと正確に分析すべきじゃないの?
466デフォルトの名無しさん:2006/04/09(日) 22:59:53
JAVAとVBはオブジェクト指向だと聞いたのですが
オブジェクト指向の考え方を両方とも似た文法で書くのですか
違うとしたらどこが違いますか
467デフォルトの名無しさん:2006/04/09(日) 23:25:01
>>466
言った奴に聞けよ
468デフォルトの名無しさん:2006/04/10(月) 00:03:21
>>466
オブジェクト指向は言語でやるものではない。
考え方や作り方であって書き方ではないのだよ。
469デフォルトの名無しさん:2006/04/10(月) 00:11:09
標準の Directory List Box で、隠し属性の付いた
ディレクトリを表示する方法を教えて下さい。
470デフォルトの名無しさん:2006/04/10(月) 02:15:25
>>466
どのくらい一致していれば似たことになるのかわからないが、
違うとしたら似たところ以外が違う。

ってこんなふうに、あいまいな質問を皮肉っぽく馬鹿にしたレスを付けるから
スレが荒れるんだよな。
471デフォルトの名無しさん:2006/04/10(月) 09:05:03
>>469
FileListBox なら、Archive, System, Hidden, ReadOnly があるのにね。
472デフォルトの名無しさん:2006/04/10(月) 15:53:24
vb6.0とORCLEを使用しています。

ORACLEにINSERT文で時間を挿入したいのですが、どうもうまくいきません。

例えば、テーブルAにdate1(DATE型)があるとして、

INSERT INTO A (date1) values(SYSDATE) はうまくいくのですが、

自分で好きな時間を挿入する場合はどうすればいいのでしょうか?

INSERT INTO A (to_char(date1,'YYYY/MM/DD HH24:MI:SS') values('2006/04/10 15:51:30')
は、だめでした。
473デフォルトの名無しさん:2006/04/10(月) 15:59:47
>>472
DB版いけ〜というところだが、一応答えておこう。
INSERT INTO A (date1) values(to_date('2006/04/10 15:51:30','YYYY/MM/DD HH24:MI:SS')) 
474デフォルトの名無しさん:2006/04/10(月) 16:10:12
>>473
472です。

できました。

どうもありがとうございました。
475466:2006/04/11(火) 19:52:46
上の方で機能不足とあるのですが深刻な機能不足ですか。じゃばやしぃぷらぷらを進める人がいるのはそういう事ですか
476デフォルトの名無しさん:2006/04/11(火) 20:11:22
>>475
ヒント:適材適所
477デフォルトの名無しさん:2006/04/12(水) 09:30:25
OO万能みたいな奴のほうが痛い。
478デフォルトの名無しさん:2006/04/12(水) 12:39:33
それをOOP理解してない君が言うのはもっと痛々しいんじゃないか?w
ていうかOOP万能なんていう奴は聞いたこともないけどね。
479デフォルトの名無しさん:2006/04/12(水) 13:00:41
>>478
2chにうようよいますが、万能と発言はしなくても一連の発言からそうとれる阿呆が。
480デフォルトの名無しさん:2006/04/12(水) 13:18:01
どんな手法使おうが、結局は、
設計する人が優秀かどうか、だね。
481407:2006/04/12(水) 18:29:28
>>409
グレープシティの製品です。
ここ以外に質問できるところをご存知でしたら教えて頂きたいです。
スプレッドのスレは見つけたのですが人がいませんし
ほかのサイトで質問してもあまり返信がありません。
>>410
すみませんが派生して自作の意味がよくわかりません。
482デフォルトの名無しさん:2006/04/12(水) 18:40:11
>>481
>>407そのようなプロパティは見当たりません

>>410とことんイベントに書き込むしかないんじゃないの?


答え出てるじゃんよ
483デフォルトの名無しさん:2006/04/12(水) 18:58:41
>>481
ここ以外って、グレープシティの製品なんだから、
グレープシティに聞けばいいじゃん。
メイルサポートやってなかったっけ?
484デフォルトの名無しさん:2006/04/12(水) 19:08:23
VB6.0を使用しています。
画面をハードコピーしたいのですが、
PrintFormだと画面上に表示されたものしか印刷できません。
スクロールバーの付いたテキストボックスなどのように、
画面上に表示しきれない内容をすべて印刷できる方法はありますか?
485デフォルトの名無しさん:2006/04/12(水) 19:41:17
>>484
ある。
486デフォルトの名無しさん:2006/04/12(水) 19:48:09
>>485
あるのですね。
それでは、貴方はそのやり方を説明できますか?
487デフォルトの名無しさん:2006/04/12(水) 19:48:44
アルナイ厨は無視するよろしアルヨ
488デフォルトの名無しさん:2006/04/12(水) 19:52:41
>>486
できます。
489デフォルトの名無しさん:2006/04/12(水) 19:53:26
>>484
まあそれにしても、484はもう少し実現したいことを具体的に書かなきゃだめだよ。
テキストボックスなどのように、って何だよ。

テキストボックスの内容(要するにテキストだけど)を印刷したいのかい?
それならサンプルを見つけるのに苦労しないはずだと思うが。
490デフォルトの名無しさん:2006/04/12(水) 19:53:59
>>49
それをどうやって証明するのですか?
実際にやり方を説明しなければ証明できないと思いますが、
では証明(やり方を説明)してみてください。
491デフォルトの名無しさん:2006/04/12(水) 19:55:58
>>489
ん? 印刷したいのは、
> スクロールバーの付いたテキストボックスなどのように、
> 画面上に表示しきれない内容を
だろ?

「など」と書いてあることからテキストボックス以外も含まれるとわかると思うが?
492デフォルトの名無しさん:2006/04/12(水) 19:58:41
質問しといて何突っかかってんだよ。。頭悪いのかな。
>>485みたいにイカレタ奴ばかりじゃなくて、
真面目に回答しようと思ってる奴だって少しはいるのに。

別に煽りでも何でもなくて、文字列を印刷する方法が分からないし、
サンプルも探せない、って本気で言ってるのならプログラミングなんて
やらない方がいいよ。見込みないから。
493デフォルトの名無しさん:2006/04/12(水) 20:00:21
わからないのは、文字列の印刷じゃなくて、
スクロールバーのついたテキストボックスなどの
画面に表示しきれない内容だろう。

だれが文字列を印刷する方法がわからないといっているんだ?
494デフォルトの名無しさん:2006/04/12(水) 20:02:17
>>491
君も馬鹿だね。

じゃあスクロールバー付きの物を含むコントロールが複数存在するような
画面のハードコピーなんてどうやって実現するんだよ。

技術的な問題じゃないよ。
レイアウトはどう決めるの?
495デフォルトの名無しさん:2006/04/12(水) 20:04:50
496デフォルトの名無しさん:2006/04/12(水) 20:05:00
紙の上ではスクロールバーの機能は実現できないんだぞw
分かってていってるのかな。
497484:2006/04/12(水) 20:12:27
484です。
私の質問の仕方が悪かったのか、ずいぶん荒れてしまったようです。
どうもスミマセンでした。

スクロールの付いたテキストボックスはフォーム上に1つだけです。
フォーム全体の印刷ができなくても、テキストボックスの内容だけ印刷できればいいです。
(本当はスプレッドシートを使用しているのですが、テキストボックスで印刷できれば後は自分で考えます。)
498デフォルトの名無しさん:2006/04/12(水) 20:25:59
>>497
だったら、それこそ「文字列の印刷」を調べればいいだけじゃん?
それとも「テキストボックスの中に文字列が書いてある画像」を
印刷したいなら、画像(ビットマップ)を印刷する方法になるかな。
499デフォルトの名無しさん:2006/04/12(水) 20:29:17
>>497
「テキストボックスの内容」なんて普通の文字列なんだから、
画像としてじゃなく、普通に印刷すればいいじゃん。
500484:2006/04/12(水) 20:33:11
>>498
>>499
484です。
スミマセン、また説明不足でした。

文字列を印刷したいのではなく、
テキストボックスをスクロールバーのEnabledプロパティがFalseになるまで
伸ばしてテキストボックス全体をハードコピーしたいのです。

(実際にはスプレッドシート全体をハードコピーしたい。)
501デフォルトの名無しさん:2006/04/12(水) 21:01:06
>>500
「スクロールバーのEnabledプロパティがFalseになるまで」の意味が不明だが、
文字列長が画面よりも長かったらどうすんの?
相変わらず仕様が分からん。
502デフォルトの名無しさん:2006/04/13(木) 03:10:55
>>500

>>テキストボックスをスクロールバーのEnabledプロパティがFalseになるまで伸ばして
テキストボックスに全て文字が見えるようにHeight・Widthを調整してから
テキストボックス全体をキャプりたいって言う事か

テキストボックスに表示されている文字の高さ・幅が分からなくて
テキストボックスを調整できず途方にくれているのか?
503デフォルトの名無しさん:2006/04/13(木) 09:24:11
ttp://www.uploda.org/uporg363262.jpg

フォームのアイコンなんですが
普通、下図のようなアイコンのはずですが、
なにかの拍子に上図のようなアイコンに変わっちゃいました・・・
どこを弄れば元に戻りますか?
504デフォルトの名無しさん:2006/04/13(木) 09:29:46
あ、アイコンのプロパティは(なし)になってます
505デフォルトの名無しさん:2006/04/13(木) 09:46:29
>>503
Form の Icon プロパティじゃなくて?
506デフォルトの名無しさん:2006/04/13(木) 09:53:58
>>504
フォームを追加した場合、初期のデフォルトでは「(なし)」にはなってない筈。
507デフォルトの名無しさん:2006/04/13(木) 09:55:41
ああ・・・・見つかりました

Iconプロパティで
デフォルトでは(アイコン)となってるところをデリートすると(なし)になって、
アイコンが変わってしまうんですね

もとのアイコンにはどうやって戻したら・・・
508デフォルトの名無しさん:2006/04/13(木) 10:27:39
>>507
*.Frm をエディタで変更すればいい。
なしにしたら
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 9492
ClientLeft = 1344
ClientTop = 1380
ClientWidth = 5628
LinkTopic = "Form1"
ScaleHeight = 9492
ScaleWidth = 5628
End
って感じになってるので、
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 9492
ClientLeft = 1344
ClientTop = 1380
ClientWidth = 5628
Icon = "Form1.frx":0000 ← 追加
LinkTopic = "Form1"
ScaleHeight = 9492
ScaleWidth = 5628
End
にする。
509デフォルトの名無しさん:2006/04/13(木) 10:33:31
>>508
ありがとう!直りました

ただ、逆でしたが・・・
アイコンが(なし)のものに、
Icon = "Form1.frx":0000
があったので、この行を削除したら
標準に戻りました
510デフォルトの名無しさん:2006/04/13(木) 11:00:55
>>509
あぁそうそう間違えた。
511デフォルトの名無しさん:2006/04/13(木) 13:41:56
今 ネット使えない状況で ぐぐれないので
質問させてください

Altキー押しながら"I"を押す
コードって どうしたらいいですか?
512デフォルトの名無しさん:2006/04/13(木) 14:28:48
期限:4月18日。 二分探索の実行過程・実行ステップ数を調べるプログラムを作りたい。
テキストp.52〜p.54に載っている順序配列のプログラム(orderedArray.java)を参考
に、ひな形プログラム中の次の各メソッドを完成させよ。完成すると、二分探索の様
子を表示しながら探索を実行してくれるようになる。
1-1:配列の内容を表示するメソッドを完成させよ。
・課題2
1-2:配列にランダムな値を大小順に代入して初期化するメソッドを完成させよ。
・課題3[記入内容非公開]
1-3:二分探索を実行するメソッドを完成させよ。
・課題4
1-4:mainメソッドを完成させ、ソート過程を表示しながら選択ソートを実行するよう
にせよ。
・課題5
1-5:作成したプログラムが正しく選択ソートを実行していることが分かる
  実行結果を示し、正しく動作していることを説明せよ。
・課題6
1-6:考察・感想・デバッグ履歴を述べよ。
ひな形プログラムは以下↓のWebページに掲載してあります。
http://edu.kankyo-u.ac.jp/InfSys/class2006/Programming3/20060410/BinarySearch.java
余裕のある人は、配列の大きさによって二分探索にかかるステップ数の平均が
どのように変化するか、調べてみよ。
どうしても分からないので、よろしくお願いします。
513デフォルトの名無しさん:2006/04/13(木) 14:37:14
鳥取環境大学か?
これは酷いなちょっとメールしておくか
514デフォルトの名無しさん:2006/04/13(木) 17:41:06
以下のコードはテキストファイルCSVからSQL文でデータを取得する関数ですが、
なにかマズイ部分ってありますか?

Public Function QueryToTextFile(dirPath As String, sql As String) As Variant

On Error GoTo On_Error_Connection
Dim connection As ADODB.connection
Set connection = New ADODB.connection
connection.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=" & dirPath
connection.Open

On Error GoTo On_Error_Record_Set
Dim recSet As ADODB.Recordset
Set recSet = New ADODB.Recordset
recSet.ActiveConnection = connection
recSet.Open sql, , adOpenDynamic, adLockReadOnly

If recSet.EOF = False Then
QueryToTextFile = recSet.GetRows()
End If

recSet.Close

On_Error_Record_Set:
Set recSet = Nothing
connection.Close

On_Error_Connection:
Set connection = Nothing

End Function
515デフォルトの名無しさん:2006/04/13(木) 17:49:06
なにこの○投げw
516デフォルトの名無しさん:2006/04/13(木) 18:35:39
>>511
SendKeys "%i", True
517デフォルトの名無しさん:2006/04/13(木) 18:36:38
>>514
動かしてみればいいじゃん。
518デフォルトの名無しさん:2006/04/13(木) 20:59:11
recSet.Open sql, , adOpenDynamic, adLockReadOnly
の行でエラーになったり、ならなかったりと不安定で、
原因が謎なので、どこかおかしな記述でもあるのかなと思って。
519デフォルトの名無しさん:2006/04/13(木) 22:00:44
>>518
取り敢えずは、 Connection オブジェクトがあるんだから
Dim connection As ADODB.connection
↑変数名に使うのはやめるとか。
520デフォルトの名無しさん:2006/04/13(木) 22:04:02
>>518
まったく同じデータ&環境でエラーになったり、ならなかったりするの?
「どういうとき」に「どういうエラー」になって、
正常なときと「どう違う」のかを調べてから出直したら?
それってあんたしか調べようがないんだからさw
521デフォルトの名無しさん:2006/04/13(木) 22:38:43
>>519
とりあえず動作に関しては、それはまったく意味が無い。
522デフォルトの名無しさん:2006/04/14(金) 01:13:11
VB6でJPEG画像のEXIF情報を取得したいのですがやったことありかたいますか?
.NETだと扱えるClassがあるみたいなんですがVB6だとどうなんでしょうか・・・
外部DLL併用でもよいので知恵をかしてくださいませ。
523デフォルトの名無しさん:2006/04/14(金) 09:38:40
524デフォルトの名無しさん:2006/04/14(金) 10:25:05
リストボックスの各項目にチェックボックスを付けたいのですが、そういうプロパティが見つかりません。
いわゆる"CheckedListBox"が別にあるのでしょうか?
525デフォルトの名無しさん:2006/04/14(金) 10:37:17
マズイ部分がわかりました。サンクスでした。
526デフォルトの名無しさん:2006/04/14(金) 10:38:09
>>524
List1のプロパティ
Style
0=標準
1=チェックボックス
527デフォルトの名無しさん:2006/04/14(金) 10:38:53
>>524
ヒント:ListBox の Style プロパティ
528デフォルトの名無しさん:2006/04/14(金) 10:45:20
>>525
何の話だよ。
何故アンカーを付けん。
529デフォルトの名無しさん:2006/04/14(金) 10:49:49
>>525
514
530デフォルトの名無しさん:2006/04/14(金) 10:52:43
質問しといて結果の内容報告なしか。
531デフォルトの名無しさん:2006/04/14(金) 11:13:33
>>526-527
ありがとうございます。表示できました。
532デフォルトの名無しさん:2006/04/14(金) 11:32:27
ListBoxについて追加で質問です。
DataGridのようにDataSourceにrecordsetを設定してその内容を表示したいと思います。
しかし、単純にList1.DataSource = recordsetとしても表示は更新されませんでした。

レコードセットから必要な情報を取り出して、それぞれAddItemしないといけないのでしょうか。
533532:2006/04/14(金) 13:35:27
こんな感じでお茶を濁しました。

rs.MoveFirst
Do Until rs.EOF
Me.List1.AddItem (rs.Fields(0) & " " & rs.Fields(1) & "...")
rs.MoveNext
Loop
534デフォルトの名無しさん:2006/04/14(金) 14:13:27
>>532
Microsoft Data Bound List Controls 6.0 (SP6)
Microsoft DataList Controls 6.0 (SP3) (OLEDB)
とか使った方がいいかも。
535デフォルトの名無しさん:2006/04/14(金) 14:36:50
>>534
レスありがとうございます。
一応試してみたのですが、その二つはチェックボックスを表示させる事ができないようです。
>>524>>532をスマートな形で満たせるのはListBoxしかないのでしょうか。
536デフォルトの名無しさん:2006/04/14(金) 14:37:46
TxtBoxで〜〜〜〜〜〜〜って入力されているのをクリックすると(別にTxtBoxじゃなくてもよいが)
outlookのメール送信ページが起動されて自動的に〜〜〜〜〜〜〜の部分をあて先に入力できるようにしたいんですが
どうすればいいですかね?調べたんですがsmtpとかの送り方とかそういう難しいのしかみつからなかったんで
あて先自動出力だけでいいんですが。

2chの名前欄クリックでsageとかがあて先に入力なるような感じにしたいのです。

winXpPro VB6.0SP6
537デフォルトの名無しさん:2006/04/14(金) 14:43:13
>>536
文字中のクリックかな?
HTMLにしてWEBのコントロールで表示すれば?
538デフォルトの名無しさん:2006/04/14(金) 14:46:35
>>536
ShellExecuteでいいよ。
539デフォルトの名無しさん:2006/04/14(金) 14:49:04
>>536
ヒント:
ShellExecute(Me.hwnd,"open","mailto:[email protected]", vbNullChar,vbNullChar,SW_SHOWNORMAL)
540デフォルトの名無しさん:2006/04/14(金) 15:24:15
>537-539
教えて頂いたのを元に検索してみたら無事成功しました
どうもありがとうございます。助かりました
541デフォルトの名無しさん:2006/04/15(土) 00:19:53
522です。

>523
このようなサイトがあるのですね。
今日は仕事でこの時間の帰宅なので明日以降内容を見てためしてみます。
ありがとうございました。
542デフォルトの名無しさん:2006/04/15(土) 08:56:07
ttp://sansu.org/にある問題を解くプログラムを書きました

Private Sub Command1_Click()
Dim X
For X = 1 To 100000 Step 1
If (X + 1) Mod 2 = 0 Then
If (X + 2) Mod 3 = 0 Then
If (X + 6) Mod 5 = 0 Then
If (X + 30) Mod 11 = 0 Then
If (X + 330) Mod 41 = 0 Then
MsgBox ("答えは「" & X & "」です!")
Exit Sub
End If
End If
End If
End If
End If
Next
MsgBox ("解無し")
End Sub

これって、もっとスマートな書き方は無いでしょうか?
543デフォルトの名無しさん:2006/04/15(土) 10:00:17
>>542
ヒント 関数。
544デフォルトの名無しさん:2006/04/15(土) 10:11:40
>>541
っつーか、google で検索すれば殆ど何でもあるぞ。

>>542
十分スマートで素直じゃん。
絶対にバグの入り込む余地がないし。
545デフォルトの名無しさん:2006/04/15(土) 12:35:57
ある程度条件絞り込めるな。
上3つから X = 19 + 30n(n >= 0) までは簡単に出る。
546デフォルトの名無しさん:2006/04/15(土) 12:49:29
>>542
For X = 1 To 100000 Step 1
この時点で問題の要件を満足していない。
答えが必ず100000までの中にあると決めている。
547デフォルトの名無しさん:2006/04/15(土) 13:00:28
>>545
分からん。説明してよ。
548デフォルトの名無しさん:2006/04/15(土) 13:31:22
なんか下らんレスしかできない痛々しい奴が多いな。
「ヒント」だとかさ。
馬鹿だからよくわからない、
しかし人様に偉そうに教えを垂れてはみたい、っていう幼稚な心象がミエミエ。
見てるこっちが恥ずかしいよw
549デフォルトの名無しさん:2006/04/15(土) 13:34:31
>>542
変に小細工するよりそれでいいと思う。
ただ、せめてネストの順序は逆にした方がいいね。

あえて小細工するならこんな感じか?
550デフォルトの名無しさん:2006/04/15(土) 13:35:09
Private Sub Command1_Click()
  Dim X As Long
  For X = 1 To 100000
    If MeetConditions(X) Then Exit For
  Next
  MsgBox ("答えは「" & X & "」です!")
End Sub

551デフォルトの名無しさん:2006/04/15(土) 13:36:16
Private Function MeetConditions(X As Long) As Boolean
  MeetConditions = MeetConditionN(X, 1)
End Function

Private Function MeetConditionN(X As Long, N As Integer) As Boolean
  Dim meet As Boolean

  Select Case N
    Case 1
      meet = ((X + 330) Mod 41 = 0)
    Case 2
      meet = ((X + 30) Mod 11 = 0)
    Case 3
      meet = ((X + 6) Mod 5 = 0)
    Case 4
      meet = ((X + 2) Mod 3 = 0)
    Case 5
      meet = ((X + 1) Mod 2 = 0)
      MeetConditionN = meet
      Exit Function
  End Select
  If meet = False Then
    MeetConditionN = False
  Else
    MeetConditionN = MeetConditionN(X, N + 1)
  End If
End Function
552デフォルトの名無しさん:2006/04/15(土) 13:38:34
分かり難いな。
別の人がメンテするのも大変そうだ。
553デフォルトの名無しさん:2006/04/15(土) 14:08:20
41の倍数から始めた方がループの回数は少ないな。
Const Max = &H7FFFFFFF
Do
N = N + 1
If N > (Max) / 41 Then
MsgBox ("忙しいから又今度ね!")
Exit Sub
End If

If N Mod 1000 = 0 Then
DoEvents
End If
X = 41 * N - 330
If (X + 30) Mod 11 = 0 Then
If (X + 6) Mod 5 = 0 Then
If (X + 2) Mod 3 = 0 Then
If (X + 1) Mod 2 = 0 Then
MsgBox ("答えは「" & X & "」です!")
Exit Sub
End If
End If
End If
End If
Loop
554デフォルトの名無しさん:2006/04/15(土) 14:13:50
>>553
よくそんなんで人様に教えを垂れる気になれるなあ。。
555デフォルトの名無しさん:2006/04/15(土) 14:32:47
アルゴリズムを競うとか、趣味のプログラマならともかく、
プロの、仕事としてコードを書くプログラマなら、>>542
が正解でしょうね。
556デフォルトの名無しさん:2006/04/15(土) 15:39:41
プロならDim X なんて書かないけどな。
557デフォルトの名無しさん:2006/04/15(土) 15:47:13
>>542
俺ならこう書く。

Private Sub Command1_Click()
Dim X As Long
For X = 1 To 100000 Step 1
If foo(X) = True Then
MsgBox ("答えは「" & X & "」です!")
Exit Sub
End If
Next
MsgBox ("解無し")
End Sub

Private Function foo(ByVal n As Long) As Boolean
foo = False
If (n + 1) Mod 2 <> 0 Then Exit Function
If (n + 2) Mod 3 <> 0 Then Exit Function
If (n + 6) Mod 5 <> 0 Then Exit Function
If (n + 30) Mod 11 <> 0 Then Exit Function
If (n + 330) Mod 41 <> 0 Then Exit Function
foo = True
End Function
558デフォルトの名無しさん:2006/04/15(土) 15:57:26
>>556
アルゴリズムの話。
559デフォルトの名無しさん:2006/04/15(土) 16:32:21
>>542
こんなのはどうですか?

Dim n As Variant
Dim i As Long, j As Long
Dim found As Boolean

n = Array(Array(1, 2), Array(2, 3), Array(6, 5), Array(30, 11), Array(330, 41))

For i = 1 To 100000
found = True
For j = LBound(n) To UBound(n)
If ((i + n(j)(0)) Mod n(j)(1)) <> 0 Then
found = False
Exit For
End If
Next
If found Then
MsgBox "答えは" & i & "。"
Exit For
End If
Next
If found = False Then
Debug.Print "答えはなし。"
End If
560デフォルトの名無しさん:2006/04/15(土) 16:46:29
この手の話題はみんな喰い付きがいいな。
561デフォルトの名無しさん:2006/04/15(土) 16:53:49
みんな、俺が一番って思っているからでしょう。
562デフォルトの名無しさん:2006/04/15(土) 17:03:12
私の場合、インデントとかレイアウトにも拘りがあるけど、
ここに書き込むと全部先頭の空白が詰まっちゃうから
書き込まない。
563デフォルトの名無しさん:2006/04/15(土) 17:26:29
空白が詰まらない方法で書けばいいじゃないか。
564デフォルトの名無しさん:2006/04/15(土) 19:59:48
>>557
だから繰り返すけど、せめて条件判断の順序は逆にしないとね。
この手の問題は解析的に解いてしまってはそもそもプログラムの出番はない。
その点はそうなんだが、だからといって何の工夫もないのもね。
565デフォルトの名無しさん:2006/04/15(土) 20:13:10
>>564
解析的じゃない解き方って?
566デフォルトの名無しさん:2006/04/15(土) 20:29:52
解析的って意味を勘違いしてないかい?
例えば方程式の解をニュートン法を使って力技で求める方法に対して、
人間がやるように解くことを解析的っていうんだよ。

この問題でいったら、計算機使って小さな値から総当り的にチェックするんじゃなくて
算数的に理詰めで答えを出しちゃうことを言ってるわけ。
567デフォルトの名無しさん:2006/04/15(土) 20:53:27
>>566
ん?
誰が「算数的に理詰めで答えを出し」たの?
568デフォルトの名無しさん:2006/04/15(土) 20:57:27
もういいよお馬鹿さんはウンコして寝てな
569デフォルトの名無しさん:2006/04/15(土) 21:02:13
馬鹿ばっかり
570デフォルトの名無しさん:2006/04/15(土) 21:23:44
おれモッコリ
571デフォルトの名無しさん:2006/04/15(土) 21:29:05
「スタート」ボタンの上にマウスを置くと表示される「このボタンから始めます」
ってやつを、button1の上にマウスを置いた時に表示させたいんだけど、どうしたら
いいの?
572デフォルトの名無しさん:2006/04/15(土) 22:05:55
すみません、自己解決しました。
573デフォルトの名無しさん:2006/04/15(土) 22:08:41
>>571
ヒント:Command1.ToolTipText = "このボタンから始めます"
574542:2006/04/15(土) 22:10:50
>>542の質問をした者です。なんだか、お騒がせしてしまってすみません。
ええと、算数的にというか、紙の上で計算してしまうほど工夫を凝らすのはやっぱり意味ないですよね。
せっかくパソコンとVBがあるんですから。その上で、自分が書いたものは、あまりにもそのまま過ぎる
感じがしたので、みなさんに質問させていただきました。

で、条件判断の順序を逆にするというのは納得です。あと思ったのは
「1 を加えると、 2 で割り切れる」っていうところからXは奇数に決められるので、
For文を使うなら Step 2 にしてもいいですよね。単純に処理が半分になる。
575542:2006/04/15(土) 22:20:30
それと、自分的にひっかかってたのは>>546のことなんです。
最初「For X = 1 To 10000」としたものの、答えがそれ以上だったので書き換えたという
経緯があり、上限決めちゃダメかも、と。

でも>>553の「Const Max = &H7FFFFFFF」は知らなかったので勉強になりました。
上限にするならそこですね。

あとは、そうですね、>>557のようにFunctionプロシージャにして分けちゃうのもいいですね。
Trueを返す式があれば、上限をConst Max = &H7FFFFFFFにしてDo〜Loopでいくとか。
576542:2006/04/15(土) 22:24:07
あ、Step 41 でもいけますよね。けっこう暗算しなきゃいけないですけど(^_^;)
577デフォルトの名無しさん:2006/04/15(土) 22:42:51
そもそも、何故あんなサイトの問題に其処迄拘泥するの?
578542:2006/04/15(土) 23:12:50
>>577
いや、別に。たまたまです。
答えを知りたいだけなら>>542の式で十分なわけですし。
579デフォルトの名無しさん:2006/04/15(土) 23:45:26
>>578
君のおかげで、久し振りにココが活性化したよ。
580デフォルトの名無しさん:2006/04/16(日) 10:28:31
この問題の一番難しい点は、
1、解が無いかもしれない。
2、求める数値が非常に大きいかもしれない。
この2点を考えると、LoopやForで解く方法は好ましくない。
Select Caseは笑止。
581デフォルトの名無しさん:2006/04/16(日) 10:33:34
>>580
どうやって解けばいいの?
582デフォルトの名無しさん:2006/04/16(日) 10:50:12
580はリカーシブコールが理解できないみたいだねw
583デフォルトの名無しさん:2006/04/16(日) 10:55:24
>>582
知らん。
ここはVBのスレだ、数学のスレに行け。
584デフォルトの名無しさん:2006/04/16(日) 10:57:49
>>583
だから、「LoopやForで解く方法」以外のVBコードを示せと。
585デフォルトの名無しさん:2006/04/16(日) 10:58:36
>>582
どのレスがリカーシブコールだ、知らんのはおまえだろうw
586デフォルトの名無しさん:2006/04/16(日) 11:05:45
>>585
知らずによく批判できるもんだな。
まあ最初から批判が目的なんだろうけど。
そんなことしても、そこまでして人に相手にしてもらいたい自分がミジメになるだけだと
思うんだがね。

中高生だったら、そんなことしてると不幸になるぞ、細木和子みたいな言い草だが
18以上ならご愁傷様君の人生終わってるわ。

リカーシブコールってのは>>550-551のこと
587デフォルトの名無しさん:2006/04/16(日) 11:13:27
>>586
>>550-551はおまえが書いたコードか?
馬鹿らしくて議論にならん、帰れ。
588デフォルトの名無しさん:2006/04/16(日) 11:18:49
>>586
っ数子
589デフォルトの名無しさん:2006/04/16(日) 11:19:21
馬鹿なので議論ができん、の間違いでしょ?w
590デフォルトの名無しさん:2006/04/16(日) 11:23:43
>>550>>551 が別々のコードだと思っている悪寒・・・
591デフォルトの名無しさん:2006/04/16(日) 11:32:50
おまえは議論の論点が判っているのか?
わけの分からん文言を並べてて、ごまかすのはやめろ。
おまえが書いた、
For X = 1 To 100000
これは、出題のどこから導き出したものだ。

しかし驚いた、単にCaseを切り替えるだけの為に、再帰を使うとは。
おまえの書いたコードの唯一の利点は、おまえ以外に用意にコードが
理解できないことだ、機密保持にはもってこいだなw
592デフォルトの名無しさん:2006/04/16(日) 11:39:12
>>591
っ容易
593デフォルトの名無しさん:2006/04/16(日) 11:43:44
>>591
そんなの問題でもなんでもないよ、悪いけど。
なぜなら「それで現に答えが出るから」。

誰も、「この」問題でなければそのようにはしないけど。
例えば、個別の条件判断の2のパラメータに任意の値を指定できるようにする、
というような問題ならforループで試行する数値の上限を決めうちするような
コードは書かない。

こんなの当たり前のことで、青筋立てて偉そうに言うようなことじゃないよ悪いけど。
594デフォルトの名無しさん:2006/04/16(日) 12:39:19
>しかし驚いた、単にCaseを切り替えるだけの為に、再帰を使うとは。

同意。
たぶん最近再帰を覚えたんで使ってみたかったんじゃないかな?
595デフォルトの名無しさん:2006/04/16(日) 13:04:59
馬鹿らしいなw

ふーんそうかい、じゃあ再帰呼び出し(単に「再帰」じゃ意味をなさんよw)を使わず、
IFをネストしないようなコードを提示してみ?

>>557みたいな「ぶらさがり」を使って見た目だけネストがないように
見せかけるコードもなしね。

まあ各条件を個別に関数化するようなコードになるはずだが、
それが可読性や保守性の点からより望ましいといえるかね。
596デフォルトの名無しさん:2006/04/16(日) 13:38:56
>>591
「おまえ」て誰?
アンカー位付けてよ。
最近2chに来た人?
597デフォルトの名無しさん:2006/04/16(日) 13:43:01
>>595
>可読性や保守性の観点からすれば
再起よりはIFのネストのほうが良いと思う。
598デフォルトの名無しさん:2006/04/16(日) 13:52:37
>>597
それは最初からそういってるよw
599デフォルトの名無しさん:2006/04/16(日) 14:19:15
一回とか二回だけあの問題を解く、ってんなら最初ので十分。

パフォーマンスが要求されて、初めてアルゴリズムを検討するな。俺なら。
600デフォルトの名無しさん:2006/04/16(日) 14:19:33
>>542 が一番素直で直感的で分かり易い。
601デフォルトの名無しさん:2006/04/16(日) 14:47:34
>>595
IFをネストしちゃいけないなんて誰が決めたんだ。

>>599
そこだな、数学というのはプロセスを重視する学問なんだ、
とりあえず答えが出ました、ではだめなんだな。

602デフォルトの名無しさん:2006/04/16(日) 15:01:33
数学者は、一つの証明を5〜6年考え続けるのなんてザラらしいね。
603デフォルトの名無しさん:2006/04/16(日) 16:39:38
>>591
> For X = 1 To 100000
> これは、出題のどこから導き出したものだ。
出題には条件を満たす最小の値と書いてあるから、
100000以内にあるだろうというめぼしを付けただけだろ。
なければ増やせばいいだけ。
604デフォルトの名無しさん:2006/04/16(日) 16:42:03
>>580
> この問題の一番難しい点は、
> 1、解が無いかもしれない。
> 2、求める数値が非常に大きいかもしれない。
> この2点を考えると、LoopやForで解く方法は好ましくない。
> Select Caseは笑止。

解が無いものをプログラムで説くことは出来んよな。
コンピュータが苦手な証明の問題。
完全に数学の問題だよ。すれ違い。
605デフォルトの名無しさん:2006/04/16(日) 16:44:09
>>601
そういうことはどうでもいいから、
お前が考えた答えを言ったら?
606デフォルトの名無しさん:2006/04/16(日) 17:05:26
しかし、あの条件を満たす数値がちゃんと存在したのが驚きだ。
607デフォルトの名無しさん:2006/04/16(日) 20:40:37
>>605
そんなものは知らんといってるだろ。
考える気にもならん、数学の板に行け。
608デフォルトの名無しさん:2006/04/16(日) 20:59:57
んもー。ぬるぽ。
609デフォルトの名無しさん:2006/04/16(日) 21:05:48
>>608
んもー。ガッ。
610デフォルトの名無しさん:2006/04/16(日) 21:44:10
>>607
知らんなら中途半端に答えんな。
611デフォルトの名無しさん:2006/04/16(日) 22:37:01
612デフォルトの名無しさん:2006/04/16(日) 23:17:24
まあ、再帰はないだろ。わざわざこんなところで使うか?
613デフォルトの名無しさん:2006/04/16(日) 23:52:11
再三つっこんで悪いけど、だから「再帰」なんて言い方はしないよw
っていうか、最初から「あえてする小細工」だと書いてあるのが読めないのかな
614デフォルトの名無しさん:2006/04/16(日) 23:53:08
リエントリ、つまり再入、って言い方はするけどもね
615デフォルトの名無しさん:2006/04/17(月) 00:06:29
小細工というよりは不細工。
616デフォルトの名無しさん:2006/04/17(月) 00:39:35
なんかやたらと文の最後に「w」とかつけるやつがいる。
頭悪そう。
617デフォルトの名無しさん:2006/04/17(月) 02:03:59
VB6のIDEの設定を標準に戻す方法を教えていただけないでしょうか。
VS2003は環境設定に「標準に戻す」ボタンがついていたのですが…。
618デフォルトの名無しさん:2006/04/17(月) 15:02:02
>>617
何処を弄って変にしたの?
619デフォルトの名無しさん:2006/04/18(火) 02:26:00
>>618
そんなの聞いてどうするんだ?
変更箇所を何箇所も羅列してほしいのか?
そもそもそれがわからんから、標準に戻す方法なんだろ。
620デフォルトの名無しさん:2006/04/18(火) 06:47:54
>>619
そんな事はいいから、その方法を教えてやれよ。
621デフォルトの名無しさん:2006/04/18(火) 07:05:16
VB6でバーコードを印刷しようと思っています。
フォーム画面にアクセスのバーコードオブジェクトを用意しています。
printformで印刷はしましたが 読み取ってくれません。
もう少し綺麗に鮮明に印刷したいのですが方法はありますか?
あれば その方法をご指導いただけませんでしょうか?

VB単体で動かそうと思っているのですが無理な話でしょうか?
622デフォルトの名無しさん:2006/04/18(火) 09:31:37
623デフォルトの名無しさん:2006/04/18(火) 09:33:04
>>621
プリンタの印刷能力と、バーコードの仕様の問題でしょ?
機器メーカーのHPとかに、初歩的なバーコードの知識ってあるから見ておいたほうが良いよ。

細い線と太い線の比率、細い線の最低幅が決まっていて、
プリンタがその細さを出せないとか、ドライバ等の都合で比率を変えている場合はNG。
VBがどうこうじゃなくプリンタの問題。

まあ、あとそもそもでオブジェクトを大きめにはっつけて、大きめに印刷すれば?
あと、PrintFormはビットマップ経由だっけ?そんなことせずに付属のDataReportとかを使うとか。
もっと言えばMDB経由でACCESSのレポート機能使うとか。
624デフォルトの名無しさん:2006/04/18(火) 16:25:17
>>621
バーコードは画面に表示した時点でかなり潰れてる。
どんなに拡大しようが無理だった覚えがある。
直接プリンタオブジェクトに出力すること。
625デフォルトの名無しさん:2006/04/18(火) 16:31:33
つ バーコードフォント
626デフォルトの名無しさん:2006/04/18(火) 17:32:03
>>625
あれは種類がかなり限定すぎるし、細かい設定が出来なかったよね。
チェックでじっととかスタートすとっぷびっととか。
627デフォルトの名無しさん:2006/04/18(火) 17:45:23
バーコードOCX買えばいいじゃん。
628デフォルトの名無しさん:2006/04/18(火) 20:07:23
>>624
直接 プリンタオブジェクトって…

printer."バーコードオブジェクト"でおkですかね?
629デフォルトの名無しさん:2006/04/19(水) 08:58:50
>>627
それもなかなか欲しいのがなかったり・・・
RSSとか・・・使いたい帳票OCXに対応していなかったり。
630デフォルトの名無しさん:2006/04/19(水) 09:03:17
転送電話の切り換えに、telephonyAPIを使って、モデムで電話をかけたい
のですが、資料があまりありません。MSDNに資料があるでしょうか?
631デフォルトの名無しさん:2006/04/19(水) 09:17:18
モデムのマニュアル見ればいいじゃん。
632デフォルトの名無しさん:2006/04/19(水) 09:40:24
モデムなんてシリアル通信ができればなんでも制御できるんじゃね?
633デフォルトの名無しさん:2006/04/19(水) 09:51:40
VB6+Accsess2000+Crystal Report10で帳票出力アプリを作っています。
印刷関数printReportを下記(*)のように書きました。
この関数は下記(**)のように呼び出しています。

このコードを動かしたところ、ループの始めの印刷はうまくいくのですが、
それ以降値の入っていないレポートが出力されてしまいます。
レポートを直接開いてプレビューを見ると、空のレポートにも値が存在していることが確認できます。

申し訳ありませんがご意見などいただけないでしょうか。
ちなみにクリスタルレポートのファイルとDBはADOでつないでいます。
634633:2006/04/19(水) 09:52:14
'印刷機能...(*)
Public Sub printReport(slipID As String)
Dim filePath As String
filePath = "D:\hogehogeho\"

'クリスタルレポート設定
Dim cr10App As CRAXDRT.Application
Dim cr10Report As CRAXDRT.Report
Dim ExportOptions As CRAXDRT.ExportOptions

Set cr10App = New CRAXDRT.Application
Set cr10App = CreateObject("Crystalruntime.Application.10")

Set cr10Report = cr10App.OpenReport(filePath & "rptSlip3.rpt")
Set ExportOptions = cr10Report.ExportOptions

'出力先の指定
ExportOptions.DestinationType = crEDTDiskFile

'出力ファイル名の指定
ExportOptions.DiskFileName = filePath & slipID & ".pdf"

'出力形式の指定
ExportOptions.FormatType = crEFTPortableDocFormat

cr10Report.PrintOut False
cr10Report.Export False

Set cr10App = Nothing
Set cr10Report = Nothing
Set ExportOptions = Nothing
End Sub
635633:2006/04/19(水) 09:53:10
'呼び出し方...(**)
For i = 0 To XX
slipID = XXXX
Call slipPrinter.createOrderCombination(slipID)'データの準備
Call slipPrinter.printSlip(slipID)'印刷
Next
636デフォルトの名無しさん:2006/04/19(水) 16:03:22
>>623
エクセルにアクセスのバーコード機能(オブジェクト?)使って印刷したことある。
エクセルはライセンス必要だけど、アクセスはフリーの機能だけで使えた。
637デフォルトの名無しさん:2006/04/19(水) 22:19:44
VB6 SP5

ユニコード文字の入ったファイル名を扱うAPIなどはあるのでしょうか。

たとえばハート(Unicode:0x2665)は

dir関数だと「?」に変換されてしまいます。

ご教授願います。
638デフォルトの名無しさん:2006/04/19(水) 22:36:11
>>637
っStrConv
639デフォルトの名無しさん:2006/04/19(水) 22:46:34
>>638
うーん。strconvだとDir関数でファイル名を取得した後になりませんか?
dir関数で既にshift-jisに変換されているみたいなのですが
640デフォルトの名無しさん:2006/04/19(水) 23:20:46
>639
ttp://www31.ocn.ne.jp/~heropa/vb15.htm
このページを見ながら頑張ってくだされ。
641デフォルトの名無しさん:2006/04/19(水) 23:31:10
まともにUNICODE使いたかったらVB.NET使ってくれよ
642デフォルトの名無しさん:2006/04/19(水) 23:43:16
>>640
「Windows APIのユニコードバージョンを使う方法」でうまくいきました。ありがとうございました。

>>641
あのね。「6.0以前」スレに質問してるんですけど。
643デフォルトの名無しさん:2006/04/19(水) 23:50:19
>>640
をぅ、へろぱ氏のサイトだ。w
644デフォルトの名無しさん:2006/04/20(木) 00:09:26
熱くなると負け、これ常識。

>>642
6.0以前スレに質問してるのはわかっているが、そんなことするんだったら6.0なんて
使わずにVB.NET使ってくれよ、って言いたかったんじゃないか?
回りくどいけど。

もう解決してるみたいだけど、別にVB.NETじゃなきゃできないわけでもないしなぁ。
645デフォルトの名無しさん:2006/04/20(木) 00:38:36
VBが25000プロジェクト程(VBP)あるのですが
そのプロジェクトが持っている画面とかコントロールの種類を
各々を集計するために全てあわせて何種類のコントロールがあるか
算出したいので簡易的にそんなコントロール種類列挙方法があれば教えてください。
646デフォルトの名無しさん:2006/04/20(木) 01:01:43
VBPを一個ずつ読み込んで集計すればよいだけでは
647デフォルトの名無しさん:2006/04/20(木) 06:31:22
>>645
grepで適当に抽出して解析スクリプト書いて集計
648デフォルトの名無しさん:2006/04/20(木) 08:15:57
>>645
Type *.Vbp | Sort | Uniq | Find "Object=" > Ocx.Txt
649デフォルトの名無しさん:2006/04/20(木) 11:35:37
WinXpPro vb6.0 sp6

TreeViewでの親NodeのKey指定に関してなんですが

Dim MainNode As Node
Dim OyaNode As Integer '親Nodeの番号

OyaNode = OyaNode + 1

With Me.TreeView
' ノードのソートを認めない
.Sorted = False
' ノードのラベルは編集できない
.LabelEdit = False
' Viewのラインとルート線の種類を定義
.LineStyle = tvwRootLines
' ルートノードを作る
Set MainNode = .Nodes.Add(, , OyaNode, "親Node1")
End With

' 2代目と3代目の子ノードを作る
With TreeView
' 息子ノードをフォルダアイコンで表す
.Nodes.Add OyaNode, tvwChild, , "子Node1"
End With

といった感じでKey指定を変数で行いたいのですが、この状態で実行すると「無効なキーです」
とエラーが出てしまいます。
ヘルプで調べたところ「Key名は1つのノードにつき一意でなければならない」とあったのですが
これは変数ではなく定数でないといけないということなのでしょうか?
650デフォルトの名無しさん:2006/04/20(木) 13:16:00
>>649
定数っつーか、一意のキー。
651デフォルトの名無しさん:2006/04/22(土) 10:27:57
>>648
どうしてUniqしてるのかわからないです
Uniqいらなくないですか?
652デフォルトの名無しさん:2006/04/22(土) 10:39:03
>>651
聞く前に、ありとなしでやって較べてみたの?
653デフォルトの名無しさん:2006/04/22(土) 10:40:43
VB6でWebBrowserコントロール使って
タブブラウザぽいの作りたいんですが
タブでそれぞれページを表示するとこ
まではできたのですが、
(動的にWebBwroserコントロールを追加
していくことで)

タブごとにActiveXやjavascriptの設定を
いじるやり方がわかりません

レジストリの
HKEY_CURRENT_USER\SoftWare\Microsoft\
Windows\CurrentVersion\Internet Settings\
Zones\3

にIEのインターネットゾーンのセキュリティ設定
が書き込まれているみたいなので
これをいじろうと思ったのですが、どうやればよい
のかわかりません

sleipnirとかはどうやっているんだろう?

654デフォルトの名無しさん:2006/04/22(土) 10:48:37
>>653
レジストリを弄るのならAPIで。
655648:2006/04/22(土) 10:50:35
>>651
すまそ
私は最初の質問者じゃないんです

win2000pro,vb6.0sp6で
ためしにフォームにButtonとLabelを貼り付けて
プロジェクトを保存して、
できたvbpファイルをテキストエディタで開いて
みたんだけど
Object=なんていう行は一個もなかった
ThreadPerObjectならあったんだけどこれは違うよね
656653:2006/04/22(土) 10:55:59
>>654
ごめん質問の仕方が馬鹿だった

レジストリのいじりかたはわかってるんです
RegSetValueEx
とか使えばいいんだよね?

そうじゃなくて
例えばタブでIEが3つ表示されているときに
一つめはデフォルトセキュリティ設定で
二つめはActiveXだけ禁止で
三つめはjavascriptだけ禁止で
っていうふうにやりたいんだけど
これを実現する方法がわからないんです
657デフォルトの名無しさん:2006/04/22(土) 11:41:03
>>655
そりゃ標準以外のコントロール貼らないとある訳ないでしょ。
658653:2006/04/22(土) 11:45:05
>>657
それじゃぁ
>>645
の質問の答えを満たしてないじゃん
659デフォルトの名無しさん:2006/04/22(土) 11:56:24
>>658
VBPに残らないのはFRMを見るしかないね。
660デフォルトの名無しさん:2006/04/22(土) 12:09:11
>>659
Begin VB.Label
Begin VB.Shape
Begin VB.Line
Begin VB.OLE
Begin VB.Image
Begin VB.OLE
Begin VB.PictureBox
Begin VB.TextBox
Begin VB.Frame
Begin VB.CommandButton
Begin VB.CheckBox
Begin VB.OptionButton
Begin VB.ComboBox
Begin VB.ListBox
Begin VB.HScrollBar
Begin VB.VScrollBar
Begin VB.Timer
Begin VB.DriveListBox
Begin VB.DirListBox
Begin VB.FileListBox
Begin VB.Data
661デフォルトの名無しさん:2006/04/22(土) 13:32:36
>>653
要するに
>>645
の回答としては、簡単な方法は無い、と言うことかなあ。

>各々を集計するために全てあわせて何種類のコントロールがあるか
>算出したいので簡易的にそんなコントロール種類列挙方法があれば教えてください。
余計なお世話なんだけど、これって何に使うの?
Begin VB.Form Form1

Begin VB.Form Form2

たとえばこれは、Formのコントロールがあると数えるの、
それともFormを継承したコントロールが2つ有ると数えるの?
つまり、親のコントロールの種類を数えたいのか、派生したコントロールの
数まで数えたいのか、はたまた両方とも数えたいのか。
何に使うかによって、数え方が異なって来ると思うのだけど。
662デフォルトの名無しさん:2006/04/22(土) 22:02:06
>>653
>レジストリのいじりかたはわかってるんです
だったらやれよw

WebBrowser.ApplicationをIOleControlにキャストして
OnAmbientPropertyにDLCTL_NO_SCRIPTSを指定する

DLCTL_NO_SCRIPTS'スクリプトの実行拒否
DLCTL_NO_JAVA'Javaの実行拒否
DLCTL_NO_RUNACTIVEXCTLS 'AxtiveXの実行拒否
DLCTL_NO_DLACTIVEXCTLS 'AxtiveXのダウンロード拒否拒否

とかある

でもVBにはIOleControlインタフェースが定義されていないからVSでタイプライブラリで自作ね

ここ参考 http://msdn.microsoft.com/workshop/browser/hosting/wbcustomization.asp
663デフォルトの名無しさん:2006/04/23(日) 21:24:47
VB6.0+Access2000でツールを作りました。ADOで接続しています。
このツールをWinXPの制限ユーザモードで実行するとSQL発行の際にエラーが出てしまいます。
(手元に開発環境が無いので、エラーの内容がわかりません。)

ざっと検索してみたところWinXP+VB6.0において、
>なんらかのシステムファイルを参照するようなプログラムが「制限ユーザー」(Users)のとき、ロードできない。
というようなことがあるらしいのですが…。
http://72.14.203.104/search?q=cache:CREVGm9GOs4J:members.at.infoseek.co.jp/mythe_lune/contents_column/column030201.htm+xp+%E5%88%B6%E9%99%90%E3%83%A6%E3%83%BC%E3%82%B6+vb6&hl=ja&gl=jp&ct=clnk&cd=2&lr=lang_ja

今回の状況もそれに当てはまる可能性はあるのでしょうか。
ちなみに、同一PCのAdministrator権限で実行すると正常に動きます。
664デフォルトの名無しさん:2006/04/23(日) 23:08:35
>>663
そりゃ「制限」ユーザなんだから色々あるだろ。
そもそも、XPでVB6は駄目だけど。
665デフォルトの名無しさん:2006/04/23(日) 23:37:11
動作確認されて無いだけで、
駄目ではないぞ。
666デフォルトの名無しさん:2006/04/23(日) 23:57:53
>>665
いや2000では何の問題もないのにXPでは動かない、って例が沢山。
って、一つあるだけでもう駄目なんだけどね。
667デフォルトの名無しさん:2006/04/24(月) 00:08:11
>>666
その例もださずに原因も推測せずに
なまいってんじゃねーよ
668デフォルトの名無しさん:2006/04/24(月) 00:09:42
>>666
VB以外でも同じことはあるけど?
669デフォルトの名無しさん:2006/04/24(月) 00:38:28
>>667
原因→VB6が世に出た時に、XPは存在しなかったから。

>>668
XPに対応してないんだな。
670デフォルトの名無しさん:2006/04/24(月) 02:35:02
>>669
MSはVB6自体はXPに対応していないと言ってるけど、VB6で作ったアプリはXPに対応しないとは言っていない
読む限りだと、アプリやコンポーネントの開発元が個別に動作確認してOKって言ったらOKだよって感じ
671デフォルトの名無しさん:2006/04/24(月) 09:19:15
>>670
趣味でやるのは全然構わないんだけど、
仕事でXP+VB6のシステムを提案するなんて事は、
少なくとも私には絶対に出来ない。
運用環境と同じ環境でテストしなければならないけど、
XPにVB6の開発環境なんて入れたら色々壊れるし。
例え「アプリやコンポーネントの開発元が個別に動作確認」しても、
VB6そのものがXP上で何一つテストされてないんだし。
まぁ、一通り動作確認して、その後不具合が出たら都度対応、
になるんでしょうな。
672デフォルトの名無しさん:2006/04/24(月) 12:42:29
思考力の欠如した奴ばっかりだね。
XP環境でVB6のアプリの動作は問題ないですって。
Win2KやWin9xで問題がない程度には。
673デフォルトの名無しさん:2006/04/24(月) 12:45:12
30キロ制限の道を80キロで通るくらい問題無い。
674デフォルトの名無しさん:2006/04/24(月) 13:01:03
>>672
問題ないってのが、業務で客に勧めるレベルじゃないからね。
自己責任だったら別に使うけど、客に入れるシステムじゃ責任もてないから使えないって言う。
MSが保証していないものを保証する>>672は度胸あるよ。
675デフォルトの名無しさん:2006/04/24(月) 13:15:20
>>671
客に勧める側なんだからコストに見合うと判断すれば勧めても良いだろ
別に調査の名目で金を取って問題点を致命的と報告して新規開発の案件に変えると言う手もある。
その辺は客との関係次第だよ
676デフォルトの名無しさん:2006/04/24(月) 13:26:29
>>675
金の問題じゃないんだけど。
何度も書くが、XPはVB6よりも後に出た。
つまり、XP上でVB6のシステムを構築したとして、
何らかの重大な不具合が出た場合、原因を調べて、
アプリのバグではなく、VB6かXPが悪かったとする。
そして、アプリ側では回避方法がない場合。
VB6のSPを出せとか、それに対するXPのパッチを
リリースしろとか、MSに言えるのか?
もしそれが、全国規模で展開した何万台ものPC上で
発生したらどうするつもりなの?
一応動作確認したとか2000等と同じ程度に動くとか、
そんなレベルでプロとして仕事してる?
客からは金取って納めてしまったんだから、MSが、
XP上でVB6は駄目だと言ってます、なんて言い訳が
通用する筈がない。
677デフォルトの名無しさん:2006/04/24(月) 13:28:36
>>676
お前さんの主張を要約すると結局金の問題だろ
678デフォルトの名無しさん:2006/04/24(月) 13:29:57
XPがOKな言語がたくさんあるのに固執してまでVB6なんぞ使わないな
新規なら。
679デフォルトの名無しさん:2006/04/24(月) 13:49:29
>>678
まぁ確かにそれもそうだね。
680デフォルトの名無しさん:2006/04/24(月) 14:14:22
>>677
横レスだが、金の問題じゃない。
MSがサポート終了してるし、そもそも対応してないんだから、それを客に進める奴は根本的に何か間違ってる。
681デフォルトの名無しさん:2006/04/24(月) 14:25:02
>>680
対応してないとか嘘つくなよ
MSは元々ソフトウェアハウスが作ったアプリは個別に動作確認してくださいって言ってるだけだよ
それを言い出したら、XP上の.NET製のアプリでもMSは動作保証してくれて無いぞ

ただ、サポート切れてるから不慮の事態に対処できないとの免責事項無しでの契約は厳しいな
682デフォルトの名無しさん:2006/04/24(月) 16:12:32
>>681
VB6の「開発環境」は、XPに対応してない。
VB6で作成したアプリに関しては、その通り。
683デフォルトの名無しさん:2006/04/24(月) 16:44:02
サポート外なのって開発環境そのものの動作だろ
つーか、98とかのOSの非サポートと一緒にスンナ馬鹿
684デフォルトの名無しさん:2006/04/24(月) 17:09:57
VistaでもVB6.0ランタイムの動作は保証したいと言ってる
685デフォルトの名無しさん:2006/04/24(月) 18:07:14
XP+VB.NETで開発してる人って居るの?
686デフォルトの名無しさん:2006/04/24(月) 18:13:05
そりゃあいるだろう
俺のまわりではC#使うほう人が多いようだが
687デフォルトの名無しさん:2006/04/24(月) 18:31:55
質問です
環境:WindowsXP SP2 & VB6
作ってるモノ:Winsockを使ったファイル送受信(バイナリデータ)
概要:
1 アプリ起動して最初の2,3回は送受信ともにうまく動く
2 2,3度ファイルを送受信しているうちに送受信するデータの1バイト目が抜ける現象が続けておきる(結果、総取得ファイルサイズは1バイト少なくなる)
3 自分が組んだプログラムが悪いのかと思いデバックやりまくりだが見つからず
4 Socket_DataArrivalイベントで最初の数バイトをファイルに落とす前に見てみたら、すでにその時点で1バイト落ちていた





688デフォルトの名無しさん:2006/04/24(月) 18:36:52
Winsockバージョンは6.0.81.69
SP2のファイアウォールが入れてあるだけで他のセキュリティソフトは入ってません
どうかよろしこm(_ _)m
689デフォルトの名無しさん:2006/04/24(月) 19:14:37
>>687
やり方が間違ってるに1票・・・てか、手銃も解らないのに答えられるのか疑問
690デフォルトの名無しさん:2006/04/24(月) 19:15:43
>>689
手銃って何だよ(w
691デフォルトの名無しさん:2006/04/24(月) 19:29:32

・サーバにリクエストがやってくる
・データ受信用ソケットにaccept
・Data_Arrivalイベでデータ取得

と、フツーなやり方です

Private Sub DownloadSocket_DataArrival(ByVal bytesTotal As Long)
Dim Data() As Byte
DownloadSocket.GetData Data,vbByte
' ここのトコでData()配列の先頭見ると1バイト抜けてる

Winsockからデータを取り出す時点ですでに抜けてるから
ソケット自体かシステム的なものが原因と思うけど、そういうコトってある??

692デフォルトの名無しさん:2006/04/24(月) 20:01:16
>>691
XP上でVB6は動作保証されてないから、
そういう事もあるでしょうね。
まずWin2000で動かしてみては。
693デフォルトの名無しさん:2006/04/24(月) 20:18:43
>>692
OSのせいとは思えないがね。
適当なこというなよ。
694デフォルトの名無しさん:2006/04/24(月) 21:17:58
695デフォルトの名無しさん:2006/04/24(月) 21:35:57
>>693
自分のバグだと分かってるなら
「ソケット自体かシステム的なものが原因と思う」
って何なの?
696687:2006/04/24(月) 21:48:51
>>694
サンクス
でも、なんか無理っぽい
GetDataのオプションの組み合わせいろいろ試してみたけど、やっぱ先頭1バイトが抜けてくる。。。
.NET関連調べてきますorz
697デフォルトの名無しさん:2006/04/24(月) 22:40:10
>>696
2000とか98(SE)で動かしてみた?
698687:2006/04/24(月) 22:49:04
XP環境しかないからわからないす
699デフォルトの名無しさん:2006/04/24(月) 23:15:00
>>698
っVMWare|VirtualPC
700デフォルトの名無しさん:2006/04/25(火) 07:56:07
朝っぱらからすみません。教えてください
InternetControlsっていうコンポーネントが標準でありますが
このコンポーネントを利用して現在、指定したURLのブラウザに
ある文書を取得するようなプログラムを作ってるのですが
同コンポーネントを利用して、配置されてるボタンやテキストボックスなどの
コントロールを取得したりボタンを押させるような処理を作る事は
できますでしょうか?代替の方法でももしありましたらアドバイスおねがいします
WIN2000、VB5でつくっています。
701デフォルトの名無しさん:2006/04/25(火) 07:59:47
>>696
自分のプログラムのバグの可能性99.9%.
702デフォルトの名無しさん:2006/04/25(火) 10:01:21
>>701
100%じゃないの。
703デフォルトの名無しさん:2006/04/25(火) 11:09:54
文字コード0x2020を出力したいのですが

open "c:\test.txt" for output as #fp len = 32000
print #fp,chr(&h2020)
close #fp

とすると、test.txtには20の文字コード(半角スペース)が
出力されます。
chrが&h2020を20に変換してるようなんですが&h2020が
文字コードとして存在しないため20に変わっているんでしょうか。

&h2020を&h82a0("あ")に変更すると正しく"あ"が出力されます。

文字コード&h2020を直接ファイルに出力する方法はありますでしょうか?
704デフォルトの名無しさん:2006/04/25(火) 11:19:38
>>702
ヒント:四捨五入。
705AMI:2006/04/25(火) 11:25:45
こんにちは。
早速ですが、質問させていただきます。
現在、Vb6.0+ACCESS2000を使用してシステム構築をしております。
そこで、ACCESSファイルにVBから接続をおこなっております

パスワードを設定してある、ACCESSファイルに、接続はできたのですが、
VB側から、ACCESSファイルにパスワードを設定、解除等できるのでしょうか?
ACCESSは、ツールから設定・解除ができるんですが、
VB側からその操作はできないのでしょうか?
よろしくお願いします。


706デフォルトの名無しさん:2006/04/25(火) 11:56:07
>>703
「chrが&h2020を20に変換してるようなんですが」って分かってるなら、
わざわざ変換しなけりゃいいじゃん。
707デフォルトの名無しさん:2006/04/25(火) 11:57:12
>>705
「ACCESSは、ツールから設定・解除ができる」のなら、
それをVBAで記録してみるとか。
708デフォルトの名無しさん:2006/04/26(水) 01:01:48
ACCESSファイルってのがMDBファイルの事を言ってるのであれば
その辺の事はDeveloperEditionに付属のドキュメントに詳しく書いて有るからきちんと買って読みなさい
709AMI:2006/04/26(水) 09:16:17
>>707
>>708
ありがとうございました。
VBAを使う方法は、前回使用しておりましたので、
今回はVB側からそれの設定をしたいのです。
VB側からの操作はできるのでしょうか?
710デフォルトの名無しさん:2006/04/26(水) 10:04:05
・32767行を超えて使えるリストボックス
・文字数無制限のテキストボックス
の作り方、または製品があれば教えてください。
711デフォルトの名無しさん:2006/04/26(水) 10:11:19
>>710
Microsoft RichTextBox Controlじゃダメ?
712710:2006/04/26(水) 10:16:25
>>711
動作が遅くてダメでした。
713デフォルトの名無しさん:2006/04/26(水) 10:29:36
>>712
そんなことは先に書け
714デフォルトの名無しさん:2006/04/26(水) 10:34:26
>>709
そのVBAをVBで実行すりゃいいだけだろ。
715デフォルトの名無しさん:2006/04/26(水) 10:54:56
ソフトの起動時に
「販売購買(作ったソフト名)が原因でNSVBVM60.DLLにエラーが発生しま
 した。販売購買は終了します。
 問題が解決しない場合は、コンピュータを再起動してください。」
とエラーメッセージが出るようになってしまいました。

NSVBVM60.DLLについて調べてみたのですが、出てくるエラーメッセ
ージは見つからないというのばかりのようです。
今回のような現象の場合はどう対処したらいいでしょうか?
716デフォルトの名無しさん:2006/04/26(水) 11:24:24
>>712
動作の遅さはハードの増強で解決するのが基本。
717デフォルトの名無しさん:2006/04/26(水) 12:41:37
>>715
そのソフトを作った人に聞いた方がいいよ。
あと、MSVBVM60.DLLだろ?
718デフォルトの名無しさん:2006/04/26(水) 14:23:49
>>717
MSVBVM60.DLLでした、失礼しました。
作った人も困ってしまったので、いっしょに調べていました。
719デフォルトの名無しさん:2006/04/26(水) 14:41:22
>>715
「エラーメッセージが出るようになってしまいました」って事は、
前は出なかったんでしょ。
「何をやったら」そうなったかを思い出せば解決。
720デフォルトの名無しさん:2006/04/26(水) 14:55:45
>>719
そうですね、早速お客さんの事務所まで行ってみます。
戻りましたらまた報告するつもりです。
721720:2006/04/26(水) 17:07:44
行って直接話を聞いてきました。
お客さんの事務所ではサーバーを置いて3台のクライアントでソフトを使っても
らっています。クライアントは2台がMeで1台は2000です。
使っているDBはOracleです。

>>715のエラーは特別別のソフトはいれていないのに最近になって毎日のように
出るようです。ただエラーが出るのはMeのマシンだけのような事を言っていたの
が気になります。2000にVB環境が入っているので、そこでexeを作っているので
すが、そういう部分も関係があるのでしょうか?
722720:2006/04/26(水) 17:10:39
それプラスでソフトを起動しようとすると「接続できません。ORA-12571:TNS:
パケット書込み機能に障害が発生しました」ともエラーが出ます。
こちらのエラーは再現することができました。連続でExeを起動・終了を繰り返
していると10回に1度くらいの割合で起こってしまいます。
この辺はOracleスレで質問した方がいいでしょうか?
723デフォルトの名無しさん:2006/04/26(水) 18:36:07
>>722
ORACLEスレに聞いても、サポートに聞けで終わりの類のエラーだよ。
なもんで、ORACLEに聞け。
724デフォルトの名無しさん:2006/04/26(水) 19:50:25
>>721
Meで動かすアプリを2000で開発したら駄目だって。
Meで動かすアプリは、Me上に開発環境を入れて、
其処で、開発&デバッグしてExe作成しないと。
でも、既に2000でセットアップ作成してMeにインストール
しちゃったんだよね。
それ、Meのシステムが完全に壊れました。再インストール。
725デフォルトの名無しさん:2006/04/26(水) 22:02:16
VB6でWMAファイルの再生時間をミリ秒単位で取得したいのですが、方法を教えていただけないでしょうか?
よろしくお願いいたします。
726デフォルトの名無しさん:2006/04/26(水) 22:46:25
>>725
timeGetTime関数
727726:2006/04/26(水) 22:49:42
>>725
ごめん。直接は取得できないみたいだから
スタートのところに
gettickcountとかいれておけばいいんじゃないでしょうか。
後はループで取得するようにすれば

Dim nt as long,ft as long

nt=gettickcount()

do
debug.print cstr(gettickcount()-nt)'CSTRいらないっけか
doevents
Loop
728デフォルトの名無しさん:2006/04/26(水) 22:55:38
ファイルの再生時間、と書いてあるが。。。
729725:2006/04/26(水) 23:05:36
言葉足らずで、申し訳ないです。
すでに存在するWMA形式のファイルの時間です。
再生すると 00:01 / mm:ss 見たいに出ますよね?
そのmm:ssが知りたいのです。
730デフォルトの名無しさん:2006/04/26(水) 23:28:58
>>729
MediaDet.StreamLength で取得できるらしいけど、単位は秒。
731デフォルトの名無しさん:2006/04/26(水) 23:34:20
>>729
Dim grp As New FilgraphManager
grp.RenderFile FILENAME
Dim mp As IMediaPosition
Set mp = grp
Debug.Print mp.Duration
こんなんでどう?
732デフォルトの名無しさん:2006/04/26(水) 23:34:45
>>725
MMControl の Length とかじゃ駄目なの?
733725:2006/04/26(水) 23:48:40
みなさんありがとう

>>731さん
明日試そうと思うのですが、ミリ秒で取れますか?

>>732さん
MMControlってWMA形式サポートしてますか?
734デフォルトの名無しさん:2006/04/27(木) 00:36:24
試してから書けよボケ
735デフォルトの名無しさん:2006/04/27(木) 09:03:40
>>733
当然、自分の環境で確認してから書き込んだんだが?
736デフォルトの名無しさん:2006/04/27(木) 12:42:53
>>724
えっ
Me用と2000/XP用でマージモジュール分けて使ってないの?
737デフォルトの名無しさん:2006/04/27(木) 18:01:07
>>736
それをやると具体的にどんなファイルが分かれるんだ?
738デフォルトの名無しさん:2006/04/27(木) 18:33:46
Tabindex を使ったカーソル制御で困っています。
Tabindexで各コントロールに順位を付け、Enterkeyやマウスで、あるコントロール以降に移動するときは(LostFocus内で)
入力チェックをしてひっかかれば自コントロールに戻り、以前のコントロールに移動するときはExitSubでチェックせずに
抜けるようにしています。
各コントロールにGotFocusしたときに、共通の変数でTabindex番号を取得して、LostFocus内で比較しているのですが…
通常、移動先コントロールのGotFocusイベントの後に移動元コントロールのLostFocusが起きていて、実際に同じForm内の
他のコントロールではうまく動作しています。
しかし、ある部分では全く同じ記述をしているにもかかわらず、LostFocusイベントが先に起こり、うまく動作しません。
(しかも、うまく動作しているのと同じプロパティと記述の方法で、コントロールの名前しか違いはありません)。
何か気をつける点はあるでしょうか。
…ネットで少し調べたところ、「GotFocusが最初に起こる」というのと「どちらが先に起こるのかは不安定」という記述があって
困ってしまいます。
739738:2006/04/27(木) 19:11:26
自己解決しました。
「DoEvents」 とプロシージャ内におまじないを書いたらちゃんと動きました。
一体何なんでしょうね。
740725:2006/04/27(木) 21:24:16
731さんの案で解決しました。
MSDNには秒単位と書いてあったので、少しどきどきでしたが、
ちゃんとミリ秒で取れました。

皆さんどうもありがとう。

741デフォルトの名無しさん:2006/04/27(木) 21:33:38
>738
一つだけ言うなら、明確に順序が書かれているもの以外、イベントの
発生順序が同じになると言う保証はない。
だからイベントの発生順序に依存するロジックは危険。
742デフォルトの名無しさん:2006/04/27(木) 21:46:24
LostFocusじゃなくてValidationつかえやl
743デフォルトの名無しさん:2006/04/27(木) 22:14:29
>>741 >>742
ほほぅ…調べてみまつ!
744デフォルトの名無しさん:2006/04/27(木) 22:20:17
>>739
Lost / Got Focus イベントにコードを書く奴が悪い。
745デフォルトの名無しさん:2006/04/28(金) 02:32:46
すれ立てるまでもない質問とマルチになります。レスがつかなかった。
VBで以下のようなのはどうやって書くのですか?できないような気がする。Aの間にある + でひっかかる
A( i , j ){・・・ ;return A( i+1 , j )+A( i , j+1 );}
746デフォルトの名無しさん:2006/04/28(金) 02:41:38
>>745
Function A(i, j)
:
:
:
A = A(i + 1, j) + A(i, j+1)
End Function
747745:2006/04/28(金) 02:42:38
ありがと。subでは無理ですか
748デフォルトの名無しさん:2006/04/28(金) 03:06:49
質問させて下さい

NumericUpDownのボタンで数値を入力する時に
現在の数値によって、上げ、下げ幅を変えるには
どうコードを書いたらいいでしょうか?

1〜100までは1ずつ増加、100からは5ずつ増加、というふうに
したいのです
749デフォルトの名無しさん:2006/04/28(金) 03:55:48
>>748
changeのイベントで100以下だったら1づつ、それ以外なら5って
加算減算(名前忘れた)プロパティを書き換える
750デフォルトの名無しさん:2006/04/28(金) 08:54:42
>>749
ありがとうございます、さっそくやってみます

ね、眠い・・・
751デフォルトの名無しさん:2006/04/28(金) 10:47:15
>>747
値を返す関数  →Function
値を返さない関数→Sub
どうしてもSubしか厭なら、ByRef 引数にでもしろ。
752デフォルトの名無しさん:2006/04/28(金) 12:35:33
>>751
そんな偉そうに気張って人様に垂れるようなレベルの話か
本当頭おかしいんじゃないかと思うよこういう奴w
753デフォルトの名無しさん:2006/04/28(金) 13:15:26
>>747
Sub にしなければならない理由は?
754デフォルトの名無しさん:2006/04/28(金) 13:54:24
>A( i , j ){・・・ ;return A( i+1 , j )+A( i , j+1 );}
そもそも、Subじゃ無理だし・・・
755745:2006/04/28(金) 23:56:29
>>753
おれができないことをしてみたいから。>>751のようなことなんだろーけど
逆なんじゃねーかと思った
756デフォルトの名無しさん:2006/04/29(土) 00:38:05
>>755
俺が出来ない?
逆??
日本語でおk。
757デフォルトの名無しさん:2006/04/29(土) 08:07:07
vb6を使ってPCのIPアドレスやネットワーク設定を
変更したりしたいのですが
どこらへんをいじればいいでしょうか・・・・?

検索してみたんですがみつからん・・・
758デフォルトの名無しさん:2006/04/29(土) 10:10:58
>>757
本当に検索したの?
情報が有り過ぎて困る位なんだが。
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/enablestatic_method_in_class_win32_networkadapterconfiguration.asp
とかWMI使うとかNetShコマンドとか、幾らでも方法はある。
759デフォルトの名無しさん:2006/04/29(土) 10:56:08
質問させてくださいm(_ _)m
テキストファイルから該当する行の内容をとりだすコードを
書いてみたのですがレスポンスが異常に悪いのです。

Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal _
e As System.EventArgs) Handles TextBox1.TextChanged
Dim objFS, objTS As Object
Dim LineOfText As String
Dim i As Integer
objFS = CreateObject("Scripting.FileSystemObject")
objTS = objFS.OpenTextFile("test.txt", 1, )

If TextBox1.Text.Length = 4 Then
Do Until objTS.AtEndOfStream
LineOfText = objTS.ReadLine
If InStr(LineOfText, TextBox1.Text) <> 0 Then
Label2.Text = LineOfText
End If
Loop
objTS.close()
End If
End Sub

どなたかお知恵を貸してください
760デフォルトの名無しさん:2006/04/29(土) 11:12:21
解決になってないかもしれないけど、自分だったら
> Label2.Text = LineOfText
のあとに Exit Do って入れるなあ。
見つかったらループする必要ないし。
761デフォルトの名無しさん:2006/04/29(土) 11:31:05
>>759
それ、.NETじゃないの?
その処理ならほとんどがFileSystemObjectに依存してるので
VB6以前でも.NETでも大差ないが、一応ここは6以前の専用スレね。
っこで質問したいなら、VB6の文法で書き直してから質問してちょ。

まあ、直すべきところは明白なので、VB6以前の文法で書いてくれりゃ教えるよ。
.NETもわかるけど、スレ違いを助長するようなことはしたくないし。
まあ、書き直すより.NETスレ行った方がいいと思うけどね。
762759:2006/04/29(土) 18:15:48
すいません、VB2005なのでこっちでいいのかと思っていました。

まだ、プログラミング初めて2日なもので.netとの違いすら
理解しておりません、

スレ汚し失礼しましたm(_ _)m
763デフォルトの名無しさん:2006/04/30(日) 11:30:47
スレ汚しですみません。
Typeの内容を1命令でクリアする方法はありますか?
764デフォルトの名無しさん:2006/04/30(日) 11:35:51
ソース上の命令数にこだわって何になるというのか
765デフォルトの名無しさん:2006/04/30(日) 11:39:32
こだわらないことにしました。
大変失礼しました。
766デフォルトの名無しさん:2006/04/30(日) 13:27:34
VB5とVB6の開発環境を同じマシンで混在できるのでしょうか?
また、実行環境もランタイムの配布は混在できるのでしょうか?
767デフォルトの名無しさん:2006/04/30(日) 14:05:42
>>766
過去ログで既出

過去ログか●持ってないなら、にくちゃんねるでも行って読んでこい。
768デフォルトの名無しさん:2006/04/30(日) 14:14:21
>>763
っZeroMemory

>>766
開発環境の共存は不可能。
ランタイムの共存は可能。
769デフォルトの名無しさん:2006/04/30(日) 14:27:34
>>768
ZeroMemoryでどうやるの?
770デフォルトの名無しさん:2006/04/30(日) 14:58:30
>>769
ヒント:Win32API
771デフォルトの名無しさん:2006/04/30(日) 15:05:41
>>770
馬鹿?
772デフォルトの名無しさん:2006/04/30(日) 15:30:14
>>771
馬鹿?
773デフォルトの名無しさん:2006/04/30(日) 15:57:10
>>772
m9(^Д^)プギャー
774デフォルトの名無しさん:2006/04/30(日) 16:05:30
確かに莫迦だな。
775デフォルトの名無しさん:2006/05/01(月) 08:44:43
ばかばっかか
776デフォルトの名無しさん:2006/05/01(月) 18:17:01
ZeroMemoryだとDeclareとあわせて2命令だとか言っちゃうぞ。

777デフォルトの名無しさん:2006/05/01(月) 19:13:36
>>776
馬鹿?
778デフォルトの名無しさん:2006/05/01(月) 23:28:16
http://www.microsoft.com/japan/msdn/vbasic/support/vistasupport.aspx
Visual Basic チームは、Visual Basic 6.0 アプリケーションが WindowsR Vista? でも
"そのまま" 動作する互換性を提供することを表明します。」

Visual Basic チームは、Windows XP で実行できる Visual Basic 6.0 アプリケーションが
Windows Vista でも実行できるようにすることを目標としています。
また、Windows Vista で実行できる Visual Basic 6.0 の開発環境を提供するための取り組みも行っています。
このドキュメントで説明するように、Visual Basic 6.0 ランタイムは、Windows Vista のライフサイクルをとおして
サポートされます (メインストリーム サポートが 5 年、延長サポートが 5 年の合計 10 年になります)。
マイクロソフト プロダクト サポート ライフサイクルの詳細については、http://support.microsoft.com/gp/lifepolicy (英語) を参照してください。

マイクロソフトでは、ユーザーが Windows Vista で Visual Basic 6.0 アプリケーションを実行できるようにするため、
Windows Vista に Visual Basic 6.0 ランタイムの主要コンポーネントを同梱する予定です。
Visual Basic 6.0 ランタイムを使用するように記述されたアプリケーションが Windows XP と Windows Vista の両方で
同様に動作する互換性を確保するため、一連のアプリケーションを使用してテストを行いました。

Visual Basic 6.0 IDE は、延長サポートの一環として、2008 年 3 月まで Windows Vista でサポートされます。
Windows Vista チームと Visual Basic チームでは、Windows Vista で Visual Basic 6.0 IDE のテストを行い、
IDE が以前のオペレーティング システムと同様に機能するようにしています。

779デフォルトの名無しさん:2006/05/01(月) 23:55:48
質問です。
OS:winXPsp2
VB6.0P6
課題が分かりません。

問題1
文字列→数値の変換は標準関数を使用していたが、変換関数を自分で作成せよ。

問題2
100個要素を持つ配列整数変数を宣言し、その中に1,2,3、・・・100の値を入れる

助けてください!
780デフォルトの名無しさん:2006/05/01(月) 23:56:45
すいませんsageます
781デフォルトの名無しさん:2006/05/02(火) 00:14:31
>>779

回答1
 一度ageたら直後にsageで書き込みしても全く意味はありません。

回答2
 ここは課題には一切手を貸さない方針です。
 (偶に、やっと自分にもわかる質問が来たとばかりに、浮かれて答え出す教えたがり君もいるけど)

消えてください!
782デフォルトの名無しさん:2006/05/02(火) 00:33:04
VIPで聞けよ!
帰れ!
783デフォルトの名無しさん:2006/05/02(火) 00:43:41
やべっ!俺もageちゃった。
784デフォルトの名無しさん:2006/05/02(火) 00:48:41
>>781
確かに課題は手をつけないのには大いに賛成だが
消えては言いすぎじゃね?
785デフォルトの名無しさん:2006/05/02(火) 02:04:51
>>784
ヒント:>>779
786デフォルトの名無しさん:2006/05/02(火) 02:17:36
>>779
変な課題だな


以上
787デフォルトの名無しさん:2006/05/02(火) 03:20:48
>>779
問題1
public static int strToInt(String s)
  throws NumberFormatException {
 int r = 0;
 for (int i = s.length() - 1; i >= 0; i--) {
  char c = s.charAt(i);
  if (c >= '0' && c <= '9') {
   r += (c - '0') * Math.pow(10, (s.length() - 1 - i));
  } else if (c == '-') {
   r *= -1;
   if (i > 0)
    throw new NumberFormatException();
  } else if (c == '+') {
   if (i > 0)
    throw new NumberFormatException();
  } else {
   throw new NumberFormatException();
  }
 }
 return r;
}

問題2
int[] a = new int[100];
for (int i = 0; i < 100; i++)
 a[i] = i + 1;
788デフォルトの名無しさん:2006/05/02(火) 04:11:21
>787
先輩!
strToInt("-2147483648")としたら-2147483647って返ってきました。
789デフォルトの名無しさん:2006/05/02(火) 04:15:54
しかもなんで java w
790デフォルトの名無しさん:2006/05/02(火) 09:23:57
>>779
1.10進数を知ってるなら出来る。
2.VBとは関係ないじゃん。
791デフォルトの名無しさん:2006/05/02(火) 11:19:12
条件によって変数そのものを変えたいんですが、出来ますでしょうか?

例えば

a = a + 10とあった場合、

c = falseならaのままでいいんですが、
c = trueならaの部分をbに変えたいんです。

ただし、こういう状況が多いので二重には書きたくありません。

if c = false then
 a = a + 10
else
 b = b + 10
end if

のような書き方は効率が悪いので、もっと簡単な書き方がしたいのです。
どうかご教授お願いします。
792デフォルトの名無しさん:2006/05/02(火) 11:44:41
言語そのものを勘違いしてる奴が来たね。
さすが黄金週。
793デフォルトの名無しさん:2006/05/02(火) 12:29:12
>>791
つ配列
794デフォルトの名無しさん:2006/05/02(火) 12:36:03
>>793
ヒントありがとうございます。
配列を使ってどのようにやるのかは分からないのですが、
すでに変数には配列が使われていても大丈夫でしょうか?

a(2) = a(2) + 10という感じです。

出来れば簡単な例文を書いていただければありがたいのですが・・・
795デフォルトの名無しさん:2006/05/02(火) 12:40:48
イマイチ質問の意図が掴みかねるんで適当に回答するけど
VBはデフォで参照渡しだから、演算部分を関数化すれば何も考えずにできるんじゃないの?
796デフォルトの名無しさん:2006/05/02(火) 12:44:40
>>795
非常にいいヒントをありがとうございます。
「関数が変数そのものを切り替えて返すことが出来るとすれば解決するはず」
と思っておりました。

そのヒントを元にググってみます。
797デフォルトの名無しさん:2006/05/02(火) 12:49:32
>>791
If c = True Then a = b

a = a + 10

だけじゃ駄目なん?
798デフォルトの名無しさん:2006/05/02(火) 12:53:13
>>797
その場限りであれば、それでもokなんですが、
プログラムを通して、aの値とbの値は常にその変数に
格納されている必要があるのです。

aの値はプレイヤー1の生命力
bの値はプレイヤー2の生命力

といった感じです。
799デフォルトの名無しさん:2006/05/02(火) 13:03:00
嗚呼やはりダメです。
演算部分は関数内に記述することは出来ません。

演算はいろんなパターンがあって、メイン部分に書きたいのです。

関数内でTrueかFalseを判定し、
その結果によって変数を変化させることが出来ればいいのですが・・・

雰囲気としては

Sub s()
Dim a As Long
Dim b As Long
Dim c As Boolean
c = True
f = f + 10
End Sub

Function f
If (c = True) Then
f = a
Else
f = b
End If
End Function

こんな感じに考えてましたが、もちろんエラーになります・・・
800デフォルトの名無しさん:2006/05/02(火) 13:09:41
常識ある人はもうこの子を放っておこうね
801デフォルトの名無しさん:2006/05/02(火) 13:12:27
ヒント:【VBはデフォで参照渡し】

これはともかく、この手の質問って「小手先でどうこうする前に仕様とかもっと前の段階から
考え直さないといけないんじゃね?」とかいうのが多くないか?
802793:2006/05/02(火) 13:14:51
aをx(0)、bをx(1)に変えて
if c=True Then index = 0 else index = 1
x(index) = x(index) + 1
803デフォルトの名無しさん:2006/05/02(火) 13:15:51
>>801
まさにあなたの言うとおりです。

そしてそのヒントは確実に、
僕が今やろうとしていることを的確に捉えてます。

勉強してきます。
804デフォルトの名無しさん:2006/05/02(火) 13:16:47
配列のインデックスを関数で返せばいいじゃん。

Public Sub Main()
Dim a(1) As Long
Dim c As Boolean
Dim i As Integer

i = f(c)
a(i) = a(i) - 10

End Sub

Public Function f(c As Boolean)

If c Then
f = 0
Else
f = 1
End If

End Function
805デフォルトの名無しさん:2006/05/02(火) 13:17:20
>>802
神がかり的にすごい技ですね。
感動しました。

参考にさせていただきます。
806デフォルトの名無しさん:2006/05/02(火) 13:18:28
>>804
天才的ですね。
ありがとうございます。
807デフォルトの名無しさん:2006/05/02(火) 13:23:13
>>804
うほ!!!!!!!!!!!!!
神!!!!!!!!!!!!!!!!!!!!!!!!
808デフォルトの名無しさん:2006/05/02(火) 13:32:52
>>791
それの何処が「効率が悪い」んだか。
809デフォルトの名無しさん:2006/05/02(火) 13:33:22
VB6です。
ラベルを回転させたいのですがいい方法はありませんでしょうか?
通常→上下左右反転という流れにしたいのです。

ご教授宜しくお願い致します。
810デフォルトの名無しさん:2006/05/02(火) 13:38:47
>>808
そういうのが72通りありますのでソースを半分に縮めたかったのです。
あのような文を72通り書くのは効率悪いですよね。
811デフォルトの名無しさん:2006/05/02(火) 13:52:54
>>810
IIF使えば?
812デフォルトの名無しさん:2006/05/02(火) 13:55:46
IfよりIIfの方が効率は悪い。
813デフォルトの名無しさん:2006/05/02(火) 14:00:30
>>811
IIfは代入する変数は同じで、値が違うときに使います。
代入する値は同じで、変数が違うときには使えません。
814デフォルトの名無しさん:2006/05/02(火) 14:06:10
>>810
お前、プログラミングには向いてないよ。
815デフォルトの名無しさん:2006/05/02(火) 14:06:51
>>809
ラベルコントロール自体を回転、って事?
それは無理。
816デフォルトの名無しさん:2006/05/02(火) 14:14:15
>>814
おまえにだけは言われたくないw
817デフォルトの名無しさん:2006/05/02(火) 14:18:51
>>814
そうですか?
今のプログラマはソースをより簡潔に、
短く分かりやすく書こうという努力はしないものですか?
818デフォルトの名無しさん:2006/05/02(火) 14:33:07
>>817
if c = false then
 a = a + 10
else
 b = b + 10
end if
の何処が「分かり難い」んだ?
819デフォルトの名無しさん:2006/05/02(火) 14:45:56
>>818
それと同じような行が延々と長くソースを想像してみてください。
まあ、そのような単純なソースを書くのが趣味ならいいです。
プログラマなら、もっと向上心を持ってほしいものですが。
820デフォルトの名無しさん:2006/05/02(火) 14:46:26
延々と長く

延々と続く
821デフォルトの名無しさん:2006/05/02(火) 14:56:43

>>819

>>818はi++をi = i + 1と書かないと気が済まないタイプの超初心者だろ
そっとしといてやれ
っつーかスルー汁
822デフォルトの名無しさん:2006/05/02(火) 15:00:19
>>808
ソースの見た目の効率は悪いかもしれないけど、関数とかにするよりは
実際の効率(速度)は早い可能性もあるからなんとも言えない気が・・・
823デフォルトの名無しさん:2006/05/02(火) 15:02:06
>>822
でもあまりにも長いと可視性という面で見た目の効率も落ちる可能性もあるからなんとも言えない気が・・・
824デフォルトの名無しさん:2006/05/02(火) 15:06:32
>>823
まぁね、結局なにを求めるかで選択肢は色々だから・・・漏れはなら普通は可視性を選ぶ
825デフォルトの名無しさん:2006/05/02(火) 15:21:57
>>824
でも、ファミコンの時代なら?
826デフォルトの名無しさん:2006/05/02(火) 15:24:59
>>819
お前、プログラミングは趣味だけにしとけよ。

>>821
VB6にi++なんて書き方はない。
827デフォルトの名無しさん:2006/05/02(火) 15:27:53
>>825
だから・・・ケースバイケースだと
828デフォルトの名無しさん:2006/05/02(火) 15:39:53
と て も 良 い 香 り が す る ス レ で つ ね
829デフォルトの名無しさん:2006/05/02(火) 15:40:09
>>826のような文系のアフォプログラマがはびこる世の中になったのか・・・
まあ学生で勉強中の身だろうけど、糞コードをあまり公開しないでくれ。
切に願うよ。
830デフォルトの名無しさん:2006/05/02(火) 15:41:56

>>826

おまえがプログラミングは趣味だけにしとけよ。
おまえみたいな糞コード書く奴はマジ邪魔だし勘弁してくれマジで。
831デフォルトの名無しさん:2006/05/02(火) 15:44:29
>>826チャソ
GWだから優しく教えてあげるけど、
プログラムは動けばいいってものではないからね。

プロ目指すんだったら、そこのところを本当に肝に銘じておいてね。
立派なプログラマになってください。
832デフォルトの名無しさん:2006/05/02(火) 15:47:46
>>826にマジレスしてる奴も同程度の池沼じゃねーか?

>>826をよく嫁。

VB6
↑↑

++
↑↑

分かったら1年ぐらいロムってろ。
833デフォルトの名無しさん:2006/05/02(火) 15:47:49
>>826 の人気に嫉妬。
834デフォルトの名無しさん:2006/05/02(火) 15:48:32
>>832
VB6
↑↑

++
↑↑

ってどういう意味?
835826:2006/05/02(火) 15:50:11
知るかよ!マジでwwww
ゲバワロス!!1
836sage:2006/05/02(火) 15:50:47
わかった!外部ファイルを使えばおk!
837デフォルトの名無しさん:2006/05/02(火) 15:51:12
ん?誤爆か?乙。
838デフォルトの名無しさん:2006/05/02(火) 15:51:48
(´・д・`) かぽーん
839デフォルトの名無しさん:2006/05/02(火) 15:55:59
>>837
>>791の質問に対するレスなんだけどね
変数に保持するよりも外部ファイルとかDBに保持したほうが
効率良いでしょ
840デフォルトの名無しさん:2006/05/02(火) 15:57:13
そんなにすごい壮大なプログラムなのか?
841デフォルトの名無しさん:2006/05/02(火) 16:01:25
>>840
何だかよく分からないが、72通りもあるらしいぞ。
842デフォルトの名無しさん:2006/05/02(火) 16:20:27
すっげー!
843デフォルトの名無しさん:2006/05/02(火) 16:38:02
a = iif(c,b,a) + 10
844デフォルトの名無しさん:2006/05/02(火) 16:39:28
72店舗も支店があるのか、そら大きいな
845デフォルトの名無しさん:2006/05/02(火) 16:57:29
>>843

代入先(左辺)のaも、変えたいんだろ
846デフォルトの名無しさん:2006/05/02(火) 18:15:20
俺は文系のパスタ職人でも読めるように書くぜ
パフォーマンスがハードで補えるならためらわずそれを進める。

自分しか分からないコードは全部自分に跳ね返ってくる
左辺のaも変えたコードを他の人が分かるとは思えない。

お前の72回の苦労が他人の無駄な労力を軽減できる。
847デフォルトの名無しさん:2006/05/02(火) 18:45:55
>>846
それは誰でもプログラマになれると言ってるようなもん。
848デフォルトの名無しさん:2006/05/02(火) 18:50:15
>>846

>>818 のままのIf文が72回続くならそのまま書けばいいと思うよ。
けど、Ifの条件文が無茶苦茶複雑かもしれないし、
分岐後の計算式が数十行に及ぶ複雑な物かもしれない。
そんなのが72回続いてみろ、それこそパスタ職人にゃ読めんだろ。
それどころかそんなの書く奴がパスタ職人だろ。

それなら、>>802>>804のように配列つかって左辺も変えたほうが
よっぽど読みやすいだろ。

>>827の言うとおりケースバイケースなんだよ。
849デフォルトの名無しさん:2006/05/02(火) 19:01:40
大昔のプログラマである漏れは、そのような話は目から鱗だ。
大昔はいかに複雑に凝縮してソースをコンパクトにするかが勝負だったから。
850795:2006/05/02(火) 19:07:33
正直、>>791が何をやりたいのかやっぱりよくわからない。
回答している連中も何を考えているのか。。。
たぶん、こういうこと(はっきりいってあんまり意味ないと思うけど…)
をやりたいんじゃないかと思って>>795のように書いたけど違うんだろうか?
851795:2006/05/02(火) 19:08:57
Private mA As Integer
Private mB As Integer
Private mC As Integer

Private Enum eVariableID
a = 0
b = 1
c = 2
End Enum

Private Function ModifyMyMember(ID As eVariableID)

Select Case ID
Case eVariableID.a
Call Modify(mA)

Case eVariableID.b
Call Modify(mB)

Case eVariableID.c
Call Modify(mC)

End Select

End Function

Private Function Modify(ByRef Var As Integer)
Var = Var + 10
End Function
852デフォルトの名無しさん:2006/05/02(火) 19:41:36
>>851
それでも十分、僕の希望通りの動作をします。
大変ありがとうございました。
853デフォルトの名無しさん:2006/05/02(火) 21:20:37
>>852
72通りってのは>>791のような条件分岐が必要な項目が、72個あるという意味だとしたら、
>>793にあるように配列化して, cの値で配列を選択するようにしたらよくないっすか?
関数Modifyに対してcを (Boolean型ではなくIntegerなどで) 0か1で, ParamIDに72通りのうちの
どれなのかを指定すればいけそうだけど。
解釈が違ってたらすまん。でもいずれにしろ配列を巧く使うと条件分岐がいらなくなるもんだよ。
配列の初期化が必要だから、値がバラバラだと初期化がめんどくさくなることがあるけどね。

Option Explicit
Dim a(0 to 1, 0 to 71) As Integer

Private Function Modify(ByVal c As Integer, ByVal ParamID As Integer ) As Integer
a(c, ParamID) = a(c, ParamID) + 10 'もしインクリメントする値がバラバラならそれも配列にすればよい
'Modify = a(c, ParamID)
End Function
854デフォルトの名無しさん:2006/05/02(火) 21:23:06
if c = false then a = a + 10 else b = b + 10

はい簡潔w
855デフォルトの名無しさん:2006/05/02(火) 22:01:22
>>853
おっしゃる通りの内容で、既に配列化を完了させました。
今回のような配列の利用法は非常に勉強になるものでした。
まことにありがとうございました。
856デフォルトの名無しさん:2006/05/02(火) 22:18:50
>>846
仕事で書くコードなら、それがデフォだね。
ちょっと前に、何処かのサイトの算数クイズの話があったけど、
質問者が一番最初に提示したのが、仕事なコードとしては最も正しい。
VBを覚えたばっかりの新人さんでも、ちゃんとメンテ出来る。
857デフォルトの名無しさん:2006/05/02(火) 22:22:16
あの、房でごめんなさい。
課題でVBでオセロ作成ってのがでたんですが期限がやばめです
過去ログどのあたりにあるでしょうか
858デフォルトの名無しさん:2006/05/02(火) 22:24:54
>>856
仕事で書くコードとやらは、
例えばスーパーマリオブラザーズみたいなプログラムを作る場合、
2 Player Gamesも作る必要があるので、
変数だけが違う全く同じコードを2回書くということ?
859デフォルトの名無しさん:2006/05/02(火) 22:28:20
>>858
どこをどう読めばそんな質問になるんだ(w
860デフォルトの名無しさん:2006/05/02(火) 22:59:10
>>859
仕事で書くコードは、
変数だけが違う全く同じコードを2回書いてる>>791のようなコードがデフォなんだろ?
861デフォルトの名無しさん:2006/05/02(火) 23:33:02
>>857
そんなログはない。
862デフォルトの名無しさん:2006/05/02(火) 23:35:06
>>858
あぁゴメン。ゲームプログラムの事は全く頭になかった。
ゲームだと、徹底的に最適化する必要があるのかもね。
863デフォルトの名無しさん:2006/05/03(水) 00:13:17
一番重要なのは、「仕様通りに正しく動作する」事。
まぁ仕様にバグがあったらどうしようもないが。
864デフォルトの名無しさん:2006/05/03(水) 00:14:35
ゲームプログラマ以外のプログラマには誰でもなれるというわけか・・・
865デフォルトの名無しさん:2006/05/03(水) 00:50:29
仕事で書く場合は>>791でも微妙だろ
aとかbとか言う変数名を使ってる時点でダメ、ソースレビューで弾かれる
866デフォルトの名無しさん:2006/05/03(水) 00:53:05
コードを書く前に勝敗が決まってるってだけだw
867デフォルトの名無しさん:2006/05/03(水) 01:00:15
>>857
ググレカス
868デフォルトの名無しさん:2006/05/03(水) 01:01:18
>>865
どう考えてもここで晒すコードの変数なんて、例えばの話だろw
869デフォルトの名無しさん:2006/05/03(水) 01:22:07
>>868
仕事で使われてる奴らのレベルだとこういうサンプル出すとその通りに変数つけてくる馬鹿が居るんだよ
870デフォルトの名無しさん:2006/05/03(水) 01:55:26
んなあほな
871デフォルトの名無しさん:2006/05/03(水) 09:41:22
仕事で、他人が何年も前に書いたコードを
メンテした事がない連中が多いなここは。
まぁ、そんな時が来る迄は、呑気にアルゴリズムだの
効率だのを考えてればいいよ。
872デフォルトの名無しさん:2006/05/03(水) 10:11:02
>>871
最近そんなんばっかりだよ(@_@)
873デフォルトの名無しさん:2006/05/03(水) 10:27:56
なんか意味不明な愚痴だよな。

まあ「スパゲティコードをメンテする悲惨な自分」に自己陶酔する
稲川淳二系のメンタリティの人なのかな。
もっとも稲川淳二はあくまでネタでやっていたわけで、ベタに自己陶酔してる彼とは
全然違うけどね。

スパゲティコードのメンテ経験があろうと無かろうと、
アルゴリズムや可読性の高いコードを書くことの重要性に変わりはない。
874デフォルトの名無しさん:2006/05/03(水) 10:40:34
>>873
愚痴を書くと書いたヤシは能力無しと決めつけるのか
875デフォルトの名無しさん:2006/05/03(水) 12:03:07
仕事でコーディングする時は、自分が転職したり、リストラされた後、
まともな仕様書なんてない状態でそれをメンテする人の事も考えてね。
素直に
>>791
if c = false then
 a = a + 10
else
 b = b + 10
end if
(↑可読性が高いコード)
みたく書いてくれりゃいいのに、効率が悪いだの簡潔に短くだの
向上心を持てだの、勘違いしてろくでもないコード書かないでね。
残された人はホント、大迷惑だから。
876デフォルトの名無しさん:2006/05/03(水) 12:16:40
ループしてるな。

まあ「策士策に溺れる」のは止めろって言いたいのはわかるしその通りだけど、
分岐してスイッチする対象の変数が多かった場合どうなの、
っていう791の言い分は正しいよ。

もっとも、モデリングが間違ってるからそんなコードを書かざるをえないんだ、
と想像するけどね。
877デフォルトの名無しさん:2006/05/03(水) 12:31:16
あとのこと(メンテとか改造)を考えろってのも一理あるけど
納期と工数をふまえてってこともあるからやっぱ、端的にケースバイケースだな
878デフォルトの名無しさん:2006/05/03(水) 12:33:14
>>877
もっと言わせてもらえば、理想で仕事なんか出来ないんだよ・・・
879デフォルトの名無しさん:2006/05/03(水) 12:37:36
意味わからんな。
普通、「後のことを考える」こと、つまり可読性のあるコードを書くことと
生産性は矛盾しないよ。

矛盾しない、というより、可読性のあるコードを書くことは明らかに生産性に寄与するよ。
880デフォルトの名無しさん:2006/05/03(水) 12:56:20
>>879
可読性もピンキリだし、それぞれの能力でも違いがあるから表現が難しいな。
でも、可読性のあるコードを書くことと生産性は矛盾することもある。
生産性の判断も人によるから・・・あぁ、また微妙な言い方しか書けない
881デフォルトの名無しさん:2006/05/03(水) 12:59:39
つまり、皆好きな様に書けと。
882デフォルトの名無しさん:2006/05/03(水) 13:00:58
オブジェクト指向をきちんと理解してる人が書いたコードって、そもそも仕様書なしに読めるようなものではない気がするが。
883デフォルトの名無しさん:2006/05/03(水) 13:25:31
条件分枝なんかしなきゃいいのに
884デフォルトの名無しさん:2006/05/03(水) 13:46:41
同期に、改行も空白行も空白も一切なしでコーディングしてた奴が居たな。
C言語なんだけど、「これが一番見易い」との事。
885デフォルトの名無しさん:2006/05/03(水) 13:48:51
>>875
if c = false then
 a = a + 10
else
 b = b + 10
end if

要するに、これをもっと複雑にしたやつが72通りあるんだろ?
それなら配列化したほうが可読性も上がるな。

配列化すると可読性が下がるとか言ってる奴は、
そもそも配列という概念すら知らないのにプログラマ気取ってるアフォなんだろ。
886デフォルトの名無しさん:2006/05/03(水) 13:57:51
>>884
マルチステートメントの1行プログラムかw

>>885
確かに。
887デフォルトの名無しさん:2006/05/03(水) 14:05:44
>>885
「これをもっと複雑にしたやつが72通りある」ってのは違うんじゃないの。
根本的に、「やりたい事」と「やる方法」の区別が出来てないだけかと。
888デフォルトの名無しさん:2006/05/03(水) 14:09:56
>>887
まあそうかも知れんが、
「これをもっと複雑にしたやつが72通りある」と仮定した話として見てくれ。
889デフォルトの名無しさん:2006/05/03(水) 14:18:27
if c = false then
 select case a(0)
  case 1
   b(1) = b(1) - 10
  case 2
   a(1) = a(1) + 10
  case 3
   b(1) = b(1) - 30
  case 4
   a(1) = a(2)
 end select
else
 select case b(0)
  case 1
   a(1) = a(1) - 10
  case 2
   b(1) = b(1) + 10
  case 3
   a(1) = a(1) - 30
  case 4
   b(1) = b(2)
 end select
end if

こういう風なものが72通りある場合、
どう考えてもこれは可読性が低いだろ?

cがfalseの場合とtrueの場合で、aとbが入れ替わってるだけ。
それならa(0)とb(0)をx(index)、a(1)とb(1)をy(index)、a(2)とb(2)をz(index)にして、
ソースをほぼ半分にしたほうが可読性も高くなる。
890デフォルトの名無しさん:2006/05/03(水) 14:22:32
具体的には、

if c = false then
 index = 0
 indexR = 1
else
 index = 1
 indexR = 0
end if
select case x(index)
 case 1
  y(indexR) = y(indexR) - 10
 case 2
  y(index) = y(index) + 10
 case 3
  y(indexR) = y(indexR) - 30
 case 4
  y(index) = z(index)
end select

これだけで済む。
891デフォルトの名無しさん:2006/05/03(水) 14:23:08
意味がわからんw
892デフォルトの名無しさん:2006/05/03(水) 14:26:16
これはまさに>>804の考え方。
893デフォルトの名無しさん:2006/05/03(水) 14:28:31
>>888
よっしゃ!
そう見るぜッ!
894デフォルトの名無しさん:2006/05/03(水) 14:29:14
>>891
cの分岐によって変数が入れ替わってるだけの極端な例だ。
895デフォルトの名無しさん:2006/05/03(水) 14:30:08
>>890
可読性は下がったとしか思えんが。
まぁ、所詮「可読性」なんて女性の好みと同じで、100%主観だしな。
896デフォルトの名無しさん:2006/05/03(水) 14:30:24
なんかいかにもVbプログラマ的な発想の持ち主が多いなあ。

記述がのコンパクトさと可読性は、確かに一致することが多いけど
いつも一致するとは限らない。

配列を使えば確かにコンパクトかつ可読性のあるコードが書ける場合があるのは確かだが、
例外なくそうだ、みたいに思い込むのはナイーブというか浅はか過ぎる。

条件によって選択される各変数が意味的に何の関連性もないとしたら、
そんな諸変数が配列になってるようなウンココードは俺は読みたくないね。
897デフォルトの名無しさん:2006/05/03(水) 14:39:17
>>896
もちろん配列は関連性がある。
今回、仮に下のようなものと考えることとしよう。

元々は

a(0) = プレイヤー1のキャラクター
a(1) = プレイヤー1のHP
a(2) = プレイヤー1の最大HP

b(0) = プレイヤー2のキャラクター
b(1) = プレイヤー2のHP
b(2) = プレイヤー2の最大HP

配列化したあとは

x(0) = プレイヤー1のキャラクター
x(1) = プレイヤー2のキャラクター

y(0) = プレイヤー1のHP
y(1) = プレイヤー2のHP

z(0) = プレイヤー1の最大HP
z(1) = プレイヤー2の最大HP

まあ変数名はここでは適当だが、妥当なものに脳内変換すると、
配列に関連性があることがわかる。
898デフォルトの名無しさん:2006/05/03(水) 14:42:35
あ、キャラクターってのはおかしいな。
「キャラクター」ってとこを「戦闘パターン」とでも読み替えてくれ。
899デフォルトの名無しさん:2006/05/03(水) 14:43:29
あ、やっぱ「さいころの目」と読み替えてもらったほうが分かりやすいな。
900デフォルトの名無しさん:2006/05/03(水) 14:45:22
イメージとしては、小学生の頃あまり流行ってなかったけど存在した、
ドラクエのキャラクター鉛筆のような簡単なゲームと考えてくれればいい。
901デフォルトの名無しさん:2006/05/03(水) 14:46:27
やっぱりガキがゲーム作ってんのか
902デフォルトの名無しさん:2006/05/03(水) 14:47:01
>>901
だから、極端な例だよ。
903デフォルトの名無しさん:2006/05/03(水) 14:55:58
一体何度読み換えさせるんだ。w
904デフォルトの名無しさん:2006/05/03(水) 15:28:53
もうこんな所で質問なんかせず、自分の好きに書けばいいじゃん。
905デフォルトの名無しさん:2006/05/03(水) 15:43:32
>897
x,y,zなんて使わずにクラスにまとめろよ
906デフォルトの名無しさん:2006/05/03(水) 15:56:52
>>905
何回言ったらわかるんだ?
極端な例を出しただけであって、そんな意見を述べる必要はないんだよ。
907デフォルトの名無しさん:2006/05/03(水) 16:01:33
>>905
ヒント:「変数名はここでは適当」
908デフォルトの名無しさん:2006/05/03(水) 16:07:13
何がヒントだ
本当はクラスが使えないだけだろw
909905:2006/05/03(水) 16:12:08
>907
変数名が問題じゃ無いんだ
別々の変数で管理しているのが問題なんだよ
910デフォルトの名無しさん:2006/05/03(水) 16:12:12
>>908の頭の中

「俺はクラスという“高度な技術”が使えるんだぜ?すげーだろ?」

はいはいすごいね
911905:2006/05/03(水) 16:16:46
>910
俺、>908の言ってる事間違ってないと思うぞ
>907はクラスを理解している反応じゃ無いだろう
912デフォルトの名無しさん:2006/05/03(水) 16:35:26
>>908
君は実に莫迦だな。AA略
913デフォルトの名無しさん:2006/05/03(水) 16:40:23
ちなみに>>907は上で配列化のコードを書いてた奴とは別人だからな。
914デフォルトの名無しさん:2006/05/03(水) 16:56:46
使えることが偉いのではなく
使えないやつに合わせるのが偉い。

つーか、こんなコード大して速度なんて変わらんて
915デフォルトの名無しさん:2006/05/03(水) 16:58:51
VistaでもVB動く様にしてくれるみたいね。
VB.NETがあるのに。
916デフォルトの名無しさん:2006/05/03(水) 17:02:02
みんな、なんでVB使ってるの?
VC++使う気はないの?
917デフォルトの名無しさん:2006/05/03(水) 17:06:18
>>916
ヒント:インタプリタ
918デフォルトの名無しさん:2006/05/03(水) 17:40:51
オブジェクト指向プログラミングなんて何の自慢にもなりませんか?
919905:2006/05/03(水) 17:47:34
何か自慢になるの?
920デフォルトの名無しさん:2006/05/03(水) 17:55:09
自慢しても意味はない。結果がすべて。ソースの中身なんかは関係ない。
921デフォルトの名無しさん:2006/05/03(水) 17:58:44
オブジェクト指向でもスパゲティーでも、役に立つのが良いプログラムだ

笑福亭小平
922デフォルトの名無しさん:2006/05/03(水) 18:09:30
マルチステートメントでスパゲティが最強だった時代が懐かしい。
923デフォルトの名無しさん:2006/05/03(水) 18:15:39
納期にちゃんと間に合って、バグのないのが一番。
924デフォルトの名無しさん:2006/05/03(水) 18:19:27
納期とか言ってるけど、VBを使った案件なんてないでしょ?
925デフォルトの名無しさん:2006/05/03(水) 18:36:34
>>924
お前は一体何処で働いてるんだ。
926デフォルトの名無しさん:2006/05/03(水) 18:38:35
任天堂64
927デフォルトの名無しさん:2006/05/03(水) 18:44:42
オブジェクト指向を正確に理解している人間は実は意外と少ない
928デフォルトの名無しさん:2006/05/03(水) 18:46:19
だからチャンスなの?
929デフォルトの名無しさん:2006/05/03(水) 18:50:15
VC++、VB、Java、
企業ではどの案件が多い?
930デフォルトの名無しさん:2006/05/03(水) 18:53:27
>>928
魔法少女リリカルなのは 第13話「だからチャンスなの?」
931デフォルトの名無しさん:2006/05/03(水) 18:56:05
バルス
932デフォルトの名無しさん:2006/05/03(水) 18:58:09
>>929
その辺と、.Netじゃね?
933デフォルトの名無しさん:2006/05/03(水) 18:59:20
>>923
納期に間に合わないって・・・
934デフォルトの名無しさん:2006/05/03(水) 19:03:17
>>924
VB指定って企業があるのよ(w
自社でメンテ出来るからって理由で(w
935デフォルトの名無しさん:2006/05/03(水) 19:04:03
でも>>925はそういう企業をデフォと思ってるみたいよ?
936デフォルトの名無しさん:2006/05/03(水) 19:12:41
Java > どとねと >>>>> VB >>>>> 越えられない壁 >>>>> VC

って感じか?
937デフォルトの名無しさん:2006/05/03(水) 19:33:18
一つだけ間違ってる
正しくはこう

どとねと >>>>> VB >>>>> 越えられない壁 >>>>> VC>>>>>Java
938デフォルトの名無しさん:2006/05/03(水) 19:40:33
.NETが出る前は、クライアント側は100%VBだろ。
VC++でDLLは作るけど。
939デフォルトの名無しさん:2006/05/03(水) 19:45:01
>>938
100%は言い過ぎ(w
940デフォルトの名無しさん:2006/05/03(水) 19:51:38
99.999999999%
941デフォルトの名無しさん:2006/05/03(水) 20:05:08
VC++とかデルファイとかで
クライアント作ってた奴が居るのか・・・
942デフォルトの名無しさん:2006/05/03(水) 20:16:36
>>941
指定なきゃDelphiだがなにか問題でも(w
943デフォルトの名無しさん:2006/05/03(水) 21:35:55
うわああああwwwww
びびったwwwww
どんだけVB信者多いんだよwwww
まさに厨だなwwwww
ありえんwwwwwwwwwwwwwwwww
VBがVCの足元にすら及ぶのか、冷静になって考えて見ろよwwwwwwwww
944デフォルトの名無しさん:2006/05/03(水) 21:37:40
今日は若いお客さんが多いね。
945デフォルトの名無しさん:2006/05/03(水) 21:38:06
>>943
そういう問題ではなくて、このスレにVC++が使えない(理解できない)奴が多いだけ。
だってここはVBスレだから。
VCが出来る奴がVBスレなんかにいるわけがない。
946デフォルトの名無しさん:2006/05/03(水) 21:39:34
>>944
ある意味入門用言語だからな
947デフォルトの名無しさん:2006/05/03(水) 21:40:06
>>943
若いな。
昔からVB厨は悔しさのあまりVC++を目の敵にするもんだ。
そんなことも知らないとは若すぎ。
948デフォルトの名無しさん:2006/05/03(水) 21:40:50
>>946
だなw
ある意味というか入門専用だしな。
949デフォルトの名無しさん:2006/05/03(水) 21:46:55
>>938
誤爆?
クライアント側はVC++を希望するけど、
開発側が対応できないからVBを推奨して丸めこんでるが正解だろ。
>>940の言葉を借りるなら99.999999999%がそう。
950デフォルトの名無しさん:2006/05/03(水) 21:53:03
>>936
>>937
ネタにマジレスするが
おまえらも分かってる通り正しくはこう

VC>>>Java>>>>>>>>>>>どとねと>>>>超えられない壁>>>>VB
951デフォルトの名無しさん:2006/05/03(水) 21:54:17
まあ、さすがVBスレだとは思うけど、
そのVB厨の巣であるこのスレに来てまで暴れる意味もわからん。
952デフォルトの名無しさん:2006/05/03(水) 22:06:26
ぶっちゃけVBがしょぼいのは薄々気付いてたけどそこまでズバリ言われるとへこむ
953デフォルトの名無しさん:2006/05/03(水) 22:10:25
未だに、「VBは入門用」だの「初心者向け」とか言ってる莫迦が居るとは・・・
まじレスすると、VBが簡単なのは、コントロールをフォームに貼る所迄、だよ。

それに、ここはVBスレなんだから、使わないなら来るなって。
954デフォルトの名無しさん:2006/05/03(水) 22:12:23
>>953
>VBが簡単なのは、コントロールをフォームに貼る所迄、だよ

m9(^Д^)プギャー!!
955デフォルトの名無しさん:2006/05/03(水) 22:13:22
>>953
おまえにとってはコントロールをフォームに貼るところ以降は難しいようだねw
自己紹介乙
956デフォルトの名無しさん:2006/05/03(水) 22:15:29
>>953
ん?VBが上級者向けとでも?
VC++と比較して考えてみろよ。

VC++と比較してインタープリタであること以外のメリットを述べてみろ。
957デフォルトの名無しさん:2006/05/03(水) 22:17:26
>>956
インタプリタであることもデメリットだろ
958デフォルトの名無しさん:2006/05/03(水) 22:19:02
インタプリタね
959デフォルトの名無しさん:2006/05/03(水) 22:20:55
VB6のDHTMLアプリってなんだったんだお
960デフォルトの名無しさん:2006/05/03(水) 22:21:03
>>953
あまり関係ないけど
環境に依存しすぎなので、業務用にはあまりお薦めできない。
それに、VBは連続使用を保証してなかったと思うのだが・・・今は違うのか?
よって、主観だけどテスト開発とか練習用って位置づけなんだけど
961デフォルトの名無しさん:2006/05/03(水) 22:22:29
> それに、VBは連続使用を保証してなかったと思うのだが・・・今は違うのか?

それ以前に連続使用で問題があるという話を聞いたことが無いw
962デフォルトの名無しさん:2006/05/03(水) 22:25:00
Visual Basicは入門専用言語だよ。Beginners’ All-purpose Symbolic Instruction Code
まあ最近のは結構進化してて用途によっては実用にも耐えうるだろう。
でもよく考えてみろ。本当にVBという選択は正しいのか。

963デフォルトの名無しさん:2006/05/03(水) 22:27:18
このスレにいるような雇われの身にそんなこと言ってもしゃあないだろ?
会社でVBで組めと言われたら従う以外の選択肢はないんだから。
なんでVBで組んでるかとかいうことまで考えたことのあるようなデジタル土方はいないよ。
964デフォルトの名無しさん:2006/05/03(水) 22:27:47
All-purpose とは 万能の という意味だよ。
965デフォルトの名無しさん:2006/05/03(水) 22:28:18
>>963
> このスレにいるような
お前もこのスレにいる
966デフォルトの名無しさん:2006/05/03(水) 22:29:23
>>964
そりゃビギナー用途にしては万能なほうじゃね?
967デフォルトの名無しさん:2006/05/03(水) 22:29:56
>>961
まあ問題は聞いたことはないかも知れないけど、未保証ってのが・・・
968デフォルトの名無しさん:2006/05/03(水) 22:30:13
>>965
いるよ。
俺もデジタル土方だ。
仕方なく言われるままVBを使ってるんだ。
文句はあるまい。
969デフォルトの名無しさん:2006/05/03(水) 22:31:02
つまり、初心者向けだが万能
970デフォルトの名無しさん:2006/05/03(水) 22:31:52
>>967
当たり前に保証されていることを、わざわざ保証されているとは言わんのだが・・・。
それとも未保証ってどこかに書いてあった?
971デフォルトの名無しさん:2006/05/03(水) 22:32:33
自社でメンテナンスをしようと思うような
浅はかで、貧乏で、初心者なクライアントが全て悪い。

まあVBで依頼して満足できなくても自業自得だからいいんじゃね?
972デフォルトの名無しさん:2006/05/03(水) 22:32:47
>>968
自分で自分のことを言うのは文句ない。

ただ、自分がそうだからって、他人にもあてはめんなよw
973デフォルトの名無しさん:2006/05/03(水) 22:33:39
>>972
じゃあおまえは誇りを持ち、好んで自らVBを使ってるとでも?
974デフォルトの名無しさん:2006/05/03(水) 22:34:09
>>969
だが問題は、そんなに万能でもないということだ。
975デフォルトの名無しさん:2006/05/03(水) 22:36:30
>>973
言語なんてどれでもいい。ただ過去の資産があるから使っているだけですが?
976デフォルトの名無しさん:2006/05/03(水) 22:37:41
>>974
ヒント 名前が付けられた当時の時代背景


今の時代に名前の由来がどうとか言っても
的外れなだけだよ。
977デフォルトの名無しさん:2006/05/03(水) 22:38:55
じゃあVC++にできなくてVBにできることを挙げてみてよ
978デフォルトの名無しさん:2006/05/03(水) 22:42:04
VBのデメリット

・ランタイムが必要
・遅い
・マルチプラットフォーム性は皆無

他にもいろいろデメリットはあるだろうけど、
この3点がある時点で使う意味はない。
979デフォルトの名無しさん:2006/05/03(水) 22:43:22
じゃあ.NETなんて論外だな
980デフォルトの名無しさん:2006/05/03(水) 22:43:51
>>977
イミディエイトウインドウから
作った関数をすぐに実行できること。

デバッグ中にブレークポイントで実行を停止し、
その場でコードを修正し、修正したコードで続きを実行できること。

デバッグに便利。
981デフォルトの名無しさん:2006/05/03(水) 22:45:01
>>980
飛ぶと目も当てられないけどな
982デフォルトの名無しさん:2006/05/03(水) 22:45:58
他の残念なデメリットを挙げると・・・

・完全なオブジェクト指向ではない
・ポインタ型がない

まあ唯一のメリットはインタプリタであることかな。
でもそれは開発テスト用途でのメリットであって、
実際に納品するものでは逆にデメリットになる。
983デフォルトの名無しさん:2006/05/03(水) 22:46:04
984デフォルトの名無しさん:2006/05/03(水) 22:46:48
>>980
それも開発テスト用途としてのメリットだな。
985デフォルトの名無しさん:2006/05/03(水) 22:46:57
ポインタ型はあるほうがデメリット多いと思うが。

Javaもポインタ型無くて、VBと同じ参照だけだよ。
986デフォルトの名無しさん:2006/05/03(水) 22:47:46
>>984
そりゃ、生産性の高さとしてのメリットをあげたんだからねぇ。
事実でしょ?
987デフォルトの名無しさん:2006/05/03(水) 22:48:49
>>970
見つけられなかった、思い違いかも知れない
でも、たしかVBの欠点って使いはじめの最初のころに読んだか聞いたんだけどなぁ
988デフォルトの名無しさん:2006/05/03(水) 22:48:54
まあ用途によるな。
クオリティより生産性を重視するならVBか。
989デフォルトの名無しさん:2006/05/03(水) 22:50:54
クライアントである企業に納品するものなんて、
どうせ管理ソフトとか機関ソフトの類だろ?

そんなのはVBでチャチャーっと作っちゃえばいいのよ。
エンドユーザ向けとか、パフォーマンス重視のソフトなら、
VBという選択肢はないけどな。
990デフォルトの名無しさん:2006/05/03(水) 22:51:22
>>988
スキルでなんとかする(w
991デフォルトの名無しさん:2006/05/03(水) 22:52:47
VBプログラマはスキルが低い奴が多い。
あとOOPが出来ない奴が多い。

ん?逆か?
スキルが低いからVBプログラマなのか。
992デフォルトの名無しさん:2006/05/03(水) 22:53:36
しかし世にはVBプログラマの絶対数が多い。
これはスキルの低いプログラマの絶対数が多いってことだ。
993デフォルトの名無しさん:2006/05/03(水) 22:57:42
言語がどうのとか言ってるうちはレベルが低いというのが定説。
スキルの高い奴はどんな言語にでも柔軟に対応できるのが当たり前。
994デフォルトの名無しさん:2006/05/03(水) 23:02:15
>>853ですが、色々議論が進んだようで・・・
自分は業務pじゃなくてサンデーpですが、>>791ような場合、格納される個々の値の
管理を一括化でき、配列サイズの増加が可能で、なおかつコードがシンプルかつ
コンパクトになるというメリットがあると思って配列化しました。
あとは、コメント文で何故そういう風に書いたかという思想をちゃんと伝える必要は
感じますけど。

業務ではコメントって書かないもんなんですかね?コメント書くことを必須にしとけば
ずいぶん片付く問題に思えるんですが。考えが甘いっすか?まあプログラマもピンきりですしね。
995デフォルトの名無しさん:2006/05/03(水) 23:05:04
ほら、また技術力がカーストになってると信じ込んでるやつの流れに
996デフォルトの名無しさん:2006/05/03(水) 23:07:16
このスレは書き込みが多い=荒れている、だな。
997デフォルトの名無しさん:2006/05/03(水) 23:07:23
言語で分けないと対立煽れないもんな
998デフォルトの名無しさん:2006/05/03(水) 23:13:18
VC++マンセーの連中は、本当に阿呆ばっかりだな。
何で其処迄必死にVBを否定するんだ?
単なる適材適所だろ。
VBで作った方が良い物はVBで作ればいいし、VC++の方が
良ければVC++を使えばいいだけ。
勿論、Javaとかデルファイとかアセンブラとかも同じ事。
「VBのデメリット」だの「VC++には出来てVBには出来ない事」だの
を列挙して何の意味があるんだ?
池沼なのか?
999デフォルトの名無しさん:2006/05/03(水) 23:16:32
そもそも質問スレだし。スレ違いばっかだ
1000791です。:2006/05/03(水) 23:16:39
>>791が華麗に1000Get!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。