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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/10/22(日) 20:39:53
ここは 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/

※「まず自分で調べる」クセを身につけよう。
0693デフォルトの名無しさん2006/12/20(水) 09:50:46
今日からVB6始めた小学生か。
もう冬休みに入ってるとしたら北海道や東北か?
0694デフォルトの名無しさん2006/12/20(水) 10:03:19
>>693 北海道は25日頃から
 内地のほうがはやいんじゃなかったっけ?

北海道は冬休みは1/18ごろまで
0695デフォルトの名無しさん2006/12/20(水) 10:17:55
>>693-694
おまえらマジで邪魔だから氏んでくれない?
0696酔いちくれ ◆J0rwikii8c 2006/12/20(水) 11:14:33
>>692
PutIni
っていうのは、きっとオマイの中で宣言している、そういう関数なんだろう。
引数がセクション、キー、値、INIへのフルパスの。

セクション、キーは別はそんな風に直書きでもいい気もするけど、嫌なら
「変数」じゃなくて、「定数」に汁。

const INI_PATH As String = _
"\\192.168.60.253\Admin共有\用度\VB\Window_Data\Window.ini"

Call PutIni("外来担当表", "ADDText1", Combo1.Text, INI_PATH)
Label1.Caption = GetIni("外来担当表", "ADDText1", "", INI_PATH )

つーか、病院関係者なら金持ちだろうし、ソフト屋に発注して
0697デフォルトの名無しさん2006/12/20(水) 12:11:48
よく見る共通関数だよな、GetIniとPutIniって。
0698デフォルトの名無しさん2006/12/20(水) 16:15:47
>>697
初めて見たが。
普通直接API呼ぶだろ。
0699デフォルトの名無しさん2006/12/20(水) 16:24:30
>>698
それはいかにもVBらしい悪い方法だな
0700デフォルトの名無しさん2006/12/20(水) 18:23:00
お教えください

今更ながら開発用端末をWin2kからWinXPにしたところ
ファイル検索の文字列検索でbasとかfrmがヒットしなくなりました
ソース内に例えば「外来担当表」と入っているプログラムを
探したいとか言うとき、XPではどうすればいいのでしょう?

