5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2005/10/25(火) 18:14:17
ここは Visual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。

VB.NETは別物なので専門スレで、
VBS、APIの質問もそれぞれのスレで。(>>2 で紹介)

MSDN Online Japan ホーム
http://www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6 正式リリース
http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
Google
http://www.google.co.jp/
※「まず自分で調べる」クセを身につけよう。

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

前スレ Part43 http://pc8.2ch.net/test/read.cgi/tech/1123952677/

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


○関連スレッド
VB.NET質問スレ (Part12)
http://pc8.2ch.net/test/read.cgi/tech/1121600038/

VisualBasic6.0 対 VisualBasic .NET 2003
http://pc8.2ch.net/test/read.cgi/tech/1116555483/

VBAについて Ver.4.0
http://pc8.2ch.net/test/read.cgi/tech/1105108229/

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

3 :デフォルトの名無しさん:2005/10/25(火) 18:18:15
○過去ログ 1〜10
  Part 1 http://piza2.2ch.net/tech/kako/968/968328471.html
  Part 2 http://piza2.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


4 :デフォルトの名無しさん:2005/10/25(火) 18:18:54
○過去ログ 10〜20
  Part10 http://pc.2ch.net/tech/kako/1022/10221/1022127528.html
  Part11 http://pc.2ch.net/tech/kako/1024/10243/1024380249.html
  Part12 http://pc3.2ch.net/tech/kako/1026/10266/1026642565.html
  Part13 http://pc3.2ch.net/tech/kako/1029/10292/1029241786.html
  Part14 http://pc3.2ch.net/tech/kako/1030/10309/1030947162.html
  Part15 http://pc3.2ch.net/tech/kako/1032/10327/1032706491.html
  Part16 http://pc3.2ch.net/tech/kako/1034/10343/1034302532.html
  Part17 http://pc3.2ch.net/tech/kako/1036/10361/1036154952.html
  Part18 http://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
  Part19 http://pc3.2ch.net/tech/kako/1039/10398/1039859691.html
  Part20 http://pc2.2ch.net/tech/kako/1041/10418/1041879465.html

5 :デフォルトの名無しさん:2005/10/25(火) 19:31:52
その現象が再現できる最小のコードを

6 :前スレ991:2005/10/25(火) 19:45:51
>>前スレ993

えー、
>でもNetwork Addressってどこから出てきたんだろ?
これはネットから拾ってきたそのままです。

MSDEが入ってるマシンで
>"Network Address=〜"を削除して、"Data Source=データベースサーバー名"を入れるといい。
をやってみましたが、つながりませんでした。
リモートはいわずもがな。
で、

Dim strSQL As String
Dim ConStr As String
Dim Rs As New ADODB.Recordset
Dim Cn As New ADODB.Connection

ConStr = "Provider=SQLOLEDB.1;Password=test;Persist Security Info=True;User ID=test;Initial Catalog=testdb001"
Cn.Open ConStr
Debug.Print ConStr
strSQL = Text1.Text
Cn.Close

だと、
ローカルマシンだとつながります。
リモートはつながりません(まぁ当然でしょうが)

ConStr = "Provider=SQLOLEDB.1;Password=test;Persist Security Info=True;User ID=test;Initial Catalog=testdb001;Data Source=192.168.0.28"

としてもリモートからはだめでした。


7 :デフォルトの名無しさん:2005/10/25(火) 19:47:49
ファイアウォールのせいじゃね?

8 :前スレ991 :2005/10/25(火) 20:34:25
ファイアーウォールは使っておりません。


9 :前スレ994:2005/10/25(火) 21:11:58
>>5
すみません、VBで書こうと思ったのですが、再現できませんでした。
その代わり、ExcelのVBAでは再現しました。
前に見たのも、もしかするとVBAだったかもしれません。

新規ブックを作成し、Sheet3にImageコントロールを貼り付けます。
Sheet1を表示した状態で、VBEditorを開き、

Sheet2に
Private Sub Worksheet_Activate()
Sheet3.PrintPreview
End Sub

Sheet3に
Private Sub Worksheet_Activate()
Image1.Visible = False
End Sub

を書き、Sheet2を開きます。

Sheet3のActivateは走りますが、Image1のVisibleはTrueのままプレビューされます。
Image1.Visible = False にブレイクポイントを置いてもらえば、
全然効いていないのが分かります。

10 :前スレ994:2005/10/25(火) 21:16:37
つーか、VBAだったらスレ違いですね・・・orz

あー、でもやっぱり思い返せば、確かにVB6.0でも同じようなことが起こったんです。

11 :デフォルトの名無しさん:2005/10/25(火) 22:14:35
>>6
>Data Source=192.168.0.28
これが違う。IPアドレスではなくてデータベースサーバー名だよ。
MSDEをインストールしたPCのタスクトレイにSQL Serverサービスマネージャの
アイコンがあるでしょ?
アイコンにマウスポインタを当てるとポップアップで「実行中 \\SERVER1 - MSSQLSERVER」
が表示されるからこれでデータベースサーバー名が確認できる。
この場合は"Data Source=SERVER1"にするといいよ。

調べてみたらSQLOLEDBのパラメータにNetwork Addressがあった。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpado260/htm/mdrefsqlprovspec.asp

12 :デフォルトの名無しさん:2005/10/25(火) 22:53:47
>6
 Data Source
 Windowsの管理ツール「データソース (ODBC)」にて「ユーザーDSN」や
「システムDSN」、「ファイルDSN」のどれかのタグにあるもの。
 あらかじめ接続の為の設定をしてある物がデータソース。
 この引数で指定するのはそれ。

 IPアドレスでサーバーを指定するなら、「Data Source」の記述を削除して
「Server=192.168.0.1」とすると良い。
 なお、この場合、SQL Serverは「既定のインスタンス」で作成された物でないと
接続できない。
 既定のインスタンスで無い場合は、「Server=192.168.0.1\インスタンス名」で
接続できると思うが未確認。
 MSDEなら、通常は「既定のインスタンス」だと思うけども。
 なお、「Server」が受け付ける引数は、IPアドレスだけではなく、コンピューター名でも、
FQDNでも、ネットワーク上で名前解決が出来る名前なら何でも良い。

13 :前スレ991 改め 6:2005/10/25(火) 23:12:41
>>11
ConStr = "Provider=SQLOLEDB;Data Source=TOSHIBA-NOTE;Initial Catalog=testdb001; User ID=test;Password=test"
だとローカルだとつながるのですが、リモートはつながりません。

リンク先を自分なりに読んでみて
ConStr = "Provider=SQLOLEDB;Data Source=TOSHIBA-NOTE;Initial Catalog=testdb001; User ID=test;Password=test;catalog location=192.168.0.28"
としてみてもやはりだめでした。ローカルからはこれでも接続できましが、
エラーの内容が「SQLサーバーがないかアクセスが拒否された」
から「接続文字列の属性がおかしい」に変わりました

アイコンにポインタおくと
実行中 - \\TOSHIBA-NOTE - MSSQLSERVER
と出ています。


14 :デフォルトの名無しさん:2005/10/25(火) 23:20:55
この期に及んでまだVB6って散り際が悪すぎるな、なんて思ってしまう俺は
MSの掌で踊らされてるのかな。

実際今現在VB6で何も問題ない(?)わけだし
次期OSでも.NET Frameworkはネイティブにならんようだし。

15 :デフォルトの名無しさん:2005/10/25(火) 23:30:09
しかし次期OSでVB6のアプリが動くとも限らない。
# 詳細は知らんけど

16 :6:2005/10/26(水) 00:05:47
>>12
あ、すみません、見逃しておりました。
明日また試してみようと思います。

17 :デフォルトの名無しさん:2005/10/26(水) 00:14:13
そもそもそんなうん百Mなテキストデータなんか使うなよ・・・

18 :17:2005/10/26(水) 00:15:15
超ゴバク・・・

19 :デフォルトの名無しさん:2005/10/26(水) 00:19:44
>>17
それについては禿同だ

20 :デフォルトの名無しさん:2005/10/26(水) 01:48:26
>>15
とりあえずVistaは動作対象だよ

開発環境の方は一応動くけど保証対象外ってことらしい

21 :デフォルトの名無しさん:2005/10/26(水) 08:37:51
>>13
>ConStr = "Provider=SQLOLEDB;Data Source=TOSHIBA-NOTE;Initial Catalog=testdb001; User ID=test;Password=test"
接続文字列はこれであってる。
そもそもリモートのMSDEに接続できるのか確認した方がいいね。

まずはローカル側、リモート側の環境(OS、VB、MSDE、MDACのバージョンとSP)を書いてよ。
MDACのバージョンを見るにはこれを使うといいよ。
ttp://homepage2.nifty.com/digitalcraft/mdacvc/

当然pingは通っていて、エクスプローラで相手のPCが見えるよね?

ローカル側のPCにもMSDEを入れてるなら、コマンドプロンプトで次のように入力してみて。
C:\>osql -S TOSHIBA-NOTE -U test
パスワード : test
1> use testdb001
2> select * from test
3> go

ローカル側のPCにMSDEを入れてないなら、ODBCデータソースを作って接続テストしてみて。
コントロールパネル→管理ツール→データソース(ODBC)で「ODBCデータソースアドミニストレータ」を開き、
「ユーザーDSN」に「追加」。
ドライバ:SQL Server
データソースの名前:おまかせ
SQL Server サーバー名:TOSHIBA-NOTE
「ユーザーが入力するSQL Server用のログインIDとパスワードを使う」を選択
ユーザー名、パスワード、既定のデータベースを変更する。
他はデフォルトでOK。

22 :デフォルトの名無しさん:2005/10/26(水) 09:27:54
>>12
少なくともプロバイダがSQLOLEDBのときはサーバを指定するのにData Sourceを
使用しても大丈夫だよ。
*.udlが作成する文字列もData Sourceを使ってる。
もちろんIPアドレスでも、コンピュータ名でもおけ。

23 :6:2005/10/26(水) 10:52:02

>>12
Server=192.168.0.1\TOSHIBANOTE
Server=192.168.0.1
どちらでも接続できませんでした。

>>21
変な表現で申し訳ないのですが
MSDEが入ってるほう(TOSHIBA-NOTE)をローカルと表現しておりました。
お互いにpingは通ります。
リモートと表現しているほうにはMSDEは入っておりません。

リモート側へのODBCデータソースの追加は
データソースの名前[test]、SQL Server サーバー名[TOSHIBA-NOTE]、ID[test]パスワード[test]
を入力して[次へ]をクリックすると、接続エラーが発生して作成できませんでした。

環境は、

ローカル側
OS:W2KSP4
VB6SP6
MSDE:8.00.760
MDAC:2.71.9040.2

リモート側
OS:XPSP2
VB6SP6
MSDE:nothing
MDAC:2.81.1117.0

です。
ODBCデータソースの追加については、いろいろ試してみようと思います。

24 :6:2005/10/26(水) 13:50:38
[解決]
>>前スレ993
>>11,12,21,22

接続文字は
Provider=SQLOLEDB.1;Password=test;Persist Security Info=True;User ID=test;Initial Catalog=testdb001;Data Source=MSDE
でいけましたが、これだけではだめでした。

ttp://isobe.exblog.jp/i20
ここの真ん中より下にある記事に解決法が載っておりました。

アドバイスありがとうございます。これでがんばれます。

25 :デフォルトの名無しさん:2005/10/26(水) 15:36:50
>>24
おつかれ。
ADOの学習ならこのページの「開発編3 ADO 2.6 入門」がおすすめ。
http://www.microsoft.com/japan/SQL/techinfo/selfstudy/Self_doc.asp

26 :6:2005/10/26(水) 16:51:06
時間作って読んでみようと思います。
便利なページがあるもんですね。

27 :デフォルトの名無しさん:2005/10/26(水) 23:20:43
Winsockコントロールを使ってUDP通信しようと思ったのですが、
Winsock1.SendDataでメッセージを送ろうとすると、

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim StrData As String
Winsock1.GetData StrData  ←ここでエラーが発生して、

実行時エラー"10054"
リモート側から接続がリセットされます。
   と出ます。

ポートの設定は問題無いと思います。
また、参考書のプログラムなのでソースの間違いも無いと思います。
向こうには、メッセージは届いていませんでした。
また、でたらめな相手のIPを指定するとエラーが出ないので、
一応接続しているのかな、なんて思ったりしています。

助けてください、お願いします。

28 :デフォルトの名無しさん:2005/10/27(木) 00:13:15
>>27
関係ないかもしれんが、ググったらこんなのがあった。
http://support.microsoft.com/default.aspx?scid=kb;ja;JP263823

29 :デフォルトの名無しさん:2005/10/27(木) 09:13:10
openステートメントで質問です。VB5で作成しています。
ログを開いて解析するツールなのですが、時々ファイルが壊れているなどして
エラーになってしまいます。
本来FreeFileで使えるファイル#を探すのですが、一本一本開いて
処理し、終わったらCloseするため、固定で#1を使用しています。
この時、エラーが発生してOn error Goto〜 に処理が飛ばしたとき
もし#1のファイルが開かれている状態だったらCloseするというコードを
作成したいのですが、可能でしょうか?
開かれているかどうかの判定方法があれば教えてください。

30 :デフォルトの名無しさん:2005/10/27(木) 11:48:21
いきなりの質問で恐縮ですが。
Visual Basicでノベル形式のアドベンチャーゲーム作りたいのですが、
一文字ずつタイピングしていくように文字を表示するにはどのようにすればいいですか?

またVBでゲームを作る上で参考になりそうなHPがあれば教えてください。
お願いします。

31 :デフォルトの名無しさん:2005/10/27(木) 12:13:07
>>29
エラーナンバー調べれば?

>>30
そのまま一文字ずつ描画すればいい
ていうかゲ製作板行け

32 :デフォルトの名無しさん :2005/10/27(木) 14:12:08
大変基本的なことで、すいません。
VBのコードで小数点の切り上げの処理はどのようにしたらいいんでしょうか?
intやfixは理解できたのですが、切り上げの関数コードがわかりません。
VBって切り上げって出来ないのでしょうか?


33 :デフォルトの名無しさん:2005/10/27(木) 14:20:27
切り上げできるよ
切り上げをする関数は無いがな

34 :デフォルトの名無しさん:2005/10/27(木) 14:21:35
>>32
切り上げなんてintして+1すりゃええだけじゃん
首の上に乗っかってるデカブツは飾りか?

35 :デフォルトの名無しさん:2005/10/27(木) 14:26:16
round

36 :デフォルトの名無しさん:2005/10/27(木) 14:28:36
なるほど、1.0を小数第一位で切り上げると2.0になるのか
なかなか勉強になりますな

37 :デフォルトの名無しさん:2005/10/27(木) 14:50:15
そりゃあ切り上げだからな

38 :デフォルトの名無しさん:2005/10/27(木) 14:54:36
だれか頼むといてくれ。[ ]に入るやつ考えて。あたえられた文字を暗号化するプログラム。

Const Table = "QWERTYUIOPASDFGHJKLZXCVBNM?"

Private Sub Command1_Click()
ango = Text1.Text
decode = ""
n = Len(ango)
For i = 1 To n
p = Mid(ango, i, 1)
If [ ] Then
Index = [ ]
Else
Index = 26
End If
decode = decode + Mid(Table, Index + 1, 1)
Next i
Text2.Text = decode
End Sub

Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
End Sub



39 :デフォルトの名無しさん:2005/10/27(木) 14:55:12
まぁがんばれや

40 :デフォルトの名無しさん:2005/10/27(木) 15:40:01
32です。
小数点第1を切り上げて、変数をlong型にしたいのですが
int()+1だと皆切り上がってしまうので,だめなんです。
小数点がでる場合のみ、皆切り上げしたいのですが・・・

dim x
dim y as long

x=textbox1
y=x * 1.25
 
if y mod 1 <>0 then
y=y+1
end if
って、猿頭でがんばって見たのですが、だめでした。




41 :デフォルトの名無しさん:2005/10/27(木) 15:44:05
修正です。間違えました。
dim x as long
dim y

x=textbox1
y=x * 1.25
 
if y mod 1 <>0 then
y=int(y+1)
end if


 

42 :デフォルトの名無しさん:2005/10/27(木) 15:45:15
+0.9も思いつかん頭じゃ何考えても駄目だろうな

43 :デフォルトの名無しさん:2005/10/27(木) 16:00:41
+0.9ですか?
int()+0.9ですか?
馬鹿だからわからないです・・・


44 :デフォルトの名無しさん:2005/10/27(木) 16:13:01
じゃあわかるまで頑張ってください

45 :デフォルトの名無しさん:2005/10/27(木) 16:35:40
>>43
貴方が馬鹿なのは貴方の親のせいなので両親に聞いてください

46 :デフォルトの名無しさん:2005/10/27(木) 16:38:22
43です。皆様は辛口っすね。
でも、なんとかおかげでわかりました。
42さん、すげーなぁ〜
0.9かぁ〜




47 :デフォルトの名無しさん:2005/10/27(木) 16:57:01
>>42
なるほど、1.05を小数第一位で切り上げると1.0になるのか
なかなか勉強になりますな


つーか、加数は使用する小数桁によって変わるだろ
対象数値が小数第二位までなら0.999を足さないと
本来なら0.99でも良いはずだけど、小数演算誤差で1.01+0.99は
2にならず1.99999...になるからな
別に0.999ではなく0.991でも大丈夫だけどね

48 :デフォルトの名無しさん:2005/10/27(木) 17:04:25
>>47
小数第一位なら1.0だろ
小数点以下全部ならしらねぇがな

49 :デフォルトの名無しさん:2005/10/27(木) 17:19:15































 

50 :デフォルトの名無しさん:2005/10/27(木) 17:19:26































 

51 :デフォルトの名無しさん:2005/10/27(木) 17:19:32































はいはい、もうやめようね

52 :デフォルトの名無しさん:2005/10/27(木) 17:22:25
もうこのスレ要らない気がしてきた

53 :デフォルトの名無しさん:2005/10/27(木) 17:32:25

String型の一次元配列から、任意の文字列に一致するものがあるかどうかを高速に調べる方法を教えてください。
ループ回して1つずつ比較するのは遅いし、Filter関数では一致ではなく含むものが抽出され
さらにそれに対してループで比較しなくちゃなりません。
どうか「高速」に「一致」が有るかどうかを調べる方法をご教示ください。
文字列は英数記号で文字数、要素数ともに不定です。

54 :デフォルトの名無しさん:2005/10/27(木) 18:00:50
>>53
JoinしてからInStrとかダメかね?

55 :デフォルトの名無しさん:2005/10/27(木) 18:21:59
>>54
高速には思えないんだが。

56 :デフォルトの名無しさん:2005/10/27(木) 18:41:48
ループよりマシだろ

