(*´д`*)アハァ… VB初心者質問スレ Part18

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
  Part11 http://pc.2ch.net/tech/kako/1024/10243/1024380249.html
  Part12 http://pc3.2ch.net/test/read.cgi/tech/1026642565/
  Part13 http://pc3.2ch.net/test/read.cgi/tech/1029241786/
  Part14 http://pc3.2ch.net/test/read.cgi/tech/1030947162/
  Part15 http://pc3.2ch.net/test/read.cgi/tech/1032706491/
  Part16 http://pc3.2ch.net/test/read.cgi/tech/1034302532/
  Part17 http://pc3.2ch.net/test/read.cgi/tech/1036154952/

Win32 API関連スレ
  Win32API 質問箱 Build4
  http://pc.2ch.net/test/read.cgi/tech/1023361418/

心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
4.インストーラーなどの質問もOK。
五.下ネタもたまにならOK




























3デフォルトの名無しさん:02/11/24 11:15

                    o
  ∧_∧ ッパシャ ッパシ  ∧_∧┃VBってなんですか?
  (   )】          (   )ノ  一言おながいします。
  /  /┘          /  /
 ノ ̄ゝ           ノ ̄ゝ
  Part 1 http://piza.2ch.net/tech/kako/968/968328471.html
  Part 2 http://piza.2ch.net/tech/kako/990/990793224.html
  Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
  Part 4 http://pc.2ch.net/tech/kako/1006/10069/1006922992.html
  Part 5 http://pc.2ch.net/tech/kako/1010/10106/1010624646.html
  Part 6 http://pc.2ch.net/tech/kako/1013/10138/1013844542.html
  Part 7 http://pc.2ch.net/tech/kako/1015/10158/1015836357.html
  Part 8 http://pc.2ch.net/tech/kako/1018/10187/1018794901.html
  Part 9 http://pc.2ch.net/tech/kako/1020/10208/1020830472.html
  Part10 http://pc.2ch.net/tech/kako/1022/10221/1022127528.html
  Part 1 http://piza.2ch.net/tech/kako/968/968328471.html
  Part 2 http://piza.2ch.net/tech/kako/990/990793224.html
  Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
  Part 4 http://pc.2ch.net/tech/kako/1006/10069/1006922992.html
  Part 5 http://pc.2ch.net/tech/kako/1010/10106/1010624646.html
  Part 6 http://pc.2ch.net/tech/kako/1013/10138/1013844542.html
  Part 7 http://pc.2ch.net/tech/kako/1015/10158/1015836357.html
  Part 8 http://pc.2ch.net/tech/kako/1018/10187/1018794901.html
  Part 9 http://pc.2ch.net/tech/kako/1020/10208/1020830472.html
  Part10 http://pc.2ch.net/tech/kako/1022/10221/1022127528.html
  Part 1 http://piza.2ch.net/tech/kako/968/968328471.html
  Part 2 http://piza.2ch.net/tech/kako/990/990793224.html
  Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
質問です。

INSERT INTO MAMKO したいのですが、アクセスバイオレーションエラーと
なってしまいます。
どうやら、実行権限がないようなのですが、Administrator権限を取得する
にはどうすればよいのでしょうか?

環境は、

Windos 6.02
Virtual Beginner 1.44 SP42
Mikusosoft DQN Server 2002

です。やらしくおながいします。
>>8
おもしろい文章なんですか?それは。
ところで、ここはひどいインターネットですね。
11デフォルトの名無しさん:02/11/24 12:10
1<<
もつかれ〜〜
>>8
権限がないのは
人妻だからだろ
>>11
表示された記号と同じキーを押せばいいと言う単純な作業すら出来ないVB厨がいるのはこのスレですか?
14 ◆UsTFIEcZBs :02/11/24 13:09
質問します。
VB6にてブラウザもどき(IEコンポ等を使うものではない)を作っているのですが
CGIからのsetcookieを検知してそのデータを取得するにはどうすればいいのでしょうか。
ちなみにInetコントロールを使って通信を行っています。
>>14
HTTPヘッダに入ってる。

って言うかブラウザ作ると胸を張るのならHTTPのフォーマットくらい勉強してくださいよ。
16 ◆UsTFIEcZBs :02/11/24 13:13
>>15
マジっすか。
ヘッダの中に入ってたんだ。
ちょっとHTTPのヘッダ一覧みたいなページ探してきますわ。
レスありがとうございました。
>>16
ヘッダ一覧・・・?

って言うか一回自分でソケット張ってどんなメッセージがやりとりされてるか、御政夫間。
18 ◆UsTFIEcZBs :02/11/24 13:20
>>17
コネクション自分ではってやれば確かに全通信覗けますからね・・・
まぁ、何でやらないのといわれたら面倒だからなんですが。

ちなみにHTTPヘッダ一覧みたいなページハケーソ
http://www.studyinghttp.net/headers.html
>>8
はじめてのCを勉強して下さい。
20デフォルトの名無しさん:02/11/24 16:00
Winsockでやってみようじゃないかい
データベースとか作って見たりしたら?
ソートの違いによる処理速度の違い(データ数の違いも含めて)。
データ数の多い少ないのどこで逆転するかなど。
>>21
21 を略すと、作違逆転という事か?
>>19
「はじめてのC」って、アニメのテーマソングだっけ?
(「キテレツ大百科」?)
25デフォルトの名無しさん:02/11/24 20:13
Visual Basic言語シリーズの勉強をはじめようと思うのですが
とっかかりにVBScriptから入るのはよいやり方でしょうか?
26デフォルトの名無しさん:02/11/24 20:23
>>25
俺VBSから入った。正直、微妙。
27男性差別反対:02/11/24 20:31
@13歳以下の男女による御互い合意の性交では、男子だけが罪に訪われる。
A顔に傷が残るような障害が残っても、男性は女性と同等な慰謝料が貰えない。3号下の補償になる。
B男性が裸を見られた時より女が裸を見られた場合の慰謝料は何と10倍 !
C女性の主観的なものまでセクハラとされる。逆は認められない。
D災害等が起こった時の救助は女性・子供が優先され、間に合わない場合、男性は見殺しにされる。
E同じ度合いの犯罪でも女性が死刑になることは殆どない。
F男性に対してのハゲ発言はセクハラとされないのに女性に対してハゲ発言は認められる。
G女の方が長い生きにもかかわらず5年も早く年金が受給できる。
H男が浮気をしたら責任は100%男、女が浮気をしたら男にも責任があるとされる。
I母子手当てはあるが、父子手当てはない。

このスレには男性差別がもっと挙げられています。
http://love.2ch.net/test/read.cgi/gender/1037181667/
まー本人は良かれと思って貼ってるんだろうが、はっきり言って荒らしだよナー。
>>24
ボケなのか、素ボケなのかわからんぞ。
そんなの微妙すぎぃ〜。
>>29
あんた 「そんなの微妙すぎぃ〜」 と言いたかっただけなんちゃうかと小一時間・・・
>>30
だろうね。ちなみに漏れは夢見がち。
漏れは限りなく正解に近かった
でも、油断は禁物デ〜スと言われた
33デフォルトの名無しさん:02/11/25 11:26
ちと質問。イメージコントロールでイメージのロードを
image.picture=loadpicture(C\maydata\1.jpg)とかにしてると
他のPCにデータを移したとき同名フォルダが無いとイメージの読み込みが
出来ないですよね。そこで他のPCに移して、別のフォルダに
イメージが入っていても読んでくるような
指定の仕方はどうやるのかどなたかご教授願えますか?
・・・あんま伝わってない文章かも。すいません。
>>33
すまんが、なにが分からないのかがよく分からん・・・。
直接パスを書くから悪いんであって、LoadPictureメソッドに
渡すのを文字型変数にして、その変数の中身を好きなように
書き換えてから渡せばいいだけでしょ。
35デフォルトの名無しさん:02/11/25 11:44
分かりにくい文章ですいません。いや、ホントに。

メソッドに渡す変数の中身が、たとえば人のPCだとわからないわけですが
(どこに置かれるか分からないから)
その場合変数の中身はどう指定したらいいのですか?
>>35
自分のPCだとどう書くか書け。
37デフォルトの名無しさん:02/11/25 11:53
補足。
様はインストールできる形に仕上げたはいいけど
画像のパスのせいでインストール先でエラーになってしまう。
なのでどこに画像があっても読んでこれるようなパスの
設定の仕方が知りたい。ということです。
>>37
どこにあってもっていうわけにはいかん。
exeの下に置いて相対パスで書け
39デフォルトの名無しさん:02/11/25 12:01
なるほど。しかし
その相対パスで書く場合はどうやって書けばいいのでしょう?
作られた画像フォルダの名前と画像名でするのですか?
>>39
当たり前だ。今度は相対パスの取得はどうするの?と
くるのか? 少しは自分で調べましょう。
41デフォルトの名無しさん:02/11/25 12:42
>>39
うっさい、ハゲ
>>41にレスしてあげる。嬉しい?
43デフォルトの名無しさん:02/11/25 12:54
>>40
すいません。
では、やってみます。

あと>>41私じゃないですよ☆
44デフォルトの名無しさん:02/11/25 13:05
すいません、33です。
絶対パスにするにもドライブの指定が必要な気がするのですが。
そこはどうしたらよいのでしょう?調べてもWeb関連の相対パスしか
のってなくてわかんないです・・・
>>43
つうか、あんたに対してのレスだぞあれ。
>>44 App.Pathでも調べろ。
>>44
あんたが何をしたいのかがさっぱり分からん。
とりあえずキーワードになりそうな単語並べてやるから、
あとは自分で調べれ。
VB6ユーザーならMSDNぐらい持ってるだろ?

App.Path CurDir ChDrive FileSystemObject
48デフォルトの名無しさん:02/11/25 13:24
>>47
ありがとです。
49デフォルトの名無しさん:02/11/25 13:25
>>43
ああ、ほんとだ。
女性に対して失礼な。
>>49

うっさい、ネカマ
51デフォルトの名無しさん:02/11/25 13:54
拡張子の関連付けを行ったときアイコンの表示を更新するには?
何らかのメッセージを通知すると思うんですが。。。
52デフォルトの名無しさん:02/11/25 13:59
>>51
うっさい、ネカマ
>>52

うっさい、ハゲ
54デフォルトの名無しさん:02/11/25 16:02
Win98+VB6.0で作成したアプリ。
Win98上では GetOpenFileName API で呼び出すダイアログボックスが開くのに
XPだと開かねーーーーっ・・・す。。。
API 宣言方法が違うんでしょうね、きっと。
どう変えたらいいのか、知ってる方いたら教えて欲しいっす。
既出ならしみません。
>>54
手前ではまったく問題ないが
ソース晒したらどうよ
5654:02/11/25 16:56
>>55
えっとまず宣言部分が・・・

【定数】
Public Const cdlOFN_ALLOWMULTISELECT As Long = &H200
Public Const cdlOFN_CREATEPROMPT As Long = &H2000
Public Const cdlOFN_ENABLEHOOK As Long = &H20
Public Const cdlOFN_ENABLETEMPLATE As Long = &H40
Public Const cdlOFN_ENABLETEMPLATEHANDLE As Long = &H80
Public Const cdlOFN_EXPLORER As Long = &H80000
Public Const cdlOFN_EXTENSIONDIFFERENT As Long = &H400
Public Const cdlOFN_FILEMUSTEXIST As Long = &H1000
Public Const cdlOFN_HIDEREADONLY As Long = &H4
Public Const cdlOFN_LONGNAMES As Long = &H200000
Public Const cdlOFN_NOCHANGEDIR As Long = &H8
Public Const cdlOFN_NODEREFERENCELINKS As Long = &H100000
Public Const cdlOFN_NOLONGNAMES As Long = &H40000
Public Const cdlOFN_NONETWORKBUTTON As Long = &H20000
Public Const cdlOFN_NOREADONLYRETURN As Long = &H8000
Public Const cdlOFN_NOTESTFILECREATE As Long = &H10000
Public Const cdlOFN_NOVALIDATE As Long = &H100
Public Const cdlOFN_OVERWRITEPROMPT As Long = &H2
Public Const cdlOFN_PATHMUSTEXIST As Long = &H800
Public Const cdlOFN_READONLY As Long = &H1
Public Const cdlOFN_SHAREAWARE As Long = &H4000
Public Const cdlOFN_SHOWHELP As Long = &H10

5754:02/11/25 16:57
【構造体】
Type cdlOPENFILENAME
lStructSize As Long '構造体のサイズ
hWndOwner As Long 'Me.hWnd 親ウィンドウのハンドル(0 のとき表示位置は左上隅)
hInstance As Long 'App.hInstance 親ウィンドウのインスタンスハンドル(0 可能)
lpstrFilter As String '<ファイルの種類>の設定(各項目をChr(0)で区切る)
lpstrCustomFilter As String 'カスタムフィルタの指定
nMaxCustFilter As Long 'カスタムフィルタのバッファサイズ
nFilterIndex As Long 'フィルタのインデックス
lpstrFile As String 'ファイル名格納用バッファ
nMaxFile As Long 'ファイル名格納用バッファのサイズ
lpstrFileTitle As String 'フルパス格納用バッファ
nMaxFileTitle As Long 'フルパス格納用バッファのサイズ
lpstrInitialDir As String '初期ディレクトリの指定
lpstrTitle As String 'タイトルバーの文字列
flags As Long 'cdlOFN_* の論理和
nFileOffset As Integer 'フルパス中のファイル名までのオフセット
nFileExtension As Integer '拡張子までのオフセット
lpstrDefExt As String 'デフォルトの拡張子
lCustData As Long 'lpfbHookで渡すデータ
lpfnHook As Long 'フック関数のポインタ
lpTemplateName As String 'ダイアログテンプレート名
End Type
5854:02/11/25 16:58
【関数】

Declare Function GetOpenFileName Lib "COMDLG32" Alias "GetOpenFileNameA" (pOpenFileName As cdlOPENFILENAME) As Long
5954:02/11/25 17:02
呼び出し部分が・・・


Dim OFNFileName As cdlOPENFILENAME
Dim lngRet As Long
Dim strFName As String

6054:02/11/25 17:02
With OFNFileName
.lStructSize = Len(OFNFileName)
.hWndOwner = Me.hwnd
.hInstance = 0
.lpstrFilter = "テキストファイル (*.txt)" & Chr(0) & "*.txt" & Chr(0)
.nFilterIndex = 1&
.lpstrCustomFilter = ""
.nMaxCustFilter = 0&
.lpstrFile = strFileName
.nMaxFile = strFILENAME_LEN - 1
.lpstrFileTitle = .lpstrFile
.nMaxFileTitle = .nMaxFile
.lpstrInitialDir = ""
.lpstrTitle = "取り込みたいマスタファイルを選択してください"
.flags = cdlOFN_EXPLORER Or cdlOFN_HIDEREADONLY Or cdlOFN_FILEMUSTEXIST
.nFileOffset = 0
.nFileExtension = 0
.lpstrDefExt = "txt"
.lCustData = 0&
.lpfnHook = 0&
.lpTemplateName = Me.Caption

lngRet = GetOpenFileName(OFNFileName)
If lngRet Then
strFName = Left(.lpstrFile, InStr(.lpstrFile, vbNullChar) - 1)
End If
End With
6154:02/11/25 17:04
こんな感じなんです。
どっかのサンプルコードぱくったやつなんで普通だと思いますが、
どうなんすかね?
> .lpTemplateName = Me.Caption
なんでこんなところに Caption?

> .lpstrCustomFilter = ""
これも別に要らんだろ。

> .lpstrFile = strFileName
これは宣言されていて十分なサイズが確保されてんの?
6354:02/11/25 17:31
>>62
できた、できた、できたーーーーっ!!!!
あんたの言うとおりに、指摘されたところ削ったら動いたよ。
一週間も悩んであきらめかけてたのに。
あんたすげーよ。神だよ!
いーや、誰がなんと言おうとあんたは俺にとっての神だ。
ありがとう。
ほんとうにありがとう。
イやっほーーー♪
6451:02/11/25 17:45
すみません自己解決しました
SHChangeNotifyっての使うのね
6562:02/11/25 17:52
>>63
上で
> .lpstrCustomFilter = ""
> これも別に要らんだろ。
と書いたけど、これはあってもなくてもいいみたい。

あと、
> .lpstrFile = strFileName
> .nMaxFile = strFILENAME_LEN - 1
> .lpstrFileTitle = .lpstrFile
> .nMaxFileTitle = .nMaxFile

この部分は、strFileName がパラメータで渡されてくるとすれば
Const MAX_PATH = 260
.lpstrFile = strFileName & String(MAX_PATH, 0)
.nMaxFile = MAX_PATH
.lpstrFileTitle = String(MAX_PATH, 0)
.nMaxFileTitle = MAX_PATH
のように十分な長さの文字列をセットしといた方がいいよ。

(.lpstrFileTitle と .nMaxFileTitle については
両者を未設定の初期値のままにしておいてもいい)
クライアントとサーバがあって、
サーバにAccessデータベース
C:\temp.mdbがあるとします。
conn.open "ODBCデータソースネーム","ID","PASS"
のようにODBCを通してクライアントからサーバに接続する方法を、
最近流行のOLEDBを使って接続したいのですが、
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\サーバ名\C:\temp.mdb;"
というプログラムでオーケーでしょうか?
2台のコンピュータをまたいでの接続は難しいです。
67デフォルトの名無しさん:02/11/25 20:13
VB6で質問です。
今、アプリケーション自体の戻り値を返すプログラムを作成していて、
終了時に ExitProccess() を使用しているため
デバッグモードで実行していても VBごと終了してしまいます・゚・(ノД`)・゚・。
コードの中でデバッグ実行中なのかどうか判定できますか?
>>67

Function CheckRunMode() As Boolean
'VB環境下ならFalse、EXEならTrue
On Error GoTo ErPos

'0除算エラーを起こす
Debug.Print 1 / 0

'EXEなら上のコードでエラーが起きない
'(Debug.PrintがEXEでは削られている為)
CheckRunMode = True
Exit Function

ErPos:
CheckRunMode = False
End Function

こんなのは如何?
邪道っぽいけど。
6967:02/11/25 20:38
>>68
ありがd。
今作ってるのがけっこう適当なプログラムなので
拝借させていただきます。
70デフォルトの名無しさん:02/11/25 20:41
mpeg,jpeg,bmp等のヘッダ情報(ピクセル等)を取得する方法を教えて下さい。
71ナナシサソ:02/11/25 20:41
私も質問なんですが、
スクリプトで作成されたtxtファイルの中身が、
一行になってしまいます。横スクロールバーが長くなる感じで。
抜き出したい文字列は全て入っていて、それ以外はスペースです。
要するに指定した位置のスペースを消して改行したいんですが
どこにどのようなコードを挿入させればいいんでしょうか。
72デフォルトの名無しさん:02/11/25 20:58
>>66
> conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\サーバ名\C:\temp.mdb;"
mdbファイルを共有にしてData SourceにUNCで指定では?
73デフォルトの名無しさん:02/11/25 20:59
>>71
> 要するに指定した位置のスペースを消して改行したいんですが
> どこにどのようなコードを挿入させればいいんでしょうか。
Trim RTrim vbCrLf
7466:02/11/25 21:03
>>72さん
UNCはユニコードですね。
共有ファイル設定は気づきませんでした。ありがとうございました。
75ナナシサソ:02/11/25 21:05
>>73
すると、こういうことでしょうか

output = replace(output, " ", vbCrLf)
>>75
恐ろしいくらい人の話聞いてないな。
77ナナシサソ:02/11/25 21:13
すみません 初心者なんで。
こうでしたか
output = Trim(" ")
>>77
基礎というか「プログラムとは?」位からやり直せ。
79ダウソロード:02/11/25 21:20
VBScriptなんですが、ユーザーがダウンロードが完了したかどうかを知れるやり方って知りませんか?
ダウンしてもキャンセル押されたらだめだし・・・。

かなり調べて似たようなのはあったのだけど・・・
http://216.239.33.100/search?q=cache:mh5FTqSyGjUC:support.softartisans.com/docs/safileupdocs/japanese/Documentation/prog_g_clientmultidownx.htm+VBscript+%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89+%E7%8A%B6%E6%85%8B&hl=ja&ie=UTF-8&inlang=ja
(ググルキャッシュ)
>>79
>ユーザーがダウンロードが完了したか

・・・何を?

これだからVB厨未満は・・・。
81ダウソロード:02/11/25 21:26
>>80

