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

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

VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。

○ 質問者の心得
 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。
 二.VBScript、インストーラーなどはこのスレでOK。
 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
 四.荒らしは相手しない。

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

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デフォルトの名無しさん:2008/03/03(月) 23:03:29
前スレ
VBプログラマ質問スレ(6.0以前) Part53
http://pc11.2ch.net/test/read.cgi/tech/1187667616/

なかなか立ってないから立てた。反省はしていない
3デフォルトの名無しさん:2008/03/03(月) 23:30:58
>>1
4デフォルトの名無しさん:2008/03/07(金) 10:35:20
本スレage
5デフォルトの名無しさん:2008/03/07(金) 15:20:23
VBでおすすめの本は?
6デフォルトの名無しさん:2008/03/08(土) 15:11:26
>>5
VB6なら「ピーターノートンの手解きVisual Basic6」
Vol1とVol2の2巻あるが、初心者でも無理なく理解できる丁寧な解説と、
上級者でも満足できる高度な内容を両立させている上に他のVB本には
記載されていない事も説明がある。サンプルCDも付いているし、この2冊で
充分VBマスターになれる。
7デフォルトの名無しさん:2008/03/08(土) 16:01:17
8デフォルトの名無しさん:2008/03/10(月) 16:50:20
>>5
ゲームとか作るんだったら
古い本だけど
Visual Basicビジュアルプログラミング実践テクニック
結構お勧めできるかも
大昔にゲーム系の専門でPGの講師してたときに使ってた本
ビジネスアプリだったらぜんぜん意味無いが
9デフォルトの名無しさん:2008/03/12(水) 23:00:28
すいませんが質問させてください
FTP接続に関する質問です。
FTPでデータを転送したく、いろいろ調べた結果、転送まではできるようになりました
しかし、以下のことができません。
Aのデータを送って、正常に送れたのを確認してからBのデータを送る
問題点
データ量が大きくなる(転送データが増える)と回線の状況による速度の影響で
一定時間で見るのは難しいです(効率も悪い)

たぶんAのデータがすべて送りきれているか確認できればいいと思うのですが可能ですか?
ほかにいい方法があれば教えてくれれば嬉しいです。よろしくお願いいたします。
10デフォルトの名無しさん:2008/03/12(水) 23:41:21
>>9
つか、シーケンシャルに処理すれば良い希ガス
11デフォルトの名無しさん:2008/03/13(木) 10:01:14
>>9
よくわからないけど
Aのデータを送信
  ↓
FTPで最新リストを取得して送信元データとサイズを比較 → 違うなら再送信
  ↓
同じなら成功したとする
とかはできないの?
12デフォルトの名無しさん:2008/03/13(木) 19:49:43
zipファイルの圧縮はどうすれば可能でしょうか?
.netは見つかったのですが6.0では見つかりません。
ちなみに普通に解凍は見つかりました。
UNZIP32.DLL
ですが、やはり使用しないと無理なのでしょうか?
どうかその方法を教えてください。(txtをまとめて圧縮さえできればいいです)
よろしくお願いいたします
13デフォルトの名無しさん:2008/03/13(木) 20:58:00
>>12
UNZIP32.DLLは解凍で
圧縮はZIP32.DELLだったような。
VB6は標準でZIP圧縮、解凍というメソッド等は持たないので
ZIP32.dllあたりからメソッド呼び出す必要があったはず。
14デフォルトの名無しさん:2008/03/13(木) 21:00:23
質問です。
1: Public Sub test
2: dim x as integer
3: x=0
4: End Sub

変数xのメモリが実際に確保されるのは
2行目でしょうか?
3行目でしょうか?
15デフォルトの名無しさん:2008/03/13(木) 21:39:38
気にしなくていい
16デフォルトの名無しさん:2008/03/14(金) 09:57:25
>>12
総合アーカイバ プロジェクト
http://www.csdinc.co.jp/archiver/

ここの「開発室」を見てみ?
1712:2008/03/15(土) 00:09:31
>>13,16
ありがとうございます
がんばってみます
18無償入手可:2008/03/15(土) 13:00:48
19デフォルトの名無しさん:2008/03/15(土) 14:09:52
コピペ君って馬鹿だな、まで読んだ。
20デフォルトの名無しさん:2008/03/15(土) 16:04:28
「馬鹿は、人を馬鹿呼ばわりする」まで読んだ。
21デフォルトの名無しさん:2008/03/15(土) 16:36:05
かわいそうだから全部読んだ
22デフォルトの名無しさん:2008/03/16(日) 15:35:22
文字コードで質問があるのですが
VBの内部コードはUnicodeということですが
buf = "1,2,3,4"
Open strPath For Output As #FileNo
Print #FileNo, buf
Close #FileNo

で書き込んだファイルがシフトJISになるのはなぜでしょうか?
23デフォルトの名無しさん:2008/03/16(日) 15:49:49
仕様です
24デフォルトの名無しさん:2008/03/16(日) 17:31:57
>>23
レス有難うございます。これはVB6の仕様ということでしょうか。
Windows Vistaでは文字コードの規定値がUnicodeになるようですが
VB6で>>22のようなコードで作成したファイルは
やはりシフトJISになるのでしょうか?
25デフォルトの名無しさん:2008/03/16(日) 17:33:30
そのコードではそうなる
2622:2008/03/16(日) 18:00:30
>>25
ということはシフトJISになるのはPrintステートメントの仕様ということでしょうか。
たしかにStrConvでUnicodeに変換した文字列を書き込んでもシフトJISになりますね・・
Writeステートメントでも同様のようです。
27デフォルトの名無しさん:2008/03/16(日) 18:33:22
>>26
バイナリで作って書き込めばUNICODEで保存できたはずだが?
28デフォルトの名無しさん:2008/03/16(日) 22:00:40
シフトJISで出力される仕様だなんて聞いた事もないので
試しにAppLocaleで切り替えてみたらやはりシフトJIS以外で出力された
UTF-8には切り替えられないので意味無いが
2922:2008/03/16(日) 22:19:53
>>27
Open strPath For Binary Access Write As #FileNo
Put #FileNo, , buf
Close #FileNo
でもUnicodeにならないのですがこれって端末の環境が関係してるんでしょうか?
バイト配列でも同じでした。

>>28
要はVista端末で実行しようがシフトJISで出力したいということなのですが
>>22のコードは修正する必要があるでしょうか?
30デフォルトの名無しさん:2008/03/16(日) 23:02:53
>>29
Dim strPath As String
Dim buf As String
Dim buf2() As Byte
Dim fileno As Integer
fileno = 1
buf = "1234"
buf2 = StrConv(buf, vbUnicode)
buf3 = buf
strPath = "C:/test.txt"
Open strPath For Output As #fileno
Print #fileno, buf2;
Close #fileno
かなり適当に書いたが、こんなもんじゃないのか?
FFFEは省いてるが
31デフォルトの名無しさん:2008/03/16(日) 23:38:59
質問者も回答者もぐぐらないカスばかりだな
3214:2008/03/16(日) 23:46:19
>>14
↑誰かご存じの方いませんか?
33デフォルトの名無しさん:2008/03/16(日) 23:48:18
どのタイミングで実際にメモリが確保されるかとか保証してるのかな?
遅延可能なら遅延しそう。
でも、動作が変わるような遅延はしないと思う。
34デフォルトの名無しさん:2008/03/16(日) 23:57:22
マジレスすれば、1行目。
3514:2008/03/17(月) 00:31:19
>>33
>>34
個人的には>>34さんの意見と同じです。

参考書によるとVB6ではAs Newキーワードで宣言されたオブジェクト変数の
生成されるタイミングは宣言された行ではなく、
実際にそれが使用された時まで遅延されるらしいです。
>>14の例でいうと2行目がIntegerではなく
クラスの場合、3行目でメモリが確保され、Inisializeイベントが呼ばれるのですが、
これってオブジェクト変数の場合だけメモリの確保のタイミングが遅延されるのって
変ですよね。
そう考えたら>>33さんの言うように遅延しているのかもしれません。

ちょっと話はそれますが、
Dim i As Integer
If True Then
Dim x As Integer
x = 100
End If
MsgBox CStr(x)
これで「100」と表示されたのでいろんな意味上の方にまとめて
宣言した方が可読性あがるしよさげですね。
賛否両論あるかもしれませんが。
36デフォルトの名無しさん:2008/03/17(月) 00:33:16
オブジェクト変数だけ遅延されるのは十分ありえることだと思うけど?
ありえることとそうであることは違うけどね。
37デフォルトの名無しさん:2008/03/17(月) 02:26:07
変数とインスタンスの区別ができないバカw
3822:2008/03/17(月) 02:43:19
>>30
有難うございます
そのようにコーディングしてもSakuraなどのエディタでは
なぜかSJISと表示されますね・・・。

ここにもバイナリで開いてPutで書き込むといけたと書いてあるのですが
なぜか当方の環境ではうまいこといきません・・・
h ttp://www.accessclub.jp/bbs/0060/beginers23243.html
3914:2008/03/17(月) 03:10:30
>>36
ありえること、ですか。
確かにそう言われるとそうかもしれませんね。
VBのクラスの実装はなんか他のと比べて
特殊なところありますし。
わかりました。
ありがとうございます。

>>37
変数がインスタンス化するタイミングについて討論してるのに。
40デフォルトの名無しさん:2008/03/17(月) 08:27:10
>>39
37じゃないけど、Nothingと比較ができる型の意味分かってないんじゃないの?
いずれにせよ(インスタンス生成の遅延以外は)くだらない議論だよ。

シュレディンガーの猫は最終的に猫の生死を確認する方法があるから意味があるのであって、
それが事実上ないVBでのそんな議論に何の意味があるw
41デフォルトの名無しさん:2008/03/17(月) 10:03:28
>>39
組み込み型では、インスタンス化とは言いません。
42デフォルトの名無しさん:2008/03/17(月) 11:47:26
22のコードは日本語環境だとShift_JISで出力され、
22はShift_JISで出力したいと言っている。
一体どこに問題がある?
43デフォルトの名無しさん:2008/03/17(月) 12:21:35
変数宣言してないとき(必須にしてる時)に、デバッグモードで先頭行に
カーソルはあると思うが・・・
44デフォルトの名無しさん:2008/03/17(月) 13:02:43
プロセスにアタッチして、ディスアセンブルすればわかるかもよ
45デフォルトの名無しさん:2008/03/17(月) 20:52:01
>>38
たしかに俺もウソソースを書いた。
けどすべての答えが出てたんだから自力でなんとかしてほしかった!
Dim strPath As String
Dim buf As String
Dim buf2() As Byte
Dim buf3(0 To 1) As Byte
Dim fileno As Integer
fileno = 1
buf = "1234"
buf2 = buf
buf3(0) = &HFF
buf3(1) = &HFE
strPath = "C:/test.txt"
Open strPath For Binary As #fileno
Put #fileno, , buf3
Put #fileno, , buf2
Close #fileno
46デフォルトの名無しさん:2008/03/17(月) 23:20:39
未だにOpenステートメントを使う石器人がいるとは…
4714:2008/03/18(火) 01:15:40
>>40
Nothingと比較ができる型ってつまり
値型と参照型の話ですよね?
大丈夫と思います。