Win2kだとファイル検索の文字列でヒットしたのに・・・。。・゚・(ノД`)・゚・。
0701デフォルトの名無しさん2006/12/20(水) 18:41:48
>>700
それはWindowsのスレ向けな質問ではなかろか。

検索のウインド
→「設定を変更する(G)」→「ファイルとフォルダの〜…(R)」→「上級者向け(D)〜…」

にして、旧来のアレ風にしてやってみてどーか。
0702デフォルトの名無しさん2006/12/20(水) 19:17:15
Dir() とDir$()の違いはなんですか?
0703デフォルトの名無しさん2006/12/20(水) 19:18:25
>>702
バリアントと文字列の違いわかりますか?
0704酔いちくれ ◆J0rwikii8c 2006/12/20(水) 19:30:20
>>692,700
てめー。回答者にありがとうございますがねーじゃねぇかよ
0705デフォルトの名無しさん2006/12/20(水) 19:30:42
>>703
引数の型が違うということですか?
戻り値の型が違うということですか?
0706デフォルトの名無しさん2006/12/20(水) 19:44:16
>>705
HELPは読めますか?
0707デフォルトの名無しさん2006/12/20(水) 20:08:49
>>692,>>700
「One Stop Multi」
0708デフォルトの名無しさん2006/12/20(水) 20:30:39
VB6やVBAでは組み込み関数に
"VBA.関数名"でアクセスできますが
VBSの場合この"VBA"に相当する
組み込み関数群の親は何ですか?
具体的にはArrayを上のような形で
利用したいのですが
0709デフォルトの名無しさん2006/12/20(水) 23:48:16
>>708
それってVBSでどんないいことがあるの?
0710デフォルトの名無しさん2006/12/20(水) 23:54:45
> ○ 回答者の心得
>  三.回答する上で必須ではない情報をむやみに聞き返さない。
0711デフォルトの名無しさん2006/12/21(木) 10:44:26
>>710
見えない俺ガイル
0712デフォルトの名無しさん2006/12/21(木) 11:56:36
こんなんだからVB6使いはバカにされるんだなぁ・・・orz
0713デフォルトの名無しさん2006/12/21(木) 11:59:13
ふーん、 .NETがあるのにね。
0714デフォルトの名無しさん2006/12/21(木) 11:59:41
>>1
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、 
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。 
0715デフォルトの名無しさん2006/12/21(木) 13:28:29
ミディンコな質問ですまない…
CSVファイルの最終行の改行を削除したいんだがどうすればいいんだろうか?
AAAA
BBBB
CCCC
DDDD
[EOF]
を↓にしたい
AAAA
BBBB
CCCC
DDDD[EOF]
0716デフォルトの名無しさん2006/12/21(木) 13:29:14
出力するときのやり方は知ってるんだが既存ファイルの操作ということで
0717デフォルトの名無しさん2006/12/21(木) 13:41:25
SetEndOfFileでできるかもしれない
出来なければ (読み取り)→(サイズを制限して書き込み) しかない
0718デフォルトの名無しさん2006/12/21(木) 13:52:53
APIかー
意外とめんどいもんですな。
VBらしくさくっといけるもんがあるのかと思ってた俺はさすがミディンコ
バイナリで読んで最後の改行記号ってとこまでは追及できたんだけど削除ができねぇ
VBのテキストファイル操作じゃファイルサイズが変わるようね編集ってできないぽ?

>>717
トンクス!
07197082006/12/21(木) 14:14:43
>>714
OSやWSHのバージョンが違っても
親オブジェクトは一緒だろうと思って
省略してました、すみません
WindowsXP ServicePack1
WSH5.6 ServicePack無し
IEなどではなくwscript.exeでの実行です

やりたいことは"obj.Array"という形で
組み込み関数のArrayを使いたいだけです
試したことはVBA.Me,WSHの指定です
VBAはオブジェクトがありません、Me,WSHは
Arrayをサポートしてませんになり
Arrayの親オブジェクトが解らない状況なので
困ってます

知りたい理由は興味とでも思ってください
どのような環境で使うかが解っていれば
オブジェクトは一意でしょうから
どのように使うかは必要な情報では
無いでしょうし使い道は一つだけじゃないので
0720デフォルトの名無しさん2006/12/21(木) 15:18:01
> どのように使うか
まぁ、代用法でも良いから教えてくれというなら書くべきことだがな。
そうでなければ必要ないが、代用法を押しつけて自己満足したいだけの
自称上級者共は必要としてるかもw
0721デフォルトの名無しさん2006/12/21(木) 15:28:00
>>719
VB6のVBAはモジュールなので、WSHでは直接見れないと思われ
必要な関数をクラスのメソッドとしてラップしたActiveXDLLを作るのが適当だと思う

>>720
そういうチンコが大きい発言はもっと大人の男の子になってから言おうね
0722デフォルトの名無しさん2006/12/21(木) 15:44:50
>>718
ヒントTypeName(Me)
07237222006/12/21(木) 15:46:12
マチガイ>>719
0724デフォルトの名無しさん2006/12/21(木) 17:02:02
doubt!708=710=719=720
そんなことwshスレで聞け、と覗いてみたら
あっちでも、回答振り込め詐欺やってバレて、こっちへ来たか
>>1に回答振り込め詐欺禁止とは書いてないもんな
0725デフォルトの名無しさん2006/12/21(木) 17:14:15
こういうのは放っておこうね。┐(´ー`)┌
0726デフォルトの名無しさん2006/12/21(木) 17:35:56
>>712
莫迦にしてるのはお前だけ。
0727デフォルトの名無しさん2006/12/21(木) 17:43:10
VB使いは全体が平均してバカなんじゃなくて
極端にバカというか痛い奴の割合が多い。
ちょっと上にも変なの湧いてるし。
0728デフォルトの名無しさん2006/12/21(木) 18:19:36
>>702
クイズの正解はひょっとして$の有無?
0729デフォルトの名無しさん2006/12/21(木) 18:20:40
>>724
残念!、>>1-723まで全て俺一人の自演だ
俺様の壮大なシナリオに引っかかったなm9(・∀・)
0730デフォルトの名無しさん2006/12/21(木) 19:08:33
>>721
>VB6のVBAはモジュールなので、WSHでは直接見れないと思われ

>>719が言ってるのはVB6のVBAではなく、VBScriptのArray()のこと

だから、オブジェクトブラウザでMicrosoft VBScript Globalsを参照設定すれば
Library VBScript_Globalが現れて、
Array()がClass GlobalObjのメンバと分る。
ってことじゃないかな
0731デフォルトの名無しさん2006/12/21(木) 19:52:10
OpenTextFileの第4引数で「TristateMixed」ってのが有るけど、「TristateUseDefault」と同じですか?

0732酔いちくれ ◆J0rwikii8c 2006/12/21(木) 20:07:29
参照設定はしないで済むならしないほうがいいんだけどねぇ


よくわからんけど、ASCIIかUnicodeかの違いじゃマイカ??
デフォルトは ASCIIで、ミックスというくらいだから、どっちでも
いいよ? みたいな?