何を!?
ダウンロードするファイル全てだってばさ。
拡張子が.exeや.lzh、.zip等のエインクをクリックすればダウンロードしますか?ってなるっしょ。
それで保存とかキャンセルとか選べるわけじゃない。
ユーザーが保存を押したという情報をVBScriptで掴めそうだから聞いてみたのだが・・・
82デフォルトの名無しさん:02/11/25 21:28
1バイト数値を16進で表記させたいんですけど、
Hex()関数では、0F はただの F になってしまいます。
なんか無いですかね。
8381:02/11/25 21:28
エインクってなんだよ・・・
                    いやリンクって打ったらしいがな・・・・・・・
            ∧_∧           
     ∧_∧  (´<_`  ) 
     ( ´_ゝ`) /   ⌒i  
    /   \     | |
    /    / ̄ ̄ ̄ ̄/ |
  __(__ニつ/ BUF  / .| .|____
      \/____/ (u ⊃
right("0" & hex(a),2)
>68
>'EXEなら上のコードでエラーが起きない
>'(Debug.PrintがEXEでは削られている為)

Debug.Print MsgBox("Msg")
これをEXEで実行してみそ。

まあ>67の目的は果たせてるみたいだからいいんだけどね。
ただ「エラー発生時に中断」にしていると面倒くさいという罠。
オレならdebug.Assertを利用する。
86デフォルトの名無しさん:02/11/25 23:25
Windows XP Professionalなんですが、
Visual Studio 6.0でVisual Basicをインストールしようと
CDのルートのsetup.exeを実行しても、
「問題が発生したため、vs60wiz.exeを終了します。」と出て終了してしまいます。
MSのサポート情報を見て色々と試行錯誤したのですが、
サポート情報に書いてある方法では解決しませんでした。
どなたか解決方法ご存知ありませんか?
>>86
フォーマットしてXP入れなおしてVS入れては?
問題の起こるPCで開発されたプログラムを他の人に配って実行させるつもりですか・・・
>>85
関数が含まれている場合は、Debug.Printも残る。
漏れなら、条件付コンパイル。
8967:02/11/26 00:34
>>85
たしかに自分でえらーを埋め込むのはちょっと気持ち悪いから
Assert使うと、こんなかんじかなぁ

Debug.Assert fCheckAppRun(bDebugMode) <> False
If bDebugMode = True Then
  Exit Sub
Else
  Call ExitProcess(nExitCode)
End If

うーん。。。Debug.Assert で変数に値を入れられる方法ってありますか?
CallByName はクラス追加がちょっとあれだし、memcpy とかかなぁ
9067:02/11/26 00:38
>>88
条件つきコンパイルでできる??
#If ○○○ Then
の部分がわからない・・
つーか、プロジェクトプロバティ>コマンドライン引数
を使うとかさぁ。。。
9291:02/11/26 00:46
まちがった。もういっこのだ。
93デフォルトの名無しさん:02/11/26 00:51
VB6.0からオラクルに繋いでます
オラクルからダイナセットを取得してからソートってできますか?
ORDER BYじゃなくて、ダイナセットをソートしたいんです。

また、ダイナセットの中身を検索することはできますか?

ダイナセットにレコードを挿入、削除はできますか?

お願い致します



間違ってVCスレに書いてしまいました。
9467:02/11/26 01:00
>>91
それだとEXE作るときに手で直さないとだよね(多分)
コードで実現できたら、そこでのミスは絶対ありえないかなぁと。
それに、もうすでに10以上使ってるのです・゚・(ノД`)・゚・。
>>93
1つめの質問は、意味がよくわからないけど、
ダイナセットは行単位なので多分無理です。

2つめの質問は、意味が全くわかりません。

3つめはできるけど、あまりやらないです。
SQLでやることのほうが多いと思われます。
ん?何を直さないといけないんだろう
コマンドライン引数を公表しないかぎり、ソースは実行されないとおもうんだがなあ
9793:02/11/26 01:10
>95
ありがとうございます!!!

できるんですね!?行の削除や挿入。

もしよかったら、具体的に教えて頂けないでしょうか?
>96
>94は、>88 >90 >91 ときて >92の「もういっこ」から
「条件付きコンパイル引数」を受けた発言と思われ。
横レススマソ。sage
99のぶきち:02/11/26 01:54
初心者なんですが、
PictureBoxに画像を貼り付けて、縮小すると
画像内の文字が潰れて全然読めなくなってしまいます。
縮小しても読めるような方法はないでしょうか?
お知りの方おられましたらお教え下さい。
100nao:02/11/26 02:19
既存のtxtファイルの
任意の行の任意の個所を任意の文字に書き換える関数。
どうしたらいいのかわかりません。
誰か助けて、、、
>98
どちらの方法取るにしても、引数のとこを入れるか入れないかの手間かなと
感じるんだけど、、、
>>88
関数が含まれているときっていうのは分かりやすいんだけど、
プロパティが含まれているときもDebug.Printが残るんだよね。
プロパティは結局Property Let/Set/Get=関数になるから。
だからDebug.Printが消えるためには引数が定数かローカル変数かプライベート変数でなければならない。
>>99
画像情報と文字情報を別々に取っておくしか。
あとは、VBにたよらずに他の方法で縮小するとか、
2000以降なら綺麗な縮小方法も可能だったような記憶が

>>100
一行一行よみこんで、書き換えて保存してください。
文字数が同じなら方法もありますが。
Debug に対する操作は実行ファイルにした時には消えるけど、そこに書いた式は
全部残るんじゃないの?
残ってて、良いか悪いかはソフトを作る人or会社の判断なだけだと思いますが。
106nao:02/11/26 02:41
>103
ありがとうございます。
1行読み込んで、保存。
それに次行を追記、で保存-追記ということですね。
ちなみに文字数が同じ場合ですと、どのような方法が?
>106
文字数というのは正確な書き方ではなかったとおもいます。バイト数ですね。
・ランダムアクセスモード
・Seek キーワード
・Get ステートメント
・Put ステートメント
でできませんかね
元ファイルを読み込み
文字変換を行い
テンポラリファイルへ書き出し
元ファイルを削除orリネーム
テンポラリファイルをリネーム
ファイルリストボックスに
フォルダとファイルが表示されていた場合
人間は黄色いアイコンはフォルダだと認識できますが、
VBでは現在選択されている
File1.List(File1.ListIndex)
がフォルダなのかファイルなのかは
どうやって判別するのでしょうか?
File1.List(File1.ListIndex)ではファイル名しか取ってこれないのでは
111109:02/11/26 04:46
そうでした・・・。
112デフォルトの名無しさん:02/11/26 05:36
厨な質問で恐縮ですが・・・。
チェックボタンなどのcaputionに書いた文字なんかは、enableをfalse
にすると凹んだ灰色になるけれども、それと同様に、
ラベルに書いた文字を凹ませたりするにはどうするん???
>>112
普通そんな事はすべきじゃないと思うが、ラベルコントロールを 2 つ重ねたら
どうだ?
>112
そういう風に見えるように表示してみては?
たとえば、ラベルを二個用意して、FillStileを透明にして、
1ドットづつX,Yをずらし、色を変えて、、、
強調表示やボタンの影とかの色は用意されてますし。
115112:02/11/26 06:22
そんな面倒な事するのですか〜・・・。
例えばIEのインターネットオプションの接続ってところを
みると、俺はADSLでしかも串を使っていないから「現在の規定値」
ってところがまさにそうなってるんでげすよ。。。VBで言うところの
ラベルに書いてると思うんだけど・・・。
めんどくさいのかな・・・
UI的に良くないだろうね。
何せ「入力できない」のに「入力できるんじゃない?」って部分を作ってはダメ。
これはどうやって作っているんだろうという物があったらSpy++という
ツールがあります。
メニューのスパイ>ウインドウ検索を出して、ファインダーツールの(+)を
調べたい物の上にドラッグすれば、多少は知ることができます。
118デフォルトの名無しさん:02/11/26 06:37
>>115
つーか、Windows XP でそんな事すると浮きまくるぞ。
VB2 では THREED.VBX というのがあったなー。
120デフォルトの名無しさん:02/11/26 07:12
VBSについての質問なんですが、
特定のファイルの文字コードを変換したいのですが、
どう記述すればよろしいのでしょうか?
例えばEUC→シフト JISみたいな感じで。
1211:02/11/26 07:23
インターネットエクスプローラは垂直スクロールバーによりどんどん下の内容を表示させていけますが、
このようにVBのユーザーインターフェイスも画面に入りきらないボタンなどを画面の下のほうに置いておいて
スクロールバーを下に動かすとボタンなどのコントロールが出てくるようにしたいのですがどうすればよいのでしょうか?
122121:02/11/26 07:24
うっかり名前欄に1と書いてしまいました。すいません。
タブコントロール使え
VBS ってバイナリファイル扱えたっけ?
125121:02/11/26 07:50
さっそくタブコントロールについてしらべてみます。
ファイルサイズを求めたものの、
433328282
とか
55743
というのを3ケタごとにカンマで区切って見やすいようにしたいです。おねがいします。
1271:02/11/26 07:54
Format
Format でできなかったか?
ケコーン
130126:02/11/26 08:08
Formatつかったことないですがチャレンジしてみます
131120:02/11/26 08:14
>>124
ひょっとして無理ポ・・・ですかね?
自分は全然わかららないのですが。
文字コード変換を行う ActiveX を作れ!!
133126:02/11/26 08:26
Formatで調べたらFormatNumber関数が見つかり、
FormatNumber(1486852)
だと
1,486,852.00
になりましたが小数点のケタ数も指定できるとわかり
FormatNumber(1486852,0)
で無事1,486,852がもとまりました。
フォームにメニューコントロールがある場合に
F10を押すとメニューが選択された状態(?)になるのですが、
これを選択されないようにすることはできるのでしょうか?
>>134
あ、ほんとだ、フォーカス移動するね。知らんかった。
とりあえずサブクラス化と言ってみるテスト。
サブクラス化しても何もできんのじゃないか?
>>136
ありゃ。んじゃサブクラス化じゃなくてフックかな。
どっちにしてもちょっと自分でサンプル作る気には
ならんな・・・。誰かそのへん詳しい人よろしこ。
すまん、サブクラス化して WM_SYSKEYDOWN を捕まえればいけそうだ。
やっぱサブクラス化で正解か。
良かった良かった。
とはいえ、そのUIには問題あるんじゃないのか134よ。
そうでもないでしょ。
F10 キーはシステムキーだけど、それに独自のキーを割り当てて使っているアプリ
はいくらでもある。
訂正。
×: 独自のキー
○: 独自の機能
>>139
つーか、そこまでしなくても、
フォームのKeyPreview = True にして、
KeyDownで If KeyCode = vbKeyF10 Then KeyCode = 0
でいけそうな気がする。

でも、「そのUIには問題があると思う」にはハゲシク同意、と言ってみるテスト
143140:02/11/26 10:04
ああ、F10 を何かに使いたいんじゃなくて、単にメニューがアクティブになるのを
抑止するだけってならクソだ。
144nao:02/11/26 10:09
>107
ありがとうございます。ちょっとやってみます。
>108
それは思いついたのですが、もっとシンプルな方法があればなぁと。
>>112
CreateWindow使ったらできたけど、はたしてこれがVBかというと微妙。。

ret = CreateWindowEx(0, "STATIC", "sample", _
 WS_CHILD Or WS_VISIBLE Or WS_DISABLED, _
 10, 10, 50, 100, Me.hWnd, 0, App.hInstance, 0)
CreateWindow でいいやん・・・
漏れのAPIビューアだと CreateWindowExしか定義されてなひ・・・
WINAPI32.TXT ってアップデートしないのかな。
14885:02/11/26 12:32
>89
'True:デバッグモード False:デバッグモードではない
Public Function FncIsDebugMode() As Boolean
Dim IsDebug As Boolean
  IsDebug = False
  Debug.Assert FncReturnTrue(IsDebug)
  FncIsDebugMode = IsDebug
End Function

Private Function FncReturnTrue(ByRef IsDebug As Boolean) As Boolean
  IsDebug = True
  FncReturnTrue = True
End Function
149デフォルトの名無しさん:02/11/26 20:12
偽メッセンジャーなんかだと、フォーム自体を半透明化できるじゃないですか。
あの半透明化ってのはVBでは無理でしょうか。
>>149
出来ます。
151デフォルトの名無しさん:02/11/26 20:22
>>149
書き込みボタン押してから、あ、「出来る」だけの回答来るだろうなと
思ったけど、まさにその通りでありがとう。
で、どうやれば良いっすか。
>>151
調べろ。


だけの回答ぐらい予想しろよな。
>>152
サンクス。やる気出た。
出来る限り探してみるよ。
154デフォルトの名無しさん:02/11/26 20:29
2つのデータファイルを1行ずつ比較し、
合致しなかった箇所だけを書き出すプログラムを作りたいのですが、
どのような手順で考えていけばよいでしょうか。
あしがかりだけでも教えていただきたいのですが。
>>154
片方配列にでも格納して比較しる。
fc.exeを呼び出すとかさ。
>>156
ソレダ(・∀・)
158156:02/11/26 20:47
行の挿入や削除などの処理も必要なら少々複雑になるから、156が一番手っ取り早いんだけどね・・・
"Diff アルゴリズム"で検索すれば色々あるとおもうY0
フィリピン青年、JPEG ウイルス作成者と名乗る

>地元の業者から購入した Microsoft Visual Basic 6 を使って、
>同ウイルスを作成したとしています。
http://www.sophos.co.jp/virusinfo/articles/perrun2.html

VBはウィルス作成も可能です。
>>159
C++やJavaでもウイルスは作成可能。
VBもまともなプログラム言語なんだから当たり前。
161デフォルトの名無しさん:02/11/26 22:05
初心者の範疇にも入らないような質問ですまんのですが、
ボタンを奇数回押すとtrue、偶数回押すとfalseの値を返すには?
>>161
Bool型Flagでもたてれ。
押すごとにTrue、False切り替え。
フォームに一つしかコマンドボタンが無い場合、
Enterキーとスペースキーを押すとCommandX_clickが呼び出されますよね?
CommandX_clickを呼び出したくない場合はどうすればいいのでしょうか?
他に方法がありゃいいけど、、、
・TABストップをFalse
・ダミー用のコマンドボタンを画面外に作成
・そっちにフォーカスあたえておく
>>163
Windows辞めれ。
166sakura:02/11/26 22:53
またお邪魔します
教えてください

inet1を使ってFTP処理で
送信方法をバイナリ形式に変更したいのですが、

Inet1.Execute , "BINARY"

Do While Inet1.StillExecuting
DoEvents
Loop

これでは、下のループをグルグル。。。。
記述に間違いがありますか?
よろしくお願いします

おわり。
Inet1.Execute , "BINARY"の次の行に行ったということは、
BINARYに変更し終わってるんじゃないの?
エラーならエラーイベントおこるだろうし。
どんな状態になっているか、目で見てはいかが?
BlackJumboDogなどのプロクシーでも入れて、状態が表示できるように。
うちのMSDNには引数operationの有効なFTP設定値に、BINARYが見当たりませんが?
170デフォルトの名無しさん:02/11/26 23:32
OpenURLメソッドの使用例をどうぞ>>166
171デフォルトの名無しさん:02/11/26 23:56
コンボボックスに1〜100までの数値をいれて
Text1とコンボボックスの数字を足して
結果をText2に表示しようと思い下記のようなものをつくったのですが
うまくいきません

Text2.Text = Val(Combo1.AddItem) + Val(Text1.Text)

どこをどのように変えればよいでしょうか?
アドバイスお願いします。
AddItemの使い方を調べれ
173sakura:02/11/27 01:47
みなさん、回答ありがとうございました。

OpenURLを使用して、無事にバイナリでの送信に成功しました。
ありがとうございました。

また、お願いしますね。

おわり。
174sakura:02/11/27 02:38
VB6.0ってC++のSTLにあるような
mapクラスみたいなのってありますか?
>>174
Collection Dictionary で足りる?
VB6.0でformにLabelをダイナミックに(iが1なら1個)
作成することは可能でしょうか?

もしくはコードでLabelが作れますか?
>>176
Label1(0)を作っておいて、
Call Load(Label1(1))
Label1(1).Visible=True
などとする。
動的にコントロールを作り出す関数もあったはずだが、
今ちょっと名前が出てこない。誰かほかの人よろしこ。
178:02/11/27 11:38
>>177
Controls.Add かな
>>178
あ、それだ。サンクスコ。
一応サンプルコピペしとくか

Option Explicit
' オブジェクト変数を CommandButton として宣言します。
Private WithEvents cmdObject As CommandButton

Private Sub Form_Load()
Set cmdObject = Form1.Controls.Add("VB.CommandButton", "cmdOne")
cmdObject.Visible = True
cmdObject.Caption = "動的 CommandButton"
End Sub

Private Sub cmdObject_Click()
Print "これは動的に追加されたコントロールです。"
End Sub
180デフォルトの名無しさん:02/11/27 12:04
VB6でトグルボタンを使ってラジオボタン(?)を作りたいのですがうまく行きません。
トグルボタンを何個か並べておいて押したヤツがtrueになって他のは全部falseになる形です。
ボタン並べてこんな風に書いてみたのですが、、
Private Sub ToggleButton1_Click()
ToggleButton1.Value = 1
ToggleButton2.Value = 0
End Sub
Private Sub ToggleButton2_Click()
ToggleButton1.Value = 0
ToggleButton2.Value = 1
End Sub
「実行時エラー28 スタック領域が不足しています」のエラーになります。
ヘルプとか見てみたのですが、押されたボタン以外のValueを変更した時に
変更されたボタンにClickイベントが発生して・・・みたいな感じで無限ループに
なってるような感じがします。(違うかもしれませんが)

何かヒントでもお教えいただければと思います。
トグルボタンはMicrosoft Forms 2.0 Object Libraryのを使ってます。
>>180
そもそもMicrosoft Forms 2.0 Object Libraryって
勝手に使っちゃまずかったような。
それはおいといて、Value値を変えてる最中かどうか
フラグ立てでもすれば?
>>180
つーか、標準のオプションコントロールじゃだめなの?
ちなみに、チェックボックスでは Value を vbUnChecked → vbCheckedにすると
Clickイベントが発生するから似たようなことが起きてんじゃないかな(未確認)
183デフォルトの名無しさん:02/11/27 12:45
>>181
Microsoft Forms 2.0 Object Libraryって使ったらまずいのですか?
ExcelなんかのVBAでは当たり前のようにトグルボタンがあるのですが
VBではかなり探さないと見つからなかったので変な気はしたのですが・・・
フラグ立ては・・・なんかうまくいかなかったのでもう少し努力してみます。
>>182
標準のオプションコントロールで作ってたのですけどね・・・
年配の方が使うものでして「どれが選択されてるのかわかりずらい」
「押しにくい」という意見が殺到しまして。
言われてみればそうかも?と思って作り変えようとしたらこのざまです。
>>183
Microsoft Forms 2.0 Object Library は Office とかに付属しているもので、
VB 標準ではなかったと思う。
Private InOwnChanging As Boolean
Private Sub ToggleButton1_Click()
If InOwnChanging Then Exit Sub
InOwnChanging = True
ToggleButton1.Value = 1
ToggleButton2.Value = 0
InOwnChanging = False
End Sub
...

すぐに思い付くのはこんなもんか?
>>183
超FAQ
見飽きた。ウンザリ。
187デフォルトの名無しさん:02/11/27 12:53
VB6+ActiveReport1.5で帳票を印刷したいのですが
余白の設定をするにはどうすれば良いでしょうか?

PrinterオブジェクトのScaleTop等を変えれば良いと思うのですが
それをActiveReportに認識させる方法がわかりません...
188デフォルトの名無しさん:02/11/27 13:17
コマンドボタンで、1回クリックするとへこんで、
へこんだ状態のをクリックすると元に戻るやつってどうやってるんすか?
ひょっとしたらコマンドボタンじゃないのかな。
>>188
チェックボックスのスタイル変更してみ。
>>189
おおー、初めて知った。ありがとうございます。
>>187
ActiveReportsのPageTopMarginとかを変えるのでは駄目?
192183:02/11/27 13:48
>>186
すみません、過去ログはいろいろ漁ってみたのですが・・・
っていうか、、189の応用で解決!!
あほくさ、、こんなことで悩んでたなんて。
ともかく皆さんありがとうございました。
193デフォルトの名無しさん:02/11/27 14:14
ADODBを使って自己満足ツールを作ろうと思います。
ADODBのメソッド・プロパティ一覧とカンタンな説明ってどこかにないでしょうか?
例えば、"Connection String"とか"MoveNext"とか・・。
なければ、誰か作ってください。どうか、よろしくおながいします。
>>193
>なければ、誰か作ってください。
この常識外れな一言さえなければ、おまえ、幸せになれたのにな。
195176:02/11/27 14:52
>177-179
たすかりました どうもですm(__)m
19654:02/11/27 15:12
>>65
またまたこんな続きまで書いてもらっちゃって。
うん、やっぱりファイルネームのパラメーターは渡したいなと思ってた。
今からコレ試してみるよ!
何から何まで、ホントにありがとう!!
197デフォルトの名無しさん:02/11/27 16:59
>>194

──■──■──────■─────────■────────────
─■─■─■────■■■■■─────■■■■───────────
■■■■─■■■■───■──■■─────■─■■■■──■■─■■
──■─■───■───■─■──■───■──────■─■■─■■
■■■■────■───■■───■───■─────■───■■■─
──■──■──■──■■────■──■───■──────■■■─
■─■■──■─■─■─■────■──■──■────────■──
─■■─────■───■────■─────■────────■──
■■────■■────■─────■─────■■■■■──────

あなたの想像以上に、VB.NETのスレと両方見てる人はいますよw

さ、次の質問者の方どうぞ
199デフォルトの名無しさん:02/11/27 18:07
>>198
──■──■──────■─────────■────────────
─■─■─■────■■■■■─────■■■■───────────
■■■■─■■■■───■──■■─────■─■■■■──■■─■■
──■─■───■───■─■──■───■──────■─■■─■■
■■■■────■───■■───■───■─────■───■■■─
──■──■──■──■■────■──■───■──────■■■─
■─■■──■─■─■─■────■──■──■────────■──
─■■─────■───■────■─────■────────■──
■■────■■────■─────■─────■■■■■──────
>>197 >>199
2ヒキ ツレマスタ
とりあえず謝っとく。
正直、すまなかった。
202デフォルトの名無しさん:02/11/27 18:31
>>183
いずれかを選択させたければ、オプションボタンのStyleプロパティを"1"にする。
複数選択させたければ、チェックボックスのStyleプロパティを"1"にする。
「Microsoft Forms 2.0 Object Library(FM20.DLL)」は、Microsoft Officeの
コンポーネントで、単体では再配布できない。
つまり、コイツを使って開発したアプリは、Officeのインストールされていない環境では動かない。
203デフォルトの名無しさん:02/11/27 18:55
193=194=197=198=199=200=201=203

すべて僕のジサクジエンですた。
ごめんね〜
1=2=3=4=5=6=7=8=9=10=11=12=13=14=15=16

205デフォルトの名無しさん:02/11/27 19:17
>>1-1000
──■──■──────■─────────■────────────
─■─■─■────■■■■■─────■■■■───────────
■■■■─■■■■───■──■■─────■─■■■■──■■─■■
──■─■───■───■─■──■───■──────■─■■─■■
■■■■────■───■■───■───■─────■───■■■─
──■──■──■──■■────■──■───■──────■■■─
■─■■──■─■─■─■────■──■──■────────■──
─■■─────■───■────■─────■────────■──
■■────■■────■─────■─────■■■■■──────
VBスクリプトの正規表現について質問です。

<dt>100 ...<dt>101 ...<dt>102 ...<dt>103 ...(続く

とある形式から、たとえば「101」のDTを検索したい時に
"<dt>(101 ).+<dt>" とやると、
「<dt>101〜最後の<dt>」までが引っかかります。
これを、"<dt>101" 以降の最初に出てきた<dt>まで
引っ掛けるようにはどうしたらよいのでしょうか?
>>206
最小マッチで検索
208206:02/11/27 20:59
>>207
サンクス。
? をつけるとよさげということですね。
今、やってみてはいるのですが、むつかしい。。
209206:02/11/27 21:08
解決しますた。
"<dt>(101).+?(<dt>)" ですね。
ありがとうございました
クラスモジュールのパブリックのプロシージャで
引数にユーザー定義型を入れたのですが
パブリック オブジェクト モジュールで定義されたパブリック ユーザー定義型に限り、…
と、エラーがでてしまいます。
一応標準モジュール、パブリックで宣言したユーザー定義型を使ってるのですが…。

いろいろ検索しても解決に至らず。そこでここで質問させていただきました。
VB6です。どなたか分かる方がいらっしゃいましたらよろしくお願いします。
>>210
エラーの原因と対処方法を次に示します。
・パブリック ユーザー定義型を、クラス モジュールのパブリック プロシージャの
 引数または戻り値として使おうとしました。
 またはパブリック ユーザー定義型のフィールドとして使おうとしました。
 パブリック ユーザー定義型がパブリック オブジェクト モジュール内で
 定義されている場合にのみ、このような使い方が可能です。.

MSDNで検索したらひっかかったyo
「このような使い方」以外はできないってことじゃない?
212210:02/11/28 00:12
>>211
レスありがとうございます。一応読みました。
パブリックオブジェクトモジュール=標準モジュールの事だと思ってたのですが。
ググってみても標準モジュールで宣言すれば大丈夫だみたいな事もありましたし。
もしかすると、この辺に思い違いがあるでしょうか?
213211:02/11/28 00:30
>>212
MSDNによると、オブジェクトモジュールの規則 ≠ 標準モジュールの規則。
オブジェクトモジュールは、クラスファイルやらフォームやら。
だから、多分やりたいことはできないんじゃない?
UpDown1.BuddyControl = Text1
UpDown1.BuddyProperty = Text
UpDown1.SyncBuddy = True

ばぢぃぷろぱちぃってこれじゃあかんの?
ヘルプにも書いてないからわかんねけ
215デフォルトの名無しさん:02/11/28 01:46
VSGなんですが、CyclePageの具体的な使い方が分かりません。
誰かお願いします。
>>212
パブリックオブジェクトモジュールってのはAvtiveX DLL(とかコントロールとか)の
パブリックに設定されているクラスモジュールのこと。
そのクラス内で定義されているパブリックなユーザ定義型のみパブリックな
プロシージャとかに使える。

ユーザ定義型を使用するプロシージャとかがFriendなら標準モジュールの
パブリックなユーザ定義型が使用できたはず。
217デフォルトの名無しさん:02/11/28 13:44
ツリービューの背景に画像を表示したいのですが、どうしたらできますでしょうか。
>>217
オーナードロー
219210:02/11/28 17:54
>>216
なるほど。プロパティにするんですね。
試してみた所、無事動きました。
211さん、216さん、こんなくだらない質問に答えてくださって
どうもありがとうございました。
220デフォルトの名無しさん:02/11/28 18:50
VBでもVCにあるような日時指定コントロールはありませんか?
VBSで指定した文字列の出現回数を
数えるプロージャってどうやって作ればいいでしょうか?

>>221
ある文字列の中の文字毎の出現数?
マウスのクリックにしか反応しないボタンっていうのを作りたいのですがどうすればいいのでしょうか?
>>221
文字列検索して見つかったら足してけばいいじゃん。
もしくは、正規表現でも使えば?
>>223
ラベルとかピクチャボックスでボタンっぽいものを描く
>>223
まずは、マウスのクリックを取得できるようになってからだと思う。
227 ◆OL6sJ2s31A :02/11/28 20:08
質問です. VB6

今メッセンジャーの互換クライアントをVBで作ってるんですけど
一つつまづいている所があって, 質問.
フォーカスを奪わず常に最善面でフォームを表示したいんです.
用途としては, ポップアップウィンドウを作成するために欲しい(w

なんか普通にAPI組み合わせてみたんだけど上手くいかない.
フォーカスもってかれちゃう.
ってことで, ご教授お願いします・・・.
>222
そうです。自分で作ってみたんですが、無限ループに入っちゃって。

>224
それはやってみたんですけど、無限ループに・・・。
正規表現は使い方(意味)がよく分からない状態です。
>>221
>>228
Matchsコレクション(だったっけ?)を使えば一発。
技術評論社の本に出てる。
>>228
本買う金が無いです。
すいません、誰か教えてくれませんか?
そのMatchesコレクションというのを。
>230
WSH使ってるんならリファレンスくらいあるだろ。
mk:@MSITStore:C:\Program%20Files\Microsoft%20Windows%20Script\ScriptDocs\Script56.CHM::/html/vscolmatches.htm
をみる.
mk:@MSITStore:C:\Program%20Files\Microsoft%20Windows%20Script\ScriptDocs\Script56.CHM::/html/vscolmatches.htm
これをアドレスバーぶち込むんですか?
何も出ないんですが・・・すいません。どうやって見るんですか?
234デフォルトの名無しさん:02/11/28 21:10

すみません質問したいのですが
http://www.vector.co.jp/soft/win95/game/se135395.html
↑のソフトで何コンマ何秒とうい形で100〜1000まであるんです
それを自分の環境では1000でも早いので2000ぐらいにしたいので
よくわからない自分は .iniファイルを開いてみたりしたのですができません(TT
どれをどう弄れば可能でしょうか?
>>233
すいませんでした。&ありがとうございました。
>>234
リンク先見てないけどたぶんスレ違い
237227 ◆OL6sJ2s31A :02/11/28 21:36
>>234
無理。VBでつくられたツールだからここへ来たのだろうけど、スレ違い。
別のツール探すなりしなさい。

ってか俺のにも返答Plz(泣
238デフォルトの名無しさん:02/11/28 22:02
BitBltを使って画像を表示しているのですが、特定の色だけ透かして
表示ってできないのでしょうか?vbSrcAndとか指定しても透かしたくない
ところも透明になっちゃって。imageコントロールにgifファイルで透かす
ことはできるのですが他に方法ないかなと思いまして。
>>227
再前面表示はSetWindowPosだっけ?
>>227
フォーカスを奪わずってフォームをクリックしてもフォーカスを奪わないって事か?
241227 ◆OL6sJ2s31A :02/11/28 22:55
>>239
そうです。
それでTOPMOSTを指定しての最前面表示をしています。

>>240
いや、そうではなくて
フォームを表示した瞬間にそのフォームへフォーカスが移らない
って意味です。クリックしてフォーカスが移るのはかまいません。
2000/XPの仕様です。という事を聞きたいのでしょうか?
243240:02/11/28 23:05
>>241
だよね。ShowメソッドじゃダメなのでAPIを使う。はい↓
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_SHOWNOACTIVATE = 4
ShowWindow Form2.hwnd, SW_SHOWNOACTIVATE

もしフォームをAPIなんかで表示させて大丈夫なのか〜?と思うなら、
CBTフックでもできると思う。
http://www.galliver.co.jp/writing/msdn/msdn06/
>>241
これでできるよ

Load Form2
Call SetWindowPos(Form2.hwnd, HWND_TOPMOST, 0, 0, 0, 0, _
    SWP_NOACTIVATE Or SWP_NOMOVE Or SWP_NOSIZE Or SWP_SHOWWINDOW)

プロパティとか参照すると勝手にロードするから、
明示的にロードしときたいかな(趣味の問題だけどね)。
245デフォルトの名無しさん:02/11/28 23:19

厨なし質問ですがよろしくお願いします。
VB6で標準出力する方法は無いですか?
GUI無しのexeを作ってDOSプロンプトから実行してメッセージなどを出したいのですが。
過去ログ等ありましたら申し訳ないです、「ここ見ろ」でもかまいませんので宜しくお願いします。
>>238
こんなかんじ?(未確認)

 Call BitBlt(Form1.hDC, x, y, PictMask.ScaleWidth, PictMask.ScaleHeight, PictMask.hDC, 0, 0, vbSrcAnd)
 Call BitBlt(Form1.hDC, x, y, PictBitmap.ScaleWidth, PictBitmap.ScaleHeight, PictBitmap.hDC, 0, 0, vbSrcInvert)
>>247
マスクを用意しないでカラーキー転送したいって事では?
249デフォルトの名無しさん:02/11/29 11:30
教えて下さい。

VB.NETで、ファイルの存在確認をしたくて
Dir関数を使おうとすると、何故か、関数として
認識してくれません。helpには普通に使える様に
書いてあるのですが、実際にコードを書くとダメです。

どなたか解決方をご存知ではないでしょうか?

>>249
こっちで聞いたら?

【老若】VB.net質問スレ【男女】
http://pc3.2ch.net/test/read.cgi/tech/1025848458/l50
>>249
.NETはたとえ引数の必要無い関数でも()を付けなきゃだめだ。
252249:02/11/29 13:14
>250
こんなスレあったんですね・・・すみません。
逝ってきます。
>251
えーっと、こんな感じでもダメなんです。

dim file_path as string

if Dir(file_path) <> "" then
(ここに「ファイルがあるぞ!!」と書く)
endif

Dir自体が認めてもらえません・・・

250さんに教えてもらったスレに逝ってきます。
お邪魔しました。
253227 ◆OL6sJ2s31A :02/11/29 15:33
>>243 & >>244
レスありがとうございます。
が、出来ません・・・。

243のでも、244のでも、フォーカスを奪わずには表示できているのですが
常に最前面表示になりません・・・。
244のを使ってもならないし、243ので表示したあとに
SetWindowPosでTOPMOST指定してもなりませんです。

外部ツールから、常に最前面表示をさせてやると
ちゃんと出来てるんですが。どういうことなんだよウワァン
>>253
SetWindowPos()のフラグ設定してない予感。
255227 ◆OL6sJ2s31A :02/11/29 15:42
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const SWP_SHOWWINDOW = &H40
Public Const HWND_TOP = 0 '手前にセット
Public Const HWND_BOTTOM = 1 '後ろにセット
Public Const HWND_TOPMOST = -1 '常に手前にセット
Public Const HWND_NOTOPMOST = -2 '常に手前、解除

Call SetWindowPos(Form4.hwnd, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOACTIVATE Or SWP_NOMOVE Or SWP_NOSIZE Or SWP_SHOWWINDOW)

で普通に無理でした・・・。
定数の値はAPIビューワから取ってきたので
それが間違っているのかも?
256227 ◆OL6sJ2s31A :02/11/29 15:50
あー
試行錯誤の末に原因判明。
どうやら、「常に最前面表示」のフラグついてるWindow同士がぶつかりあって
それで自分のアプリが負けちゃってて、最前面表示できてなかったようです。
APIとかの使い方自体には問題は無かったようで。

最前面表示したいFormのPaintイベントで毎回上記のAPIを実行すれば
他の「常に最前面表示」のフラグついてるWindowにも勝てるようです。

ありがとうございました。
>>256
自己解決&それなのに結果報告(・∀・)イイ!!
質問者はこうあるべきだという見本だな。
VBが自動的に挿入したイベントプロシジャーの引数なのですが、
ByRef/ByValがついていません。
これを調べる方法はないですか?
>>256
「常に最前面表示」同士では「常に最前面表示でない」同士と同じように
クリックされたりしたとき全面に来るのが普通だと思うんだが。
「常に最前面表示」のさらに最前面表示か・・・なんか珍しいんじゃないかと。
MSDXM.OCX(WMP)でメディアファイルを再生する場合、経過時間や終了時間なんてーのは、どうやって取得するんでしょうか?
261デフォルトの名無しさん:02/11/29 17:06
ええと ある変数に 10進数で値が 入ってるんだわ。とりあえず文字列ね。
んでもって、それにたいして 何ビット目をオンにするかという情報を与えてあげるわけさ。
たとえば 15ビット目オンとかいったら 一の位が 奇数になるんだわね。
それで 0ビット目ってのが 一番 大きいやつ。
それだけオンにすると 32768になるんだ。
それで、最初からオンだったら 何もしなくてもいいんだ。
この10進数と何ビット目ってのを 与えて、指定のビットをオンにする
いいプログラムしらないかなぁ。
だれか教えて〜。
263:02/11/29 17:20
>>258
指定のない場合は ByRef 扱いになります。
264 :02/11/29 17:21
VB6今更勉強してるのだけど、新visual Basic入門
ビギナー編(ソフトバンク)
「しっかり学びたい初心者のためのVB5.0プログラミング
バイブル」技術評論社。
という本が、図書館で借りられます。どっちがいいでしょうか。
学生で、できるだけ安く学びたいのですが。リアル工房です。よろしく
265261:02/11/29 17:22
>>262
宿題じゃなくて 仕事なんだわさ。
ちょいと時間がなくて、猫の手も借りたい気分〜〜〜。
>263

> 指定のない場合は ByRef 扱いになります。

ということはByRef/ByValどちらでもOKということですか?
267:02/11/29 17:31
>>265
こんな感じかな。

s="0":p=15:debug.Print clng(s) or (2^(15-p))
268261:02/11/29 17:44
>>267
おおっ なるほどっ。
やっぱ優秀なやつは 違うな。
ありがと。
>>261
このスレにいるのは猫だということですか?
馴れ馴れしすぎ
>>261
つーか、論理和も知らずに仕事でやってるとは思えん。。
271質問:02/11/29 18:15
Inetコントロールを使って
とあるzipファイルを落としたいのです。
中身は当然バイナリ文字列なんで、バイナリモードで取得しないと駄目ですよね。
で、バイナリモードで取得しようとすると、そのファイルのサイズは
どこでダウンロードを終了するのかを知るために必須ですよね。
で、どうやってサイズを知るのかというと、HTTPヘッダの
Content-Lengthを見ればよい訳ですよね。

ところが、
Inet1.URL = "http://〜〜〜〜〜〜/test.zip"
Inet1.AccessType = icDirect
Inet1.Protocol = icHTTP
Inet1.OpenURL
Debug.Print Inet1.GetHeader
とやるとエラーになります。
OpenURLのところで。HTMLファイルなどのヘッダだったらこれで取得できるのですが。
何でこれだと出来ないのでしょうか?

ちなみにIrvineとかで試してみるとちゃんとヘッダー取得できるので
取得できないはずは無いのですが。
272:02/11/29 18:20
>>266
> ということはByRef/ByValどちらでもOKということですか?

ん?どうも質問の意図が掴み切れないのですが、

(1) Private Sub Form_Unload(Cancel As Integer)

(2) Private Sub Form_Unload(ByRef Cancel As Integer)
(3) Private Sub Form_Unload(ByVal Cancel As Integer)
と書き換えてもいいかと言う事でしょうか?

だとすれば、答えはNoです。
(2)は許されますが、(3)は許されません。
>272
そのことが知りたかったのです。
ありがとうごさいました。
なぜ質問者は「エラーが出ます」とだけ書くのか不思議だ。
エラーコードなりメッセージなり、何らかの情報があるはずなのに。
>217
MSDNでOpenURLメソッドをちゃんとみました?
ファイルサイズが必要とか書かれてました?
省略してはいけない引数省略してませんか?
276271:02/11/29 19:37
>>274
申し訳ありませんでした。
実行時エラー18 型が合わないとか言われます。

>>275
> MSDNでOpenURLメソッドをちゃんとみました?
最初に見てみてみました。
対象を指定しないでOpenURLすると内容を切り捨てて
コネクションを張った状態になるという事がわかりました。

> ファイルサイズが必要とか書かれてました?
OpenURLするのは、ヘッダの取得のためです。
実際にデータを取得する時にはExecuteして、GetChunkします。
そのときにデータ末尾を見つけるためにファイルサイズが要るのです。

> 省略してはいけない引数省略してませんか?
引数はURLとデータモードだけですよね。
両方とも省略して平気な引数なので省略していますが
省略せずに書いても同じエラーになります。
Private Sub Command1_Click()
Inet1.URL = "http://127.0.0.1/hoge/hoge.zip"
Inet1.OpenURL

End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim str As String
Debug.Print State
If icResponseReceived Then
str = Inet1.GetHeader
Debug.Print str
End If
End Sub

適当につくってみました。適宜修正どうぞ。
278277:02/11/29 20:33
まちがえた。
まぁ、StateChangedをちゃんと処理したら動くと思うよ<おいおい
Private Sub Command1_Click()
Inet1.URL = "http://127.0.0.1/hoge/hoge.zip"
Inet1.Execute , "HEAD"
End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim str As String
Debug.Print State
If State = icResponseCompleted Then
str = Inet1.GetHeader
Debug.Print str
End If
End Sub

一応こちらでは動作確認。
280あふぃ:02/11/29 21:18
質問です
外部アプリケーションを最小化させるにはどうすればいいんですか?
SendMessageで何かメッセージを送ればいいというのはわかるのですが
何というメッセージを送れば良いのかさっぱりです
よろしくお願いします
>>280
WM_MINIMIZE
282245:02/11/29 22:56
>>246

レスどもです
リンク先見て勉強してみます
ありがとうございました
283251:02/11/30 06:42
>>249
Dir("")を実行すると一見""が返ってくるように思われるが実際は違う。ファイル名が返ってきてしまう。
Dir("a")など1字以上の文字列を評価するようにしないとだめだ。
だからDir(Path)のPathに""を代入してしまっている個所を修正する。
>>283
なぁ、aってファイルがないと言う保証はないぞ。
285デフォルトの名無しさん:02/11/30 14:14
100/3という計算をしたときに小数第2位ま表示したいのですが
どうすればよいでしょうか?
>>285
format関数もしくは
int((100/3)*100)/100
287さささ:02/11/30 14:28
>286 すいません。ポインタって何ですか?
>>287
低レベルな参照のようなもの。
289287:02/11/30 14:32
スレ違いスマソ
290さささ:02/11/30 14:36
>288 もっと詳しく教えていただけますか?
>>290
いやです。
292さささ:02/11/30 14:42
>>291 そう言わずに。おねがしますよ。
>>290 お前、今は↓で電波振りまいてるんだから集中しなよ。
http://pc3.2ch.net/test/read.cgi/tech/1035859808/l50
294デフォルトの名無しさん:02/11/30 14:43
>>292
それじゃダメだよ
そういうときは
「おながいしますよ」
といいましょう
295さささ:02/11/30 14:44
>>294 じゃあ、おながいしますよ。
>>266
日本語勉強しなおせ。
297デフォルトの名無しさん:02/11/30 21:22
厨房ですまん・・・。

OSはWinMeで、VBは6.0バージョン。
そんな俺だが、

Open "c:\windows\デスクトップ\マンコtxt" For Output As #1

とコードに書いて数字を書き込ませるんだが、なぜか作ってあるファイル"マンコtxt"
には書き込まれず、独自にファイルが作られ、しかもそいつを開こうとすると何のアプリから
開く?と聞かれ、一々面倒で仕方が無い。
何が悪い?
298デフォルトの名無しさん:02/11/30 21:25
>>297
デスクトップにマンコtxtが2つ出来るんですか?
299297:02/11/30 21:26
たった今わかった・・・

マンコ.txt

ってすればOKだった。。すまん。
300297:02/11/30 21:39
'スレ違いで申し訳ないが、皆のPCがこの計算に何秒かかるのか知りたい。
'俺は32秒だった。

Option Explicit
Private Function gauss(p As Long) As Long
Dim n As Long
Dim q As Long

If p >= 0 Then
q = p
Else
q = -p
End If

n = 0
Do
n = n + 1
Loop While q ^ (1 / 2) > n

gauss = n - 1

End Function

'続く
301297:02/11/30 21:41
'続き
Private Sub Command1_Click()
Dim p As Long
Dim q(100000) As Long
Dim i As Long
Dim j(100000) As Long
Dim kaishi As Date
Dim owari As Date
kaishi = Now
Open "c:\windows\デスクトップ\素数.txt" For Output As #1
j(1) = 1
Print #1, 2
Print #1, 3
Print kaishi
For p = 4 To 100000
q(p) = gauss(p)
For i = 2 To q(p)
If p Mod i <> 0 Then
j(i) = 1 * j(i - 1)
Else
j(i) = 0 * j(i - 1)
End If
Next i
If j(q(p)) = 1 Then Print #1, p
Next p
Close #1
owari = Now
Print owari
MsgBox "終了しました", vbOKOnly
End Sub
'みんな何秒かかる???スレ違いですまんが・・・
302297:02/11/30 21:48
ちなみに10万までの素数を計算して書き込ませるプログラムね。
スレチガイでごめん。
'>>302
'知ってどうする
304297:02/11/30 22:29
'>>303
'PCの性能を知りたいの
c:\windows\デスクトップ\素数.txt って、固定かぃ、、、
>>297
2分5秒。K6-2 400MHz。

おせーよ…
それと25は素数かい?
308306:02/11/30 23:02
暇なので改良。改良後:28秒

q(p) = gauss(p) を
q(p) = Int(Sqr(Abs(p))) に変更、gauss削除。
309デフォルトの名無しさん:02/11/30 23:34
ポインタとは どっかを指し示すようなものさ。
ま、そこが ポイントなんだけどな〜〜

わっかるかなぁ〜 わかんねぇだろ〜
310297:02/12/01 00:02
>>308
おおお・・・そんな便利な関数があったのか>sqr
厨房でスマソ(もう直ぐ30歳だけどね)。
ちなみに今は"abs"はいらんから、absを使わないで10秒だった。
>>309
何となく言っている事はわかる。
折角計算して出した素数を使った方が速くなるものね。
311306:02/12/01 00:27
>>310
素数 "列挙" アルゴリズムを極めるスレ
http://pc3.2ch.net/test/read.cgi/tech/1018657457/
参考になるかも。
殆どCだけどもしレス番指定してくれたら可能な限りVBに翻訳するよ。
>>311
とりあえず全部。
313297:02/12/01 00:31
>>311
ありがとね。
ちなみにsqrは知ってたけど、intを知らなかったんだった。
100万まで計算させて5分ちょいかかった・・・。
それと、この話はそこのリンク先のスレに移行します。
俺もちょっとVC++をかじっているし、VC++も持ってるから。
314306:02/12/01 00:45
>>312
ズガーンΣ( ̄Д ̄;)
>>313
100万までならVBでも1秒切れるはず。がんがってくだちい。
315デフォルトの名無しさん:02/12/01 01:58
フォーム上で色々(線や四角や図などを)とデザインしたいのですが
VB標準のコントロールボックスのような機能を実現する方法がわから
ず困っています。どこか参考になるサイトや方法が有れば教えて下さ
い。OS:XP(HOME) VB6.0(SP5)
316デフォルトの名無しさん:02/12/01 04:54
pictureとかimageで無理やり。
VBじゃほとんど無理だろ。
コマンドボタンを押してエクセルのワークシートを開きたいのですが、
コードがわかりません。
ヘルプファイルがないので教えてください。
318317:02/12/01 06:12
わかりました。すいませんでした。
VBScriptでサーバ上にあるファイルをダウンロードできますか?
もしくはVBScriptでサーバ上にあるファイルのソースを変数に得ることはできますか?
>>319
それができたら相当数の人が不幸になると思われ。
そーゆー ActiveX を作ればできるんじゃないか?
VBScriptの使用方法や何サーバーか分からんから答えられん。
VBScriptの使い方はHTML等に埋め込むのではなく、
スクリプトファイル単体で使いたいのです。

サーバはWebサーバーです。http://www.google.co.jpとか
324最凶VB厨房:02/12/01 13:21
>>319
Windows Scripting Host
http://yasai.2ch.net/win/kako/1002/10026/1002654665.html
ここの最後のレスでも見とくか?
325 ◆bCmBK/NK7o :02/12/01 13:48
質問させてもらいます。

VB6にて、特定プロセスの通信量
(受信が何KB/s で送信が何KB/s ってやつ)
を知りたいのですが、どうやればいいでしょうか。

送信全体や、受信全体ならば
取得できる方法があるのですが
特定プロセスとなると調べてみたのですがわかりません。
326デフォルトの名無しさん:02/12/01 16:00
VB6.0から
Winsock使ってメール送信をしたいのだけれど、
関数郡どっかにない?
sampleでも
>>326
文字コード変換とかけっこう大変だけど市販のコンポとかじゃだめなの?
>>325
パケットをキャプチャしてポート番号でプロセスを識別すればいいんでない?
330325 ◆bCmBK/NK7o :02/12/01 17:16
>>329
自分の技術力不足ですみせんが・・・
>パケットをキャプチャして
の時点でもうバタンキューです。
どうやってやればいいのやら、です。
>>330
そういえば、キャプチャしても送信のパケットは見れないからだめか。
332デフォルトの名無しさん:02/12/01 22:37
DataGrid コントロールで特定の行だけ背景の色を変えたいのですが、
どなたか方法教えていただけませんか?
333デフォルトの名無しさん:02/12/02 00:12
>>328
いや実は業務で使うんだ。
それで、やっぱりフリーはちょっとということで。
手作りしようかな。と考えました。
難しいのね。単純にsendmailじゃできないのね。

>>327
Thanks
334デフォルトの名無しさん:02/12/02 00:17
ExcelのVBユーザーです。
お聞きしたいのですがCやFortranで作られたExe形式のファイルを
VBから実行することはできるのでしょうか?
ExcelをInterfaceだけに使いたいもので・・・。
335デフォルトの名無しさん:02/12/02 00:21
テキストボックスに入った少数は全て四捨五入して1と表示
させたいのですがどうすればよいでしょうか?
少数ねぇ…
337デフォルトの名無しさん:02/12/02 00:53
>>334
shell "hoge.exe"

>>336
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim Number As Variant
If KeyAscii = &HD Then
Number = Int(Val(Me.Text1.Text) + 0.5)
Me.Text1.Text = Number
End If

End Sub
338デフォルトの名無しさん:02/12/02 00:56
VB.NETでVB勉強中ですが、
SelectNextControlの使い方がいまいち判りません。
フォームにテキストボックスを2つ貼ってあり
テキストボックスのkeypressイベントを拾って
 If e.KeyChar = Chr(13) Then
  Me.Parent.SelectNextControl(Me, True, True, True, True)
 End If
とやると
「オブジェクト参照がオブジェクト インスタンスに設定されていません。」
と叱られます。
既出かもしれませんがよろしくお願いします。
339334:02/12/02 00:58
>337
ありがとうございます。うまくいきました。
すごい助かりましたあ。
>>338
こっちのほうがいいんでない?

【老若】VB.net質問スレ【男女】
http://pc3.2ch.net/test/read.cgi/tech/1025848458/l50
winsockを使って、サーバーとクライアント間で配列データのやり取りを
したいと思っているのですが、うまくいきません。

送信側
Dim list(1 to 10) As String
'Listにはすでに文字列データが入っています。
winsock.SendData list

受信側
Dim RecvData(1 to 10) As String
winsock.GetData RecvData

環境 WindousXP vb6.0pro
byte型配列で送受信ということを聞いたこともありますが
どうなのでしょうか?
よろしくお願いします。
winsockコントロールってある意味、罪だと思います。
343デフォルトの名無しさん:02/12/02 18:12
16進の"FF"を
Integer型の変数に-1と入れるような関数はあるでしょうか?
344343:02/12/02 18:15
間違い”FFFF”でした
345343:02/12/02 18:16
すみません。
やっぱりいいです。
Val("&H" & "FFFF")
347デフォルトの名無しさん:02/12/02 18:26
gifアニメーションを表示させるにはどうしたらいいのでしょうか。
Imageコントロールで表示させたのですがアニメーションにはなって
なかったです。
348デフォルトの名無しさん:02/12/02 19:40
プログラム初心者なんですが・・・。
例えば、

Dim m(100000) as long
Dim n as long
m(n)=n

としておいて、3で割り切れない100000までの整数を改めて
Dim l(k) as long  '(kは具体的に数値を入れておく)
のなかに隙間無く入れたい。
どのようにプログラムを組めばよいか、良いアドバイスおながい。
349デフォルトの名無しさん:02/12/02 19:58
VS6.0のDISC2ってのはセットアップ出来ないの?
いちいちEドライヴに入れるのは面倒で仕方ない。
350デフォルトの名無しさん:02/12/02 20:01
>>348
イミワカラン
分からんこともないと思うが。
Const N_Max As Long = 100000
Dim n As Long
Dim l() As Long
Dim d As Double, i As Long

n = CLng(N_Max / 3 * 2 + 0.67)
ReDim l(n)

d = 1
For i = 0 To n - 1
l(i) = CLng(d)
d = d + 1.5
Next

m(100000) の必要性が全くわからんのだが
> Eドライヴ

失格。
>>348
3で割れるかチェックして格納していくだけじゃないの?
何を難しく考えてんでしょうか。
355348:02/12/02 21:10
>>354
すまん。3で割った後、次は5でその次は7で・・・という風に、
次々に素数で割っていって、残ったものだけを変数に入れて置きたいんです。
いわゆるエストラテネスの篩を考えてます。
>>355
それならそうと書かんとやり方が変わる。

>>352
ならんぞ(w
357デフォルトの名無しさん:02/12/02 21:29
少数以下なら全て1に変換したいのだがどうすればいい?
>>355
テーブルいじらないで最後に別の配列に格納していけ。
>>357
1以下0以上なら1に。
360デフォルトの名無しさん:02/12/02 22:33
ファイルの内容を1文字づつ読み込むにはどうしたらいいんですか?
おおしえください。
>>360
マニュアル読め。
362360:02/12/02 23:14
>>361
マニュアルもってないです;;
>>362
割れ厨か?
>>360
マルチやろうか。このファッキンが、氏ね。
365デフォルトの名無しさん:02/12/03 02:28
gifアニメーションを表示させるにはどうしたらいいのでしょうか。
Imageコントロールで表示させたのですがアニメーションにはなって
なかったです。
366デフォルトの名無しさん:02/12/03 02:53
>>365
WebBrowserコントロール使え。
…たしかMSのFAQにそう書いてあったような気がする。
>>333
SMTP自体はすげぇ簡単だから、SJIS→JIS変換コードさえ書けば、
あとはサーバとマターリお話するだけで送信できるよ。
注意点はSubjectに漢字があったらちゃんとエンコードすることと、
桁数制限と、行頭のピリオドがエスケープされることぐらいかな。
RFC片手にTelnetでSMTPとお話してみれば、どれだけ簡単か分かると思う。
368D:02/12/03 07:07
>>360
マニュアル無いなら理由を書いておいた方がいい。
少なくとも教えを乞う側なんだから相手に気分良く教えてもらわないと...
誰だってライセンス違反してる可能性のある人には教えたくない(と思う)。
もし万一ライセンス違反なら人に聞くのは間違ってる(もっと根本的なことから間違ってるけど)。
もしそうでないならごめん。
369D:02/12/03 07:40
>>348
Dim d(100) As Long, cnt As Long, Rcnt As Long
Dim i As Long
d(0) = 2
cnt = 2
Rcnt = 1
Do
  cnt = cnt + 1
  For i = 0 To Rcnt - 1
    If cnt Mod d(i) = 0 Then
      i = -1
      Exit For
    End If
  Next i
  If i <> -1 Then
    d(Rcnt) = cnt
    Rcnt = Rcnt + 1
    Debug.Print cnt
  End If
Loop Until Rcnt = 100
コードは汚いけどこんな感じ
370 :02/12/03 09:20
すみません、頭が狂いそうになりながら書いてみたのですが
エラーはなんとか消したものの、実行すると途中でエラーがでてしまいます。
よろしければ、どこが原因か教えてください。

会議室を予約するプログラムです。

ソースは次に分けます
>>370
ソースいらん、エラーメッセージ書けボケ
372 :02/12/03 09:23
Dim d(100) As Long, cnt As Long, Rcnt As Long
Dim i As Long
d(0) = 2
cnt = 2
Rcnt = 1
Do
  cnt = cnt + 1
  For i = 0 To Rcnt - 1
    If cnt Mod d(i) = 0 Then
      i = -1
      Exit For
    End If
  Next i
  If i <> -1 Then
    d(Rcnt) = cnt
    Rcnt = Rcnt + 1
    Debug.Print cnt
  End If
Loop Until Rcnt = 100
373 :02/12/03 09:23
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>

void main(void)
{
int id=0,heyaban,jikan,aoh,aa,ab,ac,ad,ae,af,ag,ah,ai,ba,bb,bc,bd,be,bf,bg,bh,bi;
int ca,cb,cc,cd,ce,cf,cg,ch,ci,da,db,dc,dd,de,df,dg,dh,di;
char month,day,bunki,kaigyo,yoyo[10];
char * youbi[]= {"sun", "mon", "thu", "wed", "thr", "fri", "sta"};
static char *week[] = {"sun", "mon", "thu", "wed", "thr", "fri", "sta"};
time_t now;
struct tm *tm_now;
FILE *fp;
aa=ab=ac=ad=ae=af=ag=ah=ai=ba=bb=bc=bd=be=bf=bg=bh=bi=0;
ca=cb=cc=cd=ce=cf=cg=ch=ci=da=db=dc=dd=de=df=dg=dh=di=0;
now = time(NULL);
tm_now = localtime(&now);
printf("%d/%d %s\n",
month=tm_now->tm_mon+1,day=tm_now->tm_mday,youbi[7]=week[tm_now->tm_wday]);
do{
printf("使用番号を入力して下さい。\n");
scanf("%d",&id);
printf("%dでよろしいですか?\n",id);
scanf("%c %c",&kaigyo,&bunki);
if(bunki=='y')
break;
}
374370:02/12/03 09:24
>>371
そうします。
長すぎて、10回ほどに分けないといけないので・・・
!? なんでVBのスレでCのソースを出すのか理解に苦しむ・・・

>すみません、頭が狂いそうになりながら書いてみたのですが
なにをだよ

>エラーはなんとか消したものの、実行すると途中でエラーがでてしまいます。
どっちだよw
>>373

すれ違い。然るべきところに行ってくれ。
>>375
Cをだろ。
>>374
10回・・・・・ (´д`;)
それをコピペ結合して、わざわざテストして原因解明まで
やってもらおうってのはちょっと甘すぎるぞ。
自分でエラーの出る個所を絞り込んで、その部分だけソースを
出すことをオススメする。
もしどうしても全部のソースを出す必要があるなら、どっか
アップローダーにでもソースアップすれば、誰か落として
テストしてくれるかもな。やってやると約束はできんが。
379370:02/12/03 09:28
>>372は違います

ソースは>>373です

>>376
スレ違いですか・・・?
>>379
宿題は自分でやろうな。
>>379
ここのスレッドのタイトル読めるよね・・・?
382D:02/12/03 09:32
>>373
あら?なんでだろ?
二重書き込み?
そんなはずは...
もしそうならごめんなさい。
383D:02/12/03 09:34
いかん>>373じゃなくて>>372だ。
度々御免なさい。皆さん。
384370:02/12/03 09:38
分かりました。エラーメッセージの意味だけ教えてください
Debug Libraryから

Debug Assertion Failde!

strem!= NULL

とエラーメッセージがでます。

strem!= NULL
はどういうことなんでしょう
ってか、スレが違いますね・・・すみません
>>384
そのまんまだが。

streamがnullであるはずなのにそれに反した。

検索すらしてないバカと見た。まぁ、VBすら知らんDQN外注だしな。
>>384
>ってか、スレが違いますね・・・すみません
分かっててなぜ書く?最後に釣りでした、とかいうオチか?
自分でよーーく分かってる通りスレ違い。よそのC言語のスレへ行ってくれ。
なお、もう返事はいらん。
これでもしつこく書くようなら、アフォは放置で。
387370:02/12/03 09:46
>>386
アホとは何ですか!
私だってがんばってるんです!
あなたの方がアホじゃないですか!!!!
388デフォルトの名無しさん:02/12/03 10:48
土曜日は"sta"ではなく"sat"がいいと思う
389デフォルトの名無しさん:02/12/03 10:51
>>387
アホじゃない、アフォだ。
C言語関係のスレがあがってないところを見ると、
やはり釣りだったようだな・・・
386で先に指摘されたから言い出せなくなったってところか。
まともな質問者はこないのかいな・・・
ふーん



Cのスレに帰っていいよ。
392しろ:02/12/03 11:37
いきなりですが質問します。
Global Const 変数名% = 数字
と宣言されていた場合%は何を表すのですか?
よろしく御願い致します
>>392
古いな・・・・。%は整数(integer)だよ。
394しろ:02/12/03 11:45
>>393
助かりました。thxです
>>394
ちなみに、constは定数であって変数ではないのだが。
VB初心者です。どなたか助けてください。

Dim data As Long
data = Val(”&H”+TextBox1.Text) ← Textは”F000”

このとき
TextBox2.Text = Hex(data)
すると、上位16bitが反転して表示されませんか?(”FFFFF000”)

Integer型の符号ビットを無視できないんでしょうか?
それともまったく筋違いな間違いを犯しているのでしょうか??
よろしくおねがいします。
>>396
面白いと思って追試してみたが、

Dim data As Long
data = &HF000
Debug.Print Hex(data)
Debug.Print Hex(&HF000)
Debug.Print Hex(CLng(&HF000))

こうやってやると、実行結果は

FFFFF000
F000
FFFFF000

ってなるね。Long型に代入するとダメなのか・・・
でも
If data = &HF000 Then
って感じで比較するとイコールだという結果になる。
なんじゃこりゃ??
俺も気になるので、分かる人解説キボンヌ
398しろ:02/12/03 13:21
>>395
そうですね。笑ってやってください
>>397
自己レス。
If data = &HF000 Then
が一致するのは、&HF000が暗黙でLong型に
変換されるからか・・・
400396:02/12/03 13:52
397さん、ご協力感謝です。

こんなんアリでしょうか?

Dim data As Long
data = Val(CLng("&H" + TextBox1.Text))  ←Textは”F000”

これだとアラ不思議。

Debug.Print Hex(data) が見事
”F000”になりました。
ちゃんと正の値になってるようです。

Val()の引数ってString型ですよね?
絶対コンパイルエラーだと思ったのに・・・
暗黙の型変換・・・VBのもっとも恐ろしい言語仕様の一つさ。
>>401

Option Strict On





と煽ってみるテスト
>>402
そりゃ.NET



と 即レスしてみるテスト
コントロールのプロパティを指定した形で
コード記述で作成できないでしょうか?

ex)
Dim mytext As TextBox
Set mytext = Form1.Controls.Add("VB.TextBox", "mytext")
mytext.MultLine = True '←参照しかできないのでエラーとなってしまう
405:02/12/03 15:46
>>397
> data = &HF000
ここで integer から long への型変換が行われるのが原因ですね。
integer型の&HF000 は -4096 ですから、longへのキャストの際、
符号拡張され &HFFFFF000 (=-4096)になります。

data=&HF000&
とすれば期待通りの動作になりますよ。
406デフォルトの名無しさん:02/12/03 15:48
VB5.0のDBGrid.Refreshメソッドで実行時エラー「実行はキャンセルされました。」
(エラー番号3669)?が出てしまいます。(SQL文は 普通のINSERT文で、項目数が66あります。)
ます、エラー番号 3669の対処方法を教えてください。
>>405
なるほど やっぱ暗黙の型変換が悪さしてたわけね。
詳しい解説ありがとう。
この場合は暗黙の型変換とは違うのだが・・・。
409396:02/12/03 16:01
>>405
納得です。

型宣言文字って手があったんですね・・・お恥ずかしい。
ありがとうございます。
410デフォルトの名無しさん:02/12/03 16:13
406
もしかしたら SQLPLUSで インサートしコミットしてないのが
原因だったりして・・・。
411:02/12/03 16:17
>>409
396さんの場合ですと、型宣言文字を使うより
 data=CLng("&H" & hoge)
の方がスマートだと思いますよ。

# >>400の時点で気付いていると思いますが、念のため。
412デフォルトの名無しさん:02/12/03 16:22
VB6でDirectSS使って英語のテキストを読むプログラムはできたんですけど、
日本語はどうやればいいのでしょうか?
ご教授お願いしますm(_ _)m
>>412
まずはその英語のテキストを読む簡単なサンプルか
該当するあたりのコードを書いてみたら?
ちなみに俺は使ったことないので答えられないが
添削してもらいやすくなると思われ。
>>412
昔ちょっと遊んでいたのが関係あるかもしれないが関係ないかもしれない。
まんまだが、日本語話せる人をいれて、話せる人を使うんだと思う。
日本語はなせる人(スピーチエンジン)としてL&H TTS3000というのを昔入れた。
もうこれ以上思い出せない。
415デフォルトの名無しさん:02/12/03 17:04
>>412
日本語をローマ字にしてやる。
そうすれば、英語でも読めるだろ(w
416414:02/12/03 17:07
>>415
最初それをやってみたら発音めちゃくちゃだった(w
417412:02/12/03 17:12
>>413
DirectSS1.Speak (Text1.Text)
としてテキストボックスの内容を読ませています。

>>414
情報ありがとうございます。
L&H TTS3000でググってきます。

>>415
その方法やってます。
「i te yo si」だと「アイテヨシー」になるので
「e te yo si」と入力してます。
418412:02/12/03 17:25
マイクロソフトのページからL&H TTS3000ダウンロードして入れたらできました。
>>414さんありがとうございました。
すみません、ActiveReportで、PageFooterかGroupFooterに表を作成したいのですが、ページを跨ぐ場合、上手く改ページされずにデータが上書きされます。表はFor文で回して記述しているのですが、何か解決策はありませんでしょうか。よろしくお願いします。
pictureboxまたはimageの画像の一部分を
別のimageにコピーするにはどうしたらいいのでしょうか?
>>420
一度だけわかりやすく質問しなおすことを許す。
>>420
bitblt
423デフォルトの名無しさん:02/12/03 22:35
すんません・・・これのどこがいけない???
オーバーフローしちゃうんだけど・・・

Dim a as integer
Dim b as integer
a = 0
For b = 1 To 10
Do
If b > 10 Then Exit Do

a = a + 1
Loop
Next b
>>423
next bに到達してない。
>>423
Forのループが機能していない。
無限ループ。
>>423
なぁ、a = 9じゃ駄目なのか?
428420:02/12/03 22:54
>>422
ありがとうございました
429超初心者:02/12/04 00:20
あるフォーム上でマウスをクリックしたときに
このマウスの画面上での位置を知りたいのですがどうしたらいいのでしょうか?
別のフォーム(の左上隅)をその位置にして表示したいのです。
430デフォルトの名無しさん:02/12/04 00:42
>>429
こういうこと?
画面上の位置(x,y)=フォームの位置+フォーム内の位置
431超初心者:02/12/04 01:16
>>430
あ、自己解決してしまいました、すみません。

仰るとおりなのですが、ちょっとややっこしい事情があって
GetCursorPos(*Screen.TwipsPerPixel)を使用しました。
432デフォルトの名無しさん:02/12/04 10:27
クリスタルレポートなんですがレポートの幅を変える方法を
教えてください。超初歩的で恥ずかしいです・・・。
433432:02/12/04 10:57
すみません。自己解決しました。
434デフォルトの名無しさん:02/12/04 11:08
VB6で質問です。
MSFlexGridコントロールでソートを行う場合、
列1、列2、列3の順で優先してソートするにはどのようにすれば
いいでしょうか。
>>434
普通のソートのやり方が分かってるなら、
列3でソート
列2でソート
列1でソート
と順番にやればいい、はず。
実際の挙動は確認してないのであしからず。
>>435
3回もソートするのはパフォーマンス面でいかがなものかと?
クイックソートで、要素の入れ替え条件を変更し、複合条件で並べ替えれば一発。
(比較検証はしていないので、どちらが速いかは、何とも言えないが・・・)
>>435 >>436

> 3回もソートするのはパフォーマンス面でいかがなものかと?

パフォーマンスも問題かもしれないけれど、>>435の方法だと、使用可能な
ソートアルゴリズムに制約がありそう。(クイックソートはNG?)
>>436のやり方が無難だと思うけど。
435だけど、俺はMSFlexGridコントロール使ったことないので、
あしからず・・・。うちではグリッド系はSPREAD使ってる。
わざわざこんな質問してくるってことは、MS...では単一ソートしか
できないのかと思ったけど、違うのん?
ソートアルゴリズムに関しては、437の書いたとおり、通用しない
ものもあるね。なので、実際の挙動は確認してないと念押ししたわけ。
Excelで複数項目(10個とか)でソートしたい時は、この手法
使えるんだけどね。もぐもぐ。
439434:02/12/04 13:22
>435
お察しの通り単一ソートしか無いと思われます。(知らないだけかもしれませんが)
で、

列3でソート
列2でソート
列1でソート

上記のやり方だと、列2でソートした時点で列3の順番がバラバラになります。

>436
やはりクイックソートしかないですか・・・
Flexコントロールの機能でそういったものがあればと思ったのですけど

というわけでクイックソートで行くことにします。
ありがとうございました。
>>434
あ、コントロールの話でつたか。
自前のソートアルゴリズムみたいな「自由度」はないかも?
441デフォルトの名無しさん:02/12/04 13:38
VB4JP32.DLLを利用してるアプリケーションを
windows2000で利用しているのですがどうもsendkeyを利用しているようで、
エンターキーを押すたびにNUMLOCKが解除されてしまいます。
外部からどうにかすることは出来ないでしょうか?

> 外部からどうにかすることは

ソースがなきゃ、修正しようがないのでは?





# 水○女史なら、バイナリエディタで実行ファイルを書き換えるかも w
フックするという手が無きにしも非ず
>>441
NUMLOCKが解除されたらONに強制的にする常駐プログラムを作るとか。
>>443
外部プロセスのメッセージをフックするのはVBではむずかしい罠・・・。

>>444
リソースを大喰いする罠・・・。
446444:02/12/04 14:18
>>445
数ミリ秒ごとに処理すればたいしてリソース食わないよ。
447441:02/12/04 16:23
皆さんありがとうございます
>>443-446
現在NUMLOCKが解除されたらONにするプログラムを作ったのですが
動かしてると使いたいアプリの方の動作がとても遅くなるので
質問してみました。
あと、すいません初心者なのでフックってなんだか分からないです。
調べて出直してきます

#sage進行だったのですね
>>446
いや、処理そのものではなく、VB製のプロセスが長時間に亘って常駐すること
自体がリソースを喰うのではないかと?

VBで常駐アプリ作った経験のある人、います?
(漏れはない)
>>435
Col = 1, Colsel = 3 とした後に Sortプロパティを設定すると、
3, 2, 1 の順にソートされるはず。(逆かも。1, 2, 3って)
450435:02/12/04 18:51
>449
なるほど。そんな手もあるのですね。
でも列1は文字列で、列2は数字でソートしたい場合がちょっと問題か・・・
あと列1、列3、列5でソートとか

で考えたんですけど1列非表示の列を作ってそこに 列1&列2&列3 みたいな文字列
をセットして、その列で文字列ソートすればいいことに気付きました。
これって邪道ですかね?
>>450
それって数値はまともにソートできる?
452444:02/12/04 19:00
>>447
タイマーやSleepとかである程度ウェイト入れてる?
常に処理を行っている状態だとCPU使用率上がるよ。
まあ俺も実際にやってみたわけじゃないから本当に遅くなるかもしれないけど。

>>448
そっちのリソースか。今ちょっとやってみたらフォーム一つ表示しただけでメモリは3Mほど使うね。
これが多いかどうかは人によるだろうけど、俺は大食いだとは思わないな。
そんなに気になるならCとかで作ればいいと思うけど。
453444:02/12/04 19:11
と思ったけど常駐=フォーム最小化+フォームHide状態で500Kぐらいになるね。
VBを知識0からお勉強できるサイトをたくさーん教えてください
>>454san
了解しました。がんばって勉強していきたいと思います。
457デフォルトの名無しさん:02/12/04 19:34
ところで、ここはひどいインターネットですね。
レスする番号を間違えてしまった僕はイッテヨシですか?
459435:02/12/04 19:59
>451
数字はFormat関数を使って桁を揃えてやるとうまく出来ました
460デフォルトの名無しさん:02/12/04 21:42
オレの気のせいかもしれないけどディストリビューションウィザードって
VBで作られてるんじゃなかったっけ?
ランタイムが入ってない状態でどうやって動かしてるんだ?
>>460
VB入れずにディストリビューション〜入れてんの?
>>460
Setup.exeはVBじゃないと思う。
Setup1.exeがVB製。
> ディストリビューションウィザードって
> VBで作られてるんじゃなかったっけ

え?
>>461
ごめん。「どうやって動かしてるんだ?」はディストリビューションウィザードで
作ったSetup.exeのこと。

>>462
あっそうか。だから二つに分かれてるんだね。
ん〜。つ〜ことはSetup.exeの方で基本的なランタイムをいれてんのかな?
そうするとSetup1.exeでOCXは使えない? っつかSetup1.exeはなにしてんの?
ソースもついてるらしいからソース見るか。
On Error GoTo line の活用方法がいまいちよくわからない…。
使い方はわかるけど、どういう処理をしている部分に配置して
よいのやら…。
全部のSubやFunctionに入れちゃヴァカですか?
>>465
想定外のエラーが生ずる可能性のあるところに入れる。想定外といっても
どういうエラーが生じそうかは分かってなければならない。

また、想定できるがErrorトラップを書かずに処理しようとすると面倒な場合に
Errorトラップとすることもある。こっちの方が多い。

私の場合は、「全部に入れる」的なことはしない。Errorトラップがあると
却ってデバッグしにくいし、Errorトラップは予測し得るエラーでなければ
Error処理がかけないからだ。
>>466

> 私の場合は、「全部に入れる」的なことはしない。Errorトラップがあると
> 却ってデバッグしにくいし、

「エラー発生時に停止」の設定にするか、または条件付コンパイルのブロック内に
On Errorステートメントを記述して、テスト段階ではすべてのエラー処理を無効化
する、とか工夫すれば、デバッグの邪魔にはならない。

>>465
A関数 → B関数 → C関数
のように呼び出しがネストする場合、たとえば、A関数にのみエラー処理が記述
されていると、B、Cの内部で発生したエラーはすべて、Aのエラー処理ルーチン
で処理される。
(ただし、クラスのInitialize / Terminate イベントで発生したエラーは、上位
モジュールでトラップできないので要注意)
全部に記述するかどうかは、ポリシーの問題なので、善悪は一概には・・・。
(必要な箇所に記述されていないのがNGなことだけは断言できるが)
>>467

(´,_ゝ`)
>>467

プ)
ところで、Erl って隠し関数なの? ヘルプに出てない。
デバッグに便利なんだが…。いや、今どき行番号使うのはどうよ、って
話は理解できるんだがなー。環境依存のエラー探すのに便利なんで。
471デフォルトの名無しさん:02/12/05 16:54
VB6のListViewで1行削除を行いたいのですが、
どうしたらいいのでしょうか?
以下のようなコードでEnd Withを通らないでExitすると
VBの動作が不安定になるということ耳にしました。

Sub Sub1()
With xyz
...
if .abc then Exit Sub
...
End With
End Sub

これに関する確かな情報はありませんか。
473デフォルトの名無しさん:02/12/05 17:05
MSFlexGridコントロールで複数、行選択した場合、
何行目が選択されているのかをどうやって判断すればいいのですか?
474デフォルトの名無しさん:02/12/05 17:10
VBのテキストボックスのフォントをマウスホイールを使って変えたいのですが、どうすればいいですか?
>>465
何も書かない状態で実行時エラーが発生するとVB標準のエラーメッセージがでて落ちる。
これで良い場合を除き関数の呼び出しツリーの始め(大抵はイベントハンドラ)には必ず入れる。

イベントハンドラ以外の関数には入れなくても良い。しかし関数内で
エラーが発生したときにリカバリする必要がある場合には入れる。
(例 ファイルオープンしたあとにエラーが発生したらトラップしてクローズ)

ここで注意するのはこのエラーを内部で完全に処理し正常続行できる場合を除き
Err.Raiseを使用し同じエラーもしくは適切なエラーにして再発生させること。
でないと呼び出し元で正常に関数が終了したと勘違いしてしまう。
なお、実行時エラーではなくエラー番号で返すのはやめたほうが良い。

>>467
クラスのinitializeで発生したイベントはNewの失敗としてトラップできるので問題ない。

>>470
隠し関数的な扱いだな。俺も極稀に使う。どうせもうなくなることはないし。
>>472
間違いなので情報はない。
>>466-467
レスありがとうございます。
エラートラップの使い方、イマイチわかっとらんみたいですので
顔洗って出直してキマス。
478465=477:02/12/05 17:22
>>475
さんも回答ありがとうございます。

ああー、やっぱり私は理解してない!

On Error GoTo ErrXXX

Select Case ABC
Case 0
処理
Exit Sub
Case 1
処理
Exit Sub
End Select

ErrXXX:
MsgBox "エラーが発生しました。"

これってやっぱ変ですか?
現在、ActiveReportを使用して印刷プレビュー画面を表示しているのですが、
そのプレビュー画面のツールバーの印刷ボタンをクリックして印刷しようとすると
無条件でOS標準の印刷ダイアログが表示されてしまうようなのですが
この印刷ダイアログを表示させないようにする方法ってなにかないですか?
>>478
綺麗じゃない。
481465:02/12/05 18:45
自己解決しました。
え〜ん、逝って来ます。
>>479

ヘルプでPrintReportメソッドを調べてごらん。
483デフォルトの名無しさん:02/12/05 19:20
>>482
レスありがとうございます。

ActiveReportObject.Show

と呼ぶとプレビュー画面が表示されますよね?
その時のプレビュー画面のツールバーの印刷ボタンを
クリックした時にダイアログを表示させない方法ということなんですが。

自分で画面つくって印刷ボタンつくってPrintReportメソッド呼べば
たしかにできますね。
その方法しかないかぁ・・・
484デフォルトの名無しさん:02/12/05 20:42
デスクトップにあるテキストの中身の3行目だけを取り出して
テキストボックスに表示させたいのですが
どのようにすればよいでしょうか?
485デフォルトの名無しさん:02/12/05 20:48
VBにエクセルを取り込むめません。
1列目の1~5行までリストボックスに
取り込む場合はどうすればよいのでしょう?

f$ = "データ.xls"
Set LINK = GetObject(f$)
For i = 1 To 5
Name (i) As LINK.Worksheets.Application.Cells(i, 1)
List1.AddItem Name(i)
Next i

これでも

Private Sub Form_Load()
Dim excelBook As Workbook
Set excelBook = GetObject("C:\Book1.xls")
Dim i As Integer
Dim buf As String
For i = 1 To 5
buf = excelBook.Worksheets(1).Range("A" & i).Value
List1.AddItem (buf)
Next i
End Sub

これでもできません。誰か教えて!!
486超初心者:02/12/05 21:27
>>48
Dim strLine as String

open <ファイル名> for input as #1
Line Input #1, strLine
Line Input #1, strLine
Line Input #1, strLine '3行目
close #1
487482:02/12/05 21:41
>>483

ヘルプの
「ビューワでの印刷制御およびプリンタ設定」

ってところで、プレビューにある[印刷]ボタンの制御とか
設定できるみたい。

#私も現在ActiveReportsのサブレポート機能で格闘中。
488479:02/12/05 22:28
>>487
なるほど、調べてみます。
ありがとうございます。
>>485
リストボックスうんぬんは知らんが、こんなのどう?

 Dim xlApp As New Excel.Application
 Dim objSheet As Worksheet, objRange As Range

 xlApp.Workbooks.Open "c:\sage.xls"

 For Each objSheet In xlApp.Workbooks(1).Sheets
   For Each objRange In objSheet.UsedRange
     Debug.Print "[" & objSheet.Name & "]" & _
                  objRange.Address & ".." & objRange.Value
   Next
 Next
 xlApp.Workbooks.Close
 Set xlApp = Nothing
490489:02/12/06 01:08
あ、ちなみに、プロジェクトの参照設定で
「Microsoft Excel (バージョン) Object Library」の要追加です
491479:02/12/06 12:27
>>487

一応、実現できそうです。
ありがとうございました。

空のフォームにビューワコントロールを貼り付けて
↓こんな感じでコーディングしてみました。


Private Sub Form_Load()

Dim cnt As Integer

For cnt = 0 To arv.ToolBar.Tools.Count - 1
If "印刷(&P)" = arv.ToolBar.Tools(cnt).Caption Then
arv.ToolBar.Tools(cnt).ID = 999
arv.ToolBar.Tools(cnt).Enabled = True
End If
Next cnt

End Sub

Private Sub arv_ToolbarClick(ByVal Tool As DDActiveReportsViewer2Ctl.IDDTool)

Select Case Tool.Caption
Case Is = "印刷(&P)"
arv.PrintReport False
End Select

End Sub
492デフォルトの名無しさん:02/12/06 12:33
VBで現在のPC上のCOMポートをコンボボックスなどに列挙したいのですが、
通常のマザーボード上のCOMポートは以下のソースで列挙できました。

' --- com ---

Dim objPort As Object

For Each objPort In GetObject("winmgmts:").InstancesOf("Win32_SerialPort")
combo1.additem objPort.Name
Next

' -----------

しかし、USB→シリアル変換ケーブルを使っていると、デバイスマネージャー上では
COM3などと認識しているUSBのCOMポートが上記のソースでは列挙できません。

なにかよい方法は無いでしょうか?お願いします。
何でも良いので教えてください
494デフォルトの名無しさん:02/12/06 14:20
Controls.Addを使って動的にコントロールを追加するときに、
チェックボックスのスタイルをグラフィックスにするみたいに、
コードで変更できないプロパティを設定するのはどのようにすればよいのですか?
どなたかお願いします。
単にそれぞれの変数に値が入っているかのチェックを行いたいのですが、
チェックする値がたくさんあるのでまとめて処理したいのです。
良い書き方はありますか?
>>495
コピペすれ。
497495:02/12/06 14:45
>>496
やっぱそれしかない?
498デフォルトの名無しさん:02/12/06 14:47
配列変数なんだったらFor...NextでOKだろうけど、
一つ一つが全然違う変数名なんだったら地道にやってもらうしかない。

がんがれ。
>>495
関数の使い方ぐらい覚えろ。
500495:02/12/06 15:03
>>498
そうだよね、ありがとう。
がんがります。

>>499
1つわかると1つ忘れる…
鬱だ氏脳
文字列をある区切り文字(”:”など)で分割して得たいのですが
そのための関数らしいsplit関数の使い方が分かりません。
簡単な例で結構ですのでお教え願えませんでしょうか?
>>501
ヘルプ嫁
>>501
Dim strHoge() As String
strHoge = Split("Hage:Hige:Hoge", ":")
これでstrHogeはHage,Hige,Hogeが入った一次元配列変数になる。
>>502
うっさい、はげ

>>503
ありがとうございました。配列を返す、という関数や要素数を指定しない配列
を使ったことがないのでわかりませんでした。
>>504
氏ね。
506494:02/12/06 16:10
事故解決デスタ
SetWindowLongでスタイル渡すだけデスタ。
カスな質問すんませんデスタ
507デフォルトの名無しさん:02/12/06 16:13
>>495
チェックする部分を関数にして
array使ったら?
心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
509デフォルトの名無しさん:02/12/06 16:17
偶数、奇数を判定するにはどうすればよいですか?
Select Case 文で総当りするのはどうも現実的でないような気がするので、
よい方法をおしえてください。おながいします。
510デフォルトの名無しさん:02/12/06 16:21
>>509
mod
511デフォルトの名無しさん:02/12/06 16:24
mod って何ですか??
割ったあまりをだす算術演算子
513デフォルトの名無しさん:02/12/06 16:30

> 割ったあまりをだす算術演算子

それと偶数、奇数と何の関係が?
>>513
偶数、奇数がどういう数値であるか考えてね。
515デフォルトの名無しさん:02/12/06 16:31
>>513
プログラマー向いてないんじゃない?
516デフォルトの名無しさん:02/12/06 16:35
>>513
ヒントもらったら自分で考えるなりしてくらはい。
modくらい検索すれば一発で出ますが。
>>513
ボク、2で割り切れる数が偶数なんだよ( ´,_ゝ`)
518デフォルトのNULLさん:02/12/06 16:39
再質問です
コントロールのプロパティを指定した形で
コード記述で作成できないでしょうか?

ex)
Dim mytext As TextBox
Set mytext = Form1.Controls.Add("VB.TextBox", "mytext")
mytext.MultiLine = True '←参照しかできないのでエラーとなってしまう
読取専用のプロパティの変更は無理なのですか?
519509:02/12/06 16:41

>>510 >>512 >>514-517

──■──■──────■─────────■────────────
─■─■─■────■■■■■─────■■■■───────────
■■■■─■■■■───■──■■─────■─■■■■──■■─■■
──■─■───■───■─■──■───■──────■─■■─■■
■■■■────■───■■───■───■─────■───■■■─
──■──■──■──■■────■──■───■──────■■■─
■─■■──■─■─■─■────■──■──■────────■──
─■■─────■───■────■─────■────────■──
■■────■■────■─────■─────■■■■■──────
520デフォルトの名無しさん:02/12/06 16:43
>>519
どうしたの?
手が震えてるよ。
餌も何もなくて釣りか。
メール欄なりたて読みなり活用すりゃよかったのに。
おめでてーな。
522509:02/12/06 16:46
>>519は偽者なんで気にしないでください。
もうちょっと自分で頑張ってみます。
523デフォルトの名無しさん:02/12/06 16:47
ADOで数件のデータをINSERT使用としているのですが
ADOってバインド配列使えないのですか?oo4oみたいに。
>>509
「総当り」とか寝言ほざいてる時点であきらかにネタだと思うんだが?
>>522
>もうちょっと自分で頑張ってみます。
いや、皆さん一通り答え書いてくれてますが。
>>524
そうか? 偶数ってなに? にーしーろっぱっとっ見たいな奴。
って覚えている奴ならそういう考えも出てくるかも知れんぞ。
たぶん、リアル消防だと思われ。って偶数奇数っていつ習ったっけな?
>>526
数学でも高校1年くらいじゃなかったっけ?
偶数とか奇数とか生成できる式習うのって。
>>518
読取専用って意味わかりますか?
>>529
人を小ばかにしすぎると、自分に対する嫌悪感が積もりに積もって死にたくなるよ。
>>529
意味自体は分かっているが、実行時読取専用プロパティを変更した状態で
Controls.Addで追加する方法を聞いているのだと思われ。
MSChartを使ったとき、プログラム実行したら最初にグチャグチャの
グラフが表示されますが、あの汚いグラフを消すことは可能ですか?
「読み取り専用」はクラス(プロパティ)の設計上の問題なので、「なぜそのような設計にしたのか」
(「せざるを得ないのか」、「でないと都合が悪いのか」)背景を考察するのが正しい楽しみ方。
>>532
出来るんじゃねーの。使ったこと無いけどさ。Clearメソッドとかあるんじゃない?
SetWindowLongで変えらんないかね?
>>533
multilineをいじれない理由って微妙だね。
>>535
プロパティとの整合性取れなくなる場合もあるだろうからクラスから出ているインターフェース
以外でウインドウを操作するのはどうかとも思われ。

いちいち問い合わせてるなら委員だろうけど値。
>>533
自分が読み間違えたからって他人の質問を勝手に背景を考察する〜とかに変えるんじゃねーよ。
>>536
APIの仕様っつーか制限のせいだろ。
VBで秀丸のように キーワードを強調して表示できるテキストエディタはつくれますか?
>>540 作れます。
>>541 どうやって?
>>540
キーワード強調だけならRichTextBoxで作ったことあるよ
がんばればできる

>>542
秀丸さんは全部自前で描画してるみたいです。

545532:02/12/06 17:12
解決しました。スンマセン
546540:02/12/06 17:14
>キーワード強調だけならRichTextBoxで作ったことあるよ
>がんばればできる

実際にやったことあるけど、しっくりこなかった

Delphi の TEdior みたいなのってないの?
>>546
正直、コンポーネント厨はかっこ悪いです。
VB厨とDEL厨を敵に回したな…
>>546
DelphiのTEdiorに対応するのはVBではTextBoxだが、
TEditorってキーワードの強調(テキストの一部だけ色を変える)ってできたか?
TEdiorでググって見たらDelphiにはこんなんあったのね。
ttp://www.vector.co.jp/soft/win95/prog/se114384.html
>>548
Delphiは「コンポーネントは自作してなんぼ。」が理念のソフトです。

>>549
TEditと誤解されてます。
552540:02/12/06 17:22
TEditor (スペルミスした...)

アルゴリズムさえわかれば自作します...
553549:02/12/06 17:25
>>551
はい。誤解してます。恥。

>>550でいいのかな。どうやら非標準の有償のコンポーネントみたいだね。
それならVBでも捜せばあるんじゃない?
ないならないでTEditorをActiveX化して使うとか。
554549:02/12/06 17:27
あっ言っとくけどコンポーネント使うだけじゃなくて作るって案も忘れずにね。
555釣り師:02/12/06 17:32
確実に釣れるネタ教えてください。おながいします・・・。
(巡回セールスマン問題?それとも、素数ネタ・・・?)
556532:02/12/06 17:37
>>555
ルアーじゃ無理。やっぱ魚の好きそうな餌をつけんと釣れんばい
VB で TEditor 並みの処理をやるのはパフォーマンス的に無理だ。
やるとしたら、C++ か何か高速な言語で ActiveX を作るべきだ。
>>557
禿胴
559540:02/12/06 17:48
>>557
...そうですか...

せめて 行番号の表示とかは無理でしょうか
(行番号を表示させているVBフリーウェアがたったけど)
>>555
一度釣られると免疫ができるというか、警戒心が強くなるから、最低でも1ヶ月ぐらい空けないとダメだよ。
それから、釣りばっかりやってると、そのうち誰にも相手にされなくなるから気をつけてね w
>>557
そうか? やってみもしないで断定するのはよくないと思うぞ。
釣りとその関連の話はスレ違いだからよそへ行ってくれ
564デフォルトの名無しさん:02/12/06 19:16
く〜だらない質問なんだけど、
コードを書いているときに縦のスクロールバーが出て、
マウスの回るところをクルクル動かしてもスクロールしないんですよ。
スクロールできるようにならんかね?
>>564
環境は?
566564:02/12/06 19:20
>>565
NECのバリュースターで、WinMe。
VBはバージョン6.0。
ドライバの問題のような気がする。
他のアプリではホイールは利く?
568564:02/12/06 19:25
>>567
うん。VC++でも大丈夫。
なのにVBだけが・・・おまけに会社で使っている
パソでも動かない。会社のパソは日立のフローラで
Win2000。VBも6.0・・・。
なんでだろ〜なんでだろ〜
>>568
どっかのMLで見たような気がするけど、思い出せない・・・。
>>561
TEditor 程の機能のではないが、VB で実際にエディタっぽいのを作ろうとした事
があった。
描画は思った程遅くはないんだが、文字データの問題で使い物にならない。
全部を 1 つの String に詰め込めばサイズが膨れるほどに遅くなっていくし、
1 文字ずつ配列に格納すれば追加と削除で言わずもがな。
もっと高速にできる方法はあるか?
>>568
ウチもVCは動くけどVBは出来ないよ。
どこでもホイールで解決した。
>>564
>>569
どっかのMLで思い出した。
>>  プログラミングに付いてではないのですが、VB6.0のプログラム画面
>> (実際にコードを打ち込む画面)でマウスのホイール(スクロールボタン)を
>> 有効にすることはできないでしょうか?。
>
>FAQ だったりしますが、インテリポイントのドライバを最新版に
>してください。
>>568
VBがホイールに対応してないだけ。
>>570
一行ごと配列に入れるとか。一文字づつByte型に入れるとか。
Microsoft IntelliPoint入れろって。
VBはMicrosoft IntelliPointでホイール動くようになるもんだ。
ぬるぽって何ですか?
577W:02/12/06 23:23

http://www.akitsusoft.cjb.net

高度な計算を簡単に実行可能な【関数エディタ】を実装。
サインやコサイン、また平方根などをキーボードから入力するほか、関数エディタを使って入力できます。

また特殊な計算として旅人算と鶴亀算、フーリエ展開によるパイの算出機能をバンドルしました。

VB6で開発しますた。
>>577
スレ違い。
>>577
>鶴亀算、フーリエ展開

すごい差だな。
鶴亀算によるパイの算出機能か・・・すげーな
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>576
 (_フ彡        /
582564:02/12/07 11:28
>>575
マジでサンスコ!!!
つーか、マイクロソフト社はバッチを配布してホールに対応できるように
したほうがいいんじゃないか???
一々アプリケーションとして立ち上げないといけないのは弊害がある。
>>582
バッチ→パッチ
ホール→ホイール
>>582
マウスのドライバの問題ゆえ・・・。
585デフォルトの名無しさん:02/12/07 19:59
FARPOINT SPREADで、飛び飛びの列を印刷する方法ってありますか?
586デフォルトの名無しさん:02/12/08 08:54
ある計算をさせて、その所要時間を計測したいんですよ、1秒以下の単位で。
「Now」だと1秒単位なので使えません。
良い関数あります?
587586:02/12/08 09:03
スマソ。Timerがあった・・・。
>586
TimeGetTimeとかは?
589デフォルトの名無しさん:02/12/08 10:36
はじめまして。

テキスト>HTMLの変換ツールを作っているのですが、
処理に時間がかかるので変換の進行状況をテキストボックス
などに表示しようかと思っています。
が、プログラムの実行中は書き換えた内容が反映されない
ようで、処理終了後にまとめてメッセージが出てしまいます(^^;。

このような症状はどのように回避すればよろしいでしょうか。
ご指導のほどよろしくお願いいたしまするるる。
>>589
DoEvents
591589:02/12/08 10:53
>>590
 ありがとうございます。
 これで幸せになれそうです(^^)。
横レスで申し訳ありません。
以前からヘルプを見てもDoEventsが理解できなくて困っているのですが、
Windowsに処理を渡すというのは何の利点があるのですか?
というか、意味を理解していないので、どういう動作をしているのかも理解できません。
どなたか識者の方、わかりやすく教えていただけませんか?
>>592
ウインドウズがメッセージを処理できる。
594デフォルトの名無しさん:02/12/08 11:13
>>592
試しに、テキストボックスを使ってスロットマシンを
作ってみませう。
>>593
ウインドウズでなく自分自身がな
596592:02/12/08 12:37
ありがとう。
なるほど、処理を割り込ませることができるんすね。
使いようによっては恐いことになりそうな気もしないでもないですが。。。
勉強になりますた!サンクスです。
> 使いようによっては恐いことになりそうな気もしないでもないですが。。。
正解。そういうところに気づけるのは偉い。どうしても必要な場合を除いて使わないほうがいいよ。
得に「適当にDoEventsを入れてみたらバグら無くなった。ラッキー」なんてことは絶対止めるように。
>>592
前にもこの板で見たような気がするが、コピペ荒らしかな?
>>598
一応レス返してるから違うんじゃない。
ところかまわず「釣れた」をコピペする奴がでないといいんだがね。
600592:02/12/08 14:15
何か分からないけど違います。
過去ログ見なかったのは謝ります。すみませんでした。
601デフォルトの名無しさん:02/12/08 15:50
テキストボックスっていえば、テキストボックスの最終行に表示を強制的に移動するのってどうやるのん?

>>601
テキストボックスって言えばの意味がワカランが
Text1.SelLengthのことかい?
SelStartメソッドとか。EM_LINESCROLLメッセージを送るとか。
604601:02/12/08 16:17
>>602
わかりにくくてスマソ。

テキストエディタなんかでいう、「最終行に移動」ってやつっす。
調べたけどわからんかった。
SelStartとLenで出来る。
>604
ENDキーを押した状態にしてやれば?
ENDキーではカーソルは動かなく無い?
やりたいことが、その行の最後なのか、そのテキストの最後なのかしらんが、
>607
ENDキーは、どんな動作になるの?何のためにあるの?
>>608
Ctrl+Endなら分かるけどね。
>>609
エディタ依存だから滅多なこと言わん方が良い。
>610
601がテキストボックスって言ってるんだから、テキストボックスなんじゃない?
612601:02/12/08 16:48
お世話になってます。
>>611
 テキストボックスでつ。
 計算結果をリアルタイムで表示させたいんでキー操作をシミュレートすんだけだとダメかも(まだ試してないけど)。

 605さんの意見を参考にいじってるんだけど、中々うまくいかないねぇ(--;;。
613デフォルトの名無しさん:02/12/08 17:08
スプレットシートの作成コード教えてください
614603:02/12/08 17:44
>>612
おい。オレの意見は無視か?
615615:02/12/08 18:24
すみませんが、VB6.0の勉強を始めた初心者なのですが
いちいちフォームを自分で作るのが大変です。
ラベルやボックスの大きさや位置の調節も面倒で...
自動調節して配列できるような機能はないのでしょうか?また
よく使われるようなフォームはあらかじめ素材集のように
テンプレートが用意されていてもいいと思うのですが
そのようなものを配布しているサイトはないのでしょうか?
自分で作るしかないのかなぁ
>>615
初心者なのに、そんな大々的なもの作るのか?
というか、自分の意図するコントロールがテンプレに並んでいるとは限らないので
必要性が感じられない。
>>615
捜せばそういうコントロールがフリーであったとおもう。
でなければ自分で作るとか。初心者にはちょっときついとおもうが。
618デフォルトの名無しさん:02/12/08 19:53
学校のExcel VBAの課題をやってるんですが、
「新しいシートexam01を作成する。既にある場合は削除する処理を行う」
ってのがどうしてもわかりません。
ifのあとなんて書いたら良いんでしょう?
If exam01というシートがあるか Then
  シートexam01を削除する処理
Else
  シートenam01を作成
End If
620デフォルトの名無しさん:02/12/08 20:05
>619
ありがとうございます。「exam01というシートがあるか」ってのが
わからないんですよ。なんか関数使うんですかね?
>618
On Error Resume Next
exam01を削除する。
On Error GoTo 0
exam01を作成する。
>>621は糞コード
>>621
その方法が一番簡単で確実かな。

# コレクションを総なめする手もあるけど。
>>621
削除した後に作成しちゃう予感
>>622
荒いコードではあるが、開発コストを最小に抑えるという意味では
理に適っているかと。w
>>624
あ、題意に適ってない訳ね。>>622の意味がやっとワカタヨ w
Excel総合相談所 9
http://pc.2ch.net/test/read.cgi/bsoft/1038376475/
エクセルVBA質問&研究板
http://pc.2ch.net/test/read.cgi/bsoft/1008219498/
>>618の行間を補完すると、すでにある場合は削除後、再作成、と読める。
(というか、その方が常識的には無難な仕様と思える)
であれば、題意に合うのは>>621の方で、>>619の方が不正解か?

発問が言葉足らずだと、解答を導くのに想像力が要求されるね w
ったく>>621が確実とおもう奴の気がしれん。
題意に適ってないのは別として、
削除するときに発生するエラーをすべて無視すんな。
存在しないものを削除するときのエラー以外のエラーがでたらどうすんだ。
>>629
まーまー、この時間のヤシらはアフォばっかなんでごめん。
>>629
当然、他のエラーはデバッグ段階ですべて潰しとく前提でしょ。
If Err.Number = なんちゃら Then
で分岐すれば、エラーごとに区別できるし。

それ以前に、ガッコの宿題なんだから、この程度でじゅうぶんかと w
>>631
実行時エラーがデバッグ段階ですべて潰せるわけないだろ。
すべて潰れるならOn Error Resume Nextも必要ない。
>>631
( ´,_ゝ`)プ。必死やな
634621:02/12/08 22:16
すまん。学校のセンセがどんな顔するのかというのを想像して投げてみました。

発想的に美しくない。宿題レベル想定したら619+623が正解ね。
ここでつるつもりじゃなかったんだけど、結構反応がでかくなってしまったので少し慌ててしまった。
>>634
冗談でやっているならいいんだけど、本気であんなコード書く奴がいるのが問題なんだよな。
636 ◆eXfHVE5ZhU :02/12/09 00:19
質問です。
外部のListViewに対して、
その何項目の3カラム目は何かを取得したいんです。
自アプリ内でならそりゃ簡単ですけど
外部アプリに対してはどうやればいいんでしょうか?
637デフォルトの名無しさん:02/12/09 00:55
Yahoo等で検索したオートコンプリートはどこに格納されているのでしょうか?
アドレスはレジストリにありましたが・・・
その辺を削除して証拠隠滅するソフトが作りたいのです
>>635
まあコレクション総なめ判定よりはずっとマシだがな
>>638
( ´,_ゝ`)プ。必死やな
640デフォルトの名無しさん:02/12/09 09:02
>>636
見ず知らずの外部アプリとなればSDKレベルしか思い付かない。
LVM_GETITEM 辺りを送れば何とかなるんじゃないかな?
それよりHWNDを捕まにゃ話しにならぬが...
>>633 >>639
ワンパターンの煽りか。
脳細胞が足らないんだね w
>>639
( ´,_ゝ`)プ。煽り必死やな
>>637
IEなら
\HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs
の中にあるURLを削除。
645デフォルトの名無しさん:02/12/09 12:30
プログラムの中の時計と、パソコンの時計を分けたいのですが
どうすればいいでしょう? 繰り上がり計算とかあって、頭の中が
混乱してしまいまして・・・(;´Д`)オレッテホントニバカ

 パソコンの現在時刻:”23:59:59”
プログラムの現在時刻:”12:23:40”

とかです。パソコンの現在時刻とプログラムで最初に設定する
時間の差を保存記録しておいて、その差とパソコンの現在時刻
でプログラムの現在時刻を出そうとしたのですが、パソコンの現
在時刻が”00:00:00”になった瞬間、狂ってしまうのです(当たり前)

この辺から頭が着いていかない・・(;´Д`)オレッテホントニホントニバカ
日付/時刻型ってのがあるんだから・・・
プログラムの最初で、システム日付との差を取得。
それ以降は、システム日付から差を足し引きするだけでいいだろ・・・
>>646
自分でバカと書いてるんだから、叩いてやるのが礼儀かと。w
648cyou:02/12/09 13:02
初歩的な質問ですみませんが、
分かる方いらしたらご回答よろしくおねがいします。

コンボボックスがありまして、中身は以下の感じになっています

[ListIndex] [値]
1 "A"
2 "B"
: :
: :
8 "G"

これで、2003/4月以前はリストインデックスの1,2,3,4,5の値を
2003/4月以降はリストインデックスの1,6,7,8の値を
表示させるようにしたいです。
リストインデックスはそのまま保ちたいです。

へたくそな質問ですみません。
>>648
メアド欄に fusianasan と記入して、再質問してください。
650cyou:02/12/09 13:09
了解しました。

初歩的な質問ですみませんが、
分かる方いらしたらご回答よろしくおねがいします。

コンボボックスがありまして、中身は以下の感じになっています

[ListIndex] [値]
1 "A"
2 "B"
: :
: :
8 "G"

これで、2003/4月以前はリストインデックスの1,2,3,4,5の値を
2003/4月以降はリストインデックスの1,6,7,8の値を
表示させるようにしたいです。
リストインデックスはそのまま保ちたいです。

へたくそな質問ですみません。
>>648
> へたくそな質問ですみません。
そう思うなら上手く書き直せよ。
>>649
なんでIP知りたいんですか? IP教えても答えないくせに。
>>650
>初歩的な質問ですみませんが、
こういう余計な一言は反感買うもと。

要するにリストボックスの内容の一部を
一時的に非表示にしたいわけだろ?
残念ながら、多分できないと思われ。
>>650
名前欄に fusianasan と記入して、再質問してください。
655cyou:02/12/09 13:16
>>650
そうですか、どうもありがとうございました。
656640:02/12/09 13:18
>>636
スマンが >>640 の考えはダメだ。撤回する。
>>654
煽りもむなしく解決しちゃったね(ワラ
>>654
2度も引っ掛かるわけねえじゃん!w
一発で仕留めろよ w
659404,518:02/12/09 15:07
いろいろとありがとうございましたm(__)m

質問変えます
Controls.Add()を使って(動的に)
Formに文字を複数行(TextBoxのMultiLineみたいなの)を
作りたいのですが無理ですか?(^^;)

Controls.Add()でなくてもいいですが・・・多分これが必要ですよね?
>>659
そういうコンストラクタないわけ?
>>656
>>640の考えで間違ってないぞ。
662名無しさん:02/12/09 15:29
VB5.0でソフトを作成しています。
そこで、今回VBを使用して、excelにBOOKを作成してそこに値を投入
しようとしています。
 しかし、OSとexcelの組合せで動くときと動かないときがあります。
Win2k・xpでは正常に動作するのですが、
win98系だと、ループ処理中に
”他のアプリケーションがサーバを使用しているため、この操作を完了
できません”
というエラーポップアップが出て処理することが出来ません。
やはりOSによって、外部アプリへの値の受渡は変わることはあるのでしょうか?
また、そのような場合は何か修正を行うことで回避することは出来るのでしょうか?

よろしくお願いします。
>>659
コントロール配列にしてLoadで数を増やすとか
TextBoxをMultiLineにしたコントロールを作ってそれを使うとか。
>>662
Excelを非表示にしてもそのメッセージ出る?
665662:02/12/09 15:37
>>664さん

お返事ありがとうございます。そうですね。非表示にして行っているのですが、
それでも途中で処理が固まったような状態になって、VBのフォームの何処を
クリックしても同じポップアップが出てきます。
>>662
ソースをうpしる
667662:02/12/09 16:00
>>666
企業秘密だ。
お前なんかに見せてたまるか!
>>665
おかしいな。こっちでも実際に試してみたけど、
Excelを非表示にするとそのメッセージは出なかったよ。
669662:02/12/09 16:50
> 668さん
そうなのですか。ありがとうございます。
私の場合、結構シート数とセル数を使っているのが原因なのかも知れないです。
10シートで1シート辺り200X10セル位使用しています。
670デフォルトの名無しさん:02/12/09 17:08
VBで新しいコントロールを作ったとき、オブジェクト名にlbl tmr
というような接頭辞をつけるというのが慣用だと聞いたのですが
デフォルトではLabel1やcheck2のような命名がされてしまい、
いちいちリネームするのが面倒です。設定でlbl1やchk2のように
命名をカスタマイズする方法ってないものでしょうか?
やっぱりそんなことで悩まないくらいタイピング早くした方がいいのだろうか...
>>670

> やっぱりそんなことで悩まないくらいタイピング早くした方がいいのだろうか

正解!

後からまとめて直す(お奨めしないが)必要がある場合は、スクリプトで
書き換えるのが吉
672404,518:02/12/09 17:36
>>663
お返事ありがとうございます

>TextBoxをMultiLineにしたコントロールを作ってそれを使うとか。
読取専用プロパティを設定した状態でコードでコントロールを
作れないので敗れました 参照>>518 >>529-539

文字列をぶった切ってTextBoxをならべるってのなんですが
文字列をどこで切ればいいのか分からないという問題もあります

よろしくお願いします

>>672
>>663の一行目はどうなんだ?それと二行目は読取専用プロパティを設定した状態の
ユーザーコントロールを作れという意味だ。

> 文字列をぶった切ってTextBoxをならべるってのなんですが
答えてほしいならもっと分かりやすく書け。
>>672
>>663の一行目はどうなんだ?それと二行目は読取専用プロパティを設定した状態の
ユーザーコントロールを作れという意味だ。

> 文字列をぶった切ってTextBoxをならべるってのなんですが
答えてほしいならもっと分かりやすく書け。
>文字列をぶった切ってTextBoxをならべるってのなんですが
>文字列をどこで切ればいいのか分からないという問題もあります

うむ。勝手に解決してくれ。
ActiveReportで、メインレポートのDetailに表示するレコードと同じものを、
PageFooterのサブレポートに表示したいのですが、
同じコードをメインレポート、サブレポート両方に書くと、
メインの方は
1ページ目  1,2,3,4,5
2ページ目  6,7,8,9,10
と表示されますが、サブレポートは欠番が出てしまい、
1ページ目  1,2,3,4,5
2ページ目  7,8,9,10
となります。イベントの発生順序が原因のようなのですが、
無理やり的な回避方法しかわかりません。
どなたか解決方法をご存知でしょうか?
以下にコードを示します。
677676:02/12/09 18:38
Private Sub ActiveReport_DataInitialize()

Fields.RemoveAll

Fields.Add "test"
Field1.DataField = "test"

End Sub

Private Sub ActiveReport_FetchData(EOF As Boolean)

If mintRow > UBound(gstrTest) Then
EOF = True
Exit Sub
End If
Fields("test").Value = gstrTest(mintRow)
EOF = False
mintRow = mintRow + 1

End Sub
678676:02/12/09 18:38
Private Sub Detail_Format()

Static intLine As Integer

intLine = intLine + 1

If intLine < 6 Then
' 新規ページの追加を無効にする
Detail.NewPage = ddNPNone
Else
' 新規ページを追加し、カウンタをリセットする
Detail.NewPage = ddNPAfter
intLine = 0
End If

End Sub
679デフォルトの名無しさん:02/12/09 21:50
VB6で質問です。

しょーもない質問かもしれませんが、WindowsもしくはVBのバージョン違いで
例えばDate関数などで返ってくる文字列の形式が違う、なんてことありましたっけ?
前に例えば”2002/12/09”ってのが”02/12/09”とか、があったのを覚えている
のですが、どれがどれだったかよく分からなくて。

DOSなんかだとセパレータが"/"じゃなくて"-"でしたよね?
>>679
マシンの地域の設定で変わる場合があります
>>679
Date関数で返ってくるのは文字列じゃなくて日付型だ。
デフォルト変換に頼るからだな。
Format 使えば。
前スレで誰かが、VB6でVBSを書く時に入れる参照設定の質問&回答を
してた気がするけど、前スレdat落ちしっぱなしなので、
誰かそのときのやりとりウPしてくれんかい?
>>683
ぐーぐるキャッシュに無いのかな?
とりあえず

774 名前:デフォルトの名無しさん[sage] 投稿日:02/11/21 07:49
VBSって、VB6みたいにプロパティなどのヒントが出る、プログラミング環境っつうか、
そういうエディタとか無いでしょうか。
ヘルプも欲しいな。。。素人が始めるにはキツいっす。。。

775 名前:デフォルトの名無しさん[sage] 投稿日:02/11/21 08:40
>>774
VBでプロトタイピングしてから、VBSに書き換える。
(なんか違うような予感・・・)

805 名前:771[] 投稿日:02/11/21 15:02
>>774
Visual InterDev使うとそこそこ入力支援してくれます。
VB6を使うなら 参照設定で「Microsoft Html Object Library」をチェックすると
入力支援やらオブジェクトブラウザやら使えて便利になるんだけど
移植しないといけないです。
685超初心者:02/12/09 23:02
>>680
ウィンドウズじゃなくて、ハード?

>>681
確かにそうだが、682さんの言うように自動変換後の文字列なのです。
いちいちいわんとわからんか?はげ

>>682
ま、確かにFormatで吸収できそうなんですが・・・それが無難かな。サンクス。
>>684
サンクス!
ログは消すもんじゃないな。ほんとに。
>>685
681ではないが…
回答者を煽った時点で答えをもらう権利は剥奪されます。(・∀・)カエレ!!
Date$ というのもあったよな。確か。
うにゃ?
>>685
お前のような欠陥品を出荷するとは、お前の両親も相当のクズだな?

どうせ、ゴム漏れ(w)の「できちゃった」ちゃんなんだろ
(それとも橋の下の・・・)

はよ首吊って氏ねや

サック漏れ(W)の予定外出生だか、橋の下だか知らんが、>>501に対する>>504とか、
>>681に対する>>685とか、根本的にお前ら人間的にどうよ?と首をかしげる香具師が
多いな。
こいつら、一体どんな教育を受けて来たんだ?
   みんなおちつけ!

    /\⌒ヽペタン
   /  /⌒)ノ ペタン
  ∧_∧ \ (( ∧_∧  おい、おまいもちつけ!
 (; ´Д`))' ))(・∀・ ;)
 /  ⌒ノ ( ⌒ヽ⊂⌒ヽ
.(O   ノ ) ̄ ̄ ̄()__   )
 )_)_) (;;;;;;;;;;;;;;;;;;;)(_(
>>691
電車の中で>>504>>685のマナーの悪さを注意すると、逆ギレして刺される罠・・・。

まぁ、基地外には近づかないことだ w
>>691
指摘や揶揄には逆ギレして噛み付くのが2ちゃんねるのマナーなのれす
業に入っては業に従いましょう(w
695676:02/12/10 12:06
要はサブレポートの改ページ方法をご存知の方、
アドバイスお願いします…。・゚・(ノД`)・゚・できないよ〜
TextBoxのすくローリバーをプログラムで移動せる方法知ってますか?

SetスクロールPos 使っても移動させらるのですが
TextBoxの中身まで移動してくれません

スクロールバーと中身を同時に動かしたいなぁぁぁぁぁ亜ア
>>696
SetScrollPosのあと、TextBoxをRefreshしても駄目?
>>697
おまい・・・・ よくこんなのをまともに相手する気になるなあ
もしかして福祉関係の仕事とかしてる?w
699696:02/12/10 13:57
>>697

そうか! 思いつかなかった

試してみます
700デフォルトの名無しさん:02/12/10 14:13
VB6で、Ctrl + Yで「進む」じゃないんですか?
たとえば、Ctrl+Zで「戻す」をした後、Ctrl+Yで「戻した物を戻す」(ようは進む)ときに
カーソルの当たっている行から、行毎に削除されていっちゃうんですが...
それで慌ててCtrl+Zで戻しても戻るのは10行ちょっと...
ああ書いたコードがきえちゃった...。・゜・(ノД`)・゜・。

Windows2000
IE6.0sp1
ATOK15
Office2000
>>700
メニュー見ての通り、やり直しに CTRL + Y は割り当てられていないね。
メニューのコマンドを直接実行してやり直すことはできないの?
>701
それだと無問題です。
ただ、多分なんですが、1年前に触っていたVB5では普通に使っていたような...
>701さんはこの現象でないですか?というかCtrl+Yなんて押しても何ともならないですか?
>>702
いや、たしかに CTRL + Y で該当行がクリアされるね。
VB5での挙動は、すまん、分からん。
VB6での『やり直し』メニューのショートカットキーはありません
ツールバー上にはあります

VB6で『Ctrl+Y ショートカットキー』が押されたことをフックし
かわりに『やり直し』メニューを送るプログラムをVB6で作成
してください
>703
ありがとう、他でもなるならこっちが壊れてるんじゃないのが確認出来ました。
>704
( ´Д`;)ゝウゥ...
教えて下さい。
サウンドカードの付いていないWindows98のマシンで、BEEP音がなりません。
APIのBEEPやMessageBeepもなりませんでした。
検索した結果、
Shell Environ("ComSpec") & " /c echo " & Chr(7), vbHide
では、なることはなったんですが、BEEP音ぽくない音で。
MB側からShell〜はなるので、どうにか鳴るような気がするんですが。
よろしく〜
>>706
パソコンの BEEP は基本的に鳴らせませんよ。
でも世の中には BEEP スピーカを使って wave ファイルを鳴らすソフトウェアがあるとか。
708706じゃねーんだが:02/12/10 15:58
>>707
ボリュームコントロールの音量を変えたときだけBEEPでなります。
その他のところでBEEPが鳴ったことはありません。
ボリュームコントロールの音量を変えたときもWAVで鳴らしたいんですが
どうすればいいんでしょーか。ってスレ違いよん。でも知ってたら・・・。
709デフォルトの名無しさん:02/12/10 16:39
コンボボックスで「表示してるけど選択できない」ってできますか?
listindex = -1 へ入れられたら理想なんだけど。。。
>>709
? 言ってる意味がよく分からんのだが
Enabled = False じゃなくて?
ListIndex = -1 って普通に実行できるし・・・
711709:02/12/10 16:53
たとえば

ねずみ
うし
とら
うさぎ
かえる

というコンボボックスがあって、
ねずみ〜うさぎは選択できるけど、かえるを選択しようとしたらスペースになるか無反応、
って動作を期待してます。

無理すか?
もしかえるが選択されたら条件分岐していろいろする
713706:02/12/10 17:31
どうもご回答ありがとうございます。
いろいろ調べて見ましたが、どうもダメですね。
Windows2000では当然のように鳴るので、なにか設定うんぬんかと思ってました。
Windows2000の場合はBeepデバイスが、そのソフトの役目をしているって事でしょうか?
そうゆうソフトがフリーとかでないですよね?
今日はもう疲れますた!
>>713
BEEPのプラットフォームSDKのほうのMSDNをみると、95系とNT系は
別なように見えます。
鳴らしたかったりするだけなら
http://www.ikko.k.hosei.ac.jp/~matlab/mbbok2/inpoutp2.htm
を見てOUTPしたり(半分JOKEです)
素朴な疑問なんですが、msgboxで表示させる文字を大きくすることはできますか?
指定した ウィンドウハンドル がパソコン上に存在するか否かを
調べるよい方法はありますか

>>715
MessageBox()APIのDraw(描画処理)を捕まえて
何かするとできます
この方法だと左に表示されるアイコンも自己描画できます
>>715-716
工数を考えるとお奨めできない。(趣味なら話は別)
レジストリ弄って画面のプロパティのフォントサイズ変えるべし。
>MessageBox()APIのDraw(描画処理)を捕まえて
>何かするとできます
>この方法だと左に表示されるアイコンも自己描画できます

ここまでやったら、それことFormで自作した方がってやつだなぁ。
>>718
こら
 そ れ こ と
>>721
いけずなあんちゃんやなぁ。
関係ないけど、プロジェクトXとガチンコの
ナレータを入れ替えたらおもろいだろうなぁ。
>>711
コンボボックス語るにはText部をどうするか決めないと...
後は妥協次第。
> MessageBox()APIのDraw(描画処理)を捕まえて
> 何かするとできます
> この方法だと左に表示されるアイコンも自己描画できます

そんなことしないでもWM_SETFONTやSTM_SETICONを
一度送っておけばよいのだが。
ちなみにアイコンはMessageBoxIndirectでも指定できる。
725デフォルトの名無しさん:02/12/11 12:31
CSVファイルを扱う標準関数ってありますか?
726デフォルトの名無しさん:02/12/11 12:33
>>725
Open, Pint, Close
727706:02/12/11 12:46
BEEP音に関してこんなもの見つけました。
試しましたが、ダサいです。
http://support.microsoft.com/default.aspx?scid=KB;en-us;q138857
728デフォルトの名無しさん:02/12/11 13:59
ウェブブラウザ上でマウスイベントをさせたいのですが、
MSHTML.TLBファイルを参照設定して、
Private WithEvents Doc As MSHTML.HTMLDocument
と宣言して、ページの読込が完了した後で、
Set Doc = WebBrowser1.Document
として、doc_onmousemoveのイベントが使えたのですが、複数フレームがあるときにはエラーが出てしまいます。
複数フレームがあってもマウスイベントが使える方法を教えてもらえませんでしょうか?
配列
730デフォルトの名無しさん:02/12/11 14:24
>729
docを配列にするのでしょうか?
(´-`).。oO(とりあえずやってみてから質問しろよ
732デフォルトの名無しさん:02/12/11 14:26
VBでエクセルを操作してCSVを開いてるんですが、2万行のCSVを開くだけで
3分ほどかかってしまいます。
ちなみにソースはこんな感じです。

CommonDialog1.Filter = "CSVファイル(.csv)|*.csv"
CommonDialog1.DialogTitle = "前日のファイルを指定してください"
CommonDialog1.ShowOpen
fnm1 = CommonDialog1.FileName

'エクセル読み込み1=================================
Set exl1 = CreateObject("Excel.Application")
exl1.Application.Visible = True
exl1.Application.Workbooks.Open FileName:=fnm1

なんとか高速化する方法はないのでしょうか?
エクセル使わなきゃいいじゃん
734デフォルトの名無しさん:02/12/11 14:29
>731
Private WithEvents Doc(10) As MSHTML.HTMLDocument
とやってみましたが、エラーが出ました。配列は使えないのでしょうか?
(´-`).。oO(エラーメッセージ見ろよ
736デフォルトの名無しさん:02/12/11 14:32
>735
(; ´Д`)コンパイルエラー 修正候補:As
ですた
>>735

「エラーメッセージ」ってなんですか?
>>737
( ´,_ゝ`)プ
おい、ネタか?
Witheventsは配列にできんや炉
740デフォルトの名無しさん:02/12/11 14:46
>739
(; ´Д`)やっぱり・・・なにか方法ありませんか?複数フレームがあっても
webbrowser上でマウスイベントを認識してくれる方法はありませんか?
741デフォルトの名無しさん:02/12/11 14:50
>>733
たとえば
一つ目のCSVに A-1(商品番号),商品名1,100個,1000円 って行があるとして
二つ目のCSVからA-1って商品番号を検索したいんですよ。
それならエクセルに読み込ませて、find使った方が早いのかな?って
思ったんですけど。
エクセルのほうが速いという根拠が知りたい・・・
エクセルは驚速
744デフォルトの名無しさん:02/12/11 15:13
>>742
CSVを直接検索って出来ましたっけ?
CSVを1行ずつ見つかるまでループさせて探すよりは、find使った方が
早いと思ったんですが・・・。
VBでそれなりのプログラム組めばできますよ。
>>740
MSHTML.HTMLDocument をラップするクラスモジュールを作って
それを配列にするとか
747U ◆CZtFsGiu0c :02/12/11 15:19
>>740
HTMLDocumentをラップするクラスを作り、そのクラスのイベントプロシージャで
必要な処理をさせる。後はラップクラスを必要な数だけ生成すればよい。
新婚旅行はどこに行かれるんですか?
>>732

> exl1.Application.Visible = True

これはアカンやろ。
最初は Visible = False にしておいて、Openしてから Visible = True にすれ。
>732
ADOじゃ駄目?
>>741
ADOとかで接続した方が速いと思うよ。
>>750
ケコーンしよ
753750:02/12/11 15:25
よろしゅうお願いします(w
>>744
サーチとかソートとかのアルゴリズムで作るのがイヤな場合は
エクセルで作ったほうが(プログラム作成の時間は)速いでしょうね。
755デフォルトの名無しさん:02/12/11 15:47
>>749
あぁ、すいません。
その後の処理を見たかったんで一時的にtrueにしてるだけです。

>>750,751
データベースってほとんど使ったこと無いんですよね・・・。
やっぱそっちが早いですよねぇ・・・。
>>755
754の逆を言えば、サーチなどのアルゴリズムを使用すれば満足の行く
レスポンスで作ることが可能かと。
プログラマさんであれば、アルゴリズムくらいは理解してますよね?
757デフォルトの名無しさん:02/12/11 16:00
>>756
残念ながらプログラマですらないのです。
日常のエクセル処理をちょこまかとVBでこなしてるだけど
なんちゃってプログラマです。(^^;
758デフォルトの名無しさん:02/12/11 16:04
間違い
 だけど → だけの
>757
Excelオブジェクトいじくり回すのは結構な高等技術だと思うYO。
2万行程度なら、頭から読んでいくバカサーチでも十分とちがう?
>>759
データが5000くらいあった場合、検索する数は (20000*5000)/2 くらいか?(笑)
> Excelオブジェクトいじくり回すのは結構な高等技術だと思うYO。

どのあたりが?
762デフォルトの名無しさん:02/12/11 17:18
メニューバーなんかがいじくれれば、十分じゃない?
最短距離で最適な解答に辿り着けない低劣IQ持ちなPGが蠢いてるスレはここですか?
楽をするためにはどんな困難も平気ですが、何か?
765759:02/12/11 17:42
>760
うん。別にいいんじゃない?
当然効率は悪いけど、>732の3分よりは早いんじゃないかなぁと予想してるんだけど。

>761
Excelオブジェクトの動きを理解する必要があるあたりが。
テキストファイル開いて頭から舐めていくだけのプログラム作るよりは時間かかると思う。
> テキストファイル開いて頭から舐めていくだけのプログラム作るよりは時間かかると思う。

何で?
マクロで操作を記録して、あとはちょこっと修正するだけでしょ?
csvファイルが二本あるわけでしょ?
DBにとりこんでSQLの方がいいんじゃない?

Excelでファイル開くのに時間がかかるってのが本題じゃなかったっけ?
なんだと、コラ!
770デフォルトの名無しさん:02/12/11 18:02
ねぇねぇ、一度、Accessとかに取り込んでからSQLで操作しようよ〜
まず、何で CSV なのか疑問だな。
772D:02/12/11 18:11
>>732
ODBC Text Driverを使う。
20000件なら数秒で検索できる。
>>772
コネクション文字列の書き方キボンヌ。
ウィザードで作れば出てくるよ
>>774
Accessでつか?
776デフォルトの名無しさん:02/12/11 18:30
>>771
ウチで使ってるPOSレジからではCSV出力しか出来ないからです。
>774
VB
質問者は名前欄に初出のレス番入れろ
779仮 ◆ItjZTEC2dg :02/12/11 18:38
えと、質問

VB6にて、テキスト形式のファイルを指定してやれば
そのファイルの漢字コードの形式(JISとかEUCとかShift_JISとか)
を返すような関数を作りたいです。
漢字コードなんて、どうやって判別すればいいんでしょうか。
いろいろと要りようなので頑張っているのですが・・・ぜんぜんです。
>>744
古典的な方法で読むのが一番早いんじゃないかなぁ。
LineInputなんかで。
>>780
いやいやそうやって読むならバイナリアクセスの方が断然速いだろ(w
>>779
NKF やら Jcpde.pl が参考になりませんか?
>744

c:\test.csvを開く例

ADO参照して

Dim conn As New ADODB.Connection
Dim rec As New ADODB.Recordset

conn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=c:\"
rec.Open "select * from test.csv", conn

で、どう?
>>782
スペル違うな
nkf と jcode.pl だ
どちみち、完全完璧に判別は難しいだろうけれど。
単に速さを求めるなら何故 C++ を使わない。
>785
>757-758 にその答えがある
単に速さを求めるだけじゃないからだろ。その他の部分がVBとか。
788釧路:02/12/11 19:05
wavファイルを切ったりつなげたりするようなものをVBで作りたいです。
丁度Windowsについてる、「サウンド レコーダー」みたいなのを。
何かいい方法、参考文献でもありませんでしょうか。
wavファイルの形式さえも知らないもので、どこから手をつければいいやらです。
よろしくおねがいします。
789780:02/12/11 19:06
>>781
あぁ、一番じゃないね。
お手軽で、Excelよりは早いんじゃない、位か。
>>788
データの切り張り自体は簡単っぽいけど再生が地獄っぽいらしい。
MCIとかMMSystem.h関係のお話。
ファイルのコピーの方法は分かったのですが、
フォルダのコピーの方法が分かりません。
スクリプト使うかAPI使う以外無いのでしょうか。
>>791
フォルダ内のファイルと列挙してコピー。
場合によっては再帰を使ってコピー。
スクリプト使うってナンですか?scripting runtimeを参照するという意味なら一理ある
>>792
やっぱそれ用のメソッドは無いですか。
ディレクトリを作成→コピーですか。再起処理面倒ですね。。。

>>793
それです。
CreateObjectして使う方法ですが、これしか無いのならこれで逝くことにします。

ありがとうございました。
>再起処理面倒ですね。。。

関数 ファイルのコピー(引数:送りもとフォルダ 送り先フォルダ)

while 参照すべきファイル/フォルダがある

if フォルダ名/ファイル名 = フォルダ名
フォルダ作成(送り先フォルダ+フォルダ名)
ファイルのコピー(送りもとフォルダ+フォルダ名 送り先フォルダ+フォルダ名)
else
コピー(送りもとフォルダ+ファイル名 送り先フォルダ)

end while

end 関数


VBわからんから仮想言語な。で、面倒か?
796D:02/12/11 20:10
>>771
ちょっと長文でごめん。
まず参照設定でADOを参照します。次にSchema.ini(定義ファイル)をテキストファイルと同じフォルダに作成します。
Schema.iniの作り方は。
コントロールパネルの管理ツールの中のODBCを開きます。
システムDSNを開き、追加をクリックします。
"Microsoft Text Driver "を選択して"完了"。データソース名を適当に入れ(今回はTestcsv)現在の"フォルダを使用する"のチェックをはずします。
フォルダの選択でテキストのあるフォルダを指定します。
書式の定義で対象のテキストファイルを選択して"推量"をクリックします。
もしフィールド名を指定するならここで指定します。
あとはOKを2回選択すれば(エラーになりますが)指定したフォルダにSchema.iniだ出来ています。

次にコード!このコードを実行すればRCにテキストデータが入っています。
Filterを実行すれば検索できます。
10万件のデータの最後を探すのに6秒ほどかかります。
ちなみにもしかしてTで始まるメーカ?もしそうならめっちゃ詳しいで
Dim cnn As New ADODB.Connection
Dim RC As New ADODB.Recordset
Dim Fn As String
Fn = "Test.txt" '<ファイル名
cnn.ConnectionString = "PROVIDER=MSDASQL;dsn=testcsv;uid=;pwd=;
cnn.Open
RC.ActiveConnection = cnn
RC.Open "select * from " & Fn

797D:02/12/11 20:16
あ、>>783の方がいいや。
schima.iniはいるけどね。
>>797
schema?
>>797
schema?
800D:02/12/11 20:23
Schema!
sumaso
801デフォルトの名無しさん:02/12/11 21:55
ExcelでCSVを読み込む場合、
いったん拡張子を.Txtにして読み込んだほうが速いよ。
Excel用汎用CSV読み込み関数作ったけど、いらんか。
>801
щ(゚д゚щ) カモーン
GOSUBといったメソッドがあるらしいのですが、VB入門の本に載ってませんでした。
使い方の例などを教えていただけないでしょうか。
10 GOSUB 20
20 RETURN 10
>>805
すごい!While trueと同じことができるんですね!!!!!!!
>>804
古いもんだから使うな。腐れてるぞ。
Subプロシージャにするまでもないプロシージャ内の共通処理に
使ったりするよ。まぁ俺の設計が悪いからだが。
関数の数を無闇に増やしたくないとか、ローカル変数を渡すのが面倒とかいう場合は
GoSub よく使うけど。
GoTo と一緒で、使い様って事でしょ。
810804:02/12/11 22:31
>>805-809
みなさまありがとうございます。
RETURNも初めて聞いたけど、結局
GOTO
GOSUB
RETURN
の3つは同じということですね。
811デフォルトの名無しさん:02/12/11 22:34
おせぇ〜て!!
リストボックスの中にエクセルのデータを読み込みたい!
例えば、1列目の10行目まで読みたい時は・・・
Dim kname(100) As Integer
Dim Cells(100, 50) As Integer

f$ = "Kihon.xls"
Set LINK = GetObject(f$)
For i = 1 To 10
kname(i) = LINK.Worksheets.Application.Cells(i, 1)
List1.AddItem kname(i)
Next i
これだと駄目なんだよね〜
ちなみにxlsをtxtにしたほうがいいっていうんだけど?!?
> GOTO
> GOSUB
> RETURN
> の3つは同じということですね。

( ゚д゚) ポカーン
そうか。まぁがんばれ
814ビギナー:02/12/11 22:38
超タコな質問かもしれませんが

Print #1 "ABC", "DEF"

でABCとDEFの間にスペースではなく、タブを入れる
方法をご存知な方はいらっしゃいますか

VBでは不可能なのでしょうか?
宜しくお願いします。助けてください
815ビギナー:02/12/11 22:38
超タコな質問かもしれませんが

Print #1 "ABC", "DEF"

でABCとDEFの間にスペースではなく、タブを入れる
方法をご存知な方はいらっしゃいますか

VBでは不可能なのでしょうか?
宜しくお願いします。助けてください
816ビギナー:02/12/11 22:39
超タコな質問かもしれませんが

Print #1 "ABC", "DEF"

でABCとDEFの間にスペースではなく、タブを入れる
方法をご存知な方はいらっしゃいますか

VBでは不可能なのでしょうか?
宜しくお願いします。助けてください
ん、まああれだ、がんばれ
ワラタ
Print #1 "ABC" & vbTab & "DEF"
GOTO
指定した行番号へ無条件にGO
GOSUB
指定した行番号へサブルーチンとしてGO
RETURN
サブルーチンとして飛んできたので、呼ばれたGOSUBの次の行へカエル
821ビギナー:02/12/11 22:57
>>819
ありがとうございました
助かりました
822804:02/12/11 23:14
>>812-820
なんとか理解してみました。
RETURNがなかったらGOSUBは立場なしというかんじですね。
>>779
漢字コード、この辺が参考にならんか?
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/kanjicod.html
webbrowser1でスクリプトで書かれたページで新しくページを作るときに、
新しいwebbrowser2に新しいページのURLがNavigateされません。
今は
Private Sub webbrowser1_StatusTextChange(Index As Integer, ByVal Text As String)
Text1.Text = Text
End Sub
Private Sub webbrowser1_NewWindow2(Index As Integer, ppDisp As Object, Cancel As Boolean)
If Text1.Text <> "" Then
Cancel = True
Webbrowser2.Navigate Text1.Text
End If
End Sub
としてます。
>>824
あ、そう。
フーン
>823
サンクスコ >>779じゃないけど、参考になるわ
827デフォルトの名無しさん:02/12/12 10:42
>>783,796
ありがとうございました。
とりあえず、CSVを開くことは出来たようです。
まぁ、今度はそれからのデータの抽出に四苦八苦してるのですが。(^^;

ちょっといろいろいじってみようと思います。
formの右上の【×】を使用不可能にする方法は無いでしょうか。
最小化は使いたいのですが、最大化と×は使わせたくないのです。
>>828
form_unload時にcancel=trueで。
830デフォルトの名無しさん:02/12/12 13:54
>>828
formの右上の【×】を使用不可能は
・フォームのUnloadイベントの引数cancelをTrueにするとフォームが閉じなくなります
・完全に無効にしたいときにはフォームのシステムメニュー自体を無効にします(API)
・最大化ボタンを有効.無効にするプロパティがフォームにあります(知ってたかな...)
>>828
みなさんの補足みたくなるけど、Unloadイベントのヘルプ見れ。
で、unloadmodeをチェックすることで、×ボタンで閉じられた時だけ
Cancel=True、みたいなことが出来るようになるよ。
832828:02/12/12 14:23
どもです。今試して動きました。
ありがとうございました。
833デフォルトの名無しさん:02/12/12 14:45
828関連かもしれない(違うかなぁ)質問です。

フォームを最大化表示する(WindowStateで)と、タスクバーを
無視して最大化してしまうことがあります。タスクバーの陰に隠
れたコントロールは見えなくなり、操作できなくなってしまいます。
どうすればタスクバーをちゃんと考慮して最大化させることが
出来るのでしょうか?

どうも、MaxButtonプロパティをFalseにすると無視して最大化され
るようなのですが・・・MaxButtonは828さん同様Falseにしておきたい
のですが、最小化はさせたいので、コントロールボックスはおいてお
きたいわけです。
834デフォルトの名無しさん:02/12/12 16:26
二重起動を禁止して、もし二重起動した場合は、
元から起動していたフォームを前面に表示したいのですが、
何か定石があるのでしょうか?

FindWindowAでForm.Captionを検索すると
新しく起動した方(自分自身)のhwndを取得してしまって、
SetForegroundWindowできないのです。
>>834
Sub Main 内でフォームがロードされる前に FindWindow すれば?
>>834
バージョン書いてないけど、VB.NETなら、

If UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0 Then

で、OK♪ (・∀・)

http://pc3.2ch.net/test/read.cgi/tech/1025848458/633
>>834

教えてやるから、俺の口座に100億モナー振り込め。

If App.PrevInstance Then
' 多重起動を許さない。
' アプリケーションのキャプションを得る。
strAppCaption = App.Title
' 自アプリのキャプションを変更しておく。
App.Title = strAppCaption & "VB厨ハ逝ッテヨシ(・∀・)"
' トップレベルのウィンドウハンドルを得る。
lngFirstTophWnd = FindWindow("ThunderRT6Main", strAppCaption)
' 直前にアクティブなウィンドウハンドルを得る。
lngFirstPophWnd = GetLastActivePopup(lngFirstTophWnd)
' ウィンドウをアクティブにする。
lngResult = SetForegroundWindow(lngFirstPophWnd)
' 最小化されタスクバーに格納されてある場合があるので、ウィンドウを通常表示にさせる。
lngResult = ShowWindow(lngFirstPophWnd, SW_RESTORE)
' アプリケーションを終了させる。
End
End If
838834:02/12/12 17:00
>835
Sub Mainに書いてみたけど、やっぱり自分自身のhwndを
取得してしまうようです。
>834
すみません、VB6.0です。ありがとうございます。

EnumWindowで探していくしかないかなあ。
CallBackがめんどくさそうですが。
>>837
一方的な取引には応じられない。
840bloom:02/12/12 17:02
>>839
俺のティムポしゃぶれば只に負けてやる w
(・∀・)
お前らVB厨らしくAppActivateとSendKeysで対処しろよ。
根性無しめ。
843834:02/12/12 17:18
>837
できましたー。ありがとうございます。
このGetLastActivePopupってのがよく分かりませんが、味噌なんですね。

振り込んでおきましたので、ご確認ください。
>>837
>>837
この方法だと、起動してから
> App.Title = strAppCaption & "VB厨ハ逝ッテヨシ(・∀・)"
までの間で、もうひとつ起動されたとき失敗する可能性ない?

たとえば、Aが起動している状態で、B,Cが立て続けに起動された場合、
BがCaptionを変更する前にCがFindWindowすると、Aを見つけたいのに
Bを見つけてしまうことになると思うんだけど。
>>833

最大化ボタンが無効になっている時、
ウィンドウ(Form)はリサイズされる必要が無いことを表しています
(これはWindowsの規約です)

それは、さておき、、、
タスクバーを取り除いた画面の領域を取得するAPIがあります
(SystemParametersInfo)

取得した値を計算してFrom.moveで移動させれば
最大化されているように見えます
846834:02/12/12 17:53
>>844
たとえ、そうなったとしてもForeGroundにならないだけだから、気にしない。
1モナー何円ですか?
1±2i 円
スイス銀行へ、うまい某で支払い。
850デフォルトの名無しさん:02/12/12 18:42
VB6でクリップボードにファイルを入れ込むにはどうしたらよいのでしょうか。
テキストと画像はヘルプに載っているのですが、マイコンピューター上で
ファイルを右クリックメニューからコピーする・・・という感じの方法が
見当たらないのです。どなたか御教授ください。
>>847
1円50Cent
>>850
http://www.koalanet.ne.jp/~akiya/vbtaste/vbp/#shell2
がそれっぽいような。
斜め読みしかしてないから、上記情報はご自身で確認を。
>>850
アフォ?
PATH取っておけば何とでも出来るじゃん。
何の処理してんの?
854デフォルトの名無しさん :02/12/12 19:41
マクロで虚数iを使いたいのですが,どのように書けばよいのでしょうか?どなたか教えてください。
あと,三次方程式を解くプログラムを作りたいのですが,どなたか助言をお願いします。
855850:02/12/12 19:45
>>852
ありがとう。トライしてみます。
>>853
自アプリでPATHだけ取っても、他アプリでその貼り付けは出来ないです。

ファイルマネージャー系アプリとやり取りが出来る処理です。
D&Dだけなら簡単なんですけどね。
>>854
マクロってなんだよ(藁
>>855
漏れならPathをテキストかなんかに書き出すがなあ。

>>854
具体的に式書け。
>>854
レスしないと釣りだと思われまつよ。
>>857
PATHをクリップボードにはっつけたら?
>>854
とりあえず、 http://www.vector.co.jp/ にでも行ってさがしてきなさい。
>>850
RarUtyが実現してるよね
https://211.10.75.189/k-sfa/index.jsp
このページ、i-mode N503iで表示されません。
P504i では表示されるのですが、
表示させる方法をお分かりの人がいたら、教えてください。
サーバー構成は、Apache+SSL(Apache1.3.27 OpenSSL0.9.6g) です。
↑ブラクラ
864デフォルトの名無しさん:02/12/12 21:49
VB6.0を使って、レポートの印刷プレビューを表示するプログラムを作っています。
現在
 rptRecord.Show vbModal
という文で印刷プレビューを表示しています。
しかしこれだと、全ページのプレビューが表示されてしまいます。
これを、1ページ目だけのプレビュー、2ページ目だけのプレビュー
というように、分けることは可能でしょうか?

例えば印刷の場合は、
 rptRecord.PrintReport False, 1, 1, 1
で、1ページ目だけの印刷
 rptRecord.PrintReport False, 1, 2
で、2ページ以降の印刷、とすることが出来ますよね。

印刷プレビューでも、これと同じことがしたいのですが…
>>845
なるほど、その手があったかという感じです。
SPI_GETWORKAREAですね。ありがとうございました。
ループ内ではあらかじめ変数に格納した数値を使いなさいと
よく聞きますが、

For i = 0 To List1.ListCount - 1
         '↑★この部分
  〜〜
Next i

★の部分は別に変数に入れなくて良いですよね?
↓こんな具合に。

j = List1.ListCount - 1
For i = 0 To j
  〜〜
Next i
>>866
何故変数に格納した数値を使うという、理由がわかれば、謎は解けるかと。
>>866
入れる必要はありません。
>>867
つまり変数に格納しないと処理に時間がかかると言うことでしょう?
で、For文のあの部分ってステップ実行してると1回しか通ってないように
見えるのですが、実はループが回ってくるごとに確認してんじゃないか、
みたいな深読みを…。
>>868
サンクスです。
昔年の謎でしてん。
>>869
> 実はループが回ってくるごとに確認してんじゃないか、みたいな深読みを…。
C言語とかはそうです。
>>871
そうなんすか。ってことはJavaもですよね。
気を付けます。
恥ずかしくて訊けなかった悩みが解決した
ありがとう>>866
そのぐらいためせ
気になったのでやってみた。

Dim i&, j&
j = 1
For i = 0 To j
  j = 100
  Debug.Print i; j
Next

結果
  0 100
  1 100

最初にしか評価してないみたいね。
> C言語とかはそうです。

コンパイラはその変数がループ内で変更されていない事が分かれば最適化するけど?
>866
どっちが間違いという事は無い。
ループの中でList1のListCountが変化した場合どうなるのかを考えてみ。
しまった汗
>>877
Dim i&
List1.Clear
List1.AddItem "giko"
List1.AddItem "mona"
For i = 0 To List1.ListCount - 1
  Debug.Print i; List1.ListCount; List1.List(i)
  List1.Clear
Next

結果は
  0 2 giko
  1 0
こんなん。やはり最初にしか評価してないね。
それよりも、List(i)に有効範囲外の値を入れても読み出しだけなら
エラーにならない、ってことに今更気づいた…。
ListViewをFor Eachで回してる最中に項目削除とかするとモロにエラーになるんだがな…。
>>875
>>879

まじ!!
VBやって2年たつけど
Forはループするたびに評価していると思ってた...
(For i = 0 To List1.ListCount - 1は 平気で使ってたけど)

1回しか評価しないのなら,変数に格納した数値を使う
必要はないとみた!!

ところで皆さんは WhileやUntil を使ったことあります?
漏れ使い方知らん...
いつも Do Loop で無限ループ作って Exit Do で抜けてる...
>>875
>>879

まじ!!
VBやって2年たつけど
Forはループするたびに評価していると思ってた...
(For i = 0 To List1.ListCount - 1は 平気で使ってたけど)

1回しか評価しないのなら,変数に格納した数値を使う
必要はないとみた!!

ところで皆さんは WhileやUntil を使ったことあります?
漏れ使い方知らん...
いつも Do Loop で無限ループ作って Exit Do で抜けてる...
>>880-881

スマソ

2回押しちった...にはは...
.NETがどう動くかしらないが、後々のコンパイラまで問題なく動かすなら
「一度しか値を評価しない」という固定願念は怖いかな
>881
Do Until rc.EOFって感じで普通に使うっしょ
>>883
「後々のコンパイラ」はもう無いから心配しなくていいでつ(ρ_;)
とはいえ、固定概念にしちゃうのはたしかに怖いね。
不安に思うなら、新しい処理系を使う時にいつでも試せばいい。
一回しか評価しないか、それとも毎回評価されるか、に関わらず、
余りトリッキーなコードは書くべきではない。
何がトリッキーだって?
>>888
887は、>>875>>879みたいなコードのこと言ってるんじゃないの?
そういう意味なら同意。
>>866のコードはまったくトリッキーじゃないよね。
890888:02/12/13 12:30
>>889
御意。
>>889
トリッキーというか実験でしょ。
実験かどうかは、「書くべきではない」 という判断には何ら関係無いと思うけど。
893デフォルトの名無しさん:02/12/13 14:15
1文字の幅をしるにはどうすればいいか教えてください
>>893
GetTextExtentPoint32
>>893
VBだけでラクして調べるなら、Labelをつくって
Appearanceを 0、AutoSizeを Tuueにして、文字を送り込んでWidthを調べる。
>>895

Tuue ってナニよ?
>895
ありがとうございます
>>896
(*^o^)(^ε^
894 には礼無しか
>>899
よくある話だ。理解できない物は情報とは見なさない。
もう慣れたよ。
>>895
おいおい、0文字の時と1文字の時の差を調べないとLabelの幅があるだろうが。
902デフォルトの名無しさん:02/12/13 14:45
ユーザーとパスワードを入力して終了するようなスクリーンセーバーを
作ったのですが、Ctrl+Alt+Deleteの後にEscキーを押すと、ユーザーと
パスワードを入力するダイアログが表示されずに終了してしまいました。
また、Windowsキーを押すとスタートメニューが表示されてしまいます。
このような処理を無効にするにはどうしたらよいでしょうか?
>>901
何だって?
904904:02/12/13 16:09
すみません。知人にもらったファイルなんですが、
拡張子frmのフォームファイルなのに新規プロジェクト→フォームモジュールの追加
で読み込むと、標準モジュールとして読み込まれて機能しないです。
やり方に問題があったのでしょうか?それともファイルの方に原因があったのか?
初心者の質問で恐縮ですがどなたかお答え頂けると有難いです。
905デフォルトの名無しさん:02/12/13 16:09
datacomboについての質問です。
DataCombo1_Changeの場合は変えたときに、その列のデータがDataGridに表示されます。
しかし、これをDataCombo1_Clickにした場合はどうなるのでしょう。
そのファイル、メモ帳などのテキストエディタで開いて、先頭に

VERSION 5.00
Begin VB.Form Form1
...
End

とか書いてあるかい?
D&Dでつっこみゃ追加されない?
>>905
やってみろ。もしくはヘルプ見れ。
909904:02/12/13 16:28
該当するファイル、拡張子frmで
VERSION 5#
Begin VB.Form InfoWindow
...
END
ってかいてあります。 でもD&Dで突っ込んでも標準モジュールとして
読み込まれてしまいます。何故なんでしょうか??困ったなぁ

「パスワードのかかったzipファイルを知人にもらったんですが…」
Windows板でよくあるタイプの質問だな。
いつも回答は一つ。


   そ の 知 人 に 聞 け 。
911904:02/12/13 16:44
どもです。そうします。すぐには連絡つかないし、
ちょっとした勘違いだったらここで訊いても構わないかと思ったんですが
やはり、作った本人に訊いた方が早いですからね。すみませんでした。
>>911
早いとかそう言うのでなく
うまい。
はやい。
>>914
安いと書くべきでは?これだからVB厨は・・・end;
>>915
うまい。はやい。やすい。
これが正解だ。
2 番目に 「やすい。」 を書いたらシーケンスエラーだろうが。
これだからぬるぽ厨は・・・
>>916
甘いな。

わかりにくいが>>913>>912を暗黙に参照している。
なのですでに早いに関するフラグはたっているわけだ。

だから>>914>>915が多重宣言エラーを発した。

と、言えば君は満足するのかい?
次スレ
はやい、やすい、だけ。
920916:02/12/13 18:02
 ∧||∧
(  ⌒ ヽ 修行が足りなかったようだ…
 ∪ 。ノ
  ∪∪
言葉の意味はよくわからんが、とにかくすごい自信だぁ
>>920
ワロタ
923デフォルトの名無しさん:02/12/13 20:17
たとえば
Dim kill As Object
Set kill = CreateObject("scripting.filesystemobject")
On Error Resume Next
kill.deletefile "c:\どこぞ\*.exe"
On Error GoTo 0
Set kill = Nothing
ってのがあります。
ボタン1なら c:\どこぞ\そこ\*.jpg ボタン2ならd:\そのへん\*.zip
を削除したいのですが、ボタンごとにパスだけ書き換えた上記のパスを
すべて書かなければいけないのでしょうか?
>>923
厨房な文章を読むと無意識のうちに

パス=パスワード

と読み替えてしまう。

関数にしてその引数にpathをとればどうだい?
925デフォルトの名無しさん:02/12/13 20:21
daoのSQLに使うワイルドカードが
*と?なんだけど、
俺はずっと%と_だと思ってて、何で動かないんだろうとずっと調べてたよ。
まじで腹が立つ。

adoはもちろん後者なんだけど。
なんでdaoは違うの?
926デフォルトの名無しさん:02/12/13 20:26
>>924
その関数の方法が・・・わかりませぬ(ノ_・、)グスン
>>923
ボタンを配列にするだけでは
>>925
adoやdaoなんて関係ねーよ。
SQL文が統一されていると思ってるなんてまだまだだな(藁
>>926
Public Function MyKill(Filename As String) As Boolean
Dim kill As Object
Dim Flag As Boolean

Set kill = CreateObject("scripting.filesystemobject")
Flag = False
On Error GoTo ErrTrap
kill.deletefile Filename
Flag = True
ErrTrap:
On Error GoTo 0
Set kill = Nothing
MyKill = Flag
End Function

'酒を片手にてきとーに書いてるので、正しいかどうかはしらん。
Kill っていう変数名は紛らわしいなあ
931デフォルトの名無しさん:02/12/13 20:58
>>929
おお!ありがとうございます。
見事にファイルが消えてくれました
932デフォルトの名無しさん:02/12/13 21:03
えーとちょっと質問ですが
Public Function mydel(Filename As String) As Boolean
Dim kill As Object
Set kill = CreateObject("scripting.filesystemobject")
On Error Resume Next
kill.deletefile Filename
On Error GoTo 0
Set kill = Nothing
End Function
では(・Δ・)イクナイのですか?
FlagとかErrTrapとか・・・なんなのでしょう
>>932
あー?
関数の中でエラーがあったかなかったか、わからなくていいならそれでいいーのでは?
>>933
酒入っているのがよく分かります。(w
935デフォルトの名無しさん:02/12/13 21:10
>>933
親切にありがとうございます。
とくにエラーがあったかどうかは必要ないのでこれでいきます
>>935
>とくにエラーがあったかどうかは必要ないのでこれでいきます

こら。
937デフォルトの名無しさん:02/12/13 21:18
エラーってファイルが無かった場合以外に何かあるのでしょうか?
始めたばっかりなのでよくわかりませぬ・・・
>>937
書込み禁止とかーCD-ROMを消そうとしてるとかーファイルが使用中とかー
揚げ出したら熱いくらいあるY0-
酒か・・・
アフォどもが。エラーをBooleanで返したらエラーが起きたかどうかしか
わからんだろうが。しかも不必要に複雑にしやがって。これだけでいいんだよ。

Public Sub MyKill(Filename As String)
Dim kill As Object
Set kill = CreateObject("scripting.filesystemobject")
kill.deletefile Filename
End Sub
>>940
それもそうですな。
>>940
ライブラリ厨ミトモナイ
>>942
アホハケーン
944デフォルトの名無しさん:02/12/13 21:43
>>940
それじゃあ、ファイルがなかったらエラーで止まりますが。
>>944
だから、そのためにエラー処理があるんですよー
呼ぶ前にOnErrorでもしかけといて、エラー解析すりゃいーんです。
>944
929では、エラー処理が不足すぎて、意味が無いという事です。
使うならばBool型じゃなくエラーを特定できるような戻り値にしないと
エラーがあったかどうかだけでは(以下略)
940+945の方法であればエラー処理もできますし、
929を改造すれば、まともなエラー処理も可能でしょう。
947デフォルトの名無しさん:02/12/13 22:13
>>946
りょうかいっ ~(=^‥^)ゞ ぴっ!
とりあえず929等を参考にコードを打ち直してみます。
レスたくさんありがとうございました。
948困った ◆it7n164.SA :02/12/13 23:28
質問します。Vb6でWindowsXP

フォームの一部分から後ろが見えるような物を作りたいのです。
フォームの一部分をくりぬいたようなイメージですかね。
なにやら、リージョンがどうたらこうたら、って事は調べて分かりました。
で、サンプルがある所もあったのですが、どこでも円形のサンプルばかりなのです。
私がやりたいのはフォームの形を円形にくりぬく事ではなく
フォームは元の四角形のままで、その中の一部分だけを四角形にくりぬく事です。
これはどうやって実現できますでしょうか。
APIや、具体的なやり方等教えていただけるとありがたいです。
>>948
APIガイドの同じカテゴリにばっちり載ってると思うが。

それかWIn32API散歩道買う。
>>948
具体的な方法は円形と同じではないでしょうか
951デフォルトの名無しさん:02/12/14 00:11
Rndって 0<=x<1.0 を返す関数ですか?
>>951
ヘルプみろ
>>948
ホレ、適当だ

Type RECT
  Left As Long: Top As Long: Right As Long: Bottom As Long
End Type
Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long
Declare Function OffsetRect Lib "user32" (lprc As RECT, ByVal dx As Long, ByVal dy As Long) As Long
Declare Function InflateRect Lib "user32" (lprc As RECT, ByVal dx As Long, ByVal dy As Long) As Long
Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Declare Function CreateRectRgnIndirect Lib "gdi32" (lprc As RECT) As Long
Declare Function CombineRgn Lib "gdi32" (ByVal hrgnDest As Long, ByVal hrgnSrc1 As Long, _
    ByVal hrgnSrc2 As Long, ByVal fnCombineMode As Long) As Long
Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Long) As Long
Public Const RGN_DIFF = 4

Sub KURINUKU()
  Dim rct As RECT, hwndForm As Long, hRgn As Long, hRgnTemp As Long

  hwndForm = Me.hWnd
  GetWindowRect hwndForm, rct
  OffsetRect rct, -rct.Left, -rct.Top
  hRgn = CreateRectRgnIndirect(rct)
  InflateRect rct, (rct.Right - rct.Left) \ -4, (rct.Bottom - rct.Top) \ -4
  hRgnTemp = CreateRectRgnIndirect(rct)
  CombineRgn hRgn, hRgn, hRgnTemp, RGN_DIFF
  DeleteObject hRgnTemp
  SetWindowRgn hwndForm, hRgn, 1
End Sub
954初心者:02/12/14 01:44
誰か、初歩的過ぎて、どこ探してもないので、助けて下さい(´Д`;)
以下は、利用者のとる行動です。

コマンド1をクリック→――→―→コマンド4をクリック→・・・
コマンド2をクリック――→↑
コマンド3をクリック――→┘       

上のように、コマンド1をクリックしたか、コマンド2をクリックしたか、
コマンド3をクリックしたかで、その後のコマンド4をクリックした時の、
(コマンド4以降のイベント等を含む)
処理を場合わけしたいのですが、どのようにしたらうまくいきますか?


   
↑↑↓↓←→←→BA
自爆しました。
>>954

Dim BtnFlag As Integer

Private Sub Command1_Click()
  BtnFlag = 1
End Sub

Private Sub Command2_Click()
  BtnFlag = 2
End Sub

Private Sub Command3_Click()
  BtnFlag = 3
End Sub

Private Sub Command4_Click()
  Select Case BtnFlag
    Case 1
      '1の処理
    Case 2
      '2の処理
    Case 3
      '3の処理
  End Select
End Sub


こういう事なのかわからんが、適当に書いてみた。
ま、後は自分で調べて応用してくれ。
958_:02/12/14 03:36
>>957
こっちのほうが良くねぇべか?
コマンドボタンを配列にしてさ。

private sub Connmand1_Click(Index as integer)

    static intIndex as integer

    select case index
    case 0 : intIndex = index
    case 1 : intIndex = index
    case 3 : intIndex = index
    case 4
        select case intIndex
        case 0 '1の処理
        case 1 '2の処理
        case 2 '3の処理
        end select
    end select

end sub
同僚に全部のボタンを配列にして、
一つのハンドラで処理を切り分けてた奴がいたな。
Case文がズラズラならんでindexで切り分けるから読みづらかった、
せめてindexにConstで名前付けといてくれればいいのに。

利点はボタンのEnable=Falseなんかは共通して一つ書くだけで済むこと。
欠点はフォームのボタンをダブルクリックしても、
処理を参照するのにスクロールせにゃならん事。

CのSDK方式か、MFC方式かって感じだな。
960957:02/12/14 04:10
>>958

確かに、配列を使うのもアリだが・・・しかし、
質問の内容のレベルから考えて、
「コマンドボタンを配列に・・・???」
なんて聞き返されても困るし、この方がわかりやすいかと思ってな。

・・・それはそうと、caseに与える数字、間違ってるよ・・・(;´Д`)
相手のレベルに合わせるのもいいが普通に考えたらこれだろ。
コマンドボタン1〜3がコントロール配列、4が単独。
まあコマンドボタンとかの用途にもよるから一概にこれが最適とは言えんが。
(飛躍させるとstateパターンとか使えってことになるかも知れんし)

Private intIndex As Integer
Private Sub Command1_Click(Index as Integer)
  intIndex = Index + 1 'これ押されないでCommand2を押した場合のための+1ね
End Sub

Private Sub Command2_Click
  Sselect Case intIndex
  Case 1 '1の処理
  Case 2 '2の処理
  Case 3 '3の処理
  End Select
End Sub
普通に考えたらラジオボタン
今、>>962が良いこと言った。
UI的に間違っていると思われ。
964デフォルトの名無しさん:02/12/14 10:43
Photoshopのようにメニューからファイルオープンして、その画像を新たなウインドウに表示するときに
新しく生成されたウィンドウのサイズを右下の部分をつまんで動かしたときに
スライダ出てくるようにするにはどうすれば良いんでしょう?
スライダコントロールって使ったことないけどあるよな。
966デフォルトの名無しさん:02/12/14 11:13
Photohopのように、メニューからファイルオープンで新しいウィンドウ開いて
そこに画像を表示させたいのですが、ウィンドウの右下部分をマウスでつまんで
サイズ変更するときに小さくしていく場合、画像の大きさよりもウィンドウが小さくなると
スライダーが出ますが、そのやり方がわかりません
どうすればいいんでしょうか?
えーっ!またー!?
968964:02/12/14 11:15
あれ?すんません、ミスって2こ書いてしまった
>>187
もしかしてジャンヌスレの81?
>>968
あれ?すんません、ミスって(さっきと同じスレに)書いてしまった


死ねマルチ。
971969:02/12/14 11:18
すみません誤爆してしまいました・・・
さんざんやな。
973デフォルトの名無しさん:02/12/14 15:15
次スレは?
974最凶VB厨房:02/12/14 16:19
【老若】VB.net質問スレ【男女】
http://pc3.2ch.net/test/read.cgi/tech/1025848458/
これ追加しといた方がよくねぇか?
975↑典型例( ´∀` ):02/12/14 16:20
>>974
別言後
>>975
誘導先として書いとくのがいいと思われ。
977デフォルトの名無しさん:02/12/14 16:50
最適化を探して一週間。
VB6.0ラーニングエディションには最適化ってないの?
有るとしたらどこに???
いい加減探し疲れた。
>>977
無い
>977
プロジェクトのプロパティの[コンパイル]タグって無いの?

まあ、最適化にこだわるならVBなんか使いなさんな。
980977:02/12/14 16:56
>>979
そこを何度見ても無いのよ・・・。
プロジェクト→○のプロジェクト→コンパイル(→最適化の詳細設定)
VB6.0ラーニングエディション には無いんじゃないか?
983977:02/12/14 16:59
>>981
それも無い・・・。
>>978>>982
そういうことですか・・・。
ラーニングエディションを買う俺は馬鹿?
>>983
別に
vbp直接変更して出来たりしないかな。
vbpにOptimizationType=0なんて項目ない?
986977:02/12/14 17:16
>>985
プロパティ自体がオブジェクト名の欄しかない・・・。
すまんね。
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
Retained=0
>>987
後はOverflowCheckとかを1にしてMsgBox CInt(32768)とかを
コンパイルして実行してみたら有効に働くかどうか分かるね。
>>987
にしてもvbpの中の項目にまで(tm)ついてるのね
(*´д`*)アハァ… VB初心者質問スレ Part19

まだー?
991デフォルトの名無しさん:02/12/14 18:55
立てますた。

(´∀` )エヘヘ VB初心者質問スレ Part19
http://pc3.2ch.net/test/read.cgi/tech/1039859691/
(*´д`*)アハァ… じゃないのかよ(;´Д`)
993デフォルトの名無しさん:02/12/14 19:07
1000取り合戦開始?
でも人いない
>>993

やる?
996デフォルトの名無しさん:02/12/14 19:11


Delphiやれ! デルファイ! でるふぁいまんせー!
996
1000!!
----------------------
1000 !!!

(´∀` )エヘヘ VB初心者質問スレ Part19
http://pc3.2ch.net/test/read.cgi/tech/1039859691/

----------------------
↓おめ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。