>>41
そうなんですか、知りませんでした。
ありがとうございます。
値型の変数を保存するために実際にメモリ上に領域が確保されることをなんと言うのでしょうか?
48デフォルトの名無しさん:2008/03/18(火) 06:33:25
オブジェクト型の変数にオブジェクトのインスタンスが格納されると思っているなら間違いだよ
49デフォルトの名無しさん:2008/03/18(火) 19:06:10
>>46
お前はVB6以前のスレで何を馬鹿なこと言ってるんだ
50デフォルトの名無しさん:2008/03/18(火) 20:14:26
>>49
>>46 は、FileSystemObject ぐらい使えとでも言い鯛のでは?
51デフォルトの名無しさん:2008/03/18(火) 20:58:40
FileSystemObjectでUNICODEを保存するソース
52今日も雲弧 ◆bKaGbR8Ka. :2008/03/18(火) 22:59:41
VBSで質問があります。よろしくお願いします。(ペコ

IF文の部分でobjDic11とobjDic12のItemを書き換えました。
IF文の部分では書き換わっているのに、ループを抜けた後に
再度objDic11を参照すると書き換え前の状態なのです。

どこが悪いのでしょうか?何故こうなるのでしょうか?
お教え下さい。

以下にコードを4分割して貼ります。

53今日も雲弧 ◆bKaGbR8Ka. :2008/03/18(火) 23:01:02
Sub RankMark
'On Error Resume Next
Const UpTo_Soutou = 2500
Const UpTo_Gensui = 2000
Const UpTo_Taisyou = 1750
Const UpTo_tyuujyou = 1500
Const UpTo_Syousyou = 1250
Const UpTo_Jyunsyou = 1000
Const UpTo_Taisa = 950
Const UpTo_tyuusa = 800
Const UpTo_Syousa = 650
Const UpTo_Taii = 500
Const UpTo_Tyuui = 400
Const UpTo_Syoui = 300
Const UpTo_Soutyou = 200
Const UpTo_Gunsou = 150
Const UpTo_Gotyou = 100

'まずRANKとMARKのobjDicStarsを作る

Set objDicStars = CreateObject("Scripting.Dictionary")
Set objFS3 = WScript.CreateObject("Scripting.FileSystemObject")
Set objFile3 = objFS3.GetFile("星.txt")
Set objTS3 = objFS3.OpenTextFile("星.txt")
54デフォルトの名無しさん:2008/03/18(火) 23:01:40
必要最小限のソース貼れよ・・・
55今日も雲弧 ◆bKaGbR8Ka. :2008/03/18(火) 23:01:53
Do Until objTS3.AtEndOfStream
strLine3 = objTS3.ReadLine
ArrayStars = Split(strLine3)
strRank = ArrayStars(0)
strMark = ArrayStars(1)
objDicStars.Add strRank,strMark
Loop
objTS3.Close

'名前のリストを取得してから辞書を操作する

ArrayRanksList = objDicStars.Keys
ArrayStarsList = objDicStars.Items
ArrayKeysList = objDic.Keys
ArrayItemsList3 = objDic3.Items
ArrayItemsList11 = objDic11.Items
ArrayItemsList12 = objDic12.Items

'MsgBox ArrayKeysList(0)
'MsgBox ArrayItemsList3(0)
'MsgBox ArrayItemsList11(0)
'MsgBox ArrayItemsList12(0)
'MsgBox ArrayRanksList(0)
'MsgBox ArrayStarsList(0)
56今日も雲弧 ◆bKaGbR8Ka. :2008/03/18(火) 23:02:51
For i = 0 To objDic.Count - 1

If CSng(ArrayItemsList3(i)) >= UpTo_Soutou Then

strOldRank = ArrayItemsList11(i)
strOldMark = ArrayItemsList12(i)
objDic11.Item(strOldRank) = ArrayRanksList(0)
objDic12.Item(strOldMark) = ArrayStarsList(0)

MsgBox "昇進しました"
MsgBox ArrayRanksList(0)
MsgBox ArrayStarsList(0)
MsgBox objDic11.Item(ArrayItemsList11(i))
MsgBox objDic12.Item(ArrayItemsList12(i))

Else

MsgBox "あ"

End If

Next

57今日も雲弧 ◆bKaGbR8Ka. :2008/03/18(火) 23:03:50
strRank = ""
strRank = objDic11.Items

For m = 0 To objDic.Count - 1
strTemp = strTemp & strRank(m) &vbcr
Next

MsgBox strTemp
MsgBox objDic11.Item("今日も雲弧")
MsgBox objDic12.Item("今日も雲弧")

End Sub
58今日も雲弧 ◆bKaGbR8Ka. :2008/03/18(火) 23:05:10
>>54

申し訳ありません。必要最小限の部分すらわからないのです…。

59デフォルトの名無しさん:2008/03/19(水) 17:57:26
>58
ものには限度があるだろうよ。

あのコードを見て、本質ではないと思われる行が一行も思い当たらない程度のレベルなら、
何をどこから説明して良いのやら見当も付かないよ。
60デフォルトの名無しさん:2008/03/20(木) 01:34:51
すいません。質問です。
Windows xpのマシンにVB6はインストールできますか?
61デフォルトの名無しさん:2008/03/20(木) 01:44:20
Linuxマシンならインスコできます。
6214:2008/03/20(木) 03:42:03
>>48
いえいえ、
オブジェクト型の変数ってオブジェクトのインスタンスへの参照ですよ。
その話題くどいです。

>>60
できます。


で、本題は>>47の後半なんですけど
返事ないところを見るとオブジェクト型のインスタンス化とは違って
組み込み型には明確な名称ないのかな。

63デフォルトの名無しさん:2008/03/20(木) 10:26:34
>>62
質問の仕方からいって明らかに分かってないだろw
なにがくどいだよ。
っていうか君がいう「本題」からして全然わかってないじゃん。
変数そのものが占有するメモリに関して組み込み型とオブジェクト型の区別
なんてあるかよ。

「本題」について言えば、「VBプログラマの視点での呼称」なのか「VBコンパイラ作者の視点での呼称」
なのかをまずはっきりする必要があるだろう。

「インスタンス化」とはVBプログラマ視点の言い方のような気がするから、
これに対応する言い方ということなら「定義」じゃないの?

コンパイラ製作者の視点で「変数定義」の実装法の呼び方についていってるのなら
それはVB作ったMSの人にしかわからんのじゃないの。
それに変数のスコープによっても実装法は恐らく異なると思うけど
6460:2008/03/20(木) 11:26:51
>>62
ありがとうございます。
早速インストールしてみます。
6514:2008/03/20(木) 14:45:46
>>63
変数そのものが占有するメモリに関して組み込み型とオブジェクト型の区別
については
どうなんでしょうかね。
少なくともオブジェクト型、というか参照型については
宣言される時ではなく、初回利用時にインスタンス化するみたいですね。
で、組み込み型はどうなのか、というのが今回の話題ですね。
一応オチとしては「初回利用時かもしれない」というオチで落ち着きました。

参照型:インスタンス化
だとして
組み込み型:定義?
ですか?
なんか変な気が。。
66デフォルトの名無しさん:2008/03/20(木) 15:03:12
>>65
やっぱり全然分かってないね。
New付きで定義された変数について、初回利用時まで生成が遅延されるのは
インスタンスであって変数そのものではないだろう普通に考えて。

ちなみに「インスタンス化」という言葉が動詞だとして、それがとる目的語は
「クラス」または「型」であって「変数」じゃないと思うんだけど。
言い換えれば別に変数が「インスタンス化」されるわけじゃないぞ。
6714:2008/03/20(木) 16:41:10
>>66
New付きで定義された変数について、初回利用時まで生成が遅延されるのは
インスタンスであって変数そのものではないですよ。
当たり前です。
私がわかってない方が都合いいですか?
ならそれでいいです。
わかってません、すみません。
これについてはここで終了してください。

以下を知りたいです。
参照型に対して「インスタンス化」ならば、
組み込み型に対しては何でしょうか?
「定義」という答えを頂きましたが的を得ている気がしません。
他の人の意見聞かせてもらえませんか?
やはり定義で正解でしょうか?
68デフォルトの名無しさん:2008/03/20(木) 17:03:48
あーこいつどうしようもなく頭悪いなあ。。。
だから「参照型のインスタンス化に対応する組み込み型の概念は?」なんてのは
そもそも愚問なんだよ。そんなものはないんだから。

参照先が作られることを「インスタンス化」というのだから、
そもそも「参照先」という概念がないVBの組み込み型に対応する概念なんてあるわけないだろう。

そして変数そのもの作られるタイミングは組み込み型だろうが参照型だろうが
変わらないはずだ、と言っているのにこれも全然理解しようとしないなこの馬鹿。
69デフォルトの名無しさん:2008/03/20(木) 17:06:30
というかVB6以前って「参照型」っていう呼び方したっけ?
そういう呼称が導入されたのはドトネト以降で、VBでの呼び方は「オブジェクト型」
だったような気がしたけど。

まあこれに関しては説明の便宜かもしれないし、「参照型」と言った方が
呼び方として適切だと思うからいいんだけど。
70デフォルトの名無しさん:2008/03/20(木) 19:01:39
> 参照型に対して「インスタンス化」ならば、
いみがわかりません><
7114:2008/03/20(木) 19:14:36
>>69
しないと思います。
オブジェクト型で正解。
ご想像の通り説明の便宜です。

>>68
確かにこれは答えないかもしれませんね。
ここまで追求する問題でもないので質問取り下げます。
ありがとうございました。

>>70
言葉足らずですみません。


次の疑問がわきました。
先ほどVBには参照先という概念はないとお聞きしました。
本当ですか?
自分の意見は「ある」です。
Dim cls1 As Class1
Dim cls2 As Class1

Set cls1 = New Class1
cls1.s = "test"
Set cls2 = cls1
Debug.Print cls2.s

cls2の参照先はcls1のインスタンスです。
だから「ある」に一票。
72デフォルトの名無しさん:2008/03/20(木) 19:50:56
> 先ほどVBには参照先という概念はないとお聞きしました。
日本語ダメな人?
73デフォルトの名無しさん:2008/03/20(木) 20:47:37
>>71
クラスはドトネトでいう参照型/値型でいったら前者だよ。
だからNothingと比較できるる型の意味を君は理解してるか、と最初から言ってるでしょ。
7414:2008/03/20(木) 21:42:53
>>73
>クラスはドトネトでいう参照型/値型でいったら前者だよ
だーかーら
そんな当たり前のこと堂々といちいち書かない。
何が言いたいんですか?

それはさておき、
>>71についてどなたかご意見いただけるとありがたいです。
よろしくお願いします。
75デフォルトの名無しさん:2008/03/20(木) 21:45:13
VBに参照先の概念が無いなんて誰も言ってないだろ
完全に読み間違えてるよ
76デフォルトの名無しさん:2008/03/20(木) 22:08:29
>>74
75が指摘してくれてるけど>>68で「ない」と言っているのは
組み込み型の参照先だよ。

っていうか、君はその「当たり前」のことを全然理解してないのに
その自覚がないから馬鹿だっていうんだよ。
7714:2008/03/20(木) 23:10:50
>>75
なるほど。

参照先が作られることを「インスタンス化」というのだから、 そもそも
「参照先」という概念がないVBの組み込み型
に対応する概念なんてあるわけないだろう。

こう区切ればよかったんですね。
ありがとうございましたー。
78デフォルトの名無しさん:2008/03/20(木) 23:35:55
vsFlexGridのセルにに画像を表示させるにはどうしたらいいんですか?
7978:2008/03/21(金) 00:02:10
自己解決しました
80デフォルトの名無しさん:2008/03/21(金) 11:48:26
インスタンス化とは、オブジェクトの実体(インスタンス)を生成するプロセスのことを指す言葉。
これに対応する組み込み型の言葉は無い。しいて言うなら、アロケート(メモリ割付)か。
インスタンス化では、普通、メモリのアロケートとオブジェクトの初期化が行われる。
「オブジェクトの初期化」の中身は、言語によって異なる。

組み込み型の場合によく使われる「定義」という言葉は、「宣言」と対になる言葉。
英語では、definitionとdeclaration。普通は、前者はメモリのアロケートを伴う場合を指し、
後者は文字通り宣言のみを行う場合に使う。C/C++では、両者は明確に区別して語られる。
81デフォルトの名無しさん:2008/03/21(金) 11:51:53
蛇足:的は射るもの
82デフォルトの名無しさん:2008/03/21(金) 11:55:16
さて、ここでVBのヘルプを見てみると、

>Dim ステートメント
>変数を宣言し、メモリ領域を割り当てます。

と記述されている。素直に理解するなら、Dimステートメントが実行されたときにメモリが
アロケートされる、すなわち、Dimステートメントとは、変数「定義」だということになる。
83デフォルトの名無しさん:2008/03/21(金) 16:00:52
>15
がFAなんじゃねーの?
それが問題になるようなコードはVBで書くべきじゃないし、
書かなきゃならないならVBを使うのは間違いってことだよ。
8414:2008/03/23(日) 10:48:08
>>80
求めていた答えをいただけてすごくすっきりしました。
ありがとうございました。
8522:2008/03/23(日) 23:47:03
>>42
亀レス&言葉足らずですみません。最終的にはVista環境でもシフトJISで書き込みたいのですが
元来内部コードをUnicodeでもっているはずのVBで>>22のように書いたら
シフトJISになるわけが知りたかったので・・・。

>>45
有難うございます、面目ないです。参考になりました。
色々調べた結果ADODB.StreamやFileSystemObjectも使えそうなので
試行錯誤してみます。
86デフォルトの名無しさん:2008/03/23(日) 23:57:31
どうしても何も、VBが変換書けてるに決まってるでそ。
理由はUNICODEそのままで書いたら文句いう連中が
出るに決まってるから
87デフォルトの名無しさん:2008/03/24(月) 23:54:10
VB6.0を使っています。OSはWindowsXPSP2です。
他人のソースをコピーしてプログラムを作りました。
生成したEXEをエクスプローラで並べて表示にして見て見ると、ファイル名の下に薄い灰色で
作者名らしきものが表示されてしまいます。
プロジェクトのプロパティの「実行可能ファイルの作成」タブで
バージョン情報の中にある、コメント、会社名などの情報は全て消したのですが、
EXEを生成し、生成したEXEをエクスプローラで並べて表示にして見た時に、
ファイル名の下に薄い灰色で作者名らしきものが表示されてしまいます。
こういった付加情報を表示しなくするにはどうしたらよいのでしょうか?
88デフォルトの名無しさん:2008/03/25(火) 14:17:30
>>87 「他人のソースをコピーしてプログラムを作りました」
そもそも、これが間違いの始まり
89デフォルトの名無しさん:2008/03/25(火) 15:20:43
>87
なぜかF5では更新されないね。
別のフォルダを選択して元に戻ったら直らないかい?
9087:2008/03/25(火) 16:15:21
>>89
ご指示通り別のフォルダにexeを一度作成すると消えました。
ありがとうございました。
91デフォルトの名無しさん:2008/03/26(水) 16:22:26
Option Explicit

Sub zzz()
Dim hoge(3) As Variant
Dim hogehoge As Byte
Dim z As Byte

For z = 1 To 3
For hogehoge = 1 To 3
hoge(z) = Range("A" & hogehoge).Value
Next hogehoge
Next z
End Sub

上のようなコードで、zとhogehogeを同時に
インクリメントすることは可能でしょうか?
92デフォルトの名無しさん:2008/03/26(水) 16:52:47
「Next hogehoge」の前に
「z=z+1」を入れれば可能だけど
それは構成として間違ってるから

やりたいことを日本語で整理して、
それから考えた方がいいと思うよ。
93デフォルトの名無しさん:2008/03/26(水) 17:35:03
おk
94デフォルトの名無しさん:2008/03/26(水) 19:15:36
zいらんやん
95デフォルトの名無しさん:2008/03/26(水) 22:21:41
VB6.0でZipファイルを圧縮する処理をVBSで作成しBatで起動するように
したのですが、なぜか1回だけZipと変な拡張子ないデータが作られ
12ファイルの内9ファイルしか圧縮されていませんでした。(原因不明)
そこでZipファイルの中身の件数のみを数えて数があっていれば圧縮を
正常に終了したとみなしたいのですが、可能でしょうか?
全て解凍すると時間がかかりますのでお願いいたします。
ちなみにvbsで起動したのはdllを使わないで圧縮ができたからです。
よろしくお願いいたします
96デフォルトの名無しさん:2008/03/26(水) 22:29:24
日本語で話してくれないか?
97デフォルトの名無しさん:2008/03/26(水) 23:28:04
そのうまくいかない原因を究明するほうがいいと思うぞ。
急がば回れって言うし。

あと、VBSでできるんだったら、VB6でも全く同じようにできる。
せいぜいWScriptオブジェクトがないくらい。
9895:2008/03/27(木) 01:30:19
>>96
すいません
>>97
VBSはネットでフリーであったのでそれを使用しました。ゆえにVBへの記述方法
がまったくわかりません。
(検索はしましたがVB VBSやVB6.0 VBSなど)VBSとVBがかぶっているからか変換の方法が見当たりませんでした。
原因が現在わからないので困っています。今回初めて不具合が出たもので。
>>96
ファイルを圧縮するVBSをbatで動かします。そのbatはVBで作成しています。
作成したbatの起動も同じVBでしています。
batでは以下の記述をしています
CD VBSのパス
CScript.exe MakeZIP.VBS ZIPファイルのパスと名前 圧縮するtxtのパスと名前1 圧縮するtxtのパスと名前2 …
exit
ですこれをshellで起動しています。
しかし今回作成されたzipファイルには後ろに記述していた11ファイルの内9ファイルしか
圧縮されておらず。残りの2ファイルはzipファイル内に存在しませんでした。(zipファイルと同じフォルダに拡張子のないファイルが1つ作成されてました)
ファイル名が長いわけでも、特殊文字が使われているわけでもありません(パスも同じです)
そこで、圧縮が正常にできているかを判断したいと考えました
その方法として圧縮したファイル件数を調べることができないかを考えました。
よろしくお願いいたします
99デフォルトの名無しさん:2008/03/27(木) 01:35:38
>>98
VBSはVBのサブセットなんだから、VBS→VBは
変換なんて考えなくても、そのまま一字一句変えずに使えると思ってもいいくらい。
まずは試してみたか?
100デフォルトの名無しさん:2008/03/27(木) 01:38:53
コマンドラインの文字長には制限があったような気がするけど?
101デフォルトの名無しさん:2008/03/27(木) 12:37:36
1ファイルずつ追加していけば
102デフォルトの名無しさん:2008/03/27(木) 19:21:07
VBAのサンプルでも使えばよかろう
10395:2008/03/27(木) 22:49:35
レスありがとうございます。
>>99
はじめにfunctionを入れてみましたがいまいちどう起動したら
よいのかわからずに挫折しました。(標準モジュールに追加?)
>>100
まったく同じデータ(パス)で行っています。
104デフォルトの名無しさん:2008/03/27(木) 23:15:08
>>103
コマンドラインの文字長制限はそう言う意味じゃないよ

>CScript.exe MakeZIP.VBS ZIPファイルのパスと名前 圧縮するtxtのパスと名前1 圧縮するtxtのパスと名前2 …

とあるけど、例えば

CScript.exe MakeZIP.VBS c:\dirnameA\dirnameB\dirnameC\dirnameD\dirnameE\dirnameF\dirnameG\ZIPFile.zip c:\dirnameA\dirnameB\dirnameC\dirnameD\dirnameE\1.txt c:\dirnameA\dirnameB\dirnameC\dirnameD\dirnameE\2.txt (12.txtまで同じ事を繰り返す)

↑のような長ったらしいパスで使ってるなら途中で途切れて当たり前

CScript.exe MakeZIP.VBS c:\ZIPFile.zip c:\1.txt c:\2.txt (12.txtまで同じ事を繰り返す)

にしたら行けるかもしれない。それでも長いから途切れるもしれない
「CScript.exe」の後ろに続く部分が長すぎると途中で切れるってこと

よく送るメニューに入れて使うソフトがあるけどあれもたくさんのファイル(例えばWindowsフォルダに存在する全てのファイルとフォルダ)を選んで送るってやると
「指定したデバイス、パス、またはファイルにアクセスできません。適切なアクセス許可がない可能性があります。」
というエラーが出る。仕様だからこれは回避できない
105デフォルトの名無しさん:2008/03/28(金) 21:10:22
16進数のカラーコードを赤・緑・青の3要素に分解するにはどうすればいいの?
例えばボタンの表面のデフォルトカラーって「&H8000000F&」だけど、これをRGB
に分ける方法ってある?
要はRGB関数の逆をやりたいんだけど。。。
10695:2008/03/28(金) 23:56:20
>>104
ありがとうございます
今回その症状がまた出たので報告します
今回は9→11→11→11と12個全部をどうしても圧縮してくれませんでした。
104さんが言うように文字が切れているというのでしたら
最後に記述したパス(txt)が含まれないはずです。しかし
含まれていないデータは真ん中に記述されていました。
また作成したバッチを手起動すると12個全てが圧縮されました。
このことからshell関数がおかしな動作をしていると思うのですが
書き方は
ret1=shell("CScript.exe MakeZIP.VBS c:\ZIPFile.zip c:\1.txt… ",1)
ShellEnd (ret1)
で標準モジュールで
ttp://hanatyan.sakura.ne.jp/vbhlp/tap_PrgEnd.htm
に書いてある文章を
private→public
に変更して書いています。
変更の仕方がまずかったのでしょうか?
VB6.0 SP3 ですよろしくお願いいたします
107デフォルトの名無しさん:2008/03/28(金) 23:57:10
小学校の算数だろそんなの。。

VBの場合、どうせ共用体もポインタも使えないんだから演算で求める方法を考えてみ。

まず十進数で考えてみてみ。
君は6ケタの数字の上位2ケタを取り出す方法がわからんの?
10,000で割った商を求めるだけだろ。
Hexだって同じことじゃん。
108デフォルトの名無しさん:2008/03/29(土) 00:00:00
>>105
っていうかこれRGBの値じゃないだろう>「&H8000000F&」
109デフォルトの名無しさん:2008/03/29(土) 01:14:20
>>105
RGBの分解方法はヘルプに載ってる。
&H8000000F&はシステムカラーの番号であって、RGB値ではない。
110デフォルトの名無しさん:2008/03/29(土) 03:08:18
>>106
エラーが出てんじゃないの?
WScript.exeで実行してみ
ていうかなんでCScript.exeなの?
11195:2008/03/29(土) 07:43:58
>>109
MakeZIP.VBS
の初めにそのような記述があったのでそのまま使用しています。
ありがとうございます。変更してやってみます
112デフォルトの名無しさん:2008/03/29(土) 09:50:53
>>109
レスありがとうございます。
確かにRGB値だったら16進6桁だと思っていたのでおかしいなとは思っていたのです。
ただ薄い水色(&H00FFFFC0&)だとRを192(=C0)、GとBを255(=FF)としてRGB関数を
呼び出すとちゃんと薄い水色になるので対応しているように思えたのです。
とりあえずWEBでシステムカラー値とRGB値の対応表を探してみますね。。。(-_-)
113デフォルトの名無しさん:2008/03/29(土) 10:10:48
システムカラーは固定色じゃないが
114デフォルトの名無しさん:2008/03/29(土) 13:54:20
115112:2008/03/29(土) 21:36:43
>>114
これです!まさにこれ!
ありがとうございます。マジで助かりました!。・゚・(ノД`)・゚・。
116デフォルトの名無しさん:2008/03/30(日) 11:06:40
>>105

Red = RGB値 And &h0000FF
Green = ( RGB値 And &h00FF00 ) \ 256
Blue = ( RGB値 And &hFF0000 ) \ 65536

だった気がする
117デフォルトの名無しさん:2008/04/02(水) 21:21:58
VB6でのコードの書き方で質問があります。

If hoge = 1 then
  i = i+1
End if

というふうに複数行で書くのと、

If hoge = 1 then:i=i+1

というふうに1行で書くのとでは多少でも処理の速度は変わりますか?
118デフォルトの名無しさん:2008/04/02(水) 21:28:33
そりゃあインタプリタの時代だったらかわったけどさ
EXEで同じコードが吐かれれば速度は同じさ
119デフォルトの名無しさん:2008/04/02(水) 21:31:09
>>117
最適化で同じ処理になると思います。
間違ってたら他の人指摘お願いします。
120デフォルトの名無しさん:2008/04/02(水) 21:53:38
>>118,119

なるほどコンパイルすると結果は同じなのですか、
ありがとうございました。
121デフォルトの名無しさん:2008/04/03(木) 20:42:26
WinXP,Vistaではウィンドウのタイトルに
「abcdefg」のように表示されている物が
なぜか2000環境で実行すると
「ABCDE~~」のように化けてしまいます。
なぜでしょうか?
実行ファイルの横にランタイムも配置しているので
環境でおかしくなるとは思ってなかったんですが。
122デフォルトの名無しさん:2008/04/03(木) 20:57:09
>実行ファイルの横にランタイムも配置している

Sidebyside COMのこと?
123121:2008/04/03(木) 21:23:24
>>122
表現が悪かったです。
実行ファイルの配置してある階層に
msvbvm60.dllや、VB6JP.DLLなど、
VB6ランタイムを一通り置いています。
こうすることでランタイムをシステムから読み込ませないようにするためです。
124デフォルトの名無しさん:2008/04/03(木) 21:23:37
>>121
VBランタイムの言語DLL(VB6JP.dllだったかな)は
「読み込まれた」MSVBVM60.dllと同じフォルダにないといけない。
システムフォルダのが読まれてるんじゃない?
125デフォルトの名無しさん:2008/04/03(木) 21:23:44
ブラウザのリンクをドラッグして処理を行いたいんですけど、
OLEDragDropイベントでDataの中を見てみると
「データの形式が一致しません」エラーが発生します。
リンク先の情報をVBで取得するにはどうすればいいのでしょうか?
126デフォルトの名無しさん:2008/04/03(木) 21:34:21
>>125
もしかしてfiles見てる?

リンクはテキストだぞ。GetFormatとGetDataしてみ。
127デフォルトの名無しさん:2008/04/03(木) 21:42:16
>>123
っていうかどう見ても馬鹿で不勉強なんだからベタにディストリビューションウィザード使えよ。

エンジンの仕組みを理解してもいない、するつもりもない奴が「俺様チューニング」
ぶっこいて動きませんって馬鹿も休み休み言えよ。
128121:2008/04/03(木) 21:54:57
>>127
「ディストリビューションウィザード」って実行環境に作ったソフトを
インストールできる環境で利用可能なものですよね?
ネットワークフォルダから実行するため今回は利用していません。
もしかして勘違いしていますか?
129デフォルトの名無しさん:2008/04/03(木) 22:08:01
>>128
煽り合いもいいが、先にやることあるだろw
130121:2008/04/03(木) 22:14:37
>>129
いや、もし他に方法あるんなら純粋に知りたかったので伺いました。
悪意なんてないです。

>>124
そういう意味ではmsvbvm60.dllも実行ファイルと同じ階層に配置してるので
大丈夫、、、と思ってるのですが。
でも文字がおかしくなるのでシステムから読まれているとも考えられますね。
だとしたらなんでなんでしょうか。
131デフォルトの名無しさん:2008/04/03(木) 22:18:25
>>128
勘違いしてるのはお前さんだろアホか
132121:2008/04/03(木) 22:20:15
>>131
そうなんですか?
勘違いを指摘してもらえるとスキルあがりますので
それはそれでありがたいのですけど。。
133デフォルトの名無しさん:2008/04/03(木) 22:33:52
>>130
ちなみに両方とも俺(124=129)だがw

Windowsは基本的に同じDLLは2度と読まない。(無駄だから)
なので、先に読まれてるDLLがあればそれを再利用する。
(たとえアプリと同じフォルダに同じDLLがあってもだ)

さらに、Win2000は確か読み込むDLLの優先度をアプリと同じフォルダか
システムフォルダかを選択出来る設定があったはず。
それらをお前さんがそれらを把握してないならそれが理由な可能性が高い。
把握してるなら先にMSVBVM60.dllを使うアプリが起動してるからだろう。

あとね、煽り合いする暇があるなら俺の助言をちゃんと考えろよな。
直接的な答えが出せないからあーいう受け答えになってんだろうけども、
煽りもある意味助言だぜ?
134121:2008/04/03(木) 23:24:03
>>133
すみません、
実は単純に>>128の時点で>>124を見落としてたんですよね。。


なるほど。
>Windowsは基本的に同じDLLは2度と読まない。
これは知ってました。
>なので、先に読まれてるDLLがあればそれを再利用する。
これも知ってました、が、
今回の件と脳内でリンクしていませんでした。
ということで当然>>121の動作は予想できるあり得る動作ですね。
対処方法はOSの設定変更、もしくはインストーラー等で
システムにDLLを組み込むことですね。
納得しました、ありがとうございます。
135デフォルトの名無しさん:2008/04/04(金) 00:13:50
>>133
その性質はKnownDllsに限られるはず。
136デフォルトの名無しさん:2008/04/05(土) 12:47:35
VBで作られたもので有名なのって
なんかありますか(^^)
137デフォルトの名無しさん:2008/04/05(土) 13:14:19
138デフォルトの名無しさん:2008/04/05(土) 19:08:57
板違いでしたらご容赦を。
http://homepage1.nifty.com/taka_homepage/download.htm にある#1 -End Of Destiny-
をしていたところ、今日になって「実行時エラー'5':プロシージャの呼び出し、または引数が不正です。」
と出て起動できなくなってしまいました。

検索をかけてみるとhttp://support.microsoft.com/kb/811469/ja がでてきたので
互換モードにしてみたのですが解決せず。新しく落としなおしても、保存したフォルダの
置き場所を変えても効果なしでした。

VB製ソフトの現象のようなのでここで質問させていただきました。よろしくです。
139デフォルトの名無しさん:2008/04/06(日) 01:30:19
>>137
ありがとう。
最近からVB始めたんで色々コードを見てみたいんです。
140デフォルトの名無しさん:2008/04/06(日) 08:11:15
>>138
最小化してプログラムを終了すると次回起動したときに
実行時エラーになるね。

たぶん単純なプログラムミスだと思う。
作者にメールしてみるといいよ。
141デフォルトの名無しさん:2008/04/06(日) 19:38:15
>>140
レスどうもです。
自分でできる解決策というのは何かないのでしょうか?
作者は恐らく新作とかで忙しいでしょうし、試しに2作目もやってみたところ同じエラーが出たので
修正も煩雑になりそうですし。

最小化して終了した記憶はないのですが、ウィザードリィ風ゲームなので強制終了は
何度もさせました。
142デフォルトの名無しさん:2008/04/06(日) 22:49:07
>>141
レジストリから画面サイズや座標なんかの読み込みで落ちてるとか?
消すか標準値に書き直せばいけそうな気がする
143デフォルトの名無しさん:2008/04/07(月) 07:58:48
VB参考書4冊セット
http://auction.item.rakuten.co.jp/10232889/a/10000193
これだけそろってれば完璧かな?
144デフォルトの名無しさん:2008/04/07(月) 08:06:01
>142
おそらくそんな感じ

>141
自分で解決したいのだったら Regmon で、どのレジストリを使ってるか
監視してみるといい
http://cowscorpion.com/Registry/Regmon.html
145デフォルトの名無しさん:2008/04/07(月) 09:54:34
>>142
適当にレジストリを見てると、LeftとTopという項目(画面位置?)が-48000などと
変な数字になってたので一度消してみたところ起動することができました。
どうもありがとうございます。

>>144
これでログとると不要なレジストリとか消せそうですね。
今度何かあった時に使ってみます。ありがとうございます。
146デフォルトの名無しさん:2008/04/08(火) 21:44:43
>>95さんと同じような内容なんですが(検索してたらここにきました)、
自分はMakeZIPをVB6に組み込んで使用しています。
しかし、どうしてもZIPファイルの中身を確認する方法が見当たりません。
確認したいことは圧縮されているファイル数です。
ほかにもサイズ、名前などがわかればベストなのですが
どなたか方法を知ってる方はここにはおられませんか?
147デフォルトの名無しさん:2008/04/08(火) 21:57:21
VB6なら、メジャーなzipを扱えるdll使えよ
148デフォルトの名無しさん:2008/04/08(火) 22:02:48
シェルで、zipを圧縮フォルダとして使えるようになっている環境なら、それも使える。
149デフォルトの名無しさん:2008/04/08(火) 22:27:11
正直InfoZipあたりのzip.exe/unzip.exeでも付属させて
コマンドライン叩いたほがいいんじゃないかっておもう。
150デフォルトの名無しさん:2008/04/08(火) 22:50:17
exeキックだと、コールバック使えないじゃん・・・
151デフォルトの名無しさん:2008/04/08(火) 23:27:16
パイプ経由でコールバックもらえばええやん。
152デフォルトの名無しさん:2008/04/09(水) 11:25:15
それ、コールバックって言わないし
153デフォルトの名無しさん:2008/04/09(水) 12:30:34
>>146
ExtractZip.vbs 読め。
154デフォルトの名無しさん:2008/04/09(水) 14:17:21
ListZip.vbs 読め。
と言っても読めるくらいなら来ないよな?
155デフォルトの名無しさん:2008/04/09(水) 16:00:41
パイプ経由でライトバックもらえばええやん。
156デフォルトの名無しさん:2008/04/09(水) 16:04:30
俺用語は使わないでね
157デフォルトの名無しさん:2008/04/09(水) 16:06:49
筒経由で書き戻しもらえばええやん。
158デフォルトの名無しさん:2008/04/09(水) 16:34:36
マジレスすると、unzip32.dll使え。
VBのコードも付いてる。
商用利用可。
159146:2008/04/09(水) 22:56:57
皆さんありがとうございます。
ListZip.vbs これでできたのですね。ありがとうございます。
しかし、これをVB6で使用できるようにできません(涙)
どこかに標準モジュールないのでしょうか?
160デフォルトの名無しさん:2008/04/09(水) 23:37:46
アホかおまえは。
普通にDLL使え。
161デフォルトの名無しさん:2008/04/10(木) 00:19:24
>>117
ついでですがThenの後ろのコロンは要らないです。

>>159
VBSから標準モジュールやクラスモジュールへの移植は
そう難しくないと思います。
162デフォルトの名無しさん:2008/04/10(木) 01:07:07
なにこいつ
163デフォルトの名無しさん:2008/04/10(木) 11:34:25
あほちゃいますか?
164デフォルトの名無しさん:2008/04/10(木) 11:57:45
165デフォルトの名無しさん:2008/04/10(木) 11:58:36
だーかーらー、DLL使えって!!!
166デフォルトの名無しさん:2008/04/10(木) 12:29:51
足し算できないやつに積分教えるようなものだ
やめとけ
167デフォルトの名無しさん:2008/04/10(木) 12:57:35
VB6でグローバル変数を使わず、すべての関数をカプセル化することは可能でしょうか?
168デフォルトの名無しさん:2008/04/10(木) 13:05:01
できるよ。Formがグローバルなのに目をつぶればね。
169デフォルトの名無しさん:2008/04/10(木) 15:58:13
複数ののCheckboxを使って、optionbuttonみたいな交互動作てできませんか?
170デフォルトの名無しさん:2008/04/10(木) 18:39:27
アプリを終了してもアプリ自体がタスクに残る不具合が発生しています。
再発条件は不明ですが、不具合発生した環境があれば原因追求をどのようにするのが効率的でしょうか?
御教授のほどよろしくお願いします。
171デフォルトの名無しさん:2008/04/10(木) 19:05:19
テキストボックスに16進数の文字がある場合
それを変数に数値として代入するにはどうすればいいですか?
valやConvert関数では出来ませんでした

例 テキストボックスの文字 = 0x1234 (十進数:4660) -> 数値に変換して変数に代入 -> 4660 (数値変数)
172デフォルトの名無しさん:2008/04/10(木) 19:10:00
>>170
自分でFormの変数宣言しないで、VBが用意してるForm1とかそのまま使ってるんじゃね?
あれってプロパティにアクセスしたりすると自動的にロードされるから、
たぶん終了直前に何らかのプロパティにアクセスして再ロードされたフォームがある
OnLoadでブレイクでも入れておけば分かるんじゃないかね
もう一つ考えられるのがオブジェクト同士の循環参照だね
173デフォルトの名無しさん:2008/04/10(木) 19:12:20
>>171
頭に&HつけてValしろ
174デフォルトの名無しさん:2008/04/10(木) 20:36:53
なにこれ?
新人みたいなアホな問いばかりじゃないか。


>>169
余裕で出来るけど?
それが何か?

>>170
終了ボタンを押して終了した気になってる系かね。
Unloadイベント中に何か別のFormなり何なり生成してないかい?

>>171
人に聞く前にMSDNくらい一人で見ようぜ。
175デフォルトの名無しさん:2008/04/10(木) 20:49:33
>>173-174
それが、
0x12345678 のような 4桁以上の16進数だと型オーバーで変換が出来ません
MSDNのヘルプ見てもDouble型までが限界のようです
Long型のような8桁くらいの文字(16進)を数値に変換するのにはどうすればいいのかヘルプ見ながら悩んでます
176デフォルトの名無しさん:2008/04/10(木) 20:59:50
>>175
どうせそんなレベルならVB6みたいな終わってる開発環境使う意味ないだろw
まあLongの型指定文字を調べてみることだね。
177デフォルトの名無しさん:2008/04/10(木) 21:00:11
>>175
文字列右から4文字ずつ区切ってvalして、最後にシフトするのはどうですか?
178デフォルトの名無しさん:2008/04/10(木) 21:18:11
>>176-177
CLngという型指定で変換出来ました
どうもありがとう
179デフォルトの名無しさん:2008/04/11(金) 00:18:50
>>172
タスクマネージャーでメモリ使用量を確認していると、
各イベント(フォーム起動→終了→以下繰り返し等)を起動するたびに使用メモリが増加していきます。
循環参照の現象でしょうか?
180デフォルトの名無しさん:2008/04/11(金) 00:51:38
>>179
循環参照って何のことだか理解してる?

>>172 に書いてある
>OnLoadでブレイクでも入れておけば分かるんじゃないかね

を実行してなさそうな文章なんだけどやったの?
181デフォルトの名無しさん:2008/04/11(金) 03:06:23
プログラム板は当たりがきついな
182デフォルトの名無しさん:2008/04/11(金) 03:09:23
>>179

>>172
> タスクマネージャーでメモリ使用量を確認していると、
> 各イベント(フォーム起動→終了→以下繰り返し等)を起動するたびに使用メモリが増加していきます。

解放してないから
183デフォルトの名無しさん:2008/04/11(金) 03:09:56
>>181
おしえてぐーなら優しいけどな
あと2ちゃんでも女子中学生にはやさしいよ
184デフォルトの名無しさん:2008/04/11(金) 06:46:11
つ「Unload Me」
185デフォルトの名無しさん:2008/04/11(金) 10:46:53
Using src As New FileStream(srcName, FileMode.Open, FileAccess.Read)
While True
readSize = src.Read(buf, 0, BUFSIZE) ' 読み込み
If readSize = 0 Then
MsgBox("HIT=" & hval)
Exit While ' コピー完了
End If
End While
End Using

このコードでファイル操作の処理をすると
読み込み開始から終了までのあいだフォーム全体が操作不能になります
読み込み処理中でもボタン等の操作を可能にするにはどうすればいいでしょうか?
中断ボタンを作ってあるのですが操作不能になって機能しません
186デフォルトの名無しさん:2008/04/11(金) 14:44:14

Visual Basic Version 5.0 Control Creation Edition
http://pc11.2ch.net/test/read.cgi/tech/1204552981/18

ふと思ったんだが、↑これと↓これ組み合わせて.EXEファイルを作ることできるのだろうか?

Microsoft Visual C++ Toolkit 2003
http://pc11.2ch.net/test/read.cgi/tech/1109618655/
187デフォルトの名無しさん:2008/04/11(金) 17:54:26
上でDLL (OCX)作って、下でそれを使うEXE作るってことは可能だろうね。
そもそもなぜ今更VC++ 2003?
事情がなければ2005でも2008でも使えばいいだろうに。
188デフォルトの名無しさん:2008/04/11(金) 19:00:08
>>185
つ「DoEvents」
189デフォルトの名無しさん:2008/04/12(土) 20:13:12
ComboBoxでリストから項目が選択してドロップダウン部分が消えた瞬間に任意のコードを実行したいのですが
DropDownClosedやSelectionChangeCommitted
その他のそれらしいイベントを設定しても
選択→ドロップダウンが消える→再度選択
としないとそのコードが実行されません

どのイベントを設定すればいいでしょうか?
190デフォルトの名無しさん:2008/04/13(日) 10:23:58
Click
191デフォルトの名無しさん:2008/04/13(日) 10:45:44
SAVEデータのようにバイナリデータとShift_JISの文字列が混在するファイルの
文字列部分を編集して書き戻したいのですが

Dim FreeNum as Integer
Dim Bin1() as Byte , Bin2() as Byte
Dim strRes as String

FreeNum=FreeFile
Open hoge.bin For Binary As #FreeNum
Get #FreeNum, , Bin1
Close #FreeNum
strRes = StrConv(Bin1,vbUnicode)

'本来ここでstrResを編集する

Bin2=StrConv(strRes,vbFromUnicode)

とした時にBin2はBin1を再現せず、バイナリデータの部分が変わってしまいます。
通常このような操作を行う場合はどのようにすれば良いのでしょうか?
お力を貸して下さい。
192デフォルトの名無しさん:2008/04/13(日) 18:48:40
>>191
それはShiftJISにしたときのバイト数えて詰め物したりでかなり面倒くさい。
結局Cランタイムのfopen系の関数をラップしたActiveXを作ってそれで読み書きさせた。
193デフォルトの名無しさん:2008/04/13(日) 19:14:58
リストボックスで選択した場所から下の項目を削除したいのですが
下のプログラムだとindexエラーが出てうまくいきません

For i = ListBox1.SelectedIndex  To ListBox1.Items.Count - 1
ListBox1.Items.RemoveAt(i)
Next

どう対処すればいいでしょうか?
194デフォルトの名無しさん:2008/04/13(日) 19:17:44
後ろから削っていくとか。
195デフォルトの名無しさん:2008/04/13(日) 19:26:36
デバッグして確認したときそれぞれの値が
ListBox1.SelectedIndex=2
ListBox1.Items.Count=8  (項目数=3)
となっていて

その状態で>>193のFOR文を実行すると i の値が2,3,4,5,6,7 とステップして
ListBox1.Items.RemoveAt(i) で最後の項目まで問題なく削除出来ると思うのですが
どういう訳かエラーになります
196デフォルトの名無しさん:2008/04/13(日) 19:28:34
>>195 修正
× (項目数=3)
○ (項目数=7)
197デフォルトの名無しさん:2008/04/13(日) 19:33:24
どういう訳かも何も、たとえばRemoveAt(10)を実行した時点で
いままでItems(11)だった奴がItems(10)に繰り上がるわけだが
198デフォルトの名無しさん:2008/04/13(日) 20:00:32
>>197
当たり前のことすら理解出来てない人に
答えを教えてくれてありがとうございます
無事ちゃんと動作するコードに出来ました
199デフォルトの名無しさん:2008/04/13(日) 22:11:10
1年半後に登場するWindows7にはVB6ランタイムはサポートされますか?
200デフォルトの名無しさん:2008/04/13(日) 22:59:27
知らんがな(´・ω・`)
201デフォルトの名無しさん:2008/04/14(月) 17:37:40
VB6でPublicの構造体・変数の宣言可能な数(容量?)ってどの位か解りませんか?
202デフォルトの名無しさん:2008/04/15(火) 12:38:32
VS2008のVBでラベルの背景を透明化するにはどうすればいいですか?
label1.BackColor = Color.Transparent
では出来なかったです
203デフォルトの名無しさん:2008/04/15(火) 13:34:38
>>202
スレタイ読めますか?
204デフォルトの名無しさん:2008/04/15(火) 23:42:02
>>201
そんなのあるんですか?
205デフォルトの名無しさん:2008/04/16(水) 10:14:31
ループする処理の中にあるIF文をSelect文にしたら処理が倍以上かかるようになったんですが
これはどうしようもないことですか?
206デフォルトの名無しさん:2008/04/16(水) 11:32:45
>>205
条件文がわからんから、「そんなもn」としか答えようが無い。
207デフォルトの名無しさん:2008/04/17(木) 08:12:15
>>205
Selectを使うな。
Excelとのやりとりは速度が遅くなる。
Withを使うか、まとめて配列に代入してから配列を扱え。
208デフォルトの名無しさん:2008/04/17(木) 19:13:52
>>204
よほどの事が無い限り、まず制限を超える事は無いと思いますが有りました。
(コンパイル時にメモリー不足と出る)
209デフォルトの名無しさん:2008/04/17(木) 20:06:02
>>208
そりゃ単にメモリ増設すりゃ回避できるんじゃないか?
210デフォルトの名無しさん:2008/04/17(木) 20:26:21
>>209
2GB以上アロケートできないとかないのかね?
211デフォルトの名無しさん:2008/04/17(木) 22:35:50
ループ処理中に何かボタンおされたらループから抜けるプログラムを作りたいのですが
そのボタンのsubではない 違うSub内で
コントロール上のどのボタンが押されたのかを検出する方法ってありますか?
212デフォルトの名無しさん:2008/04/17(木) 22:55:24
>>211
ループ処理の中でDoEventsと終了フラグのチェックを頻繁にやるしかない。
DoEventsを使うときは再入やら予定外の動作をはじくようにする必要がある。
213デフォルトの名無しさん:2008/04/18(金) 12:23:30
昔、だれかが作ったソフトのメンテしてたら
フォームに貼り付けたコントロールの数がオーバーしてこれ以上追加できない
という状況になったときに、泣いたことはあるなw
214デフォルトの名無しさん:2008/04/18(金) 14:24:41
メンテだと設計方針が間違っていようが、そのまま行かざるを得ないときもあるから辛いな
215デフォルトの名無しさん:2008/04/19(土) 22:13:21
FileCopyでファイルコピーするとshift-jisで書き出したファイルがUTF-8になってしまうのですが
対象方はありますか?
216デフォルトの名無しさん:2008/04/21(月) 21:51:25
VBからExcelに値を貼り付けてプレビュー表示をする処理にて
処理中は見えないようにするためVisibleをFalseにするのですが、
EXEファイルから起動するとVisibleをFalseにした段階で最背面に表示されてしますいます。

Visual Basicから起動するとプレビュー画面が最前面に表示されるのですが何故でしょう?

使っているコンポーネントはQuickPack、Farpoint SpreadSheet、InputMan Proです。

今まで別な環境で作った際はこんな現象になったことはありません。
同じコンポーネントを使っている方で克服した方はおりますか?

ちなみにSetWindowPos等使わないで済ませたいです。

途中ダイアログを表示したりメッセージボックスを表示させたりするので
Visual Basicで起動しているときと同じ用途で実現させたいのです。

ちょっと分かりにくいかも知れませんが宜しくお願い致します。
217デフォルトの名無しさん:2008/04/21(月) 22:11:38
コピペ君って馬鹿だな、まで読んだ。
218デフォルトの名無しさん:2008/04/22(火) 10:32:51
vb6の評価版使ってて、exeにできないんですが、
vb6.0安く売ってるところないですか?
219デフォルトの名無しさん:2008/04/22(火) 12:38:09
>>218
なんで今時VB6?
220デフォルトの名無しさん:2008/04/22(火) 12:56:29
>>219
だよねぇ。

Visual Basic 2008 Express がタダで手に入るこのご時世に。
221デフォルトの名無しさん:2008/04/22(火) 15:26:39
ツールバーのアイコンを大きくしてメニュー名をアイコンの下に表示させたいのですが、
どうすればいいのでしょうか?
222デフォルトの名無しさん:2008/04/23(水) 01:40:48
>>220
それってVB6のOCXの開発ライセンスキーが付いてる?
223デフォルトの名無しさん:2008/04/23(水) 13:32:21
>>222
お前は何を言っているんだ
224デフォルトの名無しさん:2008/04/23(水) 14:26:17
>>219
なんでVB(6.0以前)スレに居るの?
225デフォルトの名無しさん:2008/04/23(水) 15:13:16
>>223
お前は何を聞いているんだ
226デフォルトの名無しさん:2008/04/23(水) 18:07:06
VB6で立方メートルの単位(m3)のように右上に数字を乗せる方法はないでしょうか?
またはキーワードだけでも教えていただけないでしょうか?
227デフォルトの名無しさん:2008/04/23(水) 19:43:53
>>226
ラベルで貼っちゃダメなの・・・?
228デフォルトの名無しさん:2008/04/23(水) 20:01:01
>>227
通常はラベルで代用するものなのでしょうか?
229デフォルトの名無しさん:2008/04/23(水) 20:22:32
ブラウザとかリッチエディットでそういう書式指定って方法も思いつく。
ほかにもUnicodeに対応していればm³や㎥って文字が使える。
230デフォルトの名無しさん:2008/04/23(水) 22:17:56
brwWebBrowserで取得したものを
htmlかテキストにして文字変数に格納する方法ないですか?
231デフォルトの名無しさん:2008/04/23(水) 23:18:41
>218
現在VB6を新規に入手する方法はMSDNに入るしかない。

>226
上付きの3はISO 8859-1/15の0xB3にあるが…UnicodeでもU+00B3だな。
232230:2008/04/23(水) 23:29:47
Text1.Text = Inet1.OpenURL(brwWebBrowser.LocationURL)
で取得できましたが 文字バケのようになり日本語で表示されません。
フォントは明朝に設定したのですが。
233230:2008/04/24(木) 00:41:02
RichTextBox1.Text = brwWebBrowser.Document.body.innertext
これで一応できましたが
普通のTextBoxは日本語ダメでしたっけ?
234デフォルトの名無しさん:2008/04/24(木) 01:34:10
Text1.Text = brwWebBrowser.Document.body.innertext
235デフォルトの名無しさん:2008/04/24(木) 10:25:48
VBのMAPIでメールを操作したいのですが
IDやPASSの設定はサンプルにのってるのですが
POP3等の設定がのっていません。
Outlookの設定に依存してるのでしょうか?

POP3設定のキーワードを教えてください。
236230:2008/04/24(木) 13:46:15
Text = WebBrowser1.Document.body.innertext
これで数百行あるものを読み込むと200行ちょっとまでしかとれてないようですが・・・
行制限があるんでしょうか?
237デフォルトの名無しさん:2008/04/24(木) 14:02:43
読み終わってからにしろよ早漏
238230:2008/04/24(木) 14:33:54
なるほど。
239デフォルトの名無しさん:2008/04/25(金) 10:12:47
指定ファイル(テキストやCSV)の行数を取得する良い方法はありますか?

     Dim i As Integer = 0
     Dim sr As New System.IO.StreamReader("C:\1.csv", System.Text.Encoding.Default)
      Do Until sr.Peek() = -1
        sr.ReadLine()
        i+=1
    Loop
    sr.Close()

今のところこの方法しか思い浮かびません
もっと簡潔な方法があれば教えて下さい
240デフォルトの名無しさん:2008/04/25(金) 10:31:59
何を指して良い方法と言っているのだ?
時間?効率?ソースの短さ?exeのバイト数?
241デフォルトの名無しさん:2008/04/25(金) 10:38:24
>>240
私が思う良い方法とはコードの短さです
今のところ>>239以外には他に思いつかなくて
242デフォルトの名無しさん:2008/04/25(金) 11:04:19
コードの短さか


そんなクソの役にもたたねえ事にこだわるな!
243デフォルトの名無しさん:2008/04/25(金) 13:16:01
>>239
とりあえずスレチだと思うのだが。
それ.NETだろ?


まぁ行数取得ならFileSystemObjectだったかTextStreamだったか忘れたが
1行で取得する処理書くこと出来るよ。

ググってみ?
244デフォルトの名無しさん:2008/04/25(金) 14:45:05
VB6(SP6)です
OutBufferCountがしっかり送信バッファの値を返す設定って、何かあるでしょか?

MSComm1.Output = txdatbuf$
Text1.Text = Format(MSComm1.OutBufferCount)

このよーなコードを書いて、送信開始時のバッファを確認してみても0のままだったりして困っておりまする。
送信そのものは成功しています。

MSComm1 は

DTREnable=False
EOFEnable=False
Handshaking=0
InputMode=0
OutBufferSize=512
RThreshold=1
SThreshold=0
RTSEnabled=False

になってオリマす
245デフォルトの名無しさん:2008/04/25(金) 14:46:39
ログをファイルを出力しているのですが
最新の1000行のみに維持したいのですが
何か良い方法はありますでしょうか?
246デフォルトの名無しさん:2008/04/25(金) 15:17:27
良い方法?
1000行固定というクソ仕様をやめてしまえ
247デフォルトの名無しさん:2008/04/25(金) 15:23:28
全部読んで1行捨てて書き出して、最後に今のログ1行書いたら駄目なのか?
248デフォルトの名無しさん:2008/04/26(土) 02:44:34
WebBrowserコントロールを使って
そのWebの書き込みテキストボックスから書き込みする方法ありますかね?
249デフォルトの名無しさん:2008/04/26(土) 11:30:44
>247
内部バッファならともかく、ファイルでそれはないだろ。
250デフォルトの名無しさん:2008/04/26(土) 11:59:13
>>249
ならどうしたらいいのか書けよカス
251デフォルトの名無しさん:2008/04/26(土) 12:03:03
>250
>246
252デフォルトの名無しさん:2008/04/26(土) 12:55:00
お前の能力では出来ないって事か
253デフォルトの名無しさん:2008/04/26(土) 14:18:36
↑こんな奴がいるから糞ソフトが無くならんのだよな
254デフォルトの名無しさん:2008/04/26(土) 15:53:23
↑その糞ソフトすら書く方法を知らないカス
255デフォルトの名無しさん:2008/04/26(土) 16:03:32
何が問題なのか理解してないようだ
中国人の外注のほうがマシに思える
256デフォルトの名無しさん:2008/04/26(土) 16:06:07
>>249
お前というやつは・・・。
いきなり上書きしたら、
書き込みの途中でエラーが出たら
ログが壊れるだろ・・・。
257デフォルトの名無しさん:2008/04/26(土) 16:21:52
>>255
うむ
中国人に「最新の1000行のみに維持したい」って言えば
ちゃんと作ってくれるだろうな
258デフォルトの名無しさん:2008/04/26(土) 23:45:53
TextStream使えば?

・ReadAll()で全行読み込み(なかなか高速)
・Sprit()で改行文字をKeyに配列化
・UBound(配列)>=999の場合は、配列にする前の文字列からInStrRevで改行文字探して見つかった位置-1までを取得
・先頭に新しいログ文字列追加
・で、書き出し

みたいな
259デフォルトの名無しさん:2008/04/26(土) 23:49:36
>>256
書き込みの途中って?
例えばどんなエラーがある?
260デフォルトの名無しさん:2008/04/26(土) 23:57:19
>>256じゃないが
エラーも出ずにファイルごとぶっ壊された経験なら多々あるなあ
ローテートの基準は行数にしないで日付や時間で新規ファイルに割って、
取得や表示時の処理で行数割りにすべきじゃねえの?
261デフォルトの名無しさん:2008/04/26(土) 23:59:31
1000行程度でエラーになった経験は無いからなあ
262デフォルトの名無しさん:2008/04/27(日) 00:01:07
壊れる事象が起こる原因が上書きなら、
新規作成→リネームでいい気がするが?
元のFileは消した状態で。
263デフォルトの名無しさん:2008/04/27(日) 00:05:12
>>260
それはプログラマである質問者でなく、設計したアホに言えよって話にならね?
もしくはそう注文してくる客に。

そういう仕様だって言われりゃマはそう作るしかないんだし
だったら最善の策を考えた方が仕事も早く終わるだろ。
264デフォルトの名無しさん:2008/04/27(日) 00:12:02
>>259
1. ディスクフル
2. 書き込みするデータを用意する際のエラー
3. メディアの部分的な破損

こんなところか?
265デフォルトの名無しさん:2008/04/27(日) 00:25:26
ディスクフルは今回の場合関係なさそうじゃね?
メディアの破損については今回のファイル書き出し云々関係無い気がする。

書き込みデータ準備のエラーは具体的には何がある?
266デフォルトの名無しさん:2008/04/27(日) 00:26:09
>>263
だな、激しく同意
反論できる状況でなけりゃ、結局そう作るしかないんだよな
267デフォルトの名無しさん:2008/04/27(日) 00:31:47
>>266
大体さ、設計について話すってのは、ぶっちゃけスレチな気がするんだよ。
ここはVBプログラマ質問スレだろ?

プログラマからの質問に対して設計に文句言うのはおかしいと思うんだが
間違ってるか?
268デフォルトの名無しさん:2008/04/27(日) 00:44:46
>>265
メディアが部分的に破損してて書き込み失敗したら、
上書きしてた場合はログが壊れて、
別ファイル作ってた場合は前のログは残る。
269デフォルトの名無しさん:2008/04/27(日) 00:52:41
[方法その1(昔からある方法)]
サイクリックファイルという概念を使う。
詳しくはググれ。

[方法その2]
ログを全てオンメモリに持って、時々ファイルにflush。
プログラムが異常終了したときは、ログが失われる可能性がある。
270デフォルトの名無しさん:2008/04/27(日) 00:59:42
ファイルの書き込みは実際にはセクタ単位で行われるから
サイクリックファイルって万が一破損した場合の影響範囲は
1セクタ分になんのかね。
271デフォルトの名無しさん:2008/04/27(日) 06:57:18
>>267
設計に触れなくていいと言うなら間違っている
与えられた事しかできないのは下郎の仕事だよ
272デフォルトの名無しさん:2008/04/27(日) 08:51:52
ログファイルの行数制限ってそれ程アホな仕様とは思えないんだが
273デフォルトの名無しさん:2008/04/27(日) 09:05:46
馬鹿ですね。
274デフォルトの名無しさん:2008/04/27(日) 11:10:24
>>271
そうでなくてスレチって意味だろ
275デフォルトの名無しさん:2008/04/27(日) 15:05:31
フォームが非アクティブな時にクリップボードを監視して
文字があればフォーム上のテキストボックスにすぐ貼り付けるというプログラムを作っているのですが
FormのLostFocusで処理させるとクリップボードに文字をコピーしたあと
フォームをアクティブにしないとテキストボックスに内容が反映されません

どのイベントで処理すればいいでしょうか?
276デフォルトの名無しさん:2008/04/27(日) 15:19:39
>>275
監視って言いながら1回しか見てないの?
Timer使って一定時間ごとにチェックするとかじゃなく?
277デフォルトの名無しさん:2008/04/27(日) 20:49:19
>>272
うむ、組み込み系なら良くあること
278デフォルトの名無しさん:2008/04/27(日) 22:19:51
1行500byteで、50メガ程のテキストファイルをADOを使ってmdbに突っ込んでるんですが、
テキストファイルの改行コードがlfなんで、LineInputじゃ取れないんで、
一度バイナリで取り込みcrlfに変換後、保存してLineInputってのもスマートじゃないし、
stringで全部読み込み、midって取るのも後半重くなるし〜って事で、詰まってます。

何かいい方法はありませんでしょうか?
279デフォルトの名無しさん:2008/04/27(日) 23:12:03
>>278
ADOのStreamオブジェクトを使うといいような気がする
280デフォルトの名無しさん:2008/04/28(月) 10:48:11
>>249
1000行ぐらい内部バッファあけといて毎回読み書きしてもいいとおもたんだが
もしかして一般的には不毛な設計なのか?
281デフォルトの名無しさん:2008/04/28(月) 14:06:24
無駄にHDDを劣化させることは無いだろ
単純なログにすれば何も問題ないのにCPUの無駄遣いするなよ
Vistaを筆頭に、重かったりメモリ食いまくったりするのが流行なのかもしれないがな
282デフォルトの名無しさん:2008/04/28(月) 14:15:14
バカは黙ってろよ
283デフォルトの名無しさん:2008/04/28(月) 14:54:46
車や電化製品でも、誰も使わない機能をつけるのがカッコイーんだよ。
自己満足の世界に口を出すなっつーの。
284デフォルトの名無しさん:2008/04/28(月) 16:06:17
知的探求は必要
ソースをいかに短く書くか燃えなかった?
285デフォルトの名無しさん:2008/04/28(月) 17:11:45
行固定のログファイルとか良くやるけどね
これだけ議論になるということは、あまりこういう仕様に直面したこと無いのか?
286デフォルトの名無しさん:2008/04/28(月) 17:26:55
通信アプリなどのようにリクエストが多かったりするログで1000行固定はクソ仕様かもしれない
だが今回は1000行であり1起動で数回くらいの頻度だろ?騒ぐほどの事ではない

でも俺もクソ仕様だとおもう
287デフォルトの名無しさん:2008/04/29(火) 11:12:32
VB6なんですが、
製作しているプログラムProgAではOpenでテキストファイル(1行のみ存在)
を開いてInputのRead Sharedで1秒毎に読んでは閉じます。参照しかしません。

別のプログラムProgBからそのテキストファイルは
1秒毎に更新されています。内部の仕様はわかりませんがProgBから
もしロックをかけて更新しているなら
同時にProgA側で開こうとすればエラーが出ると思います。
それは問題ありません。

ProgAでファイルを参照していてもProgBからそのファイルの更新さえ
できていれば、ProgAとしては問題ないのですが、
今の状態では不都合が生じるでしょうか?

ProgAでファイルを開いている状態(ブレークポイントでとめて)で
自分で作った外部アプリでファイルに更新をかけてみたのですが、
ファイルは普通に更新されたのですが、これで良いのかどうか。。。
288デフォルトの名無しさん:2008/04/29(火) 17:01:25
プログレスバーの上にColor.Transparentを設定したラベルをおいて
ラベルの親コントロールをプログレスバーに再設定しても
どうやらプログレスバーがColor.Transparentをサポートしていないようで
ラベルの背景が半透明化されません

プログレスバーのようなColor.Transparentをサポートしないコントロール上で
背景を半透明にさせるにはどうすればいいですか?
289デフォルトの名無しさん:2008/04/30(水) 01:43:37
文字をpadleft等で桁揃えして文字数が同じなのを確認して
コンボボックスのフォントをMSPゴシック、MS UIゴシック等の等角フォントにして
フォントが変更されたのも確認した後
それらの文字数が同じアイテムをコンボボックスに追加してリスト内のアイテムを確認すると
どうやってもズレて表示されてしまいます
解決法ってありますか?
290デフォルトの名無しさん:2008/04/30(水) 02:01:53
>>289
> コンボボックスのフォントをMSPゴシック、MS UIゴシック等の等角フォントにして

上記は等角フォントではないよ。
MSゴシックを使ったら?
291デフォルトの名無しさん:2008/04/30(水) 04:34:26
>>290
MSゴシックにしたら改善されました、ありがとうござます
フォントについて勘違いしてたみたいです
プログラミング以前の話に答えていただいて助かりました
292デフォルトの名無しさん:2008/04/30(水) 09:44:45
Join関数を使わないでMidステートメント(関数ではない)で文字列を連結する場合、MidとMid$ではどちらがいいの?
速度を計っても差がわからない。
どっちも同じなのかな?

関数ならもちろんMid$が少し速いが。
293デフォルトの名無しさん:2008/04/30(水) 12:34:02
そんな知識もない奴がいまさらVB使ってどうするのかなw
っていうか、mid$で文字列連結って意味不明な気がするが。

まあここでも散々既出だと思う(折れ自身複数回回答してるから)けど、
(っていうかググッてもすぐ回答が見つかるはずだとも思うが)

 $付き: 返り値の型がString
 $なし: 返り値の型がVariant

Variant返す関数の存在理由は良く知らないが、普通は使う必要ないんじゃないのかな。
294デフォルトの名無しさん:2008/04/30(水) 13:21:40
>>293
Mid$で連結が意味不明なら答えるなよ。
わかる人はすぐ分る。
そもそもオマイは関数と勘違いしてるし。
俺より初心者みたいだなw
295デフォルトの名無しさん:2008/04/30(水) 13:53:06
>そんな知識もない奴がいまさらVB使ってどうするのかなw

すぐこういう事を言い出す輩が多いな。
あとクソ仕様がどうとか。
学生か趣味でしか使わない奴らには一生理解できないんだろうけどね。
296デフォルトの名無しさん:2008/04/30(水) 13:57:09
>>287です
簡潔でなかったので、簡潔に書きます。

テキストファイルAをあるアプリAで
OPENステートメントのRead Sharedで開いていた場合
別アプリBでファイルAを開いたり更新したりしようとすると
問題が生じるでしょうか?
297デフォルトの名無しさん:2008/04/30(水) 18:35:54
誰か>>294の言ってる意味がわかる奴いる?w

俺は意味不明なこと言ってるとしか思えないが、
正直VBは年に1度触るか触らないかの状態なので自信もって否定はできない、と一応謙虚に言っておく。

ついでにまあどうでもいいが、「そんな知識もない奴がいまさらVB使ってどうする」
って指摘が不適切とは俺は思えないんだよねやっぱり。

初心者が今更VB使ってどうすんの。
まあそりゃ保守の需要とか学校の講義でたまたま使ってるとかあるのかもしれんが、
今更初心者にVBのコードを保守させる会社とか、今更VB6を使って教える学校ってのは如何なもんなのかねえw
298デフォルトの名無しさん:2008/04/30(水) 18:51:23
いやいや。「お前が言うな」
299デフォルトの名無しさん:2008/04/30(水) 19:04:12
>>297
恥ずかしい奴だな。
ttp://support.microsoft.com/kb/170964/
300デフォルトの名無しさん:2008/04/30(水) 19:19:17
mid$で連結って、前スレあたりで話題になったよね
301デフォルトの名無しさん:2008/04/30(水) 19:21:36
>>297はMidステートメントは使ったことないんだよきっと。
&演算子で連結することしか知らなかったりしてw
302デフォルトの名無しさん:2008/04/30(水) 19:23:40
知らなかったのならググればよかったのにw
303デフォルトの名無しさん:2008/04/30(水) 19:25:43
>>299
語るに落ちてるな。
サンプルコードをロクに理解せずにコピペして使ってるVB厨房の君自身をね。

そのサンプルコードの動作原理をちゃんと理解してる?w
理解してたら決して「Mid$で文字列を連結」などとは言わないよ。
そのコードでMid$が担ってる機能は「文字列の連結」じゃなくて「置換」だと思うけどね
304デフォルトの名無しさん:2008/04/30(水) 19:30:40
>>303
では、件のURLの<title>がなぜそのようになっているか、説明してもらおうか。
305デフォルトの名無しさん:2008/04/30(水) 19:32:16
>>303
なぁ、こんな所で戦っても、何も得るものないぞ?
匿名なんだからさ、おとなしく引きさがれよ。
306デフォルトの名無しさん:2008/04/30(水) 19:33:35
人に突っ込む前になぜ"pseudo-concatenation"と書いてあるか考えた?
っていうかコード読め。読んで理解しろって。
人様に突っ込むのなんざその後だろうが。
307デフォルトの名無しさん:2008/04/30(水) 19:36:44
>>303
とことん恥ずかしい奴だな。
お前は>>292の内容が全く理解も想像もできなかったんだろ?
「文字列連結」と「Mid」というキーワードで連想するものを初めから知ってたらな、
最初の発言で「それは置換だろ」と指摘しとけよ。

もっともそんなこと指摘しても、>>292の疑問には何の解決にもならんがな。

ちなみに、>>292の回答は、「自分で計測して速い方を使え」だ。同じだったら、好きな方でかまわん。
308デフォルトの名無しさん:2008/04/30(水) 19:42:50
>>307
その回答もどうかと
そんな浅い事なら質問してないだろう。
309デフォルトの名無しさん:2008/04/30(水) 19:43:03
顔真っ赤で反論考え中w
310デフォルトの名無しさん:2008/04/30(水) 19:45:23
そもそもMid$ステートメントなんてないのかもね。
Join関数をJoin$と書いても動くのと同じじゃねーの?
311デフォルトの名無しさん:2008/04/30(水) 19:45:43
>>308
内部実装を知りたいなら、プロセスにアタッチして逆アセンブルされてるのを
眺めたらわかるかもね。

俺は興味無いけど。
312デフォルトの名無しさん:2008/04/30(水) 19:46:56
>>307
何をいってるんだコイツ。
俺はエスパーじゃない。
>>292の「Midステートメント(関数ではない)で文字列を連結」が>>299
コードのことを指しているとして、そんなことが俺にわかるわけがない。
313デフォルトの名無しさん:2008/04/30(水) 19:48:47
>>312
つ「知らないなら黙っとけ」
314デフォルトの名無しさん:2008/04/30(水) 19:49:26
普通Midステートメントと文字列の連結といったらわかるぞ?
エスパーじゃないのはもともと分かってるw
315デフォルトの名無しさん:2008/04/30(水) 19:53:43
>>312
わからないなら、何でレスしたんだ?
おとなしく黙っとけば恥もかかずに済んだものを。
316デフォルトの名無しさん:2008/04/30(水) 19:58:20
VBは年に一度触るかどうかレベルの奴が、何でこのスレ巡回してんだよw
教えたがりもたいがいにしとけよw
317デフォルトの名無しさん:2008/04/30(水) 21:23:09
これはひどい・・・
318デフォルトの名無しさん:2008/04/30(水) 22:02:02
ここではよくあること
気にするな
319デフォルトの名無しさん:2008/05/02(金) 20:16:42
>>292
この間未だにVB5で稼動してるシステムにVB6と互換性あるJoin関数やReplace関数作ったんだけど
そんときMidステートメント使ったのね。

最初はMidでやってたんだけど遅い気がしてMid$に変えたら早くなったよ。
VB5だからなのか、使ってるマシンが古いせいなのかは知らないけど、
Mid$の方が早いみたいだしMid$使ったらどうかな?
320292:2008/05/03(土) 20:34:21
>>293以外のみんなありがとね。
こちら何度やっても差が出なくて困ってる。
おれも>319のようにMid$の方が速かったことがたしかあったけど、どうも最近再現しない。
>>310のJoin$みたいに、もしかしてつけなくていいものをつけてるとしたら馬鹿らしいし
>>319にはすまんけど付けないことにするかな?
321デフォルトの名無しさん:2008/05/03(土) 22:23:53
322デフォルトの名無しさん:2008/05/03(土) 23:21:14
>>321
500万回でMidが5秒って、1回あたり1usじゃん。
+で文字列連結するのをMidに変えたときの恩恵に比べれば、差なんて無いも同じ。

・・・まぁ、俺は常にMid$つかうけどね。
323292:2008/05/03(土) 23:44:10
>>321
あまりラベルの低いサイトにリンク張らないように。
それってMid$関数だろ?
俺が言ってるのは関数じゃなくてステートメント。
324デフォルトの名無しさん:2008/05/03(土) 23:49:57
いいかげん、うざくなってきたな
325デフォルトの名無しさん:2008/05/04(日) 00:11:16
うむ
326319:2008/05/04(日) 11:33:59
>>320
まあそれはお好きにどうぞw
327デフォルトの名無しさん:2008/05/04(日) 17:03:11
なんか以前論争になったときは「変なこという奴だな」と思いつつも黙っていたが、
VBのような言語(つまりCのような設計思想の言語とは違う、と言いたいんだが)で
「組み込み関数」と「ステートメント」を峻別することに意味なんてあるんか?w

確かにMSDNライブラリ(俺の手元にあるのは2001年10月のもの)を見ると、
たとえばMid$ならMid$に関して、「Midステートメント」と「Mid関数」の二つのエントリーがあるが、
二つの説明を見比べれば、「Midステートメント」の方は明らかに「Mid関数」の返り値の型の仕様ついて
詳細な説明をスキップするための便宜上のもの(はっきり言えば煙に巻いて誤魔化している)
に過ぎないように思われるが。
328デフォルトの名無しさん:2008/05/04(日) 21:36:28
Dim s As String
s = "1234567890"
Mid$(s, 3) = "alpha"
Mid(s, 3) = "beta"

vb6でこーゆーコードをコンパイルして、逆汗したが、
結局両方とも同じように_vbaMidStmtBstr呼んでるだけだたよ。
329デフォルトの名無しさん:2008/05/05(月) 05:46:33
ってことはMidで十分ってことだよな。
関数はMid$が常識だろうが。
330デフォルトの名無しさん:2008/05/05(月) 09:28:20
フォーム タイトルバーのフォントサイズを変更するにはどうすればいいですか?

フォーム プロパティのフォントサイズを指定すると
置かれている各コントロールのフォントサイズは変わりますが
肝心なタイトルバーのフォントサイズが変更されません
331デフォルトの名無しさん:2008/05/05(月) 12:55:21
画面のプロパティのデザインで決まっているので、個別のウィンドウで変更することはできません。
332デフォルトの名無しさん:2008/05/06(火) 20:27:53
WebBrowser1でWebを読み込んで縦スクロールバーをコントロールする方法ないですか?
最初に一番下まで持っていきたいのですが。
333デフォルトの名無しさん:2008/05/07(水) 12:10:56
Webを書き換えできる立場にいるなら<a name="hoge"></a>でアンカー付けて読み込む時にURL末尾に#hoge
Webは書き換えられないならフォーカスをIEコンポにしてSendKesとか・・・
334デフォルトの名無しさん:2008/05/07(水) 15:17:49
>>333
できました ありがとうございます。
335デフォルトの名無しさん:2008/05/09(金) 00:06:54
midの話題に便乗して質問
replace関数とmidステートメントの使い分けって
どういう風にしたらよろし?

あとreplace関数で下のようにInStr関数を使って開始位置を設定するのは意味がない?

strHoge = "...hoge"

strFuga = Replace (strHoge, "hoge", "fuga", InStr(strHoge, "fuga", vbBinaryCompare))
336デフォルトの名無しさん:2008/05/09(金) 00:36:52
>>335
使い分けって全然別物じゃんw
っていうか、だからVBのような言語で関数とステートメントを「使い分け」ることこそ意味がないつーに。

mid:
 与えられたBSTRのバイナリイメージを直接上書きする。
 当然、置き換えられた部分の文字数も、文字列の長さも変わらない。(変えられない)

replace:
 与えられた文字列の中の特定の部分を別の文字列で置き換えた文字列を新たに作成する。
 「置き換えられる」部分文字列の長さと「置き換える」部分文字列の長さは違っていてもかまわない。
337デフォルトの名無しさん:2008/05/13(火) 02:50:02
vb6.0でフォームだけ透明化して、ラベルなどはそのまま表示させることって可能でしょうか?
方法があれば教えてください。
338デフォルトの名無しさん:2008/05/13(火) 04:27:56
十字キーの↓でラベルを順に選択できるようにしたいのですが、

If GetAsyncKeyState(vbKeyDown) Then
If Label3.ForeColor = Magenta Then
Label4.ForeColor = Magenta
Label3.ForeColor = Yellow
End If
If Label4.ForeColor = Magenta Then
Label5.ForeColor = Magenta
Label4.ForeColor = Yellow
End If
If Label5.ForeColor = Magenta Then
Label6.ForeColor = Magenta
Label5.ForeColor = Yellow
End If
End If

と記述するよりもっと効率がいいやり方はないのでしょうか?
339デフォルトの名無しさん:2008/05/13(火) 08:28:01
>>338
効率以前に「他人に意味が通じる文章」を書く方が先決だろう。
というか、推敲する手間を惜しむような奴にプログラマの才能などないと思う。
340デフォルトの名無しさん:2008/05/13(火) 12:30:28
>>338
効率もなにも、ひょっとしてそのコードバグってないか?
13、14、15はYellowになるだろ、一回↓キー押しただけで
順ってなんですか?
341デフォルトの名無しさん:2008/05/13(火) 14:12:33
>>338
訳:カーソルキーの↓キーを1回押すごとにラベルを順番に選択(色を変更)したいのですが、
>>338のコードと記述するよりスマートになるやり方はありませんか?
342デフォルトの名無しさん:2008/05/14(水) 00:08:54
>>339
分かりにくくてすみません・・・

>>340
バグってます。
通常の状態をマジェンタ、選択されてる状態を黄色にして、
↓キーを押すたびに選択されているラベルを変えるプログラムをつくりたいんですが、うまく行きません・・・

>>341
そういうことです。ありがとうございます
343デフォルトの名無しさん:2008/05/14(水) 02:23:29
ラベルをコントロール配列にでもして、
現在黄色い場所をインデックスとして覚えといて
そいつをカーソルキーでうろうろさせるとか
344デフォルトの名無しさん :2008/05/14(水) 03:49:52

◆6月にマネージャパン、月刊アスキー、週刊アスキーの3誌が賞金総額2000万円の「シストレFXグランプリ」を開催
http://system-trading.jp/news/index.php?cID=3

5月22日より登録受付開始、6月2日よりグランプリ開始の予定。賞金総額2000万円。
  デモトレードの優勝者には賞金三百万円がプレゼントされます。


▼トレード部門
初期資産500万円で、デモ取引のトレード収益を競っていただきます。
http://www.fx-gp.com/about/

▼賞金総額
■社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期MVP賞 50万円
●後期MVP賞 50万円
345デフォルトの名無しさん:2008/05/14(水) 08:19:34
コピペ君って馬鹿だな、まで読んだ。
346デフォルトの名無しさん:2008/05/14(水) 18:24:00
GetAsyncKeyStateを使うとボタンを瞬時に離さないとIf以下のコードが何回も繰り返し行われてしまいます。
途中にWaitなどを入れてみましたが、そうするとキーを押したときに反応しないときがあります。
解決方法を教えてください。
347デフォルトの名無しさん:2008/05/14(水) 22:46:12
>>346
釣りに見えるのはなぜなになでしこ

簡単に解決させたいなら ElseIf と KeyUpイベントを覚えるといいと思うよ
348デフォルトの名無しさん:2008/05/15(木) 00:04:46
>>374
偉そうに舐めた口利いてる奴がそのレベルじゃアカンだろうw
コントロールのイベントはフォーカスがあるときしか拾えない。
こんなUIの基礎も理解してないの?

>>346
GetAsyncKeyStateのリファレンスにまんまの答えが書いてあるじゃん。
もちろん自前でステートマシン作って解決してもいいんだけど。
ステートマシンっていう考え方は小学生でも理解できるわりに応用が利く(たとえば
>>338のようなコードをわかりやすくするのにも使える)から覚えて損はないよ。
349デフォルトの名無しさん:2008/05/15(木) 00:18:53
>>347
ElseIfとKeyUpですか・・・ちょっと調べてきます

>>348
なるほど。もっと詳しく勉強する必要があるんですね。
ふたりとも回答ありがとうございます
350デフォルトの名無しさん:2008/05/15(木) 08:21:35
だから詳しく勉強する必要はないの。
そう言ってるでしょ?
MSDNライブラリのGetAsyncKeyStateの項にそのまんま答え書いてある
351デフォルトの名無しさん:2008/05/15(木) 17:22:21
>>348
FormにKeyUpイベントあんの知らんの?
352デフォルトの名無しさん:2008/05/15(木) 17:36:32
>>348
Labelのイベントだとは書かれていないのにも関わらず
Label_KeyUp()に書けと読み取ったお前もかなりやばいぞ。

キー操作でLabelに何かアクションする場合、
Form_KeyDown()やForm_KeyUp()に処理が書かれることが多い。
>>347はそれを言ってるんだと思うが?
353デフォルトの名無しさん:2008/05/15(木) 17:56:57
VB6を使ってるんだがFlexgridでAccess2000に接続したものを表示したい。
ADOコントロールを使わずに接続することって可能?
354デフォルトの名無しさん:2008/05/15(木) 18:01:23
まず質問者と>>348>>338のバグを認識しないとな。
355デフォルトの名無しさん:2008/05/15(木) 18:50:24
>>353
DAOでやるってことかな
356デフォルトの名無しさん:2008/05/15(木) 19:40:08
初歩的な質問で恐縮ですが、

vbでsendkeysを使って作成しておりました。
さまざまな問題が出たため、apiを使用しキーボードシュミレートを
行うため、下記のサイトを参考に組み込みました。
http://hanatyan.sakura.ne.jp/vbhlp/keybdeve.htm

こちらで送信はできたのですが、ポップアップするような
アプリケーションの場合そこで制御が停止してしまいます。

停止せずに送る方法がありましたらお教え下さい。
357デフォルトの名無しさん:2008/05/16(金) 00:21:38
>>351-352
あのなあw
それ以上馬鹿を晒さないうちに黙っていた方がいいと思うよ。
358デフォルトの名無しさん:2008/05/16(金) 02:04:54
359デフォルトの名無しさん:2008/05/16(金) 02:56:11
VB脳w
360デフォルトの名無しさん:2008/05/16(金) 11:35:01
VB6を使用しています。
ADO2.5のRecordsetオブジェクトを使用し
以下のようなDBを参照し

フィールド1 |
----------
A |
B |
C |

データを
Aを取得し変数にセット→MoveNext
Bを取得し変数にセット→MoveNext
Cを取得し変数にセット
という流れで取得しています。

MoveNextなどをせずに
一気にA B Cのデータを取得し変数にセットをしたいです。
もし可能であればご教授ねがえませんか?
361デフォルトの名無しさん:2008/05/16(金) 11:49:27
ご教授なんて呼ばれても そんな人いません
362デフォルトの名無しさん:2008/05/16(金) 12:19:34
恥ずかしい馬鹿だな。
「ご教授」でもいいんだよ。嘘だと思うなら辞書引いてみな。

DBはやったことないんで質問には答えられなくて申し訳ない。
363デフォルトの名無しさん:2008/05/16(金) 12:28:39
>>362
ご教授なんて日本語存在しませんがw
嘘だと思うなら「間違った日本語」とかでググってみな?w

あ、ゆとりさんに無理ですか そうですか
存在しないものを作りあげてしまうなんて
もうレベルが低すぎてこちらまで恥ずかしくなってきましたw
364デフォルトの名無しさん:2008/05/16(金) 12:31:39
辞書を見て自分の都合のいい解釈する人に何を言っても。
365デフォルトの名無しさん:2008/05/16(金) 12:33:54
それはいわゆる無知な「誤用厨」(まあ今俺が命名したんだけどw)が
勝手にそう言ってるだけ。

だから辞書引けって馬鹿。

ついでにその「誤用厨」が得意げに指摘する「確信犯という言葉の誤用」も
誤用じゃないんだよ本当は。
366デフォルトの名無しさん:2008/05/16(金) 12:41:38
間違ったものを強引に正しいものにしようと必死な人がいると聞いて
飛んできますた

>>365
間違いを指摘されてるんだから、そろそろ悪あがきは止めて あきらめようぜ?ww
お前が馬鹿なのは十分分かったから、これ以上 墓穴掘るなよ

ご教授はどう考えても 存在しない日本語
日本人なら正しい日本語使え、プログラミングとかやる奴ならなおさら
367デフォルトの名無しさん:2008/05/16(金) 12:44:29
あのなあ。
そもそも「教授」って言葉をポストに使う方が元々は派生的な用法だっての。
字面見ればわかるだろそんなの。
368デフォルトの名無しさん:2008/05/16(金) 13:00:50
プログラムは正しくない命令文ではエラーが出るが、
「ご教授ねがう」は「ご教示いただく」のことだろうなってわかるだろ。
教えてやればいいだけでしょ。

お前らそんな固い頭でプログラミングとか向いてないんじゃね。

>>360
文章から、変数は配列じゃないと想定してレスすると、一気に変数に入れるのは不可能。

数が少ないならフィールド横に配置して1レコードにするとか。
フィールド1 | フィールド2 | フィールド3 |
----------
A | B | C |

変数に配列使ってループさせれば解決すると思うけどネ。
369デフォルトの名無しさん:2008/05/16(金) 13:08:43
 Function Nihongo_OK(ByVal str As String) As Boolean

Select Case Instr(str,"ご教授")
 Case 0
  Return True
 Case Else
  Return False
End Select

End Function
370デフォルトの名無しさん:2008/05/16(金) 13:25:32
Debug.Print Nihongo_OK("あたご教授は素晴しい教授だ")
False

( ゚Д゚)
371デフォルトの名無しさん:2008/05/16(金) 13:26:54
誰?
372デフォルトの名無しさん:2008/05/16(金) 16:08:10
ご教授って存在しないの?
教授に対して
ご教授お願いしますってのもだめなの?
373デフォルトの名無しさん:2008/05/16(金) 18:47:18

Private Sub CommandButton2_Click()

Dim mambo As Date
If Trim(mambo) = Null Then Exit Sub
mambo = UserForm1.ComboBox1.Value
Call search_light(mambo)

End Sub

上のプログラムで「mambo」という変数には時間が入る(or空白)のですが、
「mambo」が空白の時でも、プロシージャが終了してくれません。

「""」を使うとエラーになるし、エラートラップを使うしかないのでしょうか?
374デフォルトの名無しさん:2008/05/17(土) 11:42:08
>>360
Recordset.GetRowsメソッドじゃだめ?
375デフォルトの名無しさん:2008/05/17(土) 11:48:17
>>373
とりあえずDate型の初期値はNullじゃないよ

If mambo = #0:00:00# Then Exit Sub
376デフォルトの名無しさん:2008/05/17(土) 12:38:58
ListViewのような行と列を持つコントロールに
テキストボックスやコンボボックスを表示されられるコントロール名ってなんでしょうか?
377373:2008/05/19(月) 09:13:12
>>375
遅くなってすみません。
ありがとうございます
378デフォルトの名無しさん:2008/05/21(水) 10:13:48
コンボボックスで起動直後に任意項目を選択済みにするには
ロードイベントにSelectedIndexで設定する以外に方法はありますか?

コンボボックスのプロパティには初期値を設定出来る項目はないようですし
379デフォルトの名無しさん:2008/05/21(水) 12:20:53
初期値を設定すべき実行部分で初期値を設定する以外に方法はないと思う
380デフォルトの名無しさん:2008/05/22(木) 18:10:29
msgboxで表示される文字のフォント指定はどうやるのでしょうか?
381デフォルトの名無しさん:2008/05/23(金) 03:09:51
そりゃあコントロールパネルからだ
382デフォルトの名無しさん:2008/05/26(月) 17:14:46
ttp://jeanne.wankuma.com/library/inifile/source.html
↑のクラスライブラリをVBで使おうとしても
この引数を受け付ける New がないためオーバロードの解決に失敗しました というエラー出て
インスタンス化出来ないです、なぜですか?

参照設定でDLLを読み込んで
 Dim ini As New Jeanne.Ini.IniFile
のコードを書きました
383デフォルトの名無しさん:2008/05/26(月) 17:51:30
>>382
どうみてもC#だが誤爆か?
それともそれをDLL化したものが「VB6以前」で使えないといってるのか?
後者ならあたりまえなので、COMのラッパークラス書いてレジストリ登録しなさい。
384デフォルトの名無しさん:2008/05/26(月) 19:10:45
>>383
やっぱりVBで他言語のdllはコーディングし直さないと使えないのですか
VCで書いたライブラリをVBで利用するための詳しい解説付きサイトがあったので
C#のもいけるかなと思ったのですが
385デフォルトの名無しさん:2008/05/26(月) 19:39:03
つか、inifile読み書きクラスって、車輪の再発明もたいがいにしろって感じ
386デフォルトの名無しさん:2008/05/26(月) 23:28:12
>>384
「VC#で書いたライブラリをVBで利用するための詳しい解説付きサイト」を探して読め
387デフォルトの名無しさん:2008/05/27(火) 10:49:51
ファイルAとファイルBのCSVファイルの内容を比較するプログラムを作る時
みなさんならどうしますか?

自分はまだ知識が乏しいので
それぞれのファイルをSystem.IO.StreamReaderを使ってオープンして
一行読み込むたびに,区切りのデータをArray変数にsplitで代入して
GetUpperBound(0)で最大を把握しながらArrayの各値を比較しています

先に全部のデータを変数かデータベースに読み込んでから比較したら
比較速度はかなり増しますか?
388デフォルトの名無しさん:2008/05/27(火) 11:01:04
Dim tmp1(),tmp2() as string

Dim CSV1 As New System.IO.StreamReader(ファイル1, System.Text.Encoding.Default)

Do Until CSV1.Peek() = -1
tmp1 = Split(CSV1.ReadLine(), ",")

Dim CSV2 As New System.IO.StreamReader(ファイル2, System.Text.Encoding.Default)

Do Until CSV2.Peek() = -1
tmp2 = Split(CSV2.ReadLine(), ",")

''''ここに比較処理

Loop
CSV2.Close()

Loop
CSV1.Close()


>>387 実際のコードはこのような感じです
比較処理時間を短縮出来るもっと効率の良い方法があればご教示お願いします
389デフォルトの名無しさん:2008/05/27(火) 11:22:21
>>387
.NETの話題ならスレチだが。

VB6以前なら

Dim FSO As Scripting.FileSystemObject
Dim sFileA As String
Dim sFileB As String

  Set FSO = CreateObject("Scripting.FileSystemObject")

  sFileA = FSO.GetFile(FileAのパス).OpenAsTextStream(ForReading).ReadAll
  sFileB = FSO.GetFile(FileBのパス).OpenAsTextStream(ForReading).ReadAll

  Set FSO = Nothing

  If sFileA = sFileB Then
    MsgBox "同じ"
  Else
    MsgBox "違う"
  End If


ってやるとめっちゃ早いけど。
行単位比較だったら取得したファイル内容を、
SplitでvbNewLineを区切り文字にして配列ゲットしてループ&比較かなぁ?



それにしても携帯でコード書くと疲れるな。
390デフォルトの名無しさん:2008/05/27(火) 11:42:36
比較してどこが違うか具体的に示す必要があるなら、それでいいんじゃない
ただ異なっているかどうかだけでいいならバイナリで読み込んで比較するけど
391デフォルトの名無しさん:2008/05/27(火) 11:49:22
>>390
その手があったか>バイナリ
392デフォルトの名無しさん:2008/05/27(火) 11:56:42
>>389-390
ありがとうござます

>比較してどこが違うか具体的に示す必要があるなら
やろうとしてることがまさにそれなので>>387の方法で比較するしかなさそうですね

みなさん、とても助かりました
393デフォルトの名無しさん:2008/05/27(火) 16:02:59
まずはファイルのサイズを比較して異なっていたら別物、同じなら中身を調べる、って処理を入れるのもアリだ
394392:2008/05/27(火) 19:38:04
DoEventをやめて
BackgroundWorkerで完全なマルチスレッドにしたら
処理速度にかかる時間が以前の半分くらいと かなり早くなりました

マルチスレッド化はロジックが結構複雑で
今までやりたいなと思いながらも結局はDoEventで代用してましたが
やってみたら意外と簡単でいい勉強になりました
395デフォルトの名無しさん:2008/05/27(火) 19:43:13
ループにDoEvent入れてたってオチじゃないだろうな
396デフォルトの名無しさん:2008/05/27(火) 20:27:52
細かいようだが訂正

× DoEvent
○ DoEvents
397デフォルトの名無しさん:2008/05/27(火) 20:51:27
>>394
スレタイにいいかげん気づこうな
398デフォルトの名無しさん:2008/05/27(火) 22:30:43
携帯プログラミング
テキストボックス1に文字が出る
ボタン12個
ボタン1(1)
ボタン2(2、A,B,C)
ボタン3(3、D,E,F)
・・・
ボタン9(9、W,X,Y,Z)
ボタン10(*)入力画面を初期化
ボタン11(0)
ボタン12(#)同じ文字・数字をつづけて入力できる

多いですがプログラミングコードを教えてください。
本当によろしくお願いします。
399デフォルトの名無しさん:2008/05/27(火) 22:33:39
>>398
ここは宿題スレではありません
400デフォルトの名無しさん:2008/05/28(水) 00:20:58
>>398
そんな簡単過ぎるコードも書けないのか今時の学生って
ホントに勉強してるの?
401デフォルトの名無しさん:2008/05/28(水) 01:40:47
グーグルツールバーみたいに入力候補がでるテキストボックス作りたいんだけどどうやるのがいいんだろう
検索対象の件数が増えると使い物にならないようなのしか作れん・・
402デフォルトの名無しさん:2008/05/28(水) 01:44:56
候補の用意ができたとして、
表示する部分は、シェルにIAutoCompleteなどというものがあるらしいが、
VBから使えるのかどうかわからない、すまん。

403デフォルトの名無しさん:2008/05/28(水) 03:17:40
>>401
ユーザーコントロールでコンボボックスとセットにして、
入力されたらリストだけドロップして見せればいいんじゃね
404デフォルトの名無しさん:2008/05/28(水) 12:54:04
環境はWindowsXP PRO SP3 WSH5.7です。
以下のコードを実行すると、"1 2 ... 19 20"という結果になります。

For i = 01 To 20
j = j & " " & i
Next
WScript.Echo j

実行結果が、"01 02 ... 19 20"となるようにするには、
どうすれば良いでしょうか?
405デフォルトの名無しさん:2008/05/28(水) 13:54:53
やらんとすることはゼロサプレス無しの2桁化でいいのか?
j=j+" "+format(i,"00")

ところでjの初期化は?
406デフォルトの名無しさん:2008/05/28(水) 14:31:56
For i = 101 To 120
j = j & " " & mid(i,2)
Next
WScript.Echo j
407デフォルトの名無しさん:2008/05/28(水) 16:04:31
>>405
レスどもです。VBSではformatが無いようで動きません。
FormatNumberとかはあるんですけど欲しい動作はなくて。

>>406
こういうトリッキーなやり方があるんですね。動きました。ありがとうございます。
408デフォルトの名無しさん:2008/05/28(水) 20:13:51
ゼロパディングって言え
409デフォルトの名無しさん:2008/05/28(水) 21:52:39
失礼な

tricky
───────────────
形 @ずるい,こうかつな
A手のこんだ,扱いにくい,巧妙な
410デフォルトの名無しさん:2008/05/28(水) 22:58:24
VBScriptはスレ違いのような
411デフォルトの名無しさん:2008/05/28(水) 23:19:34
>>410
くだらんレスをするな。モレモナー
412デフォルトの名無しさん:2008/05/29(木) 08:27:54
うんスレチガイだね
413デフォルトの名無しさん:2008/05/29(木) 08:55:59
パディングとサプレスの区別が付いていない奴の居るスレはここですか?
414デフォルトの名無しさん:2008/05/29(木) 09:03:46
VS2008のC++に移行しようと思って少しさわってみたけど
コマンドの候補を表示してくれるインテリセンス機能ってないのか・・
さらに敷居が高くなった
415デフォルトの名無しさん:2008/05/29(木) 10:33:35
416デフォルトの名無しさん:2008/05/29(木) 13:40:32
Right("0" & i, 2)とかやらない?
417デフォルトの名無しさん:2008/05/29(木) 14:30:56
Right(100+i, 2)
418デフォルトの名無しさん:2008/05/29(木) 18:14:03
>>417
ふいたwwwwwwww
どうしても数値でやりたいのかwwwwwwwwww
419デフォルトの名無しさん:2008/05/29(木) 18:42:16
>>417
それだと14桁で限界くるだろ
420デフォルトの名無しさん:2008/05/29(木) 18:50:50
でもありだな
>>416だろjkくらいしか思わなかった
421デフォルトの名無しさん:2008/05/29(木) 20:35:30
trickyだね
422デフォルトの名無しさん:2008/05/29(木) 22:28:35
VBで標準出力に出力ってどうやるんですか?
423デフォルトの名無しさん:2008/05/29(木) 22:52:10
ぐぐれ
424デフォルトの名無しさん:2008/05/30(金) 00:53:16
ProgressBarを描画させながらその上でラベルを使って進行状況の%表示をさせると
ラベルの背景が透明にならず不格好なので
PictureBoxの疑似プログレスバーで 背景をDrawStringで透明にして%の文字を描画させたら
通常のプログレスバーよりとてつもなく描画処理が遅くなってしまい困っています

プログレスバーの上に 進み具合を背景透明な文字で%表示させても高速に描画させる
いい方法はないでしょうか?
425デフォルトの名無しさん:2008/05/30(金) 01:28:04
オーナードローで文字を置けば?
426デフォルトの名無しさん:2008/05/30(金) 01:40:29
プログレスバーの上にラベル表示ってどうやるの?
配置してみたら下になっちゃうんだけど・・
427424:2008/05/31(土) 10:25:49
カスタムプログレスバーで ものすごく良いサンプルがありました
ttp://www.codeproject.com/KB/progress/ProgBarPlus.aspx

これバーの部分にオリジナル画像使えたり色々なところが調整出来てスゴイです
でもやはりプログレスバーと処理時間比較してみると
何倍か時間がかかりますね、負荷を減らしつ表示するにタイマー使えばいいのかな
428デフォルトの名無しさん:2008/05/31(土) 10:28:55
修正
>でもやはりプログレスバーと     ×
>でもやはり標準のプログレスバーと  ○
429デフォルトの名無しさん:2008/05/31(土) 12:05:01
>>427
確かにそのサンプルすごくいいな
ただのプログレスバーがそこまで自由にカスタム出来るとは思わなかった
430デフォルトの名無しさん:2008/05/31(土) 12:30:27
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'x2乗値を計算して、書き出すだけの問題

Dim intA, intB, intC, intD, intN1, intN2, intM1, intM2, intT As Integer

intA =
intB =
intC =
intD =
intN1 =
intN2 =
intM1 =
intM2 =
intT =
TextBox9.Text =
'この問題で使う関数は絶対値を求めるMath.Absだけ

End Sub

visual basic 2003 です。=の後に入る答え教えてください。
431デフォルトの名無しさん:2008/05/31(土) 13:05:08
断る
432デフォルトの名無しさん:2008/05/31(土) 13:11:49
なにその低レベルな宿題
433デフォルトの名無しさん:2008/05/31(土) 14:40:57
スレタイが読めないレベルの人になに言っても無駄
434デフォルトの名無しさん:2008/06/05(木) 11:29:07
VB6で文字を書くとき、OSのアンチエイリアス無効にすることってできる?
435デフォルトの名無しさん:2008/06/09(月) 14:26:05
あと1年半でWindows7が出て、自作のVB6プログラムが動かなくなりそうなので、
VC++に移植作業を始めたけど、案外するすると移植できるもんだね。
VBではClassモジュールとFormしか使わなかったからかな。
C++は配列の代わりにvectorが使えるから楽だね。
436デフォルトの名無しさん:2008/06/09(月) 14:27:45
Windows7だとVB6は動かないの?
437デフォルトの名無しさん:2008/06/09(月) 14:39:25
MSが、VB6のコンパイラはもうサポート外
つくったEXEはVistaまではサポートに努力するが、それももう終わり
って事だろ
438デフォルトの名無しさん:2008/06/10(火) 00:29:10
あと1年半じゃ新しいOSは出ないと思うぞ。まVistaみたいに1年間も有料ベータテストを
やるっていうのなら可能性はなくもないけど。常識的には2012年ごろかな?
439デフォルトの名無しさん:2008/06/10(火) 10:46:22
じゃあVB6で作られたシステム使い続けてる多くのユーザーさんから
爆発的な量の案件がやってくるってことになるのかな?

新しいOS出た途端にってことは無いだろうけど。
動作テストして、VB6のシステムが動かなかったら
そもそもOS変えないかもだけどw
440デフォルトの名無しさん:2008/06/10(火) 11:24:53
Vistaにしたら動かなくなったソフトなんてよく聞くだろう
VB6でもなんでも、ディレクトリ決め打ちとかせずにきちんと書けば、次のOSでも動くかと

MSがVBランタイムを次のOSで殺せば全滅だが
441デフォルトの名無しさん:2008/06/10(火) 11:45:27
VB6.0 SP6 なんですが、A dministrator権限のないユーザから
OCXを使用することはできるでしょうか?
レジストリに登録せずに参照する方法があれば教えてください
442デフォルトの名無しさん:2008/06/10(火) 12:00:40
コレクションについて質問です。
キー文字列からインデックスを得る事は可能でしょうか?
443デフォルトの名無しさん:2008/06/10(火) 17:41:20
VBAで素数判定するプログラムを作らなきゃいけないのですが、作り方が分かりません。
フォームは作れるんですが。。
どうやって作ればいいのでしょうか?
誰か教えて下さいませ。
444デフォルトの名無しさん:2008/06/10(火) 17:57:57
>>443
素数判定がわからないのか
VBAがわからないのか
VBAで再現する方法がわからないのか…

VBAだし
445デフォルトの名無しさん:2008/06/10(火) 18:15:03
VBAはある程度分かるんですが、素数判定をVBAで再現する方法がわからないです。
private sumとかはわかります
446デフォルトの名無しさん:2008/06/10(火) 19:06:15
宿題は自分でやりなよ
447デフォルトの名無しさん:2008/06/10(火) 19:45:28
ここは質問スレだから聞いてるんです。。
448デフォルトの名無しさん:2008/06/10(火) 20:02:41
Public Function 素数判定(数) As Boolean
  If 数 Like "素数" Then
    素数判定 = True
  Else
    素数判定 = False
  End If
End Function
449デフォルトの名無しさん:2008/06/10(火) 21:15:32
>>445
private sumって何?
450デフォルトの名無しさん:2008/06/10(火) 21:38:54
>>448
感動した
451デフォルトの名無しさん:2008/06/10(火) 21:53:51
>>441
manifest使えばレジストリへの登録をせずにOCXを使える(XPから)。
http://www.microsoft.com/japan/msdn/thisweek/vbxp/vbxp2.aspx
452デフォルトの名無しさん:2008/06/11(水) 01:33:30
>>447
はいって何だよ。出来んのかよ。さっきから何度も。何がはいなんだよ。
出来もしねえ奴が軽々しくはいなんて言うんじゃねえよ。
わかってんのかよ。はいって言う事の責任の重さを。
社会勉強のつもりでやってんだったら辞めろおまえ。
453デフォルトの名無しさん:2008/06/11(水) 01:41:32
素数判定wwww
そのくらい自分で書くかググれよwwwww
サンプルソース結構多いのにアホかとwwwwww


…って宿題か。
ここは宿題スレではないからスレチだな。うんうん。
454デフォルトの名無しさん:2008/06/11(水) 09:18:44
VistaでVB6の環境立ち上げるとOLEレジストリへのアクセスエラーですってメッセージが
毎回表示されるんだけど回避方法ありませんかね?
その後は普通に動作するんだけど気分悪いよ。
455デフォルトの名無しさん:2008/06/11(水) 11:46:00
VB6ってXPにすら対応してないのに
456デフォルトの名無しさん:2008/06/11(水) 12:15:15
「OLEレジストリへのアクセスエラー VB6」sw\\でぐぐった1つめ
ttp://blog.heiichi.com/?eid=533108
457デフォルトの名無しさん:2008/06/11(水) 13:00:20
>>455
( ゚Д゚)ポカーン
458デフォルトの名無しさん:2008/06/11(水) 19:25:39
>>456
ありがとう。
やってみます。
459デフォルトの名無しさん:2008/06/12(木) 13:08:35
>>443
で、宿題はできたかい?

添削ぐらいならしてやるよ
460デフォルトの名無しさん:2008/06/12(木) 16:05:25
メニューバーの「表示」からコマンドとデザイナの項目が消えて、ファイルを
読み込んで続きをデザイナで作成することができなくなってしまいました。
どうしたらデザイナ画面を復活させられるのでしょうか?
461デフォルトの名無しさん:2008/06/12(木) 16:42:55
>>460
メニューバーから開いたことがない俺ですこんにちは
俺はいつもプロジェクトエクスプローラから開いてるなぁ
462デフォルトの名無しさん:2008/06/12(木) 22:05:02
MSflexgridで一番上と下の行を固定させる方法を誰か教えてー(;_;)
463デフォルトの名無しさん:2008/06/14(土) 00:48:17
XMLHTTPでリクエストするときって、ポート80じゃないの?
464デフォルトの名無しさん:2008/06/16(月) 15:22:25
あるデザインから他のデザインへクリック1回で飛べるようにしたいのですが、
リンクラベルのどの項目をいじって配置すればいいのかよくわかりません。
どうすればできるようになるのでしょうか? 教えてください。
465デフォルトの名無しさん:2008/06/16(月) 16:01:34
先にシャワー浴びて来いよ
466デフォルトの名無しさん:2008/06/16(月) 16:59:48
WinXPでVB6.0+クリスタルレポートでの開発をしています。
クリスタルレポートのバージョンは何が正しいのか不明ですorz
とりあえず既存ソースを動かしたいがCRPEAutoでコンパイルエラーを起こします。
クリスタルレポートはバージョン不明ながらクリスタルレポート9をインストールしました。
Crystal Reports 9 ActiveX Designer Runtime Libraryを参照したが解決しません。
コンパイルエラーなので参照を指定すれば良いと思ったのですが根本的に勘違いしてますか?
何か参照する対象を間違えてますか。
467デフォルトの名無しさん:2008/06/16(月) 20:22:31
>>466
GrapeCityのActivereportをかいなよ。
468デフォルトの名無しさん:2008/06/16(月) 23:47:14
>>466
一度、元々のプロジェクトファイル(*.vbp)をテキストエディタで開いてみると良いかと。
469デフォルトの名無しさん:2008/06/16(月) 23:50:51
xx
470468:2008/06/16(月) 23:55:09
いちおう説明追加しとくと、
「Reference=〜」となってるのが、参照設定
「Object=〜」となってるのが、コンポーネントね。
471デフォルトの名無しさん:2008/06/17(火) 00:00:16
昨晩、車で猫を轢いちまったばっかりなんでな・・・・
頭がタイヤの下に入っちまったようで、ゴリッと鈍い音がした・・・
たぶん即死だったと思われ。気のせいか眠るときに「ニャ」という声が聞こえた。
今日も聞こえるかと思うと恐くて恐くて・・・もうorz
472デフォルトの名無しさん:2008/06/17(火) 00:18:36
……ぉ…ま……ぇ………ヵ……
473デフォルトの名無しさん:2008/06/17(火) 01:50:46
……ヵッォ……
474466:2008/06/17(火) 10:44:45
> 467
たぶん、予算がありませんorz

> 468
ありがとうございます。
参照しているdllに関しては同一名(パスは違った)を参照しているので問題はないはずなのですが
もうちょっと頑張ってみます。
475デフォルトの名無しさん:2008/06/17(火) 11:10:20
無駄にしている時間、日数の給料分を考えれば買ったほうがいい場合もある
予算の効果も考えろ
476デフォルトの名無しさん:2008/06/17(火) 12:24:35
>>475
会社の実態を知らないなんで無職の方ですか?

問答無用で稟議が通らないなんてザラですが?
477デフォルトの名無しさん:2008/06/17(火) 12:29:08
クリスタルレポートって重くねーか?
改良試作費で買ったけど使い物にならないんで放置。
どうせ捨てるんでよければあげるよ。
これが使える用途って元々かなり大きくて思いシステムで
帳票系の負荷が表に出て来ないようなシステムだろうな。
軽量化が望まれる俺たちのプロジェクトでは到底使えない。
478デフォルトの名無しさん:2008/06/17(火) 12:33:40
>>476
馬鹿な会社に勤めてるんですね
恥ずかしくないですか?
479デフォルトの名無しさん:2008/06/17(火) 12:38:48
>>478
会社が馬鹿なんじゃなくて、稟議が通るように根回しできない奴が馬鹿なのでは?
俺なんて秘書課の姉ちゃんとデキてるからやりたい放題だぜ。
480デフォルトの名無しさん:2008/06/17(火) 13:30:57
プロジェクトの予算や納期などもわからない物件に対して、ああだこうだと
言うことになんか意味があるのか?
481デフォルトの名無しさん:2008/06/17(火) 13:34:53
今話してるのは概念的なことだろうよ?
何もプロジェクトの詳細を知る必要はないだろう?
482デフォルトの名無しさん:2008/06/17(火) 13:36:50
問答無用ですか
馬鹿ですね
483デフォルトの名無しさん:2008/06/17(火) 13:38:02
何もかも「馬鹿」という言葉で集約するのはよろしくない。
それこそ「何とかの一つ覚え」と言われてしまうよ?
484デフォルトの名無しさん:2008/06/17(火) 13:39:17
>>482
劣勢だなwww
485デフォルトの名無しさん:2008/06/17(火) 13:41:17
>>475-476,478-479
お前らの会話がVB(6.0以前)製煽りプログラムならいいが、
そうでないならスレ違いだ。
486デフォルトの名無しさん:2008/06/17(火) 13:41:55
集約できてしまうんだよな
馬鹿は馬鹿でしかない
487デフォルトの名無しさん:2008/06/17(火) 13:43:38
>クリスタルレポートはバージョン不明ながらクリスタルレポート9をインストールしました。

何気に見落としたが、この行為って超怒級の大馬鹿じゃね?
どう考えてもやることがプロじゃねぇよwww
488デフォルトの名無しさん:2008/06/17(火) 13:44:35
>>481
ああ、レスの流れを読み返したらそうだった。orz
「一考の余地がありますよ」→「実態も〜」?
ってことね。
489デフォルトの名無しさん:2008/06/17(火) 13:46:05
ちょっと冷静になろうぜ。何に対して怒ってるのか明確にしてくれ。

まずはクリレポのA君からどうぞ。
490デフォルトの名無しさん:2008/06/17(火) 13:52:44
まずは俺がCrystal Reports ActiveX のバージョンを明確にしてやろう
プロジェクトファイルをエディタで開いてObject =から始まる文を全部コピーしてここに貼り付けてみなよ。

491デフォルトの名無しさん:2008/06/17(火) 13:54:39
>>490
たぶん、プロジェクトファイルがどれかもわからない素人かと...
492デフォルトの名無しさん:2008/06/17(火) 13:57:17
>>466
よく読み返したら素人だな。よくもまあみんな釣られたもんだなw
493デフォルトの名無しさん:2008/06/17(火) 13:59:31
>>490
ActiveXの自動アップデート機能で既に書き換わってると見た。

実行環境の方は互換が保障されていれば上位のコンポーネントでも動くのだが、
開発環境の方はバージョンは絶対変えたらいけない。
実際無闇にパッチや他のソフトも入れられないことがあるのだ。
494デフォルトの名無しさん:2008/06/17(火) 14:02:16
>>493
いや、もちろん>>468が言うようにオリジナルのをという意味だ。
素人だからオリジナルをそのまんま使ってしまったかも知れないがなwwww
俺たちプロは絶対にそんな過ちをしないもんだぜ。
495デフォルトの名無しさん:2008/06/17(火) 14:04:40
>>493
俺はLEADTOOLSで酷い目に遭った事がある。
GUIDは同じでバイナリ互換なのにメソッドの仕様を変えてきやがった。
普通。インタフェース仕様を変えたらGUIDを変えるもんじゃないのか?OCXは
それ以降、恐くてアップデートできなくなった。
496デフォルトの名無しさん:2008/06/17(火) 14:12:21
>>495
バイナリ互換にしなかった場合を考えればわかると思うが?
プロジェクトの変換でもしない限り新しいバージョンに差し替えられなくなる。
実際にはOCXの製品バージョンアップでもない限りGUIDは変更されないものだ。
497デフォルトの名無しさん:2008/06/17(火) 14:15:36
パッチ毎に挙動が変わるBocSpreadSheetと共存してた俺は、もはや菩薩だな。
498デフォルトの名無しさん:2008/06/17(火) 14:19:36
>>497
Spreadは2〜7まで使って来たがバージョン内ではそんなに大きな仕様変更はなかったぞ?
まあ確かに若干の挙動の変化はあったが俺としては許せる範囲だった。
そんなことを言ってたらLEEDTOOLSなんて絶対に使えないぞ。
同一バージョン内でリペイントの仕様を変えられて、全フォームで画像が表示しなくなったんだから!
びびるよまったくwwww
499466:2008/06/17(火) 14:21:47
えっとですね、VBPではクリレポ9を参照してるんですが、11を使えと言われるようなプロジェクトです。
だからとりあえずクリレポ9を入れたんですよ。
既存ソースを動かして大枠を理解したいので。
後は基本仕様書はないけど詳細設計書だけがあるとか、
でも詳細設計書もまともに書かれてないです
過去にプロジェクトに関わった人が辞めていないor忙しすぎてどこにいるのかも分からん
という形なので困ってるという所です。

VBに関しては素人なんですが(一応7年この業界にいます、仕事でVBを触ったのは3ヶ月程度)
基本Javaメインでやってて今回火消し要員で途中から入れられた、
このプロジェクトに関わってる人間が1年目〜2年目の人間だけ。
環境設定手順書にも一切記述なし。
俺にどうしろっちゅうねん!!(来月退職届出す予定)
500デフォルトの名無しさん:2008/06/17(火) 14:27:07
>>499
それはデザインとランタイムのバージョン不一致やん。
CRはそれが現実として起こり得るから恐いんだよね。
501デフォルトの名無しさん:2008/06/17(火) 14:29:20
>>499
どおりで素人臭いわけだな・・・
最初からそこまで詳しく書いていれば荒れずに済んだものを・・・
クリレポ使いのおいらにはもう解決の方法は概ねわかったよ。
ちょっと面倒くさいがやってみるか?
502デフォルトの名無しさん:2008/06/17(火) 14:31:17
それこそ、vbpのテキストを貼り付けたらいいじゃないの。
コンパイルエラーが出るような場合、多くは「古いVer」だし。
「とりあえず」って言葉が誤解を招いているのに気付いてる?
503デフォルトの名無しさん:2008/06/17(火) 14:32:27
>>502
まあまあ、相手はJava使いでVB素人さんだ。もっと優しくしてやろうぜ!
504デフォルトの名無しさん:2008/06/17(火) 14:35:35
>>499
それなら9じゃなくて11をインストールするだろ普通は?
505デフォルトの名無しさん:2008/06/17(火) 14:37:36
おそらく11をインストした環境で9で設計したんだろうよ?
506デフォルトの名無しさん:2008/06/17(火) 14:38:57
ランタイム配布する時にどうするつもりなんだろ???

おそろしやおそろしや・・・
507466:2008/06/17(火) 14:47:46
言葉不足でした、申し訳ありません。

VBPからReference部分を抜き出しました。
4行目の指定からクリレポ9を使うべきなのか?と思っていました。
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\..\..\..\..\WINDOWS\system32\stdole2.tlb#Standard OLE Types
Reference=*\G{EE008642-64A8-11CE-920F-08002B369A33}#1.0#0#..\..\..\..\..\..\..\..\WINDOWS\system32\MSRDO20.DLL#Microsoft Remote Data Object 1.0
Reference=*\G{00025E01-0000-0000-C000-000000000046}#5.0#0#..\..\..\..\..\..\..\..\WINDOWS\system32\DAO360.DLL#Microsoft DAO 3.6 Object Library
Reference=*\G{AF376990-6120-4E28-96DD-63FD2DC27B7A}#9.0#0#..\..\..\..\WINNT\system32\craxdrt9.dll#Crystal Reports 9 ActiveX Designer Run Time Library
VBP内の記述はどこまでならWeb上に出せる情報かも分かっていません。
すみません。

後は記述しなきゃいけないと思われる内容は
どうもDBから直接データを抽出するのではなくて
一度MDBファイルに落としてそっからレポートとして出してると見ています。
プロジェクト内にデザイナは存在しない。
その為にシステム共通のbasファイルがあってそこにCRPEAutoの記述がある。
ここでコンパイルエラーです。

過去に携わった人とちょっとだけ連絡取れて話が聞けたので
クリレポ11をインストールしました、またDLLも使うべきDLL(貰えた)で上書きしました。
でもエラーが消えていない状況です。
また、孫受けな為環境の変更に口出し出来ません。
508466:2008/06/17(火) 14:55:58
> 501
是非是非教えて下さい!お願い致します。
509466:2008/06/17(火) 15:01:51
追記:11を入れた後に参照してるのは
Crystal ActiveX Report Viewer Library 11.0
Crystal ActiveX Report Viewer Export Library 11.0
Crystal ActiveX Report Viewer Web Report Source Library 11.0
の3つです。
510デフォルトの名無しさん:2008/06/17(火) 15:04:08
>>508
以前、同じ問題に遭遇した事がある。そのときAGTechからもらった
CRPEAutoコンポーネント整合性修復ツールがあったと思うので探してみるよ。
ちょっと待ってて。
511デフォルトの名無しさん:2008/06/17(火) 15:06:02
環境が無いから、なんともいえないけど、コンパイルエラーが出るオブジェクト
または、メソッドについて、どもようなえらーが出るかで、対応は変わると思います。
エラーの内容(大事だよね)も必要かと。
512511:2008/06/17(火) 15:08:31
「どもような」?orz
まあ、そんな感じです。
513466:2008/06/17(火) 15:09:09
Object =に関してはクリスタルレポート関連は参照していないと思います。
システム固有のocxも入ってますので晒すとまずそうなんですが・・・
マイクロソフト系が2つ、スプレッドシート用が1つ、後はシステム固有が2つという状況です。
514デフォルトの名無しさん:2008/06/17(火) 15:10:15
セクションとかじゃなくアプリケーション、たとえば
Dim app1 As CRPEAuto.Application 
の段階でエラーが出ると理解してるが?違ったりして・・・
515466:2008/06/17(火) 15:13:21
失礼しました。
エラー内容は以下です。

コンパイルエラー:
ユーザ定義型は定義されていません。
516466:2008/06/17(火) 15:17:10
514の方の理解で合ってると思います。
ソース内の
Dim XXX As New CRPEAuto.Application
上記部分がエラーメッセージが表示された時に青くマーキングされます。

VBももうちょっと触っとけば良かったorz
517デフォルトの名無しさん:2008/06/17(火) 15:17:20
>>515
エラー発生行の内容(コード)は?
518デフォルトの名無しさん:2008/06/17(火) 15:17:25
参照設定、コンポーネント、または、バージョン不一致だな。
DLLだけ持ってきてホニャホニャしたなら別だが…
519466:2008/06/17(火) 15:24:42
> 517
515で記述したメッセージ以外は表示されていません。
エラー発生行のコードは516に記述している通りです。

どの参照をチェックすれば良いのか分からず
クリレポ関係の参照を全部チェックしてみたり、
コンポーネントを全部チェックしてみたりしたのですが駄目でした。
どっか根本的な所で勘違いしているのかもしれません。
520デフォルトの名無しさん:2008/06/17(火) 15:32:21
まさかとは思うが CRPEAuto.dll がレジストされていないんじゃないのか?
regsvr32 CRPEAuto.dll はやってみた?それでエラーにならない?
521デフォルトの名無しさん:2008/06/17(火) 15:39:13
クリーンな環境でCR11をインストして、Dim XXX As New CRPEAuto.Applicationが正常に
実行できる環境を作って、下のツールを使って CRPEAuto.dllとコンポーネントとの依存性を
確認してみたら?
http://www.programmersheaven.com/download/20851/download.aspx

それを現在の環境とで比較すれば、原因がわかるはず。
522466:2008/06/17(火) 15:40:19
> 520
regsvr32 CRPEAuto.dllはやっていません。
CRPEAuto.dllというdllファイルがないのですが、
こちらはCRPEAuto.dllというファイル名のファイルが存在しなくても実行可能ですか?
523デフォルトの名無しさん:2008/06/17(火) 15:45:16
>>522
お前は何を言っているんだ
524466:2008/06/17(火) 15:47:12
貰ったdllはクリスタルレポート11の
\Common Files\Business Objects\3.0\crystalreportviewers11内にある
ActiveXControlsをフォルダ事上書きしてくれと言われたので上書きました。
フォルダ内にはcab、dep、dll、oca、ocxが入ってました。
525デフォルトの名無しさん:2008/06/17(火) 15:52:25
>>524
上書きしただけでレジストしてないのか?
レジスト内容は9の当該コンポーネントのままだったり?
JAVAとは違うんだぞヲイ
526デフォルトの名無しさん:2008/06/17(火) 15:53:27
>>522
>CRPEAuto.dllというdllファイルがないのですが、

もしかして壮大な釣りだったの?
527466:2008/06/17(火) 15:54:06
> 523
ごめん、俺自身良く分かっていない。

ttp://home.att.ne.jp/banana/akatsuki/doc/other/windows01/
↑を見て
regsvr32 CRPEAuto.dllをコマンドプロンプトで実行してみた。
指定したモジュールが見つかりませんと出てきた。

> 521
いまいち理解出来ていないが頑張ってみる。

俺テンパってるな・・・orz
もしかして、VBの場合のdllのファイル名が
CRPEAuto.Application
↑のここと一致するのか?
Javaのクラス名とファイル名を一緒にするとかとちょっと似たようなもの?
528466:2008/06/17(火) 15:58:29
> 526
すまんが釣りのつもりはない!
VB素人でいきなり放り込まれて本当に訳が分かっていない。

Javaで例えてもらえると助かる。
Javaで言うと現在の状況はimport文の対象先が見当たらないから
コンパイルできないと怒られていて
import文の対象さえ見つかればどうにかなるんじゃないかな?
という認識だけど根本的に間違ってる?
529デフォルトの名無しさん:2008/06/17(火) 15:58:52
>>527
Javaのアプレットは登録しなくても良いだろうが
OCXとか DLLはregsvr32で登録しないと参照できないんだよ。
君の環境ではCR9は登録されているのは間違いないが
CRPEAutoの構成こんぽーねんとはコピーされただけで登録されていない。
登録された位置に参照DLLが存在しないとレジスト自体ができないはず。
VB6は簡単だと思ったかも知れないが、一歩踏み込めばOLEオートメーション
という地獄が口をあけて待ってるのさ。君はその口の中にどっぷり入ってしまったわけよ。

おめでとうWWWW
530529:2008/06/17(火) 16:00:11
単にDLLと言ったがActiveX DLLな。
もしかしてDLLが二種類あるのも知らないだろ?
531デフォルトの名無しさん:2008/06/17(火) 16:11:12
>>466
お前が偉そうな態度で物を言ってたから少しはデキル奴だと思っていた。

今、それが大きな間違いであった事に気付いたw
532466:2008/06/17(火) 16:15:21
> 529
えっと・・・やっぱりCR9をインストールしないといけなくて、
その後でCR9にあるCRPEAuto.dllというファイル名のファイルをregsvr32で登録しましょう
という理解であってますか?

CR9をアンインストールしてCR11を入れてWindowsのファイル検索で「CRPEAuto.dll」を検索したけど出てこなかった。
DLLが2種類あるのは遠い昔に勉強した気がするが最近は一切触ってないので覚えていませんでした。
533466:2008/06/17(火) 16:21:51
> 531
偉そうだったか・・・すんません!!
とりあえずVB素人なのは確定でお願いします。
プログラムを組んだのもこの業界に飛び込んでからで専門的に教えてもらった事もないorz
2chで技術的な質問をきちんとしたのは今回始めてで、
今まではググったり、自分で調べればどうにかなったのだが
今回は本当に何がなんだか訳分かっていないで準備期間も用意出来なかった。
534デフォルトの名無しさん:2008/06/17(火) 16:26:13
>すんません

などとふざけた態度とる奴に、お前はどう接する?
535デフォルトの名無しさん:2008/06/17(火) 16:29:20
>>466
お前の技量と目前にしている問題の大きさとがつりあわない。

困ったね。と、他人事だから軽く言うw

でも自分の問題だとしたらかなりやっかいだね。
正常に動いている時の状態があればまだしも
これじゃ複雑なパズルを解くようなもんだよ。
536デフォルトの名無しさん:2008/06/17(火) 19:56:13
VB6 において

_DragDrop() について、対象オブジェクト上での発生時
およびそれ以外での発生時ごとの処理が行いたいのですが、
どうやら一括しての「それ以外」処理は行えない様子

それではと言うことで _MouseUp() 時に処理を行えばいいかと
思ったのですが、DragDropを「0 - 手動」にしたうえで
_MouseDown() 内で .Drag を発生させると
その後マウスを放しても _MouseUp() が生じません

なぜかダブルクリックを行うと2回目の放したタイミングで
_MouseUp() が発生します


これはどのようにすれば対応可能でしょうか
537デフォルトの名無しさん:2008/06/17(火) 19:57:12
過去「VB初心者質問スレ Part4」において同じ悩みであろう


657 名前: デフォルトの名無しさん 投稿日: 01/12/27 16:22

Drag&Drop後のMouseUpイベントを取得する方法について教えて下さい。

具体的には...
DragModeを手動にし、MouseDows時にDragメソッド(引数 1)で
Drag&Dropを行うのですが、Drag&Drop後のMouseUpイベントが
取得できません。

フォーム外にDragされた場合に、イベントを取得できないので、
MouseUpであれば、フォーム外でもイベント取得できるので、
どうにかMouseUpを取得できれば良いのですが


と言うのがありましたがレスがなかったようでした
538466:2008/06/17(火) 21:21:45
失礼しました、少し頭を冷やしてきます。
お騒がして申し訳ございません。
539デフォルトの名無しさん:2008/06/18(水) 23:24:52
xpとvb5.0を使ってます

バイナリアクセスでファイルを読み書きしたいのですが・・・
レコード位置の指定方法がわかりません。

構造体に値を入れてから
putで入れてるのですが
そのときにレコードの位置をセットする方法がわかりません。

2番目のレコードを取得するにはどうすればいいのですか?

ここのやり方でほぼそのまま作ったのですが
http://support.microsoft.com/kb/151335/ja


seek(#1)とやるとエラーがでました
あと
if EOF(#1)=true thenも
記述エラーが出ました

Seekでビット位置を取得しようと思ったのですが他にやり方があるのでしょうか?

また
持ってる本には
PRecord.FName = String(StrSize," ")が
String$

StrSize = Len(PRecord.FName)が
LenBだったのですが
それぞれの違いがわかりません
540デフォルトの名無しさん:2008/06/19(木) 16:06:38
すみません。ピクチャーボックスを回転させるには
どうしたらいいでしょうか?
541デフォルトの名無しさん:2008/06/19(木) 16:29:35
そんなものはないから相応のコード書け
542デフォルトの名無しさん:2008/06/19(木) 16:51:48
PlgBltというAPIがありました。
543デフォルトの名無しさん:2008/06/20(金) 00:35:54
>>539
なんだかよくわからない質問だけど、
seek(#1) → Seek(1)
EOF(#1) → EOF(1)
関数の「$」有無は、引数がNULL値の場合にNULLを戻すとか、エラーにするとか。
Lenは文字数、LenBはバイト数。

全部ヘルプに書いてある希ガス。
544デフォルトの名無しさん:2008/06/20(金) 17:24:49
>466がかわいそうだ
今後こういうパターン増えていくんだろうな
545デフォルトの名無しさん:2008/06/21(土) 12:28:59
>>543
>>539は自分で晒したKBの内容すら読めてない
日本語できない子だから英語で教えてあげて

もしくはスルー推奨
546デフォルトの名無しさん:2008/06/21(土) 16:33:11
VB6ってもう手に入らないんですか?
547デフォルトの名無しさん:2008/06/21(土) 16:33:39
日本語出来ない以前にバイナリアクセスで次のレコードって…
548デフォルトの名無しさん:2008/06/21(土) 16:51:38
>>547
クマーーー
549デフォルトの名無しさん:2008/06/21(土) 17:23:01
>546
MSDN契約しな
550デフォルトの名無しさん:2008/06/21(土) 17:25:16
おいくら?
551デフォルトの名無しさん:2008/06/21(土) 21:48:21
ttp://direct.ips.co.jp/pc/ihtml/msdn_chart/
ここによれば単体で160,800円、Open Business2年で67,157円x2=134,314円になる。
552デフォルトの名無しさん:2008/06/23(月) 02:08:39
VB6の値段としては高いな
553デフォルトの名無しさん:2008/06/23(月) 02:18:04
VB6などはMSDNから外されてなかったっけ?
持ってるから興味ないけどさ
554デフォルトの名無しさん:2008/06/23(月) 02:22:41
JAVAを外してVB6.0だけ復帰してたはず
555日立バキバキ高野くん祭り:2008/06/23(月) 19:50:18
1.日立製作所社員の高野くん(高野光弘)が会社を誹謗中傷して機密も漏洩
2.日立のユーザーにも「キチガイ」との障害者差別発言
3.日立製作所の企業イメージをバキバキにする
4.自身のサイトの『32nd diary』に掲載
5.日立製作所に通報される
6.あせって似顔絵削除
7.火に油を注ぐだけで所属する日本UNIXユーザ会にも通報祭り勃発
8.「給料泥棒」と説教される
9.「殺します」と殺人予告をして警察に事情を聞かれる←イマココ

高野光弘の行動
現在は、過去の記事を閲覧できなくして、「本日の日記はツッコミ数の制限を越えています」としています。
まずは、不愉快な思いをされた方々に謝罪するべきなのではないでしょうか。

高野光弘の発言
「まぁ、どこの団体もそんなにヤワじゃないので、平気なんですけども。
日本UNIXユーザ会が一番対応に慣れてる感じ。」

日本UNIXユーザ会が対応に慣れているか、みなさん確認してみてください。

連絡先
http://www.net.intap.or.jp/oiia/cont2/p0402.html%7B0recid=10168.html
556デフォルトの名無しさん:2008/06/23(月) 21:26:58
536です

上記の件についておわかりになる方、いらっしゃいませんでしょうか
557デフォルトの名無しさん:2008/06/24(火) 00:23:11
>>556
VBだけだと、無理なような気がします。

APIでドラッグ中オブジェクトのシステムメッセージを取ってみると、きちんと
マウスイベントは通知されているようです。
SetWindowLong、CallWindowProc などを調べてみてください。

上記のAPIを使う上での注意点としては、システムからVBの関数にコールバックさせるので、
後始末をきちんとしないと、動作が不安定になることがあります。
558デフォルトの名無しさん:2008/06/24(火) 12:59:05
>557
参考になりました
APIを使わずに回避したかったのですが
仕様ならやむ無しです

ありがとうございました
559デフォルトの名無しさん:2008/06/29(日) 16:04:13
VBScriptで質問があります。
HTMLのselectタグの中のoptionタグをボタンで押すことで、
消したり追加したりしたいんですが、innerHTML以下のようにしたのですが、
駄目でした。どこが悪いのでしょうか?お力を。
ちなみにサーバサイドはASPです。
Sub changeRadio(strFlg)
Dim strAti
Dim strNvidia
<%
Dim strA
Dim strB
Dim intCounter
For intCounter = 0 to rs.recordcount-1
if left(rsGPU.fields.Item("vchGPUName"),1)="A" then
strA= strA & "<option value=""""" & rs.fields.Item("intA") & """"">" & rs.fields.Item("vchA") & "</option>"
else
strN= strB & "<option value=""""" & rs.fields.Item("intB") & """"">" & rs.fields.Item("vchB") & "</option>"
end if
rs.movenext
Next
%>
strAA="<%=strA%>"
strBB="<%=strN%>"

if strFlg="A" then
document.formA.SelA.innerHTML=strAA 'SelAがselectタグです
else
document.formA.SelA.innerHTML=strBB
end if
End Sub
560559:2008/06/29(日) 16:09:26
すいません、2行目訂正ですorz
>HTMLのselectタグの中のoptionタグをボタンで押すことで、
HTMLのselectタグをボタンで押すことでselectタグ内のoptionタグ

でした。
561559:2008/06/29(日) 16:12:03
ああ、また訂正です。。。。駄目だorz
NG
>Dim strAti
>Dim strNvidia

OK
Dim strA
Dim strB

...
562デフォルトの名無しさん:2008/06/29(日) 17:18:29
クライアントサイドはJavaScriptにした方がいいよ
563デフォルトの名無しさん:2008/06/29(日) 17:38:53
VB(笑)
おまえらもう用なしだよw
564559:2008/06/29(日) 17:51:36
selectタグでは駄目なようなので、もう一段階上の階層に対して
InnerHTMLを使うことにしました。
お騒がせしました。
565デフォルトの名無しさん:2008/06/29(日) 19:48:16
treeviewですべてのノードを展開した状態で、上から何番目ってのを取得できるのでしょうか?

親を追加→子を複数追加→孫を複数追加〜みたいにノードを追加していくと、
ノードのindexって追加した順番に付いていき、上からの絶対敵な位置にならないので困ってます。
プロパティとか、色々見てみたんですが、なかなか思うようなものがなく。。。

おたすけくださいー。
566デフォルトの名無しさん:2008/06/29(日) 22:50:04
こんな感じの関数を作ればいいんじゃないかと。

Private Function fncGetNodeLine(twCtrl As TreeView, targetNode As Node) As Long
 On Error GoTo err_proc
  Const C_TREEDEPTH_MAX As Long = 10
  Dim lngCnt As Long
  Dim lngDpth As Long
  Dim nd(1 To C_TREEDEPTH_MAX) As Node

  fncGetNodeLine = 0
  lngCnt = 0
  If twCtrl.Nodes.Count > 0 Then
567デフォルトの名無しさん:2008/06/29(日) 22:50:29
--- 続き ---
    lngDpth = 1
    Set nd(lngDpth) = twCtrl.Nodes(1).Root.FirstSibling '先頭ノード
    Do
      lngCnt = lngCnt + 1
      If nd(lngDpth) Is targetNode Then
        fncGetNodeLine = lngCnt
        lngDpth = 0 '対象ノード発見時終了
      ElseIf nd(lngDpth).Children Then
        Set nd(lngDpth + 1) = nd(lngDpth).Child '子ノード
        lngDpth = lngDpth + 1
      Else
        Do
          If Not nd(lngDpth) Is nd(lngDpth).LastSibling Then
            Set nd(lngDpth) = nd(lngDpth).Next '次ノード
            Exit Do
          End If
          lngDpth = lngDpth - 1 '一つ上のノードに戻る
        Loop While lngDpth > 0
      End If
    Loop While lngDpth > 0
  End If
568デフォルトの名無しさん:2008/06/29(日) 22:50:57
--- 続き ---
exit_proc:
 On Error Resume Next
  For lngDpth = 1 To C_TREEDEPTH_MAX
    Set nd(lngDpth) = Nothing
  Next lngDpth
  Exit Function

err_proc:
  MsgBox Err.Description, vbCritical, "Error"
  fncGetNodeLine = -Err.Number
  Resume exit_proc
End Function
569デフォルトの名無しさん:2008/06/29(日) 22:59:52
関数にfncなんてプリフィクス付ける人初めて見たよ。
よく見る'obj'以上に無意味だと思うんだけどね。

いや、コードを読む人間をいらつかせる機能を狙ってるのなら
そういう意味はあるけど。
570デフォルトの名無しさん:2008/06/29(日) 23:20:12
>>569 そうか?
VBでのプロジェクトのコーディング規約で、たまに見るけどねw
意味は無さそうだけど、「関数の戻り値に代入している」という事が判別しやすい。
という、VB特有の意味はあるかもしれないかもしれないかも………。
571デフォルトの名無しさん:2008/06/30(月) 00:23:17
>>569
コーディング規約に噛み付いてどうする。
fncもsubもよく見かけるし、そもそも規約なんてそのプロジェクトにとって意味があるかどうかだろ。
あなたがどんなプロジェクトに関わってきたのか知らないけど、
正常orエラーを返す関数をcallで呼んで戻り値評価しない奴がいたり、
オブジェクトの開放処理をしない奴って結構多いよ。
特に人の入れ替わりが激しいとこや新人率が高いとこなんて、
一人が規約を無視してそのコピーが疑問なしに次々と乱立することも少なくない。
関数にはfncをつける→fncはそこでは不要でも必ず戻り値の評価をする、とか
参照型はobjをつける→Exitする際に必ず開放する
といった決め事にした方が、品質の高いプログラムを作りやすいことも多い。
572デフォルトの名無しさん:2008/06/30(月) 01:33:06
VB6は誤ったハンガリアン記法の品評会だったからしょうがない
一応正しいハンガリアン記法というのもあって
変数が言語のもつ型以外の意味をもつ場合につけるプレフィックス
例えば整数じゃなくてこれはハンドルだという場合にhをつけるのは正しい
573デフォルトの名無しさん:2008/06/30(月) 01:39:03
日本語でおk
574デフォルトの名無しさん:2008/06/30(月) 01:58:48
解放、な。
575デフォルトの名無しさん:2008/06/30(月) 23:39:56
>>571
こういう場所に質問に答える形でコピペしてるコードに「コーディング規約」って
意味不明だろうw

別にそんな訳のわからない理屈振り回さなくても素直に「俺の趣味だ」でいいじゃん。
まあ個人的には愚かな趣味にしか思えないけどね。
576デフォルトの名無しさん:2008/07/01(火) 00:28:25
「fncXXX」に噛み付いてみた → 「初めて見た」に噛み付いてみた → 「コーディング規約」に噛み付いてみた
次は何かな?
577デフォルトの名無しさん:2008/07/01(火) 10:40:07
fncくらいでイラつく理由がわからない。
あーこの人はこういう書き方するのねって思うだけだけど。
578デフォルトの名無しさん:2008/07/01(火) 11:04:07
intを返すIsなんちゃらの乱立よりはマシww
579デフォルトの名無しさん:2008/07/01(火) 16:31:36
>>578
Integerを返すIsナンタラで真なら 0 / 偽なら -1 を返す、
Booleanを知らない奴が作った関数なら知ってる。
頭のコメントに「備考」と称して、
「VBにもBOOL型があればいいのに」
って書いてあって、最初見たとき素で笑ってしまったw
580デフォルトの名無しさん:2008/07/02(水) 22:37:07
>>577
別にイラつく、とまでは書いてないけどね。

しかし、まあVBスレでこんなこと書くのもなんだが、
過去の自分含めて他人の「アホな」作法を見てイラつくような性格じゃないとしたら
その人はプログラマの適正を欠いている、と個人的には思うよ。
581デフォルトの名無しさん:2008/07/02(水) 23:34:56
お前はそんな性格だから禿げるんだよ
582デフォルトの名無しさん:2008/07/02(水) 23:45:56
583デフォルトの名無しさん:2008/07/03(木) 14:27:15
WORKGROUP
584デフォルトの名無しさん:2008/07/04(金) 11:07:02
>>580
お前は人としての適正を欠いてるわ、と個人的には思うよ。
585デフォルトの名無しさん:2008/07/04(金) 15:18:05
>>584
正直あまり笑えない。
586デフォルトの名無しさん:2008/07/04(金) 17:02:21
うちはVBとVB.NETでコーディング規約を替えてる
うはややこい
587デフォルトの名無しさん:2008/07/07(月) 22:42:06
OS:XP SP2/Vista SP1
VB6 SP6で開発してます。
XPとVistaでインストーラを分ける必要ありますか?
ちなみにVisual Studio Installerを使ってます。
588デフォルトの名無しさん:2008/07/09(水) 23:25:26
びす太の夏休み
589デフォルトの名無しさん:2008/07/16(水) 01:26:17
VB6でDeleteキーを効かなくしたくて、
KeyDownイベントハンドル内に
KeyCode=0
と入力したのですが
キーが効いてしまいます。
.NETではこのように書くように載っていたのですが
6.0では違う書き方なのでしょうか?
それか、Deleteキーをきかなくするのに、
keydownイベントを用いること自体が違うのでしょうか。
590デフォルトの名無しさん:2008/07/16(水) 16:28:01
>>589
「効かなく」とは、どういう事なのか、もう少し具体的に書かないと…
591デフォルトの名無しさん:2008/07/16(水) 21:11:17
デバイスの有効、無効を切り替えたいのですが、どのようなコードを書けばよろしいでしょうか
デバイスはUSB接続のゲームコントローラです
592デフォルトの名無しさん:2008/07/16(水) 23:48:28
>>590
確かに分かりにくいですね…
キー操作を無効にしたいです。
KeyPressイベントハンドル内での
KeyAscii=0
と同じ操作をKeyDownイベントハンドル内で
行わせるにはどのように書けばいいのでしょうか。
よろしくお願いします。
593デフォルトの名無しさん:2008/07/17(木) 14:30:52
>>592
KeyCode=0で間違ってないと思ますよ。
もし、フォームでイベントを拾おうとしているならば、KeyPreviewプロパティに注意するくらいかな。
594デフォルトの名無しさん:2008/07/19(土) 14:41:18
VBScriptで、
IEの右クリックから呼び出した場合と、
2chブラウザ(IEコンポーネントブラウザ)の右クリックから呼び出した場合を、
見分ける方法について教えて下さい。

navigator.appnameやnavigator.useragentは、
2chブラウザから呼び出した場合でも、IEそのものに成ってしまって、区別出来ないので、、、

どうぞよろしくお願い致します。


if 2chブラウザなら then
    window.open(TargetURL)
else
    Call external.menuArguments.open(TargetURL, "_blank")
end if

という様に、2chブラウザからならIEを立ち上げて、
IEからなら別タブに表示させたいのです。
595デフォルトの名無しさん:2008/07/19(土) 20:53:06
>>594
スレタイ100回読み直せ。
596デフォルトの名無しさん:2008/07/19(土) 21:56:54
スレタイを読み直してどうしろと言うのか
597デフォルトの名無しさん:2008/07/20(日) 00:15:45
>>595

>>1
>二.VBScript、インストーラーなどはこのスレでOK。 
598デフォルトの名無しさん:2008/07/20(日) 15:14:53
599デフォルトの名無しさん:2008/07/20(日) 23:08:11
>>596=598=粘着乙w
600デフォルトの名無しさん:2008/07/21(月) 01:28:44
VBだけでコールバック関数を実現したいんですが、無理でしょうか?
ちなみにcallptrというDLLを使って実装はできるのですが、
なるべくVBだけでできる方法はないかなと模索中です。
601600:2008/07/21(月) 02:23:04
ちなみにこれで実現は可能ですが、
CallPtrの方はDLLしかもソースが公開されていないのでいまいち。
VBで関数ポインタによる関数の実行はかなりいいのですが、コールバック関数の
中でMsgBoxなどのメソッドは呼べないし、引数使うと落ちたりと不安定です。

CallPtr.DLL
http://www.softcircuits.com/dl/tools/callptr.zip
VBで関数ポインタによる関数の実行
http://nienie.com/~masapico/doc_FuncPtr.html

こんな風にVBでコールバックできます。でも引数渡すと落ちます。
Private Sub Command2_Click()
CallFuncPtr AddressOf testproc, "test message"
End Sub

Public Function testproc(srcmsg As String) As Long
Debug.Print "a"
testproc = 0
End Function
602デフォルトの名無しさん:2008/07/21(月) 09:19:36
callbyname
603デフォルトの名無しさん:2008/07/22(火) 00:25:51
質問なのですがVB6で両替させるにはどうすればようのでしょうか?
ttp://quote.yahoo.co.jp/m3?u ←このレート計算みたいな感じです。

[ ][combo1]を [Text1]に [Command1] [  ]
数字  ドル     円     換算     結果
    ポンド
    ユーロ

お願いします
 
604デフォルトの名無しさん:2008/07/22(火) 00:29:30
>>603
コードを書けつってるの?
どのようにってifかselectで判定させるだけなんだけど
605デフォルトの名無しさん:2008/07/22(火) 00:33:50
レートをどこから持ってくるつもりだ
606デフォルトの名無しさん:2008/07/22(火) 00:33:53
そうなんですコードを知りたいんです
607デフォルトの名無しさん:2008/07/22(火) 00:36:51
レートは固定でドル107・ポンド213・ユーロ169です
申し訳ありません
608デフォルトの名無しさん:2008/07/22(火) 00:40:22
難しくないからがんばれよ
609デフォルトの名無しさん:2008/07/22(火) 00:42:33
自力でがんばってみます
短い間でしたがありがとうございました。
610デフォルトの名無しさん:2008/07/22(火) 00:53:38
>>609
あと数分待て
611デフォルトの名無しさん:2008/07/22(火) 01:05:12
フィードパス使え
612デフォルトの名無しさん:2008/07/22(火) 01:06:57
コードだけ貼れないから直接見ろ
http://www.uploda.org/uporg1558257.zip
613デフォルトの名無しさん:2008/07/22(火) 01:13:08
本当にありがとうございました
助かります
614デフォルトの名無しさん:2008/07/22(火) 01:55:27
なぜドル・ポンド・ユーロが2つずつあるのでしょうか?
あと「うんこ」の部分を「換算」に変えたいのですがどこをいじればいいのですか?
615600:2008/07/22(火) 02:06:09
こんな糞コード弄らないで1から書けよ
616デフォルトの名無しさん:2008/07/22(火) 05:02:59
>>612

614にコメントしたことはさきほど変えられました。
ありがとうございました
617デフォルトの名無しさん:2008/07/22(火) 09:56:53
すみません。フォームをunload meで閉じたあとに
そのフォームがフォームのkeyupイベントを拾ってしまって
勝手にloadされてしまうのですが
このようなことってあるのでしょうか?
フォームはkeypreviewがonになっています。
618デフォルトの名無しさん:2008/07/22(火) 10:53:09
質問します

Option Explicit

Sub zzz()
Dim hoge(3) As Variant
Dim hogehoge As Byte
Dim z As Byte

For z = 1 To 3
For hogehoge = 1 To 3
hoge(z) = Range("A" & hogehoge).Value
Next hogehoge
Next z
End Sub

上のようなコードで、zとhogehogeを同時に
インクリメントすることは可能でしょうか?
619デフォルトの名無しさん:2008/07/22(火) 11:31:42
いやそのかんがえかたはおかしい
620デフォルトの名無しさん:2008/07/22(火) 12:24:11
自己解決しました
621デフォルトの名無しさん:2008/07/22(火) 19:25:55
すんませんが・・・教えてください。

VB6から使えるコントロールで、msinet.dll を使わないで、独立してHTTP通信を
カプセルするものって無いでしょうか?Grapecity さんのは内部でmsinet使っている
らしくて・・・

有償ものでかまいません。出来れば日本語版がいいけど・・
622デフォルトの名無しさん:2008/07/22(火) 21:24:18
WinHTTPとかどうよ

「Microsoft WinHttpRequest Component」を参照追加して
Dim WinHttpReq As New WinHttp.WinHttpRequest
WinHttpReq.Open "GET", "http://www.microsoft.com/", FALSE
WinHttpReq.Send
Dim d() As Byte
d() = WinHttpReq.ResponseBody

だってさ。
623デフォルトの名無しさん:2008/07/22(火) 21:43:01
読むだけならopenだけでできなかったっけ?
624621:2008/07/23(水) 03:41:39
WinHTTP・・・調べてみます。xmlhttp ではなくって?

しばらく考えて・・・結局、NICを直接使うDLLなんかまず無いだろうから、
WinINet.dllを使っているレベルで妥協するしかないのかなと・・・
openURL のバグがたまに起きるのが面倒なのと、アップロード時(POST)に途中でちょん切れる
PCがたま〜にあるんですよね。古いPC相手にするのは面倒っす
625デフォルトの名無しさん:2008/07/23(水) 09:17:50
スレ違いな気もするのですが、VB6ならなんとか組めるので
ここで質問させていただきます。よろしくお願いします。

現在PCにLANで接続されたプリンタが約50台程登録されています。
プリンタはプロパティ>印刷設定>給紙で、印刷先のトレイを設定しています。
今回このPCを新しくする事になり、旧PCの設定が正しく新PCへ引き継がれているという資料を
提出しなければいけなくなりました。

この50台のプリンタ(物理的には20台)の印刷先トレイの設定情報を
textでも印刷設定画面の画像でも、なんでもいいので一覧で出力したいのですが
良い方法がありますでしょうか?

rundll32 printui.dll,PrintUIEntry /e /n "PrinterName"
で印刷設定画面までは表示できたのですが、給紙のタブへ切り替えたりする方法がわかりません。

rundll32 printui.dll,PrintUIEntry /?
で出てきた内容を見ていくつか試してみたのですが、目的とする物は出力できませんでした。

アドバイスよろしくお願いいたします。
626625:2008/07/23(水) 09:21:04
環境を書くのを忘れていました。
OS:Win2000(SP3)
プリンタ:CANON LBPシリーズ
VB:VB6(SP6)
627デフォルトの名無しさん:2008/07/23(水) 11:42:58
給紙のタブに切り替えるのはSendKeyとかでCtrl+Tab送ってあげればいいんじゃない?
悩んでるぐらいならハードコピーとって切り貼りした方が絶対早く終わると思うけど。
628デフォルトの名無しさん:2008/07/23(水) 22:42:33
どーせレジストリに格納されてるんだろうから、
regmonあたりで格納場所を決定して、あとは
リモートレジストリ経由で取ってまわったら終わりじゃないの。
629デフォルトの名無しさん:2008/07/24(木) 22:10:33
>>624
低水準なものが欲しいなら、Winsock使ったら?
630デフォルトの名無しさん:2008/07/26(土) 23:04:30
VB上でswfファイルを再生できるようにしたいのですがどのように組めば良いのでしょうか
webbrowserを設置してnavigate2でできるかと思ったのですが
httpから始まるものしか表示できません
631デフォルトの名無しさん:2008/07/26(土) 23:35:14
Flashのコントロールじゃだめなのかい?
632デフォルトの名無しさん:2008/07/27(日) 00:17:10
やってみたんですが配置した途端VBがエラーで閉じてしまって・・・
633デフォルトの名無しさん:2008/07/27(日) 00:29:20
そこまで面倒みきれんわ
634600:2008/07/27(日) 01:15:41
635デフォルトの名無しさん:2008/07/27(日) 12:59:09
>>634
ありがとうございます
636デフォルトの名無しさん:2008/07/27(日) 23:19:52
現在本を見ながら預貯金の金利計算プログラムを作っています。
本に書いてある通りに記述してるのですが
'変数の宣言と初期化
Dim presentvalue As Double = 0
Dim rate As Double = 0
Dim years As Double = 0
Dim futurevalue As Double = 0

'入力値の取得
presentvalue = Double.Parse(PresentValueBox.Text)
rate = Double.Parse(RateBox.Text) / 100
years = Double.Parse(YearsBox.Text)

'元利合計の計算
futurevalue = presentvalue * (1 + rate) ^ years

'元利合計の表示
FutureValueBox.Text = futurevalue.ToString()
入力値の取得の3行がうまくいきません、何故でしょうか教えてください。
637デフォルトの名無しさん:2008/07/27(日) 23:22:56
それVB.NETでしょ
638デフォルトの名無しさん:2008/07/29(火) 00:45:04
   ,;r'"´;;;;;;;;;;;;;;;;;;;;;;;;;;`ヽ、
         ,r'";;;;:::::;彡-=―-=:、;;;;;;ヽ、
        /;;ィ''"´  _,,,,....ニ、 ,.,_ `ヾ;;;;〉
         `i!:: ,rニ彡三=、' ゙''ニ≧=、!´  
        r'ニヽ,   ( ・ソ,; (、・')  i'  
         ll' '゙ ,;:'''"´~~,f_,,j  ヾ~`''ヾ.  
        ヽ) , :    ''" `ー''^ヘ   i!
        ll`7´    _,r''二ニヽ.     l
        !:::     ^''"''ー-=゙ゝ    リ
        l;:::      ヾ゙゙`^''フ    /
        人、      `゙’゙::.   イ
639デフォルトの名無しさん:2008/07/31(木) 08:08:07
>>636
実行時にPresentValueBox・RateBox・YearsBoxの何れかに
数値として認識できない値(未入力も含む)が入力されているのでは?

ちなみに、VB.NETの質問はこっちで。
ttp://pc11.2ch.net/test/read.cgi/tech/1212570454/
640デフォルトの名無しさん:2008/08/05(火) 19:38:59
VB6、今日はじめたばっかりだが早速はまった
private function s() as string
dim r_s as string
r_s = "hello world"
end function

private function ss()
dim h_s as string
h_s = s()
msgbox(h_s)
end function

でh_s = ""なんだ。。。
普通に関数の返り値をとってきたいだけなのにはまって竜。。。
CやC++、Java、各種スクリプト言語は、3年以上経験ありますが、VB系はじめてです
641デフォルトの名無しさん:2008/08/05(火) 19:45:15
>>640
いまさらVB6なんて、仕事?
functionには関数名と同じ名前の変数が暗黙で定義されててそれに代入すればreturn値になる。
昔のpascalに合わせたのだろうね。

private function s() as string 
  s = "hello world" 
end function 
642デフォルトの名無しさん:2008/08/05(火) 20:06:19
Thx、仕事なんですよ。はっきりいって乗り気は全くないけど、
仕事だから言語を選んでる余裕なんてにゃい。

そっか、名前あわせないといけないのかー

Type

end type
したやつを戻り値にしたりしないといけないんだが、それもおんなじかんじなんだろうね。
ありがとう、明日ためしてみるよ。
643デフォルトの名無しさん:2008/08/05(火) 21:16:08
ハァハァ。やっと外部エディタにEmacs使うようにして、VB6モードつくった。
あとピーターノートンVol1,2 合計8000円もしたぜ。。。注文した。

今日はこれでおしまい!
644デフォルトの名無しさん:2008/08/06(水) 20:04:53
>>643
口臭いよ
ブレスケアオススメ
645デフォルトの名無しさん:2008/08/07(木) 15:33:32
VistaでVB6使っていたんだけど、ロードエラーになってしまった。
UACをオフにしたらなおった。
他のPCでも同じ問題が出てる。なんかあったのかな。
646デフォルトの名無しさん:2008/08/07(木) 16:05:51
>>645
アプリケーションの実行時に
管理者権限与えないとダメなんだと思われ
647デフォルトの名無しさん:2008/08/07(木) 16:09:05
ウィニー3つくりたいんだけど、VB6でできます?
648デフォルトの名無しさん:2008/08/07(木) 16:16:51
お前じゃ無理。
649デフォルトの名無しさん:2008/08/07(木) 17:07:49
今からVB勉強するとしたら
VB6からか、それともVB2008のどちらが良いでしょうか?
650デフォルトの名無しさん:2008/08/07(木) 17:23:10
>649
普通に考えると.Netだが・・・
651デフォルトの名無しさん:2008/08/07(木) 17:50:55
Visual Studio .NET 2003 でしょうか?
652デフォルトの名無しさん:2008/08/07(木) 18:12:30
結局フリーのVB2008を使ってるのですが
Labelのサイズを変更しようとして、数値を入力しても
反映されません。何が原因でしょうか?
653デフォルトの名無しさん:2008/08/07(木) 18:19:44
AutoSizeが原因でした。
もっと調べてから質問するようにします。
申し訳ございません。
654デフォルトの名無しさん:2008/08/07(木) 20:19:09
>>649
VB6から覚える
 比較的簡単に習得できるが.netに移行した際、違和感を覚える
 仕事的にはVB6の案件はまだまだあるし、参考文献やサンプルコードが盛りだくさん
 それはそうと今からVS6やVB6手に入んの?

.netから覚える
 クラスの概念に対する知識が必須。ゼロからじゃ無理。Cでもやれ
 覚えた頃にVB6を触るとソースが短過ぎて(横に)びっくりする
 やるなら2005か2008。他はVista未対応なので先は短い
 C#もそう大差なくコード書けるようになる気がするようなしないような
 ただし仕事は開発の最前線に近い位置なのでそれなりに適応力が要る
655デフォルトの名無しさん:2008/08/07(木) 21:11:59
>>654
ありがとうございます。

VB6は後に入手方法がよくわからないのであきらめました。
今はフリーということもあって2008を使って、
簡単なプログラムを作って練習しています。

2008に関するサイトはあまりないようなので本を勝手勉強します。

ちなみに ビルト と コンパイル では全く違うのでしょうか?
656655:2008/08/07(木) 21:12:58
ビルト → ビルド
657デフォルトの名無しさん:2008/08/07(木) 21:17:15
>655
2008はスレ違い。
658デフォルトの名無しさん:2008/08/07(木) 21:19:57
すみません
659デフォルトの名無しさん:2008/08/08(金) 11:26:32
ビルドとコンパイルは、言語の基本的な用語だから、ググるとでるよ
ググるこつは「○○とは」が有名か
660デフォルトの名無しさん:2008/08/08(金) 11:27:18
Label1.Caption = Label1.Caption & Str(ban)&" "& Format"baik", "###,##0"&" "&kn &Chr(13)& Chr(10)

と入力すると、ステートメントのエラーとでます。
なぜでしょうか?
661デフォルトの名無しさん:2008/08/08(金) 11:32:23
すみません
Label1.Caption = Label1.Caption_& Str(ban)&" "& Format"baik",_"###,##0"&" &kn &Chr(13)& _Chr(10)
です
662デフォルトの名無しさん:2008/08/08(金) 12:32:45
>>660-661
たぶん「ここが悪いから」って教えたところで、次も聞きに来るレベルなので、
どっかのサイトのコピペ改造するんじゃなくて、この命令は何をしているのかを
理解しながらプログラム書いたほうがいい。

難しかったらまず繋がってるソースの部分を最小単位に分解しな。
今回の例で行くと
・アンダーバーによる行連結は使用しない
・&は1行に1個まで
って分解すればエラーの部分もわかるだろ。
663デフォルトの名無しさん:2008/08/08(金) 12:56:02
>>662
ありがとうございます。
試して分析してみます
664デフォルトの名無しさん:2008/08/08(金) 20:11:06
>Label1.Caption = Label1.Caption_& Str(ban)&" "& Format"baik",_"###,##0"&" &kn &Chr(13)& _Chr(10)

もし俺が上司なら死ねって即答するレベル
アホみたいな書き方せず一旦変数に入れて確認してみろタコ

まず、&を引っ付けるなクズ。スペース入れろ
Format"baik",_"###,##0" これは何だこれは
右辺にあるのに括弧無しか?ていうかstringをフォーマット?意味が分からん
baikが数値の入った変数として書くなら
〜 & Format(baik, "###,##0") & 〜 だろうが
何で半角スペースは" "と書いてんのに改行はChrにしてんだ、
それならChr(32)ってやれよ。っていうかラインフィールド込みなら Chr(13) + Chr(10)だろうが。vbCrLfって書けよタコ

Label1.Caption = Label1.Caption & Str(ban) & " " & Format(baik, "###,##0") & " "& kn & vbCrLf とするか
Label1.Caption = Label1.Caption & Str(ban) & Format(baik, " ###,##0 ") & kn & vbCrLf だろう
もっと言うなら
Label1.Caption = Label1.Caption &〜 これやめれ。一旦変数に入れろタコ
あとプリフィックスくらいまともにしてから質問しろ。こっちに解析させるな
665デフォルトの名無しさん:2008/08/08(金) 20:46:57
優しい上司だな
666デフォルトの名無しさん:2008/08/09(土) 09:12:21
LFはラインフィードだお
667デフォルトの名無しさん:2008/08/10(日) 03:21:21
>>664
優しい上司みたいだけどところどころに間違いが見当たるのはアレか?
「お前を試してたんだ」とかいう理由でか?w

素晴らしいな。
教えながらにして相手をテストするだなんてww
668デフォルトの名無しさん:2008/08/12(火) 12:14:57
VB6のリストビューをドラッグ&ドロップ可能にした時に、
順番を入れ替えた後の表示順で各アイテムのテキストを取得したいんですが。。。
.NetだとDisplayIndexで行けるんですが、VB6.0だと何か方法があるでしょうか?
ご教示願います。
669デフォルトの名無しさん:2008/08/12(火) 16:06:36
ビルトでもイインダヨ!
670デフォルトの名無しさん:2008/08/13(水) 01:26:37
>>664
>Label1.Caption = Label1.Caption &〜 これやめれ。一旦変数に入れろタコ

なんで駄目なん?
671デフォルトの名無しさん:2008/08/13(水) 01:41:35
駄目じゃぁない。>>664の趣味じゃね?
Forステートメントの中でやったら遅くなる等の害があるけど
最初のうちはそれでもかまわないと思うよ。
672デフォルトの名無しさん:2008/08/13(水) 01:54:57
>>671
プロパティ参照が時間かかるからですよね?
確かにForの中ならそうすべきかも知れませんが繰り返し回数にもよるし
一回だけしか参照しないのなら変数宣言して可読性が落ちる分
これもありって考え方もありますよね
個人的にはこんな細かいことを指摘する上司のが嫌だ・・
673デフォルトの名無しさん:2008/08/13(水) 02:00:12
時間掛かるのもあるかも知れんが、
Control = Control & 〜以降に計算式なり関数は入れるべきじゃあないな
変数同士くっ付けるだけならいいと思うが
674デフォルトの名無しさん:2008/08/13(水) 02:07:08
>>673
べきじゃないという根拠は?
好みで言ってるだけなら無視しますねw
675デフォルトの名無しさん:2008/08/13(水) 02:31:23
普通に考えてデバック面倒だろ。アホか
676デフォルトの名無しさん:2008/08/13(水) 02:34:48
格好つけてワンライナー気取って痛い目見る様が目に浮かぶ
677デフォルトの名無しさん:2008/08/13(水) 03:07:16
デバックでググったら254,000件もヒットして驚いた
なんだデバックって
678デフォルトの名無しさん:2008/08/13(水) 03:18:50
679デフォルトの名無しさん:2008/08/13(水) 14:27:09
デバカ
680デフォルトの名無しさん:2008/08/13(水) 14:50:25
デパガだろ
681デフォルトの名無しさん:2008/08/14(木) 21:54:27
職種が全くの別物に変わるね
682デフォルトの名無しさん:2008/08/17(日) 01:38:50
あるチェックボックスをチェックした時にあるコマンドボタンを使えるようにする場合、


Private Sub chkHoge_Click()

  cmdHage.Enabled = ( chkHoge.Value = vbChecked )

End Sub


みたいな書き方するのはよくないですか?
683デフォルトの名無しさん:2008/08/17(日) 01:50:58
ディレクトリにあるファイル一覧を表示して、マウスで、選択された状態(複数可)
のファイルパス名、一覧を配列で取得するような機能ないんじゃろか。。。
684デフォルトの名無しさん:2008/08/17(日) 02:50:24
ないよ。
685デフォルトの名無しさん:2008/08/17(日) 05:05:13
>>683
つーか、そういうのを作るのがプログラミングなわけで
686デフォルトの名無しさん:2008/08/17(日) 08:55:54
たった、そんだけの多くの人が使いそうな機能つくるだけでも、へたしたら半日かかる。
おまいが、もっと下手したら、17時におわってなくて、無能とよばれるだろう。

どっかのVBアプリからひろってくるのをお勧めする。
687デフォルトの名無しさん:2008/08/17(日) 09:25:21
見つけて拾ってくるのもなにげに時間かかったりする訳だが。
完全に要望にマッチしてなかったらカスタマイズしなきゃならんし。。。
688デフォルトの名無しさん:2008/08/17(日) 13:07:25
ふつうのfile open dialogに不満?
689デフォルトの名無しさん:2008/08/17(日) 17:41:07
fileopendialogのmultipleかなんかtrueにしたら似たような事できたよな。
690デフォルトの名無しさん:2008/08/17(日) 23:00:25
>>675
アホはおまえ
何を優先するかの問題で好みにすぎん
すぐアホとか言う奴は何も考えてない奴に多いなw
691デフォルトの名無しさん:2008/08/20(水) 16:27:10
環境上VB6でやらざるを得ません。
XP256MBでVB2008とかは論外で。

DBがMYSQLなんですが、
V5あたりになったとたんに、ODBC含めて
まともに動作しません。

経験された人おられますか?
スレ違いでしょうか?
692デフォルトの名無しさん:2008/08/20(水) 16:30:28
>XP256MBでVB2008とかは論外で。 
開発にはきついけど、動作環境としてはぎりぎり範囲内だよ。
693デフォルトの名無しさん:2008/08/20(水) 18:50:45
10万もあれば環境全部そろえてお釣りが来るだろ?PC買えよ
694デフォルトの名無しさん:2008/08/20(水) 19:25:38
そんな予算ある仕事じゃないのでしょう
695デフォルトの名無しさん:2008/08/20(水) 19:36:40
1台くらいなんとかなるだろ?もしかして学生?
696デフォルトの名無しさん:2008/08/20(水) 21:46:18
まあそんなに大きい会社じゃないけど
10 PC 以上あれば
そんな簡単に、全部買い換えってわけにはいかないんです。
697デフォルトの名無しさん:2008/08/20(水) 21:54:20
環境が実装仕様に影響を及ぼそうとしているのに、10PC程度も買えないとはどんな糞会社なんだよ。
698デフォルトの名無しさん:2008/08/20(水) 21:58:40
レンタルで借りればいいのに
10台くらい必要な開発ならそれくらいの予算は軽いだろ
699デフォルトの名無しさん:2008/08/20(水) 21:59:24
oracle蔵すらまともに動かない気がするが、仕事にならんだろそれ
700デフォルトの名無しさん:2008/08/20(水) 22:12:51
やはりこのスレだ。
口悪いけど、その通り。
ただ、ここは postgres と VB6 とかはダメ?
だもんで、スレ違い?
701デフォルトの名無しさん:2008/08/20(水) 22:13:50
口悪いとは失礼だな
702デフォルトの名無しさん:2008/08/20(水) 22:20:45
失礼しました。
他のところは素人ばっかで話にならないの。
口が悪いのは、自信があるということかと。
そういう意味です。
703デフォルトの名無しさん:2008/08/20(水) 22:33:55
というか、いまからVB6で新規案件かよw
libmysqlclientでも直接叩いとけw
704デフォルトの名無しさん:2008/08/20(水) 22:36:33
ODBCはもともと規格がはっきりしないというか、
MSから分かれて長いからVB6から使えるかどうかは微妙なのよ。
PosgresやMySQLのODBCを使うつもりなら直接ODBCのAPIを使うつもりじゃないとな。
ADO-OLEDB-ODBCブリッジ経由だとまあ期待しないこと。
705デフォルトの名無しさん:2008/08/20(水) 22:38:19
>>691
MySQL5から文字コードがUTF8に変わったからじゃないでしょうか?
違ってたらすみません。
706デフォルトの名無しさん:2008/08/20(水) 22:53:24
VB6でやるしかないから、ここに相談してるんでしょ?

ODBCが怪しいのは、なんとなく感じてました。
有難うございます。
707デフォルトの名無しさん:2008/08/20(水) 23:05:46
しかし
ODBCのAPIか〜〜
なんか道遠いな〜
ま、やってみます。
708デフォルトの名無しさん:2008/08/20(水) 23:42:45
ダラダラ遠回りしてる時給分でPC買えよ
709デフォルトの名無しさん:2008/08/21(木) 10:18:47
確かに時間の無駄っぽい。
SQLserverも考慮してみますわ。
PG全部のDBアクセスをAPIに変えるのも
VB2008用にコンバートするのも、さすがに腰がひける。
またMSが仕様をいきなり変えないとも限らんし。
なんせ200本以上あるから頭がいたい。
禿げはしそうにないけど、全白髪はありえそう。
710デフォルトの名無しさん:2008/08/21(木) 20:04:27
sqlserverはやめとけって。移行するとなると面倒だぞー。
711デフォルトの名無しさん:2008/08/21(木) 21:25:06
やっぱ、ここのレスだと、くじけずにすむ。

そりゃ、Oracle でやれればいいんだけど
今回事情が複雑で、DB用にもう200〜300万出してくれとは
ちょっと言えない状況なんでね。

とりあえず、今日 SQL鯖2005 はインストールしたんで
試してみます。
その結果次第で再考ですかね。
712デフォルトの名無しさん:2008/08/21(木) 22:37:56
あ、申し訳ない。
レッスン と スレッド がごっちゃになって
「スレ」を間違えがちなんです。
713デフォルトの名無しさん:2008/08/21(木) 22:41:46
oracleって無料じゃないの?
714デフォルトの名無しさん:2008/08/21(木) 23:12:16
postgresqlかMysql4じゃだめなのかい?
715デフォルトの名無しさん:2008/08/22(金) 00:10:24
あのね
みんな優しいね。
話がループしてんじゃん。
まあ、だからここが好きなんですけどね。

無料の ORACLE  あれば、紹介してください。
POST と MY は ODBCに問題があるんで
SQL鯖 を入れて明日テストする予定なんです。

ほんとに、ここは退屈しないね。
716デフォルトの名無しさん:2008/08/22(金) 00:20:52
XEが無料だけど、Oracleはこういうバージョンを出しっぱなしで後のフォローをしないことが多いからなぁ〜。
VB6と組み合わせるならOO4Oの方がまともかな。
odbcやoledbだと空文字の扱いが問題になることが多い。
717デフォルトの名無しさん:2008/08/22(金) 00:31:33
いかにも自分は賢いみたいな言い草で書いてるけど
ODBC3.51だか使ってるかキャラセット間違ってんだろ
十中八九後者だと思うけど単純にコーディングが糞なだけかも知れん

ロクにPC変える経費すら出せん所見ると、入れたSQLserver2005って
まさかExpressEditionとか言わないだろうな。
718デフォルトの名無しさん:2008/08/22(金) 06:12:08
たしかにMysql5では、UTF8で俺も苦労したことはある、とくにCSVデータの取り込み。
1000万レコードくらいあるうち800万がSJISで半角入り、のこりEUC、JISだったなぁ。
もうRubyスクリプトで、1レコードごと、1要素ごとにエンコーディングチェックして変換していった。
でも、結局なんとかなった。
VB6でもODBCで楽しようとしなけりゃいけるはず。
719デフォルトの名無しさん:2008/08/22(金) 10:07:26
とりあえず SQL2005 でやってみたら
あっさり動いたみたいです。
しゃくだけど、やはりMS同士のほうが愛称いいんでしょうかね。
文字化けもしないし。
あれやったり、これやったり、・・・
まるでトライアスロンやってるような気分。
しかし、なんか悔しっすよね〜。長いものにはまかれろ、みたいな。
720デフォルトの名無しさん:2008/08/22(金) 17:20:34
1日かけてデータの移行もやってみましたが、大きな問題も
無いようです。排他とかの問題は出る可能性もありますので
いきなり、乗り換えるつもりはありませんが。
ただ、こういう手もあるんだったら、しばらく環境は今のまま
MY 4.0 で流しながら、横でチマチマやってみようと思います。

もともとサーバー2台は同じ環境で実績のある 4.0 の予定で
いたところ、突然、4.0 が MYSQL HOME からいなくなったのが
今回のドタバタの発端なんで。・・・
(私も)突然こちらに飛び込んできて、お騒がせしました。
いろいろな助言含め相手してもらって助かりました。
一人でハマッていた自分には心強かったです。
721デフォルトの名無しさん:2008/08/22(金) 21:44:09
>>720
SQLServerの商用版買うの?
722デフォルトの名無しさん:2008/08/22(金) 23:58:19
当面は今の MY 4.0 で運用しながら様子をみて 5.0 がこのままで
支障が発生する様だったら、たちまちは、無料の SQL2005 であれこれテストして
まともに動くようなら、それでしのぎながら商用版も検討する可能性はあります。
チマチマというのは、その間にいろんなDBで様々なテストをしてみる。
という意味です。
今回いろいろな情報もらったので。ありがとね。
723デフォルトの名無しさん:2008/08/23(土) 01:41:48
色んなDBでってことは…

SymfoWAREも試すのか
大変だな
724デフォルトの名無しさん:2008/08/23(土) 01:48:06
どっからどう見ても頭沸いてるアホなんだから構わずに放置しといてやれよ
725デフォルトの名無しさん:2008/08/23(土) 07:54:55
informixも忘れないであげて
726デフォルトの名無しさん:2008/08/23(土) 15:20:58
とりあえず一段落したんで、ODBC の API にかかろうとしたんですが、
こりゃ本末転倒ではないかいな・・・と。
助言のとおりで、フリー系はみるからに仕様が??(一般資料が無い)
逆にまだ調べれば、なんとかなりそうなのはMS。
(オリンピックは終わったけど、)なんか100m走でスタートラインには
いるけど向きは逆で、競技場出入り口向いているような感じですか。
フリー系で接続部品が怪しい時は使わない。根性でやる!・・と
たしかにそんな気がしてきました。
727デフォルトの名無しさん:2008/08/23(土) 19:30:45
あとは金銭面ですが、今回のこのシステムに関しては非常に特殊ですので
ユーザーさんの件についてはコメントできませんでした。申し訳なかったです。
今回出てきたDBについては、きちんと再調査します。
ただ、さすがにもう、これ以上はスレ違いと思いますので。
728デフォルトの名無しさん:2008/08/23(土) 20:01:38

なぁ、ここはお前の日記帳じゃないんだぜ?

729デフォルトの名無しさん:2008/08/23(土) 20:42:57
でも何の返事も返ってこないよりは、まだいいと思う。
730デフォルトの名無しさん:2008/08/23(土) 21:41:35
まだいいとかの問題では無い
731デフォルトの名無しさん:2008/08/23(土) 23:31:01
申し訳ない。
今回、思いのほか、いっぱいの助言もらって助かったんです。
その結果を伝えようとしたら、日記帳みたいになってしまったのかもしれません。
でも、これから先の話はDBになってしまうので、
ここのスレでは規約違反になると思ったんです。
732デフォルトの名無しさん:2008/08/23(土) 23:34:04
いいかげんにしろ!しつこい!
733デフォルトの名無しさん:2008/08/24(日) 00:09:07
じゃあね
734デフォルトの名無しさん:2008/08/24(日) 00:10:55
まぁな。DB程度でつまづくような奴はスレ立てればいい
735デフォルトの名無しさん:2008/08/24(日) 01:07:19
50才過ぎてスレ立てるほど体力無い!
今後、この話題は無しにしてください。
736デフォルトの名無しさん:2008/08/24(日) 02:44:20
ここは良いスレと思うんです。
いざとなったら、色々な人が助けてくれるでしょ?
まあ、歳、ばらしちゃったから言うけど
いろいろ見てきて、こんな面白くって頼りになるとこは、あまりない。
と、思う。
もう少し大事にしてあげてもいいと思う。
と、言ったら
また、くどい!
とか言われるんですかね。
737デフォルトの名無しさん:2008/08/24(日) 02:54:59
50過ぎでここまで稚拙な文を書く人を見たのは初めてだ
無駄に時を過ごしたんですね
738デフォルトの名無しさん:2008/08/24(日) 03:07:52
ありがと。
50才まで一生懸命生きてきたから時間がもてるの。
で、俺のことはいいから
自分の時間を大事にしましょうね。

それに、ここはVB6のスレじゃなかったっけ?
VB6に人生感があるならOK
でなくてもプログラムでもOK

言っておきたいのはスレ荒らしじゃないよ。
なんか似てるだけで。
739デフォルトの名無しさん:2008/08/24(日) 03:47:50
まさに馬齢を重ねけり
740デフォルトの名無しさん:2008/08/24(日) 04:04:42
ほんとに潮時なんで引揚げます。
741デフォルトの名無しさん:2008/08/24(日) 04:12:07
煽るなよ低脳PG共が
742デフォルトの名無しさん:2008/08/24(日) 12:49:17
Access経由且つDAOでやるとか、方法は様々だと思うけど
50にもなって社内で意見求める知能もないのはオhル
743デフォルトの名無しさん:2008/08/24(日) 14:38:28
2008にしたらツールボックスの項目が表示されません。
テキストにドラッグするってことなんだが・・・
744デフォルトの名無しさん:2008/08/24(日) 14:39:58
>>743
VB.NETはスレ違い
745デフォルトの名無しさん:2008/08/24(日) 15:43:22
2chで朝4時にかきこむ50歳なんていねぇよ。
746デフォルトの名無しさん:2008/08/24(日) 15:45:15
早起きだなあ
747デフォルトの名無しさん:2008/08/26(火) 11:43:03
VB6.0を扱っています。
コマンドボタンの代わりにキーボードからの入力をしたいのですがどういうプログラミングをしたらよろしいのでしょうか?
例:1を押したらここのプログラムが実行される。
748デフォルトの名無しさん:2008/08/26(火) 11:58:43
>>747
【KeyDown】【KeyPress】【KeyPreview】
74978:2008/08/26(火) 22:53:11
VB6.0でコマンドボタンを押したときにシフトキーをキーボードで入力したということを起こせないでしょうか?
750デフォルトの名無しさん:2008/08/26(火) 23:03:03
まあなんと哲学的な文章。
751デフォルトの名無しさん:2008/08/26(火) 23:12:50
>>749
VBの機能ではたぶん無理。

つ【GetAsyncKeyState】
75278:2008/08/26(火) 23:13:31
>>750
そう冷やかさないで、日本語が変なのは分かってたけど上手い文章が思いつかなかったんですよ。
753デフォルトの名無しさん:2008/08/26(火) 23:14:32
キーボードのドライバを作り、それにむかってシフトキーを押したというアクションを打たせればOK
75478:2008/08/26(火) 23:14:31
>>751
ありがとうございます。
75578:2008/08/26(火) 23:16:15
>>753
おお…ありがとうございます。
756デフォルトの名無しさん:2008/08/27(水) 21:54:08
>>749
シフトキー入力のルーチン作成、それをパラメタ付でCALL
75778:2008/08/27(水) 22:13:24
>>756
そのルーチンが作れなくて困ってるんじゃ
758デフォルトの名無しさん:2008/08/27(水) 23:19:14
>>757
同感、どこで困っているのか不明
759デフォルトの名無しさん:2008/08/27(水) 23:45:32
シリアル接続でロボットアームを操作してシフトキーおさせるのだ
760デフォルトの名無しさん:2008/08/28(木) 00:27:40
>>759
最高、笑える。
それ大好き
761デフォルトの名無しさん:2008/08/28(木) 04:01:47
星新一が書いた本にでてきた機械を思い出した
762デフォルトの名無しさん:2008/08/28(木) 09:07:43
あったね〜。
763デフォルトの名無しさん:2008/08/28(木) 11:13:01
マジレスするとWin32Apiのkeybd_eventかSendMessageを使えば可能(指定ウインドウに対して)
764デフォルトの名無しさん:2008/08/28(木) 15:25:18
あの、
コンパイルして作るファイル名にあわせて
Constで指定する値を変えるとか
そういうことってVBじゃできないもんでしょうか?
765デフォルトの名無しさん:2008/08/28(木) 17:19:08
ConstにせずともApp.EXENameから取得すればいいんじゃなかろうか?
766デフォルトの名無しさん:2008/08/28(木) 21:01:35
ん〜 ConstでいけたらVBセロになっちまうような (寒)
767デフォルトの名無しさん:2008/08/29(金) 20:27:43
clone て どう使えばいいんでしょうか
768デフォルトの名無しさん:2008/08/29(金) 20:33:59
不思議な島の?
769デフォルトの名無しさん:2008/08/29(金) 20:44:14
それはフローネ。
770デフォルトの名無しさん:2008/08/30(土) 09:37:48
FTPでファイル送信をwininet.dllを使って実装しています。
しかし、コネクションのタイムアウト設定だけがどうしても実現出来ません。
ネットで調べあさったところ、
InternetSetOptionStr→InternetSetOptionの順で設定すればいけそう
というところまでは辿り着けましたが、それでも無理でした。
デバックしたところ上記2つの関数はともに戻り値正常で来てました。
どなたかお力をください。

環境
VB6
WindouwsXP pro SP2
IE7
771デフォルトの名無しさん:2008/08/30(土) 22:57:12
>>770
wininet は BUG だらけだから使わないほうが良いとの記憶が
BASP とかではだめなんですか?
772デフォルトの名無しさん:2008/09/01(月) 21:41:09
どうのこうのと言っても、2000シリーズはうまく出来てる。
そろそろVB6も限界かな。
773デフォルトの名無しさん:2008/09/02(火) 00:10:35
このコードで実行するたびに結果が違うのはなぜですか?
参照設定=>CAPICOM v2.1 Type Library
Sub test()
With New CAPICOM.EncryptedData
    .Content = "ぬるぽ"
    .SetSecret "ガッ"
    Debug.Print .Encrypt
End With
End Sub

先頭64文字は同じだから後は不要とか?
774デフォルトの名無しさん:2008/09/02(火) 19:48:42
>>771
遅レスで申し訳ない。
メインの処理は実現出来ているので、タイムアウト設定のためにフリーのDLLをクライアントに登録してくれとは言いにくいです。
IEのバージョンなど、環境に左右されるのでwininetもどうかとは思うのですが、それでもやはりユーザーはwininetを選ぶと思います。
でも、こういうDLLがあるんだと参考になりました。ありがとう
775デフォルトの名無しさん:2008/09/02(火) 20:00:13
XP以降ならSxS COM使えば、COM登録は要らないけど、そういう話ではない?
776デフォルトの名無しさん:2008/09/02(火) 20:26:01
>>774
ありゃま。事情がそれでは頑張るしかないですね
普通のDLLの感覚でいくと「なんだこりゃ」みたいな予想外の動きをするので
使い方の発想を変えてしまうのもありかも。あとは納期の問題ですか
777デフォルトの名無しさん:2008/09/02(火) 20:52:22
>>774
マイクロソフト 及川卓也殿は wininetデバッグバージョンを使用して調べなさい
と、のたもうておられます。こんなん有りなんかね

778デフォルトの名無しさん:2008/09/02(火) 21:00:35
ものすごく臭い鼻くそが大量に出たんですが、どうしたらいいでしょうか。
よろしくお願いします。
779デフォルトの名無しさん:2008/09/02(火) 21:00:51
>>776
>普通のDLLの感覚でいくと「なんだこりゃ」みたいな予想外の動きをするので
>使い方の発想を変えてしまうのもありかも。
とは、どういうことでしょうか

>納期の問題
納期よりやはりそのDLLをインストールしてもらうだけの説得力がないということですかね。
780デフォルトの名無しさん:2008/09/02(火) 21:02:22
>>777
なかなか厳しいですね。
暇そうな奴つかまえて調べさせるかw
781デフォルトの名無しさん:2008/09/02(火) 21:39:24
>>778
即耳鼻科!常識
782デフォルトの名無しさん:2008/09/02(火) 22:04:13
>>779
マジレスになるかどうかごめん
wininet は思い通りに動作しない
フリーズしている訳ではない
とすれば時間監視はこちらのPGで計算する
時間監視して、目的のファイルがUP出来たかどうかチェックする
当然UPした容量確認は必要です。
783デフォルトの名無しさん:2008/09/02(火) 22:18:08
応援 やっちまったなー
784デフォルトの名無しさん:2008/09/02(火) 22:26:44
>>882
ああ、なるほど。
それなりのチェックが必要になるわけですね。
もうタイムアウトは無視して、割り切ってゴリゴリ書いていきますw
わざわざありがとうございました。
785デフォルトの名無しさん:2008/09/03(水) 08:23:05
マルチスレッドにすればいいのでは
786デフォルトの名無しさん:2008/09/03(水) 09:59:51
あの〜、VB6でPictureボックスに絵を書かせているのですが、Pictureボックスの
上に別のウィンドウが重なった後、そのウィンドウをどかすと重なった部分の描画
が消えています。上のウィンドウをどかした後に自動的に再描画させるのってどう
やったらいいんでしょう? なにとぞよろしこ
787デフォルトの名無しさん:2008/09/03(水) 10:02:55
AutoRedraw=True
とRefreshで再描画しないか?
788786:2008/09/03(水) 15:58:51
あんがと。Refreshが足りなかったんだな。
AutoRedraw=True だけしかしてなかった。
789デフォルトの名無しさん:2008/09/03(水) 16:30:33
if msgbox("aa") = cancel then

vbCancelと書くところを間違って、cancelと書いてしまいました。
option explicitしていて、cancelという変数も宣言していないのですが、
エラーなしでした。cancelとは何なのですか?

この動きは、msgbox("aa")がとばされました。
790デフォルトの名無しさん:2008/09/03(水) 18:56:50
>>789
cancel は基本登録文字列なんです。boolean と考えるのが近いです。
Validate が わかりやすいかもしれませんよ
791デフォルトの名無しさん:2008/09/03(水) 19:25:28
>>790 有難う御座います。
792デフォルトの名無しさん:2008/09/04(木) 19:10:24
>>789
失礼しました、FormのUnload、のほうがわかりやすいような
ここで Cancel = true とすると、Unload イベントがキャンセルされます。
つまり、テコでも終了しない画面が一行で出来てしまう便利?なものです。
どちらかというと、普通の感覚と逆の動きでしょうか。
793デフォルトの名無しさん:2008/09/04(木) 19:11:30
Public Const MB_OK = &H0&

これの

&H0&
↑この&は&Hで16進数という意味ですが

&H0&←この最後の&ってどういう意味?
794デフォルトの名無しさん:2008/09/04(木) 19:15:40
即値の型がLongであることを示すとかなんとか
795デフォルトの名無しさん:2008/09/04(木) 19:16:30
INTとかSHORTとかLONGとかの意味のなかのどれか
796デフォルトの名無しさん:2008/09/04(木) 20:34:33
Public Const MB_OK = 0
Const で 0 なら型指定は意味ないのでは
ただ MB_OK の使いかたによるかも
右の&はLongでしょう
797デフォルトの名無しさん:2008/09/04(木) 20:34:35
VB6でintもshortもないだろ
798デフォルトの名無しさん:2008/09/04(木) 21:07:54
>>797
そう思う。VBは数値型なら型変換しちゃうから

Public Const MB_OK = &H0&

Private Sub Command1_Click()
Call sub1(0)
Call sub2(0)
Call sub1(&H0&)
Call sub2(&H0&)
End Sub
Private Sub sub1(P As Long)
If P = MB_OK Then
MsgBox "OK"
End If
End Sub
Private Sub sub2(P As Integer)
If P = MB_OK Then
MsgBox "OK"
End If
End Sub
全部 OK 表示
799デフォルトの名無しさん:2008/09/04(木) 21:27:29
あ、currency とか single double は別よ。その場合による
800デフォルトの名無しさん:2008/09/04(木) 21:48:46
VBスクリプトでしたいことがあるのですがうまくできません・・・

1.コマンドプロンプトを立ち上げる
2.ディレクトリを変更するためカレントディレクトリする。(何故かこうしないとダメ・・・環境変数の設定が不可みたい?)
3.コマンドラインツールを立ち上げテキストに記述されたコマンドを発行させる。
4.テキストの数だけ実行をさせる。

Dim objWshShell ' WshShell オブジェクト
Dim strNewFolder ' 移動するフォルダ
Dim i
Dim strEXE

Set objWshShell = WScript.CreateObject("WScript.Shell")
If Err.Number = 0 Then
strNewFolder = "D:\Test"
objWshShell.CurrentDirectory = strNewFolder
objWshShell.Exec("cmd.exe").StdOut.ReadAll
Else
WScript.Echo "エラー: " & Err.Description
End If
For i = 1 to 15
strCOM = "XXXX.exe @ D:\HEPPOKO" & Right("000" & CStr(i), 4) & ".txt"
Set oExec = WshShell.Exec(strCOM)
WScript.Sleep(300000)
Next
Set objWshShell = Nothing
801デフォルトの名無しさん:2008/09/04(木) 22:12:19
>>800
要するに、テキストで登録された一連のコマンドをVBスクリプトで
実行させたいとの意味でしょうか?
802デフォルトの名無しさん:2008/09/04(木) 22:27:47
ありがとうございます。
そういいたかったんです。
うまく言えずすいません。
803デフォルトの名無しさん:2008/09/04(木) 22:49:20
>>802
VB6 なら 訳ないんですが、VBスクリプトはインターネットに特化してるんで
ローカルの処理に無茶苦茶弱いんです。
でも、これも、お客様の要望ならしかたないですが、時間かかるかもしれません。

だれか、わかる人いますか?
804デフォルトの名無しさん:2008/09/04(木) 22:57:57
本来なら OCX 作るほうが早いんですけどね
805デフォルトの名無しさん:2008/09/05(金) 00:21:04
無理。諦めろ。
806デフォルトの名無しさん:2008/09/05(金) 00:27:44
>>793
例えば、trim(A)とtrim$(A)という書き方がある。
結果は同じだが、この$には
VB4(?忘れた)以前の書き方の互換と、$でString型を明示する意味があると何かで読んだ記憶がある。
String型明示することで、体感出来ないくらいほんのちょっとの速度UPしているとかなんとか。
まあ今のPC性能を考えると、完全に趣味の領域らしいが。
ほんとかどうかは知らんが、同じようなレベルじゃないかなと思ってる。
807デフォルトの名無しさん:2008/09/05(金) 00:29:32
初歩的ですまないです…VB6の環境すらないもので
OCXってなんでしょうか?すいません 知らなくて…
スクリプトでなんとか出来る気がしてたんですよね(泣)
808デフォルトの名無しさん:2008/09/05(金) 00:34:08
>>806
まったく違う
知らないなら書き込むなよ
809デフォルトの名無しさん:2008/09/05(金) 00:35:46
>>800
その一連のコマンドは、vbs内で起動したcmd.exeの中で動かさないといけないのか?
810デフォルトの名無しさん:2008/09/05(金) 00:37:21
>>808
俺は806の言う事は間違ってないと思うぞw
811デフォルトの名無しさん:2008/09/05(金) 00:38:18
まあスピード云々の話は文脈的に余計な印象はあるけどね。
812デフォルトの名無しさん:2008/09/05(金) 00:39:35
>>806
その手の関数は、戻り値の型が$なしだとVariant、$ありだとStringってヘルプに書いてあったはず。
813デフォルトの名無しさん:2008/09/05(金) 00:46:10
外部コマンドだからcmd.exeの外だろ
814デフォルトの名無しさん:2008/09/05(金) 00:54:12
すみませんが
http://namidame.2ch.net/test/read.cgi/slotj/1216400588/
のスレで確率についてバトルしています

問題はサイコロで1が8回連続して出る確率です
バカが多すぎて疲れました
頭の良い皆様、論破してください
お願いします
815デフォルトの名無しさん:2008/09/05(金) 00:58:48
>>807
多少違うかもしれないけど Flash Player と ほぼ同じ機能と思ってもらって
いいと思います。作ってしまうと簡単ですよ。
816デフォルトの名無しさん:2008/09/05(金) 01:10:52
それに、みんな無茶言い過ぎですよ
817デフォルトの名無しさん:2008/09/05(金) 01:17:07
>>814
正確に創られたサイコロなら、確立は1/6
バカを相手にするな!アリエネ
818デフォルトの名無しさん:2008/09/05(金) 01:35:45
1が八回連続出る確率がわかるんだったら間違いなく宝くじ買う
普通に考えると10の八乗でしょうけど
819デフォルトの名無しさん:2008/09/05(金) 01:38:53
違う6の八乗か
820デフォルトの名無しさん:2008/09/05(金) 01:54:04
1/100776697 です
明日というか今日仕事なんですけど
821デフォルトの名無しさん:2008/09/05(金) 06:24:49
>>800です。
みなさんありがとうです
そうですねー
VBSでcmd起動させて→exeのある場所へカレントディレクトリして→
exe起動+コマンド発行といった具合のつもりです。
822デフォルトの名無しさん:2008/09/05(金) 10:15:18
ぶっちゃけバッチファイル生成して、それを実行した方がよくね?
823デフォルトの名無しさん:2008/09/05(金) 10:47:02
>>820
そういう事態を招かないように周りにアラート出し時なよ…
824デフォルトの名無しさん:2008/09/05(金) 12:22:58
でもいっぱいテキストあったらバッチは大変な気がします…
バッチってFORステートメントみたいのって使えましたっけ?
825デフォルトの名無しさん:2008/09/05(金) 12:30:43
>>824
gotoでラベルに飛ばすのがデフォ
826デフォルトの名無しさん:2008/09/05(金) 12:32:46
OSのバージョンによるけどFOR /F が使えるならそうとうのことが出来る。
for /? でヘルプ見るべし。
827デフォルトの名無しさん:2008/09/05(金) 12:46:58
>>825
スパゲッティー愛好家乙
828デフォルトの名無しさん:2008/09/05(金) 16:00:16
べつに、バッチファイルをvbsで生成してもいいわけだし。
829デフォルトの名無しさん:2008/09/05(金) 18:19:22
cmdの標準入力に書き込め
830デフォルトの名無しさん:2008/09/05(金) 19:35:38
>>822
>>828
ぶっちゃけ派3人目
テキストの内容に法則性があるなら、言語はなんでもいいからbat作成PG
作ったほうが早くね?議論している時間で出来ているような気が
831デフォルトの名無しさん:2008/09/05(金) 19:50:51
>>814
すんません。時間が時間で鮭も入っていたもんで、ワヤ文書でした。
要は 1/6 * 1/6 * 1/6 * 1/6 * 1/6 * 1/6 * 1/6 * 1/6 が常識で、
あの手の論議はしまいには、じゃあ、完全に 1/6 が出るサイコロができる確率も
必要だろうが!
みたいな話になって、万有引力とはなんだ。相対性理論とはなんだになって、
最後は宇宙ってなんだ?で、ドンズマリ。相手にしないほうが賢明
832デフォルトの名無しさん:2008/09/05(金) 19:59:28
うぜえよお前こっちまで引っ張ってくるな
833デフォルトの名無しさん:2008/09/05(金) 20:09:05
画像ファイル加工についての質問です。
vb6.0でファイル(.bmp)を読み込み
指定した文字を貼り付け表示させたい場合、ファイルを読み込んだ後
どのような処理を行えばよいのでしょうか?
例)ある画像の真ん中に「こんにちは」という文字を貼り付ける
834デフォルトの名無しさん:2008/09/05(金) 20:11:13
「表示」だけならラベルでいいだろ
835デフォルトの名無しさん:2008/09/05(金) 20:24:14
>>833
そりゃ、アノテートでしょうか。
一般的にだとちゃんとした部品買うのが一番ですが高いよ
素人方法で良いなら、image でよみこんで Label かぶせてハードコピーの
要領で 別の image なり picture に転送
当然、picture と label ではむりですよ。
836デフォルトの名無しさん:2008/09/05(金) 20:38:41
>>833
Form を透明にする API はわりとまともに動作した。
文字の Form を透明にしてかぶせるのもありかも
837デフォルトの名無しさん:2008/09/05(金) 20:44:56
>>833
時間があるなら、画像の上にグラフィック命令で書く
838デフォルトの名無しさん:2008/09/05(金) 20:58:05
>>833
1.上書きしたい文字をペイントでも良いので作成
2.それをピクチャーボックスで読み込んでドット位置を拾って格納
3.下地の画像を読み込んで
4.2.のデータを読んで上書き
839デフォルトの名無しさん:2008/09/05(金) 21:13:57
>>833
手っ取り早いのは >>834 の方法で画面表示して、そのハードコピーをとる。
それをリーダーで読み込んで出来上がり。ってのもありのような。
840デフォルトの名無しさん:2008/09/05(金) 21:16:45
悪い、リーダーで読む必要はないですね。
841デフォルトの名無しさん:2008/09/05(金) 21:34:48
>>833
ちょいと力技になるけど。
1:PictureBox(pic1)を一つ用意して普通に画像を読めるように設定して読み込む。
2:pic1.CurrentXとpic1.CurrentYに文字を置く場所の左上の地点を設定する。
3:pic1.print "hoge"で書きたい文字を書く。
4:pic1.savepicture()辺りを使って保存する。
842デフォルトの名無しさん:2008/09/05(金) 21:37:35
割と真面目な相談です。
Vista では VB6 の開発環境は保証しないとのことですが、
これは、どこまで本当なんでしょうか?
さすがにインストールは控えているんですが。
843デフォルトの名無しさん:2008/09/05(金) 21:48:42
サポートしてないだけ
何があっても対応はしないよと言っている
使えないわけではない
844デフォルトの名無しさん:2008/09/05(金) 21:58:33
>>843
折り返しの質問で申し訳ないです。
SP6は当てといたほうが良いのでしょうか。
845デフォルトの名無しさん:2008/09/05(金) 22:14:52
説明不測ですね。
HPなんかは XPとVISTAと リカバリが2種付属だし
VB.net から VB2500 に戻したりした経路があるので
VISTA もまた ME みたいに消えてしまう可能性もあるように思えるんです。
846デフォルトの名無しさん:2008/09/05(金) 22:22:16
開発用に環境作ればいいだけだろ?馬鹿か?
847デフォルトの名無しさん:2008/09/05(金) 22:44:43
>>834
835です。タイミングが悪かった。
そちらを素人と言った訳ではないので。
848デフォルトの名無しさん:2008/09/05(金) 23:15:48
誰か教えてくれ。他の板で見たんだが、VBでは5 Mod 2.5は0になるのか?
VBAは1になるんだが。
849デフォルトの名無しさん:2008/09/05(金) 23:16:14
>>846
最近のソフトは大きいから、あれやこれや、やっているうちにdiskが
ごちゃごちゃになってしまうので即フォーマットで再インストール
いちいちSP当てていられないから、そのまま使用している訳です。
SP当ててないので、検証できないので、聞いているのにバカ呼ばわりですか。
850833:2008/09/05(金) 23:22:14
説明不足で申し訳ないです。
今回の目的はFormに表示させるわけではなく
.bmpファイルの加工です。

最終的にやりたいこと。
.txtから送信したい文字列を抽出

.bmp(テンプレートファイル)に文字列を貼り付け
・文字列は情報、住所、電話番号などをそれぞれ指定の場所に

.bmpを.tifファイルに変換しFAX送信 

>>834 >>836
表示だけでなく加工をしたいのです。

>>835
アノテートという単語を初めて知りました。
 ググってみましたが私の目的と違うようです。

>>837 >>838
貼り付ける文字列が多いため厳しいかもしれません。

 いくつか教えていただいた中では>>841
 方法が適しているのでしょうか?
851デフォルトの名無しさん:2008/09/05(金) 23:26:40
>>849
そうです
馬鹿だよお前は
852デフォルトの名無しさん:2008/09/05(金) 23:37:54
>>850
多分それで正解でないでしょうか。
一番理解できたとのことでは。
853841:2008/09/05(金) 23:41:51
>>850(>>833)
それが目的なら>>841の方法でもこなせますね。
文字を書き出す始点のみ調整すれば一応やっつけ仕事ではありますが、こなせる筈です。
仕事としてこなされているみたいなので、あまりカンペに頼るのはヨクナイ事なのですが…。まぁいいか。

'以下のサンプルは、作業中のフォルダにあるtest.bmpを引っ張り出してきて最下部付近に文字を書き込んでtestRE.bmpを出力します。
'オブジェクト名Pic1でPictureBoxを用意しておいて下さい。
Private Sub Form_Load()
Dim Texter As String
'<TODO>(変更箇所)
Texter = "hogehoge"
Form1.ScaleMode = vbPixels
With Pic1
.ScaleMode = vbPixels
.Appearance = 0
.AutoRedraw = True
'l-TODO-->>追加設定事項をここに。出力結果を変更する場合は--TODO->>lまでの間を弄ればOK。
.AutoSize = True
.Font.Name = "MS ゴシック"
.Font.Size = 18 * (72 / 96)
.ForeColor = RGB(0, 0, 0)
Pic1.Picture = LoadPicture(App.Path & "\test.bmp")
.CurrentX = 2
.CurrentY = .Height - .FontSize * (96 / 72) - 2
'--TODO->>l追加設定事項をここに。(l-TODO-->>の終点)
Pic1.Print Texter
.Refresh
SavePicture Pic1.Image, App.Path & "\testRE.bmp"
End With
End Sub
854841,853:2008/09/05(金) 23:44:08
なお、完全に位置が調整できないので注意が必要です。
855デフォルトの名無しさん:2008/09/05(金) 23:48:30
>>848
少数の問題では?
5 を 2.5 で割ったら余りは 0
5 を 2 で割ったら余りは 1
VB だと書き方によるけど 2.5 が 四捨五入で 3 と判断されたりして
5 MOD 3 で 2 になることもあるかも
思いがけない動きをしますから、いろいろ試してみること
ごめん。私はそこまで確認していません
856デフォルトの名無しさん:2008/09/05(金) 23:59:15
銀行丸めの話?
857833:2008/09/06(土) 00:01:49
>>852
>>841の方法でやってみます。

>>841 >>853
サンプルまで教えていただき大変助かります!

この方法で作成してみたいと思います。
ありがとうございました。
858デフォルトの名無しさん:2008/09/06(土) 00:04:19
>>853
やっぱり仕事か〜
ここはプロが多いからね
自分もスレは素人なんで気づかなかったんだけど、ソース表示には
なんかコツがあるんでしょうね。スペースとかタブの位置合わせは
無視されてしまうんですかね。全部ベタになってしまう。
859デフォルトの名無しさん:2008/09/06(土) 00:12:38
>>856
OK!
なんだけど、落ちを聞かせて
860デフォルトの名無しさん:2008/09/06(土) 00:14:58
>>848
Mod演算子のヘルプ
解説
剰余演算子は、数式 number1 を数式 number2 で除算し、その余りを演算結果 result として返します。
このとき浮動小数点数は整数に丸められます。
たとえば、次に示す式では、変数 A (演算結果 result) の値は 5 になります。
A = 19 Mod 6.7

んで、整数への丸め処理だけど、小数部分がちょうど 0.5 のときは
「最も近い偶数」に丸めるはずなので今回の 2.5 は 2 になるから
5 mod 2.5 の結果は 1 が返ってくる。
861デフォルトの名無しさん:2008/09/06(土) 00:16:49
>>859
落ちとは?
ぐぐればわかる話じゃないのか?
862デフォルトの名無しさん:2008/09/06(土) 00:21:44
virtualboxでいいじゃn
863853:2008/09/06(土) 00:22:38
ソースをそのまま貼り付けてしまってもOK。
半角スペースは表示上では削られますが、
2chブラウザ「Jane」のアンカー等によってポップアップされたレスを見ると
インデントが残った状態で表示されるので、ポップアップからコピーすると
インデントされた構造を維持したままテキストデータを取り出せます。お試しあれ。
864853:2008/09/06(土) 00:23:25
アンカーワスレテタ。
>>858
865デフォルトの名無しさん:2008/09/06(土) 00:27:05
>>861
860さんのと同意見です。
ここのスレ(サーバーの反応が)遅かったり早かったりするから難しいんですよ。
「銀行の丸め」が、シャレかと思ったんです。で、落ちがあるのかと
866デフォルトの名無しさん:2008/09/06(土) 00:33:51
>>865
まじめに答えたのに何がシャレだ?オチだ?
難しいとは何だよこの野郎ふざけんな
867デフォルトの名無しさん:2008/09/06(土) 00:37:39
>>864
Thank You
868デフォルトの名無しさん:2008/09/06(土) 00:38:37
'実験結果は以下の様になりました。(VB6.0仕様)

Dim a As Long, b As Long, c As Long
Dim af As Double, bf As Double, cf As Double
Dim av As Variant, bv As Variant, cv As Variant
a = 19: b = 6.7: af = 19: bf = 6.7: av = 19: bv = 6.7
c = a Mod b
cf = af Mod bf
cv = av Mod bv
Debug.Print "C=" & Format(c) & ",CF="; Format(cf) & ",CV=" & Format(cv)
'実行結果
'C=5,CF=5,CV=5
869デフォルトの名無しさん:2008/09/06(土) 00:40:37
VB5、6の仕事しかやったとこがない31歳。
何歳まで現役でいれるんかな・・・
870デフォルトの名無しさん:2008/09/06(土) 00:42:44
>>866
悪かった。まさか銀行員とふんで返事しているとは思わなかったのよ。
明日も仕事なんでこのへんで勘弁して。ごめんなさい
871デフォルトの名無しさん:2008/09/06(土) 00:47:16
銀行員?何の話だ?
お前だけが明日仕事だと思うなよ
何がしたかったんだ?こいつ
872デフォルトの名無しさん:2008/09/06(土) 00:52:35
>>863
ありがとう
873848:2008/09/06(土) 10:15:57
>>860
やっぱ5 Mod 2.5はVBAと同じで1なの?
tp://msdn.microsoft.com/ja-jp/library/se0w9esz(VS.80).aspx
こちらを読んでVBは違うのかと思ったよ。
874848:2008/09/06(土) 10:17:58
>>868
やっぱVBAと同じ結果だね。
875デフォルトの名無しさん:2008/09/06(土) 10:24:51
>>830さん どうもです。
バッチ作成するプログラムですか???
その前に一つ気になりますがForのカウントアップを遅らせるためにSleep関数
みたいなことをしようと思っていたんです・・・
でもコマンドだと??ど素人ですみません・・・
876デフォルトの名無しさん:2008/09/06(土) 13:20:10
やけに盛り上がってんな・・
877デフォルトの名無しさん:2008/09/06(土) 13:22:21
>>873
そこは.NET 2002以降だから、6以前と異なっていても不思議ではない。
878デフォルトの名無しさん:2008/09/06(土) 14:24:11
VBの関数呼び出しが全く分かりません。誰か教えて戴けませんでしょうか?

 C では
// 関数の定義
void abc(void)

// メインルーチン
void main(void)
{
abc(); // 関数名
}

void abc(void)
{
---
}

上記をVBでは、どの様に表現すれば良いのでしょうか?
素人な質問で申し訳ありませんが、宜しくお願いします。


879デフォルトの名無しさん:2008/09/06(土) 14:36:26
>>878
基本的に最初にフォームが1つ作られた状態で始まるのがデフォルトになっている。
ただ、Cでやらかすvoid main()から開始されるプログラムと
ほぼ同じ形にしたい場合は、(Form自体も自分でこさえていく形)
VB6.0以前のスレなので、とりあえずVB6.0で動作する方法を紹介してみる。
・新規作成する。
・最初に用意されているformを解放する。
・標準モジュールを一つ作る。
・標準モジュールの中に『Sub main()』と記述する。
880デフォルトの名無しさん:2008/09/06(土) 14:47:51
バッチだとsleepコマンド
881デフォルトの名無しさん:2008/09/06(土) 15:12:35
>>879
>>880

878 です。有難うございました。
今から挑戦をしてみます。
882デフォルトの名無しさん:2008/09/06(土) 18:24:33
>>878
VBにはプロトタイプ宣言はありません。
(DLLの関数を呼び出す時にDeclareと言うのを使いますが別の話です)
プロジェクトの新規作成を終えたところから話します。
プロジェクト(P)→標準モジュールの追加(M)で標準モジュールをプロジェクトに追加します。
プロジェクトとはmakeファイルみたいなもんです。
標準モジュールがCの「ファイル」に近いです。フォームは「ウィンドウ付きのクラス」です。
名前がModule1になっているので好きな名前に変えてください。
そこにPrivate Sub Main()〜Abc〜End Sub を書いてください。Privateはexternじゃないみたいなもんです。
プロジェクト(P)→Project1のプロパティ(E)で、「スタートアップ」を
Form1からSub Mainに変えてください。ついでに「プロジェクト名」も適当に変えてください。
Form1はいらないので、右クリックして「開放」で切り離してください。
Mainと同じ標準モジュールにPrivate Sub Abc()〜End Subを書いてください。
(大きなプログラムなら他のモジュールに書いたりするのはいうまでもありません)
Abc の中には MsgBox "Hello, World!" とでも書いておいてください。
F5か実行(R)→開始(S)でダイアログが出ればOKです。
保存するとModule1.basとProject1.vbpが保存されます。(名前を変えていないとき)
.vbwはいりません。どれもメモ帳で開けます。
コンパイルはファイル(F)→Project1.exe の作成(K)です。
exeの実行にはランタイムが必要ですが最近のWindowsには入っています。
ちなみにモジュール先頭にOption Explicitがあるときは「変数の宣言を強制する」文なので消さないでください。
長くなっちゃいましたが引かないでください。
883デフォルトの名無しさん:2008/09/06(土) 18:28:29
長いついでに、voidはSubですが、
値を返したければFunction Abc() As Integer のように書いてください。
仮引数は(ByVal A As Integer)のように書いてください。
ポインタ渡しのようなことは ByRef と書いてください。
これくらいわかれば入門書等が読めるようになるような気がします。
884デフォルトの名無しさん:2008/09/06(土) 18:29:27
うざ
885デフォルトの名無しさん:2008/09/06(土) 20:16:23
スレちがいとはヒハンできないが
たしかにわかりやすいが
なんかビミョー
886デフォルトの名無しさん:2008/09/06(土) 20:46:52
>>882
もう少し要点を絞った方が良い。
要らない手順の説明を省いてみると良い感じになるとは思うが。
C++等を理解している人向けの説明と、
初心者向けの説明が混同している所を改善してみると幾分か読み易くはなる。
887デフォルトの名無しさん:2008/09/06(土) 20:50:53
>>883
Cの**はVBでは**との説明ですが
CとVBで互いに不能なことも簡潔な説明であれば聞きたい。
Best5で。 たしかに文が長すぎる。
土曜日だからいいだろ。なんかみんな引いてるみたいだし。
888デフォルトの名無しさん:2008/09/06(土) 20:53:12
>>886
かぶった。同感です
889デフォルトの名無しさん:2008/09/06(土) 21:12:40
890デフォルトの名無しさん:2008/09/06(土) 21:24:00
なんじゃこりゃ〜〜
891デフォルトの名無しさん:2008/09/06(土) 21:25:03
>>887
言語仕様そのものが違うと言ってしまえばそれまでだけど、
C言語は制御プログラムとして優秀。
基本的にポインタを用いて他のプログラムを丸ごとくっ付けていく荒業が可能。
基本仕様には最低限の機能しか付いていないと解釈するか、
基本的な機能が全て付いていると解釈するかは人による。
全てのプログラムを無理矢理くっ付けるのが楽と言うのは絶大なメリットではある。
が、いかんせん取っ付き難いのと開発に時間が掛かってしまうのが難点。
プログラムの動作速度が速いので、大量の処理を要するプログラムを作る場合はコレしか使えない。

一方、VBは設計に重きが置かれている。
まず一つ目に、設計やデバッグのし易さ、短期間開発が可能と言うメリットがある。
しかし、>>850辺りに出ている様な、画像のコントロールの中で文字列を扱いたかったりすると
その分野に対して適正な状況に調整されているため、(画像はピクセル単位、文字はポイント単位)
結果から言って、方向性の違う分野との整合性が悪いと言うデメリットがある。
他にも、『String型とByte型配列の間でデータを移動させよ』と言うと、
VBプログラマの2〜3割は頭を抱えてしまうほど基本的なデータ型の定義が意外とめんどくさかったりする。
ただ、逆に知らなくても使えるのはメリットであると言える。
特に、デバッグのし易さは群を抜いている為、個人的には使い良い言語(?)だと思いますね。
892デフォルトの名無しさん:2008/09/06(土) 21:37:37
>>891
お世辞でもいいから、最後の(?)ないほうが良くね
893デフォルトの名無しさん:2008/09/06(土) 22:23:39
>>891
日本語の翻訳をするとは思わなかったが

C言語
言語仕様としては制御系
ポインタの概念があるので荒業が可能
基本仕様を利用してどこまで創れるかは技量しだい
とりくみにくいのと時間が掛かるのが難点
動作速度が速いので大量のデータが扱える

VB
業務用のシステム設計はやり易い
短期開発が可能
画像、文字列の概念をVBが処理するため
使いやすい反面、凝った処理は逆に手間がかかる
細かいデータ変換もVBが処理してしまうため
使用者がその知識がないまま使えてしまう
個人的には使い良い言語と思う

これであっってる?
894デフォルトの名無しさん:2008/09/06(土) 22:28:51
間違っている
895デフォルトの名無しさん:2008/09/06(土) 22:41:00
そっかー
896デフォルトの名無しさん:2008/09/06(土) 23:29:55
10年前にやっとけって話だな、というのが正直な感想。
897デフォルトの名無しさん:2008/09/06(土) 23:51:21
気分転換に
だれか 無線メッシュネットワーク接続機器で安価な装置知りませんか?
898デフォルトの名無しさん:2008/09/07(日) 00:04:37
VBにはVARIANT型とかいうわけ分からない型があるとかわけのわからない事逝ってる奴いるよな。
ほんと無知って怖いよね。
899デフォルトの名無しさん:2008/09/07(日) 00:20:56
>>898
VB6でシステム組んでるの
そのLANのやりかえが必要なんで相談しただけ
900デフォルトの名無しさん:2008/09/07(日) 00:41:58
無知は怖くない。
無関心な奴のほうがよほど怖い。
しかもこの業界はそんなアホが多い。
わからない仕事振られたら調べろ。ツテを頼ってでも聞け。掲示板に書き込め。
自分の仕事だという責任をちょっとは持ってくれ。
プログラムの解決方法なんて今は腐るほどあるやろ。
何もしない奴に限って、大変とか精神的に参ってるとかほざきやがる。
そんなやつ他業種にいってもクビだろ。マジ視ね。PCの前で固まるなら辞表書けクソヤロウ!!!
901デフォルトの名無しさん:2008/09/07(日) 00:44:27
いやVB6って時点で終わってるんだが
902デフォルトの名無しさん:2008/09/07(日) 00:52:09
メッシュネットワークで相談したかっただけなんですが
903デフォルトの名無しさん:2008/09/07(日) 02:05:12
2CHが終わってるような
904デフォルトの名無しさん:2008/09/07(日) 02:26:26
>>902
だったらだたのスレ違い
905デフォルトの名無しさん:2008/09/07(日) 02:48:22
>>900
感同上
敬語どころか日本語もまともに使えない奴がギャーコラ喚くな!疎っとうしい!
VB6で終わっていると思うのなら、わざわざ書くな!
ここで会話している人間がVB6しか出来ないと思っているなら大間違いだ!
906デフォルトの名無しさん:2008/09/07(日) 03:12:26
>>905
終わってるな
さすがVBしかできない人間だね
907デフォルトの名無しさん:2008/09/07(日) 04:19:31
>>906
なんでそう言い方するかね
Del と JAVAscp はいまいちなじめない
PHP と Perl はなんとなくやっちまう
JAVAsv は クラスになかなかなじめなくて
C は好きだけど時間がなかなか
COBOL はOK VB は最近目がついていかない
Ruby はここのところ遠ざかってる
908デフォルトの名無しさん:2008/09/07(日) 04:22:17
背伸びしちゃって
結局VBしかできないんでしょ?
こんなとこで見栄張ってどうするの?終わってるよね?
909デフォルトの名無しさん:2008/09/07(日) 04:29:05
C#もできるよ!
910デフォルトの名無しさん:2008/09/07(日) 04:51:52
頼むよ
事実は事実。嘘はついてません
911デフォルトの名無しさん:2008/09/07(日) 05:04:50
そりゃAS400のRPGもやったよ
これ以上言ったら個人情報漏洩だぞ
シャットダウンです
912デフォルトの名無しさん:2008/09/07(日) 06:15:36
またあの50過ぎの死にぞこないか。
913デフォルトの名無しさん:2008/09/07(日) 06:52:57
あたり
内容みりゃわかるわな
914891:2008/09/07(日) 11:24:33
>>892
言語と言うよりはインタプリタに近いという表現の方が適切だと思いつつ、
インタプリタと言う言葉が出てこなかった。気に障られたならスマソ。m(_ _)m
>>893
VBの方に追加。
・デバッグに掛かる時間が非常に短い。
・データ変換を厳密にやろうとすると煩わしくなる。
915デフォルトの名無しさん:2008/09/07(日) 12:56:26
VBのよさは生産性に尽きるだろうな。
苦労して作ったAPPは当然業務上必要なものだろうが、
目の前でちょこちょこっと100Stepとかで作った補助ツールの方がユーザーには100倍喜ばれたりするもんだ。
コミュニケーションを図れる→頼られる→安定した仕事
となりやすいと思ふ。
まあエンドユーザーとの間にシステム部門を挟まない場合だが。
916デフォルトの名無しさん:2008/09/07(日) 15:08:56
>>914 に準じて
VBって完全なインタプリタでもなく、完全なEXEでもなく、中間コードを作成して
VBRuntimeの上で動作するって、この中間コードって何なんでしょう?
917デフォルトの名無しさん:2008/09/07(日) 17:56:57
ぐぐれ
918デフォルトの名無しさん:2008/09/08(月) 22:28:33
ぐぐってみましたが
vbで作成したEXEをRuntimeなしで実行出来るようにコンパイル
できるツールはないんでしょうか?
919デフォルトの名無しさん:2008/09/08(月) 22:34:27
ない。
920デフォルトの名無しさん:2008/09/08(月) 22:36:57
Delphiで作り直す
921919:2008/09/08(月) 22:38:29
というかVB6は既に終息した製品なんで、あきらめろ。だいたいクラスもろくに使い物にならない
言語なんてコピペの山を築くだけで生産性とか関係ないから。
922デフォルトの名無しさん:2008/09/08(月) 22:55:52
はい。有難うございます。といっていいのかどうか。理解はしました。
923デフォルトの名無しさん:2008/09/08(月) 23:03:30
>>820
Delphiなら可能なんでしょうか?
VBscriptでプログラム(コマンドラインツール)の実行をしてテキストにあるコマンドを読み込ませたいのですがうまく出来なくて悩んでおります。

Option Explicit
On Error Resume Next

Dim objWshShell
Dim strCmdLine

Set objWshShell = WScript.CreateObject("WScript.Shell")
If Err.Number = 0 Then
strCmdLine = "C:\Program Files\○○○\○○○.exe @ D:\TEST\oraSQL.txt"
objWshShell.Exec(strCmdLine)
If Err.Number = 0 Then
WScript.Echo strCmdLine & " を起動しました。"
Else
WScript.Echo "エラー: " & Err.Description
End If
Else
WScript.Echo "エラー: " & Err.Description
End If

Set objWshShell = Nothing

○○○.exeをフルパス指定で起動してテキストを流すといった様にやっています・・・
でもプログラムは立ち上がれどテキストのコマンド発行が何故か出来ません。
実際に手作業でテキストから発行させるときも環境変数の設定をしていない(したくない?)のが原因ですが行う動作としては、
コマンドプロンプトを立ち上げcd /d C:\Program Files\○○○とディレクトリを変更して
○○○.exe @ D:\TEST\oraSQL.txtとしないとコマンドが発行されません。。。。
どうしたらよいのでしょうか?
925デフォルトの名無しさん:2008/09/08(月) 23:35:15
>>920
パンチミス
Delphiならできますか?
926デフォルトの名無しさん:2008/09/08(月) 23:41:18
Delphiなら特別にランタイムを必要としない実行ファイルを作れるかってこと?それは可能。
927デフォルトの名無しさん:2008/09/08(月) 23:51:43
>>926
あ、そうなんですか
やってみようかな。
928デフォルトの名無しさん:2008/09/08(月) 23:56:54
delphiいいでー
929デフォルトの名無しさん:2008/09/09(火) 00:03:19
>>924
スレ違い。
 Excel VBA質問スレ Part8
  http://pc11.2ch.net/test/read.cgi/tech/1219673793/
930デフォルトの名無しさん:2008/09/09(火) 00:09:00
>>929
スレちがいはわかる。
でも、いいんではないの、それくらい。
花火大会みたいな。
931デフォルトの名無しさん:2008/09/09(火) 00:29:05
ふむ。そだな。

>>924
とりあえず、
>cd /d C:\Program Files\○○○とディレクトリを変更して
>○○○.exe @ D:\TEST\oraSQL.txtとしないとコマンドが発行されません。。。。
と、云う状況で再現できているなら、
スクリプト内で、それ同様にコマンドを発給してみて下さい。

cdが指定されていない場合、作業フォルダが必要な処理はcdを設定しないといけなかった様な気が…。
932931:2008/09/09(火) 01:10:31
動くかどうか解らないけど。考えられる要素をもう一つあげてみる。
>>924
×strCmdLine = "C:\Program Files\○○○\○○○.exe @ D:\TEST\oraSQL.txt"
○strCmdLine = "C:\""Program Files""\○○○\○○○.exe @ D:\TEST\oraSQL.txt"
933デフォルトの名無しさん:2008/09/09(火) 01:57:41
>>931
ちょっと頭、良すぎ
質問者と一度会話してみては?
通じるのなら何も口出しはしませんが。
こないだの質問と同じではないの
我々は一般市民なので
934デフォルトの名無しさん:2008/09/09(火) 02:08:20
またキチガイの50代の爺か
935デフォルトの名無しさん:2008/09/09(火) 10:27:16
すみません、質問ですが、

vbpファイルをテキストで開いたとき、
Object={…}1.0#0; hoge.OCX
のような表記がありますが、この括弧内の"…"は
パスか何かなのでしょうか?

環境変数とかは変えた覚えがないのですが、
同じObject={…}の表記があるVBプロジェクトを開こうとすると
ファイルが読み込めませんという表示がされます。
ちなみに読めない表記があるocxファイルはsystem32に
恐らく入っているファイルです。

ちなみにプロジェクトは自作ではなく他人が作ったもので
経緯ははっきりしませんが、ちょっと前までは読めないという
表示は出ず、同様のvbpは正常に開いていました。

多分、何某かのパスがいつのまにか変更されているとは思いますので
Object={…}がパスであればそのパスの表記か何かを変更しようと
思うのですが、"…"が何の表記を表しているのかどなたか
よろしければ御回答お願いいたしますm(_ _)m

ちなみに使用しているのはVB6.0 sp5です
936デフォルトの名無しさん:2008/09/09(火) 13:00:49
>>935
CLSIDのことか?
開けないってことはレジストリにそのファイルが登録されてないんだろjk
937デフォルトの名無しさん:2008/09/09(火) 14:44:25
regsvr32
938デフォルトの名無しさん:2008/09/09(火) 19:45:25
>>934
おいおいおい、何でもかんでも俺にふるな。
シニぞこないはいいけど、キチガイは勘弁してくれ。
最近良い子でいるんだが
939デフォルトの名無しさん:2008/09/09(火) 21:26:49
>>938
の追記
VB6のスレでVB6は終わりだ。と言ってるの見たら、そうだろうと思うしかない。
だもんで、50爺は退散
940デフォルトの名無しさん:2008/09/09(火) 23:26:38
>>924です。
有難うございます。出来ました。
何度も何度もやったのですが結局出来たのはこれです。
strCmdLine = "cmd.exe /c (cd /d C:\Program Files\○○○\) & (○○○.exe @D:\TEST\oraSQL.txt)"
でもこれで出来るんですけどやたらPC重くなりエクスプローラで「応答なし」になるんですよね・・・
なんでだろ???
941デフォルトの名無しさん:2008/09/09(火) 23:49:50
やっちまったなー
942デフォルトの名無しさん:2008/09/10(水) 21:24:10
さすがにそこから先はスレ違いじゃないか?詳しくはわからんが
943デフォルトの名無しさん:2008/09/10(水) 21:38:17
ですよね・・・
でも書く場所はわからないでつね・・・
とりあえず善しにして置きます。
944デフォルトの名無しさん:2008/09/10(水) 22:11:06
面倒だからsendkeysでやっちゃえよ
945デフォルトの名無しさん:2008/09/11(木) 00:42:25
pythonで書き直す
946デフォルトの名無しさん:2008/09/11(木) 09:59:35
色んなAPIを使い倒す
947デフォルトの名無しさん:2008/09/11(木) 10:03:15
キーボードをドライバレベルでキー送信したいのですが、参考となるWebページや
手順等御座いますでしょうか。
どうか宜しくお願いいたします。
948デフォルトの名無しさん:2008/09/11(木) 19:34:44
>>947
>>763 では駄目で、もっと機器に近い低レベルでってことですか?
949デフォルトの名無しさん:2008/09/11(木) 20:49:04
よろしくお願いします
開発言語VB6(SP5) 実行環境WinXPpro SP2です。
プログラムの実行状況を記録するために
下記のようなログを記録するサブルーチンをプログラムに組み込んでおります。
Sub LogRec(logFileName As String,pgmStatus As Long)
Open logFileName For Append As #1
Print #1,"Status=" & Hex(pgmStatus)
Close #1
End Sub

上記サブルーチンを5分毎に呼び出すようにプログラムしています。
同様のサブルーチンを組み込んだプログラムが3本あり、
3本のプログラムは非同期ですが、同時に24時間運用で実行され並行処理しています。


ある日のことですが、その3本のプログラムが異常動作をしました。
原因を解析するために、残されたログファイルを見ると、3本とも最後にNull文字(Chr(0))が20〜50バイトほど埋められた形で残っていました。

個人的にはOSかVB6ランタイムの異常ではないかと思うのですが、このスレの住人の皆様の見解をお伺いしたいと思います。
なお、この症状は1回限りで再発していません。
950デフォルトの名無しさん:2008/09/11(木) 20:54:23
おもいっくそ仕事の課題じゃないか
951デフォルトの名無しさん:2008/09/11(木) 21:25:57
>>949
もしも、このソースの通りならまずいよ。
5秒ごとに3本が繰り返し動作していて #1 固定はない。
最低でも FreeFile を使用しないと。
非同期ならなおさら
952デフォルトの名無しさん:2008/09/11(木) 21:32:17
あ違う。5分ですね。
だから、めったに症状が発生しない。
953949:2008/09/11(木) 21:32:25
>>951
すんません
要約して記載しました
実際にはFreefileを使っています
954デフォルトの名無しさん:2008/09/11(木) 21:39:58
>>953
そりゃ要約しすぎ。
この手を本気で相談したいなら妙に小細工されたら
こちらも時間の無駄だ。
955デフォルトの名無しさん:2008/09/11(木) 21:43:42
>>949
同時にその処理が発生した時にどこにデータが書かれるか考えれば原因は解る。
因みに、OSやVB6ランタイムで発生したエラーではなく、
コードの書き方が根本から間違っている為に発生したエラーです。

てか、ヘルプファイル(Openにカーソル合わせてF1押してみて)にまんま乗ってるんだが…。orz
956デフォルトの名無しさん:2008/09/11(木) 21:57:24
>>954
すみません
全文をそのまま載せると冗長な部分が多いので、かいつまんで要約させていただきました。

具体的にお聞きしたいことは
・ファイルのOpen/Closeを繰り返すことには問題がないか?
・Print #ステートメント関連で、何か不具合情報があるのか?
  (というか、この古いスタイルの文法を使用していても問題が無いかどうか)
ということです

>>955
もちろんログファイルの名前は全て異なっております
957デフォルトの名無しさん:2008/09/11(木) 22:08:06
>>947はどうせDirectInputのゲームのチートツールでも作りたいんだろ
こういう子は放っておいた方がいいよ
下手に教えると不正行為や業務妨害の幇助になりかねないし

つーか、VBしか使えない癖に、DirectInputを騙くらかすツール作ろうなんて烏滸がましいにも程があるw
958デフォルトの名無しさん:2008/09/11(木) 22:13:20
>>956
ここで「問題ない」って言われたら君は納得すんの?
959949:2008/09/11(木) 22:21:35
>>958

> ここで「問題ない」って言われたら君は納得すんの?

いえ、そうではなくて、何か問題をご存じなら、教えを乞いたいと願ったわけです。
960デフォルトの名無しさん:2008/09/11(木) 22:28:27
いきなりリセットかかってチェックディスクが走ったりすると0で埋まってるように見える可能性はあるがな
961デフォルトの名無しさん:2008/09/11(木) 22:33:07
VB6に限っても全世界で10年使われてるわけで、
普通に考えればファイル操作のような一般的な仕事で問題があるなら
とっくに修正されているか、すくなくとも問題の所在そのものは明らかになってるでしょ。

949のコードのバグと考える方が自然だ。
949のここでの不可解な行動(まるで壊れた車と別の車を持参して修理しろ、といっているようだ)
だけ見ても疑うに足る理由だ。
962デフォルトの名無しさん:2008/09/11(木) 22:37:08
>>956
なんか様々な意見があるので微妙ですが、
とりあえず
その方法で Open/Close を繰り返しても問題ないでしょう。
古いスタイルでも、よほど凝ったことをしないと誤動作はしません。
作り方に問題があると思います。
オープンにしてもらえない限り、これくらいの返答しか出来ません。
963デフォルトの名無しさん:2008/09/11(木) 22:42:08
>>957
すまん。こちらの無知だろうが、漢字が読めん。
964949:2008/09/11(木) 22:54:09
>>961
いえ、たいしたコードではないので、バグの可能性は少ないと思います
しかしながら既知の問題点があるかもしれないと思い、導入後3年以上経って発生した問題の結論を模索するために質問させていただきました。
3年間立ち上げっぱなしのPCなので、OSのせいにしてしまいたいところが正直なところです
ご解答いただきました皆様、誠にありがとうございました。
965デフォルトの名無しさん:2008/09/11(木) 23:12:01
キチガイだなこいつ
お前も50歳なのか?
966デフォルトの名無しさん:2008/09/11(木) 23:28:34
そういう業務についてて困ってる子はこの世界に不慣れなんだよ
二度と俺にふるな
967デフォルトの名無しさん:2008/09/11(木) 23:33:27
968デフォルトの名無しさん:2008/09/11(木) 23:40:41
>>966
あんただれ?
969デフォルトの名無しさん:2008/09/11(木) 23:47:24
スレ違いの優等。どっか行けば
レッスラ誤o 早く行きなさいね。
970デフォルトの名無しさん:2008/09/12(金) 00:42:27
>>964
まあまあまあ、お前がそのコードにバグがある可能性が少ないと思うのと同じように、
俺はWindowsやVBにバグがある可能性は低いと思ってしまうわけだ。
まだどっちとも言えないけどさ。
971デフォルトの名無しさん:2008/09/12(金) 02:33:31
>>949
何と言えば良いか解らないが、何故かエラートラップしないんだな。
原因は何となく解る気がするのだが、そのソースからその原因が解らない以上、答えられない。
解を求めるならば、もう少し掘り下げてくれると嬉しいが、無理しない程度に頼むわ。
守秘義務違反に引っ掛かるのも本末転倒だしな。

一応、以下については不具合の情報は無いみたいですぞ。
>・ファイルのOpen/Closeを繰り返すことには問題がないか?
>・Print #ステートメント関連で、何か不具合情報があるのか?
972デフォルトの名無しさん:2008/09/12(金) 07:06:49
たぶんHDDの故障だと思う。ソフトウェア屋はなぜか
ハードは疑わないんだよなぁ
973デフォルトの名無しさん:2008/09/12(金) 10:24:32
例の粒子加速器の影響じゃね?
974デフォルトの名無しさん:2008/09/12(金) 20:09:09
>>972
よく人に頭悪いねって言われるでしょう君って。
975デフォルトの名無しさん:2008/09/12(金) 20:42:15
VB6っていつまで続くんだろうね

自分、都内零細製造会社に勤める三十路のカス設計者(PG、デジタル回路)で
シリアル通信のプログラム作るのにVB6使わせてもらってるんだが
俺みたいな学生の時少しやってたレベルがVB6でプログラム作って売っていいもんだかジレンマに苦しむ(製品のオマケレベルだが・・・
.NET、2005も使ってみたが、過去の遺産と生産性考えると、うちの会社じゃ6の方が断然コスト良いんだよねぇ・・・

「始めてのオブジェクト☆志向」みたいな本読んで
打ちひしがれている場合じゃないな・・
976デフォルトの名無しさん:2008/09/12(金) 20:43:45
.NETでVB6風に書くのがいちばんおかいどくだろう。#はだめよ。レガシー機能がない。
977975:2008/09/12(金) 21:27:19
>>976
Verilog、SystemCとかファームウェアにも接する機会があるんですが、
RTLレベルの無駄無いPG見て、たまに「俺何やってるんだろ」って思うんですよね・・・
純粋なソフト屋さんで喰ってけるようにCの勉強もう一度やり直します。。。
978デフォルトの名無しさん:2008/09/12(金) 23:48:14
>>977
「純粋」なソフト屋で食っていくなら、需要の多い言語やOSの勉強するべきだろう。
今は昔になる業界なんだから、需要に沿って渡り歩くのが長生きするコツじゃね。
979デフォルトの名無しさん:2008/09/13(土) 14:24:43
そうむ みたいにUNIXオンリーってとこで働けたらそりゃしあわせだわ。
980デフォルトの名無しさん:2008/09/14(日) 01:23:57
カス設計者 の表現は 良くない。と、思う。
981デフォルトの名無しさん:2008/09/14(日) 11:39:10
お通夜か?
982デフォルトの名無しさん
>>975
ここは人生相談の場所じゃない
しかし、かなり悩んでいるようなので少しだけ
言語は関係ない。自分のやりかたでやればいい!