もう、酔うた。
0733デフォルトの名無しさん2006/12/21(木) 20:27:13
>>718
一旦別ファイル名で書き出してから、
元のファイルを削除し、先に書き出しておいたファイルを正しい名前に変えればいい。
07347082006/12/22(金) 14:12:37
>>721
使用したいのはVB6のArrayではなく
VBSのArrayです
0735デフォルトの名無しさん2006/12/22(金) 14:41:04
過去ログにあってもおかしくないと思ったんですが、見つからなかったので
質問です!

VB6のコンボボックスで、「ファイル名を指定して実行」のコンボボックス
みたいに、前方一致で補完できるようには出来ないのでしょうか。

spy++で見ると、クラスが違うので異なるコンポーネントなんだろうとは
分かるのですが。。。
WindowsAPIで作らなければならないでしょか。
0736デフォルトの名無しさん2006/12/22(金) 14:48:52
>>735
自分でコーディングすればおk
0737デフォルトの名無しさん2006/12/22(金) 15:46:46
>>735
ttp://www.google.co.jp/search?complete=1&hl=ja&q=shell+api+%E5%85%A5%E5%8A%9B%E8%A3%9C%E5%AE%8C&lr=
>>736の言うように自分でゴリっとした方が楽&安全
0738デフォルトの名無しさん2006/12/22(金) 18:38:02
CHANGEイベントでDIR関数使って、
見つかったファイルを全部コンボリストにADDして
そのコンボをプルダウンさせるのかな?
07397352006/12/22(金) 20:12:10
レス有難うございます。

なるほど、自分で実装するのですね。
ってか、コンボボックスというより、テキストボックスに
プルダウンの入力補完が付くというイメージの方が近い
んですかね。

やりたい事は、既にコンボボックスに登録されているリスト
の中から、前方一致で合致するものを補完する機能です。
Officeのコンボボックス(RichEdit20W)とか、コンポーネントとして
切り出してくれれば良いのに。。。
0740デフォルトの名無しさん2006/12/22(金) 20:53:29
やり方は見付けたが、これをVBでやるのは無理そうな気がする。
ttp://www.runan.net/program/tips/sdk_17_IAutoComplete.shtml
07417352006/12/22(金) 22:18:57
情報有難う御座います。
何が一番楽か、ちょっと模索してみたいと思います。
0742デフォルトの名無しさん2006/12/23(土) 11:12:37
>>730
708じゃないけど、参照設定でMicrosoft VBScript Globalsが見つからないです。
環境は、WinodwsXP SP2、VB6.0 SP6。
XP用のWinodws Script 5.6もインストールしました。
後学のためにぜひ試してみたいので、どなたか教えてください。
0743デフォルトの名無しさん2006/12/23(土) 14:11:05
>>708
[名前].Array()
0744デフォルトの名無しさん2006/12/23(土) 16:02:20
>>741
一番楽なのは、そういう機能を持ったコントロールを購入する事だな。
0745デフォルトの名無しさん2006/12/23(土) 16:15:46
>>744
その程度のコントロールなら簡単に作れるでしょw
っていうか、VBのコンボって最初から入力補完ついてると思うんだけど。
あれ結構鬱陶しいと思うんだけどね。
0746デフォルトの名無しさん2006/12/23(土) 17:12:03
つくてみた。
Option Explicit
Private WithEvents cmb As ComboBox
Private WithEvents btn As CommandButton
Private Sub cmb_GotFocus()
    SendKeys "%({DOWN})"
End Sub

Private Sub Form_Load()
    Dim i As Long
    Set cmb = Me.Controls.Add("VB.ComboBox", "cmb")
    Set btn = Me.Controls.Add("VB.CommandButton", "btn")
    With cmb
        .Move 0, 0, 3000
        .Visible = True
        For i = 1 To 100
            .AddItem "Item" & Format$(i, "00")
        Next
    End With
    With btn
        .Move 3100, 0, 1500, 1000
        .Caption = "Place Hold"
        .Visible = True
    End With
