VBプログラマ質問スレ(6.0以前) Part45
レス数が1000を超えています。これ以上書き込みはできません。
0001ぬるぽ
2005/12/08(木) 02:41:26( ´∀`) < ぬるぽ
0002デフォルトの名無しさん
2005/12/08(木) 02:41:46 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∩ ∩
〜| ∪ | (´´
ヘノ ノ (´⌒(´
((つ ノ⊃≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ ̄(´⌒(´⌒;;
ズズズズズ
0003デフォルトの名無しさん
2005/12/08(木) 02:42:26質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。
前スレ Part44 http://pc8.2ch.net/test/read.cgi/tech/1130231657/
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
http://www.google.co.jp/
※「まず自分で調べる」クセを身につけよう。
○関連スレッド
VB.NET質問スレ (Part13)
http://pc8.2ch.net/test/read.cgi/tech/1131755402/
VisualBasic6.0 対 VisualBasic .NET 2003
http://pc8.2ch.net/test/read.cgi/tech/1116555483/
API関連の質問はこちらへ
Win32API質問箱 Build38
http://pc8.2ch.net/test/read.cgi/tech/1133798345/
0004デフォルトの名無しさん
2005/12/08(木) 02:43:02一.質問する前に過去ログにも目を通してみる。
二.質問する前に MSDN などで調べてみる。
三.VBScript はこのスレでOK。
四.インストーラーなどの質問もOK。
五.荒らしは相手しない。
六.VB.NETの話題はできるだけひかえる。
七.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
○ 回答者の心得
一.答えられない質問は無駄に罵倒せずスルー。
二.代用法を強制しない。
三.回答する上で必須ではない情報をむやみに聞き返さない。
四.荒らしは相手しない。
五.VB情報募集中。
六.VB.NETの話題はできるだけひかえる。
七.回答は質問者が理解できるよう具体的に。
0005デフォルトの名無しさん
2005/12/08(木) 02:43:44Part 1 ttp://piza2.2ch.net/tech/kako/968/968328471.html
Part 2 ttp://piza2.2ch.net/tech/kako/990/990793224.html
Part 3 ttp://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
Part 4 ttp://pc.2ch.net/tech/kako/1006/10069/1006922992.html
Part 5 ttp://pc.2ch.net/tech/kako/1010/10106/1010624646.html
Part 6 ttp://pc.2ch.net/tech/kako/1013/10138/1013844542.html
Part 7 ttp://pc.2ch.net/tech/kako/1015/10158/1015836357.html
Part 8 ttp://pc.2ch.net/tech/kako/1018/10187/1018794901.html
Part 9 ttp://pc.2ch.net/tech/kako/1020/10208/1020830472.html
Part10 ttp://pc.2ch.net/tech/kako/1022/10221/1022127528.html
Part11 ttp://pc.2ch.net/tech/kako/1024/10243/1024380249.html
Part12 ttp://pc3.2ch.net/tech/kako/1026/10266/1026642565.html
Part13 ttp://pc3.2ch.net/tech/kako/1029/10292/1029241786.html
Part14 ttp://pc3.2ch.net/tech/kako/1030/10309/1030947162.html
Part15 ttp://pc3.2ch.net/tech/kako/1032/10327/1032706491.html
Part16 ttp://pc3.2ch.net/tech/kako/1034/10343/1034302532.html
Part17 ttp://pc3.2ch.net/tech/kako/1036/10361/1036154952.html
Part18 ttp://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
Part19 ttp://pc3.2ch.net/tech/kako/1039/10398/1039859691.html
Part20 ttp://pc2.2ch.net/tech/kako/1041/10418/1041879465.html
あとわからん
0006デフォルトの名無しさん
2005/12/08(木) 23:24:16VB6、DAO3.51でエクセルファイルをデータベースとして読み込んでいた。
そのときは範囲名(セルの一定範囲に名前つけるやつ)をそのままテーブル
として使えたが、DAO3.6にしたらそのままでは読めなくなった。
シート名の場合は末尾に$だが、範囲名は末尾に何つけたらおk?
0007デフォルトの名無しさん
2005/12/08(木) 23:24:580008デフォルトの名無しさん
2005/12/09(金) 01:32:51Do
Set objExec = WshShell.Exec("D:\Program Files\hoge.exe")
WScript.sleep 3000
Wshshell.SendKeys "{ENTER}"
WScript.sleep 120000
objExec.terminate
WScript.sleep 300000
Loop
これでエンターを送ったあとに既に起動しているhage.exe(hogeとは別物)を終了させたいのですが、どうやったら終了出来ますか?
OSはXPです。
Alt+F4を送る以外のやり方でご教授お願いします。
全くの初心者でどこで聞いたらいいのかよくわからなくて・・・スレ違いだったらすいません。
0009デフォルトの名無しさん
2005/12/09(金) 07:19:51http://www.tt.rim.or.jp/~rudyard/torii009.html
0010デフォルトの名無しさん
2005/12/09(金) 07:22:040011デフォルトの名無しさん
2005/12/09(金) 09:18:02自動的に保存したいのですが。
「 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
0012デフォルトの名無しさん
2005/12/09(金) 17:33:43作成された実行ファイルをmanifestファイルを使用して起動したところ、
frameコントロールにそのままoptionを配置しているにもかかわらず正常に表示されました。
frameコントロール内の表示バグが改善された原因をご存知の方は見えますか?
コンパイルしたコンピュータで正常に表示されていれば、他のコンピュータでも正常に表示されると思っていいのでしょうか?
0013デフォルトの名無しさん
2005/12/09(金) 19:46:150014デフォルトの名無しさん
2005/12/09(金) 19:57:230015デフォルトの名無しさん
2005/12/10(土) 01:44:540016デフォルトの名無しさん
2005/12/10(土) 03:49:470017デフォルトの名無しさん
2005/12/10(土) 04:17:18Q.文字列関数の後ろの$って何?
A.$なしはVariant型、ありはString型を返す、また速い。$付きにNullを渡すとエラーになる。
Q.そのNullエラー現象がうっとうしいんですけど回避策はありますか?
A.文字列変数 = Null入り変数 & "" みたいに空文字列をつなげてください。
Q.モジュールレベル変数宣言のDimとPrivateって何が違うの?
A.モジュールレベル変数宣言のDimは古い構文。
ちなみにVB.NETではPrivate Dimが正式構文で、しかもIDEがDimを自動で消す。
Q.CommandButtonにPictureプロパティを設定しても出てこないんですが?
A.Styleプロパティをグラフィックスにしてください。
Q.フォームのアイコンをなしにして、かつ×ボタンを出すってできる?
A.BorderStyleをツールウィンドウにしてください。
Q.それだとタイトルバーが細くなるからいただけないんだが?
A.なら固定ダイアログにしてIcon = Nothingにしろ。
Q.それだと可変が出来ないじゃないか。
A.まずMSのガイドラインでは「ダイアログ」は大きさ固定を原則としていることを知れ。
それでもやりたけりゃSetWindowLongでWS_THICKFRAMEを設定しる。
Q.Foo(1)はいいけどBar(1, 2)と引数が2個以上だとエラーに。なぜ?
A.Callをつけないときは括弧なし。Foo(1)の括弧は引数の括弧じゃなくて式の括弧。
0018デフォルトの名無しさん
2005/12/10(土) 04:20:49Foo(A) と Foo A では、引数がByRefのときに結果が変わります。
括弧で囲むと式の結果値が渡されるので、ByRefでもAの値は変化しません。
0019デフォルトの名無しさん
2005/12/10(土) 14:14:340020デフォルトの名無しさん
2005/12/10(土) 18:43:34お前が書けといわれそうだが文才がないので遠慮しときます。
0021デフォルトの名無しさん
2005/12/10(土) 19:51:53VBのぬるぽはこいつだ。
実行時エラー 91 : オブジェクト変数またはWith ブロック変数が設定されていません。
0022デフォルトの名無しさん
2005/12/12(月) 08:06:580023デフォルトの名無しさん
2005/12/12(月) 12:19:05VB6sp6で麻雀ゲームを作っているのですが、山を積む方法で困っています。
一応トランプのシャッフルなどで説明を見かける方法で
以下のように作ってみたのですが、ランダムの精度(?)が低く、
これの1000回試行を何度か行ったところ、だいたい1000回のうち10〜30回ほど
同じ山が積まれてしまいます。
シャッフル回数を増やしたり、またそのシャッフル回数自体をrnd関数で
決めてみたりといったことは考えてみたのですが…
どうも根本的な解決にはならないような気がするので、何か別のいい方法があれば
教えてください。
INIT_HAIYAMA:シャッフル前のソートされたコレクション
HAIYAMA:シャッフル後のコレクション
Do Until INIT_HAIYAMA.Count = 0
Randomize
i = Int(Rnd * (INIT_HAIYAMA.Count - 1)) + 1
HAIYAMA.Add INIT_HAIYAMA.Item(i)
INIT_HAIYAMA.Remove(i)
Loop
0024デフォルトの名無しさん
2005/12/12(月) 12:40:28とりあえずループの中で毎回Randomize呼ぶのは問題でしょうな。
002523
2005/12/12(月) 13:20:53が、やっぱりまだでます。1000回のうち一桁程度ですが。
そういうものなのか、それともまだコードにおかしな点があるんでしょうか?
なお、牌の枚数は、三麻なので28種112枚です。
0026デフォルトの名無しさん
2005/12/12(月) 14:00:45はおかしい。
0 ≦ Rnd < 1
なのだから上式だと 1 〜 INIT_HAIYAMA.Count - 1 の範囲の乱数になる
配列の基数が 1 なら
i = Int(Rnd * INIT_HAIYAMA.Count) + 1
としないとダメ
002723
2005/12/12(月) 14:17:39きちんとチェックせずにサンプルコードぺたぺたやってると恥かきますね。(´・ω・`)
0028デフォルトの名無しさん
2005/12/12(月) 14:55:17A.型宣言文字。%=Integer, !=Single, #=Double, $=String, &=Long, @=Currency
VBから追加されたもの(@)もあるが、基本的に古い構文の名残です。
ただし文字列関数の$は、Variantを扱うかStringを扱うかの違いで現役。
0029デフォルトの名無しさん
2005/12/13(火) 00:24:060030デフォルトの名無しさん
2005/12/13(火) 05:24:280031デフォルトの名無しさん
2005/12/13(火) 10:12:071000いったスレより下がるわけないだろアホ
0032デフォルトの名無しさん
2005/12/14(水) 01:24:04A.ベストとは思いませんがとりあえず。もっと簡単なの募集。
'切り捨て
'10 の Place 乗の位で切り捨てる。
'Place = 2: 100 の位
'Place = 0: 1 の位
'Place = -1: 小数第 1 位 (既定値)
Public Function Omit(ByVal Number As Variant, Optional ByVal Place As Long = -1) As Variant
Dim Power As Double
Power = 10 ^ (Place + 1)
Number = Number / Power
Omit = Int(Number) * Power
End Function
0033デフォルトの名無しさん
2005/12/14(水) 01:24:58'10 の Place 乗の位で切り上げる。
'Place = 2: 100 の位
'Place = 0: 1 の位
'Place = -1: 小数第 1 位 (既定値)
Public Function Revalue(ByVal Number As Variant, Optional ByVal Place As Long = -1) As Variant
Dim Power As Double
Power = 10 ^ (Place + 1)
Number = Number / Power
Revalue = -Int(-Number) * Power
End Function
0034デフォルトの名無しさん
2005/12/14(水) 01:27:06'10 の Place 乗の位で四捨五入する。
'Place = 2: 100 の位
'Place = 0: 1 の位
'Place = -1: 小数第 1 位 (既定値)
Public Function RoundOff(ByVal Number As Variant, Optional ByVal Place As Long = -1) As Variant
Dim Power As Double
Dim Sign As Double
Power = 10 ^ (Place + 1)
Sign = Sgn(Number)
Number = Sign * Number + 5 * 10 ^ Place
Number = Number / Power
RoundOff = Sign * (Int(Number) * Power)
End Function
003532-34
2005/12/14(水) 01:36:23ttp://www.alato.ne.jp/kazu-/vb/tip24.htm
0036デフォルトの名無しさん
2005/12/15(木) 22:23:23MSCOMMを使って、パソコン間のシリアル通信をしたいのですが、特殊な
NW層(TCP/IPではない)を利用する為、専用のデバイスを介して通信
する事になります。
実は、パソコン間の通信はTERATERMを使ってできているのですが、これ
をVB6.0のテキストエリア上で実現したいのです。
現状は、TERATERM→MSCOMMにデータを送り、VB6.0のテキストエリアに表示は
できるのですが、MSCOMM→TERATERMへデータ送信できません。
これでは当然MSCOMM−MSCOMMはできない訳で...
TERATERM上では、ENTERを押す事でデータが送られます。
TERATERM−NW層の間には、Cで書かれたプログラムがあるのですが、
もしかして、キーボードからの入力だけしか送られないように
なってるのでしょうか?
とりあえず送りたい文字列をoutputプロパティに入れてCRを付けて
送っているのですが全然送ってくれません。
藁にもすがりたい思いなので、何か気が付くことがあれば教えて下さい。
お願いします。
0037デフォルトの名無しさん
2005/12/15(木) 22:26:22他人がわかるように説明しろ。
0038デフォルトの名無しさん
2005/12/15(木) 22:34:58Do-Loopの使い方でわからないところがあり、手が止まってしまいました。
問題の部分がこちらです。
Dim sample As Integer
Do ---(1)
Do ---(2)
If sample = 0 Then ExitDo
DoEvents
Loop
Text2(1).Text=frm2.Text1(0).Text
(以下コードが続く)
Loop
と言う形なのですが、この場合、
sample の値が 0 の時は (2) の Do-Loop を抜け出して、
(1)の Do-Loop を実行するという意味になるんでしょうか?
# それだと sample の値が 0 以外の場合と変わらないのでは…?
# と、こちらの思考が無限ループしてます…。
申し訳ありませんが知恵をお貸しください。お願いいたします。
0039デフォルトの名無しさん
2005/12/15(木) 22:46:17いろいろ弄った末、無駄なコードが
残ってしまったのかもしれません。
仕様書ではどうなってまつか?
0040デフォルトの名無しさん
2005/12/15(木) 22:53:47それが渡されたのがおざなりな取扱説明書だけで、仕様書なしの状態なのです…。
いろいろ弄った結果の無駄なコード、ですか。
VB初心者のために参考書とネット情報片手にやってるのですが、
Do-Loop を使うときには当然条件式が必要になりますけど、
If 文を条件式として使うのはありなんでしょうか?
基本式では Until と While があるのは理解できたのですが、例文をいろいろ見ても
If 文が条件式として使われるものが見つからなかったので…
0041デフォルトの名無しさん
2005/12/15(木) 22:58:330042デフォルトの名無しさん
2005/12/15(木) 23:10:04while(1) {}
みたいなもんでそ。
0043デフォルトの名無しさん
2005/12/15(木) 23:14:36内側のDo-Loopブロックの存在意義は無いな。
0044デフォルトの名無しさん
2005/12/15(木) 23:25:07なるほど。
ということは>>38の場合、Do-Loopの条件文は If 文であると見るべきなんですね。
>>43
内側の Do-Loop はないものとして考えた方がよさそうですね。
皆様、貴重なご意見ありがとうございました。
0045デフォルトの名無しさん
2005/12/16(金) 07:22:17めちゃくちゃな結論だな。
DoEventsが無きゃそうなんだが。
このルーチンは
sample = 0 以外の時はWindowsに処理を戻すと言う
ルーチンだな、コードは稚拙だが。
0046デフォルトの名無しさん
2005/12/16(金) 10:02:060047デフォルトの名無しさん
2005/12/16(金) 10:04:340048デフォルトの名無しさん
2005/12/16(金) 10:08:50Remote Data Serviceの略のようです。
004946
2005/12/16(金) 10:18:19このようなコードがあった場合、HOGE_DLL.RDSClassは
やはりVBで作成されているのでしょうか?
サーバーにあるActiveXDLLをCreateObjectしていると
思われるのですが・・・
0050デフォルトの名無しさん
2005/12/16(金) 10:49:410052デフォルトの名無しさん
2005/12/16(金) 16:59:37Winsockコントロール1つで、
HTTPリクエストを複数なげようとしているのですが…
・レスポンスを受け取る前に次の送信をしようとするとエラー
になります。これは、そういうものだということで問題ないです。
となると、レスポンスを受信するまで次の送信を待つという処理が必要になるかと思います。
それで、まだレスポンスを受信していない場合は、フラグを立てておいてループで待つようにしてみました。
-----
Do While flgHttpRequest
DoEvents
Loop
-----
フラグはレスポンスを受けたら FALSE にセットするようにしてます。
しかし、これだとビジーループに処理を取られているためか、
DataArrivalイベントは起こりません。
どのような方法で待つのが正しいのでしょうか?
0053デフォルトの名無しさん
2005/12/16(金) 18:33:51Connectメゾッド
Connectイベント
SendDataメゾッドでリクエストパケット送信
DataArrivalイベント
GetDataメゾッドでデータ取得
Closeイベント
Closeメゾッドで切断
って感じ。(HTTPの場合)
複数の場所と同時接続する場合には、同時接続する分のWinsockインスタンスが必要。
0054デフォルトの名無しさん
2005/12/17(土) 02:52:45再生速度を変えるために、MCIWndSetSpeedが使えると思ったのですが
実行すると、「ドライバは指定されたコマンド パラメータを認識できません。」と
エラーがでます。原因は何が考えられるでしょうか?
Public Function MCIWndSetSpeed(ByVal hWnd As Long, ByVal Speed As Long) As Long
MCIWndSetSpeed = SendMessageAsLong(hWnd, MCIWNDM_SETSPEED, 0&, Speed)
End Function
0055デフォルトの名無しさん
2005/12/17(土) 08:00:48個人的には結構面白いサッカーゲームです。
一人用ですが。
某雑誌に掲載されてた記事
「一試合3分から楽しめる本格派サッカーゲーム。
グラフィックは簡素だが、やり込み派にはオススメしたい一本。
こだわりのカスタマイズが面白い。
簡素なグラフィックとは逆に、戦術面は細部まで作りこまれている。
システムやプレスのON/OFFから、なんと選手一人一人のポジショニングまで設定可能だ。
こだわりのチーム作りが楽しめる。」
フリーゲームなんですが、管理人がいないらしいので、
サッカー好きでプログラムのできる方居たら助けてやってください。
このゲームで対戦できたら面白いと思うので
RolePlaying Eleven
http://ime.st/www.geocities.co.jp/Bookend-Kenji/2279/
最近立った2chスレ
http://game10.2ch.net/test/read.cgi/netgame/1134392861/
0056デフォルトの名無しさん
2005/12/17(土) 17:21:25そしてVCが多少扱えるようになった頃VBに浮気してみたら簡単にアプリが作れた。
何より楽しい。
実行速度がどうのこうの言われてるVBだけど実際実行速度がそんなに重要になることってあるんだろうか?
0057デフォルトの名無しさん
2005/12/17(土) 17:30:140058デフォルトの名無しさん
2005/12/17(土) 23:28:10初歩的な使い方は何とかなったのですが、細かな使い方がわかりません。
どこかMediaPlayerのプロパティやメソッドについて解説しているサイトがあったら紹介してもらえませんか。
具体的には動画のアスペクト比を変更して再生したいのですが、それが可能かどうかすらわからない状態です。
0059デフォルトの名無しさん
2005/12/18(日) 00:15:349&10用SDK案内
ttp://www.microsoft.com/japan/windows/windowsmedia/knowledgecenter/developerdepot.aspx
7&6.4用SDK 日本語
ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/wmplay/mmp_sdk/default.asp
7&6.4用で日本語で基本を押さえておくのが吉
ん?VBのFORM上でActiveXコントロールとして扱えるのは6.4までだっけか?
以降のはIE上では動くからWebBrowser経由か?
つーか昔ちょっと遊んだくらいだから知らないんだわw
これらMediaPlayerのSDKは単体でダウンロードサイトにあるはず。
ダウンロードしてインストしれ
0060デフォルトの名無しさん
2005/12/18(日) 14:19:44Excelファイルをパス指定して、取得したオブジェクトを使いまわしたいのですが、
こんなことできますでしょうか?
Private Sub Form_Load()
Dim xlGet As getExcelObject
Dim xlApp2 As Excel.Workbook
Set xlGet = New getExcelObject
xlGet.xlPath = "C:\MyApp\SampleData\xls\Simple.xls"
xlApp2 = xlGet.openExcelWorkbook
End Sub
*** クラスモジュール ***
Public xlPath As String
Public Function openExcelWorkbook()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(xlPath) 'Excelワークブックの読み込み
openExcelWorkbook = xlBook
End Function
*********************
0061デフォルトの名無しさん
2005/12/18(日) 14:24:22WebBrowserコントロールでTAGでくくられたデータはとれるのですが、
javaはどうするのでしょう。
どなたか親切な方、教えてください。
0062デフォルトの名無しさん
2005/12/18(日) 14:24:29出来るかどうかしか聞いてないんだから、どうやるかは自分で調べてね。
0063デフォルトの名無しさん
2005/12/18(日) 15:02:580064デフォルトの名無しさん
2005/12/18(日) 17:20:57取れる DHTML勉強しろ
DHTML勉強する気が無いなら InStr( ) Mid( ) でHTMLソース分解
JAVAってなに? Script? Applet?
ScriptならMSHTML.HTMLDocument.scripts で取得
AppletならMSHTML.HTMLDocument.applets で取得
0065デフォルトの名無しさん
2005/12/18(日) 18:28:35どんな質問やねん。
できますでしょうか、って自分で試せよw
答えをいえばそれは可能だけど、しかしそんなパブリック関数を持つなら
クラスにする意味は何もないね。
そういうゴチャゴチャしたことを内部に隠蔽するためにクラスってのはあるんだよ。
0066デフォルトの名無しさん
2005/12/18(日) 22:02:03普通のアプリを作るうえでは余り問題無い
だがVBは(.NET除く)簡単にできるぶん、VC++でやるよりできることが少ない
0067デフォルトの名無しさん
2005/12/19(月) 09:27:05漢字をカナに変換する方法を探してるのですが、
ExcelのGetPhonetic関数は、当然Excelがインストールされていない環境では使えませんし
ImmGetCompositionStringはテキストボックスなどのコントロールを使わないと取得できないようです。
XP/2000の標準環境で使えて、コントロールを使用せずに、コードのみで漢字の読み仮名を返す方法を
ご存じでしたらご教示ください。ImmGetCompositionStringをコントロール無しで使う方法でも、もちろん構いません。
環境はVB6SP5です。コントロール配置して非表示にすればいいとかは無しでお願いします。
0068デフォルトの名無しさん
2005/12/19(月) 12:42:22自助努力って言葉を知らないのか?
ちょっとググれば簡単に答えが見つかると思うが。
見つけられないなら君は無能だ。
http://www.google.co.jp/search?num=100&hl=ja&as_qdr=all&q=vb+%E6%BC%A2%E5%AD%97++ime+%22%E8%AA%AD%E3%81%BF%E4%BB%AE%E5%90%8D+%22+%E5%8F%96%E5%BE%97&lr=
0069デフォルトの名無しさん
2005/12/19(月) 13:05:370070デフォルトの名無しさん
2005/12/19(月) 13:14:310071デフォルトの名無しさん
2005/12/19(月) 16:40:52007260
2005/12/19(月) 20:54:18あー、なるほど。概要が見えてきました。
クラスモジュールの中でオブジェクトを取得させて、各々の処理を定義したメソッドを
外から使うんですね!
ちなみに、60で書いたコードをいろいろいじってるのですが、どれもエラーが出てしまって
うまくできませんでした。
Workbookオブジェクトを戻り値として扱えますよね?
0073デフォルトの名無しさん
2005/12/19(月) 21:05:47無理して煽らなくていいよ。アホなのは分かっているから
0074デフォルトの名無しさん
2005/12/20(火) 00:25:28やっぱり本物の無能みたいだね。
見つからないって一番最初に出てるでしょw
馬っ鹿じゃなかろうか。
というかね、せっかくImmGetCompositionStringなんて知ってるんだから
一番最初にやるべきことはMSDNの該当ページを開いて参照のリンクを見るとか
目次に同期させて関連するような関数を手当たりしだい調べることなんじゃないの?
こんなのPG暦三ヶ月の新人君でも知ってて当然のスキルだよ情けない。
0075デフォルトの名無しさん
2005/12/20(火) 08:42:34> コードのみで漢字の読み仮名を返す方法
に反してるような気がするのは気のせい?
0076デフォルトの名無しさん
2005/12/20(火) 10:26:21Execl 2000でImplementsを使用するとたまにエラーになります。
エラーになる箇所は、インターフェースIをImplementsしたクラスCを
I型の変数に代入しようとしたときに型が違うとでます。
また、これに関連しているかどうかわからないですが、
インターフェースをImplementsしているSheetのcellsをアクセスすると
メモリ不足というエラーが出ます。
いずれもSheet名(すべて、もしくは該当するSheet)をいったん別名に変えて元に戻すだけでなおります。
(例:Sheet1をVBAのプロパティウインドウでSheet1Xに変えてEnter。そのあとまたSheet1に戻す)
ExcelでImplementsを使うのは鬼門なのでしょうか?
それとも別の原因があるのでしょうか?
なにか関連しそうな情報はありませんか?
0077デフォルトの名無しさん
2005/12/20(火) 10:46:28エラーになるものでいいから、おまえが書いたソースをここに貼れ。
何レスつかってもいいから省略せず全てね。
> ExcelでImplementsを使うのは鬼門なのでしょうか?
「Excelで」と聞くからにはVB6ではうまく使えてるのか?
そうじゃないなら鬼門とかじゃなくて、おまえが使えてないだけだからな。
0078デフォルトの名無しさん
2005/12/20(火) 10:48:08> やっぱり本物の無能みたいだね。
> 見つからないって一番最初に出てるでしょw←
> 馬っ鹿じゃなかろうか。
> こんなのPG暦三ヶ月の新人君でも知ってて当然のスキルだよ情けない。
回答の是非は知らんが、一言多い
これが荒らし目的の煽りでなければ、天然バカだ
0079デフォルトの名無しさん
2005/12/20(火) 11:52:480080デフォルトの名無しさん
2005/12/20(火) 11:54:19> 「Excelで」と聞くからにはVB6ではうまく使えてるのか?
Excelの話なのになんでVB6がでてくるの?
名前変えて直るって言ってるんだから、書き方に問題は無いでしょ。
0081デフォルトの名無しさん
2005/12/20(火) 11:57:47ワロタ
0082デフォルトの名無しさん
2005/12/20(火) 12:06:24で、えらそうなのに限って自分は何も知らない罠。
言うだけ言って去っていくやつ多すぎ。
もし何か知っているのなら、最低限自分の経験上の話など
何かしらの情報だせるはずだからね。
008376
2005/12/20(火) 12:20:54全部書いたら、20レス以上になりますが。
っていうか仕事のコードなので勝手に書くことは出来ません。
バグなら自分で修正しますし、修正してもらおうとも思っていません。
エラーは何の問題も無く動いているので、わかりません。
VBAを変更すると出ると思いますが、また名前をいったん変えて戻すという作業が
面倒なので、コードを修正する必要が出てエラーが再現されたときに書きます。
繰り返しますが、コードは何も変更することなく、Sheet名を変更して戻すだけで直るんです。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
私が聞きたいのは、ExcelでImplementsを使ったプログラミングをしたことがある人に対して、
Implementsに機縁するかもしれない、このような問題があるのかということです。
0084デフォルトの名無しさん
2005/12/20(火) 12:21:50○ エラーは今は何の問題も無く動いているので、わかりません。
008576
2005/12/20(火) 12:24:49VB6で普通に使っていましたし、
自分のImplementsを使ったプログラミング方法の説明サイトは
2chでも何回か紹介されましたが好評でしたよ。
0086デフォルトの名無しさん
2005/12/20(火) 12:41:35短くて再現性のあるコードがあればいいんだけどね。
VBAの質問はどこいってもスレ違い扱いされるから難しいよね。
0087デフォルトの名無しさん
2005/12/20(火) 13:04:09そのサイトのURLキボンティーヌ
0088デフォルトの名無しさん
2005/12/20(火) 14:05:37ってのが本当なら、ここで晒しても全く問題ないよな。
0089デフォルトの名無しさん
2005/12/20(火) 14:39:42Excel 2003だとどうなります?
もしExcel 2003で大丈夫なら、Excel 2000のバグでしょうね。
このばあいImplementsを使わないで書くしかありません。
あとインターフェイスIで宣言した変数と、クラスCで宣言した変数
が衝突しているとか。インターフェイスIに関数やサブルーチンも
書いちゃってるとか。傍観者なので身勝手なこともいっておきまつ。
009076
2005/12/20(火) 19:11:18> Excel内のVBAから同じExcel内のオブジェクトを使ってるでいいのかな。
そうです。
> 短くて再現性のあるコードがあればいいんだけどね。
ちょっといま忙しいので、そのうちやるかもしれません。年明けにでも。
今は余計なことしたくない。
>>87-88
恥ずかしいじゃないですか。
サイト作った時点では珍しい内容でしたが、今はもっといいページ出来てますからね。
>>89
残念ながら持ってないので試せません。
> あとインターフェイスIで宣言した変数と、クラスCで宣言した変数が衝突しているとか。
どういう意味かわかりづらいですけど、そんな変なのは無いつもりです。
> インターフェイスIに関数やサブルーチンも書いちゃってるとか。
書いていません。それに書いても問題ないはずですし。
あれから思い出しましたが、VBAでワークシート起動時にCommandBarsあたりいじくって
独自のツールバーを追加しています。これが原因だとは思えないですけど。
やっぱり、Excel VBAでImplements使っている人って少ないのでしょうね。
VBででも使っている人少なそうですし。うちのサイト少しは役に立てたかな・・・。
0091デフォルトの名無しさん
2005/12/20(火) 19:12:46役立てたいからURLplz
恥ずかしいのは最初だけだってハァハァ
0092デフォルトの名無しさん
2005/12/20(火) 19:18:25「恥ずかしい」
嘘を誤魔化す
便利な台詞
……字余り
0093デフォルトの名無しさん
2005/12/20(火) 20:53:03多分Implements云々は思い込みだと思うよ。
まあ、そう思う俺のほうこそ思い込みの可能性もあるけどね。
エクセル関連のオブジェクトって独特の仕様(まあ不具合だけど)があって、
「お約束」を守って操作してやらないとその手の問題が起こりがち。
エクセルのお約束に関してはいろんなとこで紹介されてるから
エクセルのオブジェクトの操作に不慣れなら有名どころはチェックしといた方がいい。
管理人がやたら神経質な花ちゃんなんとかとかさ。
009476
2005/12/21(水) 11:41:02エラーになった。しかもちゃんと動くやつをバックアップしておいたのに
それもエラーになった。
普通にEXCELだけで動かすと、「メモリが不足しています。」
VBEを開いていると、
実行時エラー '32809'
アプリケーション定義またはオブジェクト定義のエラーです。
こんな感じのコードでエラーになっている。
Dim sh As Object
Dim i As Long
For Each sh In Sheets
i = 1
Do While sh.Cells(i, 1) <> ""←ここでエラー
Loop
Next sh
0095デフォルトの名無しさん
2005/12/21(水) 11:43:50?sheet1.nameを実行しても同じエラーになる。
で、いまふと思いついて、前に書いたようにEXCEL起動時に
CommandBarsを弄くって独自のツールバーを追加して、そこからVBAマクロ実行
しているんだけど、そこからVBAマクロを実行する前に、EXCEL開いてすぐに
VBEから?sheet1.nameを実行したらどうか。
するとエラーが出ずに、しかもツールバーからVBAマクロを実行しても
エラーがでなかった。
とりあえず、ツールバー関連もあやしいなと思いつつ、
sheetでImplementsを使っているのは、シートの内容が変更されたか調べるためだけなので、
その他の方法(sheetが変更されたかどうか調べるプロパティある?)を探すか。
sheetを自作のクラスでラッピングして、そこでイベントを取得する方法に切り替えて
やってみるかもしれないのはいつだろう。
009676
2005/12/21(水) 11:58:05ふと思って、ワークシート開いたときに、Debug.Print Sheet1.Name (シートはたくさんあるのでこれを全部)
をやってみたらどうか? ということで、
For Each sh In Sheets 以下略 で書いてみると、そこでエラー。
一行ずつ Debug.Print Sheet1.Name ・・・ としたらエラーにならず。
もしかしてFor Each が悪いのか? と思い、元のコードを
For i=1 To Sheets.Count
Set sh = Sheets(i)
〜 今までのコード〜
Next i
としたら、エラーにならず。ってことでFor Each でまわすのが悪いっぽい。
これが、ImplementsしたsheetをFor Eachでまわすのが悪いのか、
単に、sheetをFor Eachでまわすのが悪いのかは、そのうち実験するかもしれない。
0097デフォルトの名無しさん
2005/12/21(水) 12:27:37な
か
す
い
た
0098デフォルトの名無しさん
2005/12/21(水) 12:30:19>これが、ImplementsしたsheetをFor Eachでまわすのが悪いのか、
>単に、sheetをFor Eachでまわすのが悪いのかは、そのうち実験するかもしれない。
馬鹿?
だからどっちでもないって言ってるでしょ。
残念ながらエクセルには独特のお作法というか「おまじない」的なものがたくさんあるんだよ。
君はそのお作法を守ってないだけ。
0099デフォルトの名無しさん
2005/12/21(水) 12:31:31010076
2005/12/21(水) 12:42:51原因がわかってないのに、なぜそう言えるのですか?
それともあなたには今の段階で、その守るべきおまじないがわかったのですか?
不思議なのですが。
010176
2005/12/21(水) 12:48:41それに「おまじない」と言って理由もわからずに書いている人多いですよね。
そういう人が、Nothingを代入すれば解放とか
クラスとしてのForm1と実態としてもForm1の区別がつかずに
ドツボにはまるんですよ。
私は、そんな人になりたくありません。
0102デフォルトの名無しさん
2005/12/21(水) 12:51:46Excelウィルス検出アドインかノートン等のアンチウィルスソフトが反応すると起こるらしい。
アンチウィルスソフト切って動いたらお前は...
0103デフォルトの名無しさん
2005/12/21(水) 13:14:02いいからもう来るな
お前の態度は鼻について仕方ない
0104デフォルトの名無しさん
2005/12/21(水) 18:57:39実行環境:VB6ランタイム インストール済
この環境から、
「開発環境を.NETに移行するが、実行環境は変えずに済む方法」はありますか?
つまり、.NETでVB6と完全に同じモジュールを作れるのでしょうかといったことなのですが。
.NETがらみの質問はよくないとのことですが、VB6のソースをそのまま移行したいため、
VB6をあつかったことのある方が多いこちらのほうがわかる方がいる可能性が高いと思い書き込みしました。
0105デフォルトの名無しさん
2005/12/21(水) 19:19:01スレ違い
移行絡みの話は.NETスレでどうぞ
0107デフォルトの名無しさん
2005/12/21(水) 21:48:45.net frameworkが必要だから無理だよ。
0108デフォルトの名無しさん
2005/12/22(木) 00:41:04>>101
Nothingの正体も知らないで(Nothing は Null じゃ無いよ IUnknown::Release だよ)...
VBのImplementsはCOMインタフェースインプリメントだって事も知らないで...
オートメーション・COM・IDispatchも知らないで...
VBのクラスは JAVA C++ に比べて全く違うモノだから 混同させんなよ
この辺のコメントは前スレに書いてあったから見て味噌
0109デフォルトの名無しさん
2005/12/22(木) 03:37:21どうしたらいいでしょうか?
0110デフォルトの名無しさん
2005/12/22(木) 06:12:58>この辺のコメントは前スレに書いてあったから見て味噌
「見て味噌」
ふむ・・・、なんとも懐かしい言い回しですね
このコメントから108の人物像が浮かび上がってきます
108は、OSをいたぶり殺す変質者、土地勘があり、年齢は20代〜30代、
もしくは40代〜50代、なんらかの前歴がある人物と考えられます
0111デフォルトの名無しさん
2005/12/22(木) 06:22:59APIを使う
VBに限った話じゃないので、
何を使うか、どう使うかはここでは聞かないでね
0112デフォルトの名無しさん
2005/12/22(木) 09:36:22前世紀のVBマガジンでサンプルあったよ。
0113デフォルトの名無しさん
2005/12/22(木) 12:18:55実際にコレクションにKeyを入れてエラーになるかどうかで判断する方法は解るのですが、
エラーになるかどうかで判断する方法以外で、出来ればなるべく高速な方法が知りたいです。
あと任意のコレクション内の位置(数値インデックス)のメンバに割り当てられてるKeyを調べる方法、
任意のKeyを持つメンバのコレクション内の位置(数値インデックス)を調べる方法を教えてください。
例えば
Collection.Add "hoge", "foo"
Collection.Add "huga", "bar"
の場合、"bar"というKeyを持つメンバの有無(=True)、"baz"というKeyを持つメンバの有無(=False)を調べたり、
Collection.Item(1)から、"foo"というキーを調べたり
Collection.Item(bar)から、2という位置を調べたりしたいのです。
クラスを使ってCollectionのようなものを自作すれば全て出来るし、
メンバに文字列ではなく、クラスを割り当てるだけでも下二つは可能なのですが、
標準のCollectionのメンバに単一の文字列を割り当てた場合に、これらのことをやる方法を教えてください。
環境はWindowsXP、Visual Basic6.0 SP5です。
0114デフォルトの名無しさん
2005/12/22(木) 16:22:49その辺ことを便利にするのにDictionaryができたと思うからCollectionじゃできないんじゃない?
0115デフォルトの名無しさん
2005/12/22(木) 18:34:230116デフォルトの名無しさん
2005/12/22(木) 19:31:11作成しようとしています。この圧縮のところを、LeadTools Raster Imaging Pro Ver.13
で作成するところまで決まっています。ところが、マニュアルが紛失してないので、
どなたかサンプルをつけてもらえないでしょうか?
また、その他の手でいい方法がありましたら、ご教授願います。
よろしくお願いします。
0117デフォルトの名無しさん
2005/12/22(木) 20:22:25正規ユーザーなら、正規ライセンスを提示すれば
マニュアルくらい実費で送ってくれるだろ。
はっきり言って、コードを書いてもらいたいが為の言い訳か
割れ厨の詭弁にしか聞こえないぞ。
それに「決まっています。」って言っておきながら、その他の手も糞も無いだろ。
0118デフォルトの名無しさん
2005/12/22(木) 20:52:19http://www.tt.rim.or.jp/~rudyard/torii009.html
0119デフォルトの名無しさん
2005/12/22(木) 23:31:00マニュアルに親切丁寧に使い方なんて書いてなかったキガス
ライブラリインストールしたんならヘルプも入ってるでしょ。
それで十分だしマニュアルと大体同じ。
それでも分からなければインストールされているサンプル見れば良いよ。
0120デフォルトの名無しさん
2005/12/23(金) 01:33:39ライブラリ購入しても 使いこなせる人材がいない可愛そうな会社...
012176
2005/12/23(金) 14:23:51んなこと知ってるから。
で、今日は休みなのでテストしてみた。
今までの検証から思いつくであろう最少のコードでテストしたら
見事に再現した。再現コードは以下の通り
【クラスモジュール名 I】 (Instancingを2 - PublicNotCreatableに変更】
Option Explicit
Public Sub foo()
End Sub
【Worksheet名 Sheet1、Sheet2、Sheet3】
Option Explicit
Implements I
Private Sub I_foo()
End Sub
【Workbook名 ThisWorkbook】
Private Sub Workbook_Open()
Dim o As Object
' Dim i As Long
' For i = 1 To Sheets.Count
' Set o = Sheets(1)
' Debug.Print o.Name
' Next i
For Each o In Sheets
Debug.Print o.Name
Next o
End Sub
012276
2005/12/23(金) 14:24:22また、ThisWorkbookのコメントアウトの部分を省くと動く。
しかも、不思議なことにコメントアウトの部分を省くとFor Eachの部分までちゃんと動く。
その後で、またコメントアウトし、Excelを終了し再度Excelファイルを開くとなぜか動く。
でも、そのあとでコードを変更(スペースを入れる程度)したら動かなくなる。
たぶん、内部で読み込まれているExcel関連のDLLの生存期間に依存していると思われるので、
コードを変更しなくても、しばらく時間を置くか、PCを再起動したら動かなくなるだろう。
0123デフォルトの名無しさん
2005/12/23(金) 14:25:09> >これが、ImplementsしたsheetをFor Eachでまわすのが悪いのか、
> >単に、sheetをFor Eachでまわすのが悪いのかは、そのうち実験するかもしれない。
> 馬鹿?
> だからどっちでもないって言ってるでしょ。
残念ながら、俺が言ったとおり、ImplementsしたsheetをFor Eachでまわすのが
悪いという結論に達してしまった。もし反論があるのなら、ちゃんと検証をしてから理論的にどうぞ。
まあ「おまじない」と言って理由もわからず、ただ書いてあることを鵜呑みにしている奴は俺には追いつけないだろう。
では、新しい「おまじない」w
Excel VBAでは、何かのインターフェースをImplementsしたSheetを
For Eachで回すと、メモリ不足やアプリケーション定義またはオブジェクト定義のエラーです。などの
バグが発現する。それを回避するためにFor Eachではなく、Sheets.Countを使って回した方がいい。
ここまでやって、人に役立つことを書ける人間になろうね。
0124デフォルトの名無しさん
2005/12/23(金) 14:33:450125デフォルトの名無しさん
2005/12/23(金) 15:01:41馬鹿だね。
実験結果の解釈法を知らないのは理科系出身じゃないのかな。
牛乳飲んで腹を下したからって「下痢の原因は牛乳」なんていったら医者失格だわな。
原因は熱(牛乳が冷えていたから)かも知れないでしょ?
断言するけどImplements云々は直接的な原因じゃないよ。
どういうことかといえば、インターフェイスを継承せずに
同じ症状が出るコードがまず間違いなく書けるだろうってことね。
0126デフォルトの名無しさん
2005/12/23(金) 15:07:00おまい頭いいな
0127デフォルトの名無しさん
2005/12/23(金) 15:16:240128デフォルトの名無しさん
2005/12/23(金) 15:52:30で、直接的な原因は?
断言の根拠は?
間違いなく書けるだろうじゃなくて、書いたらどうだ
本当にお前理科系出身者かw
0129デフォルトの名無しさん
2005/12/23(金) 15:57:370130デフォルトの名無しさん
2005/12/23(金) 16:07:030131デフォルトの名無しさん
2005/12/23(金) 17:03:41解決したみたいだけど、そもそもImplementsのヘルプを読むと
>Implements ステートメント
>クラス モジュール内にインプリメントされるインターフェイスまたはクラスを指定します。
って書いてあるんだよね。Sheet1やらSheet2って、
「クラスモジュール」ではないような気が。
アナタには、パンツの表と裏を間違えて穿いてるみたいな
オカシサがあるので気をつけましょう。
0132デフォルトの名無しさん
2005/12/23(金) 17:41:14確かに動かないな
でも Dim o As Object を Dim o As Worksheet に変えたら動いたよ
原因は分からんけど IDispatch::Invoke が Name を呼ぶのに失敗してるな 多分これエクセルのバグっぽい >> M$に報告しとけ
つーかWorksheet型があるんだからObject型なんか使うなよ
これからはFor Each文使わないでWorksheetでやれ
Sheets.Itemが返す型が分からなくて不安ならTypeOfでインタフェースチェックしろ いいな
0133デフォルトの名無しさん
2005/12/23(金) 17:45:15Dim result(2) As Byte
result(0) = (val And 255& * 256) \ 256&
result(1) = (val And 255&)
でできると思いますが、8BYTEからCURRENCY変換はどうやったらいいか、
教えてください。
ANDがオーバーフローしてANDが使えないです。
リトルエンディアントでメモリに入ってるから、
RtlMoveMemoryとかで1byteずつとってくるのがいいでしょうか。
0134デフォルトの名無しさん
2005/12/23(金) 19:57:47よくわからない質問だなあ。
そのバイト配列は当然もともとCurrency型の値から作ったんでしょ?
そんな必要がどこにあるのか知らないけど。
その逆の操作をするだけじゃないの?
まああまりエレガントなやり方ではないけどバイト配列を一旦バイナリファイルに
書き出せばVBネイティブの機能だけでできるね。
演算でやろうってそもそもCurrency型のビットイメージのフォーマットなんて
どっかに公開されてたっけ?
0135デフォルトの名無しさん
2005/12/23(金) 20:59:51Sheetもクラスモジュールだろ
っていうか、それを言ったら、
Formもクラスじゃないとかそういうことになる。
おかしいだろ?
0136デフォルトの名無しさん
2005/12/24(土) 02:45:39やりたいのは、Socket経由でCurrencyの値を送信して、かつ、復元することです。
ttp://www.codeguru.com/vb/gen/vb_misc/algorithms/article.php/c7495/
に、値の詳細っぽいのがありました。
ただ、Lsetで値をとっても、指数っぽいのがはいってたんで、
本当かどうかはわからないです。Longの場合はうまくいくんですが。
Private Type FROM_LONG
Value As Long
End Type
Private Type FROM_CUR
Value As Currency
End Type
Public Function Long2Byte(ByVal Value As Long) As Byte()
Dim Dest As TO_BYTEARRAY4
Dim Src As FROM_LONG
Src.Value = Value
LSet Dest = Src
Long2Byte = Dest.Value
End Function
Public Function Cur2Byte(ByVal Value As Currency) As Byte()
Dim Dest As TO_BYTEARRAY8
Dim Src As FROM_CUR
Src.Value = Value
LSet Dest = Src
Cur2Byte = Dest.Value
End Function
これでLong2Byteで、256を変換すると、256 = 0, 1, 0, 0 の配列になります。
Cur2Byteで256を変換すると、256 = 0, 16, 39, 0, 0, 0, 0, 0 の配列になります。
0137デフォルトの名無しさん
2005/12/24(土) 02:57:17Public Function Byte2Long(ByRef Value() As Byte) As Long
Byte2Long = _
(Value(3) * 256& * 256& * 256&) + _
(Value(2) * 256& * 256&) + _
(Value(1) * 256&) + _
(Value(0) * 1&)
End Function
Public Function Byte2Cur(ByRef Value() As Byte) As Currency
Byte2Cur = _
(Value(7) * 256@ * 256@ * 256@ * 256@ * 256@ * 256@ * 256@) + _
(Value(6) * 256@ * 256@ * 256@ * 256@ * 256@ * 256@) + _
(Value(5) * 256@ * 256@ * 256@ * 256@ * 256@) + _
(Value(4) * 256@ * 256@ * 256@ * 256@) + _
(Value(3) * 256@ * 256@ * 256@) + _
(Value(2) * 256@ * 256@) + _
(Value(1) * 256@) + _
(Value(0) * 1@)
End Function
byte配列にした値を、上記みたいに復元したいってことです。
0138デフォルトの名無しさん
2005/12/24(土) 03:44:13やっぱり>>134のでOKだと思うぞ?
エンコードしたのと逆順でデコードすればいいだけだよ。
手元で確認したけど、バイト配列の中身を盲目的にCurrencyに突っ込むだけで普通に復元できるよ。
(俺はCopyMemory使ったけど)
難しく考えすぎてないかい?
それとも復元は自前で計算しないと駄目なの?
0139デフォルトの名無しさん
2005/12/24(土) 11:06:40>>137エンコード時点で、ANDの演算がオーバーフローしてしまいます。
Public Function Cur2Byte(ByVal Value As Currency) As Byte()
Dim Dest(8) As Byte
Dest(0) = (Value And (255@ * 256 * 256 * 256 * 256 * 256 * 256 * 256)) \ (256@ * 256 * 256 * 256 * 256 * 256 * 256)
Dest(1) = (Value And (255@ * 256 * 256 * 256 * 256 * 256 * 256)) \ (256@ * 256 * 256 * 256 * 256 * 256)
Dest(2) = (Value And (255@ * 256 * 256 * 256 * 256 * 256)) \ (256@ * 256 * 256 * 256 * 256)
Dest(3) = (Value And (255@ * 256 * 256 * 256 * 256)) \ (256@ * 256 * 256 * 256)
Dest(4) = (Value And (255@ * 256 * 256 * 256)) \ (256@ * 256 * 256)
Dest(5) = (Value And (255@ * 256 * 256)) \ (256@ * 256)
Dest(6) = (Value And (255@ * 256)) \ 256@
Dest(7) = (Value And (255@))
Cur2Byte = Dest
End Function
自前でエンコード/デコードしたいのは、
Javaや、Cのlong等、VBのLongを超える値を
Socket経由でやりとりするのを考慮したいからです。
0140デフォルトの名無しさん
2005/12/24(土) 11:16:440141デフォルトの名無しさん
2005/12/24(土) 12:03:450142デフォルトの名無しさん
2005/12/24(土) 12:31:360143デフォルトの名無しさん
2005/12/24(土) 14:10:15http://www.bcap.co.jp/hanafusa/VBHLP/MSFlexNO7.htm
の方法を試したのですが、IMEがONの場合に入力(というか表示)がうまくいきません。
IMEがONの場合、
a入力 [| ] ("あ"を入力したのに何も表示されない)
Enter入力 .[あ| ] (確定済みの黒文字)
となってしまうのですが、( [ ]がテキストボックス、 | がキャレット)
a入力 [あ| ] (未確定の青文字)
Enter入力 .[あ| ] (確定済みの黒文字)
となるようにするにはどうすれば良いでしょうか?
毎回何らかのキー(サンプルではF2)を押してから入力するというのも面倒なので
どなたか解決法をご教示ください。
環境はWinXP VB6SP6 ATOK15です。
0144デフォルトの名無しさん
2005/12/24(土) 14:37:53漏れもそう思ったw
0145デフォルトの名無しさん
2005/12/24(土) 14:58:03javaやcの8byteのlongを送受信するサーバーとの通信ができなくなるので、
byte配列でやることを考えました。
その後、ANDでのマスク処理を、256での割り算、
\演算子の処理をcurrencyでもいけるように割り算をつくって、
mod演算子の処理をcurrencyでいけるように割り算をつくっていけるようにしました。
result(7) = remaind(divide(val, (127@ ^ 7)), 256)
result(6) = remaind(divide(val, (256@ ^ 6)), 256)
result(5) = remaind(divide(val, (256@ ^ 5)), 256)
result(4) = remaind(divide(val, (256@ ^ 4)), 256)
result(3) = remaind(divide(val, (256@ ^ 3)), 256)
result(2) = remaind(divide(val, (256@ ^ 2)), 256)
result(1) = remaind(divide(val, (256@ ^ 1)), 256)
result(0) = remaind(divide(val, (256@ ^ 0)), 256)
で、currencyをばらして
(val(pos + 7) * 127@ ^ 7) + _
(val(pos + 6) * 256@ ^ 6) + _
(val(pos + 5) * 256@ ^ 5) + _
(val(pos + 4) * 256@ ^ 4) + _
(val(pos + 3) * 256@ ^ 3) + _
(val(pos + 2) * 256@ ^ 2) + _
(val(pos + 1) * 256@ ^ 1) + _
(val(pos + 0) * 256@ ^ 0)
で復元。
0146デフォルトの名無しさん
2005/12/24(土) 16:08:05正しく無い
0147デフォルトの名無しさん
2005/12/25(日) 18:25:27OLEを使ってExcel2000の表にデータを書き込むプログラムです。
Excel9.Olbの依存情報が不足しているというメッセージが出つつもインストーラが完成しました。
ファイルの中には確かにExcel9.olbが入っています。
当然 自分の環境はExcel2000が入っているので動作するのですが
Excel2003のパソコンでもこれは 動くのでしょうか?
Excel97は古いので互換が無い可能性があるのですが
Excel9.Olbだけで Excel2003,2002のPCでも動くのでしょうか
0148デフォルトの名無しさん
2005/12/26(月) 11:23:150149デフォルトの名無しさん
2005/12/26(月) 16:11:50マウスイベントで修正したり消去できます?
図形をトレース出来るようにしたいのですが,
lineを修正や消去したかったらどうしたら良いですか?
0150デフォルトの名無しさん
2005/12/26(月) 16:25:500151デフォルトの名無しさん
2005/12/26(月) 16:27:47どーゆーことでしょうか?
0152デフォルトの名無しさん
2005/12/26(月) 16:34:00もうその時点でそれらの情報は既になくなっているってこと。
なので、自分で描画する線のそれら情報を内部的に確保しておく。
その上でマウス操作された場合にリアクションするコードを書けばいいわけで。
大変だけどね。
0153デフォルトの名無しさん
2005/12/26(月) 16:37:02書いた線の情報を画像としてだけではなく
いわゆる変数に入れとく感じ?
座標やらなんやら
0154デフォルトの名無しさん
2005/12/26(月) 16:39:25そういうこと。
それをうまく作っておけば、座標情報を表示する線分・領域は乖離せずに動作するはず。
0155デフォルトの名無しさん
2005/12/26(月) 16:40:24思い付いた方法としては,
あらかじめlineコントロールで大量に準備して,
visible=falseにしておく.
そしてトレースしたらvisible=trueにして表示させる.
で,mousedownで消去するなら,line1(a)をclearする.
ってな感じですか?
0156デフォルトの名無しさん
2005/12/26(月) 16:49:27ちょっw
それはまずいんではないかとw
それやるにしてもコンテナ使うとかありそうだけど・・・
素人レベルの漏れが思うに
書いた線を全て記憶
消したり書いたりしたら
ピクチャボックス再描画って感じジャマイカ?
0157デフォルトの名無しさん
2005/12/26(月) 16:54:28Lineコントロール自体はオブジェクトで基点・終点は持っている。
ただしイベント認識できないので、自分がClickされたことを感知できない。
Picture自身は基本的には内部にLineメソッドで線を描くことは可能。
ここまでの話ではどちらで線を引いてるのかグレーだよ。
で、やり方のキーワードだけ書いとくね。
Lineコントロールを実行時に生成するのは、コントロールの動的生成、コントロール配列などを見てみて。
MSDNにサンプルあるよ。実行時にコントロールを起こす方法。
生成するコントロールの親ContainerはFormじゃなくPictureBoxにしておくこと。
多分だけどForEachで内包するコントロールを列挙して処理できると思う。
内包した場合、座標は親に対してになるので若干計算が楽になる。
0158デフォルトの名無しさん
2005/12/26(月) 17:37:31んっ?
lineコントロールはイベント認識しないんじゃないんですか?
何を使えば(トレースした線は)マウスイベント認識してくれるんでしょう
>150の自分でオブジェクトとして内部管理する必要あり。
ってのは,どーやったらobjectに出来るんですか?
もしかして,
線を座標として認識させて、
座標(x,y)がクリックされたらって感じでマウスイベントを起こすんですか?
0159デフォルトの名無しさん
2005/12/26(月) 17:48:46VBは自作やね オブジェクト指向のセンス問われるよ
それに Lineコントロールを使わないで全て自己描画でやると相当骨が折れると思うよ
>座標(x,y)がクリックされたらって感じでマウスイベントを起こすんですか?
絵(線)にはイベントは無いよ
キャンバス(この場合はPictureBox)のクリック座標を元に線を描画する
基本的に Windowsの描画方法が分かってない気がする
Windows上の画像の修正処理は 一旦全て消して(塗りつぶして)から データを元に書き直してるんだよ
(高速で処理しているから 人間には処理されてる様に見える)
ゲームPGの参考書に描画について詳しく書いてあるから 目を通していくといいかも
0161デフォルトの名無しさん
2005/12/26(月) 19:56:40だが断る
0162デフォルトの名無しさん
2005/12/26(月) 22:54:16visible=falseにしておく.
そしてトレースしたらvisible=trueにして表示させる.
で,mousedownで消去するなら,line1(a)をclearする.
を改良して
lineコントロールを動的配列にしました.
すると,
lineがimageの下に(formに配置される)配置されて表示されないのですが,
何か対策はありますか?
0163デフォルトの名無しさん
2005/12/26(月) 23:40:580164デフォルトの名無しさん
2005/12/27(火) 02:03:51PicrueBoxの上にちゃんとラインコントロール置いてる?
一応ZOrderも実行したほうがいいかもな
0165デフォルトの名無しさん
2005/12/27(火) 09:52:39・VB画面上のコマンドボタンをタップ、あるいはテキストボックスをタップするとテンキーあるいはTablet PC 入力パネルが開く。
・テンキーや入力パネルをタップ、描画して「送る」などをタップすると、入力した数字または文字が所定のテキストボックスに落ちてくる。
・その後はテンキーや入力パネルを自動的に閉じる、もしくは×をタップすることで閉じられる。
ttp://review.tabletpc.jp/snap/TabletPC.asp?PID=1015 にあるような、、「Ink Pictureコントロール」と「Ink Editントロール」を使用可能にす
る、というところまではできました。
ttp://www.microsoft.com/japan/windowsxp/tabletpc/using/devtips/default.asp
などを参考にしているのですが、テンキーやパネルの起動、データの受け渡しなどを
どうすればよいのかが分かりません。
MicrosoftのMSDNを参照しつつ、
'Declare a new PenInputPanel object
Dim thePenInputPanel As PenInputPanel
Private Sub Command1_Click()
Set thePenInputPanel = New PenInputPanel
'Attach the PenInputPanel to an InkEdit control
thePenInputPanel.AttachedEditWindow = InkEdit1.hWnd
End Sub
というコードまでは通っています。
以下、
ttp://msdn.microsoft.com/library/default.asp?=/library/en-us/tpcsdk10/lonestar/microsoft.ink/Classes/peninputpanel/Events/panelmoving.asp
のあたりを参照しているのですがどれを用いたら良いのか。また、テンキーについてはどのあたりに記述があるのかが分かりません。
よろしくお願いいたします。
0166デフォルトの名無しさん
2005/12/27(火) 09:53:10LineやラベルはPictureBoxの(ZOrderとしての)上には置けないよ。
>>162
imageじゃなくてPictureBoxを使わないとダメだ。
んで、LineコントロールはPictureBoxの中におくこと(PictureBoxをコンテナにする)
016776
2005/12/27(火) 10:50:51例の、WorksheetにImplementsをする件だけど、
どうしてもおかしくなる。>>132のDim o As Worksheet にするやつでもだめだった。
いったんはうまく動くんだけど、SheetsをFor EachやForで繰り返したりいろいろしていると、
Worksheetからインターフェースを取り出すところで型が違うってエラーになる。
例 Sheet1がInterfaceをImplementsしているときに、Dim i As Interface : Set i = Sheet1
で、例のごとくInterfaceの名前をいったん変えて戻すと再コンパイルされるからか動くようになる。
完全にExcel2000のバグだろう。たぶんSheetにImplementsしない以外に対処法は無い気がする。
0168デフォルトの名無しさん
2005/12/27(火) 11:07:010169デフォルトの名無しさん
2005/12/27(火) 11:40:46ネットワークパスワード入力ダイアログをよびだすコマンドがあったら教えてください。
0170デフォルトの名無しさん
2005/12/27(火) 14:37:12空気嫁
0171デフォルトの名無しさん
2005/12/27(火) 19:20:46今頃とっくに解決してる程度の問題だと思うがな。
エクセルのバグだあ?
最初からそういってるだろ。みんなそれをだましだまし使ってんだよボケが。
しかし無能なくせに「俺流」でやりたがって無為に時間を浪費する馬鹿って
どこにでもいるよな。
そういう奴って得てして自分は特別だと思ってるみたいだけどw
0172デフォルトの名無しさん
2005/12/27(火) 20:44:220173デフォルトの名無しさん
2005/12/27(火) 20:45:42俺流ってなんのこと? Implements使うこと?
0174デフォルトの名無しさん
2005/12/27(火) 21:03:26馬鹿じゃないの。
>>76がエクセル扱ってるサイトを少しも参照した様子がないところを責めているのに
Implementsとか意味わからん。
ここ十年こういうタイプの「話の通じない奴」が本当に増えたな。
0175デフォルトの名無しさん
2005/12/27(火) 21:05:07無為に時間を消費するというが、そうやって時間を消費してわかったことが
公開されていることで、あんたが時間を消費せずにすんでるんだろうが。
なんで、わざわざ自分の時間で調べてくれている人に素直に感謝できないかな。
0176デフォルトの名無しさん
2005/12/27(火) 21:06:14でさ、お前は参照したの?
WorksheetにImpelementsすることで発生する問題が
書いてあるサイトあるの?
0177デフォルトの名無しさん
2005/12/27(火) 21:09:150178デフォルトの名無しさん
2005/12/27(火) 21:13:38>>174は現在必死に検索中w
0179デフォルトの名無しさん
2005/12/27(火) 21:34:03自分が検索してない、しかも何も知らない。って奴が増えたな。
0180デフォルトの名無しさん
2005/12/27(火) 21:34:59文脈のわからない馬鹿だ、っていっているそばからこれだもの。
正直発達段階に問題があると思うよ。
おれ自身振り返って、少なくとも小学校6年生段階でも
こんなに劣悪な読解力してなかったと思うし。
WorksheetにImpelementsすることで発生する問題が
書いてあるサイト?
最初からImpelementsなんぞ原因じゃないといっているのにアホかw
0181デフォルトの名無しさん
2005/12/27(火) 21:36:030182デフォルトの名無しさん
2005/12/27(火) 21:38:31じゃあ何が原因なの?と聞いてあんた答えられないでしょ。
んで、言うのはバグがある。バグがある。
何をやるのが悪くて、何をやれば解決するか何一ついえない。
君には「無能」の二文字を送ってあげるよ。
0183デフォルトの名無しさん
2005/12/27(火) 21:43:25それどころか、どんなソフトにだってバグはある。
あるソフトにバグがあるってだけなら、誰にだって言える。
重要なのは、どうしたらそのバグが再現されて、
どうすればそのバグの影響を回避できるかって事なんだ。
0184デフォルトの名無しさん
2005/12/27(火) 21:49:380185デフォルトの名無しさん
2005/12/27(火) 21:51:29>>76さん自演しすぎですよ
181 名前:デフォルトの名無しさん[] 投稿日:2005/12/27(火) 21:36:03
>>76さん自演しすぎですよ
184 名前:デフォルトの名無しさん[] 投稿日:2005/12/27(火) 21:49:38
>>76さん自演しすぎですよ
必死すぎw
0186デフォルトの名無しさん
2005/12/27(火) 21:53:480187デフォルトの名無しさん
2005/12/27(火) 22:03:21われわれが唯一出来ることは、どうやったらそのバグの影響を受けるかって事だ。
そのバグの影響を受けるコードはいくつもあるだろう。
しかし、WorksheetにImplementsをするだけで影響を受けるという情報は初めてだろう。
>>180もその書き方からしても認めたと考えてもいいだろう。
分かりようが無い根本的な原因がどうとか「バグがある。以上。」なんかよりも、
WorksheetにImplementsがまずいという情報があったことは有益だな。
あっ。これ自演だからw
0188デフォルトの名無しさん
2005/12/27(火) 22:05:090189デフォルトの名無しさん
2005/12/28(水) 00:37:28ぬるぽ。
0190デフォルトの名無しさん
2005/12/28(水) 01:39:18馬鹿なんだ
そうか、これが馬鹿というものなんだ
嗚呼、馬鹿よ馬鹿馬鹿、愛しき馬鹿よ……
0191デフォルトの名無しさん
2005/12/28(水) 01:42:50いい加減謝ったらどうだ?w
0192デフォルトの名無しさん
2005/12/28(水) 01:45:100193デフォルトの名無しさん
2005/12/28(水) 02:28:57そんなヤツにおまえら釣られすぎ
0194デフォルトの名無しさん
2005/12/28(水) 02:54:40net /deleteを投げて接続を解除してstart使ってネットワークを開く様なバッチファイルを実行する
ドメイン参加してると使えないけど
0195デフォルトの名無しさん
2005/12/28(水) 05:18:47いかにも不具合出そうな気がするのだがw
名前を変えると動く云々っていうのは、そのときにシステムがnewするから
なんだろうな。
0196デフォルトの名無しさん
2005/12/28(水) 07:01:130197デフォルトの名無しさん
2005/12/28(水) 08:28:29無理して背伸びしてわけのわからないこと言わない方がいいよ。
見てるこっちが恥ずかしいしw
VBのクラスには引数とるコンストラクタを書けないだけで
別に‘ユーザがnewできない’わけじゃない。
っていうかインターフェイスとか多態の意味わかってるのかとw
っていうか、だからImplementsは関係ないってのに。
エクセル関連のオブジェクトつーのは「お約束」を守って操作してやらないと
この手の意味不明な不具合が起きるんだよ。
俺も数年前に初めてエクセルを遠隔操作するコード書いたときには
その手の「お約束」書いてるサイト読んで、使ってるお前に問題があるだけだろ、
と思ったもんだが、実際に存在するんだなこれが。
0198デフォルトの名無しさん
2005/12/28(水) 08:45:44Windows2000SP4+Excel2002(10.6501.6735)SP3で
>>121のコードを試してみたが、エラーは出なかったわけだが
0199デフォルトの名無しさん
2005/12/28(水) 09:34:57Implementsは関係あるでしょ。
実際、それ書いて問題が再現できてるんだから。
0200デフォルトの名無しさん
2005/12/28(水) 10:00:16やりたいならImplementsだけでスレ立てでもして
そこに篭ってやってくれよ
0201デフォルトの名無しさん
2005/12/28(水) 13:34:10Shell ”explorer 接続先” でもやりたいことが出来るが、そのあとで当然出てくるウインドウを閉じないといけません。もっとスマートな方法はありませんかという質問でした。
0202デフォルトの名無しさん
2005/12/28(水) 14:10:09お約束ってのは、Applicationインスタンスをオブジェクト変数に入れてないと特定の処理で
エラー落ちとかそういった類のもの? それならたまに出くわすわ。
>>76のコードは見てないけど、Sheetsコレクションを変数に突っ込んだらアッサリ回避できたりするかもな。
0203デフォルトの名無しさん
2005/12/28(水) 15:41:03開発環境:WindowsXP Professional
Version:VB6.0
MDI子フォームが開かれているか判定する方法ってあるのでしょうか。
検索しても出てこなく、困っています。。
何か、Hitするような検索文字列でもいいので教えてください。
お願いします。
0204デフォルトの名無しさん
2005/12/28(水) 15:50:54ある
> Hitするような検索文字列
"MDI"
絶対にヒットするはず
0205デフォルトの名無しさん
2005/12/28(水) 21:07:08Sheet1とかSheet2って、VBAの中からどうやってnewするの?
0206デフォルトの名無しさん
2005/12/29(木) 01:02:04手に入れる方法を知っている人がいたら教えてください。
0207デフォルトの名無しさん
2005/12/29(木) 01:10:39Microsoftに問い合わせるといい
英語版が入ってるかどうかは確認できなかったが、古いVBなら買える
0208デフォルトの名無しさん
2005/12/29(木) 01:35:40>根本的な原因がなにであるかはMSでないと分からない。
ダメだね...MSなら「仕様です」って言ってバグだと認めないよ
0210デフォルトの名無しさん
2005/12/29(木) 12:30:57MSDNの高価なエディション買うぐらいしか正規に手に入れる方法はないんじゃないの?
あとはオークションでまっとうな奴を探すか。
0211デフォルトの名無しさん
2005/12/29(木) 14:33:19MSDNに付属してるんだろうと売ってることに変わりは無いのにな
0212デフォルトの名無しさん
2005/12/29(木) 18:51:15そのセリフ、別に反論しているわけじゃないよな。
0213デフォルトの名無しさん
2005/12/29(木) 18:56:30Dim ws As Worksheet
Set ws = New Sheet1
0214デフォルトの名無しさん
2005/12/29(木) 19:03:24そういう類のもの。>>76が発見した新しいお約束もそういう類の物の一つと言って良いだろう。
WorksheetにインターフェースをImplementsすると型変換エラーなどがおきる。
認めようとしない奴がいるようだが、今の所なんらかの根拠を持って論理的に行われた反論は無い。
0215デフォルトの名無しさん
2005/12/29(木) 19:12:29>コンパイルエラー:
>Newキーワードの使用方法が不正です。
がで出まつよ。
0216デフォルトの名無しさん
2005/12/29(木) 19:13:28キモイ
0217デフォルトの名無しさん
2005/12/30(金) 03:10:42少なくとも2000では出ない。
0218デフォルトの名無しさん
2005/12/30(金) 05:03:52少なくともXP+Excel 2003では出る。
0219デフォルトの名無しさん
2005/12/30(金) 05:08:05少なくともExcel v.X for Macでは出る。
0220デフォルトの名無しさん
2005/12/30(金) 07:12:430221197
2005/12/30(金) 11:30:20すまん、>>195の文章を読み違えてたw
「ユーザがnewできない」って言うのをVB(VBA)の
クラス一般について言っているんだというふうに。
どう考えても「ユーザがnewできない」ってワークシートについて言ってるんだよね。
それは正しい。申し訳ない。
0222デフォルトの名無しさん
2005/12/30(金) 11:42:000223デフォルトの名無しさん
2006/01/02(月) 18:27:29そして早速の質問です。
VB6.0SP6で作られた既存のアプリAがあって、それを改造する事が出来ません。
アプリAのあるボタンを定期的にクリックするソフトを作成したいのですが、どのような方法が
ありますでしょうか。
私の方で、簡単に思いついたのが、アプリAのプロセスIDとかとってフォアグランドに表示して
sendkeyですが、これだと、他のアプリを使用しているときに誤動作の原因となりそうです。
アプリAのボタンの関数を外部からコールするようなイメージで実現したいのですが、
使用する関数や参考手順、HP等ありましたら教えてもらえればと思います。
0224デフォルトの名無しさん
2006/01/02(月) 18:59:50SendKeysではなくSendMessageで
使い方はググれば腐るほど出てくる
0225デフォルトの名無しさん
2006/01/02(月) 19:41:51ボタンが押されているのを、視覚的に表すにはムリですが、
タイマーイベントで、ボタンクリックイベントを呼び出すとか
0226デフォルトの名無しさん
2006/01/02(月) 19:42:570227デフォルトの名無しさん
2006/01/02(月) 20:08:27ありがとうございます、ちょっと調べてみます。
>>225
ボタンを押したいアプリ自体は改造出来ないので、外部のアプリからボタンを押す、正確には、
ボタンを押したときに走る関数を実行させたいのです。
レスありがとうです、とりあえずSendMessage調べてきます。
0228デフォルトの名無しさん
2006/01/03(火) 08:42:13久しぶりまたプログラムしたくて始めたんですが
VB6.0SP6ラーニング使っているんですが
作成したexeファイルをバイナリで見ると
PCのユーザー名が入っているんですよ・・・
この情報が入らないようにできますか?
0229デフォルトの名無しさん
2006/01/03(火) 10:43:060230デフォルトの名無しさん
2006/01/03(火) 10:46:37とか恥ずかしい名前なんだろ
0231デフォルトの名無しさん
2006/01/03(火) 11:14:420232デフォルトの名無しさん
2006/01/03(火) 12:19:12ウィンドウズのユーザー名が入るんですよ?
マイドキュメントがあるルートフォルダ名と同じのが入るんです
言ってる意味わかりますか?
こういう個人情報みたいなのが勝手に入力されるのって嫌じゃないですか?
0233デフォルトの名無しさん
2006/01/03(火) 12:22:54言っとくが、PCのユーザー名「だけ」じゃ個人情報にゃならんよ
本人(居る場合は知ってる人間も)にしかわからんユーザー名でどうやって個人が特定できると?
0234デフォルトの名無しさん
2006/01/03(火) 12:45:51例えばユーザー名に本名入れてる人とかはやばいでしょ?
特定されないにしても気分が悪い
あと、バイナリで見るのじゃ確認できないが、暗号化されてその他の情報も埋め込まれたり
どれだけの情報がexeに入ってるのか知りたいんだけど
わかる人いないかな?
一応バイナリでユーザー名のとこだけ、書き換えればいけるんだけどね
0235デフォルトの名無しさん
2006/01/03(火) 14:01:41ここで聞くべきことじゃない。MSに聞け。
おまえはここで「〜という情報が格納されますよ」という
嘘かホントか解らないような情報が得られたらそれで納得するのか?
メーカーの商売品すら疑って掛かるおまえが、
2chの一個人の出した情報など信じるはずがない。
0236デフォルトの名無しさん
2006/01/03(火) 14:21:16VBのフォームデザイナーの使い方で、
メインメニューを作ったのですが、ビルドして.exeにしても、メニューが
表示されないんです・・・
0237デフォルトの名無しさん
2006/01/03(火) 14:39:57�@VBEのフォーム上にはメニューが表示されているか
�Aデバッグ実行ではメニューが表示されるか
�B.frmファイルにはメニューの内容が書き込まれているか
0238デフォルトの名無しさん
2006/01/03(火) 15:12:04わからないならわからないって言えよ。バカ
0239デフォルトの名無しさん
2006/01/03(火) 15:24:100240デフォルトの名無しさん
2006/01/03(火) 15:56:22なのでメーカーに聞いてください
はい、さようなら
0241デフォルトの名無しさん
2006/01/03(火) 15:56:32ノートンで許可した場合、ホンモノのウィルスがある場合対処してくれないかもしれませんし
こういう場合どうすればいいでしょうか?
0242デフォルトの名無しさん
2006/01/03(火) 16:06:15はい、さようなら
0243デフォルトの名無しさん
2006/01/03(火) 18:24:260244デフォルトの名無しさん
2006/01/03(火) 18:43:03理由が無いかぎりはサービスパックを当てる事
MSDNは入れなくてもいい
0245デフォルトの名無しさん
2006/01/03(火) 19:08:57まったく好き者だな。
まあどうせ否定するだろうけど、内容から丸わかりだし。
0246デフォルトの名無しさん
2006/01/03(火) 19:29:410247デフォルトの名無しさん
2006/01/03(火) 20:00:000248デフォルトの名無しさん
2006/01/03(火) 20:06:400249デフォルトの名無しさん
2006/01/03(火) 21:26:26なぜか上手くいきません。どうすればいいでしょうか?
例えばfrom2で
frmMain.Text1.Text="テスト"
とやってもまったく反応しません。
str=frmMain.Text1.Text
この様に値の取得はできるんですけど
0250デフォルトの名無しさん
2006/01/03(火) 22:45:15frmMainをどのように呼び出したかじゃないのか?
frmMain.Show で読んでれば frmMainっていう暗黙のインスタンスが表示され、
Dim frm as new frmMain
frm.Show だと frmとfrmMainは別。
0251249
2006/01/03(火) 22:57:07解決しました!ありがとう!
もう6時間ぐらいずっとここでつまってって諦めかけてたんですが
このソフトは最初のアプリウィザードで作成したんですけど
>250さんがおっしゃってるようにメインフォーム自体がインスタンスとしてMain()のある標準モジュールで作成されてました
form2から、frmMain.Showとやると新しく複製されたメインフォームができるのでおかしいなと思ってたんです
いやーほんと助かりました。ありがとうございます
0252デフォルトの名無しさん
2006/01/05(木) 01:45:31解像度1024*768で開発したアプリケーションを1280*1024の環境でも
動作させることになりました。どちらの環境で実行されても、
デスクトップに対して同じ割合の大きさで表示させたいのですが
何かよい方法はありますでしょうか?
例)
1024*768の環境でHeight:3600,Width:4800の大きさで表示されるFormを
1280*1024の環境ではHeight:4800,Width:6000の大きさで表示したい。
各コントロールのサイズ、フォントサイズも同様に拡大して表示したい。
実行時にScreen.heightやwidthから倍率を計算して
Formと各Control毎にサイズ調整する方法を試してみましたが
Controlがたくさん載ったフォームだと表示までに時間がかかるので
別の方法を模索しているところです。
0253デフォルトの名無しさん
2006/01/05(木) 06:53:360254デフォルトの名無しさん
2006/01/05(木) 07:42:41解像度が二種類しかないなら
フォームを二種類作れば速いよ
0255デフォルトの名無しさん
2006/01/05(木) 10:06:38サーバー上のActiveXDLLを実行したいのですが
サーバー側はどのように設定すればよいでしょうか?
IISは起動してhoge.dllもregsvr32で登録はしました。
IISとhoge.dllを結びつける何かが必要だと思うのですが
どういった設定が必要でしょうか?
よろしくお願いいたします。
Private Sub Command1_Click()
Dim rdsObj As New RDS.DataSpace
Dim hogeObj As Object
Set hogeObj = rdsObj.CreateObject("hoge.clsHoge", "http://hoge")
Call hogeObj.hello
End Sub
0256デフォルトの名無しさん
2006/01/05(木) 11:33:16アプリケーションごとに実行を許可するのか、しないのか設定できるだろ。
0257デフォルトの名無しさん
2006/01/05(木) 13:53:50たくさんのコントロールっていくつぐらい?
そんなに時間かかると思えないんだけどなぁ。
コードに無駄があるような気がする。
0258デフォルトの名無しさん
2006/01/05(木) 13:54:530259デフォルトの名無しさん
2006/01/05(木) 21:26:07b,q,g
c,w,b
を
c
a, ,g
b,b,b
c,q,
w
のようにbで整えるのに適した関数はありますか
0260デフォルトの名無しさん
2006/01/05(木) 21:35:370261デフォルトの名無しさん
2006/01/05(木) 21:39:230262デフォルトの名無しさん
2006/01/05(木) 22:09:450263デフォルトの名無しさん
2006/01/05(木) 22:11:450264デフォルトの名無しさん
2006/01/05(木) 22:28:25イメージ的に何がやりたいのかはわかるけど、
そのデータ群が何なのか、その英字が何を表すのかわからないと何も言えないな。
一つだけ言えるのは、関数ってのは自分で作るものだってことだけ。
で、どう作るかだが上記のように条件が曖昧なので何も言いようがない。
0265デフォルトの名無しさん
2006/01/05(木) 22:35:09a,b,c
b,q,g
c,w,b
を、真ん中は一個↓にズラして、右は一個↑にズラして
bbb
で揃えたいのか。シラネ。
0266デフォルトの名無しさん
2006/01/05(木) 22:39:200267デフォルトの名無しさん
2006/01/05(木) 22:47:560268259
2006/01/05(木) 23:03:52既存の関数を組み合わせて簡単にこの操作ができないかと・・・
エクセルでこのような操作ができればと・・・
0269デフォルトの名無しさん
2006/01/05(木) 23:08:322次配列に突っ込んでごちゃごちゃやれば可能なんじゃない?
あとは自分で頑張って。
0270デフォルトの名無しさん
2006/01/05(木) 23:09:40ExcelならExcelに聞け
マクロの記録で、「挿入」-「下方向にシフト」とか「削除」−「上方向にシフト」とかやってみろ
0271259
2006/01/05(木) 23:33:250272デフォルトの名無しさん
2006/01/05(木) 23:40:30俺が作ったメソッドだけど。
0273259
2006/01/05(木) 23:45:510274デフォルトの名無しさん
2006/01/05(木) 23:56:08取り敢えずコスト度外視で作ってみればいいのに
0275デフォルトの名無しさん
2006/01/06(金) 00:08:480276259
2006/01/06(金) 00:10:41ただ、最初のbが任意の位置にあった時、コストがたかくなる。
その辺、要領よくやりたい。
0277デフォルトの名無しさん
2006/01/06(金) 00:43:28セル上の数値に対しての操作じゃなくて、配列なりの内部的な数値に対する操作がしたいってことでよいの?
0278デフォルトの名無しさん
2006/01/06(金) 01:09:10四角形をひし形に変換したいんじゃないのか?
で、それぞれの要素にグラフィック座標割り当てたりとか?
A列車3が発売された頃、同じような箱庭ソフト作りたいけど
立体的なビルを建てる場合マス目をひし形にしないとだめだから
そうなるとマス目をクリックしたい場合、
どのマス目をクリックしたか判断する処理が四角形より難しいから
頭抱えたことがある
0279デフォルトの名無しさん
2006/01/06(金) 01:24:43おいおい、>>259はもちろんだが君の頭も問題あるんじゃないかw
>>259がやりたいのは、カラム内の'b'の位置に従って各カラムに-1, 0, または+1の
オフセットを与えたい、と。
おそらくそういうことだろう。
データ構造がはっきりしないから誰も適切に答えようがないがね。
0280デフォルトの名無しさん
2006/01/06(金) 01:32:380282デフォルトの名無しさん
2006/01/06(金) 03:58:39その最大値を基準に、各列最大値との差分の空白を頭に入れてやるだけでいいじゃん
●★●
★●●
●●★
だと★の位置は2,1,3、最大値は3なので各列3との差分の空白を先頭に入れる
1列目は 3列目は
3-2=1で 3-3=0で
空白一つ 空白0
□ □□ □□●
● ●□ ●□●
★ ★★ ★★★
● ●● ●●
● ●
2列目は
3-1=2で
空白二つ
空白を入れると言ってもそれは見た目の話で、セルの挿入をするより
値のみ動かして空白を入れた形に持っていた方が速いけどね。
中心を探すんじゃなくてオフセットを算出する方法だが何か不満でもあるかな?
0283デフォルトの名無しさん
2006/01/06(金) 04:51:30>>259はその操作概念自体は理解していて、それをスマートなアルゴリズムでやりたいってことではないかと。
で、わからんのがこの発言。
>ただ、最初のbが任意の位置にあった時、コストがたかくなる。
普通言われなくても当然と思う「最初のbが任意の位置にあった時」なんてことわりをわざわざいれるぐらいなので、
特殊な状況、例えば2列目以降のデータ列が初めから分かってるのではなくて、時間的に順次与えられるみたいな場合を
想定してるのかなと思った。
0284259
2006/01/06(金) 05:02:40クイックソートみたく、中心からbの位置探し。2、3・・列目は中心の値により探す向きを中心から上か下かを決める
これをしてくれる関数が知りたい。無ければエクセルの機能を組み合わせてしてみたい
最終形は
a
b,b,b
c, ,c
g
q
w
列毎の差分を作りたい。エクセルの機能をフル活用して(なるべく簡素+省計算量で
0285デフォルトの名無しさん
2006/01/06(金) 05:11:15当然組み込み関数には無い
> 無ければエクセルの機能を組み合わせてしてみたい
してみたいというのを止める理由はない
どうぞご自由に
> エクセルの機能をフル活用して
それにはまずエクセルの機能を知ることから始めないとな
知らなきゃ使うことは出来ない
まあ、精々勉強するこった
0286259
2006/01/06(金) 05:25:44> まず全列ソート。クイックソートみたく、中心からbの位置探し。2、3・・列目は中心の値により探す向きを中心から上か下かを決める
これよりいいアルゴは・・
エクセルの機能を活用してできそうですか?できそうな予感のみあるのですが・・
そうです。私は教えて君でござる
0287デフォルトの名無しさん
2006/01/06(金) 05:33:07セル上の話なら大抵の場合ソートは[データ]-[並べ替え]のコマンドを(マクロから)使えるな。
0288デフォルトの名無しさん
2006/01/06(金) 05:47:220289デフォルトの名無しさん
2006/01/06(金) 06:53:100290デフォルトの名無しさん
2006/01/06(金) 14:57:49めんどくさいから書かない
0291デフォルトの名無しさん
2006/01/06(金) 15:14:47十中八九、プログラムもめちゃくちゃ。
0292デフォルトの名無しさん
2006/01/06(金) 15:26:00SQL文以前にその対象の集合ってのを日本語で表現できない人。
0293デフォルトの名無しさん
2006/01/07(土) 18:14:12いわゆる.netでいうMinimumSize・MaximumSizeなのですがorz
0294デフォルトの名無しさん
2006/01/07(土) 18:37:09Googleで VB ウインドウの最大・最小サイズを設定する
・・・キャッシュでしか読めないな
0295デフォルトの名無しさん
2006/01/07(土) 20:04:18おれも初心者だけど
ないのでフォームのresizeイベントで無理やり維持する
拡大されようとするサイズを元に戻すって感じ
ただ、.NETと違って無理やりだから見た目が汚いくなるんだよなぁ
書いてる途中に思いついたけど、リサイズイベントが起きているときに
まだ、マウスが押されていたら、ボーダースタイル変えて、サイズを変えられないようにしたらいいかも
マウスが放されると元に戻すってかんじで
0296デフォルトの名無しさん
2006/01/07(土) 20:18:550297デフォルトの名無しさん
2006/01/07(土) 20:28:26早レスありがとうございます。
VB6でサイズ制限しようと思ったらresizeで無理やりするしかないのかな?
"サイズが一定範囲を超えたら元に戻す"ようにしたら、フォームがチラついて汚くなりますよね…
Cや.netのようにガチっと固定できたらいいんだけど。
295さんの後述の方法は、なるほど、全然思いつきませんでした。
サイズが一定範囲を越えようとしたらフォームをサイズ変更不可にすれば出来そうですね。
範囲内へと変更しようとしたときにサイズ変更可能にすればいいのかな。
ちょっと試してみます。
0298297も293です
2006/01/07(土) 20:32:24レスしてから気がつきました。
サイズ変更固定するAPIあったんですね…。
どうも有難うございます_(__)_そしてお手数お掛けしました。
これからじっくり調べてみます。
@レスくださった294様295様も有難うございました。
0299デフォルトの名無しさん
2006/01/07(土) 20:35:000300デフォルトの名無しさん
2006/01/07(土) 20:44:42じゃないと最大幅3000指定で、幅4000にリサイズした場合に
コントロール類のサイズを4000の場合用→3000の場合用と2回変更することになる。
それだけでもかなりチラ付き無くなるよ。
>>296
ヒント:>>294
0301デフォルトの名無しさん
2006/01/07(土) 20:49:590302デフォルトの名無しさん
2006/01/07(土) 21:12:49VBサンプルが載ってるので、サンプルがすでに挙がってるのに、
後から来てググれも糞も無いだろ。
ということでは?
0303デフォルトの名無しさん
2006/01/07(土) 21:17:39それこそわざわざ言うことでも無いんじゃ?
0304デフォルトの名無しさん
2006/01/07(土) 21:23:230305デフォルトの名無しさん
2006/01/07(土) 21:33:470306デフォルトの名無しさん
2006/01/07(土) 21:45:06イベント取れるよ。
0307デフォルトの名無しさん
2006/01/07(土) 21:53:02API読んで、メッセージ処理して、それをVBでわざわざやるのが逆にめんどい。
0308デフォルトの名無しさん
2006/01/08(日) 07:23:42常に手前に表示させたいのですが
(現状SetWindowPosで常に手前に表示させています)、
タスクマネージャから最小化を選ぶと最小化されてしまいます。
0309デフォルトの名無しさん
2006/01/08(日) 07:25:530310308
2006/01/08(日) 07:26:410311デフォルトの名無しさん
2006/01/08(日) 07:27:54ボーダースタイルを固定にすればいい
0312デフォルトの名無しさん
2006/01/08(日) 07:29:19さっそくありがとうございます。
今やってみたところ、
タスクマネージャから最小化を選ぶと
イベントが拾えませんでした。
0313デフォルトの名無しさん
2006/01/08(日) 07:32:50ありがとうございます。
今やって見ましたが、
タスクマネージャから最小化を選ぶと やはりダメなようです。
0314デフォルトの名無しさん
2006/01/08(日) 07:50:550315デフォルトの名無しさん
2006/01/08(日) 08:38:15キミが何か間違ってんじゃないの?
タスクマネージャからやろうが最小化は最小化
0316デフォルトの名無しさん
2006/01/08(日) 12:12:58いいね。その案貰った
0317312
2006/01/08(日) 20:16:40こんなソースでダメでしたが、
どんな感じでやれますか?
Private Sub Form_Resize()
Form1.WindowState = vbNormal
End Sub
タスクマネージャ→アプリケーションタブ
→タスクから対象タスクを右クリック→最小化
これで最小化してしまう。
0318デフォルトの名無しさん
2006/01/09(月) 04:19:58VBで無理ならAPIいじるしかないと思うお^^
0319デフォルトの名無しさん
2006/01/09(月) 07:55:54タスクマネージャの最小化や最大化はトップレベルウインドウに指示を出しているが、
VBのスタートアップフォームはトップレベルウインドウではないのでそういう動作になる。
VBのトップレベルウインドウは不可視。
0320デフォルトの名無しさん
2006/01/09(月) 08:12:16リサイズもウィンドウステートも忘れろ。
>>311の言うとおり、BorderStyleでできる。
0321デフォルトの名無しさん
2006/01/09(月) 08:16:550322317
2006/01/09(月) 20:30:15私には難しくて良くわかりませんが、
結論としては難しいということでしょうかね。
ちょっと時間がなくて今試せませんが、
イベント拾うのは諦めて、
短いタイマで定期的に大きくするとかできないかなと思ってますが
そのトップレベルウィンドウというのだけ最小化しているなら
これも難しいのかなとも。
それとタイマで処理すると私の頭も混乱するので嫌ですし。
0323デフォルトの名無しさん
2006/01/09(月) 20:36:48だからフォームのプロパティのボーダースタイルでやれば最小化されないって言ってるだろ
0324デフォルトの名無しさん
2006/01/09(月) 20:38:54ヒント:>>321
0325デフォルトの名無しさん
2006/01/09(月) 20:44:54いや、だから、タクスマネージャからやっても最小化ならないって
固定ダイアログにしてみろよ
今試したんだからまちがいねー
0326デフォルトの名無しさん
2006/01/09(月) 20:52:410327322
2006/01/09(月) 20:53:44だめでした。osの違いでしょうか?当方xp
今日はもうこれ以上試せそうにありません。
0328デフォルトの名無しさん
2006/01/09(月) 21:17:04おれはw2kで出来た
正直すまんかった。
0329デフォルトの名無しさん
2006/01/09(月) 21:37:37ただ目的を達成するなら
「デスクトップの表示」はWM_SHOWWINDOW wParam=0 lParam=SW_PARENTCLOSING で反応するから
メッセージを握りつぶす
ただし Form が親を持ってないとき 言っとくけど非公式な方法ね
wParam=0 は 最小化された時
lParam=SW_PARENTCLOSING は 親が隠される時
0330デフォルトの名無しさん
2006/01/09(月) 21:38:16間違えたタスクマネージャーね orz
0331デフォルトの名無しさん
2006/01/10(火) 09:59:42移行ウィザードを使うとimContainer3Dの移行でエラーに
なってしまいます。
もし、同様のご経験がある方がおられましたら
対処法など教えていただけるとありがたいです。
よろしくお願いいたします。
0332デフォルトの名無しさん
2006/01/10(火) 12:56:56ここで聞いてる暇あったらぐれーぷしちーに聞け。
0333デフォルトの名無しさん
2006/01/10(火) 14:52:14復活させる方法教えてください。
0334デフォルトの名無しさん
2006/01/10(火) 15:37:27ザオリク
0335デフォルトの名無しさん
2006/01/10(火) 16:00:110336デフォルトの名無しさん
2006/01/10(火) 16:15:45まあ復活しても即相手攻撃でまた死ぬかもしれんけど。
0337デフォルトの名無しさん
2006/01/10(火) 16:23:080338デフォルトの名無しさん
2006/01/10(火) 16:28:040339デフォルトの名無しさん
2006/01/10(火) 18:09:55レムオルだな
時間が経てば見えるようになるよ
0340VBA
2006/01/10(火) 18:53:12(kwh)
2110
387
4233
■データを1件ずつ、ユーザ定義関数を利用して「公共料金」を計算させる
プログラム作成せよ
料金計算は、下記の方法によるとします。
<電気料金の計算>
基本料金:1800円 定量制料金単価は
・使用量が90Kwh以下であれば18.14円/Kwh
・ 〃 90Kwh超230Kwh以下であれば24.85円/Kwh
・ 〃 230Kwh超であれば27.21円/Kwh
(料金計算例)
70Kwh使用した場合:1800+70×18.14
120Kwh使用した場合:1800+90×18.14+(120−90)×24.85
=3432.6+(120−90)×24.85
250Kwh使用した場合:1800+90×18.14+140×24.85+(250−230)×27.21
=6911.6+(250−230)×27.21
0341VBA
2006/01/10(火) 18:56:49月,電気,公共料金
kwh
2月110
3月87
4月233
0342デフォルトの名無しさん
2006/01/10(火) 19:05:46学校の宿題は友達と一緒にやった方がいいと思うけど。
0343デフォルトの名無しさん
2006/01/10(火) 21:26:24表示させることってできますか?
0344デフォルトの名無しさん
2006/01/10(火) 21:44:420345デフォルトの名無しさん
2006/01/10(火) 21:54:20ありがとうございます。調べてみます。
0346343
2006/01/10(火) 22:30:06フォームからコマンドボタンを押して、バックグラウンドでエクセルの
マクロ処理を行ってから、フォームに表示したいのですがどうすれば
いいのでしょうか。
見た目上、エクセルの起動が見えないようにすることはできますか?
0347デフォルトの名無しさん
2006/01/10(火) 22:34:250348343
2006/01/10(火) 22:37:07調べきれなかったので、、、教えていただけないでしょうか。
0349デフォルトの名無しさん
2006/01/10(火) 22:42:440350デフォルトの名無しさん
2006/01/10(火) 22:59:06>>339
0351デフォルトの名無しさん
2006/01/10(火) 23:06:360352デフォルトの名無しさん
2006/01/10(火) 23:21:05それでは見た目で判ってしまうな
そもそもこの343はVBAだからこその問題なのではないか?
VB買ってフォーム上に出せで正解
0353デフォルトの名無しさん
2006/01/10(火) 23:24:14>それでは見た目で判ってしまうな
は?
0354デフォルトの名無しさん
2006/01/11(水) 00:33:16遅れましたが、アイデアありがとうございます。
時間みて実装してみます。
0355デフォルトの名無しさん
2006/01/11(水) 09:58:42空気よめなくて悪いが、VBを再インストールすれば復活するはず。
以前他のボタンが消えた時に再インストールで復活した。
0356デフォルトの名無しさん
2006/01/11(水) 11:40:390357デフォルトの名無しさん
2006/01/11(水) 11:44:510358デフォルトの名無しさん
2006/01/11(水) 11:54:28それをやっても戻せないから質問に来たんじゃないの?
俺はVB6インスコしてSP当ててアドイン組み込んだら、次にやるのがツールバー設定だが、
ツールバーのユーザー設定知らないってことは、デフォのツールバーで使ってたてことか?
0359デフォルトの名無しさん
2006/01/11(水) 11:55:390360デフォルトの名無しさん
2006/01/11(水) 16:12:49ごめんぽ
0361デフォルトの名無しさん
2006/01/11(水) 17:04:20だけど実際
Dic.Add "Key1", "Item1"ってやって
Dic.Itemsを見ると"Key1"が
Dic.Keysを見ると"Item1"が返ってくるんだけど、これでいいんだっけ?
俺の環境だけ変?
いちおう素のForm1に最小限のコードだけ書いて試してますよ。
Itemのほうにオブジェクト変数を入れると、For Eachで「オブジェクトが
必要です」というエラーになってしまいます。
Dic.Add "Key1", New Class1
Dim Item As Class1
For Each Item In Dic ←ここでエラー
scrrun.dllのバージョンは5.6.0.8820
0362デフォルトの名無しさん
2006/01/11(水) 17:18:07addの定義についてもう一度調べなさい
0363361
2006/01/11(水) 17:56:47参照設定しようとするときに"Microsoft Scripting Runtime"がリストに
あがってこなくて、scrrun.dllを直接指定したんだが、このせいではないようです。
Class1を使うほうは相変わらず「オブジェクトが必要です」が出るし。
0364デフォルトの名無しさん
2006/01/11(水) 18:05:110365デフォルトの名無しさん
2006/01/11(水) 18:27:260366デフォルトの名無しさん
2006/01/11(水) 20:01:19どう書けばいいですか?
0367デフォルトの名無しさん
2006/01/11(水) 20:27:220368デフォルトの名無しさん
2006/01/11(水) 22:56:08出てあたり前
エラーはClass1で出てるんじゃないDictionaryで出てるの
For Each文を使うにはオブジェクトにCount・Item・_NewEnumが実装されて無いといけないのを知らないのか?
それ以前にディクショナリの意味分かってんのか?列挙する機能(For Each)を提供するのはコレクションだろ
0369デフォルトの名無しさん
2006/01/11(水) 23:02:56> それ以前にディクショナリの意味分かってんのか?列挙する機能(For Each)を提供するのはコレクションだろ
はい、残念。
今回のエラーはそれとは違う。
0370デフォルトの名無しさん
2006/01/11(水) 23:25:040371デフォルトの名無しさん
2006/01/11(水) 23:26:550372デフォルトの名無しさん
2006/01/11(水) 23:33:430373361
2006/01/11(水) 23:38:35VB6で普通に使っていましたし、
自分のScripting.Dictionaryを使ったプログラミング方法の説明サイトは
2chでも何回か紹介されましたが好評でしたよ。
0374デフォルトの名無しさん
2006/01/11(水) 23:46:030375デフォルトの名無しさん
2006/01/11(水) 23:51:520376デフォルトの名無しさん
2006/01/12(木) 00:20:510377デフォルトの名無しさん
2006/01/12(木) 00:22:120378デフォルトの名無しさん
2006/01/12(木) 02:04:38に各行の合計、G列に各行の平均を算出し、F列の累計表をH列に表示するプロ
グラム。
教えれ。。
0379デフォルトの名無しさん
2006/01/12(木) 02:05:470380デフォルトの名無しさん
2006/01/12(木) 02:25:320381デフォルトの名無しさん
2006/01/12(木) 07:23:37これまでVBEでマクロ作って、他のファイル(数百)に適用してました
久しぶりに適用しようとすると、マクロが突然認識されなくなってしまいまして
マクロのプログラム自体が全てのファイルを確認しても残ってないのですけど
同じような状況になった人っていませんか?
また、そのマクロを復活させることは出来るでしょうか?
0382デフォルトの名無しさん
2006/01/12(木) 07:32:310383デフォルトの名無しさん
2006/01/12(木) 07:40:42Property Item(Key)
Scripting.Dictionary の既定メンバ
指定したキーに対する項目を設定します。値の取得も可能です。
Itemsプロパティは配列を参照するVariant型を返すのがポイント。
違うか?wバリアントの配列か?wどっちでもVBじゃいいよ気にしんなw
初心に帰りちゃんとオブジェクトプロパティから変数に参照渡してみ?
0384デフォルトの名無しさん
2006/01/12(木) 07:51:170385デフォルトの名無しさん
2006/01/12(木) 08:09:51意味ワカンネ。
Excelブックからマクロが消えたってことなのか?
コピーがあるなら、インポートしなおせばよいのでわ?
0386デフォルトの名無しさん
2006/01/12(木) 08:09:58Excelのスレに行ってきます
0387デフォルトの名無しさん
2006/01/12(木) 08:13:42分かりにくい文章でごめんなさい
Excelブックからマクロが消えたってことです
コピーがないので・・・
完全に同じものを作り直すのが困難なので、質問してしまいました
ちょっとスレ違いのようですので、エクセルのスレに行ってきます
0388デフォルトの名無しさん
2006/01/12(木) 08:17:03Excel総合相談所 40(VBAの質問でも可。回答率バツグンの良スレ)
http://pc8.2ch.net/test/read.cgi/bsoft/1134006968/
0389デフォルトの名無しさん
2006/01/12(木) 08:22:44ありがとうございます 書き込みしてきました
0390デフォルトの名無しさん
2006/01/12(木) 10:08:060391デフォルトの名無しさん
2006/01/12(木) 10:18:000392デフォルトの名無しさん
2006/01/12(木) 11:55:250393デフォルトの名無しさん
2006/01/12(木) 12:04:070394デフォルトの名無しさん
2006/01/12(木) 12:10:020395デフォルトの名無しさん
2006/01/12(木) 15:27:37VBA搭載アプリ固有のオブジェクトなど知らと言うかもしれないけど、
それ言ったらオートメーションオブジェクトだってAPIだってVB固有のものではない。
そうなると組み込み関数とコントロールについてくらいしか語ること無くなるな。
まあ、知識が及ばない物を遠ざけたい気持ちも分からなくもないが、
少なくともここで許容されてるVBScriptよりはVBに近い存在だ。
0396デフォルトの名無しさん
2006/01/12(木) 16:25:320397デフォルトの名無しさん
2006/01/12(木) 16:28:56フォームに貼り付けると
「オブジェクト変数またはWithブロック変数が設定されていません。」
と出るのですがなぜでしょうか?
0398397
2006/01/12(木) 16:48:19このイベントはフォームのデザイン時にも実行されてしまうのでしょうか?
デザイン時には実行されないようにできないものでしょうか?
0399デフォルトの名無しさん
2006/01/12(木) 17:00:06あのね、誰が答えるかじゃないんだよ。
解らないことがあるのも、答えられない質問があるのも仕方ないし
そもそもここでは回答する義務すら無いので、答えられる質問に答えないのだって自由。
ただ、答えられない分野だからって除外しようとするなってだけだ。
答えられない質問、答えたくない質問は叩いて追い出すのではなく、
他の人に任せておけばいいんだよ。
0400デフォルトの名無しさん
2006/01/12(木) 17:23:49と
loop until math.abs(dx) < eps
の2文は何を意味しているのですか?
0401デフォルトの名無しさん
2006/01/12(木) 18:04:57と
ループの終了条件
0402デフォルトの名無しさん
2006/01/12(木) 18:19:08宿題はオトモダチと(ry
0403デフォルトの名無しさん
2006/01/12(木) 20:12:16true basic てどこから買うんだろうか・・。
0404デフォルトの名無しさん
2006/01/13(金) 08:16:21TrueBASICは日本ではマイナー。
理系でしか使われてない。
0405デフォルトの名無しさん
2006/01/13(金) 10:26:150406デフォルトの名無しさん
2006/01/13(金) 10:37:13移植に関する情報は少ないね。
CやFORTRANに移植すれば?
0407デフォルトの名無しさん
2006/01/13(金) 11:18:55OSはWindows2000で共有できますか?
VB4とVB5のときはWindowsNTで不可だった気がするのですが
0408デフォルトの名無しさん
2006/01/13(金) 11:29:34今は仮想PCを使う時代ですよ。
0409デフォルトの名無しさん
2006/01/13(金) 11:35:210410デフォルトの名無しさん
2006/01/13(金) 12:05:04開発環境は共存出来ません。
インストールしたらどっちもOSも滅茶苦茶になる。
0411デフォルトの名無しさん
2006/01/13(金) 14:07:36コントロールの移動ではなく、テキストボックスにタブ文字を入れたいのですが、
どうすればいいでしょうか?
0412ニュートン法
2006/01/13(金) 14:10:24VBAでニュートン法を使ってこの問題を解くとプログラムはどうなりますか?
教えてください.
F(x)=x^2-e^(-x)-2=0 初期値X0=6 収束条件E=10^-5
0413デフォルトの名無しさん
2006/01/13(金) 14:15:03プロパティ
>>412
普通に
0414デフォルトの名無しさん
2006/01/13(金) 14:15:12サブクラス化
0415デフォルトの名無しさん
2006/01/13(金) 14:22:57http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2003-39,GGLD:ja&q=VBA+%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%88%E3%83%B3%E6%B3%95%E3%82%92
0417デフォルトの名無しさん
2006/01/13(金) 15:19:54VB4,5,6共存させてるよ。
MS Common Control とか使ってるとまずいと思う(6が5のOCX上書きするので)。
それ以外は今のところ大丈夫かな。
NTでも2Kでも問題は出てないけどね。今はXPで共存させてる。
もちろん、MSがこれを保証しているかどうかはわからない。
俺が運良く問題にぶち当たってないだけかもしれんし。
0418デフォルトの名無しさん
2006/01/13(金) 15:47:18ttp://www5.airnet.ne.jp/init/vb/level1/level1001.html
ttp://support.microsoft.com/default.aspx?scid=kb;ja;412579
ttp://www.microsoft.com/japan/msdn/vs_previous/vbasic/TechInfo/VB4OF97.HTM
ttp://www.microsoft.com/japan/msdn/vs_previous/vbasic/faq/specfaq.htm
の「VB4 (32 ビット版) の開発環境と VB5 の開発環境を同じ環境にセットアップして使用できますか?」
0419デフォルトの名無しさん
2006/01/13(金) 16:18:45それは共存できてないじゃん。
混在してるだけで。
0420デフォルトの名無しさん
2006/01/13(金) 16:45:00そんな滅茶苦茶な環境で作ったアプリのセットアップを
他のPCで動かしたら駄目ですよ。
そのマシンの環境迄破壊します。
0421デフォルトの名無しさん
2006/01/13(金) 16:52:000422デフォルトの名無しさん
2006/01/13(金) 17:05:060423417
2006/01/13(金) 17:14:22別に俺のところで動いたからって他の環境で動くのを保証しているわけじゃないぞ。
あくまで、動作している環境もあるよって程度だよ。
>>419
これは共存って言わないの?
混在とはどう違うの?
>>420
普通テスト用の環境って作らない?開発とは別に。
>>421
そうですか。そうかもしれませんね。
0424デフォルトの名無しさん
2006/01/13(金) 17:18:25インストールするなんてテラコワス
0425デフォルトの名無しさん
2006/01/13(金) 17:18:56一部上書きされて使えなくなってる時点で共存じゃねぇ
0426デフォルトの名無しさん
2006/01/13(金) 17:27:08そんな環境でテストする意味は全然ない。
実運用では有り得ないから。
それに、そんな壊れた環境でのテストは完全に無意味&無駄。
0427デフォルトの名無しさん
2006/01/13(金) 18:13:29両方が共に普通に存在して共存だろ?
他方に対して影響してる時点で混在
0428デフォルトの名無しさん
2006/01/13(金) 19:14:58というのがM$のサポート
普通の頭なら同時インストールはしない
0429デフォルトの名無しさん
2006/01/13(金) 21:45:29学校の課題で「入力された2進数32ケタ分の情報を可逆圧縮して出力する装置と、
その情報を入力すると元の2進数として出力する装置」を設計し作製せよという課題がでました。
とりあえずVB6.0は入手したのですが自分らのグループはみんなプログラム初心者なので
何をどうやってプログラムすればよいのか全くわかりません。
あと1週間で仕上げないといけないのですが、どういう手順でプログラムをしていけば良いのか
どなたか教えて頂けませんでしょうか?
0430デフォルトの名無しさん
2006/01/13(金) 21:54:28ここで質問するという選択肢を選んだ時点でバッドエンドだ
0431デフォルトの名無しさん
2006/01/13(金) 22:15:11出来ないということをそのまま公表するかのどちらかだろ。
最近のガキは(大人もだけど)取り繕うことしか考えてないのか?
上辺だけ整えたって「自力で解決できる能力が無い」という現状は何もかわらない。
仕事じゃないんだからなんとしても結果を出さなきゃならないってわけでもないだろ。
もちろん評価は落ちるだろうが、低い評価にしか値しない能力ならそれは仕方ないこと。
0432デフォルトの名無しさん
2006/01/13(金) 22:19:56いいこと言った。
0433デフォルトの名無しさん
2006/01/13(金) 22:21:47課題くらい、人から簡単に答えを聞こうとせずに、自分で書籍その他資料を当って解決しやがれ
てめぇの学校には図書館(or室)も無いのか
0434デフォルトの名無しさん
2006/01/13(金) 22:34:270435429
2006/01/13(金) 22:38:580436デフォルトの名無しさん
2006/01/13(金) 22:43:240437デフォルトの名無しさん
2006/01/13(金) 22:43:47課題の求めてる意味がよく分からんな。
32桁の二進数→1と0が32文字。
で、文字数を減らせばいいのか?
それなら、単純に16進表記するとか。
0438デフォルトの名無しさん
2006/01/13(金) 22:52:29おいおいw
圧縮って知らないのかい君は。
シャノンの情報理論って学部で勉強するだろw
bミょっとして429の釣り?
しかし4バイトを圧縮するって無理があるなw
0439デフォルトの名無しさん
2006/01/14(土) 00:01:13このスレ意味無いじゃんww
0440デフォルトの名無しさん
2006/01/14(土) 00:04:20代アニにお帰り
0441デフォルトの名無しさん
2006/01/14(土) 00:08:40代アニを弄ぶスレ?w
0442デフォルトの名無しさん
2006/01/14(土) 00:13:550443デフォルトの名無しさん
2006/01/14(土) 00:17:59>>429 はもう来ないみたいだし、あの課題をやってみようぜ。
0444デフォルトの名無しさん
2006/01/14(土) 00:19:20お前性格 良すぎww
0445デフォルトの名無しさん
2006/01/14(土) 00:21:42ここは提供されたネタを実装するスレじゃないので、
求める人も居ないのにやってみる必要なし。
と、最後の望みを賭けた演出をうち砕いてみるてすと。
0446デフォルトの名無しさん
2006/01/14(土) 00:28:540447デフォルトの名無しさん
2006/01/14(土) 00:31:09デバッグは終了しました・・・
0448デフォルトの名無しさん
2006/01/14(土) 00:35:53本人のためにならない。
0449デフォルトの名無しさん
2006/01/14(土) 00:38:36>>429 はまだ常駐しているようだし寝るべ。
0450デフォルトの名無しさん
2006/01/14(土) 00:39:10あんなに求めてたのに誰もやってあげなかったよ。
0451デフォルトの名無しさん
2006/01/14(土) 00:41:35赤の他人の課題をやる必要がないからもんね
0452デフォルトの名無しさん
2006/01/14(土) 00:47:28それを書くにはこのスレは狭すぎる
0453デフォルトの名無しさん
2006/01/14(土) 00:50:15書かなければいい。
0454デフォルトの名無しさん
2006/01/14(土) 00:51:560455デフォルトの名無しさん
2006/01/14(土) 00:55:020456デフォルトの名無しさん
2006/01/14(土) 01:04:09何処かにうp
0457デフォルトの名無しさん
2006/01/14(土) 01:06:23ランダムデータにはおすすめできない。
0458デフォルトの名無しさん
2006/01/14(土) 07:55:07進数変換の課題のようにも見えるけどファクシミリ(FAX)の課題?
ランレングス圧縮でいいんだったら,
0や1がいくつ連続するか数えて、
入力 00000000000000000000000000000000
出力 0-32(0が32個)
入力 10000000000000000000000000000000
出力 1-1-0-31(1が1個,0が31個)
みたいなデータを出力すればいいんじゃねーの?
でもこの方法だと,
入力データの0や1が連続している場合はうまく圧縮できそうだけど、
0や1が連続していない場合は圧縮後のデータの方が容量大きく
なりそうだよね。
そういう気付いたことは考察欄に書いておく。
プログラムの作り方の話をすると、圧縮するサブルーチンと
圧縮を解くサブルーチンの最低2つに分けることができる。
入力データと出力データは文字列にして、
「いま処理中の文字は文字列中の何番目の文字か?」を保持する
変数が必要。
このあたりはどうにでも作れるので、みなさんで適当に。
0459デフォルトの名無しさん
2006/01/14(土) 14:22:000460デフォルトの名無しさん
2006/01/14(土) 16:36:41何故一週間?
0461デフォルトの名無しさん
2006/01/14(土) 17:10:480462デフォルトの名無しさん
2006/01/14(土) 23:03:56しかも可逆圧縮で。
0463デフォルトの名無しさん
2006/01/14(土) 23:07:430464デフォルトの名無しさん
2006/01/14(土) 23:29:120465デフォルトの名無しさん
2006/01/15(日) 00:31:450466デフォルトの名無しさん
2006/01/15(日) 01:01:53「ぬるぽ」っていうたった3文字の圧縮するソフト知ってるよ
0467デフォルトの名無しさん
2006/01/15(日) 03:21:190468デフォルトの名無しさん
2006/01/15(日) 15:59:39あれはすごかった。
まさに発想の転換。ただ多用するとHDDぶっ壊れるかも知れんけど。
0469デフォルトの名無しさん
2006/01/15(日) 17:43:55URLは?
0470デフォルトの名無しさん
2006/01/15(日) 18:14:47そういう発送をする根拠が知りたい
0471デフォルトの名無しさん
2006/01/15(日) 18:17:540472デフォルトの名無しさん
2006/01/15(日) 23:02:07ドラえもんが自分を四次元ポケットに入れたらどうなるか?って感じだ。
0473デフォルトの名無しさん
2006/01/15(日) 23:30:12ヴァニラ=アイス
0474デフォルトの名無しさん
2006/01/16(月) 09:57:45既存のプロジェクトにcrpe32.dllを呼び出して使用している個所がありました。
VB6.0で開いていたのですが開発環境にcpre32.dllがありませんでした。
調べてみるとVB5.0に提供されていたDLLのようです。
これをVB6.0で利用する場合、何か置き換えられるものがあるのでしょうか?
よろしくお願いいたします。
0475デフォルトの名無しさん
2006/01/16(月) 10:45:46それはVB4と5しか対応してません。
なので、
ttp://www.agtech.co.jp/products/crystal/
製品版を購入するしかないでしょうね。
0476デフォルトの名無しさん
2006/01/16(月) 10:53:57ありがとうございました。検討いたします。
0477474
2006/01/16(月) 14:03:19たびたび申し訳ありません。
VB6.0にはcpre32.dllが無いだけではなく
CrystalReports自体付属していないのでしょうか?
VB5.0で付属のクリスタルレポートを使って開発されていたプロジェクトを
VB6.0に移行する場合、製品版を購入するというのが通常の手順なのでしょうか?
申し訳ありませんがよろしくお願いいたします。
0478デフォルトの名無しさん
2006/01/16(月) 14:26:09何を以て"普通"なんて判断をするの?
おまえが納得する手順を踏めばいいだけだろ。
おまえは他人に「〜が普通だよ」って言ってもらわないと何も出来ないのか?
そもそも匿名掲示板は情報収集以上のことに使おうってのが間違い。
提供された情報が正しいかどうか、自分に合っているか、(普通かどうか)は
自分で確認しろ。
0479デフォルトの名無しさん
2006/01/16(月) 15:29:21そういうのも議論すればいんじゃね?
0480472
2006/01/16(月) 15:44:22どう見ても、またポケットから出てくるだけのお話です、本当に(ry
0481デフォルトの名無しさん
2006/01/16(月) 15:51:59ポケット自体をポケットに入れるんだよ。
圧縮結果サイズ0の可逆反応の話をしてるんだから、そこからどらを戻せるかってことだ。
0482デフォルトの名無しさん
2006/01/16(月) 16:17:40VB6買ったんなら、付属してるかどうかはそれ見れば分かる。
0484デフォルトの名無しさん
2006/01/16(月) 16:27:470487デフォルトの名無しさん
2006/01/16(月) 16:49:04外してから普通に中に入るだけ。
0488デフォルトの名無しさん
2006/01/16(月) 17:10:28圧縮サイズ0の可逆圧縮が可能って言ってる馬鹿がいるから、例をだしてるんだろ?
ドラえもんがポケットを外さずに自分を全て入れた上で、それを戻すのが可能だといってるのが、0からの可逆復元だよ。
元の圧縮自体が矛盾してるのは当然なの。出来ないことを言ってるんだから。
ドラえもんの例で言えば、ドラえもんを消滅させるしかないのに、それを圧縮とよび、復元可能だと言ってるんだよ。
0489デフォルトの名無しさん
2006/01/16(月) 17:16:380490472
2006/01/16(月) 17:18:10消滅とかバカじゃねーの?w
0491デフォルトの名無しさん
2006/01/16(月) 17:20:38ドラえもんのは要はこういうことですよと
それを圧縮と比べてるのは>>488だけ
0492デフォルトの名無しさん
2006/01/16(月) 18:11:43>元の話も読まずに書きこしてる奴ばっかだな?
それは自分に対して言ってるのかな?
0493デフォルトの名無しさん
2006/01/16(月) 19:06:40http://www.geocities.co.jp/Playtown-Denei/1184/satoimo/
0494デフォルトの名無しさん
2006/01/16(月) 19:36:530495デフォルトの名無しさん
2006/01/16(月) 19:41:23VBの質問を再開します。
0496デフォルトの名無しさん
2006/01/17(火) 00:32:46form_unloadして終了したときに戻り値が出ると助かるのですが。
0497デフォルトの名無しさん
2006/01/17(火) 00:51:44んで、でかいファイルを転送しようとすると、転送部分で処理が留まってしまうので、
ウィンドウが固まってしまいます。
以前、ファイルコピーソフトを作ったときは、コピー部分を別EXEにして、
別プロセスとして動かすことで画面が固まるの防いだんですが、
(マルチプロセスっていうんですか?まぁその程度の知識です)
FTPでウィンドウ固まるのを防ぐ方法も、ファイルごとにFTP転送を行う
EXEを作って、上記と同様な方法ですればいいんでしょうか?
そうするとファイルごとにFTP鯖につなぐことになるし、
何よりもEXEが複数になってあまり綺麗じゃないのが気になります・・・
0498デフォルトの名無しさん
2006/01/17(火) 01:04:36無理。VBSなら出来るので、VBアプリと何とかして連携させるとか。
0499デフォルトの名無しさん
2006/01/17(火) 01:11:43例えば 100 k バイト毎送信して間に DoEvents 挟むとか。
0500デフォルトの名無しさん
2006/01/17(火) 06:28:47サブクラス化して、Windowsメッセージを処理すればOK
つかFTPをどうやって実装してるわけ?コントロール使ってんの?
0501デフォルトの名無しさん
2006/01/17(火) 09:13:400502デフォルトの名無しさん
2006/01/17(火) 09:24:000503デフォルトの名無しさん
2006/01/17(火) 09:25:40仕事で使うならFFFTP使いますなんていえませんよ。
0504デフォルトの名無しさん
2006/01/17(火) 09:36:010505デフォルトの名無しさん
2006/01/17(火) 10:26:270506デフォルトの名無しさん
2006/01/17(火) 10:31:34俺はそれ……
0507デフォルトの名無しさん
2006/01/17(火) 12:37:40普通に言ってたけど。
既にある物を上手く利用して組み合わせ、安くて安定したシステムを
短い納期で提供しないと。
0508デフォルトの名無しさん
2006/01/17(火) 12:41:50JOKEで言ったんだよな?
0509デフォルトの名無しさん
2006/01/17(火) 12:47:45以前より、FFFTP をコマンドライン経由で自動化処理して用いる事を検討している方が多いですが、
FFFTP は手動操作がメインであり、自動化を目的として作成されておりません。
コマンドラインは起動時の自動処理等、最小限の動作しか対応されていません。
自動化を目的とした FTP クライアント は他にあると思います。お探し下さい。
0510デフォルトの名無しさん
2006/01/17(火) 13:07:170511デフォルトの名無しさん
2006/01/17(火) 13:08:310512デフォルトの名無しさん
2006/01/17(火) 13:56:27Transfers files to and from a computer running an FTP server service
(sometimes called a daemon). Ftp can be used interactively.
FTP [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-w:windowsize] [-A] [host]
-v Suppresses display of remote server responses.
-n Suppresses auto-login upon initial connection.
-i Turns off interactive prompting during multiple file
transfers.
-d Enables debugging.
-g Disables filename globbing (see GLOB command).
★-s:filename Specifies a text file containing FTP commands; the
commands will automatically run after FTP starts.
-a Use any local interface when binding data connection.
-A login as anonymous.
-w:buffersize Overrides the default transfer buffer size of 4096.
host Specifies the host name or IP address of the remote
host to connect to.
Notes:
- mget and mput commands take y/n/q for yes/no/quit.
- Use Control-C to abort commands.
0513デフォルトの名無しさん
2006/01/17(火) 17:33:49Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub Form_Load()
Dir1.Path = "C:\"
Drive1.Drive = Left(Dir1.Path, 2)
End Sub
の様に初期値を設定しようとすると、
Drive1.Drive = Left(Dir1.Path, 2)
の後
Drive1_Change()
が動いてしまって初期値設定ができません。
topindexも考えたんですが、
それだと初期値が変わった時の場合分けが必要だし...
何か上手い方法はありませんか?
0514デフォルトの名無しさん
2006/01/17(火) 18:08:20いやそれで普通に C:\ で初期化されると思うけど。
何が駄目なの?
0515デフォルトの名無しさん
2006/01/17(火) 18:34:11やっても『C:\』でなくて、『C:\〜\デスクトップ\VB』ってProject置いてあるフォルダになっちゃうんです...orz
うちの環境がおかしいのか...?orz
あ、VB6です。
0516デフォルトの名無しさん
2006/01/17(火) 18:38:41Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub Form_Load()
Dim P As String
P = "C:\"
Drive1.Drive = Left(P, 2)
Dir1.Path = P
End Sub
お騒がせしました。orz
0517デフォルトの名無しさん
2006/01/18(水) 01:28:26そうですか。アドバイスthx
0518デフォルトの名無しさん
2006/01/18(水) 08:52:08実行する方法はありますか?
0519デフォルトの名無しさん
2006/01/18(水) 09:04:08ファイル渡しが一番簡単なのでは。
VBアプリが終わるとき、特定の場所に内容が0とか1の
1バイトのエラーコードを書いたファイルを作り、Start xxxx /WAIT
で同期を取って、次にそのファイルを読んで ERRORLEVEL を返すだけの
小さなCアプリを走らせる、と。
0520デフォルトの名無しさん
2006/01/18(水) 17:13:08TextBoxとか普通のコントロールは、コントロール内でクリックしたまんま外にカーソルを移動させてボタンを離す(つまりDrag&Dropの動作)
をすると、コントロールの外でもMouseUpイベントが発生する。
でもListViewは発生しなかったんでビックリした。
つーか、MouseMoveイベントからListView内でしか発生しなかった。
このListViewの挙動を、他のコントロールと同じにする方法ってあるのかな?
0521デフォルトの名無しさん
2006/01/18(水) 17:57:08何もチェックしなくても使える物) とそれ以外の仕様は
たとえMS製でも一律じゃないと思った方がいい。
同じイベント名でも細かい動作が違ったりする。
0522デフォルトの名無しさん
2006/01/18(水) 18:26:31520だけど、APIのSetCapturerすら効かないみたい><
0523デフォルトの名無しさん
2006/01/18(水) 18:34:530524デフォルトの名無しさん
2006/01/18(水) 19:15:170525デフォルトの名無しさん
2006/01/18(水) 19:45:360526デフォルトの名無しさん
2006/01/18(水) 20:00:00そもそも、何故同じにしたいの?
0527デフォルトの名無しさん
2006/01/18(水) 20:53:04いまListBoxからTextBoxにアイテムをDrag&Dropする機能があるプログラムがあるんだけど
コイツがMouseDown/MouseMove/MouseUpを使って実装してあるんだよ。
単純にこのListBoxをListViewに置き換えられれば楽だなー、と思って。
0528デフォルトの名無しさん
2006/01/18(水) 21:01:010529困ってます。
2006/01/18(水) 21:09:53突然、VB5の開発をする事になりました。
(ユーザーの環境が5.0)
会社のPCにVB5をインストールしたのですが、サービスパックがありません。
手に入れる方法はありますか?
0530デフォルトの名無しさん
2006/01/18(水) 21:27:40これ?
http://www.microsoft.com/japan/msdn/vstudio/downloads/sp/vs97sp.asp
0531困ってます。
2006/01/18(水) 21:37:26早速のご返事ありがとうございます。
そこへは、行ってみたのですが、
Location Cannot Be Found となってダウンロードまでたどり着けないんです。
0532デフォルトの名無しさん
2006/01/18(水) 22:00:05ちなみにOSは何?
0533デフォルトの名無しさん
2006/01/18(水) 22:06:46意味ワカンネ
0534デフォルトの名無しさん
2006/01/18(水) 22:14:14ttp://download.microsoft.com/download/b/8/0/b80918bd-1977-4694-8824-b2bf26af9bca/sp3read.exe
0535デフォルトの名無しさん
2006/01/18(水) 22:23:42それっぽいのは見つかったけどな。自分で探して見れ。
0536デフォルトの名無しさん
2006/01/18(水) 22:28:15どれ?
URLは?
0537デフォルトの名無しさん
2006/01/18(水) 22:35:36それはリードミーだけでは。
0538デフォルトの名無しさん
2006/01/18(水) 22:43:06つーか、日本語読めないのかよw
0539デフォルトの名無しさん
2006/01/18(水) 22:47:13Readme.wri Redist.txt Eula.txt が含まれています。
0540デフォルトの名無しさん
2006/01/18(水) 23:14:43Version
VB6.0
仕様
JPG、GIF、PNG、BMPをImageコントロールに読込み、読み込んだ画像上に
画像の大きさに比例するフォントサイズの文字列を表示する。
問題点
上記の各ファイルをImageコントロールに表示するとこまではできたのですが
文字列を表示することができません。どうすれば表示させることができるでしょうか。
また、背景色を指定したいのですがImageコントロールにBackColorプロパティが存在しません。
どうすれば背景色を指定することができるか教えてもらえないでしょうか。
よろしくお願いします。
0541538
2006/01/18(水) 23:15:36なんか米のMSのサーバーからも完全に抹殺されてるっぽいね。
お詫びといっては何だが、Internet Archiveにキャッシュされてるみたいだよ。
http://web.archive.org/web/20040412001606/http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs97/vb.aspx
0542デフォルトの名無しさん
2006/01/18(水) 23:38:00標準添付のコントロールでは全部無理。
なので、市販のどれかの画像処理系OCXを買う。
0543デフォルトの名無しさん
2006/01/18(水) 23:44:52釣り?
0544529
2006/01/18(水) 23:46:020545デフォルトの名無しさん
2006/01/18(水) 23:59:24俺だったらラベル重ねるだけで済ましちゃう。
0546デフォルトの名無しさん
2006/01/19(木) 01:45:53慣れない内はAutoredraw=trueで。
でもグラフィックに書き込むことが目的なのではなく、
重ねて表示するのが目的なんだったら>>545
0547デフォルトの名無しさん
2006/01/19(木) 02:11:08■死にたくなければ、このレスをコピーして他のスレに □
□10回貼り付けて下さい。1時間以内にです!もし無 ■
■した場合は、今日寝ている間に富子さんがやってきて□
□貴方の首を絞めに来ます。富子さんは太平洋戦争の■
■時に16歳という若さで亡くなった女の子で、未だに成 □
□仏していないそうです。信じる信じないは貴方次第。 ■
■今年になってからこのレスを無視した人で、“呪われ □
□て死亡した人”が続出しています。これは富子さんの ■
■呪い。呪われて死んでもいいのならこれを無視するこ□
□とでしょうね。 ■
■――貴方がこうしているうちに富子さんが後ろから見□
□ていますよ…。 ■
■□■□■□■□■□■□■□■□■□■□■□■□
0548デフォルトの名無しさん
2006/01/19(木) 04:34:03呪い怖〜いよ〜
(^O^)/ガクブル&西川クンが気絶してもうた〜
0549デフォルトの名無しさん
2006/01/19(木) 04:39:5116才の彼女は未だに成仏出来ないって所、
16才の彼女は未だに未成熟って読んでエロい妄想が沢山吹き出てしまった。
ロリコンな俺、ウカツだったぜ・・・
0550デフォルトの名無しさん
2006/01/19(木) 04:40:160551デフォルトの名無しさん
2006/01/19(木) 07:22:26まで読んだ
0552デフォルトの名無しさん
2006/01/19(木) 09:28:28まで読んだ。
0553デフォルトの名無しさん
2006/01/19(木) 10:07:43>>545
>>546
ラベルを重ねる方法でやってみたいと思います。
ありがとうございました。
0554デフォルトの名無しさん
2006/01/19(木) 10:27:56唇を重ねる方法でやってみたいと思います。
ありがとうございました。
に見えた
0555デフォルトの名無しさん
2006/01/19(木) 11:40:17返すということをしたいのですが…
例えば テキストボックスtext1 に"CP1"と入力して
コマンドボタンを押すと、ネットワーク上でCP1 が認識できたら
OKとメッセージ表示、できなかったらNOとメッセージ表示と。
NET VIEW とかいうコマンドを使えばよいのでしょうか。
少し調べたけれど良く分かりませんでした…
0556デフォルトの名無しさん
2006/01/19(木) 11:50:45そうかそういう方法もあったのか...(゜Д゜;)
0557デフォルトの名無しさん
2006/01/19(木) 13:10:49Microsoft Winsock Control を使うとか Ping 打ってリダイレクトするとか
ttp://www.vector.co.jp/soft/win95/prog/se263702.html?site=n&srno=SR031721
を利用するとか。
0558デフォルトの名無しさん
2006/01/19(木) 17:58:02マウスでクリックしたデータ
gred.プロパティ =txtbox
だと思うんですがプロパティは何を使えば取得できますか?
0559デフォルトの名無しさん
2006/01/19(木) 18:17:09GridのカレントであればRowColの該当するTextか何かで取れるだろうし。
0560デフォルトの名無しさん
2006/01/19(木) 18:20:12グリッドって言ってもいろいろあるわけだが、どのグリッドコントロール?
0561デフォルトの名無しさん
2006/01/19(木) 18:20:46グリッドって言ってもいろいろあるわけだが、どのグリッドコントロール?
0562デフォルトの名無しさん
2006/01/19(木) 19:30:09普通 .Text みたいな名前のプロパティになってる筈。
後は .Value とか。
0563デフォルトの名無しさん
2006/01/20(金) 02:08:02すっかり忘れてる・・・・
EXCELアプリケーションのインストールパスを取得する
APIってなんでしたっけ?
0564デフォルトの名無しさん
2006/01/20(金) 02:41:200565デフォルトの名無しさん
2006/01/20(金) 04:09:15FindExecutable ?
0566デフォルトの名無しさん
2006/01/20(金) 12:33:36PC側のVB6.0で作成したアプリで受信しているのですが
新たに送信電文を暗号化する必要がありBlowfishを組み込みました
送信側はOKなのですが、VB側はunsigned longのような方とか無い為
なかなかうまくいきません、なにかVB側で簡単に複合化する手立てはないでしょうか?
C言語の方がメインでVBのほうは今一なので・・・・
0567デフォルトの名無しさん
2006/01/20(金) 12:39:39CでDLL作ればいいじゃん
0568デフォルトの名無しさん
2006/01/20(金) 14:57:40どこに保存されているのでしょうか?
0569デフォルトの名無しさん
2006/01/20(金) 15:09:06アクセスのテーブルを接続しレコードセットオブジェクトを作りました
このテーブルにはNAME1〜NAME12というようなフィールドがあるのですが
これを
プログラム内のループで扱うことは出来るのでしょうか
わかりにくいかもしれないですが
下のような感じです
for i = 1 to 12
RS![NAME & i] = name(i)
next i
よろしくお願いいたします
0570デフォルトの名無しさん
2006/01/20(金) 15:49:12DAOなのかADOなのか知らんが
RS.Fields("NAME" & i).Value =
0571デフォルトの名無しさん
2006/01/20(金) 16:38:10ありがとうございます
まくできました
0572デフォルトの名無しさん
2006/01/20(金) 20:33:37激しく非正規形な香りがするな。
0573デフォルトの名無しさん
2006/01/20(金) 21:14:040574デフォルトの名無しさん
2006/01/20(金) 22:43:500575デフォルトの名無しさん
2006/01/20(金) 22:46:350576デフォルトの名無しさん
2006/01/20(金) 22:48:48教えていただいてありがとうございました(;´人`)
0577デフォルトの名無しさん
2006/01/20(金) 23:16:41最初からは入ってないよ。
買ってインストールせんと。
0578デフォルトの名無しさん
2006/01/21(土) 02:09:160579デフォルトの名無しさん
2006/01/21(土) 06:10:11unsigned long コイツはVBのLong型で受け取れるよ
ただ 0x7FFFFFFF超える値はマイナスで表示されるから
変換演算してValiantかDouble他の変換しないとダメ
0580デフォルトの名無しさん
2006/01/21(土) 10:28:10全部 Currency でやってるな・・・
0581566
2006/01/21(土) 15:25:24>>567
CでDLLを作ってみようと思うのですが、
どのようなツールを使って、どうやって作ればいいのですか?
簡単に教えてください、あとは調べます
0582デフォルトの名無しさん
2006/01/21(土) 16:03:32VBだけ買ったのか。VisualStudio6ならVC++も入ってるのに。
DLLのソースは例えばこんな感じ。改行が多いって言われたので詰めて・・・
#define STRICT
#include <windows.h>
#include <windowsx.h>
__declspec(dllexport) VOID Hoge(HWND hWnd);
BOOL __export __loadds CALLBACK HemoDlgProc(HWND hDlg ,
UINT iMessage,
WPARAM wParam ,
LPARAM lParam );
#pragma data_seg("sharedat")
#pragma bss_seg("bss_data")
__declspec(dllexport) BOOL bFoo = FALSE;
LRESULT CALLBACK HemoDlgProc(HWND hWnd ,
UINT msg ,
WPARAM wParam,
LPARAM lParam )
{
// 処理
}
BOOL WINAPI DllMain(HANDLE hInst ,
ULONG ul_reason_for_call,
LPVOID lpReserved )
{
// 処理
}
0583デフォルトの名無しさん
2006/01/21(土) 16:07:10まずは調べてから聞けよ
0584デフォルトの名無しさん
2006/01/21(土) 16:09:08データ量わからんけど、少ないなら
ぜんぶ文字列にしちゃえばいいんじゃないの?
0585デフォルトの名無しさん
2006/01/21(土) 16:17:14Visual Studio .NET2003というのがあります
これのC++で作成しても大丈夫ですか?
0586デフォルトの名無しさん
2006/01/21(土) 16:18:17なんのツールで作ればいいのかもわからないので
聞いたほうが早いかと
0587デフォルトの名無しさん
2006/01/21(土) 16:26:180588デフォルトの名無しさん
2006/01/21(土) 16:30:00何を使って作ればいいか、わかれば作れるでしょ
もちろん初めてだから時間はかかるけど
0589デフォルトの名無しさん
2006/01/21(土) 16:42:490590デフォルトの名無しさん
2006/01/21(土) 17:04:33んー、C++じゃなくて、生Cで作って。
0591デフォルトの名無しさん
2006/01/21(土) 17:07:290592デフォルトの名無しさん
2006/01/21(土) 17:08:090593デフォルトの名無しさん
2006/01/21(土) 18:28:210594デフォルトの名無しさん
2006/01/21(土) 18:30:320595デフォルトの名無しさん
2006/01/21(土) 18:34:35httpヘッダに書かれているLast-Modifiedヘッダじゃなくて、
ウェブサーバのファイルシステム上の更新日時を知るには
どうしたらいいんでしょうか。
ftpの場合だったらFtpFindFirstFileで調べられるんですが、
httpの場合のやり方がわかりませんので、教えてください。
0596デフォルトの名無しさん
2006/01/21(土) 18:35:50できませんよ。
0597デフォルトの名無しさん
2006/01/21(土) 18:39:150598デフォルトの名無しさん
2006/01/21(土) 19:31:20HTMLファイルの中に<!-- lastupdated=YYYY/MM/DD hh/mm/ss -->って
書いておけばいいんじゃねーの?
ってそういう質問じゃないのか。
0599デフォルトの名無しさん
2006/01/21(土) 19:50:06それを知って何がしたいの?
実は、その「やりたい事」は、更新日時を知らなくても出来るかもよ。
0600デフォルトの名無しさん
2006/01/21(土) 20:51:21遅レスですがありがとうございます。
いいアイデアです。助かりました。
0601デフォルトの名無しさん
2006/01/23(月) 01:32:040602デフォルトの名無しさん
2006/01/24(火) 02:02:04おまえらだったらVBで作るのは無謀だと思う?
0603デフォルトの名無しさん
2006/01/24(火) 02:41:170604デフォルトの名無しさん
2006/01/24(火) 08:31:29いいんじゃねーの?
0605602
2006/01/24(火) 09:20:12よし、いっちょ作ってみるか(`・ω・´)
0606デフォルトの名無しさん
2006/01/24(火) 09:49:30! | ! ', ヽ \ ', ヽ `丶、__,.ィ
| ', ', '、 ヽ ヽ ! ', <´
', ', ヽ ヽ ',ヽ ヽ',\;、 !', ! ヽ 、ヾニ=-
ヽ ヽ ヽ、 ヽゝヽ、 ヾ ̄__ヽノ-リ', \ \\
lヽ ',ー- 、ヾー '"´i { ij } } ヽ \ ',ヽ',
', ヾ>‐''iヾ´ ヾニ´ノ ヽ ', !
','"{ iヾ! } } ´"' ' ゙` |\ } ', |
ヽ、 ヽヾニ´'、 i !'" ヽ ! リ
!i丶、__\゙ ` / ',i ',i' , }
、 ヽヽ=ヽ  ̄ ⊂つ , ' ソ / !リ ! /
.|`゙''`''ーヽ、 _,, / |ノ'ノ/ { l/
.| i ヽ、 ``´´ ニ=- ,.イ / // ; /ヾゝ
. '、 ヽ、 `゙''ー‐<`゙ ー -- ‐'" { _,..{ ∠´ノ /' 挑戦する事は素晴らしいわ・・・
,>'"´゙ヾヽ''ヾ)ヽー` _, ---゙==、'´ '´ `ヽ | i
'´ ヾヽ ヽ|、ー ,.イ´i ! | ! ヽヽヽ`ヽ、 _ r、_ヽ|
}'゙| ', ! / i l| || !',ヽ_}ヽゝ', 、、ヽ`´ `゙r‐、
}| ', }! i |r:::ヽヾヾ {。:::} ',', ', !、', }
, !! i !| | |ヾ-' `゙´ ヾ! !|ノ゙' |
{ ',|___',i ',゙' 、_rっ-‐'´ ,}| |_,ヘ'ヽ,イノー;、}
',/´ `゙ヽ `´ ノ゙´ / /''´
0607デフォルトの名無しさん
2006/01/24(火) 11:50:15以前あった、MSCD70-175と70-176をもとにいま〜 勉強しようと思っているのですが、
どちらから取り組んだほうがよろしいですか?
0608デフォルトの名無しさん
2006/01/24(火) 13:42:01MSCD70-175と70-176て何?
0609デフォルトの名無しさん
2006/01/24(火) 21:04:230610602
2006/01/24(火) 21:13:28MDIにしてツールバーのところをIEちっくにCoolBarにしてみたら
CoolBar上に置かれたコントロールにフォーカスが行くたんびにちらつく・・・orz
まったく、俺がいったい何をしたというんだ・・・(´・ω・`)
0611デフォルトの名無しさん
2006/01/24(火) 21:59:18spreadにsettextされているデータ同士を
加算し再びspreadのセル内に出力したいのですが
いい方法は御座いますでしょうか?
0612デフォルトの名無しさん
2006/01/24(火) 23:48:38細かいことは後回し後回し!
出来ることから勢いに乗ってやって行けばいいじゃん
0613デフォルトの名無しさん
2006/01/25(水) 00:27:43VB6に固執していいことあるか?
仕事ならそれも仕方ないだろうけどさ。
0614デフォルトの名無しさん
2006/01/25(水) 02:57:48でも.NETの楽さも捨てがたいが。
タブブラウザなんてまさにVB向きなんじゃないの。
IEコンポーネント使って作るサンプルが転がってるしな。
ちらつくぐらいは気にスンナ
0615デフォルトの名無しさん
2006/01/25(水) 17:34:40処理は.NETの方が速いらしいよ。
起動速度も改善可能。
って、こんな事誰でも知ってるか・・・
0616デフォルトの名無しさん
2006/01/25(水) 17:45:230617デフォルトの名無しさん
2006/01/25(水) 18:04:15,一-、
/ ̄ l | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
■■-っ < んなーこたーない
´∀`/ \__________
__/|Y/\.
Ё|__ | / |
| У.. |
0618デフォルトの名無しさん
2006/01/25(水) 19:16:150619デフォルトの名無しさん
2006/01/25(水) 19:42:570620デフォルトの名無しさん
2006/01/25(水) 23:12:13ホントにそう思ってんの?
ギャグだよね・・・
0621602
2006/01/25(水) 23:24:38メニューの項目をIEちっくに、一通り必要な機能を乗せたら
「編集 -> 切り取り」を実行したら選択してたコントロールとか消えた・・・orz
まったく、俺がいったい何をしたというんだ・・・(´・ω・`)
0622デフォルトの名無しさん
2006/01/25(水) 23:30:500623デフォルトの名無しさん
2006/01/25(水) 23:31:11チラシの裏にでも書いてろ
0624デフォルトの名無しさん
2006/01/25(水) 23:31:24だって切り取ったじゃん。
0625デフォルトの名無しさん
2006/01/25(水) 23:33:400626デフォルトの名無しさん
2006/01/25(水) 23:34:060627デフォルトの名無しさん
2006/01/26(木) 15:30:53文字列が、”山田町*-**-*”のようになっている場合
(*は任意の数字)
最初の*の位置を探すエレガントな方法を教えてください。
今は二重ループでやってるのですが・・・
0628デフォルトの名無しさん
2006/01/26(木) 15:34:150629デフォルトの名無しさん
2006/01/26(木) 15:36:180630デフォルトの名無しさん
2006/01/26(木) 15:57:45普通に先頭から一文字づつ判断して数値かどうか見ればいいのでは。
0631デフォルトの名無しさん
2006/01/26(木) 16:08:18マヌケすぎる方法だが、二重ループって言うとこれくらいしか思いつかん。
0632デフォルトの名無しさん
2006/01/26(木) 16:08:43「づつ」じゃなくて「ずつ」だよお兄ちゃん。あくまで本則が「ずつ」ってだけだが
0633デフォルトの名無しさん
2006/01/26(木) 16:56:54そっちが正しいのは知ってるけど、好みで「づつ」を使ってます。
他にも、「必ず」が正しいのは知ってるけど、好みで「必らず」を使ってます。
0634デフォルトの名無しさん
2006/01/26(木) 16:57:50一番重要な事は「正しく動作するコードを書く」事だと思うが。
で、正しく動作するコードは、美しく、エレガントだ。
0635デフォルトの名無しさん
2006/01/26(木) 17:11:17キモイ
0636デフォルトの名無しさん
2006/01/26(木) 19:11:38ttp://home.att.ne.jp/kiwi/momoi/frame.html
0637デフォルトの名無しさん
2006/01/26(木) 19:55:47「ずつ」も「づつ」もどっちがより正しいなんてないよ。
どっちも正しい。常識でっせw
0638デフォルトの名無しさん
2006/01/26(木) 19:59:110639デフォルトの名無しさん
2006/01/26(木) 20:14:160640デフォルトの名無しさん
2006/01/26(木) 20:38:16それだと、折角参照設定してもインテリセンス(だっけ?)が使えませんよね。
その為に、Dim objData As XXXX と正しく宣言しないと駄目な訳だけど、それがどんな型
なのかがよく分からない場合、どうやって調べてますか?(XXXXの部分)
0641デフォルトの名無しさん
2006/01/26(木) 21:04:33きもい
0642デフォルトの名無しさん
2006/01/26(木) 21:06:30オブジェクトブラウザ使えばいいだけでわ?
0643デフォルトの名無しさん
2006/01/26(木) 21:41:32言い訳にしては苦しいな・・・
0644デフォルトの名無しさん
2006/01/26(木) 21:49:53同意。
あとは、素でIDLとかODLを読む。
0645デフォルトの名無しさん
2006/01/26(木) 23:19:34手っ取り早いのはウォッチで変数の中身見ろ
オブジェクトの型・インタフェースも出てるよ
参照して無い型まで調べられるよ
Visual StudioのOLE Viewがあれば敵無しなんだけどね
0646デフォルトの名無しさん
2006/01/27(金) 00:22:11私の勘違いかもしれませんが、XXXXを調べる事は出来るけど、
逆は出来ない様な・・・
>>644
素で読む、ですか。成る程・・・
>>645
変数って、objData を、ですか?
objData をどう宣言するかが分からない訳で、As Object と宣言した
変数を見ても、Object 型のインターフェイスしか分からないのでは・・・
「参照して無い型まで調べられる」って部分かな。
Visual StudioのOLE View は調べてみます。
0647デフォルトの名無しさん
2006/01/27(金) 00:37:55>>変数って、objData を、ですか?
そう
ブレイクポイントで止めて変数の中見る
As Object で宣言しても中にが何の型なのか丁寧に出てきてくれるよ
Dim O As Object
Set O = CreateObject("Scripting.FileSystemObject")
なら
O はObject/FileSystemObject って出るよ
0648デフォルトの名無しさん
2006/01/27(金) 01:21:16クラスのインスタンスを作成するときの
Dim Objtest As class1
set Objtest = New class1
と
Dim Objtest As New class1
の宣言ってどうちがうんですか?下記の宣言をかいたとき
先輩にウンココードだと怒られて意味がわかないんですが
0649デフォルトの名無しさん
2006/01/27(金) 01:43:56理由も言わずにウンコというやつこそウンコ。
0650デフォルトの名無しさん
2006/01/27(金) 02:00:44イニシャライザの走るタイミングが違う
set Objtest = New class1
は Newした直後に走るけど
Dim Objtest As New class1
だと一番最初にメンバーにアクセスした時
Class_Initializeに処理が書いていなければどちらを使っても
さほど大差ない
0651デフォルトの名無しさん
2006/01/27(金) 03:32:55お仕事コードなら前者のほうがベター
いつクラスが作成されるかハッキリするので可読性がよいから
それと将来Initializeに、処理が追加されない保障はないから
と書いてみたものの、うちは後者を使うことが多いw
趣味のプログラムなら好きなほうにすれヴぁ
>>632
きもい
0652デフォルトの名無しさん
2006/01/27(金) 04:03:48Dim fs As New FileSystemObject
とかやっちゃうけど、(VBからFSO使うことはまず無いが)
クラスの場合は、必ず
Set Objtest = New class1
でインスタンス作ってるな。
あと、COMは特殊な物を除いて
Set obj = Nothing
はやらないけど、クラスは不要になったら必ず明示的に破棄する。
このへんはVBSも共通だな。まあVBSでクラス使う奴は余り居ないだろうけど。
0653デフォルトの名無しさん
2006/01/27(金) 04:52:18Picture1.picture = LoadPicture("C:\〜〜.jpg")
という風にフルパスで画像を表示してるんですが
当然別PCで実行すれば無いんでエラーですよね
画像をまとめて別ファイルで参照すればいいんでしょうか?
適当な透明フォーム作って全部貼り付けてコンパイルしています
明らかに無理矢理なんで対処方法教えてクダサイ
0654デフォルトの名無しさん
2006/01/27(金) 06:19:39画像を実行ファイルと一緒に配布して、
カレントディレクトリの画像を読み込ませればいいじゃん
数が多いなら、カレントにImageとかいの名前のフォルダ作ってそこにまとめてもいいし。
カレントならファイル名だけで参照できるし、
App.Pathでカレントのパスも取得できる。
0655デフォルトの名無しさん
2006/01/27(金) 06:50:36VBメニューのアドイン -> アドインマネージャ を選択
一覧から「VB6 リソースエディタ」を選択して「ロード/アンロード」「起動時にロード」にチェックを入れる
VBメニューのツール -> リソースエディタ を選択
リソースエディタの「ビットマップの追加」ボタンを押して表示したいビットマップを選択する
すると101って名前のツリーが出てくるが、それがその画像の番号(リソースID)
画像を使用するときには次のようにすればよい
Picture1.Picture = LoadResPicture(101, vbResBitmap)
0656653
2006/01/27(金) 07:04:46一緒に配布する方法も考えてたんですがApp.pathを知らなかったんで
わかりました、有り難うございます☆
リソースエディタの方法も試したんですが、BMPしか対応してないですね
jpgなんでめんどくさそうなので、一緒に配布したいと思います。
(スイマセン情報不足でしたね)
初心者の質問に答えていただき有り難うございました☆
0657デフォルトの名無しさん
2006/01/27(金) 07:31:01次のようなコードで画像読み込んでるならよく考えること
Picture1.Picture = LoadPicture(App.Path & "\画像形式言えよボケ.jpg")
ドライブのルートの場合 = C:\
フォルダ内の場合 = C:\FolderName
0658656
2006/01/27(金) 07:54:06↑まさしくこの通りやってます、問題があるんでしょうか?
考えても分からない・・・(´Д⊂
0659デフォルトの名無しさん
2006/01/27(金) 08:18:31> 考えても分からない・・・(´Д⊂
MsgBox App.Path & "\ごめんなさい.jpg"
を見てから考えろ。
0660デフォルトの名無しさん
2006/01/27(金) 08:51:27これは知らなかった・・・有難う御座います。
>>648
後者だと不具合が起きる可能性があるので、前者の方が良いです。
実際、後者を前者に変更しただけでちゃんと動いた例が沢山あった。
>>657
この仕様の違いは本当に面倒臭いですよね。
0661656
2006/01/27(金) 09:08:42ルートで起動されると¥¥に・・・
ってことは判別コードも書かなくては
問題はこれですね、ありがとうございます☆
0662デフォルトの名無しさん
2006/01/27(金) 10:28:28キモイ
0663デフォルトの名無しさん
2006/01/27(金) 10:37:20モモイ
0664デフォルトの名無しさん
2006/01/27(金) 11:11:22エスケートゥー
0665デフォルトの名無しさん
2006/01/27(金) 12:13:05USBの値を取り込んで制御を行いたいのですが、
パイプオープンまではできて、
値を取り込むところで固まってしまいます。
スレッド部でReadFileを行うのは不可能なのでしょうか?
誰かヒントでもいいので教えて下さい。
0666デフォルトの名無しさん
2006/01/27(金) 13:13:16VBはライブラリなどがマルチスレッドに対応してないので出来ません
CreateThread してみると動かないことも無いですけど
苦労して作っても、たまにバグる奇形児が生まれるだけですw
確実かつ安全なのは、別スレッドで行う処理を ActiveX EXE で作成して
CreateObject で作成して利用するようにすればよいです
0667デフォルトの名無しさん
2006/01/27(金) 13:35:24マルチスレッドが必須要件ならVS2005への移行をお薦めします。マジで。
0668デフォルトの名無しさん
2006/01/27(金) 13:38:40VB6でマルチスレッドは出来ないけど。
0669デフォルトの名無しさん
2006/01/27(金) 15:00:40そのスレッド上でまともな処理が出来ない。
それがVB6の仕様。
0670デフォルトの名無しさん
2006/01/27(金) 15:34:48ttp://www.naka-net.com/y-mac/63.html
ttp://www1.harenet.ne.jp/cgi-bin/cgiwrap/unaap/lib/libsmp.cgi?lang=&function=CreateThread
ttp://forums.belution.com/ja/vc/000/154/72s.shtml
0671665
2006/01/27(金) 16:36:03やはりそうでしたか。
マルチスレッド化のサンプルはあったのですが、
説明にも不完全とありました。
同じサンプルに、GUI部はVBで実現して、
マルチスレッド化のDLLをC++で実現するというものがありましたが、
こちらもサンプルのままで使用すると一応動作するんです。
が、狙った動作が行えず、
若干改変を加えるとエラーがでてしまって…
MSVCRT.LIBの"main"が未解決ですといわれます。
0672666
2006/01/27(金) 17:21:05非同期通知&マルチスレッドのサンプル
http://www.microsoft.com/japan/developer/library/vb98/vbsmpcoffeecoffeecoffee.htm
http://web.archive.org/web/20010417125807/http://www.microsoft.com/japan/developer/library/vb98/coffee.exe
0673デフォルトの名無しさん
2006/01/27(金) 17:30:06そもそも何でマルチスレッドで処理する必要があるの?
Exe2つでプロセス間通信とかすりゃいいじゃん。
0674デフォルトの名無しさん
2006/01/27(金) 17:34:15やりたい事は「マルチスレッドを行いたい」ではなく、「USBの値を取り込んで制御を行いたい」だよね?
「USBの値を取り込んで制御」は、「マルチスレッド」以外では実現不可能なんでしょうか?
0675デフォルトの名無しさん
2006/01/27(金) 17:39:17適材適所。
0676665
2006/01/27(金) 18:11:36自宅に帰ったら覗いてみます。
いろんな意見有り難うございます。
説明不足すぎですね。
まず、やりたいことをお伝えせねば。
現在卒業制作にて課題に取りかかっているんですが、
そのプログラムに行き詰まっています。
その制御ですが、PCからDIOボードを使って外部に出力してラジコン飛行船を制御するというものです。
最初の段階ではVBでコマンドボタンを配置して、
それに対応して出力するというプログラムでした。
これは比較的容易で、ボードについていたサンプルを軽く弄る程度で良かったんですが…続きます。
0677デフォルトの名無しさん
2006/01/27(金) 18:17:30続くのかよっ!
0678665
2006/01/27(金) 18:26:30VBのフォーム上に無線LANカメラの画像を表示するということになり、
webブラウザーを設置してコマンドボタンでURLを開かせるようにしました。
問題はここからで、
それが成功するとUSBゲームパッドでも制御できるようにする、
と追加されたのです。
いろいろ調べて汎用デバイスドライバをインストールして、
マスクオープン→パイプオープン→ReadFileで各ボタンの値とり込み→値によってI/Oの振り分け
という制御にしたんですが、
わからないながらも頑張って調べてなんとか値は取り込めて、
飛行船も制御できたんですが…
画像がコマ送りになるんです。
USBデバイスから情報を送っている間は
処理が完了するのかカメラの画像動くんですが、
デバイスから入力が途絶えると止まってしまいます。
どうやらデバイスから入力が途絶えると待ちに入って他の処理ができなくなるらしいのです。
そこで調べて行くとマルチスレッド化をして、
待ちに入った場合は他の処理を優先させる…といったものでした。
何故VBなのかがお分かりになられたでしょうか。
長文本当にすいません。
あと2ヶ月余りで仕上げなくてはならず、
時間も知識もなくて途方にくれてます。
0679デフォルトの名無しさん
2006/01/27(金) 18:33:29素直にExe2つにした方がいいよ。
これからの二ヶ月を無駄にしたくないなら。
0680デフォルトの名無しさん
2006/01/27(金) 19:41:16ActiveX-EXEで別プロセス作ったほうが良さげ。
俺だったら.NETかC++に行ってスレッド使うけど。
>MSVCRT.LIBの"main"が未解決ですといわれます。
プロジェクトがDLL作る用になってないだけだからすぐ直るよ。
ぐぐってみなされ。
0681デフォルトの名無しさん
2006/01/27(金) 19:43:39678の問題が実行ファイル2つにして解決するような類のことかってw
素直にCでスレッドで処理するdll書くのが正解。
>>678
汎用ドライバって柏野さんの奴でしょ?
ずいぶん前にインターフェイスに載ってたやつ。
CQのインターフェイス別冊のUSB本(同じようなのが何冊もあって困るが)
にヒントが書いてあるよ。
0682デフォルトの名無しさん
2006/01/27(金) 19:54:540683デフォルトの名無しさん
2006/01/27(金) 19:57:220684デフォルトの名無しさん
2006/01/27(金) 23:11:01マルチスレッドしたいならとりあえずコレを試すべし
0685デフォルトの名無しさん
2006/01/28(土) 01:21:23優先?何のこと?マルチスレッドはスレッドを並行させることだよ
0686デフォルトの名無しさん
2006/01/28(土) 01:25:05スレッド使ったことあるの?
0687デフォルトの名無しさん
2006/01/28(土) 07:05:360688687
2006/01/28(土) 07:25:330689デフォルトの名無しさん
2006/01/28(土) 10:47:540690デフォルトの名無しさん
2006/01/28(土) 11:25:35分かり易く。
0691デフォルトの名無しさん
2006/01/28(土) 11:55:51・名前をアスキーコードに直して先頭から足しこんでいった時に、素数で割り切れるように命名しなければならない
・日本語の読みをローマ字(大文字)にしたものを使わねばならない
・名前の長さは最低16文字を超えていなければならない
・名前の末尾に命名した日の西暦を4桁でつけなければならない
0692デフォルトの名無しさん
2006/01/28(土) 12:03:50お前のところは規則がそんなにも少ないのか
0693デフォルトの名無しさん
2006/01/28(土) 12:11:09とりあえず、無難にモンゴリアン記法に従っておけ
0694デフォルトの名無しさん
2006/01/28(土) 12:11:540695デフォルトの名無しさん
2006/01/28(土) 13:56:22ハンガリー記法では・・・
0696デフォルトの名無しさん
2006/01/28(土) 14:01:31ちょっとまてお前なんで俺のパスワードを知っている
>>650
Dim A as New Hoge
だと、AにNothingを入れてもまた参照すると勝手に作られるから、
イニシャライザの走るタイミングが違うだけ、ではないな。
また、このチェックのためにちょっぴり遅い、とも聞く。
まぁよく分からんうちは
Dim A as Hoge
set A = new Hoge
にするのが間違いないと思うよって言うか As New なんて使わないほうがいい
0697デフォルトの名無しさん
2006/01/28(土) 14:07:38Enum 香代子
にしておきます。
0698デフォルトの名無しさん
2006/01/28(土) 14:41:48変更しようと思って色々弄ってた所で疑問が・・・
ShowInTaskbar = True で BorderStyle = vbSizable なのに、アイコンにした時
タスクバーに入らず、上に小さな長方形のアイコンになってしまいます。
後は何処を変更すれば良いんでしたっけ?
0699デフォルトの名無しさん
2006/01/28(土) 15:02:52初恋の女の子を変更汁
0700デフォルトの名無しさん
2006/01/28(土) 15:07:12モンゴリアン記法も知らないのか・・・
0701デフォルトの名無しさん
2006/01/28(土) 15:24:13もうその質問飽きた
0702デフォルトの名無しさん
2006/01/28(土) 16:13:35VBでのクラス・インスタンスってすべてヒープ上に
できるんですか?組み込み系のクラス(Integerとか)も?
0703デフォルトの名無しさん
2006/01/28(土) 16:28:27ほとんどIEそのまんまな機能だけど、唯一劣る点が
お気に入りのメニュー上でのドラッグ操作が出来ない点・・・
これさえ何とかなれば、そこそこ使えるんだけどなぁ
今後はUserAgentの変更とかも手を出してみる予定〜
0704デフォルトの名無しさん
2006/01/28(土) 16:34:000705デフォルトの名無しさん
2006/01/28(土) 16:37:18VC++習得したなら、VB6なんてやる必要ないじゃん。
C#.NETとかVB.NETの方が。
0706デフォルトの名無しさん
2006/01/28(土) 16:44:02そのレス意味あんの?
0708デフォルトの名無しさん
2006/01/28(土) 17:36:09Cだとスタックとヒープってはっきり分かれてるけど、
VBはどーなんだろうね。
VBだとよっぽど特殊なことをしない限り、
メモリイメージを把握する必要はないよ。
0709702
2006/01/28(土) 17:43:09うーん、ちょっとWIN32 APIを呼び出す必要がありまして。
よくあるバッファを渡すパターンなんですけど、ちょっとサイズ
大きめなんですよ。
なんでスタック上に取られるとスタック領域の不足が心配で。
逆に、明示的にヒープとか確保する方法があればそれでも
OKなんですけどねー。
0710デフォルトの名無しさん
2006/01/28(土) 17:46:24APIの呼び方講座がヘルプにあるんんだから熟読してから考えようよ。
0711デフォルトの名無しさん
2006/01/28(土) 18:12:41VBでも同じだよ
IntegrtとかLongの組み込み型はスタックで
インスタンスはヒープで その参照はスタック上に確保される
配列とかも全部同じ...かも
VBはメモリ・ポインタを完全に覆い隠しているから
ドコから確保してるのかは正直分からないな
どうしてもヒープに確保したいならAPIで明示的に確保してやれば
>>703
出来たらオープンソースにして皆で改造しようや
0712デフォルトの名無しさん
2006/01/28(土) 18:15:22スタックがどうの、ヒープがどうの、メモリがどうの、とか、
一切考える必要がないのがVBクオリティ。
>>709
APIに渡すバッファは、普通APIで確保するのでは。
0713702
2006/01/28(土) 18:15:36えーと、すいません、よくわかってなくて。一応読んだつもりなんですが
WIN32 APIの文字列データの引渡しについては
・StringはVBで内部的にBSTR型として表現されること
・String()関数を使って長さを設定した文字列か、固定長文字列宣言で得られたインスタンスをバッファとして使う
あたりで理解したんですが、VBにおけるString=BSTR型のインスタンスが
スタック上で実現されているか、ヒープ上で実現されているかはわからない
ような気がするんですが...。
何か読み方か、考え足りてないのかな?
0714デフォルトの名無しさん
2006/01/28(土) 18:20:58ソース公開しないなら、ここで報告などせずに
黙ってひっそりとやってろ。
ここで報告したいならソース出せ。
以上。
0715デフォルトの名無しさん
2006/01/28(土) 18:23:48dim s as string
s = space(256)
ってやるよ。
0716デフォルトの名無しさん
2006/01/28(土) 18:26:54VC++的考えは全部捨てろよ。
0717デフォルトの名無しさん
2006/01/28(土) 18:28:13か
string(n,vbnullchar)
が普通だと思ってた漏れは炒ってよしですか?
0718デフォルトの名無しさん
2006/01/28(土) 18:38:12配列はスタックかヒープかは分からんとオモタ。
Cなら確実にスタックオーバーフローになるようなサイズでもVBでは確保できるんで、
内部で調整してんじゃないかな。
(ただ関数抜けたら開放されるはずだから、クラス的なオブジェクトとは挙動が違うけど)
>>713
>あたりで理解したんですが、VBにおけるString=BSTR型のインスタンスが
>スタック上で実現されているか、ヒープ上で実現されているかはわからない
だね。
型から確保している場所なんて分かんない。
0719デフォルトの名無しさん
2006/01/28(土) 18:44:140720デフォルトの名無しさん
2006/01/28(土) 18:47:48VBでもあるよ。
終了できない再帰関数作って実行してみなはれ。
0721デフォルトの名無しさん
2006/01/28(土) 19:01:30実行ファイルは全てメモリはスタック・ヒープで管理されてるよ
最近はVB・JAVA・C#とかのメモリを意識しないでプログラミングできる言語が増えてきてる
0722デフォルトの名無しさん
2006/01/28(土) 19:02:54VBにもスタックもヒープもあるだろ
PEファイルの中身覗いてみろよ
>>702
つ GlobalAlloc
0723デフォルトの名無しさん
2006/01/28(土) 19:03:110724デフォルトの名無しさん
2006/01/28(土) 19:05:07歴史のあるアプリのおもりってのは胃がいたくなるぞ。
一度やってみろ(・∀・)
0725デフォルトの名無しさん
2006/01/28(土) 19:08:33下請けや出向なら、スキル云々関係ないじゃん
客が指定した環境で作るしかないだろ
俺も以前、勤めてた会社でVC++のプロジェクトのあと初VBだったぞ
0726702
2006/01/28(土) 19:25:56そのとおりです。こちらもメンテナンスです(涙。
>>711,722
やっぱりAPI呼び出しで明示的に確保しかないんですかね。
アイディアありがとうございます。
>>717
大丈夫です。MSDN Libにはその2つの方法が基本として
書いてありました。そのどちらでもいいそうです。
0727デフォルトの名無しさん
2006/01/28(土) 19:35:38生CとかVC++でWindowsアプリを書いた事があるなら、
VBなんて楽勝でしょう。
0729デフォルトの名無しさん
2006/01/28(土) 20:03:27ちょっとしたツール作るだけなら楽チンなんだけど
MSGridをもうちょっとExcel風に便利にしてみようだとか
用意されたお手盛り品から抜け出そうとしたとたんデスマだよなw
まあ、そんな開発に当たることが無ければいいんだけど・・・
あと、VBはVCに比べて罠が多いよな
全部あげたらキリがないけど、暗黙のオブジェクトとか、デフォルトプロパティとか
型宣言忘れてVariantだとか、AddressOfが引数構文でしか使えないとか・・・
0730デフォルトの名無しさん
2006/01/28(土) 20:07:59そんな案件をVBでやる事自体、根本的に間違ってるからね。適材適所。
そのVBの罠も、生C/C++から入った人は引っ掛からない。
0731デフォルトの名無しさん
2006/01/28(土) 20:14:44>生C/C++から入った人は引っ掛からない。
そんなアホな話があるかw
何から始めた人だって、プロパティ書き忘れることだってあるし
型宣言だって書き忘れないとは限らない
0732デフォルトの名無しさん
2006/01/28(土) 20:39:10レベル低いな。
0733デフォルトの名無しさん
2006/01/28(土) 20:45:18いや、お前のが低いだろ
ミスを犯すことを前提にコーディングするもんだ
俺は間違えない!なんて考えで書いてるようじゃ
どれだけ悲惨なコードか目に浮かぶよ
0734デフォルトの名無しさん
2006/01/28(土) 20:48:03RPGですか
0735デフォルトの名無しさん
2006/01/29(日) 02:24:43基本的には >>733 の言うようにミスを前提でコーディングするべきだからな。
ミスする奴が悪いなんて言っているうちは間違っている。
ミスできる言語仕様が悪いに決まっているからだ。
でもさっき挙げられているのはVBらしさの重要な部分でもある。
誰でも使えて、ちょっと作って、ぱっと動かす。
これがもともとのVBの立場であるので、「高度なこと」をやろうと思えば
大変なのはまぁ仕方ナス
.NETで暗黙のFormインスタンスが無くなってよかったと思っていたが、2005で
戻っちゃったしなぁ
0736デフォルトの名無しさん
2006/01/29(日) 03:48:17最初のやつはC#とVB.NETを比べても、あえてVB選ぶような価値ってのは見えなかったわけだし、
言語仕様の曖昧さというのを受け入れてでもVBの特色を出すというのは仕方ないのかも。
VB6とは違ってベースは他のと同じの使ってるわけだし、他の言語の為に作成した開発支援技術の
流用も期待できるから、孤立しないで進歩できるようになる良い兆候だと俺は思ってる。
0737デフォルトの名無しさん
2006/01/29(日) 04:19:470738デフォルトの名無しさん
2006/01/29(日) 10:46:51それ必須だよね。
0739デフォルトの名無しさん
2006/01/29(日) 11:04:24むしろ入れておきたいのはこっち
DefByte A-Z 'Byte
DefDate A-Z 'Date
DefObj A-Z 'Object
このへんをコンパイル引数で切り替えてチェックする
0740648
2006/01/29(日) 12:21:18納得しまして解決しました。
要は見やすいコードは前者というわけですね。
先輩がウンコと言った箇所は実は別の意味合いだったらしく、私が
判定文の間の条件コード内にDim test As New Class1 とNothing
をしていた事に文句いいたかったそうです。
おさわがせいましました
0741デフォルトの名無しさん
2006/01/29(日) 12:59:19お、頭良いなそれ採用
0742デフォルトの名無しさん
2006/01/30(月) 10:40:320743デフォルトの名無しさん
2006/01/30(月) 10:45:49VBから弄るんだから勿論OKなんじゃない。
0744742
2006/01/30(月) 10:52:15Set oAccess = CreateObject("Access.Application")
Call oAccess.OpenAccessProject(strPath, True)
で、セキュリティ警告ダイアログがAccessから表示されていまいます。
開くときにAccessファイルを[Shift]+[開く]の形式で
Accessファイルの起動時処理を走らせずに開きたいのですが
どのようにすればよいのでしょうか?
0745デフォルトの名無しさん
2006/01/30(月) 11:17:480746デフォルトの名無しさん
2006/01/30(月) 11:22:57OpenAccessProject に第二引数はない様な・・・
OpenCurrentDatabase じゃなくて?
で、
Dim oAccess As Access.Application
Set oAccess = CreateObject("Access.Application")
oAccess.Visible = True
oAccess.OpenCurrentDatabase "Test.Mdb", True
oAccess.CloseCurrentDatabase
oAccess.Quit acQuitSaveNone
Set oAccess = Nothing
特にエラーは出ないけど・・・
単にデータベースパスワードの事か?
それなら
ttp://support.microsoft.com/default.aspx?scid=kb;ja;317113#XSLTH3194121121120121120120
この辺か。
0747742
2006/01/30(月) 11:42:26Accessは2003で、開くファイルはadpなんです。
------------------------------------------------------------------
セキュリティ警告
"C:\hoge.adp" を開いています
このファイルに、意図的にお使いのコンピュータに損害を与えるコードが含まれる場合、
ファイルは安全でない可能性があります。
[キャンセル] [開く] [詳細]
------------------------------------------------------------------
というダイアログが出てしまいます。
何をしたいかというと、vbからadpの接続プロパティを更新したいのです。
adpの使用者に接続プロパティの変更を自分でおこなってもらうのではなく、
vbから自動で接続プロパティのサーバーやデータベースを更新したい、
という要望なんです。
このvbアプリを実行することで、使用者は難しい設定をしなくても
自動で代替サーバーに切り替えてadpを使用できるようにしたいのです。
接続プロパティの更新はできました。
>746
どこかのサイトで調べてOpenAccessProjectという書き方が載っていましたので
そのようにしていました。
第二引数は、排他モードということです。
OpenCurrentDatabaseを使用して開いても同様の結果となりましたorz
0748デフォルトの名無しさん
2006/01/30(月) 11:45:19それって、アンチウィルスソフトが出してるのではなく?
0749デフォルトの名無しさん
2006/01/30(月) 11:48:29そのメッセージでググッたら、幾らでも解決方法が出てきた。
0750デフォルトの名無しさん
2006/01/30(月) 11:53:10ttp://support.microsoft.com/default.aspx?scid=kb;ja;831334
0751742
2006/01/30(月) 13:11:38Accessからのメッセージです。
>749
でも、欲しい回答がなかなかみつからなかったのでここにきました。
>750
Jet4.0のSP8パッチはあててありますが、現象が変わりませんorz
>747のダイアログで[Shift]キーを押しながら[開く]を選択しないと
起動時の処理が走ってしまうので困っているんです。。。
0752デフォルトの名無しさん
2006/01/30(月) 13:35:540753742
2006/01/30(月) 13:54:51起動時のコードを走らせないような起動パラメータか何かないんでしょうか??
0754742
2006/01/30(月) 14:07:14ここには [スタートアップオプションを無視する] ことを無効(つまり、[shift]+[開く]を無効)にする方法が
記述されていましたが、要はこれと逆の事をvbで実装したいのです。
しかし、その事の資料がなかなかみつかりませんでした。
実際問題として無理なんでしょうか。。。?
0755デフォルトの名無しさん
2006/01/30(月) 16:09:33VBスレで,ということなので,こちらで質問させてください。
デバッグのため,オブジェクトのプロパティの一覧を書き出したいのですが,方法がわかりません。
任意のオブジェクトのプロパティ名の一覧を配列などの形式で取得する方法はありますでしょうか。
(具体的には,WebBrowser.Document以下の,任意のNodeのプロパティ一覧を取得したいのですが)
0756デフォルトの名無しさん
2006/01/30(月) 16:13:53つ オブジェクトブラウザ
0757755
2006/01/30(月) 16:31:42ちょっと説明が不十分だったかと思いますので,補足させてください。
オブジェクトブラウザでは,WebBrowser.Document以下のオブジェクトのプロパティを見ることは
できないようです。(おそらく内部的にはMSHTMLあたりと同じなのかと思いますが,知識不足の
ためよくわかりません。)
オブジェクトブラウザでなくても,ウォッチウィンドウなら確認することができますが,どちらにせよ
ExcelとVBEを頻繁に行ったり来たりしなくてはならず,効率的でないようです。
そこで,
1) フォーム上にWebBrowserコントロールを配置し,
2) WebBrowser.Documentの内容をTreeViewコントロールに表示し,
3) TreeViewコントロールの要素を選択すると,そのNodeのプロパティがListViewに表示される
というデバッグ用のフォームを作成しているのですが,3)の処理を行うために,
選択したNodeのプロパティ名の一覧を配列などで取得する方法を探しているという事情です。
何かいい方法か,代用策はありませんでしょうか。
0758デフォルトの名無しさん
2006/01/30(月) 16:56:54とりあえずこの辺を参考に
ttp://support.microsoft.com/default.aspx?scid=kb%3Bja%3B172988
0759デフォルトの名無しさん
2006/01/30(月) 17:04:54おおっ、ありがとうございます
さっそく調べてみます
0760755
2006/01/30(月) 17:24:25VBをインストールしないと(VBAだけでは)このファイルはインストールされないようですね
しかたがないので,機械的にプロパティのリストを取得するのは諦めて
何か他の方法を考えようと思います。
レスしてくださった方々,ありがとうございました。
0761デフォルトの名無しさん
2006/01/30(月) 20:08:30で、変数(くじの全体数や当たりの数)を設定・記録できるようにして、
くるくると多角形を回して、玉が出てくるなどといった形までは出来たのだが…
いかんせん、見た目が貧相なのだ。なんかこう、見た目がカッコ良くできないだろうか。
パチスロのリールみたいにした方が良かったかな…
0762デフォルトの名無しさん
2006/01/30(月) 20:27:350763デフォルトの名無しさん
2006/01/30(月) 20:30:16ランタイムに含まれてるみたい。
ランタイムは配布可能だから配布すればいいじゃん。
0764デフォルトの名無しさん
2006/01/30(月) 21:14:41まあベクターから拾ってくれって言えばいいんだろうけどさ。
0765デフォルトの名無しさん
2006/01/30(月) 21:21:21そう。VB6SP6を。
0766755
2006/01/30(月) 21:28:32情報ありがとうございます。
Vectorで「VB ランタイム」で検索してヒットした一番新しいもの(VB6.0SP6第3版とかなんとか)を
インストールして、Windowsフォルダを対象にTlbinf32.dllを検索してみましたが、
どうもこのパッケージではインストールされなかったようです。
どのパッケージにはいっているか、見当はつきますでしょうか。
0767デフォルトの名無しさん
2006/01/30(月) 21:29:040768デフォルトの名無しさん
2006/01/30(月) 21:42:54VB5SP3ランタイム
0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
2006/01/30(月) 23:49:07Node(HTMLタグ)の属性を全列挙したいんだよな
IHTMLDOMNode.Attributes か HTMLElement.Attributesではイカンのか?
間違っていたら無視してくれ
0771デフォルトの名無しさん
2006/01/31(火) 00:01:00無理。
0772デフォルトの名無しさん
2006/01/31(火) 00:48:21情報ありがとうございます。
結局、目的のDLLは見つかりませんでした。
>>770
情報ありがとうございます。
取り出したいのは、タグの属性ではなく、オブジェクトのプロパティです。
ですがそれも有用な情報ですので、参考にさせていただきます。
質問の当初の目的(プロパティの取得)は実現できませんでしたが、
調べる過程で、当該のオブジェクト群のおおよその仕様は理解できました。
また、いくつかのプロパティと>>770さんの指摘くださった属性の組み合わせで
かなりの程度効率的なデバッグツールを作ることができましたので
この質問は一応終了とさせていただきます。
情報をくださった皆様、ありがとうございました。
0773デフォルトの名無しさん
2006/01/31(火) 12:20:200774デフォルトの名無しさん
2006/01/31(火) 13:47:00以前も書かせていただいたのですけれど、MSCDで過去にあった70-175
と70-176。この勉強をしろと言われているのですが、どちらを先に進めた
ほうがよろしいですか?お願いします。
0775デフォルトの名無しさん
2006/01/31(火) 13:59:05「MSCDで過去にあった70-175と70-176」ってのが何の事が全然分からん。
0776デフォルトの名無しさん
2006/01/31(火) 14:02:22知っている人だけお願いします<(_ _)>
0777デフォルトの名無しさん
2006/01/31(火) 14:09:18ここはお前の日記帳じゃねぇんだ
チラシの裏にでも書いてろ、な?
0778デフォルトの名無しさん
2006/01/31(火) 14:09:25以前も書いたのに誰も回答してないな。
つまりそういう事だ。
お前の様な莫迦には理解出来ないだろうがね。
0779デフォルトの名無しさん
2006/01/31(火) 14:18:490780デフォルトの名無しさん
2006/01/31(火) 14:22:360781デフォルトの名無しさん
2006/01/31(火) 16:19:40こいつって定期的に沸いてくる基地外でしょ?かまって君だから以後放置。
0782デフォルトの名無しさん
2006/01/31(火) 17:17:43下記のコードはMSDNから引用し、改変したものです、ご教授お願いいたします。
Dim vtData As Variant
Dim bData As Byte
Dim bDone As Boolean: bDone = False
vtData = Inet1.GetChunk(1024, icByteArray)
DoEvents
Do While Not bDone
DoEvents
bData = bData & vtData
DoEvents
vtData = Inet1.GetChunk(1024, icByteArray)
If Len(vtData) = 0 Then
bDone = True
End If
Loop
0783デフォルトの名無しさん
2006/01/31(火) 18:00:4070-176 から先に勉強しろ
0784デフォルトの名無しさん
2006/01/31(火) 18:58:56実行してないけど・・・
Byte データを & なんかで繋げていいの?
後、icByteArray なんだからちゃんとバイト配列で受けた方が良いのでは。
0785782
2006/01/31(火) 19:27:58レスありがとうございます
はい、そもそもGetChunkでバイナリデータを扱う方法がわかりませんので、自分なりに頑張ってみたところです
元のコードは文字列型を取得するコードだったようで、それを単に書き換えただけでございます
0786デフォルトの名無しさん
2006/01/31(火) 19:40:15MSDNのサンプルに
Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim vtData As Variant ' Data 変数
Select Case State
' ... ほかの条件のコードは省略されています。
Case icResponseCompleted ' 12
' 出力先のファイルを開きます。
Dim intFile As Integer
intFile = FreeFile
Open "C:\Tmp\A.Html" For Binary Access Write As #intFile
' 最初のデータを読み取ります。注意: バイナリ ファイルを読み取る
' 場合はバイト (Byte) 配列 (icByteArray) を指定します。
vtData = Inet1.GetChunk(1024, icString)
Do While LenB(vtData) > 0
DoEvents
Put #intFile, , vtData
' 次のデータを読み取ります。
vtData = Inet1.GetChunk(1024, icString)
Loop
Put #intFile, , vtData
Close #intFile
End Select
End Sub
こんなのがあったけど。
0787デフォルトの名無しさん
2006/01/31(火) 19:49:540788782
2006/01/31(火) 21:12:160789デフォルトの名無しさん
2006/01/31(火) 21:17:110790デフォルトの名無しさん
2006/01/31(火) 21:41:35正常な人間なら、何が間違っててどう変更して解決したかを書き込む訳だが。
0791788
2006/01/31(火) 21:49:050792デフォルトの名無しさん
2006/01/31(火) 22:08:56res=10/(5-2)ってやったらダメみたいなんですけども¥
0793デフォルトの名無しさん
2006/01/31(火) 22:13:580794デフォルトの名無しさん
2006/01/31(火) 22:36:24算数のお話なんですけど、10 ÷ (5−2) っていう式を再現したいんですけど、どうやって記述したらいいですか?
res=10/(5-2)ってやったらダメみたいなんですけども¥
793 名前:デフォルトの名無しさん :2006/01/31(火) 22:13:58
あれ?いけました(汗爆爆爆爆汗超笑
0795デフォルトの名無しさん
2006/01/31(火) 23:18:340796デフォルトの名無しさん
2006/01/31(火) 23:34:33IE乙
0797デフォルトの名無しさん
2006/02/01(水) 00:08:23UserAgentの動的変更、JavaScript・サウンド・画像のON/OFF切り替え
IEのお気に入りメニューの並び順も再現(動的な並べ替えは無理だけど)
ベーシック認証ダイアログや、JavaScriptのアラートもカスタマイズできるようになった
しかし、ここで問題発生!(><;)
window.close されたときに opener が True でないと WindowClosing イベントの後に
「〜閉じられようとしています。閉じてよか?」って出るんだけど、
ここで、はい/いいえ の選択結果を取れない・・・orz
独自ダイアログにすれば可能だけど、オリジナルのままで結果を知りたいところだ
しかし、相変わらず Coolbar 使うと、なんか画面がちらつくのが許せん・・・
0798デフォルトの名無しさん
2006/02/01(水) 00:09:51リファラを送る方法をオシエテ下さい
0799デフォルトの名無しさん
2006/02/01(水) 00:11:19http://yuukiremix.s33.xrea.com/chirashi/
0800デフォルトの名無しさん
2006/02/01(水) 00:12:57どう駄目だったのか知りたい・・・
0801775
2006/02/01(水) 00:56:20がんばって、やってみます。
0803デフォルトの名無しさん
2006/02/01(水) 01:34:44WebBrowser コントロール使う以外で方法ありませんか
0805デフォルトの名無しさん
2006/02/01(水) 03:07:09期待度一気にガタ落ちだなw
0806797
2006/02/01(水) 03:25:33IEコンポ使わなかったらレンダリングやJavaScriptまでIE互換で自前実装するの?
VBで実装したら実用速度にならないし、IEと互換性無いと使い物にならないじゃん
2chブラウザみたいな特殊な環境限定なら、それでもいいだろうけどね
0807デフォルトの名無しさん
2006/02/01(水) 03:26:430808デフォルトの名無しさん
2006/02/01(水) 03:26:470809デフォルトの名無しさん
2006/02/01(水) 03:35:54こんな夜中に即レスくれるのはうれしいんだけどさ
実際そうでないんなら、VBの独自エンジンブラウザ晒してみてよぅ
0810デフォルトの名無しさん
2006/02/01(水) 03:36:530812デフォルトの名無しさん
2006/02/01(水) 03:40:25m9(^Д^)プギャー
0813デフォルトの名無しさん
2006/02/01(水) 03:41:39797も役にも立たない日記的なことばかりで何も晒してないし。
0814デフォルトの名無しさん
2006/02/01(水) 03:43:20m9(^Д^)うぇ〜
0816813
2006/02/01(水) 03:46:16ただ、ソースにすろバイナリにしろ
晒すことでそいつにメリットがあるのかなぁと。
0817デフォルトの名無しさん
2006/02/01(水) 03:46:550818デフォルトの名無しさん
2006/02/01(水) 03:49:22嬉しいのかよ?
内心では悔しくて悔しくて堪ら(ry
0819デフォルトの名無しさん
2006/02/01(水) 03:50:14803 名前:デフォルトの名無しさん[sage] 投稿日:2006/02/01(水) 01:34:44
>>802
WebBrowser コントロール使う以外で方法ありませんか
0821デフォルトの名無しさん
2006/02/01(水) 03:50:24踊らされて晒した奴の負け
0822797
2006/02/01(水) 03:52:34大丈夫だよ、バイナリならソース見られるわけでも無いしさ
IEコンポなしでも、VBでブラウザ作れるんだってとこを証明できるじゃん?
0823デフォルトの名無しさん
2006/02/01(水) 03:53:19VB6.0でIEコンポ利用して作ったタブブラウザって誰が使うんだろう
そして何で>>797は>>602以降このスレで一々
「どうしようか、あれができた、これができた」って報告してるんだろう
質問スレなんだから質問と回答のお礼意外は書かなくて良し、って言うか書くな
0824デフォルトの名無しさん
2006/02/01(水) 03:53:53それはお前が決めていい事じゃない。
これがまかり通るならこのスレ(10〜20レス/日 程度)より進行の遅いスレでは
どんなスレ違いな話題でも個人的な日記でも嵐でさえも正当化されてしまう。
0825デフォルトの名無しさん
2006/02/01(水) 03:57:240826797
2006/02/01(水) 03:57:46まぁまぁ、そう冷たいこと言わないで
こんな深夜にも活発にレスしあえるんだからお互い楽しいじゃん?
んじゃ、今日は遅いからもう寝るよっ(`・ω・´)
0827デフォルトの名無しさん
2006/02/01(水) 03:59:14こういうスレは、質問者意外にも有益な情報元になるんだよ
駄レスが増えれば増えるほど価値が落ちる
私物化してチラシの裏なんてもってのほか
0828797
2006/02/01(水) 04:06:41また少し出来たら報告するから期待してる人待っててね、んじゃ(`・ω・´)ノシ
0829デフォルトの名無しさん
2006/02/01(水) 05:30:40仮に完成しても、バイナリは誰にも喜ばれないだろうな。
ソース出せば初心者には喜ばれるかもしれないけど、
スキルの低い奴ってソース出すの躊躇うしw
0830デフォルトの名無しさん
2006/02/01(水) 07:20:30死ね
0831デフォルトの名無しさん
2006/02/01(水) 07:48:04前の会社に、Exeだけあれば、その元になったソースのバグ迄分かる人が居た。
機械語が完璧に分かるその人にとって、バイナリもソースと同じだった。
0832デフォルトの名無しさん
2006/02/01(水) 07:58:04VBにスキルも糞も
0833デフォルトの名無しさん
2006/02/01(水) 09:02:13死ね
0834デフォルトの名無しさん
2006/02/01(水) 09:04:19寧ろイ�`
0835デフォルトの名無しさん
2006/02/01(水) 09:05:05やっぱ氏ね
0836デフォルトの名無しさん
2006/02/01(水) 10:18:03俺もその辺勉強したいんだけど、なぜかどこで聞いてもスルーされるんだよね
0837デフォルトの名無しさん
2006/02/01(水) 10:35:10その処理部分をコンパイルしてCreateProcessで呼び出すしかないのでしょうか?
0838デフォルトの名無しさん
2006/02/01(水) 10:42:19ガッ
0839デフォルトの名無しさん
2006/02/01(水) 11:09:51ExeにしたんならShellでいいんじゃない?
>>838
GJ!
0840デフォルトの名無しさん
2006/02/01(水) 11:21:09>>822
前の会社に、Exeだけあれば、その元になったソースのバグ迄分かる人が居た。
機械語が完璧に分かるその人にとって、バイナリもソースと同じだった。
さすがVBスレw アホが普通に居るなw
0841デフォルトの名無しさん
2006/02/01(水) 11:32:13死ね
0842デフォルトの名無しさん
2006/02/01(水) 11:47:48だがイ�`
0843デフォルトの名無しさん
2006/02/01(水) 12:00:12ActiveX EXEにする手もあるぞ
0844デフォルトの名無しさん
2006/02/01(水) 12:02:096時間以上前の書き込みにいちいちレスつけて荒らすなクズ
0845デフォルトの名無しさん
2006/02/01(水) 12:16:18EXEにした時点で別プロセスになるんですね。
コンパイルせずに内部関数を別プロセスで...なんて出来ませんよね?
0846デフォルトの名無しさん
2006/02/01(水) 12:22:09だから ActiveX EXE にしろって言ってんだろがw
VBからExcelを操作したことないのか?
0847デフォルトの名無しさん
2006/02/01(水) 13:07:54そもそも何がやりたいの?
0848デフォルトの名無しさん
2006/02/01(水) 13:30:45ActiveX EXEですか。調べてみます。ありがとうございました。
0849デフォルトの名無しさん
2006/02/01(水) 13:38:140850デフォルトの名無しさん
2006/02/01(水) 14:25:00マルチスレッドのようなことをしたいのならActiveX.EXEは向いてない。
プロセスは別だがActiveX.EXEのメソッドは同期的にしか呼び出されないので
実質シングルスレッドと同じ。
0851デフォルトの名無しさん
2006/02/01(水) 14:39:42メソッド呼ばれた側はタイマー起動するなり、自分にメッセージ投げるなりして制御返せばいいじゃん
0852デフォルトの名無しさん
2006/02/01(水) 15:30:04非表示のフォームにタイマー貼り付けてという手がありましたね。
昔のことなんですっかり忘れてました。
ただ時間のかかる処理だといろいろ不都合も多かった記憶があり、
その手のActiveX.はC++で作って中でスレッド生成してました。
0853デフォルトの名無しさん
2006/02/01(水) 16:27:510854デフォルトの名無しさん
2006/02/01(水) 17:26:07http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/0008/com/
0855デフォルトの名無しさん
2006/02/01(水) 17:50:28初音氏のやつは、記事も書籍も良いのが揃ってるね。
0856デフォルトの名無しさん
2006/02/01(水) 18:29:36あのーInetコントロールでなんとか操作できませんかね、POSTとか
0857デフォルトの名無しさん
2006/02/01(水) 19:34:15これと同じようなウインドウを自作プログラムに使うことはできるのでしょうか
0858デフォルトの名無しさん
2006/02/01(水) 19:35:420859デフォルトの名無しさん
2006/02/01(水) 19:39:27VB6??
0860デフォルトの名無しさん
2006/02/01(水) 19:44:07市販のOcxで売ってないかな?
0861デフォルトの名無しさん
2006/02/01(水) 19:44:36その場合一度PictureBoxなどに表示させなくてはいけないみたいで、
そこで、質問なのですが、PictureBoxを使わずに
画像ファイルを読み込むと同時にリサイズ、リサンプルすることは可能でしょうか?
0862デフォルトの名無しさん
2006/02/01(水) 19:56:370863デフォルトの名無しさん
2006/02/01(水) 19:58:20折角VBでやってるんだから、PictureBox は Hide にしとけばいいじゃん。
0864デフォルトの名無しさん
2006/02/01(水) 20:03:49Yes
0865デフォルトの名無しさん
2006/02/01(水) 20:15:01http://www.roguewave.com/products/stingray/
がVisualStudioのやつそのものだっけ?
VBからだと少ししか使えないから割高感が高いな。
0866デフォルトの名無しさん
2006/02/01(水) 20:26:450867デフォルトの名無しさん
2006/02/01(水) 20:32:450868デフォルトの名無しさん
2006/02/01(水) 20:40:57それとも演算させるしかない?
0869デフォルトの名無しさん
2006/02/01(水) 21:05:29何でこういう奴って「どうやって解決したのか」を書かないんだろ。
Q&Aの意味が全く分かってないな。
>>868
Format$
0870デフォルトの名無しさん
2006/02/01(水) 21:36:21"アプリケーションのクラス名"が何か気になった
ウィンドウのクラス名じゃないだろーな?
>>868
演算させるしかない
0871デフォルトの名無しさん
2006/02/01(水) 21:39:23ウソツキ
できないよ
0873868
2006/02/01(水) 21:55:26Dim sngRes As Single
Dim cRes
If cValue = "" Then
Exit Function
ElseIf cValue < 1022976 Then
sngRes = cValue / 1024
cRes = Format(sngRes, "0.00") & "KB"
ElseIf cValue < 1047527424 Then
sngRes = cValue / 1024 / 1024
cRes = Format(sngRes, "0.00") & "MB"
ElseIf cValue < 1072668082176# Then
sngRes = cValue / 1024 / 1024 / 1024
cRes = Format(sngRes, "0.00") & "GB"
End If
0874デフォルトの名無しさん
2006/02/01(水) 22:33:09StringだったりSingleだったりDoubleだったりって、
もうちょっと型を意識したら?
個人的にIfよりSelectCaseの方がいいと思う
というより書いてみた。
Public Function foo(ByVal n As Double) As String
Static clc As Collection
Dim i As Long
If n < 0 Then Exit Function
If clc Is Nothing Then
Set clc = New Collection
clc.Add "B"
clc.Add "KB"
clc.Add "MB"
clc.Add "GB"
clc.Add "TB"
End If
i = 0
Do
If n >= 1024 And i < 4 Then
n = n / 1024
i = i + 1
Else
foo = Format$(n, "0.00") & clc(i)
Exit Function
End If
Loop
End Function
0875デフォルトの名無しさん
2006/02/01(水) 22:35:38...
i=1
Do
...
だな。
0876868
2006/02/01(水) 22:36:57ワーオー
これは勉強になりマッスル
ありがちょ
0877デフォルトの名無しさん
2006/02/01(水) 22:38:53('A`) 気をつけろ、そいつは3分クッキングだ
デバグなんて一切してないからな・・・すまん
0878デフォルトの名無しさん
2006/02/01(水) 22:39:12どのようにすればいいでしょう。
参考にしているところ↓
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/seccrypto/security/hasheddata_hash.asp
ttp://forums.devarticles.com/asp-development-3/file-hashing-w-vbscript-4935.html
0879デフォルトの名無しさん
2006/02/01(水) 22:42:190880デフォルトの名無しさん
2006/02/01(水) 22:43:02Dim cKb As Currency
Dim cMb As Currency
Dim cGb As Currency
cKb = CCur(1000) * CCur(1024)
cMb = CCur(1000) * CCur(1024) * CCur(1024)
cGb = CCur(1000) * CCur(1024) * CCur(1024) * CCur(1024)
Dim Tmp2$
Select Case CCur(sValue)
Case 0 To cKb
Tmp2$ = Format$(CCur((sValue) / CCur(1024)), "0.00") & "KB"
Case cKb To cMb
Tmp2$ = Format$(CCur((sValue) / CCur(1024) / CCur(1024)), "0.00") & "MB"
Case cMb To cGb
Tmp2$ = Format$(CCur((sValue) / CCur(1024) / CCur(1024) / CCur(1024)), "0.00") & "GB"
Case Else
Tmp2$ = "Over Flow"
End Select
Tmp$ = Space$(8)
RSet Tmp$ = Tmp2$
End Sub
0881874
2006/02/01(水) 22:55:58この人のは、Subプロシージャなので関数呼び出しによる戻り値分のメモリの確保やらの時間(数n秒?)がいらなくて済む
見づらいが・・・
というわけで、だれかベンチマークテスツを
>>879
たしかにな
でもKBなんかのつながりでBって書いてみた
0882デフォルトの名無しさん
2006/02/01(水) 23:03:33cKbとかcGbなどのCurrency型の変数は、事前に求めて
102400@なんて書いたりした
コレ重要
Private Sub Form_Load()
Const p As Double = 1024# * 1024 * 1024
Dim s As Single
Dim i As Long
s = Timer
For i = 1 To 1000000
Call GbMbKb(p * Rnd, "")
Next
Debug.Print Timer - s
s = Timer
For i = 1 To 1000000
Call foo(p * Rnd)
Next
Debug.Print Timer - s
End Sub
結果
880さん 8.828125 s
おれ 4.328125 s
・・良く見れば、>>880さんの第一仮引数ってString型なのな
なんでだろな
0883デフォルトの名無しさん
2006/02/01(水) 23:28:47なら全部Subに変えたら実行速度速くなんじゃね?
0884デフォルトの名無しさん
2006/02/01(水) 23:36:160885デフォルトの名無しさん
2006/02/01(水) 23:36:57VB6で実行速度を追い求めるのはちょっとなぁ・・・
それよりも、使いやすくて保守しやすくて、何より見て意味の取れるのがいい。
ちょっとベンチとってみそ
Private Sub Form_Load()
Dim i As Long
Dim s As Long
s = Timer
For i = 1 To 10000000: Call foo: Next
Debug.Print Timer - s
s = Timer
For i = 1 To 10000000: Call hoge: Next
Debug.Print Timer - s
End Sub
Function foo()
End Function
Sub hoge()
End Sub
これで家のPCは
4.421875
2.46875
って表示される。
0886デフォルトの名無しさん
2006/02/01(水) 23:52:580887デフォルトの名無しさん
2006/02/01(水) 23:56:480888デフォルトの名無しさん
2006/02/01(水) 23:57:32間違ってもSub(ByVal arg As .. , ByRef ret As ..)みたいな述語形式の関数なんて作るなよ・・
本当に見づらいから(orz
0889デフォルトの名無しさん
2006/02/01(水) 23:58:340890デフォルトの名無しさん
2006/02/02(木) 00:09:07引数多すぎるのは死ねってことか?
0891デフォルトの名無しさん
2006/02/02(木) 00:16:04述語形式て?
>>889
カマドウマ?
0892デフォルトの名無しさん
2006/02/02(木) 00:22:51UNIXのシェルを実行したり
VMSでDCLコマンドを実行したりとかいうそういった関数を作る方法ないでしょうか?
0893デフォルトの名無しさん
2006/02/02(木) 00:28:01ちゃうちゃう
引数の中に戻り値を返す部分を突っ込むんじゃない
ってこと
------
>>891
Prologとかやってみるとよろし
やってるならPrologの"述語"と同じ表現だろ?
…たとえば
foo(0,1).
foo(X , Y) :- X1 is X - 1 , foo(X1,Y1) , Y is Y1 * X.
の foo/2 は、あたかも第二引数が戻り値のよーに動作する
みたいな
へ(へ´∀`)へ 呼んだ?
0894デフォルトの名無しさん
2006/02/02(木) 00:29:18戻り値が二個以上だったら開き直ってsubプロシージャでbyref四個とかやっちゃうけどダメ?
0896デフォルトの名無しさん
2006/02/02(木) 00:33:07とりあえずVB/UNIXな環境を手に入れるのがキツい希ガス・・・
over Telnet とかならなんとかなるんじゃまいか?
と考えて、適当に伏線を引っ張っておく
1 set telnet=CreateObject("Wscript.Shell").exec("telnet")
telnet.StdIn.WriteLine "X.X.X.X" & vbcrlf
なんかで、運良くtelnetでログイン
2 後はtelnetで操作する感じで色々
・・・できるわけなさそうだな。
0897デフォルトの名無しさん
2006/02/02(木) 00:34:21俺だったら構造体かクラスにする
0898デフォルトの名無しさん
2006/02/02(木) 00:37:12IDLとかC++な out 属性があればいいんだけど、
ByRefじゃ束縛弱すぎるからちょっとなぁ…
WinAPI上なら引数に戻り値として受け取る仮引数があっても許せるが、
やっぱりVB上なら、無理にでもクラスにまとめて欲しい希ガス
'created:2006/02/02 00:34
'class Point
'*general*
public x as long
public y as long
'*End Of Code*
public function CreatePoint(byval X as lonb,byval Y as long) As Point
set CreatePoint=new Point
CreatePoint.x=X
CreatePoint.y=Y
end function
みたいな。
>>878
すまん、capicom.dllが家にないんだ…(orz
0899デフォルトの名無しさん
2006/02/02(木) 00:38:30へ(へ´∀`)へ ヘヘヘ罠にかか(ry
Publicなプロシージャの戻り値には、公開していない構造体は突っ込めないオチが待っているかも
素直にクラスで統一・・・?
0900878
2006/02/02(木) 00:39:40お気持ちだけでもうれしいです。
もしご一緒に検討してくださる方がいらしたら
無償ですので↓からダウンロードできます。
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=860EE43A-A843-462F-ABB5-FF88EA5896F6&displaylang=ja
0901デフォルトの名無しさん
2006/02/02(木) 00:42:38リンクthx!!
動くかわからないけど、ハッシュ関数は自力で(自力のアルゴリズムで)つくったのしか持ってないんだ。
…素直にcryptapi使えってな。
0902デフォルトの名無しさん
2006/02/02(木) 00:43:19rshですかrがつくということはリモートですね。
だめです思考回路が働ききりません。
teraなんとかというエミュレーターツールがVBかなんかで作られてるっぽいので
そのあたりを応用した簡単な方法を探しています。
たとえばですが
iRet = Kidou(sHost,sUser,sPass,SendCom)みたいなかたちで
自由自在にリモート側のOSでファイルを起動できれば嬉しいのですが
>>896
TELNETというのはセンドコマンドができるプログラムですよね
どこをみてもVBからコマンドを送信するネタがみあたらないのです。
これは厳しいでしょうか?
0903デフォルトの名無しさん
2006/02/02(木) 00:50:52つまりココから書いているのは、全部「勘」です
Private Sub Form_Load()
Const File As String = "C:\hoge.txt"
Dim buf() As Byte
Dim ff As Integer
Dim hash As New HashedData
Dim s As String
'Fileの内容を全てbuf()に読み込む
ff = FreeFile()
Open File For Binary As ff
If LOF(ff) > 0 Then
ReDim buf(1 To LOF(ff))
Get #ff, 1, buf
End If
Close ff
'Byte()→Stringをする
'※Byte()の内容が破壊されないでStringに入力されることを望んでいる
s = buf
'Hashを計算
With hash
.Algorithm = CAPICOM_HASH_ALGORITHM_SHA1
.hash s
Debug.Print "Hashed"; .Value
End With
End Sub
0904デフォルトの名無しさん
2006/02/02(木) 00:55:430905904
2006/02/02(木) 00:59:120906デフォルトの名無しさん
2006/02/02(木) 01:00:24TERAterm?:
http://hp.vector.co.jp/authors/VA002416/
これはターミナルソフトなので、
「相手の端末にログインしていろいろする」感じのものです。
基本的に、相手にtelnet鯖が立ち上がっていないと意味ないです。
(リモート鯖がUNIX/Linuxはおkかも。WinXPは絶望的)
telnet:
http://e-words.jp/w/Telnet.html
------
telnetは、teratermとほとんど同じですね。
「センドコマンド」の様な狭義のリモートアクセスではなく、
telnet鯖にログインして、相手のPC上でゴリゴリするものです。
telnet.exeを立ち上げるだけなら、
Shell "telnet.exe"
でいいかもしれませんが、
入出力まで管理するとなると、Wscript.ShellオブジェクトのExecメソッドを使って、StdInやStdOutを使う必要が出てきます:
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/wslrfscriptexecobject.asp
…まぁ、PCドメインを越えて操作するわけですから、それなりに苦労はありますよ・・と
-----------
最終案:
自力でアプリケーションプロトコルを実装する。
で、実際の処理はUNIXにスクリプトを記述しておく。
コチラからは、「始めてくれ!」みたいなアクション一つを送信するだけ。
みたいな。
0907デフォルトの名無しさん
2006/02/02(木) 01:14:20貴重な情報ありがとうございます。会社でみたのコレだったとおもいます。
ダイアログから入力してログインしてあとはビューの上で普通に
コマンドをたたいてリターンで実行みたいな。VAX上確認したところ
セクション起動だったのでいったんコマンドを送信したら、リモート側で
プログラムは走行しきるみたいな感じでした。操作したいのは中継サーバなので
XPじゃなくてUNIXオンリーです。
参考にテラターム?ですかページみてみましたがコレ公開ソースなんですね
しかもC++なんで僕にはさっぱりよめませんでした。
けどVCであってもこの機能をDLL化できればVBの標準モジュールから
デクレア宣言でなんとなくですが、UNIXのリモート起動もいけそうですね。
0908878
2006/02/02(木) 01:17:57ありがとうございます。
SHA1ハッシュが公開されているファイルが手元になかったので
md5で試験しましたところ正しく動作しました。(CAPICOM_HASH_ALGORITHM_MD5)
SHA1でもエラーなく動いていますので
正しく動作しているものと思います。
0909デフォルトの名無しさん
2006/02/02(木) 01:31:00TERAtermってソース公開だったんか…
ま、どんな言語で作っているかによらず、TELNETプロトコルを模していれば、
直ぐにTELNETクライアントは作れますよ。
TELNETプロトコル(RFC854 with Japanese):
http://www5d.biglobe.ne.jp/~stssk/rfc/rfc854j.html
TELNET on wiki:
http://ja.wikipedia.org/wiki/Telnet
例)
1 Winsockコントロールを貼り付けます
2 ポート23に接続します
3 Connectしたら、通信開始
4 通信はACIIなので、テキストボックスでも用意して送受信
これだけです…きっと。
ええ、生通信なので、ログインパスワードとか丸見えです。
色々と厄介なのでover SSHとか出てきたわけです。
ともかく、実現方法は色々あるわけですが、どれもクセがあります。
プログラマはその辺を噛みしめて食べるわけですが、面倒なら「最終案」も視野に入れてみてください。
-----
>>908
ちゃんと動きましたかー
ヨカッタです。
経験上、Byte()→Stringはタダのコピーだと思っているので、
強引にバイナリをStringに突っ込んでいます。
ちょっと怖いので、何らかの緩衝材を入れておいたほうが良いかもしれません。
0910デフォルトの名無しさん
2006/02/02(木) 01:35:35>>878さん>>892さんおやすみなさいっす
0911878
2006/02/02(木) 01:45:17capicomに便利ツールがありましたのでこんな感じでしょうかね。
Dim oCU As CAPICOM.Utilities
Set oCU = CreateObject("CAPICOM.Utilities")
s = oCU.ByteArrayToBinaryString(buf)
0913デフォルトの名無しさん
2006/02/02(木) 07:27:56('A`)→○
0914デフォルトの名無しさん
2006/02/02(木) 08:31:160915デフォルトの名無しさん
2006/02/02(木) 09:17:09質問させて下さい。
cells(1,1)→cells(5,5)→cells(8,2)→再びcells(1,1)→
とenterキーを押すごとにセルを移動させたいのですがどうしたら
いいんでしょか?
どうやっても、同じセルに戻ってしまいます・・・
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
でやる事自体がまちがってるんでしょか?
0916デフォルトの名無しさん
2006/02/02(木) 09:26:58自分で書いたコードを貼れ。
0917デフォルトの名無しさん
2006/02/02(木) 10:06:53他の移動可能セルを全部ロックするとか。
0918デフォルトの名無しさん
2006/02/02(木) 10:19:22例えばこんな感じ?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static LastCell As String
Select Case LastCell
Case "$A$1"
Range("E5").Activate
Case "$E$5"
Range("A1").Activate
End Select
LastCell = ActiveCell.Address
End Sub
ただし所定のセル以外に移動することはできなくなる。
0919デフォルトの名無しさん
2006/02/02(木) 10:34:35ありがとうございます。
動きました。
0920デフォルトの名無しさん
2006/02/02(木) 12:43:31所定のセル以外に任意のところからは
スタートできませんでしょか?
if LastCell ="$A$1" then
Range("E5").Activate
end if
if LastCell ="$E$5" then
Range("A1").Activate
end if
でして見ましたが、無限ループみたいになって
しまってだめでした。
0921デフォルトの名無しさん
2006/02/02(木) 13:03:18EnableEvents
0922デフォルトの名無しさん
2006/02/02(木) 16:05:09とりあえずだな、おまいが無限ループになるのは
A1ならばE5 の処理をやったすぐ後に
E5ならばA1 の処理をやってるからだ
それじゃ戻るのはあたりまえだろ
if A1 then
E5
elseif E5 then
A1
end if
にするだけでも無限ループは回避できるぞ
やってることは>>918と同じだけど
0923デフォルトの名無しさん
2006/02/02(木) 16:18:58ttp://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=62038&lngWId=1
0924デフォルトの名無しさん
2006/02/02(木) 16:40:410925デフォルトの名無しさん
2006/02/02(木) 17:34:55ものすごく欲しい
Cでライブラリ作るの飽きてきた ('A`)
0926デフォルトの名無しさん
2006/02/02(木) 17:46:33VBでインラインアセンブラが使えるのはいいとして
いったい、どんなことに活用するの?
0927デフォルトの名無しさん
2006/02/02(木) 17:54:15単純に速度が要求される画像処理に使うとか、たとえばアセンブラで、
IDEの停止ボタンを押してもクラッシュしないサブクラス化ライブラリ
があったなぁ。正直、アレ書いた人は神だと思う。
0928デフォルトの名無しさん
2006/02/02(木) 18:26:35>単純に速度が要求される画像処理に使うとか
ん〜これは、市販のActiveXなりC言語製のDLL使ったほうがいいなw
>IDEの停止ボタンを押してもクラッシュしないサブクラス化
それはすごいね
0929デフォルトの名無しさん
2006/02/02(木) 18:32:26使うんじゃない、作るんだ…そういうときに使う。
> IDEの停止ボタンを押してもクラッシュしないサブクラス化ライブラリ
神
0930デフォルトの名無しさん
2006/02/02(木) 18:45:21あらゆるIOポートにIn/Outし捲くるのでは。
0931デフォルトの名無しさん
2006/02/02(木) 18:45:53停止ボタンでクラッシュなんてするっけ?
0932デフォルトの名無しさん
2006/02/02(木) 19:12:04>使うんじゃない、作るんだ…そういうときに使う。
いや、俺もそういう意味で言ったんだけど
アセンブラ混ぜ込んで処理書くほどシビアな要求するところなら
C言語でDLL作って利用するほうがいいだろうということよ
>>931
普通に落ちるだろw
俺はいつもサブクラス化しまくりなんで、ブレークもおぼつかない
ウォッチしようにも、大抵マウス操作は効かないし
運良く触れても、ちょっとしたことでVBごと落ちますよと('A`)
0933デフォルトの名無しさん
2006/02/02(木) 19:27:01これのcSubclassだったかな。デザインタイム用のタイプライブラリを登録しなきゃいけないけど、
基本的に、依存関係はクラスモジュール一つで、配布時にも特別何もいらない。安定して動くし。
他にもcTimerやcHookも便利。
他にも、VBでActive X DLLじゃない標準DLLをビルドしたりとか、上のライブラリを使った
アイコン付メニューとか、各種コモンコントロールのユーザーコントロールとか、海の向こうでは
なかなか進んでるなぁ、と思ったりする。ただ、ちょっといま鯖が落ちかけてるけどな。
0934デフォルトの名無しさん
2006/02/02(木) 19:33:06サブクラス化とかは余り普通のVBの使い方じゃないけどね。
0935デフォルトの名無しさん
2006/02/02(木) 19:41:180936デフォルトの名無しさん
2006/02/02(木) 20:16:15VBでのサブクラス化をイベント化してActiveX にすれば VBでも出来るよ
ソースのプロジェクトに取り込んだ場合はブレイクポイントおいてデバックできるよ
昔はやたらとWindows内部を引っ掻き回したVBサンプルが多かったな...
イベント化する方法はググれば今でも出てくるんじゃね?
この方法使うとサブクラス化し易くなるし Formのイベントととして処理が書けるし結構使ってたな
0937デフォルトの名無しさん
2006/02/02(木) 20:28:070939デフォルトの名無しさん
2006/02/02(木) 20:53:59何でも聞けっ!
0940デフォルトの名無しさん
2006/02/02(木) 21:38:31王室の春花ちゃんになかなか入れないんだが前日予約で確実に入れる方法頼む
0941936
2006/02/02(木) 21:50:01このサイトもう消えてるね...
説明するのメンドクサイからソースうpろうか?
もしかしたら方法は>>932同じかもしれない...
0942932
2006/02/02(木) 22:02:53俺はそのサイトは知らない、VBのサイトを見ることはまず無いんでw
俺の場合は、インターフェース用のクラスとコールバック用のモジュール作っておいて
使う時にそれをプロジェクトに組み込んで、サブクラス化するフォームでImplementsしてイベントに処理を書く
0943デフォルトの名無しさん
2006/02/02(木) 23:13:540944デフォルトの名無しさん
2006/02/02(木) 23:14:26↓
だけど
失礼しました
0945デフォルトの名無しさん
2006/02/02(木) 23:56:44>>942
OCXにしてしまう方法は昔からあったよね。それと、何故かAddressOfは
標準モジュールに置かないとダメっていう制約があるから、面倒だね。
とにかく、>>933のだと、クラスモジュール1つで済む。仕組みは>>942に近いかな。
ただ、何故かメインルーチンがアセンブラで書かれてるから、スッキリしてる。
cHookに関しては(確か)グローバルフックが使えた気がする。普通DLLに追い出さないと
無理だったと思ってたんだけど。
0946デフォルトの名無しさん
2006/02/03(金) 00:02:15エラーじゃなかったっけ?
0947デフォルトの名無しさん
2006/02/03(金) 04:01:34VBAのコーナーはどこか教えて下さい。
0948デフォルトの名無しさん
2006/02/03(金) 04:07:38ttp://pc8.2ch.net/test/read.cgi/bsoft/1134120366/
0949デフォルトの名無しさん
2006/02/03(金) 04:59:06そこはExcelのVBAはOKだけど、それ以外のVBAはNGだよ。
>>947
VBAからのExcel操作なら>>948のところでいいけど、
Word、Accessならそれらの個別スレに行くべきだし、
Officeアプリの操作じゃなければVBAでもここで聞くべき。
0950デフォルトの名無しさん
2006/02/03(金) 07:57:24http://web.archive.org/web/20040930165730/www.gj.il24.net/~nakasima/
0951デフォルトの名無しさん
2006/02/03(金) 08:01:47http://ttsearch.net/
0952デフォルトの名無しさん
2006/02/03(金) 08:22:50#INFINITY
0953デフォルトの名無しさん
2006/02/03(金) 09:30:22∞ですな。
0954デフォルトの名無しさん
2006/02/03(金) 10:37:040955デフォルトの名無しさん
2006/02/03(金) 10:42:330956デフォルトの名無しさん
2006/02/03(金) 10:44:18それ位の手間を惜しむなよ・・・
0957デフォルトの名無しさん
2006/02/03(金) 10:57:44なんでVBには無いのかなぁ。
0958デフォルトの名無しさん
2006/02/03(金) 11:00:38それこそVBクォリティ!
0959デフォルトの名無しさん
2006/02/03(金) 11:04:17そういう言語仕様だから。
そして、そういう仕様の言語を使うことを選んだのは自分自身だろ。
0961デフォルトの名無しさん
2006/02/03(金) 11:19:200962デフォルトの名無しさん
2006/02/03(金) 11:24:13これでstdcallなDLLがビルドできるそうです
0963デフォルトの名無しさん
2006/02/03(金) 11:24:190964デフォルトの名無しさん
2006/02/03(金) 12:06:36インクリメント無いのを我慢して使っているのに、
初心者にありませんかと単純に聞かれて腹立ったんだろう
0965デフォルトの名無しさん
2006/02/03(金) 12:09:580966デフォルトの名無しさん
2006/02/03(金) 12:26:24ttp://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=38801&lngWId=1
アセンブラ絡みのかなりトリッキーなコード
0967デフォルトの名無しさん
2006/02/03(金) 12:35:30モジュールにでもINCって関数を書けばいいんだよ。
アセンブラみたいでカコイイぞw
ByRefで引数とるのはもちろんだが、インクリメントした値自体を
返すようにすることを忘れずにね。
でも引数を括弧で囲んじゃうと誤動作することを防止できないのは
VBクオリティかもなw
0968デフォルトの名無しさん
2006/02/03(金) 13:29:12さんくす!!
0969デフォルトの名無しさん
2006/02/03(金) 13:50:23別に我慢なんかしてない。
>>965
受け取るだけなら普通に Long 変数でいいのでは。
>>967
括弧云々ってどういう意味?
括弧使うなら Call が必要だけど、そういう事じゃなく?
0970デフォルトの名無しさん
2006/02/03(金) 15:35:020971デフォルトの名無しさん
2006/02/03(金) 15:39:290972デフォルトの名無しさん
2006/02/03(金) 15:44:000973デフォルトの名無しさん
2006/02/03(金) 15:53:270974デフォルトの名無しさん
2006/02/03(金) 15:56:32VB2005にも実装されてないんだよね?
なんで実装しないんだろう。
0975デフォルトの名無しさん
2006/02/03(金) 16:02:540976デフォルトの名無しさん
2006/02/03(金) 16:35:39Basicの言語仕様にないから?(半疑問系)
0977デフォルトの名無しさん
2006/02/03(金) 16:37:100978デフォルトの名無しさん
2006/02/03(金) 16:56:520979スレ違いな名無しさん
2006/02/03(金) 17:17:20あれで生成した実行ファイルって何でVB6ランタイムが必要なんだろ?
スレ違いスマソ
0980デフォルトの名無しさん
2006/02/03(金) 17:38:55中間言語でExeが書き込まれ、それを解釈するエンジンがVB6製とか?
0981デフォルトの名無しさん
2006/02/03(金) 19:33:59>括弧云々ってどういう意味?
実際やってみればわかるよ。
結論からいうと、引数を括弧でくくると変数の参照じゃなくて
変数の値をコピーしたもの(というより演算結果扱いか)の参照が渡される。
だからインクリメントされない。返値は問題ないけど。
かといってCallつけると演算結果を式の中で使えない。
まあでもCでも式の中でインクリメント演算子使うって
あんまりみたことないか。
0982デフォルトの名無しさん
2006/02/03(金) 20:02:03Private Function Inc(ByRef i As Integer)
i = i + 1
Inc = i
End Function
i = 0: a = Inc(i)
i = 0: inc i : a = i
i = 0: call inc(i): a = i
i = 0: inc (i): a = i これだけ a が 0 になってしまうということですね。
確かにありがちなバグだな。
0983デフォルトの名無しさん
2006/02/03(金) 20:33:100984デフォルトの名無しさん
2006/02/03(金) 20:45:060985デフォルトの名無しさん
2006/02/03(金) 21:01:550986デフォルトの名無しさん
2006/02/03(金) 21:50:230987デフォルトの名無しさん
2006/02/03(金) 21:58:15Do Loopでハマッてしまって、電源入れ直してもそのプログラムが動いてずっと止まらないんですけど、どうしたらいいですか(泣)
いま携帯から投稿してんですけど、CPUが暑くなってる予感なんですけど、どうしたらいいてすか(泣)
0988デフォルトの名無しさん
2006/02/03(金) 22:04:57ならパワースイッチを4秒間押す。セーフモードで起動。
あとループにはSleep(0)いれとけ。
0989デフォルトの名無しさん
2006/02/03(金) 22:31:53VBってさVisuarlStudioでプロジェクト作ると自動でフォームが作られるっしょ?
アプリケーション自体をSDIっぽいUIにしたいんだけどどうすりゃいいのかな?
VC++なら最初にフォームかSDIかMDIかベースえらべんじゃん?
不躾で申し訳ないけど宜しく
0990デフォルトの名無しさん
2006/02/03(金) 22:37:46Sleep はやめた方がいい。
0991デフォルトの名無しさん
2006/02/03(金) 22:38:20VBはデフォルトでSDIなんだけど。
0992デフォルトの名無しさん
2006/02/03(金) 22:38:510993デフォルトの名無しさん
2006/02/03(金) 22:40:450994デフォルトの名無しさん
2006/02/03(金) 22:41:230995デフォルトの名無しさん
2006/02/03(金) 22:41:440996デフォルトの名無しさん
2006/02/03(金) 22:46:560997デフォルトの名無しさん
2006/02/03(金) 22:48:290998デフォルトの名無しさん
2006/02/03(金) 22:50:000999デフォルトの名無しさん
2006/02/03(金) 22:50:561000デフォルトの名無しさん
2006/02/03(金) 22:51:0010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。