57 :54:2005/10/27(木) 18:44:12
うん、俺の取り消しで('A`)

58 :デフォルトの名無しさん:2005/10/27(木) 18:44:28
配列でなくてScripting.Dictionary使っちゃあかんのかね

59 :デフォルトの名無しさん:2005/10/27(木) 18:55:20
>>32
意地悪で任意のケタで切り捨てするコード書いてみたw
Public Function RoundDown(X As Double, Digit As Integer) As Double

  If Digit < 1 Then
    RoundDown = X
  Else
    Dim RounededX As Double
    RounededX = Math.Round(X, Digit)
  
    If RounededX <= X Then
      RoundDown = RounededX
    Else
      Dim LeastSignificant As Double
      LeastSignificant = 10 ^ (-1 * (Digit + 1))
    
      RoundDown = Math.Round((X - LeastSignificant * 5), Digit)
    End If
  End If
End Function
一見無駄なIF(特に内側の)は安全のため。本当に無駄かどうかは実際やってみないとわからん。

>>53
配列を検索するのに高速な方法も糞もないでしょ。
普通にループで回す以上に高速な方法なんてありえん。
というか、どこの世界にわざわざ遅くなるような要素を仕込む馬鹿なコンパイラがいるかね。

そういうの高速にやるにはデータ構造を変えるしかないんじゃないの?
アルゴリズムの教科書には大体載ってるよそういう話。

60 :デフォルトの名無しさん:2005/10/27(木) 19:03:37
>>56
やってみたやループより遅かった@>>54

61 :デフォルトの名無しさん:2005/10/27(木) 19:11:29
BASIC言語について気になる事があるのですが
該当スレが分からず、ここに来ました
ここで質問させていただいてもよろしいでしょうか

ちなみに携帯のみの環境ですので
新しくBASICスレを立てるのは僕には無理です

62 :デフォルトの名無しさん:2005/10/27(木) 19:28:54
>>61
すれ立てるまでもない質問はすれ立てるまでもない質問のスレで

63 :デフォルトの名無しさん:2005/10/27(木) 19:35:49
>>60
まあ、Joinして新しく領域作成する処理は遅いし、それに加え元の処理が1句ごとシフトして比較なのに対し、
たぶんだけどInStrは1文字ごとシフトして比較という処理なわけだから、メモリアクセスと計算回数からいっても、
JoinでInStrは速いとは思えない。
ソートしてゴニョゴニョか先頭文字で木を作ってからゴニョゴニョってのが無難だと思う。
サーチ用のキャッシュ作ってもいいという前提だけど。

64 :デフォルトの名無しさん:2005/10/27(木) 19:47:40
ケース倍ケースだけど、DB使えたら使うなぁ

65 :デフォルトの名無しさん:2005/10/27(木) 21:36:01
学校で使用しているコンピュータの教科書(16年改訂)に
各主要言語の特徴が記載されておったのですが
BASIC言語の欄に「現在、世界中で最も使用されているコンピュータ言語」
なる記述がありました
VBを使用してられる皆様なら、BASICに精通されている方も多いと思います

そこで質問です
本当に 現在 最も使用されている言語はBASIC なのでしょうか
私の中では すでに終了している言語なのですが。

66 :デフォルトの名無しさん:2005/10/27(木) 21:41:58
BASICの派生も合わせれば、今でも一番使われてるだろうな

67 :デフォルトの名無しさん:2005/10/27(木) 21:42:40
>>65
あなたが学生であれば、先生に聞いてください
あなたが先生であれば、出版社に聞いてください
あなたが出版社であれば、著者に聞いてください
あなたが著者であれば、へそ噛んでください

68 :デフォルトの名無しさん:2005/10/27(木) 21:45:52
まあネタや釣りにあえて釣られるってのは有りだと思うが、
こんな笑いもアイロニーも何にもないネタに乗っかる奴の気が知れない。
ありていに言えば馬鹿じゃないの。

69 :デフォルトの名無しさん:2005/10/27(木) 21:47:00
>>68
自己分析乙

70 :デフォルトの名無しさん:2005/10/27(木) 21:50:32
BASICをVB置き換えて考えれば、業務アプリ開発ではかなり高いシェアを誇る
イトーヨーカドー、ローソンのレジ会計・JRの定期発行期(みどりの窓口で係員がたたいてるヤツ)は
VBで作られているんだって。

つまりVBは最高なんだよw

71 :デフォルトの名無しさん:2005/10/27(木) 21:52:00
>>68
いや、残念ながらネタじゃない
まだ疑うのなら 明日書名、著者名、ページ数を書き込んでも良いぞ

72 :デフォルトの名無しさん:2005/10/27(木) 21:52:25
まぁ、VBAなんて派生もあるからな
VBAまで含めりゃ、ACCESSやEXCELで作ったシステムでも使われてるからな

73 :デフォルトの名無しさん:2005/10/27(木) 22:02:46
-Int(-number)

74 :デフォルトの名無しさん:2005/10/27(木) 23:22:51
世界中で使われているBASICの半分はExcelVBAです

75 :デフォルトの名無しさん:2005/10/28(金) 01:24:41
エクスプローラから「マイドキュメント」を適当なコントロールにドラッグアンドドロップすると,
OLEDragOverなどに引数で送られてくるDataObjectやMSComctlLib.DataObjectに何が入っているか分からない状態です。
どうすれば「マイドキュメント」であると認識できるでしょうか。

他のファイルと同様に処理すると、ピクチャーボックスに入れた場合は「ファイルが見つかりません。」、
treeviewに入れた場合はと「データの形式が一致しません。」と出ます
msgboxなどで中身の何かを見ようとすると「データの形式が一致しません。」と出ます。

76 :予防線:2005/10/28(金) 14:29:28
**質問者の方へ**
「○○するための具体的な方法」を知りたいときに、
「○○する方法はありますか?」という感じで謙虚に質問すると、
「ある」としか回答してくれません。
質問者のあなたにとっては、あるかどうかすら分からないことについて
しょっぱなから「○○するにはどうしたらよいですか?」と、あることを
前提に質問するのはぶしつけに感じるかもしれませんが、
一部の回答者は、質問者の意図を推測するような余計なことはせず、
コンピュータのように言葉を文字通りに理解しますので、「ありますか?」
という質問に「ある」とだけ回答します。
具体的な方法を知りたいときは、「具体的にはどうしたらよいか」という
フレーズを質問に含めるようにしてください。お手数をおかけします。


77 :デフォルトの名無しさん:2005/10/28(金) 14:36:58
>>76
以前「ある」とだけ回答されて途方に暮れた人か。可哀想に。

78 :デフォルトの名無しさん:2005/10/28(金) 14:44:42
「〜する方法ありますか? あるならば、その方法を教えて頂きたいのですが」
謙虚じゃないのか?この聞き方


79 :デフォルトの名無しさん:2005/10/28(金) 15:13:37
「具体的な方法を」と聞いたところで、
ここには具体的な方法は知らないけど答えたいってヘボい奴が多いから、
回答した奴自身が必死でググって見つけたキーワードを出して
「あとはググれ」とか言われるのがオチだぞ
「具体的な方法」を聞いたところで「具体的な方法」を示せる奴なんてほとんど居ない
俺は解らない場合は無理に答えたり罵倒したりしないで放置するけどな

80 :デフォルトの名無しさん:2005/10/28(金) 16:04:56
VB6中古未登録アカデミックパックが35,000円!
これって定価以上じゃないのか。
ttp://page4.auctions.yahoo.co.jp/jp/auction/d55771948

81 :デフォルトの名無しさん:2005/10/28(金) 16:24:35
具体的な方法教えてたらソース書くのと同じじゃん。
方向性を示して、キーになる技術提示して、あとはぐぐれで十分。


82 :デフォルトの名無しさん:2005/10/28(金) 17:10:12
> 具体的な方法教えてたらソース書くのと同じじゃん。
答えを求めて来てる奴に、答え(ソース)を示して何が悪い?
ここは勉強会場じゃないんだから、答えだけ教えるのは質問者の為にならないなんてのは
具体的な答えを示すだけの知識がない奴の言い訳。
どこまでの回答で「じゅうぶん」かは、回答者が決める事じゃない。

83 :デフォルトの名無しさん:2005/10/28(金) 17:18:00
自分の欲しい回答が得られないからと言って粘着しまくるのはどうかと思うがね


84 :デフォルトの名無しさん:2005/10/28(金) 17:18:20
>>82
どこまで教えるかはこちらの自由。
答えを出したい人もご自由にどうぞ。

85 :デフォルトの名無しさん:2005/10/28(金) 17:24:41

具体的な方法教えてくれと言われたら
具体的な方法わかる奴が具体的な方法教えればいい

ヒントクレと言われたら、ヒントをやればいい

求められたことに答えられる奴が答えて、答えられない奴は黙ってればいい

答えられないのは罪でも恥でも無いし、答えないのも自由だが
求められた内容と違うレス付けて、回答したつもりになってる自称上級者が一番ウザい

86 :デフォルトの名無しさん:2005/10/28(金) 17:29:09
> 求められた内容と違うレス付けて、回答したつもりになってる自称上級者
ここはこれの巣窟ですが、何か?

87 :デフォルトの名無しさん:2005/10/28(金) 18:47:20
自分の私怨を一般化し過ぎる馬鹿が多すぎるね。
質問者一般を擁護しようとか、回答者一般を擁護しようとか、もうアホかと。

馬鹿な質問者は叩いてよし、馬鹿な回答者は叩いてよし。
正解はこうでしょ。

まあしかしあえて俺の感想を言うと、
質問者の方に問題があるケースの方が圧倒的に多いんじゃないの。
テンプレをどうしろこうしろとか言ってる奴は、恐らく文章をなしていない
意味不明な質問をしたか、ろくに自助努力もしてないことミエミエの質問をして
なじられたのを逆恨みしてる奴なんじゃないのw

さらに言えば、スレの性質上馬鹿で幼稚な回答は大して害がなく単に無視すれば済むが、
(腐った奴ばかりじゃないんだから、まともな回答者の登場を待てばいいだけ)
そもそも質問が馬鹿だったり意味不明だったりでは話にもならんよ。

88 :デフォルトの名無しさん :2005/10/28(金) 18:49:59
簡単に出来そうなのに,出来ない事なのですが,

画像ファイルをdrag&dropで表示させるには
どんなプログラムを書いたら良いのですか?
winxp vb6.0です

89 :デフォルトの名無しさん:2005/10/28(金) 18:57:15
>>88
まず、Drag&Dropして表示したい画像ファイルを表示する手段をお前は持っているか?
持っているか居ないかでその後の対応が変わる。

90 :デフォルトの名無しさん:2005/10/28(金) 18:57:30
言ってる側から馬鹿な質問者かよ。

【回答】
そのぐらいのこと自分で調べてなんとか出来ない人はプログラムを書くべきではありません。

91 :デフォルトの名無しさん:2005/10/28(金) 19:01:07
>>88
プロパティ:OLEDragMode=手動
イベント:OLEDragDrop and OLEDragOver
GetDropFileName()
あたりで何とかしてください。

色々分かってきたら>>75のことを教えてください。

92 :デフォルトの名無しさん:2005/10/28(金) 19:15:34
>89
手段を持っていないので,その手段を手に入れたいのです.
別にそーゆー機能が欲しいのではなく,
そーゆープログラムを書けるようになりたいのです.

>90
すんません.
結構調べたけど出て来ないので・・・
調べ方が悪いのかな・・・

>91
はい.
ファイルネームを手に入れて,
そのファイルを表示させるという手順は分かります.
OLEDragDrop and OLEDragOver
GetDropFileName()
は試した事が無いので試して見ます.

93 :デフォルトの名無しさん:2005/10/28(金) 20:01:11
>>88
MSDNに載っています
人に聞かなきゃ分からないレベルなら
ハードディスク領域をケチらないでキチンとインストールしましょう

・OLEDragDrop
・OLEDragOver

をMSDNで引いてます。

OLEDragDrop ・・・ ソース コンポーネントをターゲット コンポーネントにドロップし、
            ソース コンポーネントでドロップ可能と判断されたときに発生します。
OLEDragOver ・・・ コンポーネントがほかのコンポーネント上にドラッグされたときに発生します。

と載っています。

ドロップ操作は OLEDragDrop で処理すればいいかと予想つきます。

画像ファイルを表示させたいなら、ドロップされたファイルを取得できればOKです。次に OLEDragDrop の引数を見てみます。ファイルのパスはStringなので String型の引数を探します。でも String型の引数はありません。

じゃぁ無理だ 諦める前に DataObject という見た事ない型に注目してみます。DataObjectって名前で、いかにもドロップされたデータっぽいではあ〜りませんか。今度は DataObject をMSDNで引いてみます。
DataObjectはオブジェクトであります。では次にメンバーを見てみます。Filesっていうプロパティがありました。これがドロップされたファイルであるなと仮定します。
さらに調べると「Files コレクションを参照してファイル名の一覧を取得できます。」ってあります。Filesはコレクションである事も分かります

strFile = DataObject.Files(1)

で解決です。

チョッとは自分で調べようね MSDN に載ってなかったら ググるなりココで聞けばいい。調べよう。マジで調べよう。

94 :デフォルトの名無しさん:2005/10/28(金) 20:05:02
>>93
そこで終わりかよ!

95 :デフォルトの名無しさん:2005/10/28(金) 20:11:28
ここには本当に中の下レベルばかりが集まってるんだな。
俺も同じレベルだから非難は出来ないけど、
上の下以上のレベルの奴が居ないってのも悲しいな。

96 :デフォルトの名無しさん:2005/10/28(金) 20:16:15
.NetやJavaに移ってしまったんだからしょうがないじゃないか

97 :デフォルトの名無しさん:2005/10/28(金) 20:44:02
>93
ダメだ・・・分からない・・・
ってか、余計分からない・・・

drag&dropしたら,ファイル名表示させる事は出来たのになー

98 :デフォルトの名無しさん:2005/10/28(金) 22:42:30
>>97
え?もしかして画像の表示方法が分からないのか?

strFile = DataObject.Files(1)
Set Picture1.Picture = LoadPicture(strFile)

VB6ではPNG読めないから注意してね

99 :デフォルトの名無しさん:2005/10/28(金) 22:47:52
>>98
×VB6ではPNG読めない
○VB6のLoadPicture関数ではPNG読めない

100 :デフォルトの名無しさん:2005/10/29(土) 01:08:17
タスクトレイに表示したプログラムのアイコンを、
キー入力を監視して、リアルタイムに変更したいのですが、
アイコンにマウスポインタを移さないと、変更されません。

バックグラウンドでも、アイコンを変更できるようにするには、
どうすればいいのでしょうか?

ちなみに作っているのは、キーボードのLEDをタスクトレイに表示するものです。

101 :デフォルトの名無しさん:2005/10/29(土) 09:36:58
>>100
1秒おきにLEDをチェックする

102 :デフォルトの名無しさん:2005/10/29(土) 10:08:26
>>100
ソース晒せって言ったでしょ?

103 :デフォルトの名無しさん:2005/10/29(土) 17:39:50
vb6+webbrowserでformを自動でsubmitするようなものを
作っているのですが、どうもうまくいきません。
いろいろ調べて

Dim AForms As Variant
For Each AForms In WebBrowser1.Document.Forms
If AForms.Name = "FORM1" Then
AForms.submit
Exit Sub
End If
Next

というように処理をしてうまくいくページもありますが、
 アクセスが拒否されました
とエラーになってしまうページがあります。
エラーになるページのform部分は

<form action="/xxx" method="GET" name="FORM1" target="_top" onsubmit="return fnc001(this)">
<input type="hidden" name="aa" value="aaa">
<input type="hidden" name="bb" value="bbb">
<input type="text" name="cc" size="46" value=" maxlength="256">
<input type="submit" value="開始"> 
</form>

というふうになっています。

直接submitをクリックするようにしても同じエラーが出てしまいます。
どのようにすればうまくいくのかご教授お願いします。


104 :100:2005/10/29(土) 21:34:37
とりあえずタイマーイベントのソースです。
タイマーの間隔は、500ミリ秒です。
キーボードの状態をチェックするために、Win32api使っています。

Private Sub Timer1_Timer()
Dim keys(0 To 255) As Byte
Dim IconSwitch As Byte 'Ledの8種類の状態をいれる(0〜7)
< 一部省略>
'アイコン変更
udtNotifyIconData.hIcon = Image1(IconSwitch).Picture
Call Shell_NotifyIcon(NIM_MODIFY, udtNotifyIconData)

End Sub

これを、他のプログラムが動作しているときでも、
LEDが変更になるようにしたのですが、
どうすればいいでしょうか?

105 :デフォルトの名無しさん:2005/10/29(土) 21:58:57
プロセス間通信で文字列を送りたい。
方法の一つにWM_SETTEXT を TextBox_Change で受ける
という方法があるということまでは分かった。
すると、FindWindowでウィンドウハンドルを探すなりし、
その後、FindWindowExでTextBoxを探すのではないかと考えた。
しかし、FindWindowExでTextBoxを探す方法が分からない。

どなたかご教授いただけませんか。



106 :デフォルトの名無しさん:2005/10/29(土) 22:29:30
>>105
VB6のTextBoxのクラス名は「ThunderRT6TextBox」だからコレで探す。
VB以外のTextBoxのクラス名は「Edit」。ってか言語で違う。
複数のTextBoxがある場合は子ウィンドウを列挙して一つずつ。

VB6で作ったアプリ同士の通信なら デフォルトでDDE使えるから こっちの方がスマート。

107 :デフォルトの名無しさん:2005/10/29(土) 22:53:04
>>106
ありがとうございます。いけそうな気がします。

DDEは.netではサポートしていないそうで、
すこしでも将来移植が簡単なように考えてとの思いです。

関連する別の質問ですが、
子プロセスで処理した結果(文字列)を親プロセスに返す
ようなものを作りたいのですが、
このとき親プロセスのウィンドウハンドルを取得する方法などあるのでしょうか。
親と子は同じVBの実行ファイルです。

#質問が続いて申し訳ないので
#このあたりが調べられるサイトなどあればお知らせ下さい。



108 :デフォルトの名無しさん:2005/10/30(日) 00:48:06
GlobalAddAtom
GlobalGetAtomName

109 :デフォルトの名無しさん:2005/10/30(日) 04:48:21
>>108
ありがとうございます。
ちょっと調べたところでは
atomに文字列をセットしてIDをもらう
IDでatomにセットした文字列を引き出す
こんな感じですね。
ただ、IDを引き渡す方法がいって
これ自体がプロセス間で文字列をやり取りすることなので
atomを使うと何がうれしいかは私の能力では分かりかねました。
これは何がうれしいのでしょう?

で、この件は分からないまま、
親プロセスが子プロセスを産むときに引数で親のwhndを渡してあげて
うまく会話させるということで解決しようかと思い始めています。
しかし、心配なところがあります。
想定している処理は複数の子が親にメッセージを返し、
親はそのメッセージを処理するというようなものですが、
親は一人の子のメッセージを処理している間に別の子のメッセージが届いて
処理が割り込まれてしまわないかです。
特にTextBox_Changeで受けるようなときでも問題ないのでしょうか。
キューに並ぶならうれしいところですが。
どなたかご存知の方いたらお教え下さい。

110 :デフォルトの名無しさん:2005/10/30(日) 21:20:07
Windows2000で VB6 SP5 を使っています。
フォーム内のどこにフォーカスがあってもEscapeキーでソフトを終了させたいのですが
やり方がわかりません

Public Sub textbox_keydown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
 End
End If
End Sub

今の所こんな感じで、特定のコントロールにフォーカスがあるときだけ終了できるんですが
textbox の所を Form1 に直すとか単純な話ではなさそうなので、困っています

111 :デフォルトの名無しさん:2005/10/30(日) 21:24:28
>>110
formのKeyPreview

112 :デフォルトの名無しさん:2005/10/30(日) 21:49:32
>>111
うまくできました、ありがとうございます

113 :デフォルトの名無しさん:2005/10/31(月) 00:09:14
ts

114 :デフォルトの名無しさん:2005/10/31(月) 08:56:50
WindowsNT(SP6a)でVB5.0(SP3)+EXCEL97(サービスリリース対応)の
組み合わせで安定してプログラムの作成は行えるでしょうか。
今まではWindowsNT(SP3)+VB5.0(SP3)+EXCEL97(サービスリリース対応)を
使用していましたがハードウェアの都合でWindowsNT(SP6a)を使う必要が
生じました。

どなたかご教授下さいますよう宜しくお願い致します。


115 :デフォルトの名無しさん:2005/10/31(月) 09:30:37
大昔(前世紀)の日経オープンシステムにその手の特集記事があったはず。
入手方法は自分で考えてね。

116 :デフォルトの名無しさん:2005/10/31(月) 11:25:25
>115
ありがとうございます。
調べてみます。
他にも情報がありましたらご教授下さいますよう宜しくお願い致します。


117 :デフォルトの名無しさん:2005/10/31(月) 12:38:27
つーか、えらく古い組み合わせだな

118 :デフォルトの名無しさん:2005/10/31(月) 13:36:57
教えてください。
ssTabのタブの順番を入れ替える。

[ A ] [ B ] [ C ]

    ↓

[ A ] [ C ] [ D ]



119 :デフォルトの名無しさん:2005/10/31(月) 14:34:17
だが断る

120 :デフォルトの名無しさん:2005/10/31(月) 15:52:27
>>118
SSTabでは出来ない
TabStripでは [ C ] を削除して [ A ] の後に入れる

それにSSTabは Microsoftは認識しているけど放置されているバグが多いし
Windows・サービスパックのバージョンによっては発生しないイベント・作動いないプロパティとかあるし
だからあれほどSSTabは使うなって言ったのに…

121 :118:2005/10/31(月) 16:19:37
>>118
ありがとうございました。

「TabStrip」勉強してみます。

122 :デフォルトの名無しさん:2005/10/31(月) 19:15:54
>>116
ttp://www.tt.rim.or.jp/~rudyard/torii009.html

ここ見れ

123 :デフォルトの名無しさん:2005/11/01(火) 11:45:35
ここのサンプルソースを使ってsusieプラグインでの画像表示をさせました。
ttp://tokyo.cool.ne.jp/kanain/APIHTM/Susie.htm

で、ifjpegx.spiを使って表示をしているんですけど、
プラグインの設定は、どうやって呼び出し&登録すればいいのでしょうか?

susieに付いてるSpi_api.txtを読んではみたのですが、
サッパリだったので。。。

124 :デフォルトの名無しさん:2005/11/01(火) 12:07:47
> susieに付いてるSpi_api.txtを読んではみたのですが、
> サッパリだったので。。。
つまり、おまえが手を出すのはまだ早いってことだ。

125 :デフォルトの名無しさん:2005/11/01(火) 12:08:16
ソース上で指定してるやん・・・・・

126 :デフォルトの名無しさん:2005/11/01(火) 12:59:37
>122
ご指摘ありがとうございます。


127 :デフォルトの名無しさん:2005/11/01(火) 13:48:15
たぶん>>123の言うプラグインの設定って、
ifjpgxならDCT演算の方法とか、プラグイン自体の立ち上げをvbからコールする方法は?
って意味なんジャマイカ?


俺は知らんが。

128 :デフォルトの名無しさん:2005/11/01(火) 17:33:22
>>123
あぁ 何が言いたいのか俺には分かる
IFJPEGX.SPIの設定を自分でやりたいって事だろ
残念ながら設定を自分でやる事は出来んない(取得も出来ない)
設定ダイアログは IFJPEGX.SPI の中の ConfigurationDlg( )API を使って呼び出せるよ

定義 Declare Function ConfigurationDlg Lib "IFJPEGX.SPI" (ByVal parent As Long, ByVal fnc As Long) As Long

どうしても自分でやりたいなら「HKEY_CURRENT_USER\Software\Takechin\Susie\Plug-in\IfjpegX」以下をいじれ

>サッパリだったので。。。
Spi_api.txt読めない程度なら手を引いた方が良い領域です
あなたにはまだ早過ぎます マジ早過ぎ メモリクラッシュコード書かないようにな

129 :デフォルトの名無しさん:2005/11/01(火) 20:13:54
VBが消える前に間に合うかな

130 :デフォルトの名無しさん:2005/11/01(火) 23:56:28
ファイルのコピーで質問があります。
ファイル名に"#"が入っているとうまくコピーが
できず、困っています。
"#"がファイル名に入っていてもコピーする
にはどうすればよいのでしょうか?

---------------------------------------
dir1 = "c:\AAA\"
dir2 = "c:\BBB\"
fname = "file#.txt"

Filecopy dir1 & fname , dir2 & fname

コピーされません。
ファイル名から#をとるとうまくいきます。
---------------------------------------





131 :デフォルトの名無しさん:2005/11/02(水) 00:00:20
#なんぞファイル名に使うなカス

132 :デフォルトの名無しさん:2005/11/02(水) 11:24:30
VC++用に作成されたDLLを呼び出したいんだけどうまくいきません

int testSub(LPCTSTR p1, WORD p2, WORD p3, WORD P4[3]) ;

上記の関数を呼び出すにはVBのDeclare文はどう宣言すればよいのでしょうか?
下記のように宣言したんですが「DLLが正しく呼び出せません」ってエラーになります

↓こんなふうに宣言して
Declare Function testSub Lib "testSub.dll" Alias "?testSub@@YAHPBDGGQAG@Z" ( _
ByVal p1 As String, _
ByVal p2 As Long, _
ByVal p3 As Long, _
p4() As Long _
) As Long

↓こんなふうに呼んでみたのですが・・・
p1="abc"
p2=1
p3=2
p4(0)=0
p4(1)=0
p4(2)=0
ret = testSub(p1, p2, p3, p4())

助けてください。宜しくお願い致します。

133 :デフォルトの名無しさん:2005/11/02(水) 11:31:02
>>132
>int testSub(LPCTSTR p1, WORD p2, WORD p3, WORD P4[3]) ;
                  ~~~~~~   ~~~~~~   ~~~~~~
>ByVal p2 As Long, _
          ↑なんでやねん

134 :132:2005/11/02(水) 11:56:11
>>133
ありがとうございます

WORDは、Integer なんですね

でも結果は同じですね_| ̄|○

135 :デフォルトの名無しさん:2005/11/02(水) 12:06:34
>>133
多分配列の渡し方が違う?

配列の場合は先頭のポインタだけ分かってればいいから

ByVal p1 As String, ByVal p2 As Integer, ByVal p3 As Integer, p4 As Integer
ret = testSub(p1, p2, p3, p4(0))



ByVal p1 As String, ByVal p2 As Integer, ByVal p3 As Integer, ByVal p4 As Long
ret = testSub(p1, p2, p3, VarPtr(p4(0)))

まぁ試してないから分からんけど

136 :デフォルトの名無しさん:2005/11/02(水) 12:13:15
>>133しゃなくて>>132 だった・・・

137 :132:2005/11/02(水) 12:28:01
>>135
ありがとうございます

2つとも試しましたが 。・゚・(ノД`)・゚・。ウエエェェン 結果は同じでした


138 :デフォルトの名無しさん:2005/11/02(水) 12:46:19
>>132
VBのDeclare文はWINAPI(FAR PASCAL)タイプの関数を呼び出すことを想定している。
C/C++形式の関数だとスタックが逆になるうえにスタックの後片付けが呼び出し側になるため呼び出せない。

139 :デフォルトの名無しさん:2005/11/02(水) 12:58:26
C側で__stdcallのstubを作れないのん?
というかDLLなら普通__stdcallではないのだろうか

140 :132:2005/11/02(水) 13:27:01
>>138>>139
ありがとうございます

WINAPI(FAR PASCAL)タイプの関数をひとつ間に入れて
呼び出してみます。

141 :デフォルトの名無しさん:2005/11/02(水) 16:10:55
教えてください。
文字列から特定の文字を検索する方法は、キーワードは1つ
ですが、キーワードを複数にして、判定させたい。

こんなことができたらなー
flg=InStr(文字列, キーワード1,キーワード2)

142 :デフォルトの名無しさん:2005/11/02(水) 16:27:38
InStr*InStrでいいじゃん
どっちか、若しくはどっちも含まれてなければ*0=0で結果はFalse
どっちも含まれてれば1以上が返るのでTrue
一発でやりたければ正規表現でも使うか関数化するかしな

143 :デフォルトの名無しさん:2005/11/02(水) 17:24:00
Excel2000にてVBAでコードを書いてて、このBOOKを保存→終了→起動とやった所、
二度と開かなくなりました。
「問題が発生したため、Microsoft Excel for Windows を終了します。
ご不便をおかけして申し訳ありません。」
これが毎回出ます。

VBAコードだけでもどうしてもサルベージしたいんですが、何か案はありますでしょうか?
C:\Documents and Settings\SystemDev\Application Data\Microsoft\Excel\の
中のファイルを消す方法は試しましたが、症状変わらずでした。


144 :デフォルトの名無しさん:2005/11/02(水) 17:27:31
>>143
スレ違い
VBAスレで効くべきだが、Excelは単独で開けるのかどうかと他のユーザーでそのブックが開けるのかも追記しといた方が良いぞ

145 :143:2005/11/02(水) 17:37:49
>>144
すみません、ただVBAプログラマ質問スレが見あたらなかったもので・・・
Excel自体は単独で開けます、そのBookだけがエラーで落ちます。
他のユーザ-及び他PCでも開けませんでした


146 :デフォルトの名無しさん:2005/11/02(水) 19:45:36
ビジネスsoftのExcelスレなら何でもありだぞ。

147 :デフォルトの名無しさん:2005/11/02(水) 20:21:44
バグ・不都合関係はダメっぽいぞ


148 :デフォルトの名無しさん:2005/11/02(水) 21:44:01
・      ・
上のような点と点を直線で結ぶのはLine命令ですぐできるんですが
曲線で結ぶにはどうすればよいでしょうか?

使用しているOSはXPで、VBのバージョンは6.0です。


149 :デフォルトの名無しさん:2005/11/02(水) 21:45:58
>>148
二点なら直線だからLINEだろ

150 :デフォルトの名無しさん:2005/11/02(水) 21:47:59
>>148
点は地図のマークっぽいイメージでマークとマークの間を
曲線で繋ぎたいのです。

151 :デフォルトの名無しさん:2005/11/02(水) 21:50:08
PolyBezierできにいらなきゃスプラインで色々調べる事

152 :デフォルトの名無しさん:2005/11/02(水) 21:50:53
>>151
サンクス

153 :デフォルトの名無しさん:2005/11/03(木) 02:46:05
VBでエスケープシーケンスの表現ができないYO!

154 :デフォルトの名無しさん:2005/11/03(木) 08:05:57
無いからな

155 :143:2005/11/03(木) 08:15:03
>>146
なるほど、そっち行って聞きます
どうもです

156 :デフォルトの名無しさん:2005/11/03(木) 09:21:11
VB4で作ったプログラムのMOがひょっこりでてきまして、VB5で読もうと思ったら
バイナリなので読めませんでした。

VB4をインストールすることなく変換あるいはテキスト化できる手段ってありますか?

157 :デフォルトの名無しさん:2005/11/03(木) 14:05:57
>VB4をインストールすることなく変換あるいはテキスト化できる手段ってありますか?
VB4をインストールしたってそんなことは出来ません。

158 :デフォルトの名無しさん:2005/11/03(木) 14:38:29
ん?もしかして、.exe からソースを起こしたいって話?
いや、まさかね…

159 :デフォルトの名無しさん:2005/11/03(木) 14:40:22
>>158
そんな馬鹿なことあるわけないじゃないかwwwwwwww

160 :デフォルトの名無しさん:2005/11/03(木) 14:50:25
>159
いやー、分からんぞ。こんな世の中じゃ ポイズン

161 :デフォルトの名無しさん:2005/11/03(木) 16:12:05
つーか、バイナリって言ってんだから>>158が真実だろう

162 :デフォルトの名無しさん:2005/11/03(木) 16:38:09
昔のBASICには中間コードのまま保存するバイナリ形式とテキストにして保存するアスキー形式があったな

163 :デフォルトの名無しさん:2005/11/03(木) 19:28:35
ウヘヘヘヘヘヘヘヘヘヘヘ
釣れた釣れた(プゲラ

164 :156:2005/11/03(木) 20:43:25
出来上がりのexeぢゃなくソースがテキストじゃなくてバイナリ化されちゃってるんですけど・・・

165 :デフォルトの名無しさん:2005/11/03(木) 21:27:25
VB2の頃ならテキストかバイナリのどっちで保存するか選べたが
VB4からはテキストだけだった。
もしかしてVB2のソースじゃないか?
ttp://www.nms.ac.jp/nms/physics/kagawa/vb6abc/vc3200.htm

166 :デフォルトの名無しさん:2005/11/03(木) 21:35:52
>>156
実は圧縮してあるとか。。。

167 :デフォルトの名無しさん:2005/11/03(木) 22:27:49
156はつりだろ?
165,166見たいな事素で間違いえるヤシはいないって


168 :デフォルトの名無しさん:2005/11/03(木) 22:48:51
VB2ならVB2インスコしてテキスト形式でエクスポートしる。
VB2以外バイナリ形式のソースは読めない。
圧縮なら解凍したらオケ。

169 :デフォルトの名無しさん:2005/11/04(金) 11:37:20
VB6.0にて開発をしていますVB初心者です。
最小化ボタンの処理について伺いたいのですが
最小化ボタンを押したときウインドが画面左隅に最小化されてしまうんですが
タスク?に格納するにはどのようにすればいいのでしょうか?


170 :デフォルトの名無しさん:2005/11/04(金) 11:39:44
さらに質問すいません。
VBにてEXEからEXEを呼ぶことは
可能だと思いますが呼んだEXEが動いている間
呼出もとのEXEを表示できない(画面上)ように制御する
ことは可能ですか?


171 :デフォルトの名無しさん:2005/11/04(金) 12:04:03
> タスク?に格納するにはどのようにすればいいのでしょうか?
標準でタスクバーに格納されるはず
偶にそういう現象を見るが、変なコード書いたか環境のせいだろ
システムがバグった時とか、全てのアプリがタスクバーに格納不可になったりするしな

> ことは可能ですか?
可能です
やり方は勉強しましょう

172 :デフォルトの名無しさん:2005/11/04(金) 12:14:41
MDIにでもしてんじゃないの
フォームのタイプを変に弄ったとか

173 :デフォルトの名無しさん:2005/11/04(金) 12:23:55
回答ありがとうございます。
もう少し調べてみます・・・

174 :デフォルトの名無しさん:2005/11/04(金) 16:46:36
>>169
ShowInTaskbar が False になってるから

>>170
外部EXEのプロセス情報が知りたい場合は CreateProcess( ) でEXEを起動すると幸せになれます

ってか、分からなければ 分からなければなりに タイマーでEXE監視とか 単純な手段も思い浮かばないのか?
もっと柔軟にアルゴリズムを考えられるように頭を訓練しましょう。

175 :猫舌仮面:2005/11/04(金) 18:45:06
某理系板で質問したところ、この板に誘導されてしまい参上仕りました
以下のソースにより、擬似球体を描写しようとしているのですが
見えないはずの『向こう側の線』の判定をどのように扱えば分からず
困り果てております
『向こう側の線』を描写しない方法が分かればご教授下さい

↓ 拙ソース

176 :猫舌仮面:2005/11/04(金) 18:47:15
Public PI,DK As Double
Piblic R,K As Integer

Function LOC_X(V1 As Integer, V2 As Integer)As Integer
 Dim X,Y As Double
 X = V1 * 15 * PI / 180
 Y = V2 * 30 * PI / 180
 LOC_X = R + Sin(X) * Sin(Y) * R
End Function

Function LOC_Y(V1 As Integer, V2 As Integer)As Integer
 Dim X,Y As Double
 X = V1 * 15 * PI / 180
 Y = V2 * 30 * PI / 180
 DK= K * PI /180
 LOC_Y = R + Sin(X) * Cos(Y) * Sin(DK) * R - Cos(X) * Cos(DK) * R
End Function
'続きます ご勘弁


177 :猫舌仮面:2005/11/04(金) 18:48:27
Private Sub MAIN()
 Dim I,J As Integer
 R = 200 '球半径
 K = 20 '前傾角度
 PI= 3.14159265358979
 For I = 0 To 24
  For J = 0 to 6
   If (1) Then
    With ActiveSheet.Shapes
    .AddLine _
     LOC_X(I+0,J+0),LOC_Y(I+0,J+0), _
     LOC_X(I+0,J+1),LOC_Y(I+0,J+1)
    End With
    With ActiveSheet.Shapes
    .AddLine _
     LOC_X(I+0,J+0),LOC_Y(I+0,J+0), _
     LOC_X(I+1,J+0),LOC_Y(I+1,J+0)
    End With
   End If
  Next
 Next
End Sub

178 :デフォルトの名無しさん:2005/11/04(金) 18:55:19
>>175
ttp://www.tt.rim.or.jp/~rudyard/torii009.html

ここ参照

179 :デフォルトの名無しさん:2005/11/04(金) 18:59:22
>>175
Kの値をゼロで固定したら大丈夫なはず

180 :デフォルトの名無しさん:2005/11/04(金) 19:01:30
もしくわ『R=0』とか

181 :デフォルトの名無しさん:2005/11/04(金) 23:57:50
VisualBasic6.0の主だったコントロールの用途や、
プロパティの役割なんかをまとめたリファレンス的な本を探しているのですが
ネットで探してもこれ一冊しか見つけられませんでした
ttp://vbaclub.hp.infoseek.co.jp/book/BK9901.html

この本、もしくは他の本を知ってる方いますか?
いたら本の感想など伺いたいです

182 :デフォルトの名無しさん:2005/11/05(土) 00:22:18
VB6.0だとDataTableに相当するもの存在するのでしょうか?

183 :デフォルトの名無しさん:2005/11/05(土) 00:26:33
>>181
んなもん腐るほどあるが、
確認の出来ない情報を掲示板で聞くなよ
ここで嘘教えられたら損するのはおまえだぜ
技術的な話なら、確認もできるけどな

ってことで、goto 本屋

184 :デフォルトの名無しさん:2005/11/05(土) 00:37:01
MSFLXGRD.OCXとか
あのへんってインスコーラーに含めても大丈夫?

185 :デフォルトの名無しさん:2005/11/05(土) 01:32:04
>>184
入れていいものは明記されてる
それ以外は駄目

186 :デフォルトの名無しさん:2005/11/05(土) 01:36:13
>>184
えーとどこでしたっけ、そっけない.txtのファイルですよね確か?

187 :デフォルトの名無しさん:2005/11/05(土) 01:51:51

VBから「ネットの切断」が出来るようにしたいのですが
何か言い方法はありませんか?

AirHでダイヤルアップでプロバイダに接続しています。

188 :187:2005/11/05(土) 02:05:29

自己解決いたしました。

HangUp!!


189 :デフォルトの名無しさん:2005/11/05(土) 07:09:07
>>175
簡単じゃない。「陰線消去」でぐぐれ。
最近は自前で描画しないので、説明サイトも少なくなったけど。
>>176
>Dim X,Y As Double
この書き方だとXはVariantになる。

190 :デフォルトの名無しさん:2005/11/05(土) 07:48:01
ネタだと思って読み飛ばしていたけど
>>176-177を実行できるようにいじって実際に動かしてみたら軽く感動した
解析しようにもSinとかCosとか、ありすぎてうまく理解できない

191 :190:2005/11/05(土) 07:50:52
逆質問で悪いが>>177
>If(1)
って無駄じゃね?

192 :デフォルトの名無しさん:2005/11/05(土) 08:48:18
超絶無駄だな

193 :デフォルトの名無しさん:2005/11/05(土) 11:15:21
そこのIf文の条件式を変えて、質問内容の
>見えないはずの『向こう側の線』の判定
に使うんだと思ってた


194 :デフォルトの名無しさん:2005/11/05(土) 13:32:12
すいません、VB6でWMV等の動画に文字を挿入したり画像を挿入したりするツールを作成することってできるのでしょうか?

ソースでもあればと検索してみたのですがさっぱりでてこなかったもので・・


195 :デフォルトの名無しさん:2005/11/05(土) 14:42:54
出来ることは出来るけど、ソースそのものを探してるレベルじゃ無理

196 :デフォルトの名無しさん:2005/11/05(土) 17:02:36
こにゃにゃちは
VB6で作ったソフトをWEB公開しよーかなと製作中です
でも同人ソフトっぽいっていうかグレーゾーン?な感じなので
匿名でうpしたいです
実行ファイルに個人情報が入っちゃうことありますか?
パソコン所有者名、ログインユーザー名、VBのソフトの登録名、CPUのシリアルNo?
コメント文も残るのかな?
つうほうとかタイーホされないように対策とかあったら教えてください。

197 :デフォルトの名無しさん:2005/11/05(土) 17:05:54
>>196






























また釣りか

198 :196:2005/11/05(土) 17:17:25
>197 釣りじゃありませーん;;
やはり、いけない事を聞いてしまったのでしょうか

199 :デフォルトの名無しさん:2005/11/05(土) 17:25:57
ああ、何か変なもの作って配布したときに逮捕しやすいようにそういう情報を埋め込むようになってるんだよ。諦めれ。

200 :196:2005/11/05(土) 18:00:46
そうなのですかぁ。罠にかかるところでした。ありがとうございます。
でも、諦めたらそこで試合終了です
とりあえずテキストでソースうpにします。親切な人が実行ファイル再うp
してくれるだろうし。

201 :デフォルトの名無しさん:2005/11/05(土) 19:37:34
>>196
逮捕されるような内容は作るな
やるんなら仲間内でコッソリやれ
こんな人の多い掲示板で聞くな

ちなみに>>196はIPで住所抜けるって信じているタイプ

202 :デフォルトの名無しさん:2005/11/05(土) 19:47:45
警察から要請あれば抜けるだろ

203 :デフォルトの名無しさん:2005/11/06(日) 02:06:51
つうか、アメリカはIPアドレスから住所を割り出すための要所要所のサイト間のping値のデータベースを既に構築済なので国までは特定できる

204 :デフォルトの名無しさん:2005/11/06(日) 02:11:54
俺はアメリカ人だぜ!

205 :デフォルトの名無しさん:2005/11/06(日) 14:23:03
>>204は韓国人ニダ

206 :デフォルトの名無しさん:2005/11/06(日) 17:09:55
vbの初心者用の本読んでたら,

if drawflg then
picture1.line
endif

って文が出てきたけど,if文の条件式って,
drawflg=1 は省けるんですか?
省けるならどーゆー時に省けるんでしょうか?

207 :デフォルトの名無しさん:2005/11/06(日) 17:11:19
>>206
0か否か

208 :デフォルトの名無しさん:2005/11/06(日) 17:11:54
false → 0
true  → 0以外

209 :デフォルトの名無しさん:2005/11/06(日) 17:25:44
true = -1


210 :デフォルトの名無しさん:2005/11/06(日) 17:29:21
(条件式) and (真の場合の実行コード)
 や
(条件式) or (偽の場合の実行コード)

は使えますか?

211 :デフォルトの名無しさん:2005/11/06(日) 17:31:38
>>210
意味がわからない

212 :デフォルトの名無しさん:2005/11/06(日) 17:33:48
よく覚えてないが、VBは両方実行するからAndalsoとかそんな感じのやつ使えば出来た気がする。
なんかそんな感じの。

213 :212:2005/11/06(日) 17:35:12
調べてみたらVB.NETの方だった。
ごっちゃになってた。スマン

214 :デフォルトの名無しさん:2005/11/06(日) 17:37:22
>>211
>>210はショートカット演算子の事を言いたいんでしょ。
VBはショートカット演算子ではないね。

215 :デフォルトの名無しさん:2005/11/06(日) 17:38:01
糞コードの例

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
   If (MsgBox("終了しますか?", vbYesNo) = vbYes) _
           And (MsgBox("本当に終了しますか?", vbYesNo) = vbYes) Then
       Cancel = False
   Else
       Cancel = True
   End If
End Sub

216 :デフォルトの名無しさん:2005/11/06(日) 20:21:17
すみません。
VBでフォーム間の変数の値のやりとりは
標準モジュールでグローバル変数を宣言して
それを使用するしか方法はないんでしょうか?
よくグローバル変数は使うべきではないと
一般にプログラムのコーディングについて言われていますが、
VBでは結構使用されているような気がします。
みなさんはどうされていますか?
またスレ違いではありますが.NETではグローバル変数を
使用しないでフォーム間の値のやりとりができるのでしょうか?

217 :デフォルトの名無しさん:2005/11/06(日) 20:41:01
普通はアレだな


218 :デフォルトの名無しさん:2005/11/06(日) 20:59:11
ども今晩は。質問なんですが、テキストボックスのカーソルをiビームにしたんですけど、スクロールバーや、右クリックででる、メニューにもっていっても、iビームなんすよ(;´Д`)どしたらいんすかね。

219 :デフォルトの名無しさん:2005/11/06(日) 21:49:23
>>216
>VBでは結構使用されているような気がします。
プログラマの意識が足りないから。
グローバル変数を使いたい時は その変数を含むクラスを作成して
そのクラスを参照するようにする

例えば

アプリケーションクラス
 ┃
 ┣━ フォームコレクションクラス
 ┃   ┃
 ┃   ┣━ データ入力フォーム
 ┃   ┣━ データ印刷フォーム
 ┃   ┗━ データ登録フォーム
 ┃
 ┗━ グローバル宣言クラス

と言った構成で 設計したら時 データ入力フォームからグローバル変数を参照する時は

データ入力フォーム.フォームコレクションクラス.アプリケーションクラス.グローバル宣言クラス.変数

と言うふうにオブジェクト参照でできる用になる。この方法だとグローバル変数は1つも使わないでプログラムが組める。
グローバル変数をアプリケーションが持つデータとして扱う感じ。
まぁVBではあまりこんな風にやらないけどね。

220 :デフォルトの名無しさん:2005/11/06(日) 21:50:22
>>216
>使用しないでフォーム間の値のやりとりができるのでしょうか?
ない。あくまでも 組み方・設計。意識しない限りどんな言語使っても結果は同じ。

>フォーム間の値のやりとり
アプリケーションクラス
 ┃
 ┣━ フォームコレクションクラス
 ┃   ┃
 ┃   ┣━ データ入力フォーム
 ┃   ┣━ データ印刷フォーム
 ┃   ┣━ データ登録フォーム
 ┃   ┗━ フォーム間のデータやり取りクラス(コレクション階層に置くのは変か 勘弁してな)
 ┃
 ┗━ グローバル宣言クラス

俺だっからこうするかな…

221 :デフォルトの名無しさん:2005/11/06(日) 21:59:02
あまりにも無知すぎて唖然としてしまいましたとさ
しかも2連続w

222 :デフォルトの名無しさん:2005/11/06(日) 22:05:40
www

223 :デフォルトの名無しさん:2005/11/06(日) 22:08:28
>>219
正直、人に教えを垂れようって人間がこんなレベルじゃ。。
「グローバル宣言クラス」なんて絶対に必要ないし、
「フォームコレクションクラス 」こんなものも必要になるのはまず稀。
はっきり言って「策士策に溺れる」糞設計以外のなにものでもないね。

だいいち、糞設計は目を瞑るとしてこの質問者にそんなこと言って理解できるのかよ。
俺ならこう答えるね。

>>216
まずOOP的な考え方を勉強しましょう。
OOP的な考え方っていってもVBプログラマはコントロール操作するのに
意識せずに使っているのだから何も難しくない。

結論から言えば、他からアクセスしたい値はフォームのプロパティか
パブリックメンバにしましょう。
こういうビュー(フォーム)に直接プロパティを書いたりする設計は
よくないという人(言語マニアの学生さんに多い?)もいるが、よほど複雑な
アプリでもない限りこの方がむしろ直観的で簡単。

224 :デフォルトの名無しさん:2005/11/06(日) 22:09:41
なんでグローバル変数使おうとするのなんでなんで?


225 :206:2005/11/07(月) 00:11:03
if文の中の条件式が
boolean型の時ならなんとなく理解できますが、
integer型なのですけど・・・

226 :212:2005/11/07(月) 00:12:03
ヒント:文字列も数字も全て0と1で出来ている

227 :デフォルトの名無しさん:2005/11/07(月) 00:16:44
>>225
「0」か「0以外」かってのがそんなに難しいか?

228 :デフォルトの名無しさん:2005/11/07(月) 00:18:24
>>224
VB6のクラスはやや特種で、その中でもフォームオブジェクトはかなり特殊な位置にあるから
純粋にOOP風にしてしまうと余計にややこしくなる。
グローバル変数も計画的に使えば問題ない。正確には問題ない規模にプログラムを分割しておくことが大事だと思う。

229 :デフォルトの名無しさん:2005/11/07(月) 00:26:19
>>225
やーい、ばかばか

230 :デフォルトの名無しさん:2005/11/07(月) 00:39:16
>>228
また意味不明なことを言う。
VBのクラスが特殊だろうがなんだろうがグローバル変数なんてまず使わねえよ。
自分の理解不足や能力不足をVBのせいにしちゃダメだろ。

231 :デフォルトの名無しさん:2005/11/07(月) 00:53:54
>>225
Cだと論理型が無くて整数型のゼロと非ゼロで代用。Javaは論理型は整数型との混用は不可、しっかり区別している。
VBはその中間で論理型は別にあるが整数型と互換性がある、そんな言語仕様なのよ。

232 :デフォルトの名無しさん:2005/11/07(月) 06:34:08
>>230
純粋なオブジェクト指向というわけでないVBで、COMのためのクラスモジュールを無理にOO風に使うことや
共通モジュールとして正規に存在する機能を使わないことに意味があるか考えてみようというわけですよ。
OOの有用性はわかっているがそれなら.NETや他の言語を用いるべきで、
VB6はBASモジュールやグローバル変数を使う前提で旧来の構造化や変数のネーミングルールの範疇で
整然としたコーディングを目指すべきだと思う。
反論はあるだろうが流れと逆のことが言いたかったのですよ。

Form オブジェクトはNewなしで一つ目のインスタンスは自動生成されるわけだけど、必ずNewするぞという
ひとはどのくらいいるのかな。

233 :デフォルトの名無しさん:2005/11/07(月) 08:02:35
VB.NETでMODULEをサポートすることの良し悪しの議論はあったな。

234 :デフォルトの名無しさん:2005/11/07(月) 08:18:06
>>231
一応boolあるぜ?
BOOLじゃなくてboolな

どのみちメモリ上は数値だけどな

235 :デフォルトの名無しさん:2005/11/07(月) 08:18:43
>>232
俺いつもSub MainからスタートしてNewしてたぜ


236 :デフォルトの名無しさん:2005/11/07(月) 08:49:25
>>234
bool は C++から

>>235
俺はSub Main で Form1.Show 派

237 :デフォルトの名無しさん:2005/11/07(月) 08:53:40
純粋なオブジェクト指向ってなに?

238 :デフォルトの名無しさん:2005/11/07(月) 10:32:04
クラスベースは不純だな
値型も不純

239 :デフォルトの名無しさん:2005/11/07(月) 12:22:52
VB6(SP6)のフォーム上でflash.ocxを使ってswfファイルを再生しています。
この際、flash部分を印刷するにはどうすればいいのでしょうか?
また、どこを調べればよいのでしょうか?
ご存知の方、ご教授下さい。

240 :デフォルトの名無しさん:2005/11/07(月) 12:32:58
>>232
意味不明。書いてることが何一つグローバル変数を正当化する理由になってない。
だから自分が足らないのをVBのせいにするなって。

>共通モジュールとして正規に存在する機能を使わないことに意味があるか考えてみようというわけですよ。
それを言うなら単に過去の資産との互換性のためやOOPが理解できないPGの
サルベージの為に残されているレガシー機能をわざわ使う意味はあるのか、でしょ。
答えは明白。そんなものは全くない。




241 :デフォルトの名無しさん:2005/11/07(月) 13:00:14
で、グローバル変数使わないようにするにはどうしたらいいの?

242 :デフォルトの名無しさん:2005/11/07(月) 13:20:09
フォームのインスタンスが2つ以上必要になったとき、グローバル変数でデータのやり取りしているやつは
糞設計にならざるをえないから、普通にフォームにPublicメンバ宣言したほうがいいよね。
グローバル変数は無いほうがいいけど、使ってもいいか悪いかは語るのもマンドクセ
# 気軽に使ってもいいと言う人は再入等に意識を全く回さなかったりするからあまり関わりたくないね

VB6でOOPすると管理が煩雑になるから旧世代的な手法を使いたいっていうのは理解できる。
この辺りは言語設計が糞というより、VB6のIDEが悪いのだけれど。
# ActiveXで分割して管理するというのもできるけど吐き気がしますわ

>>241
フォーム間のデータのやり取りなら、Public変数かイニシャライザでも定義すればよろし。
アプリケーション全体に及ぶ話なら知らん。

243 :デフォルトの名無しさん:2005/11/07(月) 13:27:05
田のコンポーネント名教えろや
あれだ、クリックすると開いていろんな項目でてくるやつな

244 :デフォルトの名無しさん:2005/11/07(月) 13:31:33
>>242
ただのpublic変数は危険だな

>>243
田にコンポーネント名なんてねぇよ

245 :243:2005/11/07(月) 13:37:33
>>244
出嶋?
クリックしたら、田が日になるやつだぜ?
何とかする方法ねぇの?


246 :デフォルトの名無しさん:2005/11/07(月) 13:55:50
アレはダメ、コレは危険と批判するだけで、その理由や正しい手法は提示できない奴が多いな
まあ、自分が無知だから突っ込んだ話を出せば自分が非難されるだけとわかってるのかな?

247 :デフォルトの名無しさん:2005/11/07(月) 14:10:11
>>245
それを含むコンポーネントなら知ってるがな

248 :デフォルトの名無しさん:2005/11/07(月) 14:10:50
まぁそんなに自虐するなよ

249 :243:2005/11/07(月) 14:18:02
>>247
詳しく頼む!!

250 :デフォルトの名無しさん:2005/11/07(月) 14:37:41
TreeViewじゃないの?それ

251 :デフォルトの名無しさん:2005/11/07(月) 14:41:13
まさか、それがわからなかったってことは無いだろ
マじゃなくたって大抵名前は知ってるし

252 :デフォルトの名無しさん:2005/11/07(月) 15:43:53
>>246
受け渡し用のデータオブジェクトを使う方法ならこんなとこか。
VBにはレガシーな機能が満載だから、存在する機能をなぜ使ったらいけないかを説明するのには苦労する。
レガシーな機能があることがVBの売りでもあるからなおさら。
■呼び出し側のフォーム
Dim DataObj As New 受け渡し用データクラス
Dim formPopup As New フォーム
DataObj.Data1 = 渡し
formPopup.SetData DataObj
formPopup.Show vbModal
もどり = DataObj.Data1
■呼び出される側のフォーム
Dim SaveDataObj As 受け渡し用データクラス
Public Sub SetData(ByRef DataObj As 受け渡し用データクラス)
Set SaveDataObj = DataObj
受け取り = SaveDataObj.Data1
End Sub
SaveDataObj.Data1 = 戻し

253 :デフォルトの名無しさん:2005/11/07(月) 15:51:43
┐(゚〜゚)┌

254 :141:2005/11/07(月) 15:57:03
142さん
ありがとうございました。

255 :デフォルトの名無しさん:2005/11/07(月) 19:06:30
フォームにpublic変数置いたら、
それはグローバル変数だ。と思っている奴がいそうな気がする。

VBのクラスが他の言語のクラスに比べて特殊だろうが、
クラスにプロパティを定義できる以上、
「クラスが特殊だからグローバルを使う」なんて結論にはならない。

256 :デフォルトの名無しさん:2005/11/07(月) 19:28:43
PowerBuilderって簡単ですか?
VB→Delphi→PBと来たのですが不安です。

257 :デフォルトの名無しさん:2005/11/07(月) 19:41:28
test.exeと言うexeと、test.exe.manifestと言うファイルを作って、XPで実行すると
フレームに囲まれたラジオボタン(オプションボタン)が真っ黒に描画されてしまいます。
他のコントロールにはちゃんとテーマが適応されています。

回避策があれば、教えて下さい。

258 :デフォルトの名無しさん:2005/11/07(月) 19:44:22
話はそれるが、フォーム間のデータのやり取りで直接相手側のプロパティや公開メンバーにアクセスすると
フォーム間の依存性が固定されてしまう。>>252の用にデータオブジェクトを別に準備するのがいいと思うが
データオブジェクトの代わりに呼び出し元のフォームの参照を渡すのも手だろうか?
VBにImplementというインターフェイスもどきのステートメントがあったと思うがこれは使えるのかな。

259 :デフォルトの名無しさん:2005/11/07(月) 19:53:11
>>257
そもそもVB6はビジュアルスタイルに対応してない
回避策はフレームを使わないことだ

260 :デフォルトの名無しさん:2005/11/07(月) 20:58:26
>>258
フォームはクラスだよ? だから...

クラス間のデータのやり取りで直接相手側のプロパティや公開メンバーにアクセスすると
クラス間の依存性が固定されてしまう。

↑自分で言っていて何か変だと思わない?
これって全然問題ないよね。

フォーム内部のテキストボックスとかを外部から
直接アクセスするのはなんか気持ち悪いけどさ。

261 :デフォルトの名無しさん:2005/11/07(月) 21:02:03
フォームはクラスだとコード見ただけで実感できるのは.NETからだけどな

262 :デフォルトの名無しさん:2005/11/07(月) 21:55:19
実際はそんな違わないけどね、.NETのWindows Formと。
そりゃ細かい点はいろいろ違うが、OOP的に大きな違いといえるのは
引数付きのコンストラクタ作れることぐらいでしょ。

全然違うとかいって騒いでる人はVB6でもOOPしてなかった人なんじゃないの。

263 :216:2005/11/07(月) 22:35:47
返事が遅くなりましてすみません。
色々な見解があるみたいですね。
>>252さんのようにクラスを作成するか、
>>223さんのようにフォームにパブリックメンバを
宣言して、アクセスするかにしようかなと思います。
自分にも理解できるやり方ですので。

ところで、このようなVBのグロバール変数をしないで
コーディングするやり方を書いたホームページや
書籍はありますでしょうか?
VBの本やホームページでここらへんについて詳しく書いた物を読んだ
ことないのですが…

264 :デフォルトの名無しさん:2005/11/07(月) 23:35:11
つーか基本解説はMSDNにあったと思うけど
ないのか?w

265 :デフォルトの名無しさん:2005/11/08(火) 00:16:26
VBのクラスは特殊って言うけど 何が特殊なの?
暗黙でインスタンスが生成されるフォームが特殊なのは分かるが…
継承出来ないから特殊なの?

VBのクラスはオートメーション・COMを使用+作成(IDispatch派生)の為に用意されているにしても
一つクラスから複数のインスタンスを生成できるオブジェクト指向の仕様は
取りあえずクリアしているんだからクラスはもっと積極的に活用するべきだと思う

チャンとやればデータを受け渡す為にグローバル変数なんて一切必要ないでしょ

VBでOOPするくらいなら他の言語使えってヤツほどオブジェクト指向勉強したほうがいいと思うよ
(こーゆーヤツは他言語でも変なの書くよ)
継承=オブジェクト指向 なんて勘違いしてるヤツいるだろ

よく使う ListView TreeView TabStrip なんてオブジェクト指向そのまんまだよ
用意されてるモジュールだけオブジェクト指向でなんて何か変だよ お兄ちゃん

266 :デフォルトの名無しさん:2005/11/08(火) 00:37:37
今 
日付、時間、名前という3つの要素をもつType型のデータ型を作成しました。
これらのデータはユーザからランダムに入力されます。
最終的に日付と時間の昇順でソートしたいのですがVB6だとSORTのメソッドは
自作しないとだめなのでしょうか?継承とかして作るのはムリ?

267 :デフォルトの名無しさん:2005/11/08(火) 00:50:16
そもそもCOM自体OOPじゃないのか?

268 :デフォルトの名無しさん:2005/11/08(火) 01:30:34
愚痴ばっかりだなこのスレ・・

269 :デフォルトの名無しさん:2005/11/08(火) 02:56:13
>>267
COMのオブジェクトモデルには実体継承が無い。
分散用のオブジェクトモデルで、あるのはインターフェイスのみ。このため包含と委譲が基本となる。
今はインターフェイス万歳が時流だからもしかしたらひょっとしたら時代を先取りしていたのかも知れない。

270 :デフォルトの名無しさん:2005/11/08(火) 02:58:39
>>260
>フォームはクラスだよ? だから...
>>252に対して、こういうことがしたいわけです。
■呼び出し側のフォーム
Impliments 受け渡し用データクラス
Dim formPopup As New フォーム
formPopup.SetData Me <−自分への参照が渡せる。
formPopup.Show vbModal

>これって全然問題ないよね。
ごもっとも言葉足らずでした。言いたかったのは呼び出される側のフォームから
呼び出し側のフォームの公開メンバーへ直接アクセスすることが問題で、
呼び出し側が変わっても対応可能なようなコールバックの手段を準備しましょうということです。

271 :デフォルトの名無しさん:2005/11/08(火) 08:49:02
>>265
フォームが暗黙でインスタンス作成されるんじゃなくて、
スタートアップに指定されたフォーム「のみ」が暗黙でインスタンス作成されるんだよ
フォーム自体が特殊なんじゃない

272 :デフォルトの名無しさん:2005/11/08(火) 12:10:24
>>271
Dim MyForm As New Form1 : MyForm.Show
でなくて
Form1.Show
でインスタンス作成されることを言ってるのだと思う。

273 :デフォルトの名無しさん:2005/11/08(火) 12:18:41
VB6なんて賞味期限が過ぎてるのだからもうメンテナンス程度の開発しかやってないだろう。
そうなるとメンテ対象のプログラムがOOで作られてればそれで
そうでなければOOなしで作ればいい。
・・・とわざと煽ってみる。

274 :デフォルトの名無しさん:2005/11/08(火) 14:01:21
タブの背景の色を変更する方法教えていただけませんか?
デフォは灰色ですよね。
白にしたいと思っているんですが
どなたか、お願いします。

275 :デフォルトの名無しさん:2005/11/08(火) 15:01:59
>>274
オーナードロー。TCS_OWNERDRAWFIXED とか WM_DRAWITEM でググれ。

276 :デフォルトの名無しさん:2005/11/08(火) 15:14:23
VB6 SP6です
CSVファイルを取り込むプログラムを作っています
CSVはカンマで区切られ、全項目(数値項目も)が""で囲まれています
""内にカンマや"がある場合を考慮した場合、
一項目づつ取得するしかないのでしょうか?
効率のよい方法とかありましたら教えてください


277 :デフォルトの名無しさん:2005/11/08(火) 15:34:06
> 一項目づつ取得するしかないのでしょうか?
はい

つーかCSVの仕様って"や,使っちゃいけないんだよな
なのに何故かそれらを入れたCSVもどきを吐き出すソフトが結構ある

"や,を使いたい場合はTSV使えよ

278 :デフォルトの名無しさん:2005/11/08(火) 16:20:14
>>276
ADOでCSVを読み込む。
""内の"は確認してないけど、""内にカンマや改行が入っていてもいける。

279 :デフォルトの名無しさん:2005/11/08(火) 17:42:58
""内は純粋な文字列だからな

280 :デフォルトの名無しさん:2005/11/08(火) 18:37:04
>>277
CSVの正式な仕様ってのは存在しないよ。
データをカンマで区切っていればそれはCSV。

だから"が入っていてもいい。
カンマは区切り記号だから、そのままではデータとして入れられない。
その場合は"で囲めばOKってのもあるが、もちろん正式な仕様として決まっているわけじゃない。


281 :デフォルトの名無しさん:2005/11/08(火) 18:52:39
>>280
さすがVBスレって感じだなw

282 :デフォルトの名無しさん:2005/11/08(火) 23:06:06
>>281
そんな負け犬の遠吠えみたいな発言するやつはVB使いじゃないな。
なにか反論したいのなら、ソースでももってこい。
たとえば http://ja.wikipedia.org/wiki/CSV とかな。

もっとも、俺が言ったことは正しいから、どっちみち何の反論もできないだろうが。
> カンマ区切りテキストには、正式な仕様書が無いため、
> ExcelのCSV出力がデファクトスタンダードとなる事が多い。
> たとえば、項目中にカンマを入れるにはどうすればいいかという問題に対しては、
> 項目をダブルクォート(")で括り、ダブルクォート自体はどうするかというと、
> 二つ重ねることで対処するという。もっとも、全てのソフトが対応しているというわけではない。

毎度のことだが、VBを馬鹿にするやつは、本当に馬鹿だな。さてはて何言語厨なのやら。


283 :デフォルトの名無しさん:2005/11/08(火) 23:29:02

豪語してるわりには、ソースが
「素人共が自由に編集できる百科事典」
ってのが素敵だとは思いませんか?
しかもそれを得意げに引用しちゃったりしてw


284 :デフォルトの名無しさん:2005/11/08(火) 23:37:53
>>283
では素人ではない貴方様に是非書き直していただきとう存じます。

285 :デフォルトの名無しさん:2005/11/08(火) 23:38:30
(´-`).。oO( ウィキペディアをソースとして挙げるやつが居るとは・・・・・ )

286 :デフォルトの名無しさん:2005/11/08(火) 23:44:24
どうせ自分で書いたんだろw

287 :デフォルトの名無しさん:2005/11/08(火) 23:46:17
なるほど

288 :デフォルトの名無しさん:2005/11/08(火) 23:51:09
うっわ。wikipediaにまで喧嘩売ってる。
しかも自分は何一つ反論できていないし。
馬鹿アンチって何に対してもアンチなんだね。
ばればれの自演も恥ずかしい。

289 :デフォルトの名無しさん:2005/11/08(火) 23:52:02
クダラネ。
オープンな百科事典だから信用できないっていう
後進国的・北朝鮮的なご公儀マンセー的センスもどうかと思うが、
傍証の情報源が怪しかろうがなんだろうが>>282が正しい。

290 :デフォルトの名無しさん:2005/11/08(火) 23:52:36

> この「カンマ区切りテキスト」は、コンピュータに関連した書きかけ項目です。
> この記事を加筆・訂正などして下さる協力者を求めています。


291 :デフォルトの名無しさん:2005/11/08(火) 23:53:30
自分で自分が正しいと思うのは当然だろ

292 :デフォルトの名無しさん:2005/11/08(火) 23:53:46
ほら。wikipediaに文句をつけたやつ。
早く修正しろ!w

293 :デフォルトの名無しさん:2005/11/08(火) 23:59:56
Wikipedia自体に文句をつけたやつなんて一人も居ないようだが。
現実として間違ったことを書くことも出来る辞典だからソースにはならないって事実だけで。
あそこは調べものの足がかりには便利だけど、鵜呑みには出来ないものだからな

294 :デフォルトの名無しさん:2005/11/09(水) 00:02:28
>>293
馬鹿じゃないの?
ソース[source]はもともと単に源という意味。
そういうセンスが後進国的なんだよw
こういう馬鹿が朝日新聞に煽られて無謀な戦争(略

295 :デフォルトの名無しさん:2005/11/09(水) 00:02:30
ソースにならないなら、もっと信頼できるソースを出して反論すればいいだけの話。

それをせずに、間違っていることもある(そんなのどの辞書にもあてはまる)というだけで、
反論した気になっている厨さん。こんにちはw

296 :デフォルトの名無しさん:2005/11/09(水) 00:03:21
ソースにウィキペディアを挙げちゃったことを後悔しながら
自己フォローに必死な方が居ますね

297 :デフォルトの名無しさん:2005/11/09(水) 00:04:57
ネットウヨキタコレw

298 :デフォルトの名無しさん:2005/11/09(水) 00:05:25
でさ、結論はどうなの?
この流れを読むと>>282が正しいという結論なんだが、
それでいいんだよね。

299 :デフォルトの名無しさん:2005/11/09(水) 00:06:12
可哀相な子たち
もう暫く踊ってく?

|> ・はい
  ・いいえ

300 :デフォルトの名無しさん:2005/11/09(水) 00:06:17
良いと思う。>>282の人格には問題あるが。

301 :デフォルトの名無しさん:2005/11/09(水) 00:11:09
VBスレには、馬鹿なVB叩きがよくよってくる。

その実態はちょっと他の言語を使って初心者脱出したと
思っている初心者である。

煽っている相手をVBしか使えないと勘違いしているが、
そのVBもほかの言語も使いこなしている人たちなので
逆に追い詰められ恥をかく。

今回のやつ(CSVに正式な仕様があるとか思っている人)もその一人だね。

302 :デフォルトの名無しさん:2005/11/09(水) 00:12:03
結局wikipediaただしいじゃんかw

303 :デフォルトの名無しさん:2005/11/09(水) 00:13:57
http://www.wotsit.org/download.asp?f=CSV

304 :デフォルトの名無しさん:2005/11/09(水) 00:15:21
頑張ってWikipediaが正しいと言うことに仕立て上げましょうね

305 :デフォルトの名無しさん:2005/11/09(水) 00:21:44
静まったな
解読中か(・∀・)ニヤニヤ

306 :デフォルトの名無しさん:2005/11/09(水) 00:23:44
>>303
その一個人が書いた資料がどうかしたの?
CSVはかなり昔からあるのに、Copyright 2001って書いてあるから
信頼性がない。

>>304
間違っているのなら修正するのがwikipedia
ほら。さっさと修正して来いw

307 :デフォルトの名無しさん:2005/11/09(水) 00:27:56
かなり苦しいな

308 :デフォルトの名無しさん:2005/11/09(水) 00:28:24
正式な資料ってのはANSIとかISOとか
そういう機関が発行しているものを言うんだよ。

変なソース持ってきて後悔して、いま必死に
自己フォローの手段を考えているころでしょう。

309 :デフォルトの名無しさん:2005/11/09(水) 00:30:57
もう自己フォローなんて考えるな
Wikipediaを挙げた時点でおまえは終わった

310 :デフォルトの名無しさん:2005/11/09(水) 00:31:03
> カンマ区切りテキストには、正式な仕様書が無いため、
これは事実だからソースの挙げようがない。

311 :デフォルトの名無しさん:2005/11/09(水) 00:31:58
>>303は必死に探したんだなぁと思う。
このまま放置されたら、かわいそうだから、
このドキュメントの信頼性でも議論しようよw

312 :デフォルトの名無しさん:2005/11/09(水) 00:33:21
>>309
wikipediaは正しい情報もたくさんあるんだが?
間違いだというのなら、それを今修正するべきだし、
修正できないのなら、それは正しいと思われても仕方がない。

313 :デフォルトの名無しさん:2005/11/09(水) 00:35:46
> 正しい情報もたくさんある
まあ、オープンな百科事典ならその程度のレベルでもいいよね
普通は「正しい情報もたくさんある」なんてレベルじゃ使えないけど

314 :デフォルトの名無しさん:2005/11/09(水) 00:42:40
頭が硬いな。
wikipediaは誰でも修正できるために、従来の辞典とは性質が違う。
こうして間違いだと言い張る人は、信頼性があるソースをもとに
修正できる。

間違いを気づかれない情報ならまだしも、今ここで気づかれているのに
今ここで修正されないのなら、その情報は正しいものといっても問題ない。

実際正しいんだがなw

ちなみに、英語版のwikipediaにも正式なドキュメントはないって書いてあったよ

315 :デフォルトの名無しさん:2005/11/09(水) 00:44:08
> 実際正しいんだがなw


316 :デフォルトの名無しさん:2005/11/09(水) 00:45:37
wikipediaを修正するのは国民の義務なのですwwwwwwwwwwwwwwwwwwwww

317 :デフォルトの名無しさん:2005/11/09(水) 00:47:17
>>314
そういう発想が先進国的な常識なんだけどね。
オープンであるがゆえに信頼可能っていうね。
それを田舎者はご公儀でない馬の骨の書いた物など信頼に足らぬと来る。

昔タモリが名古屋のことを大いなる田舎って呼んだけど、
本当は日本全体が名古屋なんだよな。

318 :デフォルトの名無しさん:2005/11/09(水) 00:47:21
誰も国民の義務だといってないと思うが?
疑いを持った人が修正すべきだし、
それをしなければ本当だと思われても仕方ないという話だと思うが?

319 :デフォルトの名無しさん:2005/11/09(水) 00:48:30
すみません。クリレポについての質問なのですが・・・。

クリレポ10で「SQLの表示」で表示されるSQLの修正はできないのでしょうか?
クリレポ9とかだとできましたよね?

現在VB6+クリレポ9で作成したアプリをVB6+クリレポ10対応させているのですが
上記の処理ができず、どうにもこうにも困っています。

できるのかどうか、もし出来るようでしたら
方法も教えていただけないでしょうか?

教えてちゃんですみませんが、
どうぞよろしくお願いします。


320 :デフォルトの名無しさん:2005/11/09(水) 00:49:53
酒が切れた。
折角踊りを見ながら楽しく飲んでたのに。

321 :デフォルトの名無しさん:2005/11/09(水) 00:52:44
酒のせいにして逃げたかw

322 :デフォルトの名無しさん:2005/11/09(水) 00:55:55

とりあえず両者に対してひとつだけ言っておく。

Wikipediaが正しいと言うなら>>303も正しいと言うに足るものだ。
>>303が正しいと言うならWikipediaも正しいと言うに足るものだ。
Wikipediaが信頼性に劣る言うなら>>303も信頼できないものだ。
>>303が信頼性に劣る言うならWikipediaも信頼できないものだ。

この二つの信頼性は高いか低いかは別として、どちらが上と言えるものではない。

漏れはどっちにも肩入れしないけどね。

323 :デフォルトの名無しさん:2005/11/09(水) 00:58:08
人格批判されている>>282が必死にwikipediaの信頼性に論点をすり替えようとしている。
反論してる香具師らも>>282きんもー☆とだけ書けば良いんだよ。どうせCSVの規格なんかに興味ないんだろ?

324 :デフォルトの名無しさん:2005/11/09(水) 00:58:12
別に俺は逃げないよ。逃げる必要もないし。
踊ってくれるなら見ていくし、踊ってくれないなら寝る。

325 :デフォルトの名無しさん:2005/11/09(水) 01:03:16

>>282きんもー☆





と書くとまた自作自演扱いかな

326 :デフォルトの名無しさん:2005/11/09(水) 02:42:57
VBの話をしろよ
CSVについて語りたいならVIPにでも逝け

327 :デフォルトの名無しさん:2005/11/09(水) 07:21:23
>別に俺は逃げないよ。逃げる必要もないし。
>踊ってくれるなら見ていくし、踊ってくれないなら寝る。

きもっ

328 :デフォルトの名無しさん:2005/11/09(水) 09:39:23
で、ADO使えばCSVで楽できるの?

329 :デフォルトの名無しさん:2005/11/09(水) 11:13:07
>>328
ADOで対応している形式のCSVファイルの場合はね

330 :デフォルトの名無しさん:2005/11/09(水) 20:02:00
ShowInTaskbarをTrueにしているのに、フォーム実行してもタスクバーに現れないのは、
どんな理由が考えられますか?

331 :デフォルトの名無しさん:2005/11/09(水) 20:08:59
フォームのスタイル

332 :330:2005/11/09(水) 20:13:23
>>331
BorderStyleでしょうか?
0〜5全て試してみましたが、ダメでした・・

333 :デフォルトの名無しさん:2005/11/09(水) 22:40:57
>>330
モーダル表示にすると ShowInTaskbar に True してもタスクバーに表示されない
Sub Main( )で フォームをモーダル表してるか見てみ

334 :デフォルトの名無しさん:2005/11/09(水) 23:09:47
初歩的なことかも知れませんが、ググっても解らないので教えてください
宣言セクションで変数を宣言する場合
Private hoge
Dim hoge
の違いって何なんですか?
もし違いが無いとしたらどちらを使うのが正しいのですか?
ググってもPublicとPrivateの違いは腐るほど解説があるけどこれは見つからないです

335 :デフォルトの名無しさん:2005/11/09(水) 23:13:12
DimはPublic

336 :334:2005/11/09(水) 23:35:03
>>335
Public aPublic
Private aPrivate
Dim aDim
と宣言してみると、外部からはaPublicしか参照できませんでした
なので少なくとも「DimはPublic」というのは間違いなようですが


337 :デフォルトの名無しさん:2005/11/09(水) 23:38:54
6.0の話じゃないが、とりあえずVB.NETになると、DimにPublicかPrivateの指定をひっつけて宣言するな

338 :デフォルトの名無しさん:2005/11/09(水) 23:45:48
MSDNに書いてあることだが、

Dim:変数を宣言し、メモリ領域を割り当てます。
Private:プライベート変数を宣言し、メモリ領域を割り当てます。モジュール レベルで使用します。
Public:パブリック変数を宣言し、メモリ領域を割り当てます。モジュール レベルで使用します。

恐らく、PrivateとPublicはモジュールレベル、Dimはプロシージャレベルで使うという考えなのだと思う
昨日的にどっちかでしかつかえないような規制は無いけどな

339 :334:2005/11/09(水) 23:46:23
すみません、VB6以前専用スレなのでバージョン書かなかったですがVB6の話です

340 :デフォルトの名無しさん:2005/11/09(水) 23:53:01
マイクロソフトのムカつくところは、
VB.NET発売と同時にVB6を切り捨てたところだよな。

いちおー、今でもVB6で開発運用されているところはたくさんあるわけだから、
VB.NETにVB6をつけるべきだった。

341 :デフォルトの名無しさん:2005/11/09(水) 23:57:17
そもそも根幹が違うんだから仕方ないな

342 :334:2005/11/10(木) 00:00:13
>>338
MSDNは読みましたし、他でも大抵同じような解説がされてますが、
>>334で書いたとおり宣言セクションでのPrivateとDimの扱いの違いを解説してるところが見つからないのです

モジュールレベルの宣言ではPrivateとDimに違いは無いがPrivateを使うべきということなのでしょうか?
自分の持ってるVB6の本では、一方は一律してPrivateでの宣言しか無く、
もう一方ではモジュールレベル変数もDimで宣言してあり、注釈としてPrivateを使っての宣言も出来ると書いてあります
両者とも違いについては触れてませんし、同じものだとも書いてません

343 :デフォルトの名無しさん:2005/11/10(木) 00:06:26
最初の行の認識でいいと思うぞ
まずそもそも、モジュールレベルの変数は全て、PublicかPrivateの外部からのアクセスに対する設定が必要なのだから
Publicに対するにPrivate

あとその注釈はおかしいな
Privateがまるでオマケのように聞こえる

344 :デフォルトの名無しさん:2005/11/10(木) 00:25:12
>両者とも違いについては触れてませんし、同じものだとも書いてません
多分その本のレベルがソレ程度なんだよ。
その本 入門書?
「モジュール内での Private と Dim は機能が同じなんだから 初心者にはその違いを詳しく解説する必要ない」
とかじゃない?
本に書いてないからって あまり気にしない方がいいよ

345 :デフォルトの名無しさん:2005/11/10(木) 00:34:49
標準モジュールのDimはPublic、フォームやクラスのモジュールレベルのDimはPrivate
Dimはモジュールの種類ごとの標準の動作をするということのようです。
C++のclassが標準Privateでstructが標準publicなのと似ている感じです。

346 :デフォルトの名無しさん:2005/11/10(木) 01:26:48
Dimの宣言場所でスコープが違うのをより明示的にしたのがPrivateとかのキーワードだろが
MSDNになかったか?

347 :デフォルトの名無しさん:2005/11/10(木) 08:25:44
ねぇよ

348 :デフォルトの名無しさん:2005/11/10(木) 11:06:14
>>340
あの、そびえたつ糞のような仕様は
もっと早く切り捨てるべきだった。

349 :デフォルトの名無しさん:2005/11/10(木) 11:22:38
教えてください。

hp basicでは↓VB6.0ではこの計算する方法ありますか?

10 PRINT EXP(CMPLX(0,-1))
20 END

350 :デフォルトの名無しさん:2005/11/10(木) 11:34:13
hp basic知らんし

351 :デフォルトの名無しさん:2005/11/10(木) 11:53:05
その計算がどういうものかを書けば誰か答えてくれるかもしれんな

352 :デフォルトの名無しさん:2005/11/10(木) 13:03:56
>>349
e^(-i) を求めるものだとしたら
VB標準では高度な数学関数がないから無理
自作するか、↓を使うとか
VBで複素数演算DLL
ttp://www.vector.co.jp/soft/win95/prog/se115041.html

353 :デフォルトの名無しさん:2005/11/10(木) 14:15:35
>>351
352さんのとおりです。

>>352
やはり、その方法しかないようですね。
自作する能力はないけど、買うのはなー
いづれにしてもありがとうございました。

354 :デフォルトの名無しさん:2005/11/10(木) 14:35:35
いづれ→×
いずれ→○

355 :352:2005/11/10(木) 14:45:19
>>349
とりあえずこの答えだけを求めたいなら
e^(iθ)=cosθ+isinθ(オイラーの公式)
より
e^(-i)=cos(-1)+isin(-1)

cos(-1), sin(-1)はVBでも計算できる。
汎用性を求めたいなら >>352

p.s.
google に 数式 e^(-i) を入れて「検索」で計算できる

356 :デフォルトの名無しさん:2005/11/10(木) 15:42:31
355さん
ありがとうございました。
googleにそんな機能があるとは・・・


あっ・・354さん   も
ありがトン。

357 :デフォルトの名無しさん:2005/11/10(木) 16:05:23
質問があります。

海外サイトのネット通販したいんですが、決済するところで下記のようなエラーメッセージが
でます。ぐぐって調べたのですが
「adNumeric フィールドを変換するために、 CDbl または CInt 関数を使います。」
とありましたが、CDbl,CIntの使い方が分かりません。ご教授下さい。

Error Type:
Microsoft VBScript runtime (0x800A000D)
Type mismatch: 'rs'
/eshop/cartlib/GetCst.asp, line 34

因みに↓に原因や解決方が書いてありましたが・・・です・・・・orz
ttp://support.microsoft.com/default.aspx?scid=kb;ja;306916

宜しくお願いします。

358 :デフォルトの名無しさん:2005/11/10(木) 16:08:55
お帰りください

359 :デフォルトの名無しさん:2005/11/10(木) 16:57:55
>>357
無理です。
諦めましょう。

360 :デフォルトの名無しさん:2005/11/10(木) 17:05:51
>>357
どう見ても精子です。
ありがとうございました。

361 :デフォルトの名無しさん:2005/11/10(木) 17:47:15
>>357
コントロールパネルの地域設定をU.S.に設定してダメなら諦める。

362 :デフォルトの名無しさん:2005/11/10(木) 19:16:51
もともとDimは配列を宣言するための(Dimension)ステートメントで、
QuickBASICから普通の変数宣言にも使われるようになった。
VB2では、まだPrivateとPublicは無く、宣言セクションにはDimとGlobalを
書いた。宣言セクションのDimがモジュールレベルスコープ(後のPrivate)だった。
(フォームモジュールの宣言セクションにはDimしか書けなかった)
VB4でPrivateとPublicが導入されて、Globalと、宣言セクションでのDimは
古くなったが、互換性を考慮して、それぞれPublicとPrivateの意味で
残されている。
新参のプログラマーに宣言セクションでのDimを教えるのは推奨されない。


363 :デフォルトの名無しさん:2005/11/10(木) 19:49:22
ほー

364 :デフォルトの名無しさん:2005/11/10(木) 20:42:47
VBからPL/SQLのFUNCTIONを呼び出す方法を教えてください
社員コードを渡すと社員名を返してくれる
PL/SQLのFUNCTIONがあります
VBでこのFUNCTIONを実行し、社員名を受け取るのはどうすればいいですか


365 :デフォルトの名無しさん:2005/11/10(木) 20:46:16
PL/SQL知らんし

366 :デフォルトの名無しさん:2005/11/10(木) 20:48:22
>>364
ttp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_s28.htm

367 :デフォルトの名無しさん:2005/11/10(木) 21:26:51
>新参のプログラマーに
おいおいw
それを言うならVBやること自体(w

368 :デフォルトの名無しさん:2005/11/10(木) 21:30:09
>>367
ウザイから消えてね。

369 :357:2005/11/10(木) 21:44:08
>>359-361
レスさんくすです。
地域設定をアメリカにしてみましたが駄目でした。
諦めます。ありがとうございまいした。

370 :デフォルトの名無しさん:2005/11/10(木) 21:46:54
>>368
なんだかな。
こういう奴って自分に自信がないから、誰かが自分を否定しないかいつもビクビクしてるのかな。

企業の上司でも学校の先生でもいいけど、
新参者に今からVB教えたりしないだろ。少しでも良心があるなら。
まともな神経してれば、「新参者に〜」なんてセリフはギャグにしか聞こえん。

371 :デフォルトの名無しさん:2005/11/10(木) 21:48:25
ほーら。やっぱりウザイ。最初っからわかっていたよ。

372 :デフォルトの名無しさん:2005/11/10(木) 21:51:27
プログラミングの勉強が趣味のアマチュアじゃあるまいし、
VBの仕事はまだあるっちゅうの。
今使うのに、将来使わないからやらないなんて言っていたらクビになるぞ。

373 :デフォルトの名無しさん:2005/11/10(木) 21:51:41
でも自分のウザさには気づけないんだな

374 :デフォルトの名無しさん:2005/11/10(木) 21:59:53
>>372
まあ「その人」を使い捨てにするつもりならそれでもいいんじゃないの。
それ以前に機会費用って概念がない甘いお人のようが気がするけどね。

375 :デフォルトの名無しさん:2005/11/10(木) 22:04:51
スレ違いの話をいつまでも続ける莫迦が
最もウザいわけだが。

376 :デフォルトの名無しさん:2005/11/10(木) 22:06:23
VBを教えると使い捨てになるという理由がわからん。
お前はVB"だけ"を教えるとでも思っているのか。

今VBで作られている物を、誰が保守するんだと。
全部VB.NET作り変えろとでも?
今VB知っている人がいつまでも保守しろと?

言語を勉強のための物としか発想がない、
実践を知らない学生が言いそうなこった。

377 :デフォルトの名無しさん:2005/11/10(木) 22:09:30
>>370
> 新参者に今からVB教えたりしないだろ。
今VBを使っている所(沢山ある。特に保守は。)なら教える。

ものすっごーく当たり前のことだと思うが?


378 :デフォルトの名無しさん:2005/11/10(木) 22:35:36
Javaとか.NETいじってるだけのベンチャー様か趣味プロ学生か

379 :デフォルトの名無しさん:2005/11/10(木) 22:56:15
>>377
プログラマ以前にリーマンとして三流の発想だと思うよ。

人間の能力や気力、それに与えられた時間は有限だから、まともな企業人なら
機会費用というものを考えるべきだし、物事にはプライオリティがある。

だから「新参の」プログラマにVBを教えたりしない。まともな企業人ならね。
そんなものは後々他の仕事の合間か、本当に必要にせまられたときに覚えてもらえればいい。

はっきりいってその程度のことも考えないのは職務不履行だよ。
まあそんなこと考える立場にない人なんだろうけどさ。

380 :デフォルトの名無しさん:2005/11/10(木) 23:04:35
ここはくだらない人格攻撃が大好きな人たちが集まるスレッドですね

381 :デフォルトの名無しさん:2005/11/10(木) 23:22:10
>>379
まとも、まとも うるさいよ。
君が言いたい事はよく分かる。

「俺の理想通りだとまとも。それ以外はまともじゃない。」といいたいんだろ。

自分が気に食わなかったら、それをまともじゃない決め付け
頭っから否定する。話を聞こうともしない。

はっきりいって、君に、まともかどうか判断する能力は無い。

頭が固い人間がよく使う手だよ。宗教関連でもよく使われるね。
信じていないといったら、かわいそうな人と決め付ける。


382 :デフォルトの名無しさん:2005/11/10(木) 23:24:20
>>379
本当に必要に迫られたときかもしれんだろ。
機会費用を考えた結果かもしれんだろ。

お前、一体相手の何を知っているというんだ。
なにも状況がわからないくせに、よくそんな偉そうなこといえるな。

383 :デフォルトの名無しさん:2005/11/10(木) 23:25:08
スルースルー

384 :デフォルトの名無しさん:2005/11/10(木) 23:26:09
似たもの同士、じゃれってんじゃねえよ。気持ちわりイな。
どこかよそでケツでも掘りあってろ。

385 :デフォルトの名無しさん:2005/11/10(木) 23:33:21
物事にはプライオリティがある。

だからこそ、旧VBの保守が最優先事項の場合もある。

他言語はやっているが、VBは新参というプログラマーもいる。

これが現実。

386 :デフォルトの名無しさん:2005/11/10(木) 23:33:48
まだ踊るんですか?

387 :デフォルトの名無しさん:2005/11/10(木) 23:37:27
>>379が言っていることは間違っていると誰でも分かる。



ま と も な 奴 ならねw


388 :デフォルトの名無しさん:2005/11/10(木) 23:46:07
お前ら溜まってますね。俺は溜まってますよ。

389 :デフォルトの名無しさん:2005/11/11(金) 00:03:54
文系アマですがw

>>342
Understanding the Scope of Variables
ttp://msdn.microsoft.com/library/en-us/vbcon98/html/vbconunderstandingscopeofvariables.asp

>At the module level, there is no difference between Private and Dim, but Private is preferred because it readily contrasts with Public and makes your code easier to understand.

日本語翻訳ドキュメントがもうWeb上になかったようなので本家英語サイトより
正規ユーザーならMSDN Lib日本語版に同じ箇所があるはず。
が、MSが好きならw(好まざるともw)この程度の英語は理解して欲しいw

ついでこの辺りも。
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbconAdvancedVariableTopics.asp


390 :362:2005/11/11(金) 23:41:45
なんで、そんな揚げ足とられなきゃならんのだ・・・_| ̄|......○)))
そこ論点じゃないよ>>367
話を広げたいんなら、ここは質問と回答を書くところなんだからスレ違いですよ。
「VBばかりやってると馬鹿になる」スレかどっかでやってくらさい。。。


391 :デフォルトの名無しさん:2005/11/12(土) 12:18:23
VB6です。
IEのプロクシの設定はどうやったらいいのでしょうか?
色々調べたのですが、なかなかたどり着きません。
よろしくお願いします。

392 :デフォルトの名無しさん:2005/11/12(土) 12:20:29
あげておきます。

393 :デフォルトの名無しさん:2005/11/12(土) 12:35:55
.NETからSQLサーバーのパッケージを実行する方法を教えて下さい

394 :デフォルトの名無しさん:2005/11/12(土) 13:01:41
>>391
VB6だからなんなんだ
IEのツール→インターネットオプション→接続タブ→LANの設定ボタン→串鯖

>>393
.netスレ逝け池沼

395 :デフォルトの名無しさん:2005/11/12(土) 13:12:31
>>394
VBを使ってIEの設定を変えるって事じゃないんかな?

396 :391:2005/11/12(土) 13:14:44
そうです。よろしくお願いします。

397 :デフォルトの名無しさん:2005/11/12(土) 15:52:55
しかし一般の掲示板でもそうだが質問するのは結構だと思うがなんでなぞなぞみたいな文章書く奴ばっかなんだ?

398 :デフォルトの名無しさん:2005/11/12(土) 16:09:18
句読点を知らない人に言われても。

399 :デフォルトの名無しさん:2005/11/12(土) 16:42:36
それと >>398で思いだしたが答える奴も>>398みたいに妙に揚げ足取りたがったりいかにも性格が捻じ曲がってそうな奴ばっかなんだよな


400 :デフォルトの名無しさん:2005/11/12(土) 16:44:07
句読点を知らない人に言われても。

401 :デフォルトの名無しさん:2005/11/12(土) 17:26:27
俺には>>399の方が性格ねじ曲がっているように見えるな。
毎回粘着して無駄にレス続けてるし。

402 :デフォルトの名無しさん:2005/11/12(土) 17:33:09
>>397
スレ違いだな。

403 :デフォルトの名無しさん:2005/11/12(土) 18:25:47
スレ違いって言うか、存在が無駄だな

404 :デフォルトの名無しさん:2005/11/12(土) 18:53:27
いつも心にくだすれを

405 :391:2005/11/12(土) 19:09:16
やっぱりVBからプロクシの設定ってムリなんですか?

406 :デフォルトの名無しさん:2005/11/12(土) 19:14:53
まあ、無理ではないけど('A`)マンドクセ

407 :デフォルトの名無しさん:2005/11/13(日) 01:59:01
>>405
VB自前は無理なんでね?
他言語のサンプル見つけてVBに書き直すのが速いかも

408 :デフォルトの名無しさん:2005/11/13(日) 03:43:23
>>405
WMIでできねかい?とシラネのに言ってみるw
VCスレはアレだからWSHスレで聞いてみw

409 :デフォルトの名無しさん:2005/11/13(日) 08:20:36
10進数の100を16ビットの2進数で表現したときに、その値の中に含まれる0の個数を、メモリに格納するプログラムを作成せよ。という問題を誰か解いてください。

410 :デフォルトの名無しさん:2005/11/13(日) 12:11:33
誰か解いてください、じゃなくて君の宿題だろ?
宿題は自分でやれよ。
つーかこんなところで聞かずに友人に聞け。

411 :デフォルトの名無しさん:2005/11/13(日) 12:13:57
宿題を他人に解いてもらうようじゃ発展など望めない

412 :デフォルトの名無しさん:2005/11/13(日) 13:00:48
釣りだろ

413 :デフォルトの名無しさん:2005/11/13(日) 13:14:09
どう見ても精子です

414 :デフォルトの名無しさん:2005/11/13(日) 15:36:16
ありがとうございました

415 :デフォルトの名無しさん:2005/11/13(日) 17:47:41
>>409
解きました

416 :デフォルトの名無しさん:2005/11/14(月) 01:29:30
>>405
IEの設定ってレジストリの変更だけじゃないのか?
変更前のレジストリをテキストファイルに書き出し、変更後のレジストリをテキストファイルに書き出しその差分を取ってそこで変わった内容と同じ事をプログラムから実行してやれば良い。

417 :デフォルトの名無しさん:2005/11/14(月) 01:32:55
知らないのなら黙ってればいいのに

418 :デフォルトの名無しさん:2005/11/14(月) 02:29:06
×ボタンを押して終了したときのイベントを
取得したいのですが、どのようにすればよいでしょうか?
初歩的な質問で申し訳ありません、よろしくお願いします。

419 :デフォルトの名無しさん:2005/11/14(月) 04:33:48
>>418
WM_CLOSE
ウィンドウが閉じられる直前に送られてくる

420 :デフォルトの名無しさん:2005/11/14(月) 07:21:59
>>418
QueryUnload イベント
フォームが閉じられる直前に発生する。
Unload Me でも発生する。

421 :デフォルトの名無しさん:2005/11/14(月) 08:11:34
Unload
フォームが閉じられる時に発生する

422 :デフォルトの名無しさん:2005/11/14(月) 10:11:59
あるフォルダの、サブフォルダのリストを配列に取得したく、以下のようなコードを書きました
(follist(0)は親フォルダのパスで、1以降にサブフォルダのフルパスを列挙)

Private follist(0) As String
Private fsfol As Folder

Private Sub Command1_Click()
  Dim MainPath As String
  MainPath = "\\ServerPath\AB共有\プログラム\開発"
  follist(0) = MainPath
  Call sfoldersearch(fso.GetFolder(MainPath))
End Sub

Private Sub sfoldersearch(ByRef myfolder As Folder)
  With myfolder
    If .SubFolders.Count > 0 Then
      For Each fsfol In .SubFolders
        ReDim Preserve follist(UBound(follist) + 1) As String
        '見つかったサブフォルダをリストに追加
        follist(UBound(follist)) = fsfol.Path  'ココがオカシイ
        '再帰的に関数を呼び出し
        Call sfoldersearch(fsfol)
      Next
    End If
  End With
End Sub

'ココがオカシイ の部分で、サブフォルダのパスが変に取得されてしまいます
"\\ServerPath\AB共有\プログラム\開発\新しいフォルダ"があったとしたら、
"\\ServerPath\ABq  \プログラム\開発\新しいフォルダ"というように「共有」が
「q  」(後ろのスペースは3桁のスペース・・Nullかもしれません)

423 :422:2005/11/14(月) 10:13:48
しかし、fsofol.Drive で取得すると、
"\\ServerPath\AB共有"と、ちゃんと化けずに取得できます

これは、どういう現象なんでしょうか
ちゃんとパス名を取得するには、どうしたら良いでしょうか

424 :デフォルトの名無しさん:2005/11/14(月) 10:45:37
FSO使わずAPI使えよ

425 :デフォルトの名無しさん:2005/11/14(月) 12:43:00
っていうかモジュールレベルの変数を
再帰呼び出しされる関数内で使うってどうなのよ。
しかもByRefで。

正直、小手先でどうこうするのがオカシイというより、
プログラミングに対する考え方そのものがオカシイ。

426 :デフォルトの名無しさん:2005/11/14(月) 13:17:28
>>397
質問者は一般に質問する事柄について詳しくないんだから
あいまいな記述が出てきて当たり前だろ。
そのなぞなぞも質問のうちだ。

427 :デフォルトの名無しさん:2005/11/14(月) 13:48:52
>>425
うるせーよ、このしったかが

428 :422:2005/11/14(月) 14:06:22
>>424
既にある資源を活用したいので、
それはどうにもならなかったときにしたいです

>>425
何がマズいのかもよくわからないです
ごめんなさい
暗黙の了解みたいなのがあるんでしょうか

429 :デフォルトの名無しさん:2005/11/14(月) 15:07:43
先生、APIは既にある資源じゃないそうです!

430 :422:2005/11/14(月) 15:28:27
>>429
すみません
手元に他の人が書きかけてそのままだったコードがあったので、
新しくAPIとか調べていちから書くよりも、極力それを利用したい、ってことです

というか、質問取り下げます・・・
私のレベルでは、質問もうまく書ききれてないみたいで、ごめんなさい
>>424さんの言うとおり、APIでの書き方を調べてみます
ありがとうございました

431 :デフォルトの名無しさん :2005/11/14(月) 17:25:53
pictureboxにスクロールバー付けるには,
どーしたら良いのでしょうか?

432 :デフォルトの名無しさん:2005/11/14(月) 17:30:27
>>431
スクロールバーのコントロールがあるでしょ?

433 :デフォルトの名無しさん:2005/11/14(月) 17:30:42

画像が大きすぎるので何とかしたいのです.
さらに解像度はそのままにしたいです

434 :デフォルトの名無しさん:2005/11/14(月) 17:31:36
>>431
HScrollとVScroll

435 :デフォルトの名無しさん:2005/11/14(月) 17:32:50
スクロールのコントロールバー使って,
pictureboxを2つ重ね合わせるのですか?

ただ,画像が大きすぎるのか,画像全体を表示出来ないんですが
(フォームを最大にしても足らない)
どうしたら良いのでしょうか?

436 :デフォルトの名無しさん:2005/11/14(月) 17:34:46
>>435
Pictureの中にPicureとスクロールでも貼り付けてイベントとか計算とか書けば?

437 :デフォルトの名無しさん:2005/11/14(月) 18:30:01
>>431
VB6.0付属のヘルプ「スクロール バー コントロールの使用例 :
   スクロール可能なグラフィックス ビューポートの作成」

438 :デフォルトの名無しさん:2005/11/14(月) 20:39:13
VC++6.0付属のOLEサーバーのサンプル(VC98\mfc\tutorial\autoclik\step3)を
VB6.0で作成したOLEクライアントから利用する方法を教えてください。
1: Dim Click As Object
2: Set Click = CreateObject("AutoClick.Document")
3: Click.ShowWindow
4: Call Click.SetAllProps(50, 100, "Test")
5: Dim Point As Object
6: Set Point = Click.GetPosition()
7: Point.SetX (200)
8: Point.SetY (50)
9: Click.SetPosition (Point)
10: Set Point = Nothing
11: Set Click = Nothing

4行目までは正常に実行されるのですが、6行目で「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」とエラーが出てしまいます。
OLEメソッドの戻り値をOLEプロパティで受け取る方法がわかりません。


439 :デフォルトの名無しさん:2005/11/14(月) 21:09:09
>>422
SCRRUN.DLL最新Verのバグかもしれん。
いっこまえのVer.5.6.7426では起こらなかったが、
5.6.8825だとうちの環境でも同じとこで文字化けした。
API使うのがいいよ。

#なんか昔のバージョンでも、同じバグがあった気がする・・・

440 :デフォルトの名無しさん:2005/11/14(月) 21:45:47
>>438
すみません下記のコードで解決しました。
1: Dim Click As Object
2: Set Click = CreateObject("AutoClick.Document")
3: Click.ShowWindow
4: Call Click.SetAllProps(50, 100, "Test")
5: Dim Point As Object
6: Set Point = Click.Position
7: Point.x = 200
8: Point.y = 50
9: Click.Position = Point
10: Set Point = Nothing
11: Set Click = Nothing
VC++のOLEクライアントのサンプルを参考にVBで実装してみたのですが
GetPosition()メソッドはVC++のスタブクラスが用意している物であり、
OLEとして外部に公開している名前は"Position"でした。お騒がせしました。

441 :デフォルトの名無しさん:2005/11/15(火) 11:27:14
すいませんどなたか救いの手を
学校の課題が3つ出たのですが意味不明なので力をお借りしたく。


1・繰り返しを利用して、九九の表を表示するプログラムを作成せよ

2・自然数nを入力すると、各i(i=1,2,3,...,n)に対して、1+2+3+...+nを計算するプログラムを作成せよ

3・自然数同士の乗算を加算の繰り返しで計算するプログラムを作成せよ


解かる問題だけでもどなたかお願いします・・・

442 :デフォルトの名無しさん:2005/11/15(火) 11:36:55
1がわからんのなら諦めた方がいいよ
出された課題を自力で調べて解決しようともせんやつは何やっても無駄


443 :デフォルトの名無しさん:2005/11/15(火) 11:38:37
>>441
意味不明って……
ちゃんと勉強しろよ

444 :デフォルトの名無しさん:2005/11/15(火) 12:31:40
じゃぁ俺1解くねw

Dim I As Long
Dim J As Long

  '1
  For I = 1 To 9
    Debug.Print CStr(I); "の段 ";

    For J = 1 To 9
      Debug.Print CStr(I * J); " ";
    Next J

    Debug.Print
  Next I

  Debug.Print "wwwwwwwwwwwwwwwwwwwwwww"

445 :質問:2005/11/15(火) 12:51:08
:で行を結べるのですが、IF文でエラーがでてしまいます
なんとかなりません?

446 :デフォルトの名無しさん:2005/11/15(火) 12:58:32
>>445
:で結ばなきゃいい

447 :デフォルトの名無しさん:2005/11/15(火) 13:06:07
見づらいから結ばないでくれ。

448 :デフォルトの名無しさん:2005/11/15(火) 13:24:10
>>445
どうにでもなるよ
Ifステートメントがどういう物なのかわかってればね
でもマルチステートメントなんか使うなよ

449 :質問:2005/11/15(火) 13:30:54
if a then b else c end
のようにしたいのですが、間に:を入れても駄目です。
Ifステートメントとはどういったものでしょう?

450 :デフォルトの名無しさん:2005/11/15(火) 13:44:50
> のようにしたいのですが
好きにすれば?

つーか、それならマルチステートメント使うまでもないじゃん

451 :デフォルトの名無しさん:2005/11/15(火) 13:59:20
普通に一行で書けるし、馬鹿じゃね?

452 :デフォルトの名無しさん:2005/11/15(火) 14:02:05
>>445
1行でIfを使う場合はEndIFは付けない。
If x = 0 Then y = 1 Else y = 2
1行Ifでのマルチステートメント
If x = 0 Then y = 1: z = 8 Else y = 2: z = 9

453 :質問:2005/11/15(火) 14:08:06
馬鹿だった・・・

454 :デフォルトの名無しさん:2005/11/15(火) 14:08:36
>>441
2.
Private Sub Test(ByVal n As Long)
Dim i As Long
For i = 1 To n
Debug.Print i, i * (i + 1) \ 2
Next i
End Sub

455 :デフォルトの名無しさん:2005/11/15(火) 15:51:45
>>454
それは反則

456 :デフォルトの名無しさん:2005/11/16(水) 11:42:12
フォーム上にMicrosoft DataGrid Control 6.0(OLEDB)を置いて、
データベースと接続し、データベースを表示させたいのですが、
データベースエンジンがMicrosoft.Jet.OLEDB3.51だとうまく表示してくれますが
4.0だとなぜか表示してくれません。

原因、対策などわかるでしょうか?

ソースは以下のように単純なものです。

Private cn As ADODB.Connection
Private rs As ADODB.Recordset

Private Sub Form_Load()
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\パスワード管理.mdb"
cn.Open

Set rs = New ADODB.Recordset
rs.Open "パスワード", cn, adOpenStatic, adLockReadOnly

Set DataGrid1.DataSource = rs

End Sub

457 :デフォルトの名無しさん:2005/11/16(水) 12:05:01
エラーを吐かずに処理がすかしてるのですか?

458 :デフォルトの名無しさん:2005/11/16(水) 13:43:05
>>456
ヒント:KB224192

459 :デフォルトの名無しさん:2005/11/16(水) 14:03:22
http://support.microsoft.com/kb/q224192/

現象
Microsoft.Jet.OLEDB.4.0 と ADO のサーバー サイド カーソルを使用して取得したデータを
DataGrid に連結 (ADO データ コントロールを使って、あるいは直接グリッドに連結) したとき、
DataGrid にデータが表示されません。


原因
Microsoft.Jet.OLEDB.4.0 プロバイダは、DBPROP_LITERALIDENTITY プロパティをサポートしていません。
そのため、IRowsetIdentity インターフェイスをインプリメントする必要があります。
ADO では、このプロパティを行セットのオープン前に設定する必要があります。

解決方法
レコード セットを開く前に、RecordsetObject.Properties("IRowsetIdentity") = True を実行します。

460 :デフォルトの名無しさん:2005/11/16(水) 14:53:24
質問)
VB6.0つかってます。
Open App.Path & "\test.txt" for output as #1
write#1,"Test"
close #1

で保存したときtest.txtの内容が

"test"

となるのですがダブルローテーション消して保存する方法無いでしょうか?

461 :デフォルトの名無しさん:2005/11/16(水) 14:58:21
WriteじゃなくPrint使え

462 :デフォルトの名無しさん:2005/11/16(水) 15:07:11
>>461
d直りマスタ

WriteとPrintの違いでこんなのあったのかOTZ


463 :デフォルトの名無しさん:2005/11/16(水) 16:28:04


ダブル ロ ー テ ー シ ョ ン



464 :デフォルトの名無しさん:2005/11/16(水) 16:32:33
なんかエロイな

465 :デフォルトの名無しさん:2005/11/16(水) 18:36:01
>>464
だれもW回転とか言ってないだろ

466 :デフォルトの名無しさん:2005/11/16(水) 18:55:35
質問させてください。

下記tableDefineのような形式でアクセスのテーブル定義が与えられています。
この定義からSELECT文を生成したいと思います。
たとえば下のテーブル定義を用いると次のようになります。

   SELECT UserCode, LogonTime , StartTime, ProcessID , EndTme
   FROM AppEnd_Logs

そこで下記createQueryを作成したのですが、カタログオブジェクトのところで
”オブジェクトはもう有効ではありません”というエラーが出てしまいます。
どのような修正をすればよいか教えていただけ無いでしょうか?

467 :デフォルトの名無しさん:2005/11/16(水) 18:55:58
'テーブル定義(例)
Public Function TableDefine(ByVal strTableName) As ADOX.Table
  Dim tbl As ADOX.Table
  'strTableNameでセレクト文

  Set tbl = New ADOX.Table
    With tbl
       .Name = "AppEnd_Logs"
      .Columns.Append "UserCode", adVarWChar, 64
      .Columns.Append "LogonTime", adInteger
      .Columns.Append "StartTime", adInteger
      .Columns.Append "ProcessID", adInteger
      .Columns.Append "EndTime", adInteger
    End With

  Set TableDefine = tbl

  Set tbl =Nothing
END Function

468 :デフォルトの名無しさん:2005/11/16(水) 18:56:43
'テーブル定義からSELECT文を作る。
Public Function createQuery(t_tbl As ADOX.Table) As String
  Dim cat As ADOX.Catalog
  Dim col As ADOX.Column
  Dim query As String

  Set cat = New ADOX.Catalog
  cat.Tables.Append tblNew

  '***********
  '↑で実行時エラー 3420 "オブジェクトはもう有効ではありません"
  '***********
  'field名の取得
  For Each col In cat.Tables(t_tbl.Name).Columns
    query = col.Name & "," & query
  Next col

  '末尾の","を消す
  query = Left(query, Len(query) - 1)

  'SELECT文を生成
  query = "SELECT " & query & " From " & t_tbl.Name

  createQuery = query

  Set t_tbl = Nothing
  Set cat = Nothing
End Function

469 :466-468:2005/11/16(水) 18:59:33
書き忘れました。
環境はWinXP(SP2),VB6.0(SP5)となっています。

470 :431:2005/11/16(水) 19:24:34
>437
ありがとうございます!!
完成しました.

471 :466-468:2005/11/16(水) 20:53:44
申し訳ありません。>>468の訂正です。

×:cat.Tables.Append tblNew
○:cat.Tables.Append t_tbl

472 :デフォルトの名無しさん:2005/11/17(木) 11:34:10
現在、Win2000、VB6.0(SP5)でActiveX&EXEで構成されたアプリを作成しています。
ActiveX&EXEを同一のマシンAでコンパイルすると動作するのですがActiveXをマシンAでコンパイル、
EXEをマシンBでコンパイルすると、EXEからActiveXを呼び出す際に「型が一致しません」というエラーが
発生してしまいます。
具体的には以下のような感じです。なにか変なことをやってしまっているのでしょうか?

********************** EXE側 **********************
Private Sub MenuFile_Click(Index As Integer)
With form1.ActiveX1
Set .Grid = MSHFlexGrid1 'ActiveXにMSHFlexGridを渡しています。
l = .aaa()        'ActiveXのaaaメソッドを呼び出し
End With
End Sub

********************** ActiveX(ActiveX1.ctl)側 **********************
Private m_Grid As Object 'MSHFlexGrid

Public Property Set Grid(ctrGrid As Object) 'MSHFlexGrid
Set m_Grid = ctrGrid 'm_Gridに設定
End Property

Public Function aaa() As Long
Dim lngCount As Long
lngCount = bbb(m_Grid)  ←ここで、m_Gridの「型が一致しません」エラー
PrintStart = lngCount
End Function

Public Function bbb(ctrGrid As MSHFlexGrid) As Long
 略
End Function



473 :デフォルトの名無しさん:2005/11/17(木) 11:54:11
VBでネットワーク接続状況を取得するツールを作成しています。
可能であればやりかたをお伺いしたいのですが
LANボードのリンク状況を示すLEDの点灯、点滅を
VB画面で判断し同じように連動させる事はできますか?

474 :デフォルトの名無しさん:2005/11/17(木) 12:30:02
>>473
バッキャッロー!
できるわけねぇーだろうが

475 :デフォルトの名無しさん:2005/11/17(木) 12:33:09
LANボード自作すれば万事OK

476 :デフォルトの名無しさん:2005/11/17(木) 12:46:48
>>475
そこまで大げさなことをしなくても、LANボードのLEDの所から信号取り出して
DIOボードに入力してあげればOKだぉ

477 :デフォルトの名無しさん:2005/11/17(木) 12:50:42
LEDの光をセンサー使って感知すればいい
簡単なことだぉ

478 :デフォルトの名無しさん:2005/11/17(木) 12:53:17
おまえら頭いいな

479 :デフォルトの名無しさん:2005/11/17(木) 14:00:59
まじめに質問に答えてくれよぉ

480 :デフォルトの名無しさん:2005/11/17(木) 14:08:52
知らないものにどう答えろというんだ

481 :デフォルトの名無しさん:2005/11/17(木) 14:19:47
>>466-469
Set tbl =Nothing

ここで作ったオブジェクトが無効になる
Nothingの代入がただの代入と思ってはいけない

TableDefineにbyRefでADOX.Table型を渡してそこにNew ADOX.Tableしてやる

482 :デフォルトの名無しさん:2005/11/17(木) 14:54:44
>>481
>Nothingの代入がただの代入と思ってはいけない
え、そうなの!?

>>468 はcatのActiveConnectionを設定してないせいだと思うが。接続無しで使えたっけ。

483 :デフォルトの名無しさん:2005/11/17(木) 19:09:18
>>481
オブジェクトはTableDefine変数で参照されているので、
オブジェクトは無効にはならない。

484 :デフォルトの名無しさん:2005/11/17(木) 21:01:05
>>472
>Public Function bbb(ctrGrid As MSHFlexGrid) As Long
↑パラメーターを ctrGrid As Object にすればいいのでは?



485 :デフォルトの名無しさん:2005/11/17(木) 21:11:44
>>484
それでも動きそうだけど、MSHFlexGridがインストールされてないとか
バージョンが違うからエラーが出ているんだろうね。

486 :466-468:2005/11/17(木) 21:13:40
皆さん回答ありがとうございます。
下記のように処理順番を変えて、catにActiveConnectionを設定することで解決しました。

1.サーバ側DBと接続(con)
2.表定義からクエリ作成
3.サーバ側DBにクエリ投げてレコードセット取得
4.ローカルDB作成
5.表定義よりローカルDBテーブル作成
6.ローカルDB接続(con_mdb)
...

     ↓

1.サーバ側DBと接続(con)
2.ローカルDB作成
3.ローカルDB接続(con_mdb)
4.表定義からクエリ作成 ← cat.ActiveConnection = con_mdb を追加
5.サーバ側DBにクエリ投げてレコードセット取得 ...

487 :デフォルトの名無しさん :2005/11/17(木) 22:12:42
VB6.0を始めて勉強する人のための,
なにかお勧めの参考書,ホームページを教えて下さい.
一応,
林晴比古さんの新visualbasic入門のビギナー編とシニア編は持ってます.

488 :デフォルトの名無しさん:2005/11/17(木) 22:22:25
>>487
じゃあ、それで。

489 :デフォルトの名無しさん:2005/11/17(木) 22:45:52
>>487
そんじゃ漏れも、それがオススメってことで

490 :デフォルトの名無しさん:2005/11/17(木) 23:08:21
>>487
林晴比古さんの新visualbasic入門のビギナー編とシニア編って本がお奨め。

491 :デフォルトの名無しさん:2005/11/17(木) 23:29:03
いややっぱ
林晴比古さんの新visualbasic入門のビギナー編とシニア編
じゃないかなぁ

492 :デフォルトの名無しさん:2005/11/18(金) 00:36:59
WebBrowserコントロールのクローンを作りたいのですが、
VBでコントロールのディープコピーってできますか?

493 :デフォルトの名無しさん:2005/11/18(金) 01:28:56
宿題手伝っていただきたいのですが。
VB6.0なんですけど 教えてください。

http://www.vipper.org/vip142566.jpg

494 :デフォルトの名無しさん:2005/11/18(金) 07:17:55
出された課題を自力で調べて解決しようともせんやつは何やっても無駄

495 :472:2005/11/18(金) 12:52:46
>>484
回答ありがとうございます。

>>Public Function bbb(ctrGrid As MSHFlexGrid) As Long
>↑パラメーターを ctrGrid As Object にすればいいのでは?

やってみましたが、結局参照するMSHFlexGridを生成するところで
同じエラーがでました。

MSで調べてみたら、どうもこんなことはできないっぽいです・・・orz

496 :デフォルトの名無しさん:2005/11/18(金) 13:42:16
>>492
コントロール配列にしてLoadしてみたら?
Toolbarで試したけど、Buttonsはインスタンスコピーされたっぽい。

497 :デフォルトの名無しさん:2005/11/18(金) 17:12:45
printerオブジェクトについて教えてください。
出力先のプリンターを設定したいのですが
Printer.DeviceName = "hoge"
ではエラーになってしまいました。
どこが問題かわかるかたがおられましたら教えてください。
よろしくお願いします。

498 :497:2005/11/18(金) 17:26:30
できました。

499 :デフォルトの名無しさん:2005/11/18(金) 17:31:44
イベントプロシージャで引数を受け取る時どーしたら良いのですか?

private sub form_load(x as integer)
などとすると,エラーが出て来ます.

500 :デフォルトの名無しさん:2005/11/18(金) 17:34:17
面白い発想だな
笑わせてもらったよ

501 :デフォルトの名無しさん:2005/11/18(金) 17:45:58
こんなところにもゆとり教育の弊害が

502 :デフォルトの名無しさん:2005/11/18(金) 17:49:58
イベントプロシージャの引数は勝手に付けたり消したりできないよ( ´ー`)y-~~

503 :デフォルトの名無しさん:2005/11/18(金) 18:03:59
その引数を何が送るんだよw

504 :デフォルトの名無しさん:2005/11/18(金) 18:04:43
(´-`).。oO( その書き足した引数はどこから貰ってくるつもりなんだろう・・・ )

505 :デフォルトの名無しさん:2005/11/18(金) 18:14:13
Optionalでwwwwwwwwwwwwwww

506 :デフォルトの名無しさん:2005/11/18(金) 19:18:25
初心者いじめか。さすがVB厨は違うなw

507 :デフォルトの名無しさん:2005/11/18(金) 19:20:23
下らない煽りか。さすがVB厨。

508 :デフォルトの名無しさん:2005/11/18(金) 19:52:10
>>499
組み込みイベントをラップして独自イベントを起こすか、単純に関数呼び出し

509 :デフォルトの名無しさん:2005/11/18(金) 21:38:09
>>495
組み込みコントロール以外のコントロールは
ActiveXを使って参照渡しできないよ。
同じマシンでコンパイルするとなぜかできるのが
謎だが

510 :デフォルトの名無しさん:2005/11/18(金) 21:52:00
>>499
たぶんForm_Loadに書いてある処理をまた実行したくなったんじゃないか?
だったらその処理を別のプロシージャにして、それをコールすればよいのですよ。
自作プロシージャの引数はご自由に。

Form_Load時に、呼び出し元のローカルな変数の値が欲しいのかな?
だったらFormにPublic変数を作って、そこに代入してからShowしましょう。
Form_LoadでそのPublic変数を参照すればおk。

それ以外の目的だったら書いてください。それによって手段が変わるから。

511 :デフォルトの名無しさん:2005/11/19(土) 09:01:15
ComboBox の Appearance プロパティを 3D → フラット に変えても
外見が変わらないのですが、これは仕様ですか?

512 :デフォルトの名無しさん:2005/11/19(土) 09:07:59
じゃあ仕様ということで

513 :デフォルトの名無しさん:2005/11/19(土) 09:10:57
冷たいなw

514 :デフォルトの名無しさん:2005/11/19(土) 09:18:40
まあComboBoxのAppearanceはTextBoxとの統一性を量るための
ダミー&読みとり専用プロパティだからね
値を変えても外見が変わらないのは仕様って言えば仕様だな

515 :デフォルトの名無しさん:2005/11/19(土) 09:31:17
そうですか、残念…
Label や TextBox を全部 フラット にしたのに、ComboBox だけ浮いて見えるw

最初からやり直すことにするか…
さっきから画面のデザインばっかりに時間がかかってしまって
そういったセンスが無いから正直しんどいw

516 :デフォルトの名無しさん:2005/11/19(土) 09:38:14
BorderStyle

517 :デフォルトの名無しさん:2005/11/19(土) 09:38:27
>>514
お礼を言うのを忘れてた
ありがとう!

518 :499:2005/11/19(土) 09:39:40
>508
>510

ありがとうございます。
試してみますわ。

519 :デフォルトの名無しさん:2005/11/19(土) 09:44:55
VB.NETのLinkLabelをVB6.0で実現したいのですが、
どのようにするのが一番簡単でしょうか。

520 :デフォルトの名無しさん:2005/11/19(土) 09:49:41
Labelを元に自分でコントロールを作る

521 :デフォルトの名無しさん:2005/11/19(土) 14:53:43
Public type


522 :デフォルトの名無しさん:2005/11/19(土) 14:57:28
ミスったorz

public type
txt1 as textbox
txt2 as textbox
blnFlg as boolean
end type

のようなコントロールを含むユーザ定義型を作成して、
この中のテキストボックスをフォームに表示するにはどうしたらよいのでしょうか?

ユーザコントロールも作ってみたのですが、配列にするとうまくいきません。

どなたかヘルプお願いします。

523 :デフォルトの名無しさん:2005/11/19(土) 16:45:59
OS:WINDOWS XP
VB:Excel2003に標準付属のVB 6.0(特にサービスパックなどいれていません。)

Excel総合相談所 39 からVBスレで質問を、と誘導をうけてきたものです。
それでは質問させていただきます。
VBAを使用しInternetExprolerを起動させ、
ユーザアカウントとパスワードをフォームに自動入力させ、ログインする。
といったようなプログラムを組みたいのですが、ご教授お願いします。
その後エクセルと連動して、様々なユーザの場合を対応させて行くつもりです。

それではよろしくお願いいたします。


524 :デフォルトの名無しさん:2005/11/19(土) 16:54:59
VB:Excel2003に標準付属のVB 6.0(特にサービスパックなどいれていません。)


VBじゃねぇ

525 :デフォルトの名無しさん:2005/11/19(土) 17:26:51
>>523
InternetExplorer.Application でページを開いて
DHTMLで ユーザアカウントやパスワード の入力欄を探して 値を入れて
送信(ログイン)ボタンをclick( ) で実行でOK

526 :デフォルトの名無しさん:2005/11/19(土) 18:10:56
エクセルやアクセスなどの操作法じゃなければ、VBA使いがここで質問するのは構わないんだけど
VBA使いはやる気無しの丸投げが多いんだよな。
プログラミングを勉強していこうって奴じゃなくて、VBAで自動化出来るのを知って
VBAプログラミングも出来ないのに、なんでもかんでもVBAでやろうとするって奴。

VBAをちゃんと理解出来てれば、回答内容はVB使いに対するものとほぼ変わらないから
ここにヒントを貰いに来るのはいいけど、丸投げはNGね。

527 :デフォルトの名無しさん:2005/11/19(土) 18:15:27
>>523
ttp://www.tt.rim.or.jp/~rudyard/torii009.html

528 :519:2005/11/19(土) 19:52:22
よろしくお願いします。

529 :デフォルトの名無しさん:2005/11/19(土) 19:54:34
嫌です

530 :デフォルトの名無しさん:2005/11/19(土) 23:45:57
え?

531 :デフォルトの名無しさん:2005/11/20(日) 00:56:42
すみませんどうしても教えて欲しいことがあるんですが、

select 受注No form 受注M で受注Noを取り出し、
while文で、受注Noごとのレコードをあるだけ表示させようと思うんですが、
終了条件が分かりません。
Nullになれば、終了させればいいと思うんですが、文法が分かりません。
すみませんが教えてください。

532 :デフォルトの名無しさん:2005/11/20(日) 01:22:16
DBはDB板へ

533 :デフォルトの名無しさん:2005/11/20(日) 02:08:30
VBで200kb位のtxtファイルを読み込んで中に書かれている

name ○○○

を探して○○○を抽出したいのですが
一体どーやって実現したら良いんですか。
さっぱりです。

534 :デフォルトの名無しさん:2005/11/20(日) 07:32:29
読み込んで探して抽出すればいいじゃない

535 :デフォルトの名無しさん:2005/11/20(日) 08:18:58
おはようございます

"かきこむ"を"%8F%91%82%AB%8D%9E%82%DE"に変換する方法をおしえてもらいたいのですが。
JavaにあるEncodeのような関数はないのでしょうか?

536 :535:2005/11/20(日) 08:33:21
URLエンコードをしたいのです
http://66.102.7.104/search?q=cache:T2YMQOG9gvYJ:www.atmarkit.co.jp/fdotnet/dotnettips/212urlencode/urlencode.html+VB%E3%80%80%E6%96%87%E5%AD%97%E5%88%97&hl=ja&lr=lang_ja

追記します

537 :536:2005/11/20(日) 08:38:19
自己解決しました

ただ、まだ聞きたいことが増えました。
Hex$(bytSingle)のようにHexの右隣に$がついてるのはなぜでしょうか?

538 :デフォルトの名無しさん:2005/11/20(日) 08:47:10
自己解決してください

539 :536:2005/11/20(日) 09:13:54
自己解決しました

540 :デフォルトの名無しさん:2005/11/20(日) 10:21:41
すいませんが>>519をお願いします。

541 :デフォルトの名無しさん:2005/11/20(日) 11:12:22
>>540
「簡単」を妥協して「VB6で」を取るなら頑張って勉強しろ
「VB6で」を妥協して「簡単」を取るならVB.NETに移行しろ
どっちも妥協したくなければこういうことを簡単に実現できるだけの知識を身につけろ

以上

542 :デフォルトの名無しさん:2005/11/20(日) 11:50:29
>>531
If rs.EOF = True Then
Do Until rs.EOF
'ということですか?
rs.MoveNext
Loop
End If

>>533
’○○○はリテラルの文字列ですか?
Dim iFileNo As Integer
Dim ReadLine as String
Dim GetStr As String

iFileNo = FreeFile
Open "hoge.txt" For Input Shared As #iFileNo
Do While Not EOF(iFileNo)
Line Input #iFileNo, ReadLine
If Instr(1,ReadLine,"○○○") <> 0 Then
GetStr = Mid(ReadLine,Instr(1,ReadLine,"○○○"),Len("○○○"))
Call MsgBox(GetStr)
End If
Loop
Close #iFileNo


543 :デフォルトの名無しさん:2005/11/20(日) 11:51:30
質問させてください
nttkyo******.tkyo.nt.adsl.ppp.infoweb.ne.jpのようなホスト名を取得するには
どの関数を呼び出せばいいのでしょうか?

ちなみに、Winsockでサーバに接続しています(Winsock1というオブジェクトがあります)

544 :540:2005/11/20(日) 12:17:18
あの・・・私がお願いする度に妨害されて他の人が書き込みにくく
なるのですが・・・

520と529と541は同じ人ですよね。
他の方、お願いします。

545 :デフォルトの名無しさん:2005/11/20(日) 12:22:29
>>544
無理

546 :デフォルトの名無しさん:2005/11/20(日) 12:32:04
(俺 = 520) and (俺 = 529) and (俺 = 541) = false
(俺 = 520) or (俺 = 529) or (俺 = 541) = true

547 :デフォルトの名無しさん:2005/11/20(日) 12:35:54
>>544が死んでくれる方法誰か教えて貰えませんか?

548 :543:2005/11/20(日) 12:42:26
誰かご存知なかたいますか?

549 :デフォルトの名無しさん:2005/11/20(日) 12:44:33
VB厨 VS 催促厨かwwwwwwwwwwwwwwwwwwwwwww

550 :デフォルトの名無しさん:2005/11/20(日) 12:45:03
>>544
VB.NET使ったことないんで想像の域なんですけど
LinkLabelってクリックしたらWEBページに飛ぶような仕組みの
コントローラでしょうか?
だとしたらVB6でOCXコンポーネントにしてしまっては如何でしょう?
考え方としたらCtlフォームにラベルかテキストコントロールをデザインして
MouseMoveイベントでカーソルがコントロール上に来た時に
マウスカーソルを変更したり、文字列の色を青くするなりで見栄えは
再現できると思います。肝心のリンクですが
参照設定でMicrosoft Internet Controlsを設定し

Private Sub Text1_Click()

Dim ie As New InternetExplorer

'画面サイズの設定
ie.Left = 10
ie.Visible = True
ie.Height = 2000
ie.Width = 1000

'InternetExplorerの実行
ie.Navigate Text1.text
Exit Sub
End Sub

みたいな感じでいけないでしょうか?意味を取り違ってたらすみません


551 :デフォルトの名無しさん:2005/11/20(日) 12:55:03
>>543

質問が漠然としてるんで想像の域ですが
このような事ですか?
http://dobon.net/vb/dotnet/internet/dnslookup.html

552 :デフォルトの名無しさん:2005/11/20(日) 12:58:52
>>551
接続されているサーバ名です

わたしはNiftyで接続してるので、
nttkyo******.tkyo.nt.adsl.ppp.infoweb.ne.jpなんですが・・・・。
これを関数で取得したいのです。

Winsockオブジェクトのプロパティをみたところ、取得関数が見当たらないもので。

553 :デフォルトの名無しさん:2005/11/20(日) 13:03:39
>>552
Winsockオブジェクトとは
wsock32.dllを利用してるんでしょうか?
接続するIPアドレス等の情報があろうかとおもうのですが
gethostbyname()関数はありませんでしたか?


554 :552:2005/11/20(日) 13:27:41
やってみましたが、localhostになってしまいます。

555 :デフォルトの名無しさん:2005/11/20(日) 13:45:40
ルータ接続ってオチに100ペソ

556 :552:2005/11/20(日) 13:51:58
いったんサーバにPOSTしてから、レスポンスでホストが帰ってくるのでそれを使うらしい。
一応解決。

あと、
' データ受信
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

データ受信で、「いつ受信が終わったのか」を知りたいのだが。
てっきり、受信終了のさいは、bytesTotalに0が代入されてるとおもってた・・・。
でも、0が代入されないな。

557 :544:2005/11/20(日) 15:56:21
>>545
やめてとお願いしたのにまたやるということは、日本語が
通じなかったということでしょうか?

>>546=false
間違っている上につまらない書き込みをする意図が分かりません。

>>550
コントローラ?何が言いたいんですか?
再現できると思います、って当たり前でしょ?

558 :デフォルトの名無しさん:2005/11/20(日) 16:12:29

つまり

   519はネタだから相手にしないで下さい

                    ってことですね



さてでは次の話題に行きますか

559 :デフォルトの名無しさん:2005/11/20(日) 16:14:09
>>558
またか。いい加減、お前もうざい。

560 :デフォルトの名無しさん:2005/11/20(日) 16:29:42
>>519はURLを開く方法が知りたいんでしょ

561 :デフォルトの名無しさん:2005/11/20(日) 16:41:54
>>557
なーなー そんな事よかさ
エビフィレオのCMでてる蛯原友里って可愛いとおもわん?
最高だよな。

562 :デフォルトの名無しさん:2005/11/20(日) 17:48:59
VB厨VS催促厨

563 :デフォルトの名無しさん:2005/11/20(日) 17:50:35
移植のためにVB4のRATE関数の計算内容が知りたいのですが、
載っている場所等ご存知の方はいらっしゃいませんか?

564 :563:2005/11/20(日) 18:00:46
誰かご存知なかたいますか?

565 :デフォルトの名無しさん:2005/11/20(日) 18:06:42
今んところはいらっしゃいません
提案なのですが明日まで気長に待ってみてはいかがでしょうか?


566 :デフォルトの名無しさん:2005/11/20(日) 18:17:37
>>560
違います。

>>561
そうだけど結構前から有名。

567 :デフォルトの名無しさん:2005/11/20(日) 18:36:21
>>566
そしたら何が聞きたいんだよ?ちゃんと真面目にレスかえしてくれてる
奴にも喧嘩ごしじゃーん。

568 :デフォルトの名無しさん:2005/11/20(日) 18:40:57
>>567
バカを相手にするのが楽しいだけですが何か?

569 :デフォルトの名無しさん:2005/11/20(日) 19:20:49
なんだ釣りですかぁ。やられた

570 :デフォルトの名無しさん:2005/11/20(日) 19:47:41
こんばんわ

VB6(SP6)で質問なのですが
フォームを表示せず、タスクバーに表示させる
方法を探しているのですが、分かりません。
どなたか知ってる方がいましたら、教えてください。

571 :デフォルトの名無しさん:2005/11/20(日) 19:53:29
>>570
常にフォームを最小化させとけばどうでしょう。

572 :デフォルトの名無しさん:2005/11/20(日) 19:55:28
>>568
で?

573 :デフォルトの名無しさん:2005/11/20(日) 19:56:36
いったいどういう用途で
> フォームを表示せず、タスクバーに表示させる
が必要なんだ?

574 :デフォルトの名無しさん:2005/11/20(日) 19:56:56
>>570
画面外に出しとけば?

575 :デフォルトの名無しさん:2005/11/20(日) 20:20:38
>>571-573-574
どうも返答ありがとうございました。
解決できました。



576 :デフォルトの名無しさん:2005/11/20(日) 20:23:24
>>567
最初に書いたとおりですが?

577 :デフォルトの名無しさん:2005/11/20(日) 20:24:10
>>572
他人が私のフリをした書き込みだったのですが、
その区別もつきませんか?

578 :デフォルトの名無しさん:2005/11/20(日) 20:26:49
もうどうでもいいや何かムカついたんで
もう教えな〜い 他のレスまってね。がんばって

579 :デフォルトの名無しさん:2005/11/20(日) 20:29:41
>>578
答えられるスキルのない人には初めから期待してませんよ。

580 :デフォルトの名無しさん:2005/11/20(日) 20:31:51
はいはい凄いね凄いね

581 :デフォルトの名無しさん:2005/11/20(日) 20:51:31
>579
今日俺、女できたんだ、今日は何言われても許す。

582 :デフォルトの名無しさん:2005/11/20(日) 21:06:06
>>581
おめでとう

583 :デフォルトの名無しさん:2005/11/20(日) 21:08:50
>>582
どういたしまんこ

584 :デフォルトの名無しさん:2005/11/20(日) 21:45:18
>>578
分からないことを隠すときは皆さんそういう態度になりますね。

585 :デフォルトの名無しさん:2005/11/20(日) 21:59:20
どの質問よ?俺が教えたる。

586 :デフォルトの名無しさん:2005/11/20(日) 22:02:37
>>585
貴方には無理そうなので結構です

587 :デフォルトの名無しさん:2005/11/20(日) 22:02:52
おお そうだそうだ
ちゃんと質問してみろよ
釣りじゃないならな

588 :デフォルトの名無しさん:2005/11/20(日) 22:03:34
>>586
まあそんな事言わずに、ホレ

589 :デフォルトの名無しさん:2005/11/20(日) 22:04:43
ちゅうか暇人でどうせ童貞な厨房の煽りなんだから
放っておけ

590 :デフォルトの名無しさん:2005/11/20(日) 22:16:40
どうやらドトネトのコントロールをブイビで再現したいらすぃ
けど対して困って無いんでしょ
レスの展開が煽りそのものだし
週末の暇潰しに煽りくれてるだけ

591 :デフォルトの名無しさん:2005/11/20(日) 22:22:17
そろそろ釣れた釣れた、と言い出す頃か

592 :デフォルトの名無しさん:2005/11/20(日) 22:32:32
>>590
そんな感じです。

>>591
言いません。

593 :デフォルトの名無しさん:2005/11/20(日) 22:37:03
で?

594 :デフォルトの名無しさん:2005/11/20(日) 22:49:00
LinkLabelはVBには無いからなぁ
自作しろ以外言いようが無いよ

「自作しろ」って回答に何が不満なんだ?

595 :デフォルトの名無しさん:2005/11/20(日) 22:52:41
>>594
コードを全て書いてください。

596 :デフォルトの名無しさん:2005/11/20(日) 23:03:18
>どのようにするのが一番簡単でしょうか。


これがポイントだってことだな。
一番簡単なのは諦めることだ。そして死ね。

597 :デフォルトの名無しさん:2005/11/20(日) 23:22:08
ある意味本当のつり氏だw
>>595
ちゃんとメインコード書いてくれてるやついるじゃねえか
それで参考ならないなら藻マイは無能のVB厨だ
VBで.Netを補うなら自力でやるしか無いのさ
概要がわからない奴は,Netだけ使いこなせるように励んどけボケ

598 :デフォルトの名無しさん:2005/11/20(日) 23:27:39
>>597
まあドトネト触れない奴の僻み

599 :デフォルトの名無しさん:2005/11/21(月) 01:06:42
またまた今日は凄い週末厨が来てるじゃない

600 :デフォルトの名無しさん:2005/11/21(月) 01:19:54
初回の質問以外全部偽者だろう。じゃなきゃ あ り え な い 

601 :デフォルトの名無しさん:2005/11/21(月) 07:16:30
>>597
あなたコードを書いた本人ですか?
あんなコードをよく恥ずかしげもなく投稿できますね。
PG1年目の私でも鼻で笑ってしまいましたよ。

602 :デフォルトの名無しさん:2005/11/21(月) 10:56:54
>>601は煽るだけの役立たず

603 :デフォルトの名無しさん:2005/11/21(月) 13:27:32
>>601
あぼ〜ん

604 :550:2005/11/21(月) 13:37:04
>>601 >>519 様
550でコードを書いた者です。私自身スキルが無く逆に混乱させるような回答してしまい
すみませんでした。少しでもお役に立てればと思いレスさせていただきます
実際に出来るかどうかの環境が無く、今日少し時間を見て作りこんでみました
エラーや入力条件などガッチリ作っていないですがご希望のOCXベースに
なればうれしいと思います。役に立たなければスルーしてください。

605 :550:2005/11/21(月) 13:39:14
Option Explicit
Dim iSize As Integer
Dim sLnkLbl As String
Private Sub Text1_Click() 'クリック時
Dim ie As New InternetExplorer
ie.Left = 10
ie.Visible = True
ie.Height = 2000
ie.Width = 1000
ie.Navigate Text1.Text 'InternetExplorerの実行
End Sub
Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Screen.MousePointer = vbUpArrow
End Sub
Private Sub UserControl_Initialize() '初期化
Text1.ForeColor = vbBlue
Text1.BackColor = vbScrollBars
Me.LinkLabel = "http://"
Me.FontSize = 10
End Sub
Private Sub UserControl_Resize() 'デザインされたコントロールのリサイズ時連動リサイズ
Text1.Height = UserControl.Height
Text1.Width = UserControl.Width
End Sub


606 :550:2005/11/21(月) 13:40:03
Public Property Get FontSize()
FontSize = iSize
End Property
Public Property Let FontSize(ByVal vNewValue As Variant) 'フォントサイズの変更
Text1.Font.Size = vNewValue
iSize = vNewValue
End Property
Public Property Let LinkLabel(ByVal vNewValue As Variant) '表示するリンクラベル
Text1.Text = vNewValue
sLnkLbl = vNewValue
End Property
Public Property Get LinkLabel()
LinkLabel = sLnkLbl
End Property

607 :デフォルトの名無しさん:2005/11/21(月) 16:40:57
>>604はマゾ

608 :550:2005/11/21(月) 17:01:45
追記です。
@上記の Text1_Click()イベントの最後に
Set ie = Nothingが抜けておりましたすみません。
Aマウスカーソルを変更する処理は中途半端になってしまっています。すみません
BVBで新しいプロジェクトの作成Project1(ActiveXコントロール)を開き
UserControl1に上記コードを貼り付けします。コントロールのデザインは
text1のみでOKです。Text1のBorderStyleプロパティを0-なし設定し
MultiLineをTrueに設定します。UserControl1画面とTextコントロールの
サイズを一致させるとデザイン時にキレイにレイアウトできると思います
次に参照設定でMicrosoft Internet Contorolsを設定しコンパイルしてください
Cコンパイル後、出来あがったproject1.ocxのRegsvrを行います。
D親画面(呼び元のメイン画面)となるプロジェクトを開きコンポーネントの追加にて
project1.ocxを設定し、画面デザインにて当該コンポーネントをデザインします。
Form_Loadイベント内に UserControl1.LinkLabel = "http://www.yahoo.ne.jp"
のようにURLを設定し、実行するとリンクラベルに似たコントロールが出来上がっています
これをクリックすると、当該URLのIEブラウザに遷移する仕組みです




609 :デフォルトの名無しさん:2005/11/21(月) 17:15:54
お兄ちゃん人が来ちゃうよまで読んだ

610 :デフォルトの名無しさん:2005/11/21(月) 17:23:47
煽り相手にマジレスすんなよ。時間の無駄無駄無駄無駄あ

611 :デフォルトの名無しさん:2005/11/21(月) 17:42:43
>>608 の便乗の質問で悪いのだが、Set ie = Nothingというのは必要なのか?
Private Sub Text1_Click() 'クリック時
  Dim ie As New InternetExplorer
  Set ie = Nothing
End Sub
最後で参照が消えるから自動でGCされると思ってたのだが、
必要だという奴や例を何度も見かけるんで自身がなくなってきた。
VBはそういうものなのか、以前Set NothingしないとGCされないようなバグでもあったのかどうなんでしょう。

612 :デフォルトの名無しさん:2005/11/21(月) 18:02:56
Set Nothing は必要ない
VBは変数のスコープが外れた時点で勝手に参照数が -1 される
参照数が 0 になった時点で 初めてGCの対象になる
でも実際どのタイミングでGCされるのかはVBのみぞ知るといった感じ?(知ってたら教えて)

Set Nothing は コードの読解性を高める為に書くんじゃない? 俺も書くよ

あとよく間違えてるヤツがいるけど
Nothing を代入する事がオブジェクトを開放する作業では無いので要注意

613 :550:2005/11/21(月) 18:43:57
>>611 >>612 おっしゃる通りの見解です。おなじないのレベルとして付与しているコードです。

>>608の補足としてですが、Textコントロールはコントロールからの入力をロックする等
プロパティの設定が厄介なのでLabelコントロールを利用したほうがラクで良いかもしれませんね


614 :デフォルトの名無しさん:2005/11/21(月) 20:33:54
暇な方手伝ってください。分かりません。学校の宿題です。
ダイオードの点滅のシュミレーションプログラムです
________________________________________
● ● ● ● ● ● ○ ○
__________________________________
右から1個ずつ、右から2個ずつといった風に点滅させます。
黒い丸●を消灯、赤い丸○を点灯としてやってきます。
次にそのプログラム書くんで
だれか手伝ってください。
Text1.Text = Hex(s1)はテキストボックスに16進数で表示させてるだけで無視でいいです。
Case 4をベースに頼みます
後は
Case 5 右から5個ずつ点灯●●●●●●○○→●●●●●○○●
           →●●●●○○●●
            ○○●●●●●●→○●●●●●●○
           →●●●●●●○○ こんな感じで
Case 6 穴の移動(これはできました)
Case 7 左から一個ずつ点灯(これはできました)
Case 8 (これもいいです)
Case 9 左右から点滅○●●●●●●○→●○●●●●○●
         →●●○●●○●●→●●●○○●●●
         →●●●○○●●●→●●○●●○●●こんな感じで
どなたか暇な方お願いしますm(_ _)m。

615 :614:2005/11/21(月) 20:35:36
________________
Dim k As Integer
Dim mode As Integer
Dim b(8) As Integer

select Case mode

Case 4 '右から1個
If k < 2 Then k = 8 Else k = k - 1
s = 2 ^ (k - 1)
For i = 0 To 7
b(i) = (s \ 2 ^ i) Mod 2
If b(i) = 0 Then FillColor = QBColor(0)
If b(i) = 1 Then FillColor = QBColor(12)
Circle (1200 * (i + 1), 2000), r
Next i
s1 = 2 ^ (8 - k)


End Select
Text1.Text = Hex(s1)
End Sub
___________________


616 :デフォルトの名無しさん:2005/11/21(月) 20:42:06
宿題は自分でやりましょうね

617 :デフォルトの名無しさん:2005/11/21(月) 20:55:23
>>550が糞コード晒してくれるまで待ちな

618 :デフォルトの名無しさん:2005/11/21(月) 20:59:49
>シュミレーション

619 :デフォルトの名無しさん:2005/11/22(火) 00:43:31
>614
case 7のコード晒してみてくれ
挙動がよくわからんがcase 4 のコードだったら一気に描画されるんじゃない?
結果的にそのLEDだかが赤色になるだけじゃ駄目なんだよな?
タイマーとかスリープ使っていいんかいなぁ?

変数の定義あったり無かったり 初期化してたりなかったり
すげぇコードだなおいw






620 :デフォルトの名無しさん:2005/11/22(火) 06:13:59
つーか
つーか
つーかさw

せめて表示部を関数1つにまとめろと

ポケコンBASICでVBソース書いてるかと思ったw

621 :デフォルトの名無しさん:2005/11/22(火) 07:10:31
>>620
理由言ってみ

622 :デフォルトの名無しさん:2005/11/22(火) 08:20:39
破損Jpegを表示しようとするとLoadPictureでもSUSIEプラグイン使っても
高確率でアプリが落ちちゃうんですが、VB6以前でGDI+を使うのは結構
面倒ですよね。
尚SUSIE プラグインは標準のじゃなくて落ちにくいのでもそうなります。

他に良い方法は無いでしょうか?

623 :622:2005/11/22(火) 08:22:49
あ、VB6以前と書きましたけど実際はVB5を使ってます

624 :デフォルトの名無しさん:2005/11/22(火) 08:23:20
破損jpegなんて読み込むな

625 :デフォルトの名無しさん:2005/11/22(火) 08:32:29
表示前に破損Jpegだって分かればそうしますけどSUSIEプラグインの
"IsSupportedJpg"使っても判別できないんですよ

他に読み込む前にやばいのが分かる方法ってありますか?

626 :デフォルトの名無しさん:2005/11/22(火) 09:15:39
表示だけならIEでも貼り付ければ?

627 :デフォルトの名無しさん:2005/11/22(火) 09:23:40
>>621
強く断る

628 :デフォルトの名無しさん:2005/11/22(火) 09:43:05
>>627
却下

629 :デフォルトの名無しさん:2005/11/22(火) 09:44:36
だが断る

630 :デフォルトの名無しさん:2005/11/22(火) 09:51:44
大却下

631 :デフォルトの名無しさん:2005/11/22(火) 09:52:52
なお断る

632 :デフォルトの名無しさん:2005/11/22(火) 09:53:20
巨大却下

633 :デフォルトの名無しさん:2005/11/22(火) 09:57:08
さらに断る

634 :デフォルトの名無しさん:2005/11/22(火) 10:01:59
超巨大却下

635 :デフォルトの名無しさん:2005/11/22(火) 10:04:07
却下側の語彙が乏しいな

636 :522:2005/11/22(火) 12:14:33
(´-`).。oO(誰かお願いしますよ…まじで)

637 :デフォルトの名無しさん:2005/11/22(火) 12:18:47
>>550が糞コード晒してくれるまで待ちな

638 :デフォルトの名無しさん:2005/11/22(火) 12:46:49
>>622
ファイルの破損状況によると思う
余りのも無残に破損したファイルなら
何しようが無理だと思う

IFJPEGX.SPIを使うといいかも
ファイルをバイナリエディタでワザと壊しても
表示できてたよ(画像はメチャクチャだけど)

639 :デフォルトの名無しさん:2005/11/22(火) 16:51:06
>>522に必要なのはプログラマーではなくエスパーだと思う。

640 :デフォルトの名無しさん:2005/11/22(火) 18:09:46
エスパーて禿げワロタ
550に糞コードocx化してもらえw


641 :デフォルトの名無しさん:2005/11/22(火) 19:48:43
>>639はだいたひかる

642 :デフォルトの名無しさん:2005/11/22(火) 19:52:55
>641
どうでもいいですよ

643 :デフォルトの名無しさん:2005/11/22(火) 20:17:02
お〜いエスパー伊東  エスパー伊東はまだか

644 :エスパー伊藤:2005/11/22(火) 20:43:57
はい〜〜っ

645 :デフォルトの名無しさん:2005/11/22(火) 20:48:20
ユーザー定義型の構造体を他から共有して表示するよう
たのむ>エス伊東

646 :エスパー:2005/11/22(火) 21:14:22
>>522
コントロールを含むユーザ定義型というが、
そこコードは、TextBox型の変数が定義されているだけであって、
TextBoxのインスタンスが生成されているわけじゃない。

プログラムで、TextBoxのインスタンスを生成して、
それをフォームに表示するやり方は他の人どうぞ。

ここまで説明すればエスパーじゃなくてもなにがしたいか分かるだろ?

647 :デフォルトの名無しさん:2005/11/22(火) 21:25:39
>>611
> VBはそういうものなのか、以前Set NothingしないとGCされないようなバグでもあったのかどうなんでしょう。
昔探したけど、そういうバグがあったとかいう情報は見つからなかった。

バグだ!という情報が無かったわけではないが、それはよく読むとそれはバグではなく勘違い。
昔のVBはクラスやらオブジェクトやらがなかった。それがVB4(?)あたりで導入されたときに、

アプリが終了しないことがある

グローバルなForm1変数がForm1フォームを参照しているためにアプリが終了しない

Form1にNothingを入れると、Form1フォームの参照がなくなるためにアプリが終了する

Nothingを入れると解放。それだ!

という風に、VB4以前のプログラマがちゃんと原因を理解せずに解決してしまった方法 が、普及したのだと思っている。

648 :デフォルトの名無しさん:2005/11/22(火) 21:30:01
VBでオブジェクトが解放されないなんてありえない

649 :デフォルトの名無しさん:2005/11/22(火) 21:34:10
>>612
> でも実際どのタイミングでGCされるのかはVBのみぞ知るといった感じ?(知ってたら教えて)

どのタイミングでオブジェクトが破棄されるかは、そのコントロール(COMコンポーネント)の実装によるはず。

COMコンポーネント側から見ると、参照数が増える時点で、AddRef関数が即座に呼ばれ、
参照数が減る時点即座にで、Release関数が呼ばれる。

AddRef/Release関数の内部の処理を書くのは、COMコンポーネントプログラマの仕事
(実際はテンプレートそのままだろうけど)

たいていは、参照数が0になった時点で自分を破棄するように実装されている。
ただし、それは決まっているわけではなく、そうなっていないコントロールもあるらしい。

650 :デフォルトの名無しさん:2005/11/22(火) 21:36:52
>>648
たとえ、VB側で適切にコードを書いていたとしても、
COMコンポーネント自体にバグがあれば、ありえない話ではない。

COMコンポーネント部分がVBかという疑問は残るが。

651 :デフォルトの名無しさん:2005/11/22(火) 21:45:06
COMのライフサイクル管理とVBのガベージコレクションは別物だよ。

652 :デフォルトの名無しさん:2005/11/22(火) 21:52:26
>>651
根拠は。

653 :デフォルトの名無しさん:2005/11/22(火) 22:20:15
VB6以前ならGCは無いのでは?

654 :デフォルトの名無しさん:2005/11/22(火) 22:21:12
GCって何だ喰えるのか?

655 :デフォルトの名無しさん:2005/11/22(火) 22:36:14
>>649
見方の違いだけじゃないかな。COMの参照ポインタは確かに加算されるが、
下のようにVB内で3つの変数に代入したからといってCOMの参照カウンタは加算されない。
dim x1 as obj1, x2 as obj1, x3 as obj1
set x1 = new obj1
set x2 = x1
set x3 = x1
あくまでもNewされたobj1への参照がなくなったかどうかはVB内のGCによって管理され,
VBがGCするタイミングはx1, x2, x3からの参照がなくなった後任意のタイミング。
VBがこのobj1をGCするときにそれがCOMであれば参照カウンダを減算し開放するのは2次的なこと。

656 :デフォルトの名無しさん:2005/11/22(火) 22:39:12
>>653
ふるーいインタプリタBASICの時代からあるよ。
当時はせいぜい0や空文字になった変数や文字列用のワークを片付ける程度だったけどね。

657 :522:2005/11/23(水) 06:02:57
変数を宣言して、load とか setとかいろいろやってみたけどできません。
もうちょっとヒントください。

658 :デフォルトの名無しさん:2005/11/23(水) 09:45:47
もうちょっとヒントください、もうちょっとヒントください、と言い続けてたら
最後にはコード全部書いてもらっちゃいましたとさ。

という展開を期待してるのか?

659 :522:2005/11/23(水) 12:14:02
そういうわけでなないですが、インスタンスを作成して、フォームに表示だけじゃわかりません…

変数を宣言してload とか setでインスタンスを作成→.container .visible等を変更してフォームに表示

だとどこかおかしいですか?
ネットでサンプルを探しても全然見つからないんですよorz

660 :デフォルトの名無しさん:2005/11/23(水) 12:24:26
オブジェクト参照にとにかくNothingを入れとけって話は
たぶんエクセル関連のオブジェクトを突っ込んだときのオマジナイが
馬鹿の一つ覚え的にひろまったものじゃない?

「花ちゃん」とかいう有名なサイトに書かれているようなのね。
VBプログラマだけじゃないけど、経歴だけは無駄に長い(能力が経歴に比例してないw)
人ってプログラミングとはこういうオナジナイを覚えることだと思ってる節があるよね。

661 :デフォルトの名無しさん:2005/11/23(水) 12:33:38
>>659
今書いた動かないソース出せ。

662 :デフォルトの名無しさん:2005/11/23(水) 12:54:05
>>522は何がしたいのだろう。
ひょっとすると自分でもよくわかってないんじゃないの?
まず何をしたいのか明確にしないと話始まらないよ。まあネタかもしれないけど。

>>522を普通に読めば、txt1とtxt2を含むフォームが欲しいなら
デザイナでそういうフォームを作るだけだろ、としか思えない。


663 :デフォルトの名無しさん:2005/11/23(水) 13:37:34
アクティブレポートの解説ホームページってありますか?
探してみたんですけどなかなか詳しいページが見つからなくてここで質問させていただきました。

664 :デフォルトの名無しさん:2005/11/23(水) 15:18:51
>>522は動的にTextBoxが作りたいんだろ

VBはJAVAではありませんので漠然とTextBoxのインスタンスが存在するんではなく
FormがあってのTextBoxなので

Set udt522.txt1 = New VB.TextBox

With udt522.txt1
  Set .Container = Form1
  .Visible = True
End With

なんて出来ません Containerも変更できません


Set udt522.txt1 = Form1.Controls.Add("VB.TextBox", "Text1")
Set udt522.txt2 = Form1.Controls.Add("VB.TextBox", "Text2")
udt522.txt1.Visible = True
udt522.txt2.Visible = True

ってやってください

665 :522:2005/11/23(水) 15:59:22
>>664
お断りです。

666 :デフォルトの名無しさん:2005/11/23(水) 16:14:21
おとこわりだ ふぅー!

667 :522:2005/11/23(水) 17:31:52
>>664さん
>Set udt522.txt1 = Form1.Controls.Add("VB.TextBox", "Text1")
あ、なるほど! ちょっとやってみます。ありがとうございました!

で、目的はテキストボックスが二つ乗ったフレームを動的に増減したいんです。
関係するフラグを別配列で持っていたんですが、フラグの種類が多くて管理しにくいのでユーザー定義型でできないのかと思った次第です。

ユーザコントロールを作成したのですが、配列にすると、
コントロール内のイベント定義と、フォーム内のイベントの引数が違い(byref indexがある・ない?)
?でうまくいきませんでした。

ちょっと話がそれるかもなんですが、VB6のコントロールのインスタンスってのは>>664さんのおっしゃるとおり漠然としたものなのでしょうか?
変数宣言すればインスタンス? Loadしてからがインスタンスなのでしょうか?
VB6にインスタンスって言葉を持ち込むこと自体がおかしいのでしょうか?

668 :522:2005/11/23(水) 17:40:21
一応動かないソースも貼っておきます。

その1
dim obj as object
set obj = new udt522 '←ここでエラー
with obj.text1
.container=form1
.visible=true
end with

その2
dim udt as udt522
load udt.text1 '←ここでエラー

その2が動かない理由がよくわからないのですが、精進します。ありがとうございました。

669 :デフォルトの名無しさん:2005/11/23(水) 18:01:25
クリスマスまでに女ができるって感じ
のプログラムを
VBで作りたいのですが
どういう仕様で作ればいいでしょう?
ユーザコントロールでもいいとも〜

670 :デフォルトの名無しさん:2005/11/23(水) 19:18:46
>>667
漠然としてるのはVBのコントロールじゃなくて君の理解でしょ。
馬鹿じゃないの。

コントロールをフォームに追加する方法はググればいくらでも出てくる。
追加した複数のコントロールを一まとめで管理したいなら、
その追加したコントロールを構造体のメンバのオブジェクト変数に代入するだけ。
まあ構造体じゃなくてクラスにした方がいいと思うけどね。
イベントを扱うことやその他いろいろ考えると。
工夫すればフォームにコントロールを追加する処理をクラスの中に隠蔽できるわけだし。

671 :デフォルトの名無しさん:2005/11/23(水) 19:38:15
>>669
漠然としてるのはVBのコントロールじゃなくて君の理解でしょ。
馬鹿じゃないの。

672 :デフォルトの名無しさん:2005/11/23(水) 20:49:42
C#でDLLを作り、そのDLLをVB(A)で呼び出して使用したいと考えております。

//C#ソース
namespace ClassATest
{
public class Class1
{
public Class1()
{
}
public int[] retint(int i, int[] j)
{
int[] matrix = new int[2];
matrix[0] = i*2;
matrix[1] = j[0]+j[1];
return matrix;
}
}
}

次に続く

673 :162:2005/11/23(水) 20:50:17
//VB(A)ソース
Sub test()

Dim obj As ClassATest.Class1
Dim j(2) As Integer, Ans As Variant

ReDim Ans(2)
j(0) = 10
j(1) = 20
Set obj = New ClassATest.Class1

Ans = obj.retint(5, j)
MsgBox Ans(0)

End Sub

実行すると、Ans = obj.retint(5, j)の行で「型が一致しません」
と言われてしまうのですが、何故でしょう…?
jを配列ではなく、普通のinteger型にするとうまく動くのですが、
C#のDLLに配列型を渡すにはどのようにしたらいいんでしょうか…?

674 :デフォルトの名無しさん:2005/11/23(水) 20:50:23
横スレすみませんちょっと暇つぶしにリンクラベルを作ってみてたんですが
そういえばVBのマウスポインタでインターネットのURL上に来た時のマウス
「指先」はscreen,NousePointerのプロパティに存在しないんでしょうか

675 :672:2005/11/23(水) 20:52:45
インデントがなくなって見にくくなってしまいスイマセン…。
それと上の書き込みの名前は672の間違いです。

676 :デフォルトの名無しさん:2005/11/23(水) 21:02:56
>>673
C#のintはVBAのLongではないか?

677 :デフォルトの名無しさん:2005/11/23(水) 21:18:02
>>674
存在しない

678 :672:2005/11/23(水) 21:24:18
>>676
ありがとうございました!
Longにしたら一発で動きました。
あぁ、こんなことに丸一日使っちゃうなんて…。

679 :デフォルトの名無しさん:2005/11/23(水) 21:45:24
そこから、ろくな下調べもせずにいきなりコードを書く怠慢は結局高くつくと学習するか、
ああわかんない事があればダメモトでとにかく人に質問すればいいんだと学習するか。
672が後者のウザい奴にならないことを祈るばかり。


680 :672:2005/11/24(木) 01:46:29
次にこのスレに書き込むことは、質問に対する回答であることを誓います。

681 :デフォルトの名無しさん:2005/11/24(木) 02:10:32
テキストファイルに出力するところでわからないことがあります。

Open "text.txt" For Output as #1
For i = 1 to 5
  print #1, i;
next i
Close #1

とループカウンタの値をファイルに書き込むと
1 2 3 4 5
と空白が入ります。

ループカウンタの値を使わずに
Open "text.txt" For Output as #1
  print #1, 1;
  print #1, 2;
  …
  print #i1, 5
Close #1
と出力すると空白が入らずに
12345
となってしまいます。
なぜこうなるのか原因を教えてください。おねがいします。

682 :デフォルトの名無しさん:2005/11/24(木) 09:39:29
よくは判らんが、暗黙の型変換が入るからじゃないの?


683 :デフォルトの名無しさん:2005/11/24(木) 09:44:40
なぜといわれても、それがVBの挙動だとしか言いようが無いんだがな

684 :デフォルトの名無しさん:2005/11/24(木) 09:45:23
俺は下の条件でも空白有りだった

685 :デフォルトの名無しさん:2005/11/24(木) 13:16:44
じゃあ俺は空白なしで

686 :デフォルトの名無しさん:2005/11/24(木) 13:27:54
じゃあ俺は空白有り無しがランダムで

687 :デフォルトの名無しさん:2005/11/24(木) 14:32:51
じゃあ俺は全角スペースで

688 :デフォルトの名無しさん:2005/11/24(木) 17:05:08
>>681
ウチだと、どちらでも空白が入るな(VB6 SP6)。
数値型だから符号用に空白が入るんだろ。
print #1, CStr(i);
print #1, "1";
でやってみそ。

689 :デフォルトの名無しさん:2005/11/24(木) 17:18:11
>>688
空気読め

690 :デフォルトの名無しさん:2005/11/24(木) 17:30:09
VB6.0でWindowsのスタートメニューのようなものを実現したいのですが、相談させてください。
イメージとして、メニュー型ランチャのOrchishのような物を作りたいと考えています。

ググったりして、フォームのあらかじめ用意して置いたラベルにアイコンをドラッグして登録、
それをクリックすると開く、という事はできましたが、なんとなく見当ちがいのことをしている気がしてなりません。
(例えばラベルなんて使わないんじゃないか?とか)

スタートメニューのようなメニューの作製には、
なにか適した専用のツール(コンポーネント?)みたいなものがあるのでしょうか?
もしそうならそれが何と言うものか教えてください。

VB6.0というより、VB6.0でプログラムの基礎を学んだ程度の知識しかないので、
もしこの質問自体がまったくの見当違いであれば、勉強すべきものを教えてください。

691 :デフォルトの名無しさん:2005/11/24(木) 18:10:50
ステータスバーのようなコントロールに
文字列を右から表示し左へ消していくような
スクロールのような処理をつくりたいですが
どのように作ればすっきり動きそうでしょうか?
1秒5カラム(文字?)移動くらいを希望しております。

692 :デフォルトの名無しさん:2005/11/24(木) 18:44:54
VBの、というよりもアルゴリズムの質問になりますが、
アルゴリズムの質問スレが見つからない & VB6で開発しているので、
こちらで質問します。

ある多角形の中に、点を決められた個数プロットしたいんですが、
効率的にプロットするにはどうすればいいでしょうか?

たとえば、台形のような形の中に、点を100個(多くても少なくてもいけない)を
ランダムに打ちたいわけです。

今は多角形のリージョンを作成 & XYの最大最小を計算して、
その最大最小の中でランダムに点を発生させ、リージョンに入れば
合格の点としてカウント、それを望みの個数になるまで繰り返していますが、
個数が多くなったり、図形が細長かったりすると、非常に時間がかかります。

うまい解決方法はないでしょうか?


693 :デフォルトの名無しさん:2005/11/24(木) 19:43:36
どうやればいいんだろうねえ。俺も興味あるよ。
単純な多角形で、かつ点の密度が均一でなくてもよければ
円内のランダムな点を極座標で作ってそれを多角形内の点に写像することを
考えれば計算量すくなそうだけど。

密度を均一にしたい場合はθの確率密度関数を求めて、
それに基づいてランダムな極座標を作る必要がありそうだけど…どうすりゃいいんだろ

このスレに数学的なセンスの持ち主って少なそうだから回答は期待薄だと思う。

694 :691:2005/11/24(木) 19:53:39
一応イメージ的に自作してみたんだけど激しくプロセス食ってます。助けてください
Sub Main()
strMoji = "本日は晴天のもよう"
StatusBar1.Panels(1) = " " & strMoji
Do Until InStr(1, StatusBar1.Panels(1), Chr(32)) = 0
If chKPrc.Value <> 0 Then Exit Sub
DoEvents
Call stopp(40000)
StatusBar1.Panels(1) = Mid(StatusBar1.Panels(1), InStr(1, StatusBar1.Panels(1), Chr(32)) + 1) '& strMoji
Loop
strLen = Len(strMoji)
i = 2
Do Until strLen = 0
DoEvents
StatusBar1.Panels(1) = Mid(strMoji, i) '文字部分本体を前部から除去して詰めていく
Call stopp(60000)
i = i + 1
strLen = strLen - 1 '文字数のデクリメント
Loop
End Sub
Private Sub stopp(ByVal intWt As Long)
Dim h As Long
h = 0
Do While h < intWt
DoEvents
h = h + 1
Loop
End Sub

695 :デフォルトの名無しさん:2005/11/24(木) 20:04:31
>>694
stopp じゃなくって Sleep 使え
素直にタイマーでやった方が負荷少なくていいと思うよ

ステータスバーの文字スクロールなら JavaScript で山ほどサンプルあるから
VBに書き換えて使ってみ

696 :デフォルトの名無しさん:2005/11/24(木) 20:23:30
ステータスバーのどれだけの範囲でスクロールするんかによるけどな
サイズ関係無しに、ステータスバーの右端からだったら、
JavaScriptのサンプルなぞ役にたたん

697 :デフォルトの名無しさん:2005/11/24(木) 20:57:12
>>694
暇なんで書いてみた。こういう奴でよかったかな。

'Form1のコード
Private mDisplay As New Class1

Private Sub Form_Load()
  With mDisplay
    Set .Panel = StatusBar1.Panels(1)
    Set .Timer = Timer1
    .Message = "本日は晴天なり"
    .ShiftPerSec = 5
    .Start
  End With
End Sub

698 :デフォルトの名無しさん:2005/11/24(木) 20:59:17
'Class1のコード
Private mPanel As Panel
Private WithEvents mUpdateTimer As Timer
Private mMessage As String
Private mCurrentMessageToShow As String
Private mLenCurrentMessageToShow As Integer
Private mShiftPerSec As Single

Public Property Set Panel(pnl As Panel)
  Set mPanel = pnl
End Property

Public Property Set Timer(tmr As Timer)
  Set mUpdateTimer = tmr
  mUpdateTimer.Interval = 1000 / mShiftPerSec
End Property

Public Property Let Message(msg As String)
  mMessage = msg
  mLenCurrentMessageToShow = Len(msg)
End Property

699 :デフォルトの名無しさん:2005/11/24(木) 20:59:50
Public Property Let ShiftPerSec(spd As Single)
  If spd > 0 Then
    mShiftPerSec = spd
  End If

  If Not (mUpdateTimer Is Nothing) Then
    mUpdateTimer.Interval = 1000 / mShiftPerSec
  End If
End Property

Public Sub Start()
  mUpdateTimer.Enabled = True
End Sub

700 :967:2005/11/24(木) 21:11:48
コピペ漏れ
Private Sub Class_Initialize()
mMessage = "No Message !"
mLenCurrentMessageToShow = Len(mMessage)
mShiftPerSec = 5
End Sub

久々にVB触ったけどやっぱ不便だねいろいろ。
痒い所に手が届かない不条理感というかなんというか。。

701 :デフォルトの名無しさん:2005/11/25(金) 08:41:22
VB6SP5です。
Delphiで作ったMainForm.exeと、VBで作ったフォーム無しexeが、
同一フォルダにあります。
VBのexeはMainから呼ばれてユーザ権限チェックをしてるんですが、
その結果をメインに返す方法をお教えください

702 :デフォルトの名無しさん:2005/11/25(金) 08:52:37
>>692
図形上の点の数なんて、
対象の図形を塗り潰しておいて、描点時に色を調べれば一発じゃない?

703 :デフォルトの名無しさん:2005/11/25(金) 08:57:38
>>701
VBでEXEのリターンコード設定するのは推奨されてないので
ファイルやマップ経由でやりとりするかプロセス間通信等で。

704 :デフォルトの名無しさん:2005/11/25(金) 10:01:13
>>656
そうそう。文字列を大量に使ってると不意に2秒くらい固まったりして
音楽演奏が途切れたり・・・ってもうベーマガ世代ばればれやん。

705 :692:2005/11/25(金) 12:36:04
>>693
すみません、自分もご他聞にもれず
数学にうといもので、書かれたこともあまり理解できてません・・(・∀・;)
ゆっくり調べてみます

>>702
や、それはリージョンの内包判定(PtInRegion)の方法を変えただけで、
その部分を問題にしてるわけではないんです。

>個数が多くなったり、図形が細長かったりすると、非常に時間がかかります。

というわけなんです。
ランダムを発生させる範囲を、真四角にしなければいいのかな・・・

706 :デフォルトの名無しさん:2005/11/25(金) 13:36:16
>>692
一旦矩形内の全ピクセルを調査し、リージョン内部にあるものを配列等に保存
そこからランダムにn個抽出してみては?

このほうが時間がかかるかもしれないが・・・

707 :デフォルトの名無しさん:2005/11/25(金) 13:51:41
コマンドボタンに右クリックでメニューが呼び出されるようにしたんだけど、
コマンドボタンを配列にするとコンパイルエラーがでますた。
原因をおしえてね(はぁと)

Private Sub command1_Mousemove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'もし、クリックされたのが右ボタンならポップアップメニューを表示する。

If Button = vbRightButton Then
Me.PopupMenu mnu
End If

End Sub

708 :デフォルトの名無しさん:2005/11/25(金) 14:05:01
>>705
>XYの最大最小を計算して
1. リージョンに外接する矩形を小さい矩形のメッシュに
  分割、それと同要素数の 2次元配列 (Boolean) を作る。
2. 各々のメッシュがリージョンにかかっていれば True。
3. ある点がリージョンの内部かどうか判定する前に
  その座標を元に直接この配列を参照する。
分割数によっては 2. でかえって時間が掛かるかも知れず。

709 :デフォルトの名無しさん:2005/11/25(金) 14:27:43
>>707
Index As Integer を付加

Private Sub command1_MouseMove(Index As Integer, Button As Integer, …

710 :707:2005/11/25(金) 14:29:31
>>709
うわっ!!!!
すっげぇーーーーー
できた!!!!!
おまい天才!!!!!
もう神!!!!!
助かったぜ!!!!

711 :デフォルトの名無しさん:2005/11/25(金) 15:48:26
うざ

712 :デフォルトの名無しさん:2005/11/25(金) 16:04:29
>>707
ミスターTに聞けば良いと思うよ。

713 :デフォルトの名無しさん:2005/11/25(金) 16:23:05
>>712
発想がつまんねぇんだよ
存在ごと消えうせろ

714 :デフォルトの名無しさん:2005/11/25(金) 16:30:26
うざ

715 :デフォルトの名無しさん:2005/11/25(金) 16:32:33
うわっ!!!!
すっげぇーーーーー
できた!!!!!
おまい天才!!!!!
もう神!!!!!
助かったぜ!!!!


716 :デフォルトの名無しさん:2005/11/25(金) 16:41:32
VBが読めるっていうのはどういうことが出来るまでのレベルなのか、
大体でいいので誰か教えて

717 :デフォルトの名無しさん:2005/11/25(金) 16:46:30
>>716
VBが読めるくらいのレベル

718 :デフォルトの名無しさん:2005/11/25(金) 16:54:19
 ブビ

 と
 読
 め
 れ
 ば
 
 そ
 れ
 で
 
 神


719 :デフォルトの名無しさん:2005/11/25(金) 17:33:25
VBが読むより空気読む方が先

720 :デフォルトの名無しさん:2005/11/25(金) 18:06:40
>>707
>>709のとおりにしたらIndexがいくつなのか調べるのを忘れないで。
あと次からはエラー番号もお願い(ウフ)

721 :デフォルトの名無しさん:2005/11/25(金) 19:04:26
>>716
なにやってるか自然言語で説明できるくらい

722 :デフォルトの名無しさん:2005/11/25(金) 20:59:47
ベーマガ移植大作戦

723 :デフォルトの名無しさん:2005/11/25(金) 23:02:31
申し訳ない。>>537と別人ですが同じ質問です。

VB helpで検索しようとすると、
「ローカルディスクは、"MSDN VS 6.0 local"のファイルを含んでいません。
再度、ファイルの場所を指定してください。
C:\Program Files\Microsoft Visual Studio\MSDN98\98VS\1041\」
と表示されます。
VBの自宅での勉強のため、Microsoft visual studio 6.0 disc1と
MSDN disc1を会社から借り、インストールした状態です
(月曜日の返却時はアンインストールします)。

また、ググろうとすると、$の文字を認識してもらえないようで
$を無視した検索結果となります。
他の文字列での検索で、関数説明などは検索できたのですが、
$付と無しの差の説明は、まだ見つけられておりません。

VB5の入門マニュアルも会社から借りたのですが、
こちらには特に記述は無いようです。

ご教示をお願いしたく思います。

724 :デフォルトの名無しさん:2005/11/25(金) 23:12:15
月曜までで辞めるなら覚える必要も無い

725 :デフォルトの名無しさん:2005/11/25(金) 23:21:28
>>724
説明足らずでした…。
来週月曜日に一旦会社に出て、12/1(契約開始日)から出勤となります。

726 :デフォルトの名無しさん:2005/11/25(金) 23:27:16
>>723
諦めが早すぎる。そういう粘着性が足りない人はプログラマ向かないよ。

現に、今思うに任せて「vb left "left$" 違い」でググってみたけど
ちゃんと解説してるところが見つかったよ。

727 :デフォルトの名無しさん:2005/11/25(金) 23:29:53
$付きは文字列で値を返すってだけじゃないの?

728 :デフォルトの名無しさん:2005/11/25(金) 23:33:04
>>726
うああ!ありがとう (´;ω;`)

ググる時に、"で囲むことも勉強になりました。
もっと粘着しつつ精進します <(_ _)>

729 :デフォルトの名無しさん:2005/11/25(金) 23:36:15
りろーd orz

>>727
ありがとう (´Д⊂
$無しでVariant型、$付でString型と判りました。

730 :デフォルトの名無しさん:2005/11/26(土) 07:58:58
>>727
はぁ?
$あろうが無かろうが文字列だよ

731 :デフォルトの名無しさん:2005/11/26(土) 08:41:34
どう見ても文字列型の間違いです。ありがとうございました。

732 :デフォルトの名無しさん:2005/11/26(土) 09:03:29
はぁ?
$があろうが無かろうが文字列型だよ

733 :デフォルトの名無しさん:2005/11/26(土) 09:22:24
はぁ?
$があろうが無かろうが文字列型だよ


734 :デフォルトの名無しさん:2005/11/26(土) 11:00:40
>>729
かつてはそうだったかも知れないが、VB6現在でそうかどうかは疑問だな。
$つきはすでにレガシー構文じゃないかな。

735 :デフォルトの名無しさん:2005/11/26(土) 11:47:05
直前のレスも見えない人ですか?

736 :デフォルトの名無しさん:2005/11/26(土) 11:51:42
実験してみた

繰り返した回数 20,000,000
格納先をstring型とvaliant型二つ用意してかかった秒数比較

     string型  valiant型
Mid$    3       5
Mid     5       7
Left$    2       3
Left     5       5
Right$   3       3
Right    5       5

737 :デフォルトの名無しさん:2005/11/26(土) 12:14:02
>>736
さんくす
機能してるようですね

738 :729:2005/11/26(土) 12:14:27
ありゃ?
リファレンスマニュアルが無いとだめか…。

>>736見て、$付けたままコーディングしてみる。
月曜日に聞いてみるよ。
レスありがとん。

739 :デフォルトの名無しさん:2005/11/26(土) 22:32:07
Variant型は嫌いです

740 :デフォルトの名無しさん:2005/11/26(土) 22:46:10
>>738
VB6でサーバーにあるテキストファイル(複数)を読み込んで
編集した内容をサーバーのあるフォルダに保存するような物を
作っているのですが、複数のファイルを読み込むにはどうしたら
良いのでしょうか?どなたか教えてください。


741 :デフォルトの名無しさん:2005/11/26(土) 22:47:58
複数のファイルにアクセスすれば医院で内科医?

742 :デフォルトの名無しさん:2005/11/26(土) 22:54:31
>>741
レス有難うございます。色々本などを見たのですが
下記のような記述を見つけたのですが、これだと複数のファイルは
読み込めるのでしょうか?ファイル番号と言うのが良く分からないのですが,,,

open ファイル名 For input As#ファイル番号

743 :デフォルトの名無しさん:2005/11/26(土) 23:01:29
そもそもそれで開けるようなサーバーなのかと

>>740には早いような希ガス

744 :デフォルトの名無しさん:2005/11/26(土) 23:03:54
>>743
やっぱりDAOとかADOって言うのを使わないと
サーバーには接続出来ないんですか?

745 :デフォルトの名無しさん:2005/11/26(土) 23:05:35
>>742
ファイル番号は1〜511の範囲で勝手につければいい。同時に複数のファイルを
使用する場合は重複しないように気をつけて。
ただ、本とかの例では #1 とか #2 と直値で書いていることが多いけど
できれば FreeFile で、VB に空き番を管理させる方がいい。
以下、サンプル。

Dim File1 As Integer, File2 As Integer

File1 = FreeFile
File2 = FreeFile

Open "file-1" For Input As #File1
Open "file-2" For Input As #File2

INPUT #File1, Data1
INPUT #File2, Data2

Close #File1
Close #File2

746 :デフォルトの名無しさん:2005/11/26(土) 23:07:00
2つのイベントが同時に発生したらどうなりますか

747 :デフォルトの名無しさん:2005/11/26(土) 23:08:13
>>746
同時には発生しません

748 :デフォルトの名無しさん:2005/11/26(土) 23:10:30
>>745
こいつ、質問の意味がわかってんだろうか

749 :デフォルトの名無しさん:2005/11/26(土) 23:11:31
>>745
回答有難うございました。
ちなみにもう一つお聞きしたいのですが、ファイルのパス名とかは
どう記述すればよいのでしょうか?

例サーバー:\\j0001
読み込みたいファイルパス:\c:\db\***.txt

750 :デフォルトの名無しさん:2005/11/26(土) 23:16:07
\\j0001\C$\db\***.txt

751 :デフォルトの名無しさん:2005/11/26(土) 23:19:50
>>750
有難うございます。
やってみます。

752 :デフォルトの名無しさん:2005/11/26(土) 23:28:29
(゚д゚;)

753 :661:2005/11/27(日) 19:38:31
以前、一緒にお仕事をしていた方でVBStudioを使用時にカーソル位置に合わせて
縦に線が入るツール?を使っていた方がいたのですが、ご存知でしょうか?
目的としてはインデントを分かりやすくするものだと思うのですが。。。
ネストの連続になると結構便利なのかなと思います。
どうぞよろしくお願い致します。

754 :デフォルトの名無しさん:2005/11/27(日) 19:55:26
>>753
今書いた動かないソース出せ。

755 :デフォルトの名無しさん:2005/11/27(日) 21:45:37
くだらない質問ですいません。
ファイルの作成ってどうするんですか?
具体的にソースを書いてください

756 :デフォルトの名無しさん:2005/11/27(日) 22:02:59
>>755
   ,-ー──‐‐-、
   ,! ||      |
   !‐---------‐
  .|:::i ./´ ̄ ̄.ヽ.i
  |::::i | |\∧/.|..||
  |::::i | |__〔@〕__|.||
  |::::i |.(´・ω・`)||
  |::::i |  キング  ||
  |::::i | カワイソース.||
  |::::i L___________」|
  |::::i : : : : : : : : : |
  `'''‐ー------ー゙


757 :デフォルトの名無しさん:2005/11/27(日) 23:16:44
>>756
VB6を使って簡単な物を作ったことがある程度なのですが、
いま下記のようなツールを作っているのですが、ファイルの読み込みと
読み込んだファイルから在庫を減らすことが出来ません。

1.在庫リスト(Excel)を読み込む
2.使用した品物のリスト(txtx)を読み込む
3.読み込んだtxtファイルの使用数から、在庫リストの在庫数を引く

ヒント程度でも良いので、どなたか教えてください。

758 :デフォルトの名無しさん:2005/11/27(日) 23:21:17
>>757
ヒント:Excel + VBA

最終的にVB6でやるにしても、
Excel + VBAで同処理が出来るようにならないと始まらない

759 :デフォルトの名無しさん:2005/11/27(日) 23:22:50
>>758
在庫リストをtxtファイルにしたら、VB6だけで出来ますか?

760 :デフォルトの名無しさん:2005/11/27(日) 23:37:11
>>759
>>758を百回読んで脳手術受けろ

761 :デフォルトの名無しさん:2005/11/27(日) 23:41:16
>>760
?


762 :デフォルトの名無しさん:2005/11/27(日) 23:46:32
>>759
Excelのオートメーションを利用できる環境なら(Excelがインスコされてれば)
在庫リストがExcelファイルでもVB6で出来る
もちろんテキストやcsvでも問題ないけど

どっちにしろ出直してこい

763 :デフォルトの名無しさん:2005/11/28(月) 00:09:04
KeyPressイベントでdeleteは使えないんですか

764 :デフォルトの名無しさん:2005/11/28(月) 00:12:49
DeleteはKeyDownで

765 :デフォルトの名無しさん:2005/11/28(月) 00:18:52
VBで作ったプログラムはボタンの上にフォーカスがあるときでも
IMEをONにできますよね。
でもIMEがONだとスペースキーでボタンが押せなくなります。
ボタンにフォーカスされたときにIMEをOFFにして
ONにできないようにしたいのです。
こういうことは簡単にはできないんでしょうか。

VCプログラムだと何もしなくてもボタンにフォーカスがあるときは
IMEをONにすることができません。
これが合理的な仕様だと思います。

766 :デフォルトの名無しさん:2005/11/28(月) 00:30:29
次の患者さんどうぞ〜

767 :デフォルトの名無しさん:2005/11/28(月) 06:04:07
ImmGetContext
ImmSetOpenStatus
ImmReleaseContext

VBからCのAPI呼ぶ方法はそこら辺でぐぐればいっぱい出てくるからあとは自力でどうぞ

768 :デフォルトの名無しさん:2005/11/28(月) 08:29:31
押されたキーが全角スペースの場合も同じようにする

769 :765:2005/11/28(月) 12:56:40
>>767
ありがとうございます。
IMEModeプロパティのないコントロールについては、
Got_FocusイベントでIMEをOFFにしたり入力モードを設定したりする処理を
全部書いてやる必要があるんですね・・・。

もうちょっと気の利いた仕様にしてほしいですね。VB。

770 :デフォルトの名無しさん:2005/11/28(月) 13:38:38
次の患者さんどうぞ〜

771 :次の患者です:2005/11/28(月) 21:19:38
ライブドア証券に買い注文を出すためのヒントを教えて頂けないでしょうか

ログインと買い注文画面まで開くことは出来ました
↓で買い注文画面を表示させてその後どうすれば良いのか全くわかりません
宜しくお願いします。


-------------------------------------------------------
Sub ie_go_ken3()

Dim objIE As Object 'IEオブジェクト参照用

'インターネットエクスプローラーのオブジェクトを作る
Set objIE = CreateObject("InternetExplorer.application")

objIE.Visible = True '見えるようにする

'文字列で指定したURLに飛ぶ
objIE.navigate "https://trade.kabu.livedoor.com"

'表示終了まで待つ
Do While objIE.busy = True
DoEvents
Loop

End Sub
----------------------------------------------------------

772 :デフォルトの名無しさん:2005/11/28(月) 21:31:57
objIE.Document.forms


773 :771:2005/11/28(月) 21:52:37
どう見ても自己解決です。本当にありがとうございました。

Private Sub Command1_Click()
WebBrowser1.Navigate "https://kabu.livedoor.com/login/input"
End Sub

Private Sub Command2_Click()
Dim i, j
For Each i In WebBrowser1.Document.Forms
Debug.Print i.Action, i.method
For Each j In i
If TypeOf j Is IHTMLInputElement Then
Debug.Print , j.Name; "="; j.Value
End If
Next j
Next i
End Sub

Private Sub Command3_Click()
Dim f As MSHTML.IHTMLFormElement
Set f = WebBrowser1.Document.Forms(0)
f.Item("koza1").Value = "xxx" '部店コード
f.Item("koza2").Value = "yyy" '口座番号
f.Item("passwd").Value = "zzz" 'パスワード
f.Item("submit").Click 'ログインボタンを押す (IHTMLInputButtonElement.click)
End Sub


774 :デフォルトの名無しさん:2005/11/28(月) 22:33:04
>>773
それじゃ買い注文だせないぞw

775 :デフォルトの名無しさん:2005/11/28(月) 23:41:54
アンケートなどで使われているチェックボックスをONする
VBAのIE操作を知りたいのです
宜しくお願い致します。

776 :デフォルトの名無しさん:2005/11/28(月) 23:58:27
>>775
>>526

777 :771:2005/11/29(火) 00:01:30
>>773
ソース公開ありがとうございます
VBAで試してみましたがエラーになりログイン出来ませんでした
もう少し研究してみます


778 :デフォルトの名無しさん:2005/11/29(火) 00:05:33
ヒント:ユーザーフォーム名.チェックボックスオブジェクト名.Value = True

779 :デフォルトの名無しさん:2005/11/29(火) 00:16:06
>>778
IEのって出てるぜ?
WEBサイトのチェックボックスを操作したいんじゃね?

780 :デフォルトの名無しさん:2005/11/29(火) 00:16:22
>>771
チェックボックスにチェックを入れるには HTMLInputElement の Checked を True に。 Value では出来ん
エラーの内容も書かないなんてw
タイプライブラリを参照していないから    だったりしてなw

781 :デフォルトの名無しさん:2005/11/29(火) 09:27:07
スクリプト失敗して変な値段で売買したらやだな。

782 :デフォルトの名無しさん:2005/11/29(火) 13:56:53
フォルダのフルパスから最下層のフォルダ名のみを取得したいのですがどうすればいいですか?

783 :デフォルトの名無しさん:2005/11/29(火) 14:10:47
>>782
たまには脳みそ使った方が良いぞ

InStrRev
Right

784 :デフォルトの名無しさん:2005/11/29(火) 14:56:38
>>782
Dim fso As New Scripting.FileSystemObject
Dim f As Scripting.folder
Set f = fso.GetFolder("C:\winnt\system32")
Debug.Print f.Name

785 :デフォルトの名無しさん:2005/11/29(火) 15:13:41
見直しお願いします。
tmp(秒)をhour(時間)、minute(分)、sec(秒)にしたいときって
Dim hour As Long
Dim minute As Long
Dim sec As Long

sec = tmp Mod 60
minute = (tmp / 60) Mod 60
hour = tmp / 60 / 60

で、問題ないですか?

786 :デフォルトの名無しさん:2005/11/29(火) 15:26:14
minute = (tmp / 60) Mod 60
    ↓
minute = (tmp - sec) Mod 60

折角最初に秒数出してるんだからそれを使わない手は無いと思うんだけどな



787 :785:2005/11/29(火) 15:36:45
>>786
仰るとおりです。精進します。


788 :デフォルトの名無しさん:2005/11/29(火) 15:47:22
>>786
いや、その理屈はオカシイ

789 :デフォルトの名無しさん:2005/11/29(火) 15:52:52
>>787
Dim t_minute As Long
Dim hour As Long
Dim minute As Long
Dim sec As Long

sec = tmp Mod 60
t_minute = (tmp - sec) / 60
minute = t_minute Mod 60
hour = (t_minute - minute) / 60

これでいい

790 :デフォルトの名無しさん:2005/11/29(火) 15:53:45
>>785
minuteとhourでわざわざ同じ計算が中に入ってるのが勿体無いな

791 :デフォルトの名無しさん:2005/11/29(火) 16:15:59
/ の結果は四捨五入(銀行丸め)だ
\ を使え

792 :デフォルトの名無しさん:2005/11/29(火) 16:33:15
>>791
>>789

793 :デフォルトの名無しさん:2005/11/29(火) 17:09:38
つうか、銀行丸めじゃないでしょ。


794 :デフォルトの名無しさん:2005/11/29(火) 17:30:21
/ は実数での割り算
\ は整数での割り算

/ の計算結果を整数型へ代入するときに丸めか切捨てが発生するはずだが、
どっちだっけ?

795 :デフォルトの名無しさん:2005/11/29(火) 17:46:05
>>794
/ は丸めが発生する
>>789 は余りが0になるようにしている

796 :デフォルトの名無しさん:2005/11/29(火) 18:01:19
>>793 銀行丸めだよ

Dim a As Long

a = 3 / 2
a = 5 / 2

両方とも a は 2 になる

797 :デフォルトの名無しさん:2005/11/29(火) 18:02:57
もう面倒だから

Dim hour As Long
Dim minute As Long
Dim sec As Long
Dim vtime() As String
vtime = Split(Format(tmp / 86400, "hh:mm:ss"), ":")
hour = vtime(0)
minute = vtime(1)
sec = vtime(2)

で良いじゃん

798 :デフォルトの名無しさん:2005/11/29(火) 18:11:58
>>796
実数で計算されて代入時に銀行まるめ
>>794 が言いたいのはそういうことだろう。
/ の結果は 1.5 と 2.5 Long型に代入した時点で銀行丸めで 両方とも2になる。

799 :デフォルトの名無しさん:2005/11/29(火) 18:21:05
おもしろいな、どっちも .5 なのに片方は切り捨て片方は切り上げなのかよ

800 :デフォルトの名無しさん:2005/11/29(火) 18:22:03
バカしかいないのかこのスレは

801 :800:2005/11/29(火) 18:26:57
どうみても自分が馬鹿です、本当にありがとうございました。

802 :デフォルトの名無しさん:2005/11/29(火) 18:41:08
アップローダーを設置してるサイトに、ある件名のファイルがアップロードされたら
ダウンロードするというプログラムをVB5で作ることはできますか

803 :デフォルトの名無しさん:2005/11/29(火) 18:41:11
\ 演算子
2 つの数値の商を計算し、結果を整数で返します。
除算を実行する前に、数式はバイト型 (Byte)、整数型 (Integer)、または長整数型 (Long) の式に丸められます。

/ 演算子
2 つの数値の商を計算し、結果を浮動小数点数で返します。

データ型変換関数
CInt 関数および CLng 関数は常に最も近い偶数に値を丸めます。たとえば、0.5 を 0 に、1.5 を 2 にそれぞれ丸めます。


少しはMSDN読んでから会話しろ

804 :デフォルトの名無しさん:2005/11/29(火) 21:37:26
>>802
数分毎にWebBrowser1.Refreshを実行して、
WebBrowser1_DocumentCompleteでWebBrowser1.document.linksを(ry

805 :デフォルトの名無しさん:2005/11/30(水) 09:38:26
>>802
可能だよ。
ただ、自動ダウンロードツール対策として見えた文字を記入させるロダもあるからがんばれ。

806 :デフォルトの名無しさん:2005/11/30(水) 15:54:52
ちょっと皆さんにお聞きするんですが。

消費税計算含む金額を扱う時ってcurrency型で処理しますよね。
integerとかlongとか織り交ぜて掛けたり割ったりしませんよね。

外注さんに常識だろうと指摘してみたら「仕様変更だ!」と逆切れされちゃったんですが。
どうなんでしょうか。そこまでコーディング規約に書いて渡さなくちゃいけないものなんでしょうか?


807 :デフォルトの名無しさん:2005/11/30(水) 16:27:30
>>806
お前が悪い

808 :デフォルトの名無しさん:2005/11/30(水) 16:42:18
いや、悪いのは俺だ

809 :デフォルトの名無しさん:2005/11/30(水) 16:42:39
>>806
充分な速度が出て他に影響が無くて出てくる答えが正解ならば、変数の仕様なんざどーでもいい
事後メンテまで外注に投げるつもりなら、答えが正解なのにコードにいちゃもんつけるのはお門違い
メンテをあんたが引き受ける予定なら、最初から細かく規定しておくべき事柄
あくまで「常識」に拘るなら、その外注が「常識」を遵守するかどうかを計れなかった自分のミス
それでも納入後に変更させるなら、それは仕様変更だ

810 :デフォルトの名無しさん:2005/11/30(水) 17:27:34
どうみても仕変です。
本当にありがとうございました。

811 :デフォルトの名無しさん:2005/11/30(水) 18:14:05
>>806
どういう形式で外注にたのんだか知らないが、関数等を外注に頼む時に精度を仕様に盛り込むのは常識だ。
後、どうみても業務時間内に2chを利用するな。

812 :デフォルトの名無しさん:2005/11/30(水) 18:26:32
>>806
まあ >>809 に同意なんだが、常識かどうかって点では
「未来永劫 .NET に移行するつもりがないのなら
 Currency 型でもいいだろう」
とは言える。

' 桁数と小数以下の処理の為に Long/Integer 使って
' 苦労するくらいなら Decimal 型の方がいいかも知らんが、
' 使った事ないんで知らん。

>>811
>どうみても業務時間内に2chを利用するな。
済みません… orz

813 :デフォルトの名無しさん:2005/11/30(水) 18:32:10
業務時間中に普通に2ch巡回してる俺がここで二言

>>806
・自分の思ってる常識が世界共通だと思うな
・言わなきゃ伝わらない

814 :デフォルトの名無しさん:2005/11/30(水) 19:42:27
>>811
ごめwwwwwwwwww 俺も仕事中常にJane起動wwwwwwwwwwwww

815 :デフォルトの名無しさん:2005/11/30(水) 21:03:59
>>811
うるせーバカ

816 :デフォルトの名無しさん:2005/11/30(水) 23:33:51
win98+VS6proであと10年はイケル 文系アマだしw

817 :デフォルトの名無しさん:2005/12/01(木) 00:32:58
VS6pro であと10年はなんとかなる鴨試練が
win98 はもうだめぽ


818 :デフォルトの名無しさん:2005/12/01(木) 02:59:59
11月からVB6.0SP6に触れ始めました.
VBでOLEを使おうと思っているのですが,必要な情報が
なかなか見つからず困っているのでご助力願いたいです.


OLEにSolidWorksというCADアプリをいれるのですが,
マクロのソースをはっつけてVBから操作することはできました.

ですが自分のやりたいこととしては,アプリの操作と
VBのフォームなどの操作を同様(?)に行いたいです.
DoVerbで編集モードに入ってしまうとVBからの操作が出来ないので.
一つのアプリケーションのようにしたい,というとわかってもらえるでしょうか.

編集モードからイベントが取得できれば,ちょっと不格好ですが
なんとかできそうなのですが,そういうことは出来ますか?

自分で色々考えているのですが,OLEでは無理かなという気がしてきています.

ご助力お願いします.

819 :デフォルトの名無しさん:2005/12/01(木) 07:58:10
>>818
そのCADアプリの会社に聞けよ

820 :デフォルトの名無しさん:2005/12/01(木) 10:21:12
コマンドボタンにアイコンを表示したいのですが、どうすればできますか?
教えてください(>_<)

821 :デフォルトの名無しさん:2005/12/01(木) 10:44:22
>>820
アイコンだけなら標準コントロールで可能。
アイコンのとなりにテキストを入れたい場合は標準ではできない。
どっちだ?

822 :デフォルトの名無しさん:2005/12/01(木) 10:46:18
>>820
コマンドボタンの Pictureプロパティ で アイコン を指定すれ。

823 :デフォルトの名無しさん:2005/12/01(木) 11:39:47
>>820
>>821前者ならStyleプロパティとPictureプロパティで。
Styleに気付かないこと多し。

後者なら
ttp://www.netlaputa.ne.jp/~stadt/vb/p21_cmdct/cmdct.htm
以前ここにお望みのものがあったけど消えてます。
やってたことは「絵と文字のビットマップを作ってPictureプロパティに
設定する」というのをAPIガリガリ書いて、というもの。
キャプション固定なら、ペイントツールで作って貼っても同じです。


824 :820:2005/12/01(木) 13:30:53
後者です。
コマンドボタンにアイコンと説明のテキストをつけようと思ってます

825 :デフォルトの名無しさん:2005/12/01(木) 15:09:30
>>824
> 後者です。
だから何?

どっちの場合だとしても、もう答え出てるんだから後は自分でやれよ

826 :デフォルトの名無しさん:2005/12/01(木) 16:47:53
>>825
お断りですm(_ _)m

827 :デフォルトの名無しさん:2005/12/01(木) 18:35:59
すいません。
WSHでVBScriptを使っている人のスレってどこかありませんかね?
どなたか誘導よろ。

828 :デフォルトの名無しさん:2005/12/01(木) 18:43:42
>>827
お断りですm(_ _)m

829 :デフォルトの名無しさん:2005/12/01(木) 19:08:47
>>827
WSHスレはこの板とWin板にある

VBScript限定のスレは無いが、
VBScriptは上記2つのWSHスレとこのスレ、
及びWeb制作管理板のいくつかのスレで扱われてるので
VBScriptのスレを作る必要もないだろ

830 :827:2005/12/01(木) 21:23:44
ありがとん。VBScriptじゃなくてWSHで引っ張ればよかったのね。

831 :デフォルトの名無しさん:2005/12/02(金) 00:25:07
環境
VB6 SP6 + XP SP2 + IE6
です。

VB6のインターネットトランスファーコントロールで
URLのデータを取得するときに OPENURLメソドを
使用しています。

このコントロールでURL取得時にプロキシ経由での取得を行いたいのですが
IEの設定が繁栄されると考えていいのでしょうか?

832 :デフォルトの名無しさん:2005/12/02(金) 00:31:59
いいです。

833 :デフォルトの名無しさん:2005/12/02(金) 11:51:05
∩∩
(,,゚Д゚)<先生方、質問です。

仕事で、VBソフトを10個稼動させているんですが、なぜか3〜6時間後に1個づつフリーズします。
環境は、XP、セレロン2G、メモリ1G、HD80Gです。

フリーズ前は、CPU使用率は60%前後、PF使用率も200M前後で、フリーズするとCPU使用率
は100%になりました。

受注先に問い合わせても、原因が解らないようです。

834 :デフォルトの名無しさん:2005/12/02(金) 11:55:19
>>833
受注先の奴らを問題のPCの前に連れて来て原因究明しろよ('A`)


835 :デフォルトの名無しさん:2005/12/02(金) 11:56:30
>>833
そんな問い合わせ方じゃ先方も困るだろ
原因を解決したいならきちんと状況を説明しないと

836 :デフォルトの名無しさん:2005/12/02(金) 12:03:00
>>833
どうせ DoEvents ループ で止まってるんだろ。
ソース晒してみぃや。

837 :デフォルトの名無しさん:2005/12/02(金) 15:02:56
>>836
ソース譲渡なのか……

838 :デフォルトの名無しさん:2005/12/02(金) 15:51:58
>>837
>>833 だけで分かるなら解決してやってくれよ。

839 :デフォルトの名無しさん:2005/12/02(金) 16:13:22
>>836
つうかあんたの書き込みも>>833と同じ程度のレベルなような。

840 :デフォルトの名無しさん:2005/12/02(金) 17:30:12
開発元でもないのにソース持ってるわきゃねぇ

841 :デフォルトの名無しさん:2005/12/02(金) 18:39:29
>>833
その状態でPCを休止モードに移行汁
休止状態のPCのHDDを、ドライブイメージとかでバックアップ。
あとは休止状態のPC受注先に移送、リジュームしたら受注先を苛める。


842 :デフォルトの名無しさん:2005/12/02(金) 21:54:03
VBからVB-Reportを使ってエクセル定義ファイルをオープン(start.embed)する時に
なぜかエラーになってしまいます。考えられる原因は何でしょうか。
コンポーネントは参照設定されているし、エクセルのパスも問題ありません。


(環境)
・WinXP Pro
・VB6.0 SP2
・VB-Report1.0



843 :デフォルトの名無しさん:2005/12/02(金) 22:09:47
>>842
その状態からすると、オマエの頭が悪いんだろ。
そうでなければ、もう少し状況の説明がいるぐらい判断つくはずだから。

844 :デフォルトの名無しさん:2005/12/02(金) 22:17:57
>>843
口は悪いが禿同である

845 :デフォルトの名無しさん:2005/12/02(金) 22:22:49
何か事情があるのか、書き間違いなのかしれないが
VB6 「SP2」ってのがなんとも。。。

846 :デフォルトの名無しさん:2005/12/03(土) 00:25:32
DoCmd.TransferText acImportDelim, ,"インポートデータ", _
"C:\Documents and Settings\デスクトップ\ファイル名.csv"


ACCESSSでボタンを作ってこういうのをあてはめたら、
一応押すごとにインポートされるものは出来たんだけど、
ファイル名のところなんだけど、同じフォルダ内にある全ての
CSVをインポート処理してくれるようにならないかな?

欲をいえば、
いくつファイルをインポートしたかメッセージ出てくると、なおいいね。

4つのファイルをインポートしました。

とか

847 :デフォルトの名無しさん:2005/12/03(土) 01:39:42

Dim lstrFile As String

Text1.Text = ""
lstrFile = Dir("C:\Documents and Settings\Makoto\デスクトップ\適性テスト\*.csv")

Do Until lstrFile = ""
Text1.Text = Text1.Text & lstrFile & vbCrLf
lstrFile = Dir()
DoCmd.TransferText acImportDelim, , "インポートデータ", _
"C:\Documents and Settings\Makoto\デスクトップ\適性テスト\$lstrFile$.csv"
Loop


MsgBox "インポートしました!"



↑これでは出来ない。なんでだー

848 :デフォルトの名無しさん:2005/12/03(土) 02:18:07
>>847
Dim lstrDir As String, lstrFile As String
Dim nCount As Integer

Text1.Text = ""
lstrDir = "C:\Documents and Settings\Makoto\デスクトップ\適性テスト\"
lstrFile = Dir(lstrDir & "*.csv")

Do Until lstrFile = ""
Text1.Text = Text1.Text & lstrFile & vbCrLf
nCount = nCount + 1
lstrFile = Dir()
DoCmd.TransferText acImportDelim, , "インポートデータ", lstrDir & lstrFile
Loop

MsgBox nCount & "個のファイルをインポートしました。"

849 :デフォルトの名無しさん:2005/12/03(土) 03:44:41
WEBサーバの自作でいろいろ苦労してるのですが

そういう人は他に居ない?

850 :デフォルトの名無しさん:2005/12/03(土) 07:26:54
>>848
Accessで作って欲しいものある?
http://pc8.2ch.net/test/read.cgi/db/1116568169/809,836,837,838

バカマルチにレスするなよ

851 :デフォルトの名無しさん:2005/12/03(土) 08:40:10
VB6.0のプロジェクトファイルから
フォーム数やステップ数を出力してくれるような
アプリケーションはないでしょうか?
できればフリーソフトなどあればうれしいのですが・・・

852 :デフォルトの名無しさん:2005/12/03(土) 08:59:53
>>851
自分で作れよ
プロジェクトファイルはテキストなんだからさ

853 :デフォルトの名無しさん:2005/12/03(土) 09:02:26
>>852
vectorにいろいろありまいたので試して見ます。
ありがとうございました。

854 :デフォルトの名無しさん:2005/12/03(土) 10:53:39
>>849
普通の人はVB6でWEBサーバーを作ったりしないので居ない

855 :デフォルトの名無しさん:2005/12/03(土) 12:53:28
>>854
昔DDJな何かでVB5.0使ってWebサーバ作ったという記事を見た事がある

856 :デフォルトの名無しさん:2005/12/03(土) 15:48:25
>>848
ありがとうございました

857 :デフォルトの名無しさん:2005/12/03(土) 15:52:09
>>848
ただ

変数を宣言したあとの

Text1.Text = ""

が黄色になって「オブジェクトが必要です」
と出てくるのですが。。。。

858 :デフォルトの名無しさん:2005/12/03(土) 15:52:24
>>857
死ね

859 :デフォルトの名無しさん:2005/12/03(土) 16:05:23
3行目のText1.Text = "" と7行目のText1.Text = Text1.Text & lstrFile & vbCrLf は要らないだろ。


860 :デフォルトの名無しさん:2005/12/03(土) 16:06:31
>>857
Text1っていうオブジェクトが無いんだろ
キミの出した情報じゃそれしかわからんよ

861 :デフォルトの名無しさん:2005/12/03(土) 16:11:32
>>860
お返事ありがとうございます。
たった今、フォームにテキスト1を追加したんですが、やはりできませぬ。。。

862 :デフォルトの名無しさん:2005/12/03(土) 16:18:41
こいつ本当に真性バカだな。

863 :デフォルトの名無しさん:2005/12/03(土) 16:19:24
>>861
標準モジュールに書いていたってオチ

864 :デフォルトの名無しさん:2005/12/03(土) 16:19:29
フォームにテキストボックスを追加して、それのプロパティで名前の部分をtext1にしたんですが、
今度は「コントロールがフォーカスを取得していないときに、コントロールのプロパティまたはメソッドは
参照することができません:エラー2185」と出てしまいました

865 :デフォルトの名無しさん:2005/12/03(土) 16:20:42
超絶バカ

817 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 21:23:47 ID:FRlIojdR
>>816
できれば、その前に、1つ教えてほしいことがある
access2002からモジュールの新規作成選択したときさ、
普通はVBのフォームとか、ツールボックス出るじゃん。
あれの出し方だけ教えて

866 :デフォルトの名無しさん:2005/12/03(土) 16:23:14
なんとでもいってもらって、結構なので正直、ドがつく初心者の俺でも分かるくらいの
説明で教えてほしい。。。。。。

867 :デフォルトの名無しさん:2005/12/03(土) 16:24:18






      A c c e s s か よ !





 

868 :デフォルトの名無しさん:2005/12/03(土) 16:24:29
お前が勉強してこい

869 :デフォルトの名無しさん:2005/12/03(土) 16:26:24
848さん以外に分かる人いないってこと??

870 :デフォルトの名無しさん:2005/12/03(土) 16:27:56
だれかーーーーーーーーわかりませんかーーーーーーーーーーーーー

871 :デフォルトの名無しさん:2005/12/03(土) 16:30:26
誰が質問して 何の回答求めてるのか分からん 名前くらい入れろ
環境教えろ VBなのかアクセスなのかエクセルなのか
一番最初に質問したレス番号教えろ

872 :デフォルトの名無しさん:2005/12/03(土) 16:32:38
809 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 17:35:25 ID:azKk0wjH
CSV(カンマ区切りで)、1行目だけに左上詰めから15項目だけあるファイルを、
次々にアクセスのデータベースに追加していく形のものを作ってほしいです。
可能ならば、ボタンをポチっと押しただけで追加して、追加が終わったら、
その抽出したCSVファイルを削除しますか?とかで削除できたらサイコー!

812 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 19:11:57 ID:azKk0wjH
つか、ACCESSのモジュール作成からVBたちあげても、
デザインビューのフォームとかツールボックスが出ない!!!
なんでだよ!!

817 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 21:23:47 ID:FRlIojdR
>>816
できれば、その前に、1つ教えてほしいことがある
access2002からモジュールの新規作成選択したときさ、
普通はVBのフォームとか、ツールボックス出るじゃん。
あれの出し方だけ教えて

822 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 21:50:27 ID:FRlIojdR
>>820
ならんでるよ。そこのモジュールから新規作成してるんだけどなー

826 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 21:56:27 ID:FRlIojdR
フォームあるよー

アクセスでは、ボタン作ってそれをクリックしたら簡単にcsvからaccessに読み込むのできないの?

873 :accessマン:2005/12/03(土) 16:33:33
私が質問していました。質問内容は>>846にあります。

環境はaccess2003です。ドがつくほどプログラムのことは
分からないんです。すいません

874 :デフォルトの名無しさん:2005/12/03(土) 16:33:35
837 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 23:51:45 ID:FRlIojdR
DoCmd.TransferText acImportDelim, ,"インポートデータ", _
"C:\Documents and Settings\デスクトップ\ファイル名.csv"


ACCESSSでボタンを作ってこういうのをあてはめたら、
一応押すごとにインポートされるものは出来たんだけど、
ファイル名のところなんだけど、同じフォルダ内にある全ての
CSVをインポート処理してくれるようにならないかな?

838 名前:NAME IS NULL[] 投稿日:2005/12/03(土) 00:01:07 ID:2/RezQHy
欲をいえば、
いくつファイルをインポートしたかメッセージ出てくると、なおいいね。

4つのファイルをインポートしました。

とか

841 名前:NAME IS NULL[sage] 投稿日:2005/12/03(土) 14:54:56 ID:???
分かる人いるなら教えてよ

844 名前:NAME IS NULL[] 投稿日:2005/12/03(土) 15:28:15 ID:2/RezQHy
DoCmdの引数にsFileを渡す方法がわからない

875 :デフォルトの名無しさん:2005/12/03(土) 16:34:19
>>872,>>874
まとめ乙!

876 :デフォルトの名無しさん:2005/12/03(土) 16:34:53
どう見てもAccess初心者でVBのコード以前の問題です。
本当にありがとうございました。

877 :デフォルトの名無しさん:2005/12/03(土) 16:36:20
835 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 22:26:41 ID:FRlIojdR
今花より団子見てるから、あとでね

836 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 23:00:48 ID:FRlIojdR
ただいま、つか出来上がったw

878 :デフォルトの名無しさん:2005/12/03(土) 16:36:45
819 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 21:38:17 ID:FRlIojdR
>>818
おまえはヴァカ?

879 :デフォルトの名無しさん:2005/12/03(土) 16:38:02
ここのスレ見てるとプログラマーのだいたいの性格わかるなw

880 :デフォルトの名無しさん:2005/12/03(土) 16:39:21
>>861
長くなってもいいから何をどうしてどうなったのか詳しく書け


881 :デフォルトの名無しさん:2005/12/03(土) 16:40:48
死ねばいいのに

882 :accessマン:2005/12/03(土) 16:46:42
>>880

はい。ありがとうございます。

まずACCESSのフォームの新規作成で コマンドボタンを1つフォームに追加しました。

そのコマンドボタンの右クリックしてイベントのビルドでコードビルダを選択し、

Private Sub コマンド0_Click()  と End Sub の間に >>848様の

>Dim lstrDir As String, lstrFile As String
>Dim nCount As Integer
>
>Text1.Text = ""
>lstrDir = "C:\Documents and Settings\Makoto\デスクトップ\適性テスト\"
>lstrFile = Dir(lstrDir & "*.csv")
>
>Do Until lstrFile = ""
>Text1.Text = Text1.Text & lstrFile & vbCrLf
>nCount = nCount + 1
>lstrFile = Dir()
>DoCmd.TransferText acImportDelim, , "インポートデータ", lstrDir & lstrFile
>Loop

MsgBox nCount & "個のファイルをインポートしました。"


を追記したんですが、デバッグ画面で text1.Text=""の行が黄色くなっていたので
またAccessのフォーム作成画面に戻りテキストボックスを追加して、
プロパティからtext1という名前に変えて、実行すると今度は
「コントロールがフォーカスを取得していないときに、コントロールのプロパティまたはメソッドは
参照することができません:エラー2185」と出てしまいました

883 :デフォルトの名無しさん:2005/12/03(土) 16:48:12
>>882
いいから、おまえは死ね

884 :デフォルトの名無しさん:2005/12/03(土) 16:48:50
>>882
お前さ、まずAccessの使い方から学べよアホ
Me付けなきゃどのテキストボックスか分からないだろ死ね

885 :デフォルトの名無しさん:2005/12/03(土) 16:50:31
Me??

886 :デフォルトの名無しさん:2005/12/03(土) 16:51:11
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ

887 :デフォルトの名無しさん:2005/12/03(土) 16:54:10
VB使ったことないんだけどDL方法からアプリ開発まで全部俺に教えてwwwwwwwwwwwwwwwwww

888 :デフォルトの名無しさん:2005/12/03(土) 16:54:51
>>887
いいよ

889 :デフォルトの名無しさん:2005/12/03(土) 16:55:21
早く教えろよカス

890 :888:2005/12/03(土) 16:57:15
>>889
いやだ


891 :デフォルトの名無しさん:2005/12/03(土) 16:58:29
うそつき・゚・(ノД`)・゚・

892 :デフォルトの名無しさん:2005/12/03(土) 16:59:03
マルチしただけで、ここまで叩かれた奴はじめて見たw

893 :デフォルトの名無しさん:2005/12/03(土) 17:00:06
マルチだからじゃなくバカだから叩かれているだけだろ

894 :デフォルトの名無しさん:2005/12/03(土) 17:01:38
VBプログラマってバカに厳しいんだなw
まぁ、なぜか分かる気もするがw

895 :デフォルトの名無しさん:2005/12/03(土) 18:51:26
マルチでバカだからだな

896 :デフォルトの名無しさん:2005/12/03(土) 18:54:50
合わせ技で一本か

897 :デフォルトの名無しさん:2005/12/03(土) 19:14:12
フォルダ内の全てのファイルにある処理をするときはどのような構文を書けばいいですか?

898 :デフォルトの名無しさん:2005/12/03(土) 19:15:13
フォルダ内のファイルを列挙して
全部に処理すればいい

899 :デフォルトの名無しさん:2005/12/03(土) 19:55:05
質問です。
 str = "123123123……"と言う文字列があり、先頭から5文字目を"0"に変更したいとします。
現在は、
 x=mid(str,1,4) & "0" & mid(str,6)
とやっているのですが、他にスマートな関数が用意されていたら教えてください。

900 :デフォルトの名無しさん:2005/12/03(土) 20:06:06
なかなかスマートじゃないか。

901 :accessマン:2005/12/03(土) 20:06:09
試行錯誤して出来たぜ!w

902 :デフォルトの名無しさん:2005/12/03(土) 20:09:56
>>889
mid(s,5,1)="0"
でいいよ。

903 :902:2005/12/03(土) 20:11:53
>>899だた

904 :デフォルトの名無しさん:2005/12/03(土) 20:14:56
Mid関数知ってるのにMidステートメント知らない奴が居るのかよ

905 :899:2005/12/03(土) 20:26:41
ありがとうございました。orz

906 :デフォルトの名無しさん:2005/12/03(土) 21:01:14
 access側のフィールド名を自分で色々とつけていた場合

DoCmd.TransferText acImportDelim を使うときは、どういうふうにすればいいか分かる香具師いる?
フィールド名をつけてなきゃ、スムーズにいくんだけどなぁ

907 :デフォルトの名無しさん:2005/12/03(土) 21:03:12
>>906
Accessで作って欲しいものある?
http://pc8.2ch.net/test/read.cgi/db/1116568169/853

お帰りバカaccessマン

908 :デフォルトの名無しさん:2005/12/03(土) 21:04:19
ただいまw

909 :デフォルトの名無しさん:2005/12/03(土) 21:06:08
試行錯誤して出来たぜ!w

910 :848:2005/12/03(土) 21:10:40
なんか漏れのせいで微妙に荒れてしまったな。スマソ。

>>850
マルチとは知らずorz

911 :デフォルトの名無しさん:2005/12/03(土) 21:13:42
>>910
おまえのせいでだいぶ完成したぜw

912 :デフォルトの名無しさん:2005/12/03(土) 21:13:58
849 名前:NAME IS NULL[] 投稿日:2005/12/03(土) 20:08:55 ID:2/RezQHy
>>848
おまえがしねよw
はっはははは、できあがったからには、もうどうでもいいしw

913 :デフォルトの名無しさん:2005/12/03(土) 21:14:33
>>906
つ ttp://www.accessclub.jp/bbs5/0010/vba2551.html

914 :デフォルトの名無しさん:2005/12/03(土) 21:18:06
できたw

915 :デフォルトの名無しさん:2005/12/03(土) 21:37:22
野ブタをプロデュースみてて ひさびさにドラマにハマりそうになった。
このクソ女め

916 :デフォルトの名無しさん:2005/12/04(日) 00:01:15
質問です。
VB6でコンパイルエラー「メモリが不足しています」が発生しています。
このプロジェクトはソース量が巨大で、その一部を除くとコンパイルできるようになります。
変数の総数、コード量など何らかのコンパイラの制限に引っかかっているのでしょうか?
誰かご存知の方教えて下さい。

917 :デフォルトの名無しさん:2005/12/04(日) 00:04:10
PCにメモリどれくらい積んでるんだ?

918 :916:2005/12/04(日) 00:11:35
512MBです

919 :デフォルトの名無しさん:2005/12/04(日) 00:29:33
OSがXPだとしたら開発に使うには足りないな
2kだとしてもギリギリか

920 :デフォルトの名無しさん:2005/12/04(日) 00:47:53
>>919
余裕だろ。

921 :デフォルトの名無しさん:2005/12/04(日) 01:00:01
メモリ64kbでコンパイラ動かしてた時代は遠くなったな

922 :デフォルトの名無しさん:2005/12/04(日) 01:59:55
>>916
プロジェクトファイルを右クリックしてコンパイル

923 :デフォルトの名無しさん:2005/12/04(日) 10:34:18
逆コンパイルはどのツールが良いのでしょうか?

924 :デフォルトの名無しさん:2005/12/04(日) 10:40:29
>>923
細木数子にでも聞け

925 :デフォルトの名無しさん:2005/12/04(日) 18:17:45
プログラム暦半年の若造です。VB6 SP5でテキストファイルに書かれた文章を
いじくるプログラムをつくっているのですが
For i = 1 to Len(String)
If Mid(String, i, 1) = """ then
と二重引用符を見つけたら処理をするというIf文を作りたいのですが
駄目っぽいのは目に見えてるのですがもしこういうのを作るには
文字コードやバイナリ状態のをIf文で処理させたほうがいいのでしょうか?
ものすごく馬鹿なことしてるように見えるかもしれませんがお知恵拝借よろしくお願いします。

926 :デフォルトの名無しさん:2005/12/04(日) 18:29:21
とりあえず"""ではなく""""な
あとMidではなく…(以下略

927 :デフォルトの名無しさん:2005/12/05(月) 01:21:13
>>925
根本的な話としてファイル内の文字列をいじくるプログラムは
やりたい処理によって1文字ずつ処理していく方法がよかったり
文字列として処理していく方法がよかったりする。
また、バイナリ形式のまま処理した方が良い場合もある。

要するにどういじくりたいのか解らないのでどうしたら良いのかは回答できない

928 :デフォルトの名無しさん:2005/12/05(月) 06:47:23
変数名Stringは使えない

929 :デフォルトの名無しさん:2005/12/05(月) 07:15:23
>>928
いや、さすがにそれは書き込むときに変えてるんだろwwwwwwwwwwwwwww

930 :デフォルトの名無しさん:2005/12/05(月) 11:22:26
Call Shell("rundll32.exe shell32.dll,Control_RunDLL", vbNormalFocus)
この内容でコントロールパネルは起動させることができたのですが、
その他上記の"Contorol"を"Mycomputer"や"Mynetwork"に変えてもマイコンピューターやマイネットワークなどを起動させることができません。
どの用に変更すればいいか教えていただけませんか?


931 :デフォルトの名無しさん:2005/12/05(月) 11:55:26
>>930
explorer /root,,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
explorer /root,,::{208D2C60-3AEA-1069-A2D7-08002B30309D}

932 :930:2005/12/05(月) 14:30:04
>>931
Private Sub Command1_Click()
explorer /root,,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
end sub

これに何が足りないか、もう少し詳しく教えていただけませんか?

933 :デフォルトの名無しさん:2005/12/05(月) 14:44:33
ちなみに列挙型だと
Enum e
  [String]
End Enum
っていうふうに書いて使えたりする。

934 :デフォルトの名無しさん:2005/12/05(月) 14:46:35
>>932
足りないのは頭だと思いますが、
まずはぐぐれ

935 :930:2005/12/05(月) 14:50:48
explorer /root,,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
ぐぐってもコマンドプロンプトで書いたら起動できるやりかたしかでてこねぇよ!!!
VBでどうやるんだよ!?


936 :デフォルトの名無しさん:2005/12/05(月) 14:57:12
>>935
Call Shell(文字列) って何やってるか知ってる?

937 :930:2005/12/05(月) 15:06:19
でけた!!!!
>>936
マジサンクス!!!!

ホントありがとー(^^)/

938 :デフォルトの名無しさん:2005/12/05(月) 15:32:04
930の
すごい
バカ

939 :デフォルトの名無しさん:2005/12/05(月) 15:32:51
>>938
タコ

940 :デフォルトの名無しさん:2005/12/05(月) 15:51:23
ん? Accessマン帰ってきた?

941 :925:2005/12/05(月) 16:17:08
>>927
とりあえずAscをつかって文字コードで判別する
やり方で自己解決しちゃいましたが
ファイル内の書式が
[設定1]
AAAAA = "あああああ"
BBBBB = "びびびびび"
のようになってて"〜"間の文字を取得したいんです。
For文で1文字ずつ移動させて"がある場合だけ文字を
VB内の変数に記録し続けるって感じのアルゴリズムを考えて
たのですが今の俺じゃ効率悪い方法しか思いつかない・・・
orz

942 :デフォルトの名無しさん:2005/12/05(月) 16:29:05
つ[正規表現]

943 :デフォルトの名無しさん:2005/12/05(月) 16:57:57
ISNUMERIC関数で、4d9などの文字列がTRUEで返って来るんですが…

何故?

944 :デフォルトの名無しさん:2005/12/05(月) 17:13:38
>>943
ヒント:16進数

対処法はWebに腐るほど転がってる

945 :デフォルトの名無しさん:2005/12/05(月) 17:18:19
>>941
文字列の書式によるが
InStr とか Replace が使えそう。

946 :945:2005/12/05(月) 17:27:28
>>941
iniファイル形式だろうから
GetPrivateProfileString() API を使う方法もある。

947 :デフォルトの名無しさん:2005/12/05(月) 18:53:38
質問なんですけど、フォームにエクセルのシートを貼り付けて、右クリックのショートカットメニューを消したいんですけど、知ってる人がいたらおしえてください。


948 :925:2005/12/05(月) 22:18:42
>>946

ありがとうございます。
GetPrivateProfileString()でいけるようになりました。
iniファイルだってことすっかり忘れてた・・・。orz
逝ってきます。

949 :デフォルトの名無しさん:2005/12/05(月) 22:51:56
>>947
マルチ死ね

950 :デフォルトの名無しさん:2005/12/06(火) 01:54:54
>>947
Office2000・XPなんかのDeveloperEditionについてきたVBAの説明マニュアルを読め
まずはそれからだ

951 :デフォルトの名無しさん:2005/12/06(火) 15:11:59
ソースの改修をしているのですが、
定義未宣言の変数が大量にあって困っています。

OptionExplicit記述をして一つ一つ潰すにしてもあまりに量が多いので
せめて一覧出力して修正量がどれくらいか知りたいのですが、
なにかいい方法はありませんか?

952 :951:2005/12/06(火) 15:13:57
書き忘れたので追記・・・

OSはWinXPPro
VB6+SP6です。どうぞよろしくお願いします(´・ω・)

953 :デフォルトの名無しさん:2005/12/06(火) 15:29:35
がんばって下さい。

954 :デフォルトの名無しさん:2005/12/06(火) 15:53:29
OptionExplicitを宣言して、コンパイルエラーで潰すのが一番確実で正しいと思うが。
修正量なんて知らないほうが良いんじゃないの?w
全ロジック見直しですっていって工数見積もれば。

955 :デフォルトの名無しさん:2005/12/06(火) 18:29:36
今、VB6.0でエクセルの帳票を作っているのですが、
コードが変わることによりブレイクして地域名が変わり
改ページの処理をするようにしなくてはいけないんですけれど、
方法がわかりません。

地域名  福岡
---------------------------------------
コード  地域名
---------------------------------------
0041   福岡


(現状)コードが42になったらブレイクして佐賀に変わる
改ページの処理がわかりません。

地域名  福岡
---------------------------------------
コード  地域名
---------------------------------------
0041   福岡
0042   佐賀


よろしくお願いします。

956 :デフォルトの名無しさん:2005/12/06(火) 18:30:25
質問なんですけど、フォームにエクセルのシートを貼り付けて、右クリックのショートカットメニューを消したいんですけど、知ってる人がいたらおしえてください。

957 :デフォルトの名無しさん:2005/12/06(火) 18:49:50
マルチ帰れ

958 :デフォルトの名無しさん:2005/12/06(火) 19:15:48
>>951
VB.NETへのマイグレーションツールを使う
ちなみに、関係ないエラーも数万〜数十万件のオーダーででると思うから泣かない様に

959 :デフォルトの名無しさん:2005/12/07(水) 09:38:59
>>955
EXCELでの改ページの方法がわからないの?
改ページのタイミングを検出する方法がわからないの?

960 :デフォルトの名無しさん:2005/12/07(水) 09:57:59
Excelでマクロ組む場合の基本。
やりたいことをマクロの記録でVBAに吐かせる。
あとはその選択セルとかを変えるだけ。

961 :デフォルトの名無しさん:2005/12/07(水) 10:29:02
データコンボコントロールの使い方について教えてください。

Form_loadでDBにコネクションを貼り、unloadで切断するアプリケーションを作っています。
このアプリにADODCとデータコンボコントロールを追加しました。
ADODCの接続文字列にはForm_loadで用いるものと同じものを使っています。
データコンボコントロールはこのADODCをRowSourceとしています。

その結果、動作には問題無いのですがFormの起動がえらくもっさりしてしまいました。
余計なDB接続を作ってしまっただと思います。

Form_loadで生成したコネクションオブジェクトを流用することはできないのでしょうか?

962 :デフォルトの名無しさん:2005/12/07(水) 10:32:47
質問です。ActiveX DLLを作成しているのですが
'Module1
Public Type TestStruct1'ユーザー定義
strIp As String
strUser As String
strPass As String
End Type
'Class1
Public GetHostInfo(stDisk As String) As TestStruct1
End Function

でコンパイルエラーが出ます。DLLで持つ共通関数の構造体を
外部モジュールから構造体を丸々参照できるようにしたいです

963 :デフォルトの名無しさん:2005/12/07(水) 10:34:17
>>959
改ページのタイミングを検出する方法がわからないのです。

もし、よろしければご教授ください。


964 :デフォルトの名無しさん:2005/12/07(水) 11:57:50
>>963
ttp://www.tt.rim.or.jp/~rudyard/torii009.html

ここ参照

965 :デフォルトの名無しさん:2005/12/07(水) 12:08:23
>>962
Public GetHostInfo(stDisk As String) As TestStruct1

     ↓

Public Function GetHostInfo(stDisk As String) As TestStruct1

966 :デフォルトの名無しさん:2005/12/07(水) 12:20:14
定数の型指定についてなのですが、
Web上のサンプルを見ると

Private Const HOGE As Long = &H1

と、型を指定している場合と

Private Const HOGE = &H1

と、型を指定していない場合があり、
型を指定しない方が多いように見受けられますが、
逆に変数では型を指定していないものはほとんど見あたりません。
なぜ変数はほとんどの場合型を指定しているのに
定数だと型を指定しないことが多いのですか?

967 :デフォルトの名無しさん:2005/12/07(水) 12:23:58
>>966
変数で型の指定を省略するとVariantになる。
けれどConstでは定数の値から適当な型を選んでくれるはず。

さらに、たしか昔はConstでは型を指定できなかったような気もする。

968 :デフォルトの名無しさん:2005/12/07(水) 14:12:22
>>965
すみませんFunction は漏れていたのですがFunction追加しても
改善されないようです。
もし駄目な場合はEXE化してcommand()で引数を渡すよう
思索してるんですが、これまた、引数としては一行の文字列になってまして
この引数をそれぞれの型で個別にやりとりさせる方法ってありますか?

969 :デフォルトの名無しさん:2005/12/07(水) 14:25:16
>>968
TestStruct1もクラスにしてしまえばどうだ。
もちろんプロパティ使えばTypeと見た目は変わらないように作れるだろ。

970 :デフォルトの名無しさん:2005/12/07(水) 15:35:26
>>962
Module1に書いてあるものを、Class2に書いて。
Class2はプロパティInstancing=6(GlobalMultiUse)で。

971 :デフォルトの名無しさん:2005/12/07(水) 16:02:13
テンプレ議論はあだ〜?チンッチンッ☆(AA省略)

972 :デフォルトの名無しさん:2005/12/07(水) 17:18:31
VBで作ったexeファイルにフォントの埋め込みをしたいと思いますが、ムリでしょうか?

973 :デフォルトの名無しさん:2005/12/07(水) 20:03:24
>>972
埋め込みって、フォントファイル?文字のBMP?埋め込みってコンパイル時?後から?

974 :デフォルトの名無しさん:2005/12/07(水) 20:14:38
>>972
可能です。

975 :デフォルトの名無しさん:2005/12/08(木) 02:44:33
新そば食べました。
http://pc8.2ch.net/test/read.cgi/tech/1133977286/l50

976 :デフォルトの名無しさん:2005/12/08(木) 03:51:38
>>975
何てことすんねん

977 :デフォルトの名無しさん:2005/12/08(木) 08:22:32
VB6.0にてスプレッドの項目をクリップボードに
コピーしたんですが2000行(68列)のデータが
コピーされず100行の絞込みを行った場合
コピーされたので、何かいい解決方法はないでしょうか?


978 :デフォルトの名無しさん:2005/12/08(木) 09:41:37
>>977
質問文を書き直す。

979 :デフォルトの名無しさん:2005/12/08(木) 10:01:44
>>978 質問わかりにくくてすいません。
環境VB6.0
スプレッドにてデータを表示
データレコード数2000件
行数68
列数2000
以上データをClipboard.SetText (.Clip)
にてクリップボードに出力したが出来ませんでした。
データ量を減らすと出来るのですが・・・
行数68
列数100
でクリップボードに出力が成功しています。

980 :デフォルトの名無しさん:2005/12/08(木) 12:00:24
Excel VBA でMSCommを使おうとしていますが、
On_commイベントでの受信ができません。
Windows XP Pro SP2, Excel 2003 SP1, VBA(VB6.0相当?)
PC: Excel使用, 外部装置:何か来ると、ステータスを返す

以下のプロシージャで"hoge"が送れました。
Private Sub Command1_Click()
Set mscomm1 = CreateObject("MSCOMMLib.MSComm.1")
mscomm1.CommPort = 1
mscomm1.Settings = "9600,N,8,1"
mscomm1.PortOpen = True
mscomm1.Output = "hoge"
mscomm1.PortOpen = False
End Sub
外部装置からステータスが返ってきますが、下のイベントは発生しません。
Sub MSComm1_OnComm()
MsgBox "fuga"
End Sub
Comman1_Click() 内で Wait を使うと拾えます。
If Application.Wait(Now + TimeValue("0:00:1")) Then
data = mscomm1.Input
End If
アドバイスお願いします。


981 :デフォルトの名無しさん:2005/12/08(木) 12:33:52
>>980
mscomm1のクラスオブジェクト変数のスコープの問題とか?


982 :962:2005/12/08(木) 14:40:21
みなさんありがとうございました。色々ご教授いただいた方法を
試みまして、クラスにプロパティを作りました。たすかりました

983 :デフォルトの名無しさん:2005/12/08(木) 14:57:07
>>980
WithEvents 付けてる?

984 :デフォルトの名無しさん:2005/12/08(木) 15:15:07
>>981, 983
レスありがとうございます。
今まで、クラスモジュールを使ったことがなく、
今回のようなケースで使うのかと初めて知りました。

[ツール]-[参照設定] Microsoft Comm Control 6.0 にチェック
クラスモジュール(Class1)
-------------------------------------------
Public WithEvents mscm As MSCommLib.mscomm

Private Sub mscm_OnComm()

End Sub
-------------------------------------------
標準モジュール(Module1)
-------------------------------------------
Dim mscomm1 As Class1

Sub SetMscommEvent()
Set mscomm1.mscm = MSCommLib.mscomm
End Sub
-------------------------------------------
本に、実際のオブジェクトと関連づける必要がある、
とあったので、上のようにしましたが、
「メソッドまたはデータ メンバが見つかりません。」
とエラーが出ます。
Set mscomm1.mscm = MSCommLib.mscomm
だと、「オブジェクトが必要です」
Set mscomm1.mscm = CreateObject("MSCOMMLib.MSComm.1")
だと、「オブジェクト変数または With ブロック変数が設定されていません。」
あと、少しでうまくいく気がするのですが...

985 :デフォルトの名無しさん:2005/12/08(木) 15:16:05
訂正

Set mscomm1.mscm = mscomm
だと、「オブジェクトが必要です」


986 :デフォルトの名無しさん:2005/12/08(木) 15:19:07
Set mscomm1 = New Class1

Set mscomm1.mscm = MSCommLib.mscomm
の前に追加

987 :デフォルトの名無しさん:2005/12/08(木) 17:37:39
>>986
Set mscomm1.mscm = New MSCommLib.mscomm
じゃね?

988 :980:2005/12/08(木) 17:56:55
レスありがとうございます。
VBなら簡単なのに。VBAだとここまでてこずるとは。
標準モジュール(Module1)
-------------------------------------------
Sub SetMscommEvent()
Set mscomm1 = New Class1
Set mscomm1.mscm = New MSCommLib.mscomm
End Sub

Private Sub SendData()
Set mscomm1 = New MSCommLib.mscomm
mscomm1.CommPort = 1
mscomm1.Settings = "19200,N,8,1"
mscomm1.PortOpen = True
mscomm1.Output = "piyo"
mscomm1.PortOpen = False
End Sub

Sub mscm_OnComm()
MsgBox "fuga"
End Sub
-------------------------------------------

SetMscommEvent()を一回実行してから受信すれば、
mscm_OnComm()が実行されると期待したのですが、
まだ、反応なしです。


989 :デフォルトの名無しさん:2005/12/08(木) 18:26:04
BASP21を利用して メールで添付されてきたCSVファイルを取り出して 指定したフォルダに
自動的に保存したいのですが。

「 output = bobj.ReadMail(file, nobody, Folder) 」を
下のコードの中にどのように追加すればいいでしょうか?


Dim bobj, ar
Dim Server As String, User As String, Pass As String, Command As String, Folder As String
Set bobj = CreateObject("basp21") ''BASP21オブジェクト
Server = "pop.xxxxx.com" ''POP3サーバー
User = "toru_tanaka" ''アカウント名
Pass = "password" ''パスワード
Command = "SAVEALL" ''コマンド
Folder = "<" & ThisWorkbook.Path & "\mail" ''保存するフォルダ
ar = bobj.RcvMail(Server, User, Pass, Command, Folder)
If IsArray(ar) Then
MsgBox "メールを受信しました"
Else
MsgBox "新着メールはありません"
End If
Set bobj = Nothing


990 :デフォルトの名無しさん:2005/12/08(木) 18:40:00
どうも、980はインスタンスの概念がわからないようだな。

991 :980:2005/12/08(木) 18:49:38
>>990
すいません。分かってないと思います。
何が悪いか教えてもらえませんか。


992 :デフォルトの名無しさん:2005/12/08(木) 20:02:09
>>991
こういう人って不思議でしょうがないんだけど
人に質問する前にやることあるんじゃないの?

VBのコントロールの使い方なんてたいていググればいくらでも見つかるけど。
現に今"oncommイベント"で検索してみたが、順をおって使い方を説明しているところが
山ほど出てくる。

こういうやるべきことやらずにアタフタする人は何やっても多分ダメだね。
少なくともPGには向いてないわ。

まあ貶すだけだと後味悪いんでちょっとヒント。
MSCommのイベントは設定してやらないと発生しない。
RThresholdだと思ったけど、ちゃんと設定してます?

っていうか、MSCommで受信処理にOnCommイベントなんて使っちゃダメだよ。
どんなケースでも絶対使わないとまでいえないけど、普通の通信プログラムじゃ
まず使わない。

OnComm使って受信処理するようなコードを書く人はまあヘッポコだわな。

993 :デフォルトの名無しさん:2005/12/08(木) 20:41:25
VBじゃなくてさ、Excel VBAなんだよ。
VBなら検索すればサンプル山ほどあるし、実際動かしている。
こんなとこで時間食っているから、ヘッポコであることは認めるし、
OnCommしか使えないレベルでもあるが、
今回の件はOnCommで十分だと思うね。




994 :デフォルトの名無しさん:2005/12/08(木) 21:24:34
意味がわからない。
VBのコントロールの使い方はVBからだろうとVBAからだろうと同じですが。

995 :デフォルトの名無しさん:2005/12/08(木) 22:27:41
テンプレ議論まだ〜?チンッチンッ☆(脳内AA)

996 :デフォルトの名無しさん:2005/12/08(木) 22:38:43
>>995
何がしたいんだよ

997 :995:2005/12/08(木) 22:52:45
>>996
いやいやいやこのスレの行く末を案じて。ちょw

998 :995:2005/12/08(木) 23:15:41
次の患者さんどーぞ。

つーか俺様のエピソードを1つ
VS6ProにFrontPage98ついてたの知ったのは購入3年後でしたが。
…w



999 :デフォルトの名無しさん:2005/12/08(木) 23:19:23
1000

1000 :デフォルトの名無しさん:2005/12/08(木) 23:19:50
おしい。

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

263 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)