End Sub
0747デフォルトの名無しさん2006/12/23(土) 20:25:36
>>746
残念だけど、違うと思う。
0748デフォルトの名無しさん2006/12/23(土) 21:06:13
うん、完全に勘違いしてると思う。
0749デフォルトの名無しさん2006/12/24(日) 02:22:00
どっちが>>745?
元ネタはともかく>>745が言うようにコンボボックス使ってみただけだよ
違うコンボボックスなの?
>>735のネタは>>737とか>>740で回答されてるし
0750デフォルトの名無しさん2006/12/24(日) 09:11:25
今日休みで暇なんでVBでもはじめよっかなって思うんですけど、
どれを買ったらいいのやら。
最新版はどれなのでしょうか。
0751デフォルトの名無しさん2006/12/24(日) 09:20:46
最新版しか売ってないだろ
0752デフォルトの名無しさん2006/12/24(日) 09:22:01
VB6.0というのを購入すればよいのでしょうか。
0753デフォルトの名無しさん2006/12/24(日) 09:25:29
VB2005Expressをダウンロードしておけ。
VB6はMSDNサブスクリプションでないともう入手できないぞ。
0754デフォルトの名無しさん2006/12/24(日) 11:02:05
>>753
ありがとうございます。
ダウンロードのページを今開いたところです。
これって無料なんですね?
0755デフォルトの名無しさん2006/12/24(日) 11:20:17
VB6.0でシリアル通信をするプログラムを組んでいるんですが、
そこらに落ちてるシリアル通信サンプルプログラム(MsComm使用の)を使っても
データの採り方というか表示のさせ方?がハイパーターミナルと違います。
ハイパーターミナルと同じような挙動をするサンプルプログラムってありませんか?
0756デフォルトの名無しさん2006/12/24(日) 11:21:12
Visual Basicというもので初心者向きの講座で良いところがあれば教えていただけ
ませんか?
0757デフォルトの名無しさん2006/12/24(日) 11:21:55
ありませんかじゃなくて、自分で作れよ
0758デフォルトの名無しさん2006/12/24(日) 11:49:56
ハイパーターミナルそのまま使えば作る必要もない
07597352006/12/24(日) 12:52:32
色々意見有難う御座います。

>>745 さん
>っていうか、VBのコンボって最初から入力補完ついてると思うんだけど。 
いやー、ついてないような。。。

>>746 さん
I って入力するとItem00 と補完して欲しいのです。
VCのComboBoxやDelphiのTComboBoxは標準でこのような
動作をするようです。

もうちょっと探してみます。
0760デフォルトの名無しさん2006/12/24(日) 15:07:17
VB.NETならついてるんだがな
0761デフォルトの名無しさん2006/12/24(日) 18:01:07
質問です。
ネットワーク上のフォルダにあるexeファイルのバージョンを取得したいので、

GetFileVersionInfosize
GetFileVersionInfo
VerQueryValue

をやっていますが、
GetFileVersionInfosize
の時点で0がかえってきてしまい、取得できません。
同じPC内では取得できました。
ネットワーク上のファイルだとダメ、ということはありますか?
駄目な場合、他の取得方法はありますか?
0762デフォルトの名無しさん2006/12/24(日) 19:37:08
>>761
「ネットワーク上のフォルダにあるexe」をどういう形で参照してるのかも、
どんなコードでバージョンを取得してるのかも分からんのに、回答出来る筈がない。
07637612006/12/24(日) 19:44:41
解決しました。
>762
無理して回答しなくても大丈夫です。
ありがとうございました。
0764デフォルトの名無しさん2006/12/24(日) 21:23:37
>>753
このダウンロードって個人情報丸々入力しなきゃいけないんですね。
勤務先電話番号も入力必須項目になってるけど、なんか不安でダウンロードできないな。
別に問題ないかな?
0765デフォルトの名無しさん2006/12/24(日) 21:24:33
>>764
店で買えば?
0766デフォルトの名無しさん2006/12/24(日) 21:34:25
店で買った場合は個人情報の入力なしで使えるってことなんでしょうか。
結局店で買ったものもユーザー登録が必須とかなら
ダウンロードしたほうがいいしな。
0767デフォルトの名無しさん2006/12/24(日) 21:36:04
>>766
お前が今すぐ死ねばおまえの個人情報の価値もなくなるよ
0768デフォルトの名無しさん2006/12/24(日) 21:43:18
>>767
でも死んだらVBは使用できないんです。
0769デフォルトの名無しさん2006/12/25(月) 10:03:42
>>742は自己解決しました。
参照設定でvbscript.dllへの参照を追加すると、Microsoft VBScript Globalsが
参照できました。
しかし、こいつを実際に使ってみることができません。
VBScript_GlobalライブラリのGlobalObjクラスを使うと良さそうなのですが、
これをインスタンス化することができないのです。
New GlobalObj や CreateObject("VBScript_Global.GlobalObj") を試したけれど、だめでした。
どうすれば使うことができるのでしょうか?
0770デフォルトの名無しさん2006/12/25(月) 12:23:21
JPEGの特定の場所の色情報を得たいと思っています。
例えばTop100 Width100 のJPEGをイメージかピクチャボックスに入れて、
Top30 Width70 の色情報を得るような事はできるでしょうか?

Topとかではなくもっと精密な X座標 Y座標 とかあればいいのですが、
よくわからないのでとりあえずこのような説明にしてみました。
0771デフォルトの名無しさん2006/12/25(月) 12:30:24
> Top100 Width100
どういう大きさなんだろう?
Height100 Width100ならわかるんだが。
0772デフォルトの名無しさん2006/12/25(月) 13:03:38
すいませんHeightの間違いです。
お恥ずかしい。
0773デフォルトの名無しさん2006/12/25(月) 13:52:19
pointでいいんじゃない?
0774デフォルトの名無しさん2006/12/25(月) 15:40:02
>>769
「代用法でも良いから教えてくれという」ということではないのですね?
0775デフォルトの名無しさん2006/12/25(月) 15:57:01
みんな楽しそうだな・・・
07767692006/12/25(月) 17:20:31
>>774
そうです。「へぇ」と言いたいために試していることなので、代用法は求めていないです。
Microsoft VBScript Globalsを使う方法、または
これが使えない理由(インスタンス化できない理由)が知りたいです。
インスタンス化できないクラスなんて、初めて見ました。
0777デフォルトの名無しさん2006/12/25(月) 17:39:09
>>776
Microsoft VBScript Globalsを使う方法は
WSHのヘルプの
Windows Script Interfaces SDK
にあるようです
0778デフォルトの名無しさん2006/12/25(月) 23:03:28
クリップボードについて聞きたいのですが、
クリップボード内のビットマップの情報見て、
そのある特定アドレスの内容を比較するプログラムを作りたいのですが、
どうすれば簡単に出来るのでしょうか?

クリップボード内ビットマップのある座標の色を知りたいのです。(RGB)

ビットマップのクリップボード開始アドレスの取得方法、
また、このアドレスは固定なのでしょうか?

どなたかアドバイスをよろしくお願いします。
0779デフォルトの名無しさん2006/12/25(月) 23:07:04
>>778
いっぱい勉強するといいよ。
そうすればそのくらい簡単に出来るようになる。
0780デフォルトの名無しさん2006/12/25(月) 23:07:05
>>778
行儀の悪いソフトを作りたいと?
0781デフォルトの名無しさん2006/12/26(火) 00:51:25
>>778
マジレスすると、ここは初心者用なので専門的なスレに行くと良い。
ここで聞いても誰もわからん。
0782デフォルトの名無しさん2006/12/26(火) 11:40:01
splitで分割したものを、多次元配列(data(i, j))に格納したいのですが、どうすればいいのでしょうか。
? = split(S, "#")
data(0,0),data(0,1),data(0,2),...と切り分けられて入って欲しいのですが。
0783デフォルトの名無しさん2006/12/26(火) 12:13:41
>>782
仕様上不可能です
というかループで代入し直せば良いだけじゃん
07847692006/12/26(火) 12:51:53
>>777
ありがとうございます。
MSDNのWindows Script Interfaces SDKをエキサイトで翻訳して読みましたが、
私には難しすぎてわかりませんでした。
07857822006/12/26(火) 13:42:07
>>783
ありがとうございます。
そうするしかないかなと思っていたのですが、もしかしたら何か方法があるかと思いました。
やっぱりループで入れる事にします。
0786デフォルトの名無しさん2006/12/26(火) 14:01:09
>>784
翻訳された文章を読むのは、原文を読むより至難の業だぞ。
0787デフォルトの名無しさん2006/12/26(火) 14:18:15
つーか、エンジニアならそれくらいの英語はできなきゃいかんだろ
07887692006/12/26(火) 15:17:45
すみません。
「軽く翻訳してみた結果、自分の頭では理解するのが無理そうな内容だった。
今はあきらめようかと思ってる。」と言いたかったのです。
もちろん英語も苦手です。
0789デフォルトの名無しさん2006/12/26(火) 15:45:35
つーか、WSHの日本語のヘルプがあるだろ
0790デフォルトの名無しさん2006/12/28(木) 02:04:21
しかし、VB6の話題も減ったよなあ
みんなVB.NETに移ったのかな?
俺はC#に移ったけど
あなたの仕事ではC#とVB.netどっちが多い?
0791デフォルトの名無しさん2006/12/28(木) 10:46:33
高校大学時VB6やってたが
現在業務では組み込み系でCやってる

VSはもう自宅では触ってない・・・Spoke版買ったけど・・・
触る暇が無い
0792デフォルトの名無しさん2006/12/28(木) 11:12:26
で?
■ このスレッドは過去ログ倉庫に格納されています