(・ロ・)ホ,('ロ')ホ--ッッ!!!… VB初心者質問スレ Part17
1 :
デフォルトの名無しさん :
02/11/01 21:49
2 :
デフォルトの名無しさん :02/11/01 21:49
3
乙kare
どんなスレタイだよボケ。
なんだよ、この顔文字。絶対、前のが良いと思う。 こんなの見つけづらいだろ。 次スレ立てるヤシは、前のに戻しておくれよ。
>>8 可愛いねぇ。
親がBBSで愚痴ってるのがキモいが・・・。
8歳で既にプログラミングやってるんか(´д`;) でも、子供はかわいいよな・・・
11 :
デフォルトの名無しさん :02/11/02 02:23
お願いします。リストボックスの値をドラッグして別のテキストボックスに ドロップすることできないでしょうか? あ⇔か
あ⇔か?
L⇔R
半透明スプライトを表示したいのですが Private Sub Sprite_Ini(ByRef Sprite() as SpriteObjectEx) VsyncMode=True Call Get@(hMemDC,0,0,32,32,Pat0%) Call Get@(hMemDC,32,0,32,32,Pat1%) Def Sprite(0)=Pat0%:Alpha 0,.5 Def Sprite(1)=Pat1%:Alpha 1,.5 End Sub とした時にこの2つのスプライトが重なるとBGが NORされてしまいます。何が原因でしょうか? WinXPとVB.NETとDairectXを使用しています。
15 :
デフォルトの名無しさん :02/11/02 07:22
ラベルコントロ−ルを使ってカ−ソルがコントロ−ルの上を通過している間だけ テキストの色を変えたいです マウスがコントロ−ルから離れたのを検出するにはどこをみればいいのやら・・・ Mouse_Moveイベント見てもわからないっすよね なにか良い方法有ったら教えてください
16 :
デフォルトの名無しさん :02/11/02 09:44
ポートの80が開いてるかどうか確認したいのですが どの関数使えば確認できるのか教えてください。
>>8-10 小さい子がディスプレイとにらめっこというのは、健康面でいかがなものかと思う。
19 :
デフォルトの名無しさん :02/11/02 11:49
>>15 FormのマウスMOVEのイベントで ラベルの位置にあればラベルの色を変えるようにすればいい。
ラベルの位置は top left width height で 知るがよい。
20 :
デフォルトの名無しさん :02/11/02 12:03
それだとうまくいかないから、SetCaptureもつかったほうがいいんでない?
21 :
デフォルトの名無しさん :02/11/02 14:13
>>15 Form1_Mousemove()とAPIのWindowFromPointを併用。
タイマーもいる?
22 :
デフォルトの名無しさん :02/11/02 16:42
age
23 :
デフォルトの名無しさん :02/11/02 16:56
小人必死だな
小人すごいな…
(;゚∀゚)ヤラレター
前スレの 978 щ(゚Д゚щ)カモォォォン
|ー゚)☆ニヤリ |彡サッ
30 :
デフォルトの名無しさん :02/11/02 20:22
ハハハ
31 :
デフォルトの名無しさん :02/11/02 20:33
荒れ放題の無法恥帯だな・・・。
978 名前: デフォルトの名無しさん 投稿日: 02/11/02 17:33 テキストボックスをコントロール配列にして使用していますが、 要素がある場合にも、「実行時エラー"340" コントロール配列の要素"xxxx"がありません」 となることがあります。 一度終了して、再実行すると直りますが、 何でこのエラーが発生する場合とそうでない場合があるのでしょうか。 このバグの修正方法はコントロール配列を使用しないことなのでしょうか。 どなたかアドバイスいただけませんか。
980 名前: デフォルトの名無しさん 投稿日: 02/11/02 18:15
>>979 ソースはこのようになっています。
コントロール配列(txtMenu(0)〜txtMenu(3)まであります。
Dim MenuStr(3, 3) As String
Dim StaffStr(10, 1) As String
For i = 0 To 3
If Len(txtMenu(i).Text) > 0 Then
rsSalesInfo.AddNew
rsSalesInfo!stfStatus = StaffStr(i, 1)
rsSalesInfo!stfID = StaffStr(i, 0)
rsSalesInfo!mpID = Val(MenuStr(i, 0))
rsSalesInfo!mpName = MenuStr(i, 1) + " " + MenuStr(i, 2)
rsSalesInfo!mpPrice = Val(MenuStr(i, 3))
rsSalesInfo!mpQnt = 1
rsSalesInfo.Update
End If
Next
このような感じでデータベースに新規レコードを追加しています。
発生するときと発生しないときがあり、どうしても解決できません。
>>34 原因はわからんけど、アドバイス。
(1) マジックナンバー(0〜3のリテラル値の記述)はやめなさい。
仕様変更の度に余計な仕事が増えて胸糞悪くなる。
(コントロール以外の)配列なら、LBound / UBoundを使うのが
スジだし、コントロール配列やコレクションなら、For......Each
でアクセスするのが健全な感覚。
(2) レコードの操作は、原則、SQLでやれ。
(3) rsSalesInfoが何の型で定義されているか、どこでインスタンス化
されているか、不明。
MLやBBSで他人に尋ねるなら、必要な情報は省略せず、開示すべき。
(4) データベースが関係する質問なら、DBMSと接続方法(使用ミドルウェア等)
も示せ。
以上。
>>35 に補足。
> コントロール配列なら、For......Eachでアクセスするのが健全な感覚。
コントロール配列の場合、何らかの設計上の事情で、要素の一部が削除された場合、
番号が再定義される訳ではないので、Index番号に欠番が生ずる。
だから、For...... Nextステートメントを使用したIndex番号によるアクセスでは、
エラーにならない保証はどこにもない。
それから、
For ...... Each
と書いたのは、
For Each ...... Next
の誤り。
以上。
>>35 更に補足。(藁
> MLやBBSで他人に尋ねるなら、必要な情報は省略せず、開示すべき。
こう書くと、数100行の長文コードをまんま○投げしてくるヴァカが
少なからずいるが、不要な情報は問題解決の助けにはならないと知る
べし。
情報の開示は、必要分のみ、過不足なく、ということだ。
以上。
( ´_ゝ`)<分かってんじゃん。
>>19-21 レス有難う御座います
APIやらタイマ−やら使わないとダメですか
と言う事はラベルなんか使わず自前で描画した方が楽そうっすね。
RECT構造体のテ−ブル作ってフォ−ムのMouse_Moveで比較とかが
スマ−トかな・・・つぅかVB痛いなぁ
>>40 何と比較して痛いと言っているのか。
まず、おまいの得意な言語でどうやるのか書いてみな。
44 :
デフォルトの名無しさん :02/11/03 13:49
当時、仕事を辞めたばかりで一人でフラフラしてた頃。 両親が遊びに来て、色々買ってくれた上に 家で作ってきたVB製家計簿プログラムを、机に置いて行ってくれた。 その次の日、母は入院。 あっという間に亡くなった。 葬儀を終え自宅に戻ると、Windows98にはまだ 母が作ったVBプロジェクトがあった。 大泣きしながらソースを読んだ。 あれ以来、VBプロジェクトは開けない。
>>40 > RECT構造体のテ−ブル作ってフォ−ムのMouse_Moveで比較とかが
> スマ−トかな・・・
20と21のレスの意味を全然わかってないね。
Option Explicit のすぐ下で宣言するときの DimとPrivateの使い分け方がわかりません。 どういうときはどちらをつかうのでしょうか。
どっちもまったく同じ。
>>48 DQNじゃないならそこではPrivate使っておけ。
>>49 そこで平気でDim使うやつのソースは危険な佳織がぷんぷん。
>>51 に誤解されたかな?
意味・動作はまったく同じということであって、
可読性の面においては Privateと書くことを
おすすめしておく。
54 :
デフォルトの名無しさん :02/11/03 20:38
SetWindowLong(hWnd, GWL_WNDPROC, AddressOf MainFormWindowProc) Public Function MainFormWindowProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long 〜省略〜 MainFormWindowProc = CallWindowProc(lngDefaultProc, hWnd, uMsg, wParam, lParam) ExitFunction てなことをかくとマウスカーソルを動かすたびにMainFormWindowProcの内容が実行される サブクラスみたいなのですが、どういうことなのか、どういう順番で実行されているのかわかりません。 カーソルを動かすとSetWindowsLong関数が実行されるようになっているのでしょうか? それともMainFormWindowProcが実行されてSetWindowLongが呼び出されているのでしょうか
55 :
デフォルトの名無しさん :02/11/03 21:18
>>44 それを母のメッセージだと思ってガンガレよ!
おれも亡くなった人のソース読んだことがある。
なにやら切なかったな。
>>54 誰の書いたソースか知らんが、ちゃんとソース読め。
サブクラス化でぐぐれ。
>55 ただのコポペ改変です。
58 :
デフォルトの名無しさん :02/11/04 01:18
VB6で,希望のデータファイルを関連付けられた標準アプリで開く方法を 教えてください。 たとえば,image.jpgやdata.txt をアプリケーションの指定なしに 標準アプリで開くという場合です。 Shell() やCreateObjectをためしたのですが,,, VBにはうといもので,,低次元な質問で申し訳ない。どなたかお救いくだされ。
ShellExecute(NULL,"open","ほげほげ.jpg",NULL,NULL,SW_SHOWNORMAL);
(・<>・)ほぅ・・・ほーほほっほ・・・
●<>●
62 :
デフォルトの名無しさん :02/11/04 02:12
はっきり言って全然初心者にやさしくない糞スレだね。( ´,_ゝ`)プッ
>59 即答,感謝。Cだけど手がかり得たり。 VBではらくちんにはできないのね。あとは,自力で。 やさしくなかったけど,サンクスです。
>>63 VBでもヘッダ読む代わりにAPIビューアからコピペするだけじゃん。
APIビューアで使用するテキストファイルを単にプロジェクトに加えてもいいけど。
>>43 比較してるんじゃなくてWM_MOUSELEAVEもキャッチしない
ウインドウプロ-シジャが痛いなぁと思ったわけっす
と思っていたらTrackMouseEvent()ってWin98SE以降
なんすね
しちれいい足しました
66 :
デフォルトの名無しさん :02/11/04 08:13
>>62 初心者にやさしいとは、どこにも書いてない。
糞スレではない。
糞レスがあるだけだ。
>>65 >と思っていたらTrackMouseEvent()ってWin98SE以降
そそ、WM_MOUSELEAVEメッセージじたいが新しいからね。
VB.NETならWM_MOUSELEAVEもサポート済み。
>VB.NETならWM_MOUSELEAVEもサポート済み。 え〜そうなんだ。いいなぁ。
前にこの前スレあたりで Inetコントロールを使ってExecuteした際に 漢字が文字化けしてしまうと、いう質問をしたものです。 VB6SP5 WindowsXPです。 また同じような話題で疑問が解けません・・・。 Dim TempStr as String If State = 12 Then
あー ↑のコード無しにして下さい。 InetコントロールのStateChangeイベントで Stateが12になった時にGetChunkしてデータを取得しますよね。 で、前の質問でその際に icStringでなく、icByteArrayを使って、 バイト配列を結合してやれば漢字が文字化けしないとわかりました。 んで、そこまでは確かにOKなのですが、 どこまで取得していいのか分かりません。 あー 意味不明ですね・・・ icStringで取得していた時には文字列型なので もうデータが無い、つまり最後まで取得できた場合は 取得したデータの中身が無いので、それで判断してループを抜けてやればOKでしたが icByteArrayで取得しているとバイト配列なので その中身が無いかどうかをどう調べればいいのかわかりません。 if CStr(TempStr) = "" then とかで判定しようとしてみたのですが、全然ダメでした。 どうやって、今GetChunkしたデータが空でもうこの先のデータがないと判断できますか?
71 :
◆kB.Rp6wEqA :02/11/04 15:25
ageわすれ
オリジナルのプログラミングの宿題が出ています。 身長、体重の偏差値を出すプログラミングを考えています。 VB暦半年ぐらいですが、可能ですか?
53 名前:PC教室で :02/11/04 15:44
~~~~~~~~~ ~~~~~~
オリジナルのプログラミングの宿題が出ています。
身長、体重の偏差値を出すプログラミングを考えています。
VB暦半年ぐらいですが、可能ですか?
54 名前:デフォルトの名無しさん :02/11/04 15:46
>VB暦半年ぐらいですが、可能ですか?
はっきり言って意味わかんないです。
55 名前:デフォルトの名無しさん :02/11/04 15:47
>53
なんでここで聞くの?
VBの板あるやろ
56 名前:PC教室で :02/11/04 16:29
~~~~~~~~~ ~~~~~
>55
VBの板なんかねーよ。氏ね
で、
>>72 __15:41
ワープしまくりか?
おまえらじゃまだ
宿題自分でやらないならなんでPC教室なんか通ってんだ。
>>78 最近の学校やPC教室では、他人のリソースで問題を解決するアプローチを
推奨しているようです。(w
>79 そ、そうなのか? …って本気で信じるところだったじゃねーかゴルァ!! ……………ネタダヨネ?
>>80 ネタというより、皮肉。反面教師とご理解ください。
指導者が、「わからないところはインターネットで調べてください」(検索エンジン等を利用した
情報収集の意味)と言ったのを、カン違いしたDQN学生が教えてクンと化す罠・・・。
ネチケットも指導して欲しい。
82 :
デフォルトの名無しさん :02/11/04 19:39
質問ですVb66 改行を含むテキストがある。 その中から、1行だけを抜きたい。 取得したいという「抜きたい」ではなく、消してしまいたいという「抜きたい」だ。 abc def ghi とあったら、2行目を消して abc ghi とするような事。 こういう風にひとつとかなら簡単なんだが これが4行めと28行目と71行目と121行目と143行目と187行目を抜きたい! ってなったときに何か難しくてできねーんです。 こういう処理を一般化する方法無いでしょうか? やり方教えてくださいでつ・・・。
83 :
デフォルトの名無しさん :02/11/04 19:41
MSFグリッドのヘッダー部のみ文字列をセンター寄せしたいのですが、 ヘルプに載っているようにMSFGrid01.ColAlignmentHeaderってのを入力してもエラーが出ます。 これはどうやって使うものでしょうか。
>>82 ファイルに対して直接どうこうしようとするのは、たぶんドツボに
ハマルと思うので、
(1) 配列
(2) コレクション
(3) RDB
のどれかで処理してみては?
# 最善解かどうか、わからないけれど・・・。
>>82 一行ずつカウンタ回しながら該当行を改行コードごと消すだけじゃないの?
1行だけの時に対して何が難しくなるの?
>>85 そーだな。メモリーが有り余ってるなら配列に
全部ぶちこんじまうのが一番らくだな。
89 :
デフォルトの名無しさん :02/11/04 20:01
>>89 確かに。最悪でもその関数を複数回呼べば良いだけで。
>>89 要件の汎化(抽象化)ができていないものと思われ。
VB初めて5年ほど。 といってもブランクありまくったり、とろくさい手法ばかりでやってきたおかげで ちぃとも上達しませんでした。 が、ここ半年でずいぶんと理解が深まりました。 長年の謎だった「.hwnd」とか、WinAPIもMSDNみて自分で使えるようになったし、 (今まではサンプルからコピペしてた) hwndがらみでWindows自体の仕組みも少し理解が深まりました。 え〜と、ようするに ヽ(´ー`)ノ ワーイ。
94 :
デフォルトの名無しさん :02/11/04 21:32
ファイルを読み込んで、 そのファイルの内容を小文字に変換してから そのファイルを読み込むプログラムを作成したのですが FileName = "index.dat" Open FileName For Append As #1 Data1 = StrConv(InputB(LOF(1), 1), vbUnicode) Komoji1 = LCase() Print #1, Komoji1; Close #1 これだと「ファイルモードが不正です。」と出てしまいます。 どうすればよいでしょうか?
すみません。 FileName = "index.dat" Open FileName For Append As #1 Data1 = StrConv(InputB(LOF(1), 1), vbUnicode) Komoji1 = LCase(Data1) Print #1, Komoji1; Close #1 でした。
SQL="select * from temp where Feild1='" & Str1 & "'" Feild1はAccessのテキスト型で、 文字列変数Str1に'が含まれているとSQL文の実行にエラーが出るのですがどうすればいいのでしょうか。 フィールドに格納したい文に'が含まれていることがあります。
>>96 InStr関数で、変数Str1に'が含まれている場合と含まれていない場合を
分岐する。
含まれている場合は、
シングルクォート1つ → 2つに置換すれば、メタ文字扱いではなくなる。
以上。
>>97 様
シングルクォート2つ重ねる技を与えてくださりありがとうございました。
>>92 一度VBででもいいからウィンドウシステムってのを自分で書いてみな。
使える使えないを考えずに(間違いなく使えないがw)、
汎用的なものを自分なりに考えてとりあえず動くものを作ってみる。
できるだけ細かく、特に汎用的に作ってみるという所が大切。
こんなこともあんなこともサポートできるようにって考えて作ってみる。
すると既存のものがなぜそういう仕様になっているのか
それによりどこに問題が発生するのかとかががよーくわかるよ。
自分が理解できないことや、表面だけみてクソの一言ですますDQNが
かわいらしく思ってくるしね。
ああ、年取ってくると偉そうなこと言いたくなるな・・・
>>99 > 汎用的なものを
再利用性ゼロのハードコーディングを一生卒業できない椰子もいてますが。(w
(茶々スマソ)
>>94 追加書き込みなのにInputBで読み込もうとしてるからでは?
読み込みはInputモードで。
>>99 よく分からないのですが、ウィンドウや、ボタンやテキストやなにやらを
全部自分で描画するシステムってことでしょうか?
ActiveXコントロールみたいな。
ゲームのインターフェースを作るってな感じですかね?
>>102 ウインドウシステムだから外枠だけだろう。
とか言ってみる。
>>104 絶対違うと予想。
ただのspyじゃん。
>>104 全然違うと思われ。
汎用的なもの。
不特定多数のプログラムから呼び出されることを考慮したdllとか、
エミュレータもどんなROMでも実行できるという面で汎用的だしな。
107 :
デフォルトの名無しさん :02/11/04 22:58
DBGLIDのデータソースをクリアする方法を教えて下さい。 (表示されてるデータをクリアしたいです) よろしくお願いします。
>>95 AppendモードでOpenしたファイルから読み取ろうとしてるから?
Binaryとかで開けばできるけど。
読み取るファイルと書き込むファイルを分けたほうが簡単。
小文字のファイルが完成したら、元ファイルを削除。
小文字のファイルを元のファイル名にリネーム。
>>107 ソースを外せばいいんじゃん?
SQLなりテーブルなりをソースにしてんでしょ?
110 :
デフォルトの名無しさん :02/11/05 15:19
ListViewで 選択されている行が 何行目か知るには どうしたらいいでしょうか?
111 :
デフォルトの名無しさん :02/11/05 16:05
ListView.SelectedItem.Index
112 :
デフォルトの名無しさん :02/11/05 16:17
>>111 どうも。
逆に何行目を選択させるには どうしたらいいんでしょうか?
113 :
デフォルトの名無しさん :02/11/05 17:09
ListViewを抜けると、選択されているのが消えてしまうんですが、 選択表示のままにしとくには、どうしたらいいんでしょうか?
114 :
デフォルトの名無しさん :02/11/05 17:38
みなさん、こんにちは VB6.0からLinux上のPostgreSQLのデータを取得するには どうしたらよいでしょうか? ・・・そういうことは、出来るんでしょうか?
>>114 [VB製プログラム] [ PostgreSQL ]
↓↑ ↓↑
[ Windows ]←ネットワーク→[ Linux ]
こういうイメージだな。
117 :
デフォルトの名無しさん :02/11/05 18:22
>>112 'iは選択したい行列目
ListView1.ListItems(i).Selected = True
>>113 ListviewコントロールのHideSelectionプロパティが
TRUEなら、フォーカスを失った後も選択されている。
失ったように見えても、フォーカスを戻せば表示は復帰する。
選択は解除されていない訳だから。
ListViewは確かに他のコントロールに比べてMSDNのドキュメントが弱いね。
私も、最初はよくわからなかった。
MSDN「リスト ビュー (ListView) コントロールの使い方」
SampleのDatatree(TreeViewとListView)をみれば、理解が深まるよ。
118 :
デフォルトの名無しさん :02/11/05 19:37
ボタンを押したときに、labelやpictureboxなどに書かれた文字に フェード効果を加えたいのですが、どうやってやったらいいのでしょうか?
>>118 TimerコントロールでJOJOに色薄くしたらどうかね。
120 :
デフォルトの名無しさん :02/11/05 20:04
>>119 必ずしもTimerコントロールは必要ないと思う。
DoEvent や Sleep 関数で適宜ウェイトを入れれば、滑らかな動作になるのでは?
>色薄くしたらどうかね RGBの値じゃなくて"明るさ"ってことですよね。明るさを変える方法なんてあるんですか?
>>121 Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Label1_Click()
Dim n As Long
For n = 0 To 255 Step 16
Label1.BackColor = n * 256 * 256 + n * 256 + n
DoEvents
Call Sleep(100)
Next
End Sub
123 :
デフォルトの名無しさん :02/11/05 22:03
こんばんわ。VB6で宛名ラベルを印刷するのにデータレポートを検討しています。 (友人のライブなどお知らせするために使う予定です) Accessのレポートは使えるのですが、ぱっと見たところ列の指定方法がわからず 困っています。単純に印刷すると一列で改ページすると思うのですが何か方法が あれば教えて下さい。よろしくお願いします。
>>123 Accessにはレポートのウィザードではがきサイズにするヤシがあったと思うが
激しくスレ(板)違いなのでAccess採用するならビジネスソフト板へ。
君の技能にもよると思うが、Excelに書き出すのがもっとも幅決め簡単じゃないかな。
126 :
デフォルトの名無しさん :02/11/05 23:11
>>124 レスありがと。幅決めが必要なのですか?う〜ん、困ったな。
VB採用は決定なんですよ<ディベッロパーツールも買えないし。
どうもその辺がピンと来ないので教えて頂けると嬉しいのすが・・・
よろしくお願いします!ちなみにPrinterオブジェクトはちょっと
厳しいものを感じております(TT。
127 :
デフォルトの名無しさん :02/11/05 23:40
寝ます。
>>122 >Label1.BackColor = n * 256 * 256 + n * 256 + n
RGB関数でよかろうに。nがLongなのが味噌だな。
>126 どう考えても決定を覆した方が楽な気がするぞ。 VBでやると余計面倒だって事を説得しる。 VBだと配置から出力まで全部自分で設計しなくちゃいけないし、 印刷に少し癖があってノウハウがないときついし、 それなりのもん作るならサードパーティのコントロールがいるしと、 色々面倒なのよ。その辺りを強調して何とか踏ん張れ。
んー。クリスタルレポート買え。
131 :
デフォルトの名無しさん :02/11/06 09:21
>>117 ありがとうございます。
フォーカスがなくなっても、選択された状態になりました。
が、選択色が、違う色になってしまうので、この色を変えるには
どうしたらいいのか教えてください。
宛名印刷くらいPrinterオブジェクト使え
133 :
デフォルトの名無しさん :02/11/06 11:13
VB+ADOで、OracleからEXCELシートへテーブルを落としたいのですが、 項目名を含めて落とすにはどうしたらいいのでしょうか。 お願いします。
134 :
デフォルトの名無しさん :02/11/06 12:03
DRIVEリストボックスに表示された、ネットワークドライブを選択すると、 そのドライブの元のPATHを取得する、なんてことは可能でしょうか。 例えば、Xドライブに「\\server\java\」をマウントしていたとして、 DRIVEリストボックスからX:を選択することで、別途用意したディレクトリリストボックスに 「\\server\java\」と表示したいのですが。 APIかなんか使うといけますか?(APIの知識が薄くてアレです...)
あああ、すいません。 最終的にFileListBoxを選択し、別途用意したTextBoxに 「\\server\java\aaa.java」みたいに表示したい、ってのを書きそびれました。
>>133 ADOのFieldsコレクションでいけませんか?
Helpに載ってると思います。
137 :
デフォルトの名無しさん :02/11/06 13:19
Formをリサイズしたあと、マウスをUPした時に 処理をいれたいんですが どのようにすればいいのでしょうか?
>>137 ???
resizeイベントじゃだめなの?
139 :
デフォルトの名無しさん :02/11/06 13:39
>>137 フォームのサイズ(Width,Height)をどこかに格納しておいて、
マウスをUPするごとにフォームのサイズをチェックしたら?
>>137 「画面のプロパティ」の「効果」の
「ドラッグ中にウインドウの内容を表示する」のチェックをはずす。
画面のサイズが変更された時、画面の表示しなおしの処理を入れたいんですが、 それが重いので、サイズ変更してマウスをはなしたときに 一発 処理を入れて 表示するようにさせたいんです。 とりあえず、サイズの変更だけやっておいて、表示しなおしは PAINTのイベントでやってなんとか うまくいきました。
143 :
デフォルトの名無しさん :02/11/06 14:49
>>139 マウスをUPするイベントが 入ってこないので 失格。
>>142 フォームをサブクラス化してWM_EXITSIZEMOVEメッセージを
拾えばリサイズが終わったっていうイベントが取れるよ。
146 :
デフォルトの名無しさん :02/11/06 21:39
データレポートについて 空のデザインを作っておいて、印刷時に設定(マスタとか)を見て レポートサイズ、印刷項目を作成したいのですが可能でしょうか? 例えば、フォーマット時のイベントでこう書けとか助言をお願い いたします(__)。まず項目を作成するコードがわかりません(TT。
>146 とりあえずサンプルプログラムを探せ。
設定されたファイルがあるかチェックしようと、Dir関数を使おうとしたものの、 s = "\\NetworkPath\" If Dir(s) <> "" then と、ネットワークパス(\\〜)を指定すると、「""」じゃなく、普通にエラーが帰ってきます。 これをErrorトラップ以外でチェックする方法はないのでしょうか。 おながいします。
149 :
デフォルトの名無しさん :02/11/06 22:43
lmhosts or hostsにIPを指定しておくか、Win98以降なら\\IP\〜で良いような 記憶があいます。
150 :
デフォルトの名無しさん :02/11/06 22:46
>>146 >>147 探して見たのですがそのようなサンプルにたどり着けませんでした。
誰かヒントあればお願い致します。うぇ〜ん
>>149 Win98(会社)で作り、Win2K(家)で確認ですが駄目です。
家では当然ネットワークがありませんので、エラーが出るワケです。
lmHostsにわざわざ書き込まないと無理なんすか…ダラーン…
Vbで帳票は厳しいな。
is予約語(文字列)=True,False みたいに、ある文字列がJavaScriptなどの予約語かどうかを判別する関数はあるのでしょうか?
>>157 少なくともJavaScriptの予約語を判別する関数なんてあるめーよ。
VBの予約語を判別する関数もない。予約語の一覧もない。
そうですか・・・。 あと音の出ないメッセージボックスはどうやってつくるのでしょうか? ピコンピコンうるさいです。
あきらめます。
20分弱の間に何があったんだ?
自分で音の出ないメッセージボックスをつくるから別にいいんです。
163 :
デフォルトの名無しさん :02/11/07 09:54
msgbox("なんとか") って 音でるんだっけ?
164 :
デフォルトの名無しさん :02/11/07 10:05
ファイルをドラッグアンドドロップして、OLE_DragDropを発生させているのですが、 そこで Data.Files.Count とやっています。 特に問題はないのですが、 エクスプローラーから「マイコンピューター」や、「マイネットワーク」辺りの ファイルじゃない物をドラッグアンドドロップすると 「エラー461 データの形式が一致しません」 となってしまいます。 どうすればよいのでしょうか?
>>164 On Error Resume Next これ最強。すべてのプロシージャの最初に入れとくべし。
>>164 ぐぐれが一発で出てくると思うが
' ドロップされたデータがファイルであるかを判断する
If Data.GetFormat(vbCFFiles) Then
168 :
デフォルトの名無しさん :02/11/07 13:53
VB.NETで textboxの値をlong型に取り込みたいのですがうまく取得できません dim i as integer i = val(trim(TextBox1.text)) てなカンジで i に入力したテキストボックスの値を代入したいのですが 上記の書き方だとエラーが出てしまいます VB6とかでやっていたのと同じように書いているのですが Microsoft.VisualBasicとか前置きしてもダメです どういう記述をしたら良いのかご存知の方がいましたら教えて頂けないでしょうか?
169 :
デフォルトの名無しさん :02/11/07 13:56
>>168 >textboxの値をlong型に取り込みたいのですがうまく取得できません
^^^^^^
>dim i as integer
^^^^^^
ネタか?
まちがえますた。 別にintegerでもlongでもどちらでも失敗してるんでどちらでもいいんですが。 dim i as long i = val(trim(TextBox1.text)) 因みにstring型への代入はできるんですが、 これにぶっこんでからの代入もうまくできません。
>168 マジレスすると、それだとDouble型が返るからだ。 オーバーロードぐらい覚えておけ。 つーか、タスクウィンドウ見れば一発だろーが。
つーか、スレ違い
173 :
デフォルトの名無しさん :02/11/07 17:37
Dirを使うと、そのモジュールが終了するまでエクスプローラーが操作不能になってしまうので 回避したいのですがどうしたらできますか?
>>173 APIのFindFirstFileとかに変える。
>>173 というか、どういうもの組んだらそうなるのか知りたい。
vbInformationとかvbCriticalとかによって、Windowsのサウンドの メッセージ(警告)とかメッセージ(通知)とかのサウンドがなるよ。
>>173 つーかエクスプローラーが操作不能になるという意味がわからん。
181 :
デフォルトの名無しさん :02/11/07 20:43
VBで、一つのクラスから生成した複数のオブジェクトを そのオブジェクトの名前で検索して取り出す事ってできますか? 要はオブジェクトのIndexを作りたいんですが……
>>181 コレクションを使えばできるのでは?(未確認)
>>181 オブジェクトの名前ってなんだよ?
どこから取り出すんだ?
オブジェクトのIndexってのも意味不明。
なにがしたいんだ?
>>183 その発想を突き詰めていけば参照とかポインタに行き着く。
勉強する良い機会だ。温かく見守ってやろうや。
ファイルをエクスプローラーからドラッグアンドドロップしてコピーするとかすると、 コピー中エクスプローラーが操作不能になりませんか? やっぱAPI使うしかないですかね。 APIだとFindCloseすれば大丈夫ですた。
>>185 いつの時代のWIndowsですか・・・?
VB2.0とかなら確かにそんなことも起こっただろうけど。
>>184 クラスとか書いてるんだから参照は知ってんじゃないのか?
発想を突き詰めるまでもなく。
いや、普通に起きますって。 コピーって、エクスプローラからエクスプローラーってことじゃないすよ。 エクスプローラーから自作のソフトへドラッグアンドドロップして、 自作ソフト内でコピー処理をするんですよ。
>>188 そんな事はない。知っていることと使いこなすことにはレベルの差がある。
クラスとか知っていてもデザインパターンにたどり着くまでには時間がかかるように。
こういうことじゃねーの? Dim o1 As clsTest Dim o2 As clsTest Set o1 = New clsTest Set o2 = New clsTest Call o1.PrintName Call o2.PrintName 希望する出力 o1 o2
VBの参考サイトでお勧め教えて下さい。色々な問題がカテゴリで 別れいてサンプルソースなんてあれば最高ですが・・・業者の サイトでも結構です(良いとこならお金出します)。
vbvbvb.com
>>194 新山(へろぱ)
みーくんパパ
空耳工房
194
>>195 >>196 ありがとう!ぐぐっても色々出てきて、どこが良いか困ってました。さっそく拝見(活用)させて
頂きます。今更VBなんですが、、、仕事ですんで。
あるスレで楽勝で組めると書いてありました。 できる限り短いコードで書けますか? 問題: WINDOWS上でDirectX使ってフルスクリーンモードにしたのちに、 適当なキャラクタをチピキャラをてくてく歩いくアニメを表示する。
今更な質問で恐縮ですが、「Nothing」を使うべき時ってどんな時なんでしょう? どこからもオブジェクトが参照されなくなった時点で勝手に解放されるので、 Nothingは要らないって聞いて、自分のPGを見直してみたのですが…。 例えば私はDBを扱うPGで、プロシージャを抜ける時に、 使用したRecordsetを一々解放しています。 DBも必要なくなり次第解放しています。 が、For Each obj In xxx文で使用するオブジェクトは解放していません。 また、FieldオブジェクトやQueryDefなんかも解放していません。 今までOpenやCreateした時だけ消せばいいと思っていたのですが…。 あれこれ調べたのですが、考えれば考えるほど悩みのツボに入ってしまってます。 どうするのが正しいんでしょうか?
>200 暗黙の参照がなされていて循環参照になってしまう場合。
単に、「循環参照になってしまった場合」でよかったか。 暗黙の参照はプログラマーがNewしてないのに使えるオブジェクトの事。 AppとかFormsとかControlsとかかな。 TextBoxDecoratorとか作った時にはForm_UnloadでNothingしないとね。
>>200 さっさと解放したいときとか。
関数内のFor Eachだけで使う変数はFor Eachがすんだらすぐ要らないだろうけど
Nothingしなけりゃ関数が終わるまでオブジェクトが生きてる。
関数内ならまだマシだけど、これがグローバル変数だった場合
アプリが終了するまでオブジェクトが解放されないわけで。
それで良いのか悪いのはかは場合によるけど。
ということはグローバルじゃない限り、 特別解放に気を使わなくても大丈夫なのかな? Nothingしないと、リソース減ったままで 解放されなくなると思ってたんですけど、違うみたいですね。 心配ならとりあえずNothingしとけって事でしょうか。 なんだか判ったような判らないような… とりあえず ありがとうございました〜。
>205 基本的には変数のスコープが無くなれば自動的にNothingされる。 Class_Terminateで遊んでみれば分かるよ。 例えばButton1_Clickとかで、MousePointerをvbHourglassにするオブジェクトを 生成すると、関数を抜けると自動的にClass_Terminateが実行されて MousePointerがNormalに戻るとか。
>205 VBに限らず、「自動で云々」に頼った作りは極力避けるのが基本だ。 自分で確保した領域は自分で明示的に解放するほうが絶対にいい。 OpenしたらClose、SetしたらNothingって決めとけ。
>>205 >>201 じゃないけど、循環参照には気をつけてな。
要するにクラスAのインスタンスaがクラスBのインスタンスbを参照して、かつ
bがaを参照している場合。明示的にNothingにして循環を断ち切らないと
(アプリを終了しないと)どこからも参照されない状態にならないから。
>208 とりあえずそういったものは置いといて、あくまで「基本」って事で。 最初から便利なものに頼りがちなVBだからこそこういった部分は大事にしたいな、と。
211 :
デフォルトの名無しさん :02/11/08 16:02
Set 211 = Nothing
Nothingしたらすぐインスタンスは破棄されるの?
>>213 インスタンスは二つ以上から参照される可能性があるので、Nothingしても他から参照されていれば破棄されないし、
一つだけから参照されているならNothingした時点で破棄される。
>213 一応Class_Terminateはすぐに実行されるようだけど、 実際にメモリーから破棄されてるかどうかまでは分からない。 [Form1] Private Sub Command1_Click() Dim o As Class1 Debug.Print "AAAA" Set o = New Class1 Debug.Print "BBBB" Set o = Nothing Debug.Print "CCCC" End Sub [Class1] Private Sub Class_Initialize() Debug.Print "Class_Initialize" End Sub Private Sub Class_Terminate() Debug.Print "Class_Terminate" End Sub [結果] AAAA Class_Initialize BBBB Class_Terminate CCCC
某所によると 第2の理由は、インスタンスを消滅させるメカニズムが変化したことにある。 VB 6では、あるインスタンスへの参照がなくなると、その時点でインスタンスは消滅させられる。 しかし、VB.NETでは、.NET Frameworkのほかの言語と同様に、不要となったインスタンスはガベージ・コレクタと呼ばれる自動ゴミ掃除機能が回収する。 そのため、VB.NETではデストラクタが実行されるタイミングはガベージ・コレクタ次第であり、プログラマーからは予測できない。 とあるのな。
>>215 COMとかあんまり詳しくないんで、つっこみ所があると思うけど、
Nothingするって事はCOM的に言えばRelease()を呼び出すこと。
(ちなみに参照することはCOM的に言えばAddRef()を呼び出すこと)
オブジェクトはAddRef()したら参照カウンタを+1してRelease()したら-1して
参照カウンタが0になったら自分で自分自身を削除しなければいけないことになっている。
だからVB6では参照がなくなった時点でメモリーも解放されると思うよ。
というか巨大な配列を持ったクラスで試したら解放されているのがわかるけどね。
でも、破棄に関しては、いつ破棄されてもいいようなプログラムにしといたほうがいいね。 だって、他の言語はいつ破棄されるかわからないんだよね。VB6.0で変な癖つけたくないな。
>>218 いつ破棄されてもいいようにするのは当たり前なんだがVBで変な癖つけるってどんな癖だ?
他の言語に比べて注意すべき違いがあったか?
>>219 NothingしたらすぐにClass_Terminate() が実行されるという前提でプログラムすること
>>220 VBをちゃんと使えている人はNothingをしてもすぐにClass_Terminate()が
実行されないのを知っているのでVBで変な癖がつくことはありませんけど?
>>221 いや、VB6はNothingしたらすぐにClass_Terminate()が実行されるらしいです。
>>222 間違いです。VB6ではどこからも参照されなくなったときにClass_Terminate()が実行されます。
知識不足のままVB6.0で変な癖つくとか言ってると笑われますよ。
224 :
デフォルトの名無しさん :02/11/08 18:09
Recordset.Close しないで Set Recordset = Nothing するとどんな副作用があるの? と煽ってみるテスト。
>>224 これも中途半端な知識かつかなり想像だが、もしRecordsetがOpenされたまま
Nothingをされたとき(正確にはどこからも参照されなくなったとき)Closeを
実行しないような実装になっているのならOpenされたままになる。
Openされたままほったらかされるのが良くないのなら何かまずいことが起きるだろう。
もっとも普通の感覚を持っている人ならOpenされたまま解放されたら
Closeやそれと同等の終了処理をするだろうがそれは作り手にかかってる。
ADOやDAOでCloseしなくて解放しても大丈夫と仕様で決まっているのなら
大丈夫だろうが決まっているのかどうかは知らん。
ってこれは煽りにマジレスなのか? というよりどこが煽りなのかな?
え、副作用あるの?
>>224 HELPにNothingでCloseされますって書いてあったような…。
228 :
デフォルトの名無しさん :02/11/08 18:36
MSFlexGridコントロールで 書き込んだ文字色を例えば「青」としても 文字の色を変えた行にカーソルを合わせると 文字色が「黒」になってしまいます。 文字の色を変えた行にカーソルを合わせても 「青」のままにできるのでしょうか?
>>223 うーん。話がかみ合わないなー
他の言語では、どこからも参照されなくなった時点ですぐにClass_Terminate()が
実行されるわけではないってこと。
その点がVB6と違うっていってるんだけどな。
Nothingって書いてたのが誤解をうんだのかな。
>>226 If 仕様で副作用がないと決まっている() = True Then
If 実際にやって副作用がでていない() = True Then
MsgBox "仕様通り副作用はない"
Else
MsgBox "実装のバグ(もしくは仕様のバグ)"
End If
Else
If 実際にやって副作用はでていない() = True Then
MsgBox "この場合は大丈夫みたいだがやめたほうが良い"
Else
MsgBox "副作用がある。でも実装がバグっていると言ってはいけない"
End If
End If
でも話の流れはNothingだったんだよなー
232 :
デフォルトの名無しさん :02/11/08 19:05
VBScript(ASP)で質問っ(マジレスください) OpenTextFileを使ってcsv(カンマ区切り)ファイルを読み出して、カンマでsplitして配列としてデータをもつじゃんか。 んで、もし1データの中にカンマが存在したらそこもまた切られちゃうでしょ。 それを防ぎたいんだけど、どうしたらいいの? (例 あいうえお,か,きくけこ,さしすせそ,たちつてと 誰かたすけてくださいっ
233 :
デフォルトの名無しさん :02/11/08 19:16
Public Sub Main() Dim str as Stirng str = "123" Call Test(str) End Sub っていう形でTestというプロシージャが呼び出される時、 Testというプロシージャの引数がByRef↓だとコンパイルエラーが出て、 Private Sub Test(ByRef arg As Integer) 逆にByVal↓だとコンパイルが通ります。 Private Sub Test(ByVal arg As Integer) ByValの時でもコンパイルエラーにするようなオプションって無いでしょうか?
>>232 ダブルコーテーションでくくるのはダメ?
"あいうえお","かきくけこ","さしすせそ","た,ち,つ,て,と"
235 :
デフォルトの名無しさん :02/11/08 19:49
>>234 ありがとう。
いや。ダブルコーテーションでかこんであることを想定してのことです。
ダブルコーテーションでくくった中をのぞいてんでSplitしたいんですけど、
簡単な方法ないですかねー???
>>235 Write # ←→ Input # じゃなくてあくまで Split() で話をするなら、
分割後の最初と最後にごみが入るけど
デリミタを 「,」じゃなくて、「","」 にするのはどう?
238 :
デフォルトの名無しさん :02/11/08 20:19
>>236 いや。無事出来ました。
reg.Pattern = "(""([^""]|"""")*""|[^,]*),"
↑こんな感じのパターンマッチを作ってやってみたらうまく行ったよ。
皆さんさんきゅー!
>>204 > 関数内のFor Eachだけで使う変数はFor Eachがすんだらすぐ要らないだろうけど
> Nothingしなけりゃ関数が終わるまでオブジェクトが生きてる。
ループを途中で抜けない限りはループ終了時に解放されるはずだが。
>>207 ならお前は可変長文字列も動的配列も常に明示的に解放しろ。
>>217 > オブジェクトはAddRef()したら参照カウンタを+1してRelease()したら-1して
> 参照カウンタが0になったら自分で自分自身を削除しなければいけないことになっている。
それは単なるガイドラインであって、そのように実装しないといけない
という決まりはない。
240 :
デフォルトの名無しさん :02/11/08 21:06
37=32+4+1 みたいに数字を分解するのってどうやるのでしょうか? 設定の保存とかで使われてたりするアレです。
>239 本当だ、ビクーリしました。 For n = 1 To 10 Debug.Print "n= " & n Next Debug.Print "n= " & n 'n = 11 For Each oTest In oTests Debug.Print oTest.nNumber Next Debug.Print oTest.nNumber 'オブジェクト変数またはWithブロック変数が宣言されていません。
>239 そんな噛み付かなくてもいいじゃんかよー。 SetしたらNothingってのを基本にするのはそんなに悪か? 実際オブジェクトの解放し忘れでプロセス残ってた例も多々ある訳だし。
自分で10進数から2進数に変換するルーチンを書きました。 多分コレでOKかな。
247 :
デフォルトの名無しさん :02/11/08 23:31
Sub 罫線作成() On Error Resume Next Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone 罫線作成proc (xlEdgeBottom, 3) 'コンパイルエラー End Sub Sub 罫線作成proc(xlEdge, color) With Selection.Borders(xlEdge) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = color End With End Sub ↑なんでコンパイルエラーなの?
>>247 ネタかもしれんが、
引数をカッコで括るのはCallステートメントでの呼び出しか
プロシージャの戻り値を利用する時だぞ。
引数というより引数リストと言うべきか。
>>242 SetしたらNothingってのは悪いことではないが、
基本というべきものじゃないと思うよ。
俺はスコープから抜ければNothingされるのに、無駄なことをと思う。
まあ、mallocしたらfreeすべきかという問題と同じかもしれんので、
人に強制はしないほうが良いかと。
もうしつこい。ヘルプ載せるから、こんなのでダラダラすな。 >Nothing キーワード > >複数のオブジェクト変数が同じオブジェクトを参照することがあります。 >キーワード Nothing をオブジェクト変数に代入すると、その変数は実際の >オブジェクトを参照しなくなります。複数のオブジェクト変数が同じオブジェクトを >参照すると、各変数が参照するオブジェクトに関連付けられたメモリと >システム リソースは、Set ステートメントを使ってすべての変数を明示的に >キーワード Nothing に設定するか、またはキーワード Nothing に設定した >最後のオブジェクト変数が、暗黙のうちに適用範囲 (スコープ) 外になった後でなければ >解放されません。
>247 ってか日本語のプロシージャ名使うなって。
>>242 俺も250とまったく同じ考え。
悪いとは思わないが「絶対にいい」という類のことでもないと思う。
個人的には、End Subの直前でローカルな変数にNothingをセット
してるコードを見ると、なんだかな、と思う。
>250 >253 俺はどうも、昔これ(明示的なNothing無し)で苦労した記憶の呪縛から抜けきらんらしい。 逝ってくる。
Nothing入れたら直ったから、必ずNothingしときゃいいや なんて消極的じゃダメ!!原因を追求しる!!
256 :
デフォルトの名無しさん :02/11/09 06:48
Nothingするのは、当然だと思うが・・・。 当然すべきことを 怠っていただけの話だろ。
257 :
デフォルトの名無しさん :02/11/09 08:11
典型的なVB厨ですな。 とにかく何でもかんでもNothingしとけば間違いないってか。 自分が使ってる言語の仕様がよっぽど信用できないんだろな。
使い終わったらnull/NULLの代入 はc/c++/C#/javaでもよくやるよー。 拒絶反応を示すのが居るっぽいけど2ch限定だから無視すれ〜
259 :
デフォルトの名無しさん :02/11/09 08:34
> はc/c++/C#/javaでもよくやるよー。 やるヤツもいるが、当然すべきとは言わないな〜 まあ頑張って文字列にもvbNullstringをセットしとけ〜
コーディングルールがまだないならセットすることを薦めるよん 当然?ルールに従うのが当然ですが?
261 :
デフォルトの名無しさん :02/11/09 08:41
典型的なVB厨ですな。 他人にNothingをすすめる理由は 「俺の所のコーディングルールで決まってるからそれに従え」ってか。
262 :
デフォルトの名無しさん :02/11/09 08:52
>>257 VBの仕様なんて あてになるかいっ(w
>>261 というより、典型的な石頭な。
VBしか知らない連中は特に物心ついた時からそういうコーディングルールを
たたき込まれてる奴が多い。何も理解せず当然だと思い込んでるんだろう。
264 :
デフォルトの名無しさん :02/11/09 08:56
じゃあ明示的な解放が処理されるかどうかもあてにならんな(w
不要なところの Set xxx = Nothing はただのゴミ。 入れたきゃ入れてもいいが、 その前にお前のコードを一度自分で追ってみろ。 1つのプロシージャを何行書いとんじゃ、ぼけ。 そんな目を覆いたくなるコードには盲目的にSet xxx = Nothing。
すげえ、入れ食いだ
不要でなければ入れてよい、と。
>257 何でもかんでもなんて誰も言ってないよ。 言語の仕様が信用できないってのはあるかも。 実際、それで難儀したんだから。 >263 それはあるかも。 未だにGlobalキーワード使ってる奴いるしw >264 WinCE版のVBは明示的に解放してもメモリリークしたりするし >265 そうか? ウン百行の酷いコード書く奴って、Nothing以前にオブジェクト変数の意味自体を 知らない奴が多いと思うけど。 ま、ともかく色々と参考になった。 みんなあんがと。
270 :
デフォルトの名無しさん :02/11/09 14:30
>>270 無理に決まってるじゃん。(受け側がオブジェクト型でもない限り)
Dim s As String
Dim i As Integer
i = s
この代入がエラーかどうか実行時にしかわからないのと一緒。
相手のパソコンからデータを取得するにはどうしたら良いですか?ハッカーではないでしよ。
取得するファイルを持っているパソコンのことです。
意味不明。FileCopyでフロッピーにコピーして受け渡せ。
>271 >272 どうもです。やはり無理ですか... という事は、コンパイル時に双方の型が一致しているかを確認するにはByRefに する以外無いという事ですよね。なんか納得いかない... 他の言語でもこうなのでしょうか?
278 :
デフォルトの名無しさん :02/11/09 17:54
VBから16BitのDLL(具体的にはuser.exe)のAPIを呼びたいのですが いい方法はありませんか?
279 :
デフォルトの名無しさん :02/11/09 18:02
>>279 Googleでも手持ちのMSDNライブラリでも見つからないのですが、
それはどういったものですか?
>>281 Call16bitDllってのは
>>279 がそんなものがあれば便利だな〜と思ってるだけ。
あったらいいね。
>>279 VBに限らず32bitプログラムから16bitDLLを呼ぶのは面倒。
具体的にどのAPIを呼び出すのか、何がしたいのかを書けば
他の解決策がわかるかもね。
>>277 VBはBASICの家系だから、そういう言語なんだYO!
そもそもStringをそのままIntegerに渡すことは普通ない。
事前に入力値のチェックするだろが。
型を知りたければTypeName関数でも使ってロジックチェックしろ、ぼけ。
284 :
デフォルトの名無しさん :02/11/09 20:02
VBAであるブックを開いてある領域をコピーして そのブックを閉じるときに現れる ”クリップボードに大きな情報があります。この情報(略” というダイアログを表示させない方法ってありますか?
285 :
デフォルトの名無しさん :02/11/09 20:03
ちなみに”いいえ”を自動的に選択させたいです。?
287 :
デフォルトの名無しさん :02/11/09 20:32
Application.DisplayAlerts = False
289 :
デフォルトの名無しさん :02/11/09 21:08
その程度の事も解決できないようなやつが作ったフロントエンドって、ど んな人が使うんだろう? 教えてほしい。
>>282 user.exe内のexitwindowsexecを呼び出したいのです。
今のところはrundllから呼んで何とかしてるんですが…直に呼び出したほうが
スマートだと思いまして。
291 :
デフォルトの名無しさん :02/11/09 21:18
>>290 exitwindowsexecはよく知らんのだがWindowsの終了かリスタートなら
ExitWindowsExとかを使えばいいんじゃないのか?
293 :
デフォルトの名無しさん :02/11/09 21:21
Excel97のVBAで、ボタンおしたら通常使うブラウザが開いて 指定したURLのページを表示させるにはどうしたらいいでしょう?
>>292 Windowsのみの再起動(終了ダイアログでShiftを押しながら再起動した
時の動作)を再現したいのです。ExitWindowsExには無いようです。
296 :
デフォルトの名無しさん :02/11/09 21:26
298 :
デフォルトの名無しさん :02/11/09 21:27
300 :
デフォルトの名無しさん :02/11/09 21:30
スーパーブイバーになりたいんだけど、何で勉強すればいいの? 山本のVB3部作の次は?
302 :
デフォルトの名無しさん :02/11/09 21:40
293です。できますた。 なんかコンパイルエラーになると思ってたら、 VBAって関数呼ぶときはCall付けないとだめなんですね。
>>293 に便乗だけど、VBから通常使うブラウザ書き換える術を教えて下さい。
レジストリを弄ることそのものはAPIを使えば簡単なんだが、目的に あった操作(どのキーをどのように弄るか)を調べるのがむずかしい。 FAQ、定番的なものなら、ググればいくらでも見つかるからよいが、 WEBで事例が見つからない場合、みんな、どうやってるんだろう?
2chで聞く
>>305 検索、勘。それらしいのが見つかったらトライ&エラー。
バージョン上がってキーが変わったら泣く。
VBを勉強するのに良いテキスト教えてください。
>>302 > なんかコンパイルエラーになると思ってたら、
> VBAって関数呼ぶときはCall付けないとだめなんですね。
んなわきゃない。VBもVBAも基本的な文法は同じ。
あ、302はVBも知らんかったのか。すまん。 proc(a1, a2) と書くとエラーだが、 Call proc(a1, a2) または proc a1, a2 または、戻り値を返す関数なら 戻り値 = proc(a1, a2) と書ける。
>>307 ある意味、食用キノコと毒キノコの判別法に近いものが感じられる。
>>310 302 は、戻り値を受けない関数呼び出しに括弧をつけていたと思われ。
312 が見えなかーたよ。。。
>>314 Call ステートメントを使用した方が、可読性が多少はよくなる。(場合もある)
命名に一貫性がないソースコードの場合、変数名、関数名、オブジェクト名の
区別が付きにくい場合もあるので。
# だからこそ、命名規約が必要なのだ、という話もある。
VB6.0使ってます。
コントロールボタンを375×375にして、CaptionをCAにしますた。
文字のフォントはMS Pゴシック、サイズは11。
で、実行してそのボタンをクリックすると、
それまでボタンに横に表示されている文字が縦に表示されるのです。
なんでですか?
>>311 自分で本屋逝って良いと思うものを買ってくるのが一番だろうけど、自分は↓コレを買いますた・・・
VisualBasic6.0パーフェクトマスター Perfect Master
見有 哲久 (著), 青空研究会 (著) 秀和システム
オールカラーで見やすいし、内容も平均的。初めての人にもとっつきやすいかと。
>>316 命名がクソなのと、Call のある無しが何の関係あるんだ?
ThisIsNotFuncCall a1, a2
って書いてあっても、普通それが関数呼び出しだと分かるぞ。
>>317 フォーカスの点線のせいだ。
もうちょっとボタンの大きさに余裕を持たせろ。
すいません、いい感じで流されてるんですが…(;´Д`)
>>320 VC++でラッパーDLL書く。
って言うかVCとかでも妙に面倒な手続きが必要だったと記憶。
サンクレイヤとか言う奴?
>>319 レスありがとうございます。
ボタンを大きくすればいいのは分かるのですが、フォーカスの点線のせいっていうのは?
詳しく教えてください。お願いします。
>>318 ワロタ。
無理やり挙げれば、
ThisIsLabel をラベルと間違えるとか、
Statc a, b をStaticと間違えるとか。
俺はCallがない方がスッキリして読みやすいけどね。
メソッドの呼び出しだと Callを付けない人が多いし。
>>322 フォーカスを持ったボタンは、自分がフォーカスを持っていることをユーザーに
アピールするために、ボタンのふちのすぐ内側に点線を引く。
その点線の描画領域の為に、ボタンの文字の表示領域が減る。
で、文字をきちんと表示させるために、文字列をワードラップする。
(だから "CA" が C と A の間で改行される)
ところが、幅は考慮していても高さは考慮していないようだ。
(ボタンの文字列には普通改行が含まれないから当然と言えば当然)
こんな説明で OK か?
>>328 >俺はCallがない方がスッキリして読みやすいけどね。
オレはCall付いてる方が安心感があるかな。
ま、好みのレベルかもな。
b a
例えばさ、上みたいなんなんだと思う?
>>318 >メソッドの呼び出しだと Callを付けない人が多いし。
それはいえてる。
>>325 はじめ 「2 ちゃんねるのレス」 として見たから何の事かわからなかったけど、
「VB のソース」 として見るなら引数 a を指定したルーチン b の呼び出しと
すぐ分かる。
まあ他言語、特に C/C++ から来た人なら騙されやすいかもね。
>>324 なるほど。親切に教えていただき、ありがとうございます。おかげさまで理解できました。
>b a
>例えばさ、上みたいなんなんだと思う?
>>318 あほの書いたソース。見る価値もない。
仕事なら作り直した方が早い。
って思うかな。
でも実際いるんだよなぁ。わざと読みにくくしてねぇかお前ってやつ。
>283 >そもそもStringをそのままIntegerに渡すことは普通ない 普通無くても、できてしまうから困る訳で。 呼ばれる側はIntegerで宣言していても、呼び元では違う型を使って呼び出している可能性が あり、それによるバグが生まれる場合もあるのだから、事前に機械的にチェックする方法が 無いか?って考えるのはおかしいことじゃないと思うけど。 そういう意味では >型を知りたければTypeName関数でも使ってロジックチェックしろ ってのは本末転倒。 そういう言語なんだよと言われればそれまでなんですけどね。 とりあえず、デバッグ時はByRef使う方向で行きます。
> 呼ばれる側はIntegerで宣言していても、呼び元では違う型を使って呼び出している可能性が 設計や管理がずさんなだけじゃん。 普通は、関数が整数を要求することがわかってるのに 文字列型を使ったりはしないよ。 そもそもそんなこと言ってたらきりがない。
あ、でも読み返してみると、確かに329の言ってることも よくわかるな。
>329 複数人で開発していると必ずいるんですよ。 引数の型無視して呼び出してバグ生む奴・・・
333 :
デフォルトの名無しさん :02/11/10 15:49
フォーム1のテキストボックスにテキストを入力する際に直接キーボードで入力せず、 そのテキストボックスをクリックすると、新しくフォーム2を表示させて、 フォーム2上の複数のコマンドボタンの中から1つおすと、押したボタンの Captionがもとのテキストボックスに入力されるというのをやりたいのですが、 フォーム2からどうやってそこのテキストボックスを指定すればいいのかわかりません。 ちなみに、テキストボックスはコントロール配列になっていて、複数あります。 どなたかお教えください。宜しくお願いします。
form1.textbox(1).text = form2.label1.caption
>>333 入門書とかヘルプ、読んでないだろ?
ちゃんと読めよ。
336 :
デフォルトの名無しさん :02/11/10 16:07
>>334 ありがとうございます。具体的に決まっている場合はわかりました。
どのテキストボックスが選択されたかわからない場合は、
何か変数に渡すのですか。
具体的にはここまでできてます。
frmForm1のコード '↑でいうForm1
Private Sub txtName_Click(Index As Integer)
frmSelectName.Show '↑でいうForm2
End Sub
frmSelectNameのコード '↑でいうForm2
Private Sub cmdName_Click(Index As Integer)
frmForm1.txtName(?).Text = cmdName(?).Caption
Unload Me
End Sub
?のところが良くわかっていません。
>>336 frmForm1.txtName(?).Text = cmdName(?).Caption
右の?は引数のIndexだからわかるっしょ。
左の?は frmForm1.ActiveControl.Index でわかるけど
あんまりオススメしない。
>>337 > frmForm1.ActiveControl.Index
今、手元にぶいびの環境がないので、確認できないんだが、
ActiveControlがコントロール配列でない場合、エラーに
なんないかい?
たぶんエラーになるよ… ダイレクトに参照したいなら こんな方法もあるよってことでし。 好みの問題だろうけど 自分だったら関数でくるむかRaiseEventかなぁ
スマソ、339は337から338へね
おれならこうする。(未検証ですが。) <frmForm1> Private Sub txtName_Click(Index As Integer) txtName(Index).Text = Form2.GetStrSelected End Sub <Form2> 'モジュール変数 Private strSelected As String 'ダイアログ表示→文字列選択待ち→ダイアログ閉じる→選択された文字列を返す Public Function GetStrSelected() As String strSelected = "" Show Me, vbModal GetStrSelected = strSelected Exit Function '選択されたボタンのキャプションをモジュール変数に格納→ダイアログを閉じる Private Sub cmdName_Click(Index As Integer) strSelected = cmdName(Index).Caption Unload Me End Sub これでForm2はいろんなダイアログから呼び出せるようになる。 Form1上のテキストボックスに文字列をセットするという作業は Form1が自分でしなければいけない。 Form2は選択された文字列を外部に公開するだけ。
>336 あれ?モードレスってのが仕様? だったらとりあえず341却下。 ささやかに339のRaiseEventに1票。
>>329 君のいわんとすることは277の書き込みで理解はしているよ。
ただ、
>そういう言語なんだよと言われればそれまでなんですけどね。
これが現実。そういう言語を選んだのだから。(君が選んだかどうかは別にして)
君が指導して周りのプログラマのレベルアップをはかった方が懸命。
>とりあえず、デバッグ時はByRef使う方向で行きます。
デバッグ時はByRefと書いておいて、後でByValになおすってこと?
それは現実的だと思えないし、
そういう行為(ソースの二重持ちするのか、毎度書き換えするのか知らないけど)
の方がバグ生むと思うけど。
「ByRefを型を厳密に使うのに使います」という使い方がトリッキー。
>>332 =329?
そんなDQNを教育するか、それでダメなら、
まずプロジェクトからはずすのが先決かと。
>>329 もひとつおまけ。
VB.NETなら、Option Strict Onで厳密な型指定、型変換を強制できる。
>>329 一応書いとくけど、
いくらByRefで定義していても、呼び出し時にパラメータを
カッコで括るようなアホがいたら、コンパイル時のチェックに
引っかからないからね。(それと、定数渡しもアウト)
Dim s As String
Func (s)
Func "ABC"
--------
Sub Func(ByRef n As Integer)
End Sub
というわけで、344と同じく、一定のレベルに達していないDQN
はプロジェクトに入れないのが一番の策と見た。
なんて、DQNな話してんだよー
348 :
デフォルトの名無しさん :02/11/11 00:37
WinsockコントロールでTCPで通信、インターネットを想定した場合、 ただ単にIPアドレスを指定しただけでは通信できないのでしょうか? ローカルIP、グローバルIPが関係してくるのかな?
>343 もちろん、コーディング規約への追加や、教育によるレベルの底上げは行っていきます。 >344 同意なんですけど、そういうレベルの話じゃないんです。 機械的にチェックする事で型の不一致によるミスを100%なくす手段が無いか?という話なので。 >345 .NETはよさげですね。 少なくとも今の平均レベルでは移行できませんけど(泣 >346 ありがとうございます。 普通はないけど、ありえないとは言い切れない現象ですね。 参考にさせて頂きます。
>>349 ByRefにしといてあとからByValに手動で変えるのは全然機械的じゃない。
>>351 自動でByRefを全部ByValに変えるのか? こわいな。
そもそも、本来の使い方が全く無視されてると思うが。
> 自動でByRefを全部ByValに変えるのか? 全部じゃないかもよ。 ソース上ではデフォルト(ByRef記述の省略)と明示的な記述の 2通りが使えるわけだし。
355 :
デフォルトの名無しさん :02/11/11 13:43
Windows98&VB6&ディストリビューションウィザードで作成したexeを Windows95にインストールした所、右寄せを設定していたテキストボックスが 全て左寄せになってしまいました。 Windows95でも右寄せのテキストボックスはありますし、設定自体はいけると 思うのですが、どのようにしたら受け付けてくれるのでしょうか。
excelファイルをドラッグアンドドロップしてVBで作ったexeを起動するにはどうしたらいいですか?
うっさい、ハゲ
>>355 MultilineをTrueにするんじゃなかったか
361 :
デフォルトの名無しさん :02/11/11 14:40
>>356 ドラドロで普通に起動できると思いますが。
アイコンにドロップすると、ファイルのフルパスが引数として渡ります。
Command で引数を取得してファイルパスなら・・
という処理を書いてくだせぇ
362 :
デフォルトの名無しさん :02/11/11 14:51
Inetコントロールを使ってVBで簡易webブラウザを作ろうと思うのですが、 UserAgentがデフォだと「Microsoft URL Control - 6.00.8862」です。 これを変更する方法が知りたいです。
>>359 なんで騙る必要があるのですか。
すごいナチュラルに誰にも被害もなく騙ってますけど(w
>>360 サンクス!できますた。
もともとEnterキーで次のコントロールにフォーカスを移す仕様だったので
何の問題もなくできますた。
マジサンクスです。
364 :
デフォルトの名無しさん :02/11/11 15:09
画像の情報取得をして表示させたいのですが、jpegで 24ビットフルカラー(各8ビット)他モノクログレースケール画像(8ビット) の判別の方法がわかりません。 どうすればよいのかどなたか教えてください。
>>363 言い訳させてもらえれば、煽ったつもりも騙ったつもりも無いんだけど。
マジで疑問に思ったから。
>>365 お客さんの前で言ったらお金が出なくなります。
Shellで呼び出した別のEXEファイルが呼び出し元のフォームより 後ろに回るのですが、これに対処法はありますか? 引数にはノーマルフォーカスを指定しています。
凄い初歩的な質問なんですが。今クイズを造っているのですが その初期段階として「VBでコマンドボタン押したらテキストボックスに ランダムに問題が表示される」って言うのはどうやったらよろしいんでしょうか?
>>369 配列とRndとRandomizeを調べれ。
>>370 持ってる本には書いてないっす。配列宣言しか。
>>371 ヘルプ(MSDNライブラリ)があるだろ。それを見れ。
わかりもうした。調べてみます。
375 :
デフォルトの名無しさん :02/11/11 17:00
ボタンを1回押すと数字が1大きくなって ボタンを押している間は数字が大きくなり続けるようにするには どうすればよいですか?
スピンコントロール(適当
質問なんですけど。 メッセージボックスのボタンの文字を変更する事ってできますか? VB標準では無理ですよねぇ?
無理です
381 :
デフォルトの名無しさん :02/11/11 17:06
364です jpgの24bppと8bppの深さの取得の方法どなたかおねがいできませんか? SOFセグメントには縦、横のサイズを取得するものがあるのですが、 bmp見たいにbitcountみたいなものが構造上見当たらないのです。 お知り方いましたらご教授ください
>>379 ありがとうございます
できればもう少しヒントください
>>382 試してないが、mousedownでフラグ立ててmouseupでフラグ解除
タイマーで定期的にフラグが立ってるか見て、立ってれば処理すればいいのでは?
あ、それよかmousedown時にタイマー始動、up時に解除のほうがスマートか・・・
でも前に別の人が書いてたけど、スピンコントロールが
使えるならそっちのほうがスマートだし楽だと思うぞ
試してみた。フォーム作って、ボタンとタイマー貼り付けて 以下のソースで試してみれ。なお、タイマーのEnabledはデザインではFalseでな。 Option Explicit Private cnt As Integer Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Timer1.Enabled = True End Sub Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Timer1.Enabled = False End Sub Private Sub Timer1_Timer() cnt = cnt + 1 Caption = CStr(cnt) End Sub
何も起きないのですが...
>384 ↓Command1でマウスダウン ↓ALT+TABでアプリ切替 ↓マウスアップ(もちろんMouseUpイベントは起きない) ↓ALT+TABでもとのアプリに戻す ↓>385が正しければ何も起きない
Intervalが0になってました。 ありがとうございました!&すみませんでした
388 :
デフォルトの名無しさん :02/11/11 18:23
>>48 やべ〜オレ普通にDim使ってるわ。
今度からPrivate使おう・・・
389 :
デフォルトの名無しさん :02/11/11 20:03
PrintFormでフォームを印刷したいのですが フォーム上に配置したPictureBoxが真っ白になってしまいます フォームごとPictureBoxの内容を印刷することは無理なのでしょうか? PictureBoxはビットマップを読み込んでるわけではなく コードで図形を描画してます
390 :
デフォルトの名無しさん :02/11/11 20:12
>>389 PictureBoxのAutoRedRawは?
>>364 >>381 JPEG にはフルカラーしかなく、しかも RGB じゃなくて YCbCr だったと思う
のだがどうよ?
ちっとは Web 検索した?
ちなみに漏れも良く知らない。
392 :
デフォルトの名無しさん :02/11/12 01:24
TXT形式のファイルに出力したいのですが、 どうしても上手くいきません。 開く方は何の問題もなくいけたのですが・・・ Dim Strfilename As String Open Strfilename For Input As #1 StrData = Text1.Text Print #1, Stroutput Close #1 という感じです。 ファイルのパスもあっているのですが、、、 どなたか教えていただけないでしょうか?
StrDataとStroutputは同じものです。 直し忘れた>< それでもやっぱり動かない・・・
394 :
デフォルトの名無しさん :02/11/12 01:46
Open Strfilename For Output As #1
初めまして。 ネタではなく、まじめなご相談なのですが。。 とある、ソフトウェアとハードウェアを持っています。 ハードウェアは、USB経由でICチップにクリップで繋ぎ、データをリード ライトする為のものです。 ソフトウェアは、上記ハードウェアに付属している開発ツールを使って作られ たもののようで、ディレクトリ構造的に SETUP.LST SETUP.EXE キャビネットファイル(解凍すると以下) 各種DLL、各種OCX、TLB、BIX、VXD、EXE、INF、 TXTファイル からなっており、上記ハードウェアのドライバとリードライト制御を行う機能 を持っています。このソフトウェアは、同じ上記ハードウェアで動作してるの ですが、もう一つの同種の(シリアルは異なります)ハードウェアで動作しま せん。これを動作させる事はできるのでしょうか。ハードウェアに付属の開発 ツールのソースコードとVBによって、ハードウェアに対応した各種のアプリ ケーションが作成できる、とあった為に、ここに質問させて頂きました。 もし、どなたかこれを解決できる方がいらっしゃいましたら、是非お願いした く、ご相談させて頂きました。ソフトウェアは、CD−Rで保有していますの で、必要に応じて出す事が可能です。 当方、ソフトウェアの素人である為、この問題を解決出来ません。 レジストリの問題なのか、ソフトウェアを改造する必要があるのかすら分かり ません、解決して頂ける方には、成功報酬として、非常に少ないですが、10 万円ほどご提供させて頂きたいと思います。 素人ではありますが、もう少し詳細な情報も出す事が可能です。 もし場違いであれば、削除して頂いて構いません。 よろしくお願いします。
>>396 マジレス。
報酬が用意できるくらいなら、ここで訊くよりメーカーに訊け。
>>396 よく読んでねーけど、それってHASPキーみたいはハードウェアプロテクトをはずせと言ってるんじゃないだろうな。
399 :
デフォルトの名無しさん :02/11/12 12:29
>>362 変えることできないんじゃなかった?
まえにどこかのFAQ掲示板でそんなやりとりを見た。
しかし変えれないとなると使えねーな。
VB初心者です。 ADODBでデータベースを作って検索しようとSQLを使ったのですが、 「演算子がありません」とか出てきて検索できません。 どうしたら検索できるのでしょうか? あと、SQLでの複数条件の記述式を教えてもらえませんか。
パスワードのかかったACCESSのデータベースをVBで読み込みたいのですが、案の定 エラーが出てしまいます。どなたコーディングの仕方を教えていただけませんでしょうか。 VBは6.0でACCESSは2000を使用しています。よろしくお願いいたします。
>>400 それはVB使ってるってだけでSQLの質問でしょ?
だからスレ違いだし、そもそも情報少なすぎ。
>あと、SQLでの複数条件の記述式を教えてもらえませんか。
にいたっては、SQLの文法書でも読めとしか言いようがない。
>>401 ADOかDAOかぐらい書け。キーワードはpwdで検索しる!
>>400 ってこいつSQLスレとのマルチかよ。死ね。
すみませんでした。ADOを使用しています。よろしくお願いします。
>396 あるハード用に作られたソフトを他の同種のハードに 流用したいって事かな? なぜ動作しないのかはハードの情報が無いので何とも言えない。 あなたの持っているソフトはコンパイル済みのようで、 ソースを持っている人以外は修正することが出来ない。 解決策1: ソフト作成元に他ハードに対応するように依頼する。 解決策2: ソフト作成元からソースを購入し、自分でまたは 他者でソースを変更する。 解決策3: 他者に現在のソフトウェアの機能を説明し、 同様のソフトを一から作成してもらう。
なんか変な事書いたかな? みんな固まっちゃったよ。
人は誰しも自分の発言の後に発言がないと不安になるものである
まぁ、レスの付かない夜もあるさ
>>405
394,395>ありがとうございます! なんとか分かりました!
409 :
デフォルトの名無しさん :02/11/13 07:55
>>409 そういうならフォーマットを呈示しなさい。
// Create an instance of the scripting Shell Object shell = WScript.CreateObject("WScript.Shell"); // Have the Shell Object call ShellExecute on our file shell.Run(WScript.Arguments(0), 1, 0); // Destroy the Shell Object WScript.DisconnectObject(shell);
Option Explicit のすぐ下で宣言するときの DimとPublicの使い分け方がわかりません。 どういうときはどちらをつかうのでしょうか。
>>412 効果は変わりないけど、PublicはPrivateと対になってるので、論理上正解。
効果は同じと聞いて安心しますた
待った。Dim=Privateだろ。
異議あり!! Dim=Privateだろ。 と言え。
あ、そうだっけ Dim使ってないから忘れてた。スマソ。 ちなみにGlobalと同じで過去の遺物なんだよね、これ。。
417 が、ローカル変数を使わない DQN である事をカミングアウトしました。
420 :
デフォルトの名無しさん :02/11/13 15:18
VB6 なんですが、VBA のトグルボタンコントロールに相当する トグルスイッチを作ろうと思ったら、どうしたらようござんしょう?
つーか、(モジュールレベルで使うにしても) Global と Dim を同列で並べてる
ところが痛い。
せっかく遠まわしながら間違っている事を 418 が指摘したのを、揚げ足取りとして
非難してるのはもっと痛い。
そもそも、記憶があやふやなのにドキュメントを調べもしないで堂々と回答してる
姿がとっても痛い。
そして、「論理上正解」 って意味不明。
って、こうして煽られたいからそういう書き込みするの?
>>419
↑ただし、CheckBox は不可です。あしからず。
結局、VB6で開発しているのにGlobalやDimで宣言してるヤシには気をつけろってこった。
Microsoft Forms 2.0 Object Library コンポーネントを追加すれば ようござんした。失敬。
>>420 どのレベルから作り込みたいのかはっきりさせてくれないと、アドバイスの
しようがない。
カスタムコントロール作る?
既存のコントロール改良しる?
フォームに直接ガリガリ書く?
ヽ(´ー`)ノ
>>421 なに過剰反応、っつーか拡大解釈してるんだ? 譫妄?
419は、417の言ってるDimが当然ローカル変数のでは
ないことぐらい文脈で分かるだろと指摘しただけだろ。
それと、俺はGlobalもモジュールレベルでのDimも過去の記述方法として
同列に書かれることにはちっとも違和感おぼえなかったが。
Option Explicitも面倒なので使ってませんが、何か?
>>427 そう思ったなら 419 が素直にそう書けばいいだろ。
419 は煽りにしか見えん。
>420 OptionButtonのStyleプロパティを1 - グラフィックスにするとそれっぽいぞ。
>>429 418が分かってて書いてるのがミエミエだから
あえて指摘しなかっただけだが何か?
もういいでしょこの話題。421で結論でてるし
421じゃないや 結論でてるのは427だった スマソ
>>413 「PublicはPrivateと対になってるので、論理上正解」の意味がサパーリわからんから説明してくれ
あ、「PublicはPrivateと対になってる」はわかる それが「論理上正解」とどう結びつくのかサパーリ
>>434 書いたままだが、何か?日本語不自由なのか?
>>435 しつこいなー マジで聞いてるのか?
Dim <-> Public が対になってるのは文法的に理解しがたい
Private <-> Public のほうがスマートでしょって意味
正解と断言したのが気に入らないのか?
それなら正解に近い とでも言い直すが
>>436 ああ書き方が悪かったよ
「DimとPublicの使い分け方がわかりません」に対して
「PublicはPrivateと対になってるので、論理上正解」なのがわからん
>434 >435 ケコーン(藁藁
>>438 なぜ部分的に抜き出す?
その前に書いた「効果は変わりないけど、」の部分は目に入らないのか?
効果は同じだけど、さっき書いたとおり、Privateにしたほうが
Publicとも対になって論理的整合性が取れてるでしょってこと。
しまった、本人じゃん
>>412 =414は「効果は変わりないけど」に気を取られて帰ってもーたみたいだし、
どうせ回答するなら
>>437 のように最初からちゃんと書いた方がいいかと思うがどうよ?
>>440 言葉足らずだったのは認めるが、そこまで赤ちゃんに
言ってきかすほど噛み砕いて説明する義務は俺にはないんだが。
>>443 ほんとにしつこいなあ・・ (´д`;)
繰り返すけど、そんな義務はないって。
そう思ったならあなたがそうやって教えてやれば
良かったでしょうが。
こんな話題でこれ以上スレ伸ばすのは無駄と思うがどうか?
>>441 客観的に見て、437 や 441 に書いてある情報は 413 にはちっとも書いてないよ。
>>445 義務が無いと言うなら、あなたは何で回答しているの?
>>448 それは「言ってきかすほど噛み砕いて説明する」義務でしょ
なんかさっきから勝手に言葉切りとって、無理やり
揚げ足取ろうしてるヤシがいるみたいだけど、なんか413に
個人的な恨みでもあるのか?(w
450 :
デフォルトの名無しさん :02/11/13 16:10
こういうアフォな人たちがいるから回答者が減っていくのですね・・・
正直、人のやったことにグダグダとケチつけてるだけの奴らより、 413のように短くても回答くれる人のほうがよっぽど有益と思われ
ということで、次の質問者の方、どうぞ ↓
はじめまして、質問させてください。 VB6で、Excelファイルを出力したいのですが、 .Quit処理を行ってもExcelのプロセスが残ってしまいます。 お手数ですがよろしくお願いいたします。 ''ソース抜粋 Private xlApp As Object Private xlbook As Object Private xlsheet As Object Set xlApp = excel.Application Set xlbook = xlApp.Workbooks.Add Set xlsheet = xlbook.Worksheets(1) xlsheet.Cells(1, 1) = "データを入力" xlsheet.Unprotect xlbook.Close True, "C:\Book.xls" xlApp.Quit Set xlApp = Nothing Set xlbook = Nothing Set xlsheet = Nothing
>>453 Set xlApp = excel.Application を
Set xlApp = New Excel.Application にしてみ。
>>454 ありがとうございました、無事解決できました。
感謝感謝です;;
457 :
猿並初心者 :02/11/13 18:25
本当に猿並な質問ですみませんがVBSで、 1個220円の商品が1ダースなら2500円として、 26個なら2500円*2+220円*2=5440円 というように金額が出るようにしたいのですが、 いくらやっても全部1ダースあたりの金額で小数点以下まで計算されるか、 12個以下の個数だとエラーになるかで、どうにもなりません。 どんなに罵倒されてもかまいません。どなたか助けてください、お願いします。
1ダースは20コぐらい?
459 :
デフォルトの名無しさん :02/11/13 19:16
winsockを使ってプログラムしているのですが、 チャットの他にいくつかの機能を付けようかと思ってます。 そこで、データを受け取った時にそのデータがチャット用なのか、 その他1用なのか、その他2用なのか・・といった風にCASE文あたりで振り分けたいのですが、 何かいい方法はありますか? いろいろ見てみたんですが、それっぽいものが見つからなかったので>< どなたかお願いします!
>>457 なんかよくわからんけどこれでいいの?
Dim lngIn, lngAns
lngIn = 25
lngAns = ((lngIn \ 12) * 2500) + ((lngIn Mod 12) * 220)
MsgBox lngAns & "円"
>>459 > データを受け取った時にそのデータがチャット用なのか
> その他1用なのか、その他2用なのか・・
てことは、データ送る側が「それ」を送るデータにくっつけて送ればよいのでは???
微妙にスレ違いかもね。
462 :
猿並初心者 :02/11/13 19:39
>>460 ありがとうございます。lngIn = 25というのがよくわからないのですが
例えば単価220円として、本来30個なら6600円
でも1ダースなら2500円なので30個の合計金額は
2ダース*2500円+6個*220円=6320円
になるように個数を入れれば合計金額が出るようにしたいのです。
説明不足ですみません。
>>462 Int or Fix 、mod関数を調べてみれ
>462 プログラムを欲嫁。lngInが商品の数。
465 :
猿並初心者 :02/11/13 21:03
こんな猿にみなさんご親切にありがとうございます。 INT関数でダース、MOD関数でその余りというのはよくわかりました。 後は個数が12個以下だとエラーが出るのを何とかしたいのですが。
ユーザーが同じソフトを2つ起動しないようにするにはどうすればよいのでしょうか?
ありがとうございます。 App.PrevInstanceは知りませんでした。
Private Sub Form_Load() If App.PrevInstance = True Then フォームロードのところで End とか Unload Me とかやってみます。 End If END
470 :
デフォルトの名無しさん :02/11/13 22:23
フォームモジュールに書いた Sub (〜_clik みたいなやつ)の中で、 標準モジュール内にある変数を呼ぶ時にパブリック変数を多用しているのですが まずいですか?
GoodLuck!
感謝です。 無事成功しました。
フラットボタンとか作りたいんですけど、 オーナードローって、ウィンドウをサブクラス化して、メッセージ受信して、 そのメッセージによって後は自分で全部描画するってことでしょうか? とりあえずボタンの色変えるぐらいはそんな面倒な事しなくてもできるだろ と思ったんですが・・・できないんでしょうか。
>>473 ボタンの代わりにピクチャボックスを使う。
とりあえず周りに線引いてボタンっぽいものを書いておく。
MouseMoveで浮き上がる絵を書いてタイマーON。
タイマーの中でAPIのWindowFromPoint使ってマウスがボタンの外に移動したのを
検出できるようにしとく。検出したらまた普通のボタンを描画。
MouseDownでボタン押下、イベント発動。
サブクラス化しない方法としてこんなのはどう?かなり横着してるけど。
なるほど。それは簡単ですね。 しかしボタン、チェックボックスぐらいは簡単に出来そうですが、 スクロールバーやリストボックス、タブストリップとかになると・・・う〜ん。 まぁ無駄なことはやめとけってことでしょうか・・
空のテキストファイルを作成するにはどうしたらよいのでしょうか? Open "test.txt" For Output As #1 Print #1, Close #1 とやっても、改行コードが含まれたファイルが作成されてしまうのですが・・・
>>477 おお!できました。ありがとうございました。
>>476 てか、Print #の行かかなきゃいいだけじゃ・・・
480 :
デフォルトの名無しさん :02/11/14 01:23
ExcelのVBAで質問です。 条件付書式で文字の色が変更されている状態の色を マクロから取得することってできますか? Cell(x,y).Font.ColorIndex だと、元々の色が取れてしまいます。
質問です。データベースに入ってる複数項目のデータ 1 あああ 123 2 いいいい 212 とかのレコードをVBのリストボックスに格納したら 1あああ123 2いいいい212 となってずれてしまうのですがどうやったら列ごとにずれないで 格納できるのでしょうか?
>>481 どうやって格納してるの?
というか、どの段階のことが聞きたいのかよくわからん・・
文字列の整形? それとも同じ位置になるように空白
入れてるつもりなのにズレるのか?
それなら、MS ゴシックとかの等幅フォントにすれば問題ない。
しかし個人的には、そういう場合にはリストボックスじゃなくて
グリッド系コントロール使うがな。
ちなみに文字列整形のことから聞きたいのであれば、 どこまでやったかソースかなんか出したほうがいいと思われ
やっぱグリッドのほうがいいですかねぇ。 別にテキストボックスにこだわる必要性はないんだけど・・・・ 格納は各項目に当たる変数を作って(上の例なら番号、名前、数みたいな3つ) それをテキストボックスの中で表示してます。
>>484 む
だからそうじゃなくて、空白はちゃんと入れてるの?
”A”と”B”と”C”をただ連結しただけなら
”ABC”になるのはあたりまえでしょ。
”A ”と”B ”と”C”を連結したら
”A BC”になるよね。
そういう風に、ちゃんとそれぞれの文字列の位置が合うように
文字列への空白はしてるつもりなのか?
”A B C”になるんだった。間違い。 ちなみにこういう空白挿入処理自体のやり方が 分からないなら、LenB StrConv String$ あたりを キーワードに検索しる!
みんな、ありがとさんくす。 えらく簡単にできた。
すいません、質問なんですが VBで参照するADO(.NETではなく)タイプライブラリのバージョンによる 違いを説明しているページを教えてもらえないでしょうか? どれを参照すれば最適か調べたいもんで。 よろしくお願いします。
489 :
デフォルトの名無しさん :02/11/14 15:31
はじめまして。 VB6.0でEXCELを使ったプログラムを組んでいます。 EXCELファイルを参照し、中身を編集した後に保存して終了したいのですが、 終了時にQuitメソッドを使うと、事前に保存しても メッセージで”保存しますか”と聞かれてしまいます。 このメッセージを出さないようにすることは出来ないでしょうか。 よろしくお願いします。
>>490 ありがとうございました!
見事に表示されなくなりました。
重ねて質問しても宜しいでしょうか。
EXCELをQUITで終了した後、なぜかプロセスにEXCELが残ってしまい(終了しきれてない?)
保存したファイルが開けなくなってしまいます。
これを回避するにはどうしたらよいでしょうか。
もちろん、オブジェクトの開放(SET objEXCEL = Noting)は行っております。
何度も申し訳ありませんが、よろしくお願いします。
>>491 ちょっと前にそっくりな質問があったが、それとは違うのか?
探してみ
>>492 すいません、同じような質問があったのですね。
確認してみます。
今確認して、同じように書き換えてみたのですがやはりダメでした。 どうしたらよいでしょうか。。。 以下ソースです。(関数名が日本語なのは仕様なので許してください) Fnc_Excel出力 = False Set objexcel = New Excel.Application rsRecordset.ActiveConnection = cnObj rsRecordset.CursorType = adOpenStatic Call rsRecordset.Open(strSQL, cnObj) If Dir(strFileName) = "" Then Open strFileName For Output As #1 Close #1 End If Set xlBook = objexcel.Workbooks.Open(strFileName) Set xlSheet = xlBook.Worksheets(1) xlSheet.Cells(1, 3).Value = strTitle varFiledName = Split(strFiledName, ",") intMax = CInt(UBound(varFiledName)) For i = 0 To intMax xlSheet.Cells(2, i + 1).Value = varFiledName(i) Next xlSheet.Cells(3, 1).CopyFromRecordset rsRecordset xlSheet.SaveAs strFileName Application.DisplayAlerts = False objexcel.Quit Application.DisplayAlerts = True Set xlSheet = Nothing Set xlBook = Nothing Set objexcel = Nothing Set rsRecordset = Nothing Fnc_Excel出力 = True
見づらくてすいません。。。 改行規制で引っかかってしまいまして。
>>494 ざっと見た感じおかしなところはないようだが・・
とりあえず余分なコードを削って、現象が出る
最小限のサンプルを作ることをオススメする。
デバッグ手法の基本だよ。
ほかの人にも提出して確かめてもらいやすいし。
>>496 そうですね。すいません。
ちょっとシンプルにまとめてみます。
Public sub sub_Excel出力() Dim objexcel As Excel.Application 'Excel Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim rsRecordset As New ADODB.Recordset Dim i As Integer Dim varFiledName As Variant '項目名保存 Dim intMax As Integer '項目数カウンタ Set objexcel = New Excel.Application Set xlBook = objexcel.Workbooks.Open("c:\test.xls") Set xlSheet = xlBook.Worksheets(1) rsRecordset.ActiveConnection = cnObj rsRecordset.CursorType = adOpenStatic Call rsRecordset.Open("select * from test", cnObj) xlSheet.Cells(3, 1).CopyFromRecordset rsRecordset xlSheet.SaveAs strFileName Application.DisplayAlerts = False objexcel.Quit Application.DisplayAlerts = True Set xlSheet = Nothing Set xlBook = Nothing Set objexcel = Nothing Set rsRecordset = Nothing End Function
499 :
猿並初心者 :02/11/14 18:03
皆様昨日はおかげさまで助かりました。 私は今日も猿なので本日もよろしくお願いします。 VBSで元金X円、年利Y%、年数Z年をそれぞれテキストボックスに入力し、 複利計算として元利合計を出したいのですが。 さらに元利合計とX、YからのZの求め方や、 さらに元利合計とY、Zからの求め方などもお願いします。
>>499 VBScriptでテキストボックス使えるレベルなら
自分で調べられるはず
> 複利計算として元利合計を出したいのですが。
> さらに元利合計とX、YからのZの求め方や、
> さらに元利合計とY、Zからの求め方などもお願いします。
ていうか激しくスレ違い
VBと全く関係ない
ウザイ
関係ないけどVBSってランタイム無しでも動くの? 何かランタイム無しで動く言語やってたら便利そうなので、 必要なければやってみようかと。
504 :
デフォルトの名無しさん :02/11/14 20:20
frmMainという名のフォームがあり、そこにはリストボックスがあって3種類のテキストファイル名が表示されてるとします。 そしてfrmTextViewというフォームがあり、frmMainのリストから選んだテキストを表示するフォームだとします。 その時、同時に複数のfrmTextViewを開けるようにしたいのですが、どうすればいいでしょうか。 つまりえーと、frmMainのあるテキストをfrmTextViewで開いた上、 更にそのfrmTextViewを開いたまま、また別のテキストを表示する全くおなじfrmTextViewを表示するような。 要するにSDIでありながら、MDIみたいに使える感じにしたいのです。 可能でしょうか。
Newすればいいんでない
あー、こんな感じって事ですか? Dim frmTextView As New frmTextView frmTextView.Show たしかに動いた(複数同じフォームが表示できた)。 けど、これがどういう意味なのか分からない。 MSDN読むか。
宣言段階でNewするの駄目なんじゃなかったっけ。 なんでかすら知らないけど。
dim hoge as frmtextview set hoge = new frmtextview がいいってこと?
うーん、サッパリわからん。
>>503 サンキューっす。
今、MicrosoftのサイトからDLしてインストールしてみました。
これ、今、インストールしたものを実行する端末にもインストールしなくても動くものですか?
あと、これをVB6上で作って拡張子vbsで保存する方法ないっすか?
メソッドとかプルダウンで出た方が作るの早いですし。
>>510 Javaとかやってればわかるんだけどね。
>>511 win2000なら問題ないはずだ。
最初からver5.6(だっけ?)がインストールされている(はず)
win98とかだと、versionが古いから動かない可能性は高い。
後者は知らん。
514 :
デフォルトの名無しさん :02/11/14 21:36
A = Inputbox(msg) 数字を入力してもAはVariant型なので文字列になりまが,数字にするにはどうしたら良いでしょうか。
vbs厨ばっかだな・・・。
なんでわざわざ「厨」をつけて馬鹿にする必要があるのだろう・・・。
517 :
デフォルトの名無しさん :02/11/14 21:47
518 :
デフォルトの名無しさん :02/11/14 21:48
vbsはWin板のWSHスレに逝け
ここでいいじゃん。
つーかなにげにレベル高いぞ>WSHスレ ここで質問している香具師に往かせてもなぁ…
525 :
デフォルトの名無しさん :02/11/14 22:45
おとといVB始めたばっかりですが、今までExcel-VBAを多少。 こんなレベルで質問させて下さい。 ボタンをクリックしたら特定のテキストを、メモ帳なりエディタなり、 とにかくほかのアプリケーションに貼り付けたいのですが…。 ご指導よろしくです。
>>525 clipboard.settext "hoge"
VB使って、フォルダ内のWordファイルの全文検索って無理でしょうか。 Textファイルだと簡単なんですが。
528 :
デフォルトの名無しさん :02/11/14 23:17
>>527 VBでWordを呼び出すなら簡単。
自力でやるならWord文書のフォーマットを調べる。
>>526 申し訳ないです。全く分かっていません。
たとえばbutton1をクリックすると同時に、
メモ帳に"hoge"という文字を貼り付けるには?
Private Sub Button1_Click(ByVal sender ........
の次に何が必要でしょうか。
なにせほかのアプリケーションとのやりとりが全く分からないもので。
>>529 clipboardオブジェクトをヘルプなりGoogleなりで調べろ。
ちなみに、クリップボードにコピーするものであり、自分でペーストしないといけないので注意。
>>529 メモ帳はボタン1をクリックしたときに起動するのか?
>>530 ひとしきり調べたのですが、出てくるのは上でおっしゃっているのと同じ
クリップボードへのコピーばかりで、その点は理解しています。
自分でペーストせずに(もちろんクリップボード経由でもいいですが)
メモ帳に貼り付けられないかということです。
初心者には無理がありますか??
>528 >Word文書のフォーマットを調べる。 それやったらマイクソに訴えられそうな気が。 まあ、ほぼ100%無理だけど。
>>534 ありがとうございます。何とかなりそうです。
>>525 とりあえず、できた。
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Sub Command1_Click()
Dim hwnd As Long, hcwnd As Long
hwnd = FindWindow("notepad", vbNullString)
hcwnd = FindWindowEx(hwnd, 0, "edit", vbNullString)
Clipboard.Clear
Clipboard.SetText "hoge"
Call SendMessage(hcwnd, &H302, 0, 0)
End Sub
どうせなら直接 WM_SETTEXTすればいいのに
>>541 .net 6.0 どちらでも試してました。
しかし助かりました。皆さんありがとうございました。
>>541 .NETだとおもたけど.NET持ってないしー
>>498 めちゃ遅レスだが、原因わかったぞ。
ソース出せと言った手前、答えないとなw
原因は、
>Application.DisplayAlerts = False
>objexcel.Quit
>Application.DisplayAlerts = True
この部分。
Application を objExcel.Application に置き換えてみ。
あと余談だが、「現象が確認できる最小ソース」ってのは
Dim objexcel As Excel.Application 'Excel
Set objexcel = New Excel.Application
objexcel.Visible = True
Application.DisplayAlerts = False
objexcel.Quit
Application.DisplayAlerts = True
Set objexcel = Nothing
こういうのを言うんだ。これでも現象は出せる。
テマヒマを惜しんでいたら、デバッグはできないよ。ほいじゃ。
545 :
デフォルトの名無しさん :02/11/15 09:23
最大化のボタンをクリックした時に Formの大きさをある程度の大きさ以上にしたくないのですが、 Private Sub Form_Resize() Me.Width = 7500 とかすると エラーになっちゃいます。 どうしたら、最大化で サイズを変更できますでしょうか?
>>545 WindowStateで調べて処理を分けるか、めんどくさきゃ
On Error Resume Next でエラーをシカトしてもいいんじゃない?
つか最大化ボタンおしても最大化しないインターフェースって、すっげぇ気持ち悪いよ。
>>545 これでいい?
Private Sub Form_Resize()
If Me.WindowState = vbMaximized Then
Me.WindowState = vbNormal
End If
Me.Width = 750
End Sub
まちがた Private Sub Form_Resize() If Me.WindowState = vbMaximized Then Me.WindowState = vbNormal Me.Width = 7500 End If End Sub
>>551 でもそのインターフェースが糞だってのは
多分全員の意見だぞ。
いや 縦長で、横には 広げられないんだよなぁ。
554 :
デフォルトの名無しさん :02/11/15 09:57
実行プログラムを選択するフォーム上で以下のようにプログラムを指定し: FullExePath = App.Path & "\program1.exe" 中略:選択条件 FullExePath = App.Path & "\program2.exe" 中略:選択条件 FullExePath = App.Path & "\program3.exe" プログラムを実行するフォーム上で以下のように実行すると、ときどき失敗することがあります: RetVal = Shell(FullExePath) If RetVal = 0 Then MsgBox FullExePath & "の実行に失敗しました。" End If 失敗した場合に備えて上記のようなメッセージボックスを指定しておくと、実行に失敗したときには正しいフルパスが表示されます。 なぜ、プログラムの実行に失敗することがあるのでしょうか? 失敗するのは最初に選択して実行したときではなくて、2回目以降選択したときのようです。 Visual Basic Version 6を使用しています。 Windows XP、Windows 98いずれでも同じ状況です。
555 :
デフォルトの名無しさん :02/11/15 10:10
>>554 「プログラムの実行に失敗」って、具体的にはどういう症状が出るんだ?
ただ指定プログラムが起動しないだけ?
それともなんかエラーメッセージが出るの?(あなたのMsgBox以外に、ね)
>>554 On Error でエラーを潰したりしてないか?
Shell の前で On Error Goto 0 をしる。
または、
Shell の前で Err.Clear して、
Shell の後で MsgBox Err.Description をしる。
>>554 どうしてもエラーがわからなかったら、
ShellExecute() API や CreateProcess() + GetLastError() API を試す。
>>554 > 失敗するのは最初に選択して実行したときではなくて、
> 2回目以降選択したときのようです。
「選択」 の意味がわからん。
質問です。VBでSQLつかってデータをもってきてデータグリッドに入れて 表示させたいのですがデータグリッドの設定や使い方がよくわかりません。 (データの入れ方や、それ以前に行や列の設定の仕方も) 教えていただけませんか?
>>562 何がわからないのかわからない。
とりあえずマニュアル嫁にしろ。
フォームにグリッド張り付けて・・・ そこから先がわかりません。マニュアル詳しい説明ないし。 MSDNでもわからず。
>>564 それだけじゃ誰も分かんないって。
グリッド貼り付けて、あなたはどうしたいの?
せめて疑問点をはっきりしろ。
いくら初心者スレとはいえ、使い方を1から全部
教えてくれるほどのお人よしはさすがにいないと思うぞ。
マニュアル読め。
>>564 データグリッドの仕様だけ調べたってどうしようもないでしょ。
SQL (何使ってるか知らないけど) 側の仕様も調べて、データグリッドでできることと
SQL (何使ってるか知らないけど) でできることをすり合わせていかなきゃ。
データグリッドにデータベースからSQLで持ってきたデータを 貼り付けたいのです。ですがサンプルコードなどもなく データグリッドにデータを入れる事すらままなりません。 マニュアルというか与えられた資料には(新VB入門・林晴比古) データグリッドには全く触れていないので役に立ちません。 ということです。
>>569 つーか正規ユーザーならMSDN持ってるだろ。
それ参照しれ。
あと、与えられた参考書に載ってない・・・なんて文句は上司に言えw
ここではそんな個人的な事情言われても、困る。
とにかく 「SQL」 って何なのかはっきりさせてくれないとどうしようもない。
572 :
デフォルトの名無しさん :02/11/15 13:54
>>569 Data Grid は、ADO Data コントロールとセットで使うのが基本。
■データグリッド(DataGrid) ・データグリッド(DataGrid) に Adodc から、データをセットするには、次の ようにする。 実際には、Set DataGrid1.DataSource = Adodc1 はデザイン時に連結する。 あまりコードで連結はしない。 Dim dsn As String Dim sql As String dsn = "dsn=SAK3_ADO;uid=SAK;pwd=SAK" sql = "select * from 受注m order by 受注番号" Adodc1.ConnectionString = dsn Adodc1.RecordSource = sql DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False Set DataGrid1.DataSource = Adodc1 ・連結済みデータグリッド(DataGrid) の表示内容を変更するには、次のよう にする。Adodc1.Refresh しないと、表示は変わらない。 Dim sql As String sql = "select * from 受注m where 品番 like 'a%' order by 受注番号" Adodc1.RecordSource = sql Adodc1.Refresh
575 :
デフォルトの名無しさん :02/11/15 14:48
>>544 545-560のご回答をありがとうございました。
おかげさまでエラーの原因がわかりました。
FullExePath = App.Path & "\program3.exe"
中略
RetVal = Shell(FullExePath)
If RetVal = 0 Then
MsgBox FullExePath & "の実行に失敗しました。"
Else
Set MyObject1 = CreateObject("Scripting.FileSystemObject")
Set MyObject2 = MyObject1.GetFile(SrcPath & "\" & SrcFile)
End If
質問には書かなかったのですが、上記Else以下で実行結果ファイルのコピー先を
指定していました。FullExePathが正常に実行されているときにShellから0以外が
返されるため、ファイルのコピー先が指定されないでエラーとなっていました。
exeファイルが正常に実行されてもShell()から0が返されないことがあるようですね?
> exeファイルが正常に実行されてもShell()から0が返されないことがあるようですね? ・・・え?
>>575 On Error Resume Next 等していたら
> RetVal = Shell(FullExePath)
これが失敗するとRetValへの代入は行われないわけだが。
つまり、呼ぶ前から RetValが初期化されてなければ
いけないのだが、その辺は大丈夫?
いや、575の文章をよく読むと俺の勘違いだわ。 というか一体何を言ってるのかサッパリわからんな。
もう解決済みって言ってると思われ。
580 :
デフォルトの名無しさん :02/11/15 16:42
自分のPCにIIS設定して、Basp21を使ってメールを送ろうとしました。
したら以下のようなエラーメッセージが。
553
[email protected] ... Relay operation rejected to
[email protected] どうやっても直りません。。
なにか解決策ないでしょうか?
アドバイスお願いしますっ!
>>580 そりゃスレ違いだろ。Basp21のスレ(あるのか?)で聞けば?
582 :
デフォルトの名無しさん :02/11/15 17:01
>581 そうですか。。 すみません。。一応ASPでメール送信しようとしているので書き込ませていただきました。
>>582 VB(Script)使ってるのは分かるんだけど、
エラーメッセージ出してるのはBasp21だろうから、
本質的な問題はVBにはないって意味でスレ違いね。
今調べてみたらBasp21の有益なスレはないみたいだが、
ASP系のMLではよく話題を見るので、エラーメッセージを
Googleしてみたら、なんか情報見つかるかもね。
がんがれ!
がんがるほどのことではないが
585 :
デフォルトの名無しさん :02/11/15 20:11
VB6.0から(IEを起動して)以下のようなページを参照する方法について
教えてください。(POSTです)
"
http:// ip address /cgi/login.cgi"
パラメタとしてIDを渡したいです。
技術的にどのような方法がありますか。
サンプルソースなどあれば、教えていただけたら
うれしいです。
よろしくお願いします。
586 :
デフォルトの名無しさん :02/11/15 22:04
>>585 Option Explicit
Public Explorer As SHDocVw.InternetExplorer
----------------
Private Sub Command1_Click()
Set Explorer = New SHDocVw.InternetExplorer
Explorer.Visible = True
Explorer.Navigate "
http://doc "
End Sub
プログラム自体はこんなかんじだが、
その前に参照設定で
shdocvw.dll
を呼び出しておく必要がある。
postについてはjavascriptの出番のような気がする。 (javascriptを埋め込んだドキュメントを上記の方法で開くとか。)
navigateの引数でpost送信すれば?
Private Sub Form_Load() Me.Show End Sub Private Sub Command1_Click() Dim a As Object Set a = New Form1 Load a End Sub のような感じでフォームを再帰的に呼び出したいのですが、 このような使い方をして何か問題はありますか?(スタックオーバーフローは除く) 具体的に言うとオブジェクトレベルで宣言したオラクルセッションの変数が 上手く認識してくれないのですが、理由がわかりません/-;
590 :
デフォルトの名無しさん :02/11/16 05:51
複数起動を禁止して、もう一度実行されそうになったらコマンドライン引数をすでに起動しているほうで取得したいんですが、 どうすればいいでしょうか。 複数起動禁止はApp.PrevInstanceをつかって。 コマンドライン引数の取得はcommand関数で出来たんですが、 もう一つ起動しようとしたときにコマンドライン引数を得る方法が分からないです。 ようするにタブブラウザとかで、すでに起動している状態で URLをコマンドラインに付けて更に起動しようとすると、もう一つ起動したりしないで、 すでに起動しているほうで新しいタブでそのURLが開かれたりしますよね。 あんな感じのインターフェースを作りたいです。
>589 Newキーワードを使ってるって事は新しいインスタンスが生成される訳で、決して再帰している訳ではないのだが。 つぅか上手く認識してくれないって何よ? もう死ぬほど繰り返されてきたことだが、具体的なエラーメッセージや必要と思われるソースを提示すれ。
>>591 どもです。
MSDNとにらめっこして送られてきたDDEコマンドに対しては処理するようには出来ました。
(ファイルタイプの設定でDDE通信の設定してやったらうまいこと動きました)
今度は多重起動されそうになったときにDDEコマンドを自分に対して送るような処理を書けって事ですよね。
>>593 それよか、2重起動禁止はミューテックスでやって
引数は、FindWindowしてSendMessegeしたほうがよくない?
595 :
デフォルトの名無しさん :02/11/16 12:32
USBで、MSCommのシリアル通信と同じようにデータを取り込みたいのですが、 どうすればデータを取り込めますか? 目的はGPSデータの取り込みです。
598 :
デフォルトの名無しさん :02/11/16 16:30
ファイル操作のopenしっぱなしでプログラムを終了させていると不良セクタかなんかできてヤベーって 聞きますが、RecordsetやADOConnectionなんかもCloseせずに終了しちゃったりしたらヤベーのでしょうか。
やばくないよ
>>598 基本的に、Open したものは Close しないとヤバイ。
VB の場合、多くの資源は終了時に勝手に Close されるので問題無いが、
時々終了時に自分の持っている資源 (データベースのコネクションやロック)
を解放してくれない粗悪なコンポーネントが存在するので注意する。
あと、実行しているプログラムがクラッシュすると、かなりの終了時処理が
実行されない。
Close できるものは、できる時にそうしておくべきだ。
>>599 どういう根拠で?
>>601 VBランタイムが自動的に参照をクリアするから
>>598 今時(つーか昔も?)openしたまま終了した程度で不良セクタが出来ることはない。
読み書き中にリセットとか電源を切ったらやばいかもしれんが。
今日からVBを始めたのですが質問させてください。 ボタンを押すと図形が一定の場所に移動する、というプログラムを組んでいるのですが 図形が移動している様子(アニメーションとして)はどうやったら表示できるのでしょうか。 例えば図形を上方へスライドさせたい時、 Do Whileで回して オブジェクト名.Top = オブジェクト名.Top - 1 などとしてもうまく動かないです。何か他にやり方はあるのでしょうか? 超初心者な質問で大変心苦しいのですがどうかご教授願います。
>>607 Refresh?
あと、X 座標と Y 座標を同時に動かすなら Move の方が良い。
Form1のcommand1_clickに Form2.Show:Unload Form1 と書いて、 Form2のCommand1_Clickに Dim tmevent As Long tmevent = timeSetEvent(10, 1, AddressOf TimeProc, 0, 1) Form_QueryUnloadに Load Form1:timeKillEvent tmevent と書き、 標準モジュールに API timeKillEventとtimeSetEventを宣言し Public Function TimeProc(ByVal IDEvent As Long, ByVal uReserved As Long, ByVal dwUser As Long, ByVal dwReserved1 As Long, ByVal dwReserved2 As Long) As Long Unload Form2 End Function と書いて実行するとかならずVBごと落ちるのですが、どこに問題があるのでしょうか? タイミングの問題かと思い、unloadのタイミングを多少変えてみたのですが効果はありませんでした。
>>608-610 ありがとうございました。やっと動きました!
ただまた質問が出てきてしまいました。
タイマーコントロールに条件をつけてプロシージャから抜け出すことは出来ますか?
指定した位置まで図形が達したと同時にタイマーも止めたいのです。
ExitやWhileではうまく止まらなかったのですが、これもまた別の方法があるのでしょうか。
ご指摘あればどうぞよろしくお願いします。
>>611 MSDN に載っていなかっただろうか。(バージョンによってはそうでないかも知れない)
| アプリケーションは、PostMessage、timeGetSystemTime、timeGetTime、timeSetEvent、
| timeKillEvent、midiOutShortMsg、midiOutLongMsg、および OutputDebugString を
| 除いて、コールバック関数の中から、どんなシステム定義された機能も呼ぶべきでは
| ありません。
これに反する事はやってはいけない。
それを守らなければ、何が起こるかわからない。
Unload なんかしたら、DestroyWindow() やら DeleteObject() やら、おびただしい量の
API が呼ばれる。
これらを見切れないようでは、timeSetEvent() を呼んではいけない。
そもそも VB は途方も無く遅いので、高精度タイマを使うのには向いていない。
本当に高精度タイマが必要なのか?
タイマーコントロールが使えないかを検討する事。
なお、コールバック関数が 1 度しか呼ばれない事を期待する場合は、最後の引数に 1
ではなく 0 を指定する。
これにより、timeKillEvent() を呼び出す必要がなくなる。
より良い方法では、マジックナンバーの代わりに TIME_ONESHOT、TIME_PERIODIC 定数
を定義する。
>>613 指定した位置まで図形が達したと判定できた瞬間に、タイマーコントロールの Enabled を
False に設定する。
>>614 速レスありがとうございます!
試したところうまく動きました。本当に助かりました〜。
>>589 > のような感じでフォームを再帰的に呼び出したいのですが、
> このような使い方をして何か問題はありますか?(スタックオーバーフローは除く)
(1) 個別のインスタンスごとのライフサイクル(「寿命」)を意識してきっちり管理しないと
めちゃくちゃなことになる。
(2) ヘタレが小手先の技に走ると、バグの温床となりやすい。
(3) 大半の場合、そのテのテクニックは開発者の自己満足に過ぎず、実用性に欠ける。
(↑これが一番重要)
SetFocusはフォームが画面の一番上に無いと実行できませんでしたが、 あるフォームが画面の一番上にあるかどうかはどうやって取得するのでしょうか。 If 一番上 Then Text1.SetFocus End If とやってみたいです。
GetActiveWindowとか。
>>618 さんありがとうございます
そのキーワードで検索してきます
検索してからレスした方がいいと思った
>>618-621 さん
なるほどお。
GetForegroundWindowいうのもあるんですね。
GetActiveWindowもどちらもよさげですね。
ところで
ユーザのWindowsフォルダが
C:にあったりD:にあったりでこまってます。
ユーザのwindowsフォルダにアクセスするにはどうすればいいでしょうか?
>>622 620は俺だが?
質問の答えはGetWindowsDirectory。ぐぐっても出てくるぞ
質問でつ。WinXP VB6 かなり大きな(300kほど)csvデータを読み込んで それに複数条件で検索をかけ、条件に合うものだけを ListViewに表示する、というものを作っているのですが 何か重いです。多分私の組み方が悪いためだと思うのですが。 ちなみに現時点でのコードは 最初にscvの全データを読み込んで一行ずつ解析し、 配列を組んである変数に各データを格納して 検索時にはその配列内をガーっと検索かけてやって 全部の条件に合う配列番号を取得して、 ListViewにその配列番号のデータを表示しています。 これだと検索は速いのですが、最初の格納にかなり時間がかかります。 どうにかもっと効率的なやり方は無いものでしょうか?
625 :
◆fy3fqyFzv2 :02/11/18 14:20
外部アプリケーションのListViewコントロールの内容を取得したいのですが、 どうすればいいですか? どうもそのListViewはオーナードローのようなので どうやって取得していいのかわからないのです。
>>624 1 行を取り出すには Line Input の方が速かったと思う。
あと、VB を使うのを諦めれば速くなるかも知れない。
VB は大量データの処理に向いていない。
>>624 格納に時間がかかるってのは、もしかして
格納時にListViewをVisible=Falseにしてやればいいって
だけのオチじゃないだろうね?
「どこで時間を食ってるのか」を、憶測じゃなく、実際に
計ってみるのが高速化への第一歩と思われ。
いわゆるボトルネットを探すというやつだ。がんがれ。
VB6で Dim IE As Object Set IE = CreateObject("InternetExplorer.Application") とやると、実行時エラー「オートメーションエラーです」 とでてしまいます。いい方法は無いでしょうか。
>>628 エラーにならないぞ
当方Win2K + IE6 + VB6
>>630 普通に考えたらそうだよね。
でも今時そんなマシン探すほうが難しいような・・
まったくの推測だけど、少なくともIE4以上が
入ってれば上記のソースは問題なさそう。
IE(3.0以上)が入ってなければ 「ActiveXコンポーネントはオブジェクトを作成できません」 というエラーになるはずだよね。 多分 IEは入っていて、本当はCreateObjectの行ではなく その後ろの省略してる行でエラーになってんじゃないの?
じゃあ、628はDQNってことで。
今までいけてたのに、急にそうなったから 何でかな?と思って聞いてみました。 Win98+5.5SP2
ちなみにVBSで Set IE = WScript.CreateObject("InternetExplorer.Application") とやると通ります。。。
>>637 WindowsUpdateをしたらいいかも。つーか、IEの再インストールつーか。
>>636 ボトルメールの.NET対応版・・・って書こうと思ったけど
あまりにもつまらなくてやめにした
>>638 そういうので直るんだったら、VBSのも通らないような・・
628よ、ほんとのほんとに、さっき書いたソース「のみ」を
書いた状態でエラーが出るんだな?
ほかの行でエラーが出てるなんてDQNなオチは勘弁だぞ。
タスクトレイで常駐状態(非表示+最小化)の 場合になるようです…。
>>640 主語が抜けてるが。
「なにが」タスクトレイで・・ なんだ?
自分のアプリ?
>>641 すんません。自アプリです。
右クリックメニューを出してそのメニュー
選択時にその処理をしてます。
>>642 開発環境が1台しかありません。。。
exe化してもう一台でやってみましたが、
やっぱりエラーが出ます。
しつこいようだが、 Dim IE As Object Call MsgBox("1") Set IE = CreateObject("InternetExplorer.Application") Call MsgBox("2") と書いた場合、1が表示されて、2が表示される前にエラーが 出るんだな? 推測じゃなくて、実際に試して報告して欲しい。
タスクトレイのサンプル拾ってきてやってみたけど問題ないよ
>>644 その通りです。2の表示が出る前に
オートメーションエラーが出ました。
普通のフォーム(最小化もせず、
非表示でもない)から同じコードを
流すと、1も2も表示されます。
エラーも出ません。
>>646 うへえ。疑ってすまんかった。
それじゃ俺には原因分からんわ。
ほかの人、よろしこ。
とりあえず自分で解決策を見つけてみます。 考えていただいた方、ありがとうございました。
タスクトレイの処理がおかしいのかな。 どのサンプルから拾ってきたの? それとも全部自作? サブクラス化した? しないやり方?
サブクラス化で思い出したが、 サブクラス化するとVBの停止ボタンで停止できない(押すと不正落ちする)のはなんとかならないの。 これが嫌でサブクラス化を敬遠してしまう。
フォームからフォームを開いて、双方のフォームをタスクバーに表示したいのですが、 プロパティの ShowinTaskbar = True にしても、最初のフォームのみしかタスクバーに表示されません。 双方ともタスクバーに表示するにはどうしたらよいのでしょうか。
>>651 まさか、デザイン時に False に設定してて、それを実行時に True に変えようと
してる?
プロジェクト>プロパティからスタートアップの設定をフォーム1にし、 標準モジュールからフォーム1を呼び出し、フォーム1でオブジェクトとして フォーム2を呼び出しています。 判りづらい説明で申し訳ありません(汗
>>654 だから、再現しないってばさ。
653 についてはどうなの?
ソース抜粋です。
標準モジュール(Module1)
Public Sub Main()
Dim obj As Object
Set obj = Form1
Load obj
obj.Show 1
End Sub
フォーム1(form1 ボタン一つだけのフォーム)
Private Sub Command1_Click()
Dim obj As Object
Set obj = Form2
Load obj
obj.Show 1
Set obj = Nothing
End Sub
>>653 ShowinTaskbarはプロパティウィンドウで変更していますが、やっぱり表示されません…
>>656 モーダルフォームはタスクバーに表示できない。
あと、何でそんな面倒な事やってるの?
obj に代入しなくてもいきなり Form1.Show 1 とかで済むのに。
Load も要らない。
>>657 ありがとうございました。
お手数をおかけして申し訳ありませんでした。
だね。Loadするんならshowじゃなくてvisible=trueにするよね
つーかまあ、モーダルフォームをタスクバーに表示する必要性が感じられないんだが・・・。
>>659 それではモーダルにできめぇ。
661 :
デフォルトの名無しさん :02/11/18 20:45
662 :
デフォルトの名無しさん :02/11/18 21:00
.netでウィンドウズ9Xのアプリケーション作成できるの?
そういや、.netより前のVisual StudioでDOSのアプリケーションって作成出来たっけ?
664 :
デフォルトの名無しさん :02/11/18 21:09
>>623 さんありがとうございす。
>620は俺だが?
書き間違いに今気が付きました。
666 :
デフォルトの名無しさん :02/11/18 21:43
DTPicker以外にも日付の入力が出来るコントロールって標準でありますか? うちの会社の先輩、DTPickerでカレンダーを表示して、 月を変更して他の部分を押しただけで日付が確定されるってことを気にしているんですよ。。 禿げしくどうでもいいことなのに。 もう一つ質問。DTPickerで日付をWクリックした時のみ日付の変更を確定するってことは出来ますか?
667 :
デフォルトの名無しさん :02/11/18 22:37
ExcelVBAでなのですが、 WindowsMediaAudioファイルの 再生時間を取得することってできますか? 何か特別なモノが必要なのでしょうか? よろしくお願いします。
>>667 CurrentPositionプロパティは現在の再生経過時間をあらわしている。
>>624 今どのくらいかかってて、目標がどのくらいとかよくわからないからなんとも言えないけど、
ちなみに Redim は遅いよ。
あと、ListView は Add Set Set ... より Add一発の方が早い。
With を使って無駄な解決を減らすとか。
というか、そもそも
[1] ファイル読み込み [2]配列に格納 [3]配列の全要素を対象に検索条件の判定 [4]表示
よりは
[1] ファイル読み込み [2]検索条件の判定 [3]表示
の方が早いような気がする。。。
>>669 すいません。
現在の再生時間ではなく、
1ファイルの長さです。
例)1:30/5:45の場合、5:45の方です。
よろしくお願いします。
>>671 ファイル全体の時間は
Durationプロパティ
VBScriptで文字列の全角→半角の変換を行いたいのですが、 VBにあるStrConvのような関数が無いようですので、 これは力技で総当り変換のロジックを組むしか無いのでしょうか? ぐぐっていろいろ検索しましたがズバリなページを見つけることが 出来ませんでした。もし何かいい方法がありましたらよろしくお願いします。
>>673 VBで半角に変換するActiveX作って、それを呼び出したら?
>>673 総当り変換関数作ったら公開してください
>>675 総当り関数なんて必要?
>>674 の方法が楽でいいと思うが。
VBランタイム入れたくないとか、理由あるなら別だが。
>>676 >>674 のやり方なら自分でやっても楽だけど
総当り関数は自分で作るのはめんどいから作ってくれっていってるの。
いつか役に立つこともあるかもしれないし。
>>677 なるほど
でもVBScriptで作った総当たり関数なんてクソ重そうだな。
使い道にもよるが・・・
SQL文でカンマをエスケープさせる方法がわからずになやんでいます。 where MOJI='〜,〜'←エラーが出る ,,2こ重ねたり\,としてもダメでした。
>>679 何に対してSQL文を発行してるかも言わずに
答えろというのか。無茶なヤシだな。
Accessのテーブルに対してです。
わかりました。では。
>>672 ありがとうございます。
ところでこの場合必要なものって
WindowsMediaFormatSDKがですか?
自分なりに探しては見たのですが、
いまいち詳しく紹介してるところが見つからなかったので…。
よろしくお願いします。
>>683 こちらはVBAでなくVBを使用していて、
VBの画面から
表示→オブジェクト ブラウザ→MediaPlayer
を選ぶとMediaPlayerコントロールのメソッドやプロパティ一覧が表示された。
これにもあまりくわしくはのってなく、
Durationに関してもわざわざ英語辞書で意味を調べる苦労をしたぐらいだ。
Excelでメディアプレイヤーを使ったことはないのでオレからはこれ以上は何も言えない。
Excel以外でメディアプレイヤーを使ったことがあれば情報を提供できるはずなんだが、 VB厨はよく言語とコンポーネント等をいっしょにして考えるよね。 VBで〜を使うにはどうすればいいですか? みたいに。
687 :
デフォルトの名無しさん :02/11/19 19:16
じゃなんと考えれば良いの?
688 :
デフォルトの名無しさん :02/11/19 23:45
VB6です。 メニューエディタでメニューを作っているのですが、 セパレータ(?)が作れません。 上書き保存(S) 名前をつけて保存(A)... ------------------- ←これ 終了 どうやったら作れるか教えてください。
689 :
デフォルトの名無しさん :02/11/19 23:52
エクセルのVBAについてここできいてもいいでしょうか、っていっても聞くけど。 再描画を行われないようにするにはどうすればいいのでしょうか? データの書き換えが終わるまで再描画を切っておきたいのですが。
693 :
デフォルト名無しさん :02/11/20 02:12
Visual Basic 6 です ビープ音10回鳴らして終了するプログラムってどうやるんですか?
beep beep beep beep beep beep beep beep beep beep end
ヽ(`Д´)ノウワァァン
>>689 Application.ScreenUpdating = False
詳しくは ScreenUpdating でヘルプ
>>696 ありがとうございます。
worksheetやworkbookのメソッドで捜していたから見つからなかったみたいでした。
(゚Д゚)??
島谷タソに強引に迫られてみたい…ハァハァ(´Д`;) 島谷「あのね、今日実はお願いがあるんだ…うふふ…」 漏れ「えっ何?言ってみてよ、ひとぴょん」 島谷「私も男の子がオシッコしてるとこ見てみたいなぁ〜…な〜んてねっ♪クスッ」 漏れ「えっ!?も、漏れの!?」 島谷「ねぇいいでしょ?私オチンチンの先からオシッコ出てるの見ると、何だか『可愛い〜』って思っちゃうの…♪」 漏れ「うん…じゃぁいいよ、ひとぴょん」 ジョボボボ… 島谷「立ってオシッコするのって、何か不思議だね…私、ずっと見てても全然飽きないの…」 漏れ「えっ別に普通だよ…ねぇ、ど、どこ持ってるの?ひとぴょん」 島谷「ここ持ってると、オシッコ通ってるのが物凄くよく分かるね…うふふ…」 漏れ「やめてよひとぴょん…恥ずかしいよ…」 (省略されました・・全てを読むにはここを押してください)
704 :
デフォルトの名無しさん :02/11/20 11:36
RealPlayerで複数のファイルを連続で再生するのに合わせて テキストを表示させたいのですが、できるでしょうか? 1.aaaa.rmの再生と同時にaaaa.txtを表示 2.bbbb.rmの再生と同時にbbbb.txtを表示 . . . という感じです。ヒントだけでもいいので何か教えてください。 shellとGetExitCodeProcessを使おうと思ったのですが、 shellで動かしたRealPlayerが一つのrmを再生し終わっても 終了コードが返ってくるわけではないのでダメでした。
RealPlayerを起動して表示するなら無理です。 自分のウインドウにrmを表示させてやれば再生してるか 終了してるかわかりますよね?
うっさい、ハゲ
× OCX ○ ActiveX コントロール
710 :
すみませんが :02/11/20 13:33
エクセルのVBAなんですが 空のセルを以下のように0という文字で所得しようとするとエラーになります。 If Cells(a, b) = "" Then age(a, x, y, b) = "0" 調べてみても良く分からないので簡単に教えて頂けないでしょうか。
>>709 おなじことやんか。
>>710 前後の状況を説明せずに断片的かつ中途半端な情報だけをまる投げして
他人のリソースで問題を解決しようとする姿勢が間違っています。
ジグソーパズルのピース1、2枚だけで全体の完成イメージを推理しろと
要求するようなものです。
>>711 「同じか、似たようなもん」っていうあいまいな知識はあるんですけど、
コンポーネントのファイルは、dllになってたので。
また見当違いなこといってますかね。
あいまいであれば、調べる事も大切かと。
>>713 ケアレスミスでした。
やっぱりGetPlayStateでいいんだって安心してすぐ発見できましたです。
助かりました。
OnPresentationClosed()
は違うんかぃ
>>716 @自分
>>704 なぜそんなことをしたいのか知らんが、SMILとか使えば解決する問題じゃないのか?
そこにVBがあるから じゃないのでしょうか。
やっぱりだめでした。ケアレスミスはそのとおりだったんですが、根本的に。
Form1.RealAudio1.Source = strRm
Form1.RealAudio1.DoPlay
Do Until Form1.RealAudio1.GetPlayState = 0
Loop
という感じにしたのですが。
>>716 ありがとうございます。
「その中で」っていうと、どういうことでしょう?
>>718 SMILって??
また、あとで来ます。
RealAudio1には OnPlayStateChange(newPlayState) というイベントでてきません? そのイベントの中で、やるのじゃないかなあ OnPresentationClosed() というイベントはファイル終了時に来ないでしょうか? それと、DoPlayの直後ってGetPlayState = 0になってる可能性ありません? Do-Loopの中、DoEventとかないと、停まってしまったりして。 そのまえに、失敗したらエラーか停まったか、状況がわからんと、レスできないような。
ShowOpenでファイルを開くときに、 Text1.Text = CommonDialog1.FileName だったらテキストボックス1に絶対パスでファイル名が入りますが、 これを相対パスでそこのフォルダのファイル名だけを表示させるには どうしたらいいでしょうか?
うっさい、ハゲ
>>722 App.Path を引く。
"..\" を先頭に付加。
>>722 文字の右から取っていって、¥や.や:とかがあったら、そこまで。とか。
訂正 "..\" ↑ ".."の間違い。
>>722 InStr関数やMid関数やLen関数やらを駆使しろ
相対パスが得たいのか?ファイル名が得たいのかどっちだ? 相対パスを得る必要なんてあるのか?
別ドライブにファイルあってApp.Path轢いても。。。
つーか、コモンダイアログってカレントディレクトリ変えるから、その都度 相対パスも変わるべ。 引くなら App.Path じゃなくて CurDir だろ。
ネットワークパスはどーするんだ。
CurDirの文字数とFileNameの文字数ひいて、Right関数で、、、 顧問ダイアログって、複数のファイル選択できたっけ?できたらコレ使えないんだろうけど。
ネットワークパスでおかしくなることありましたっけ?
>>720 SMILっていうのは・・・といいたいとこだが、使っているのを見ただけで俺もよく知らん。
もしかしてなんか間違っているかもしれんので調べてくれ。もはやVBの話題ではないが。
とりあえず、出来ることを適当に書く。もしかしたらプラグインが要るかもしれない。見当ハズレの事を書いていたらごめん。
複数のファイルを連続で再生。↓という内容のファイルを拡張子ram(rmでもいいかも)作り開く。
file://aaa.rm
file://bbb.rm
file://ccc.rm
動画の下に歌詞をつける(動画:aaa.rm 歌詞:aaa.rt) ↓という内容のファイルを拡張子smiで作成
<smi>
<head><layout type="text/smil-basic-layout">
<region id="videoregion" top="0" left="0" width="316" height="236" background-color="#000000" fit="hidden"/>
<region id="textregion" top="237" left="0" width="316" height="25" background-color="#000000" fit="hidden"/>
</layout></head>
<body><seq><par>
<video src="aaa.rm" id="aaa1" region="videoregion" fill="freeze"/>
<textstream src="aaa.rt" id="aaa2" region="textregion" fill="freeze"/>
</par></seq></body>
</smil>
歌詞 ↓という内容のファイルを拡張子rtで作成
<window duration="00:30.0" bgcolor="black" height="25" width="316" type="generic" loop="false" wordwrap="true">
<required><B><CENTER><font size="1" face="Arial" color="#FFFFFF">
<time begin="00:00.00"/><clear/>aaaaa<br/>bbbbb
<time begin="00:10.00"/><clear/>ccccc
<time begin="00:20.00"/><clear/>ddddd
</B></required></CENTER></font>
</window>
>>732 Flags プロパティ に cdlOFNAllowMultiselect をセットすれば複数選択できる。
分解した後のファイル名に対してなら、その方法で逝ける。
ファイル名はスペースで区切られる。
やめてくれ。
vbNullChar とかだったら Split で一発分解できるのに。
スペースでバラバラにしたら、ファイル名の中のスペースまでバラバラなんだろうね(笑)
737 :
デフォルトの名無しさん :02/11/20 17:08
cdlOFNNoLongNames 使ってもいいんだが、いちいちロングネームに変換するのが結局面倒。 コモンダイアログ API は vbNullChar 区切りの名前を返すから、それをそのまま戻して くれればいいのに余計な事しやがる。
すみません、インストーラについての質問なんですが、 複数のプロジェクト(exe)を含めたインストーラって作れるんでしょうか? (そもそもインストーラ自体作ったことがない厨なモンで^^;どなたか親切な方よろしくm(__)m)
>>738 まずVBのバージョンぐらい書け。
VB6のディストリビューションウィザードのことを言ってるなら、
複数のEXEを含めることはできるぞ。
age ちった・・・ ファイルのオープンとセーブのダイアログなら、自分でクラスモジュール書いた方がいいな。 カスタムコントロールも要らなくなるし。
>>741 ウイザード中、GUIでもできますよ。
ファイルを追加するのにEXEをつっこみゃOKでは
できました、できました! 途中にファイルを追加する所があったんですね(^^; あとは、追加するexeの依存ファイルも確実に加えてあげればいいわけですね。 ありがとうございました。
beep * 10 で 10回鳴らすことは可能でしょうか?
できないのでしょうか?BEEPを10回は。 BEEPの音を録音して、編集して10回リピートさせたWAVをつくり、再生<おいおい すなおにWAVを10回ならしてはだめですか。
for i = 0 to 9 beep next じゃだめなの?
>>721 Sub RealAudio1_OnPresentationClosed()
を作ることで解決しました。
(実は「イベント」というのが分からなかった)
>>718 おお!これいいですね。一変にテキストが表示しきれないので、
テキストのスクロールを自動化したいなぁと思っているのですが、
SMILだと、このtime beginってので解決できそうですね。
ちょっと迷うところです。
でも、はじめに欲しかったものができて満足に使ってます。
レスくれた人ありがとうございました。
どういたしまして。<と普通に書いてみる
750 :
デフォルトの名無しさん :02/11/20 21:38
教えてください。 VBAでディレクトリへのパスを取得するダイアログを使うことはできるのでしょうか? できるのなら関数名でいいので教えてください。よろしこ。
>>750 SHBrowseForFolder() API、続けて SHGetPathFromIDList() API を呼ぶ。
初期ディレクトリを設定する場合はコールバック関数が要るのでやや面倒。
>>751 > コールバック関数が要るのでやや面倒。
一度きっちりしたものを作り込んだら、コンポーネント(または共通関数)化
して使い回すのが正解かも?
753 :
デフォルトの名無しさん :02/11/20 22:42
クライアントPCに受信されているメール文書を読み込むことのできるAPIとかクラスってあります? OE、Outlook、Becky、Eudora、Almailといったあたりはみんな受信メールの保存方法が違うから 統一したアクセス手段なんてないのかな? ADOみたいな感じで、メーラが何であるかを意識しないでメール文書を取得できたら最高なんだけど・・・
Datula がリストに挙がっていない・・・
>>753 無理じゃないか?
755 :
デフォルトの名無しさん :02/11/20 22:50
なんか、お馬鹿な質問が多いね、、、 さすがVBすれだ(藁
サーバにメールが云々ならわかるけど、クライアントに取り込んだメールを、 ましてやいろんなメーラのデータを奪うのは無理かと。
作成可能ならすごいウイルスつくれそうだな
>>753 >>756 クライアントに簡易メールサーバを立てれば良いんだけどね。
なんかいいソフト無いかな。
前はLinuxマシンにimapサーバ立ててやってたんだけど今Linuxマシン壊れてて。
>>755 うるさい。ボケ。
とか言ってあげると喜ぶのかな?
>>758 □サーバにメールを残す
にチェックとか?
はい ε ⌒ヘ⌒ヽフ ブヒー ( ( `ω´) ≡3 しーし─J っと。 ↓次の質問ドゾー。
オレってすげーんだがどうしたらよろしいでしょうか?
オレってすげーんだがどうしたらよろしいでしょうか?
どちらかが光の速さに近いスピードで動いてるのでは?
769 :
デフォルトの名無しさん :02/11/21 00:22
グラフを描かせて、カーソルを当てると、要素の情報を表示させたいのですが。 ピクチャボックスに点を打たせるだけじゃムリですよね? 教えてください。
>>769 AutoRedraw を True にしてグラフを書く。
MouseMove で座標を判定してそれに応じて情報を表示する。
771 :
デフォルトの名無しさん :02/11/21 01:22
質問です IEのインスタンス(複数)実行中に、 それらの中から任意のDocumentオブジェクトを参照することは可能ですか? VBSでやろうとしてます。
>>735-737 本気でそんなこと言ってるの?
FlagsプロパティにcdlOFNExplorerフラグついてりゃ、
vbNullChar区切りだって。
何も付加していないデフォルト状態でこのフラグは付いてるし。
∧||∧ ( ⌒ ヽ ∪ 。ノ ∪∪
VBSって、VB6みたいにプロパティなどのヒントが出る、プログラミング環境っつうか、 そういうエディタとか無いでしょうか。 ヘルプも欲しいな。。。素人が始めるにはキツいっす。。。
>>774 VBでプロトタイピングしてから、VBSに書き換える。
(なんか違うような予感・・・)
λ...... ここ変だよ・・ λ...... λ...... λ...... λ...... 失敗だったネ… λ...... λ...... λ...... λ...... 逃げていく… λ...... λ...... λ...... λ...... λ...... λ...... みんな逃げていく… λ...... ここ変だよ・・ λ...... λ...... λ...... λ...... 失敗だったネ… λ...... λ...... λ...... λ...... 逃げていく… λ...... λ...... λ...... λ...... λ...... λ...... みんな逃げていく…
777 :
デフォルトの名無しさん :02/11/21 11:01
ボタンにキーボードショートカットをつけるにはどうしたら良いのでしょうか。 いわゆる、どこにフォーカスがある時でも、Alt+Aでリスト項目を全部選択する、みたいな。 まさか全コントロールのKeyPressに書かないといけないのでしょうか…。
778 :
デフォルトの名無しさん :02/11/21 11:30
Image15.Picture = LoadPicture() などするときにこの「15」の部分をを変数に置き換える方法って あるのでしょうか?情報求ム!
780 :
デフォルトの名無しさん :02/11/21 11:34
>>779 オブジェクト名を変数名と同一にするてこと?
>>778 Controlsプロパティについて調べれ。
>>778 Me.Contorls("Image" & Afo_Na_778_Wa_Itte_Yoshi).Picture = LoadPicture()
783 :
デフォルトの名無しさん :02/11/21 11:40
みたが使い方がいまいちわからん。 説明無さ過ぎ。 object は、「対象」一覧内のいずれかのオブジェクトを指すオブジェクト式です。 解説 コントロール オブジェクトを操作するには、Controls プロパティから取得した参照を使います。 これじゃ初心者にはわからん。
>>783 お前、質問する側ならまず言葉遣いなんとかしたほうがいいぞ。
あと答えは782が書いたのがそのものズバリだ。
785 :
デフォルトの名無しさん :02/11/21 11:43
>>782 アりガトサンクス。ただどこを変えればいいのか教えてください。
786 :
デフォルトの名無しさん :02/11/21 11:44
ここまで書かれて分からないのか・・・・・? 初心者スレとはいえ・・・・・ これはひどすぎる・・・・・
788 :
デフォルトの名無しさん :02/11/21 11:47
Afo_Na_778_Wa_Itte_Yoshi この部分が変数なのかなんなのか みたことの無い人間にはわからないのが普通かと思うんですが・・
>>788 アンダーバーで繋がっているのは一つの単語として認識されるのは分かるよな?
つーことはこれ以外に変数っぽいのは無いだろうが、このバカチンが!!
ヘルプと見比べてみろ。
あと、ヘルプでダメなら、教えてもらったプロパティ名などで
Googleかけるなり機転を効かせられる知能を持て。
人間はいまだ日々進化し続ける生物ですよ?
>>788 常識的に考えて変数に決まっとろーが。
なにかを返す関数の可能性もあるが、
それにしたって文字列と結合してる以上、
何かの文字列を返すものだと推測するのが妥当。
それぐらいも推測できないんだったら、プログラミングは
ちょっと適性がないと言わざるを得ないぞ・・・・
繰り返すが、782が答え「そのものズバリ」だ。
あれ以上を求めるなら、それは完全動作するサンプルをくれってこと、
つまり丸投げをするってことだぞ。
791 :
デフォルトの名無しさん :02/11/21 11:55
(´⊆`)?<788 パシャ パシャ ∧_∧ ( )】 すごい人がいる! . / /┘ 記念に一枚撮っておこう。 ノ ̄ゝ
だいたいImage15のまま使うヤシがいまだに現存するんだなぁ。 不思議。
788さん、ありがとう。 あなたのおかげで、自尊心がかなり回復しますた。
794 :
デフォルトの名無しさん :02/11/21 12:00
すんませんなぁ。まだ扱って2日目なもんでね。 みなさんごりっぱごりっぱ。よほど初めからできたらしい。 教えてくれたことには感謝。
↑こいつ偽物。
これ以上いじくると、こいつ荒らしに変貌するぞ。 もう放置、放置。 次の方どうぞ ↓
797 :
デフォルトの名無しさん :02/11/21 12:03
言い訳キタ━━━━━━(゚∀゚)━━━━━━ !!!!
798 :
デフォルトの名無しさん :02/11/21 12:04
ブチャラティィィィィィィィィィィ!!!!!!!
ええっと、じゃあ、この空気の中申し訳ないです。
>>777 おながいします。
AltじゃなくてCtrlでよければCtrl+Aをメニューに仕込んで非表示
>>799 それってそもそもUI的に変じゃない?
メニューを作って、それにショートカット&望む動作を
割り当てるんじゃダメなのか。
ケコーン
アイーン
なるほど、メニューかぁ。
ありがとうございます。
>>801 例にと思って考えたのですが、確かにおかしかったですね。スマソです。
>>774 Visual InterDev使うとそこそこ入力支援してくれます。
VB6を使うなら 参照設定で「Microsoft Html Object Library」をチェックすると
入力支援やらオブジェクトブラウザやら使えて便利になるんだけど
移植しないといけないです。
ちょっと変えて再質問です。
CreateObject("InternetExplorer.Application") で新しく作ったインスタンスの制御はできるのですが、
既にあるインスタンスの参照を取るにはどうしたらよいのでしょうか?
GetObject() あたりを調べているのですが、クラス名がさっぱしわかりません。
そもそもGetObject()であってますか?
>>777 ボタンのCaptionに"hoge(&A)"って設定するんじゃダメですか?
>>777 もしかして質問の内容は
テキストボックスが画面にたくさんあります。
全ての Changeイベント、KeyPressイベント、、、で共通の処理をやりたいです。
全てのコントロールに同じことを書かなくてよい方法はありませんか?
ってこと?
809 :
デフォルトの名無しさん :02/11/21 17:40
Gridって言うと、MSFlexGridばっかり使っているのですが、 Excelみたいな直接セルに書き込めるGridを最近よく見るので 使いたいのですが、何というGridなのでしょうか。 また、これは昔からあるのですか?
>>808 多分そう。
KeyPreview使うだけなのになぁ、と思いながら
見てた。
名前が…。
813 :
デフォルトの名無しさん :02/11/21 21:24
VB6.0+access98で開発してます。 ADOを使ったレコード単位の排他ロックについて教えてください。 rs.Open時に,adLockPessimisticを指定しても,ロックされません。 rs.Update のところで一瞬ロックされているようです。 あるレコードの編集中は登録またはキャンセルされるまで、 ずっとロックしていたいのです。 他端末からそのレコードにアクセスした際にエラーが返るように したいのです。 上手く出来る方法ありませんか?
Accessを使わないという手はだめですか
815 :
sakura :02/11/21 21:36
皆さんはじめまして。 教えてください。 VB6のプログラムです。 FTPを使ってファイルを送信(ADD)したあとに、 送信元と送信先のファイルのサイズを比較して、 全件送信成功したかどうかを判別したいのですが、 サイズの比較をするようなコマンド(?)が見当たりません。 手順としては、 @送信元ファイルのサイズ取得(このサイズをAとします) A送信先ファイルを受信してサイズ取得(このサイズをBとします) Bファイルを送信(ADD)する C再度、送信先ファイルを受信してサイズ取得(このサイズをB’とします) DB’−B=Aであれば正常終了 このような方法を考えています。 上記以外によい方法はないのでしょうか? よろしくお願いします。 おわり。
FTPを自作してるのかコントロールつかってるのか外部コマンドかわかりませんが、 FTPが成功していればそれを信じてはだめ?
Bファイルをよみこむんなら、Aと足してBに上書きすればいいのでは。
820 :
sakura :02/11/21 22:06
みなさん、お返事ありがとうございます 「インターネットトランスファコントロール」を使ってます。 も一度いうと、VBのプログラム内でサイズの比較をしたいです。 ちなみに、SIZEコマンドは引数はどんなかんじですか?
質問です。WinsockでTCPセッションを張った状態でデータ長を指定して、 送れますか?ループ文にsenddataを繰り返すとどうしても2つ目のデータ の後ろに3つ目のデータがくっつき、またくっつき、、、、、^^; 大変大きいパケットとなり送信してしまいます。 dim data(46) as byte for i = 0 to 10000 winsock1.senddata data doevents 'この後dataの一部を変更 next i 結果:一発目は100byteくらい?・その後はくっつくので1518Byteでとんでく 笑 目標:一発目と同様にデータ長でデータを送信したい
くっつき、、、といわれても、、、 データに区切りようのデータとか、データ長とか、含めてないのでしょうか? socketとはそんなもんです。
>>823 TCP はストリーム。
ストリームを理解しろ。
>824 >825 う〜ん、それはわかるのですが、実現できているソフトも あるのですよ。それはVCで作成しているのですが、VBでも ストリームをうまく扱えないかなぁと思いまして。
>>826 実現できているソフトはどうやって実現できていると判断したのか?
SnifferでTCP1セッションで104Byteで5000発10秒以内に送れていました。 まぁ経路注入ツールなんですけどね
訂正。 Snifferででなく、Snifferは確認するアプリとしてです。
受信側はどうしてんの? 区切りは?
>>828 SendCompleteイベントで送信を確認してから次を送ってはどうでしょう。
効率悪そうだけど。
832 :
デフォルトの名無しさん :02/11/22 11:26
VBでFor文中でCのcontinueのような感じで ある条件の時、For文の頭に戻りたいんだけど goto使うしかないですか?
そうですね
あんまりgoto使いたくないんでif文使って逃げます
>>835
俺は、gotoの方がいいと思うが。
>>837 うむ。制御構造を意図に反した使い方をすべきではないな。
continueとかbreakはどちらかというとgoto寄りだな。
俺はどんなにネストが深くなろうともだんぜんifだな・・・
on error以外でgotoは使いたくない 構造化をみっちり仕込まれたからな
841 :
デフォルトの名無しさん :02/11/22 11:44
HTML + VBScript の質問です。 <Script src="age.vbs" type="text/VBScript"></Script> という方法以外で、別ファイルに定義した関数を呼び出す方法ってありますか?
あやっぱ修正2行で済むんでgoto使います。 ちんぽー
>>842 だな。
適材適所。使った方がより良いのなら使うべき。
って言うかそれ一昔前のgoto理論だな。
ジサクジエン・・・ (・∀・)
>>844 俺もおもた。
なんか古い考えを真に受けちゃってるって感じ。
>>847 非常にシンプルだ。
gotoは死んでも使うな。
そういわれる理由も考えずそれを振り回すだけのバカが最近やたらと多い。と。
ルールは理由があって出来るもんだ。
釣りだろ。gotoだとスパゲッティーソースになるから
どーだこーだとか噛み付いてくるのを待ってる感じ。
そんな論争はスレ違いだし、もう飽き飽きだ。
それより誰か
>>841 に答えてやれ。
漏れは無理だがw
>>849 >そんな論争はスレ違いだし
そうなのか?
VB厨はアルゴリズムとか美しいコードとかは無視してとにかく動くもん納入しろと。
アホなんだから。
ってことか?
>>851 どういう拡大解釈だよ それはw
ここは初心者”質問スレ”だぞ
gotoとifの論争がどうしてもやりたきゃ、よそに
専用スレでも立ててそこで好きなだけやれ
gotoを選択するやつも、If文でどんどん深いネストを作るやつも どっちもcontinue使いたがるやつも、どれもいけていない。 関数化で意味ごとに小分けしろ、アルゴリズムを見直せ。逆転の発想だ。
856 :
デフォルトの名無しさん :02/11/22 13:58
はい、次の質問者の方、どうぞ ↓
gotoは使うべき
858 :
わからねー :02/11/22 15:42
VBからwininet.dllのFtpFindFirstFileを使ってファイルの情報を取ったのですが、 ファイル名の所に”21ニ・17:36 .”ていう値が入ってしまうのです。 欲しいのはファイル名だけ(この場合は”.”)なんですけど、 解決策の分かる方はいらっしゃいませんでしょうか?
>>858 使い方を間違っているんだから、
どういうコード(API宣言、APIで使用している構造体の宣言、その関数を読んでる箇所)を
提示してよね。
>860 既に参考にしてたりします。 というかそれを、そのまま盛り込んだんだけどね。 >859 というわけで、860さんの紹介してくれたサイトのソースで 何処を直すというか教えてくれるとうれしいです。
補足します。860が照会してくださったサイトの Type WIN32_FIND_DATA dwFileAttributes As Long ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime As FILETIME nFileSizeHigh As Long nFileSizeLow As Long dwReserved0 As Long dwReserved1 As Long cFileName As String * MAX_PATH cAlternateFileName As String * 16 End Type の構造体のうち、dwFileAttributes、nFileSizeHigh、nFileSizeLow dwReserved0は正しく取れているようです。
typedef struct _WIN32_FIND_DATA { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD dwReserved0; DWORD dwReserved1; TCHAR cFileName[ MAX_PATH ]; TCHAR cAlternateFileName[ 14 ]; } WIN32_FIND_DATA, *PWIN32_FIND_DATA; 合わせてなおるかどうかわからないけど cAlternateFileName の長さちがうyo
>>863 補足。
VB側は
cAlternateFileName As String * 14
ね
>>862 ていうか今
>>860 のサイトの内容をコピって貼り付けたけど
なんも修正しないで、そのままで動いてるっぽいぞ。
くわしく検証はしてないけど、リストボックスにはファイル名の一覧が表示された。
>>861 > 既に参考にしてたりします。
それを先に言って欲しかった・・・。
ファイル名の取得は、 cFileName と cAlternateFileName のどちらを使用していますか。
ざっと調べた所 cAlternateFileName はファイル名を返さない場合があるという記述を
見つけましたが、その辺が原因ではありませんか。
それと、先にあげたページのサンプルは、私の環境では正常動作しました。
おそらく、組み込むときにエンバグしたんじゃありませんか。
>>863 > cAlternateFileName の長さちがうyo
パディングを考慮してあえて変えてるんだと思うが。
>>867 では、
>>860 のサンプルは動作しますか。
アプリに組み込んだものではなく、そのままコピペで。接続先も変えずに。
ファイル名はcFileNameを使用してます。 組み込みのミスも考えて何度か試したのですけどね・・・ ところで、ちょっと気になることがあったのですが、 ファイル名の前に入っている変な文字って、EUCコードのようなので、 変換してみたところ日と時間なんですよ。 DOSプロンプトからftpで接続して、lsコマンド打ちこんでみると drwxr-xr-x 3 xxxx XXXX 1024 3月 21日 17:36 . と表示されるのですが、どうもこれの21日という所以降を持ってきてしまってるようです。 なんか関係があるのでしょうか? >860さんの所だと、lsコマンドを打った時に drwxr-xr-x 3 xxxx XXXX 1024 Mar 21 17:36 . というように表示されませんか?
>>870 ごちゃごちゃ抜かさずソースコード書け。
867は俺じゃないっすよ。 サンプルのテストは、今ちょっと出来ない状態なので、 後で試してみます。
>871 860のサイトの内容をそのままコピぺしただけなんですけど。 載せた方が良いですか? 長いと思うんだけど。
>>870 私の環境では、後者の形式で表示されます。
そうすると、wininet.dllのバグという可能性も出てきましたね。
後者の形式で返すftpサーバに接続した時の動作はどうですか?
>876 うーん、後者の環境だと、今すぐには試せないです。 もし試せたらここに報告にします。
>>876 >そうすると、wininet.dllのバグという可能性も出てきましたね。
低い。断じてお前のせいだと思われ。
ごちゃごちゃ言ってないで問題のソースコード晒せば? それでどこがおかしいかはっきりする。 まぁ、いきなりDLLのせいにするようなDQNが書くコードだ。ツッコミどころは4つ以上あるに8ラーニングエディション。
>>879 しつこいなー
860のをそのままコピペだって本人が言ってるじゃん。
そこを見ろよ。
>>873 こちらで再現できるだけの情報が欲しいですね。
どこどこのサーバ(出来れば一般に公開されているサーバ)に、このプログラムで接続すると失敗するとい
うような形で。コードについては、完全なコピペなら貼らなくてもいいと思います。
出かけないといけないのそろそろ落ちます。
役に立てなくてスマン。
>>858 1個書き忘れた。
860 のサンプルは FtpFindFirstFile の 戻り値をチェックので、その辺も確認してみてください。
>>878 おっ、俺が悪いの!?
あげ
>>882 878は君と元質問者の858とごっちゃにしている勘違いさん。
しかしまあ、安易に 「wininet.dll のバグ」 と言い出すのはアフォだ。 FTP のリストのフォーマットが規格で決まっていて、wininet.dll がそれを まともに認識できないと言うならそれでもいいが、実際はそうではない。
>>886 そのリンク先のヤシは論外だな。
DLL呼び出しでも文字列の後ろにスペースが埋められると
勘違いしてるか、NULL終端を知らないだけ。
889 :
意味不明@名無し :02/11/22 20:25
教えて下さい! AccessのデータベースをもととしてVB上の画面でグラフを 作成する方法。(ツールがあればツールってどこにあるんですか?) VB上の画面に表があるんですがそこにもAccessのデータを持っていきたいん でその方法も! もしくはVB上の画面の表にデータをもっていき、そのデータからグラフを作 成するんですか?お願いします!
>>889 もう少し落ち着いて文章を書かないと煽りか釣りとみなされてレスつかないよ。
ハンドルそのまんまだな
895 :
意味不明@名無し :02/11/22 20:34
教えて下さい! AccessのデータベースをもととしてVB上の画面でグラフを 作成する方法。(ツールがあればツールってどこにあるんですか?) VB上の画面に表があるんですがそこにもAccessのデータを持っていきたいん でその方法も! もしくはVB上の画面の表にデータをもっていき、そのデータからグラフを作 成するんですか?お願いします!
>>895 もう少し落ち着いて文章を書かないと煽りか釣りとみなされてレスつかないよ。
ハンドルそのまんまだな
899 :
意味不明@名無し :02/11/22 20:43
プログラムも初心者なんですいません。 ていうか調べてるけどわからないっす。 会社の方針?ですべて自学みたいなんで・・・
900 :
意味不明@名無し :02/11/22 20:45
デフォルトっていうかブラックホールじゃん 萌え。
>>899 ここは VB 初心者のスレであって、質問初心者のスレではないから
そこのところ了承してくれ。
>>895 Text1.Text = "グラフ"
表.Text = OpenDatabase("hoge.mdb").OpenRecordset("Table")(0).Value
903 :
意味不明@名無し :02/11/22 20:54
了解!てか質問レベル高かったみたいっすね
905 :
意味不明@名無し :02/11/22 21:01
でもオレの勝ちだろ
意味不明度では勝る者なし
907 :
意味不明@名無し :02/11/22 21:03
負けました。 902のやつはそれっぽいっすね。 ありがと!やってみます
「インターネットで調べてごらん」とか言われたら 最初にすることが2chでスレ立てる奴 全員梱包してどっか別の星に送ってくれ
909 :
意味不明@名無し :02/11/22 21:07
906うるさい!意味不明意味不明 いつか負かしてやる
910 :
意味不明@名無し :02/11/22 21:08
調べて分からなかったからここ来たんじゃん そこまでじゃないっす
winsockで、tcpセッションをはり、1つストリーム送信後、 送信バッファをクリアするまで2つ目なげないっての できますか?教えてください
912 :
意味不明@名無し :02/11/22 21:09
俺まだ童貞なんだよなー
913 :
意味不明@名無し :02/11/22 21:10
ひげのヴぉけ お前の番はまだだろ
914 :
意味不明@名無し :02/11/22 21:12
912、913は荒らし
何で winsock をここで質問するんだよ
916 :
意味不明@名無し :02/11/22 21:23
914はおれじゃないよ
917 :
意味不明@名無し :02/11/22 21:28
915も相手してんなよばか!
質問させていただく。VB6SP5 とあるコンソールアプリケーションに引数を与えて VBから起動したい。 具体的には Checksum.exeに、 C:\Folderを引数に指定して、さらにその結果をファイルに吐かせる。 つまりdos上から Checksum.exe C:\Folder > C:\tmp.txt と打った場合と同じように実行させたいのです。 どうやりゃぁ実装できるんでしょうか。 お願いします。
919 :
デフォルトの名無しさん :02/11/23 00:22
念の為age
パイプってネットワークのソレじゃないよね? 何?
man | more
>>918 面倒だからbatでその処理を書いておいて
そのbatをVBからShellで呼んでやればぁ?
Command 関数で引数よみとって、 hoge.exe -iFilename -oOutName とかするとか
925 :
aaa ◆wSaCDPDEl2 :02/11/23 01:47
VB6 Windows2000 ListViewコントロールを使っていて 今カラムをクリックした時のソート部分作ってたんですけど 数字をソートさせると、左側の数字が大きい方が下にいっちゃって 数字の大小で比較できるソートではなくなってしまいます。 どうやれば独自ソートが出来ますか? それとも他に回避法とかありますか?
926 :
デフォルトの名無しさん :02/11/23 02:13
>>925 文字としてソートされるから、そうなる。
スペースでケタをそろえればオッケー。
927 ( ゚д゚) ポカーン
929 :
デフォルトの名無しさん :02/11/23 04:29
WSHをVBのようにデバッグするには、どうやればよいのでしょうか? スクリプトデバッガって使える?
WSHって何で使うの? せいぜい、Explorer,Excel あたりしかコントロールできないでしょ
WSHで検索したら、 「 Office2000にはMicrosoft Script Editorというツールが付属しているそうで、これを利用するのもいいでしょう。 また、Visual Studio(Visual Basicはこれの一部です)にも同様のエディタが付属しているそうです。」 だそうです。
なんか読んでたら、インタプリタで実行したい気分になったよ。 HyperCardみたい。(W Set WSHShell = WScript.CreateObject("WScript.Shell") WSHShell.Run "C:\Progra~1\Outloo~1\msimn.exe" 'OEを立ち上げる。 WScript.Sleep 5000 '5秒ウェイトを入れ起動を待つ。適宜調整してください。 WSHShell.AppActivate "Express" 'タイトルが"Express"で終わるウィンドウを探し、それを前面に表示させる。 WScript.Sleep 100 WSHShell.SendKeys "^+M" 'Ctrl+Shift+MのキーコードをOutlook Expressのウィンドウに送る。「すべてダウンロード」のショートカットキーです。 WScript.Sleep 100 WSHShell.SendKeys "%Y" 'Alt+Yのキーコードを送る。オンラインに切り替えますか?というダイアログで「はい」を押す操作です。
>>935 朝っぱらから清々しいこと言うなよ・・・。
937 :
デフォルトの名無しさん :02/11/23 11:17
938 :
意味不明@名無し :02/11/23 11:40
構って欲しいのか?
939 :
デフォルトの名無しさん :02/11/23 11:42
おまえらバカじゃないのか?ほんと自分は出来る風ですか? ほんとにバカ、オメーラ、みんな、ネット荒らしとどこが違うんだ!? ほんとな、おまえらはみんな、ここに来る資格ねーな!! デフォルトの名無しさんだっけ!!おまえしね!!人が頼んでるってのに何が あやしいっておまえみたいのがいるから日本がだめになるんだ!! 分かったバーカ!!もう荒らしでも何でもいいよ!! オメーラみたいなバカどもにつき合ってもしかたないから!! あんたらみたいのはもうこのよにもいらない !!
>>939 君をスカウトしたい!
来たれ!自衛隊!
941 :
デフォルトの名無しさん :02/11/23 11:53
Excel VBAスレで返事がもらえなかったのでこちらでも質問します。 Excel VBAで英語の発音練習に使うソフトを作るつもりです。 マイク入力をwavで保存し、更に波形まで表示したいのですが、 どうすれば良いでしょうか。 Windows APIを使うらしいのですが、いまいち分かりません。
942 :
デフォルトの名無しさん :02/11/23 12:02
>>941 具体的に書かないと漠然としすぎて誰にも答えられない。
API関数の呼び出し方がわからないのか、どの関数を使えばいいかわからないのか、
どこまで出来ていてどこでつまずいているのか。
943 :
デフォルトの名無しさん :02/11/23 12:51
質問です。VB.Netにて 以下のクラスA,Bを定義した場合 Dim a As A Dim b As New B() a = b.func1() でクラスAを利用できますよね Public Class A Public Sub New() End Sub End Class Public Class B Public Sub New() End Sub Public Function func1() As A Dim mA As New A() Return mA End Function End Class
>942 どの関数を使えばよいのかが分かりません。 参考になるソースがあればいいのですが。 >944 水野さんとは?
947 :
デフォルトの名無しさん :02/11/23 16:32
例えば、フォームにあるボタン(OkButton)を押すと動くsub(OkButton_Click) に、他のモジュールで宣言した変数を渡すにはどうしたらいいんでしょう?
>>947 (1) INIファイルから読み込む。
(2) レジストリから読み込む。
(3) DBから読み込む。
(4) 大逝変数を使う。
(5) 回線を切って首を吊る。
のいずれか (w
949 :
デフォルトの名無しさん :02/11/23 16:40
950 :
◆SYTcmgF.Zs :02/11/23 20:44
ListViewコントロールで 一番上にスクロールさせる処理はどう書けばいいですかねぇ?
>>950 MsgBox "1番上までスクロールアップしてください。" & vbCrLf & "おながいします。", vbExclamation, "ネタレスすまそ"
Lcaseはラージという意味のLなのになんで大文字を小文字に変換するんですか? 逆だと思うんですけど。 それともラージを小文字に、という意味なんでしょうか。 小文字をラージに、という意味にも取れますし。
> Lcaseはラージという意味 (゚Д゚)ハァ? 逆の動作をする UCase が何で U かを考えてみれ。 さらにその逆が L になる事を考えてみれ。
>>956 みなまで書くなよ・・・
ところで、誰か次スレ立ててくれ。
>>956-958 なるほど〜
ズバリの回答で助かりました。
ポテトのエルとかしか知らないからわかりませんでした。
Uはアンダーだから変換前よりも小さくなるはずだなー とおもってました。
わかりました。 今回は比較級の用語だったのでむずかしかったです。
いいから次スレ立てろ矢(゚д゚)フォルァ!!
966を踏んだ人が次スレたてて、そしてここにそこへのリンクを書き込んでね
978おねがいします。
968と書くつもりだった。 またやっちまった。 969おねがいします。
Form1に Form2.Form_load というステートメントを書いてもエラーがでました。 どこがダメなのでしょうか?
>>971 Private Sub Form2.Form_load()
ってことか?そりゃピリオド入ったら怒られるだろ。
>>972 そうです。
別のフォームのイベントハンドラというか、プロシージャは呼べないみたいです。
Form2の Private Sub Form_load() 〜 End Sub をForm1から呼びたかったんです。
>>975 Subから呼ぶんじゃない。
だいたいForm2のLoadイベント呼ぶ必要あるなら、Form2開けよ。
>>977 Call Form2.Sub Form_load
ってかんじですか?
Call Form2.Command1_Click とかもForm1に書くとエラーでました。
Form2.text1.text="aaa" のようなプロパティ操作はForm1からでもできるけど Form2サブプロシージャはForm1から呼び出せないということで結論にしたいと思います。
なるほど。
>>980 Form2を開きたいなら
Form2.Show
で良いじゃん。
Form2のCommand1_Clickなどは、Form2側でPublic指定していないと予想。
どわって〜 Form_Load以外に Form2.List1_DblClick とか Fom2.text1_Change とかもForm1から呼び出したかったから、Form2.Showを使うわけにはいかなかったんだもん。 Publicを使うというのなら、これからは わざわざ標準モジュールを用意して共通の処理を書かないとかぁ。 それとも今までどおり Form1とForm2でダブっているプログラムがあるのは仕方がないとするか。
ダブってんなら別のサブプロシージャに飛ばせよ。
あるフォームから別のフォームには飛べなかったのだ
984はこのことを言ってるのだとおもうけど、さっき実験してみてこれはできた。 Form2のなかにオリジナルのサブプロシージャを作って、 '-------------- Sub inForm2() Form1.Caption = "bbb" End Sub '-------------- それをForm1から呼び出すことはできた。 '---------------- Private Sub Command3_Click() Form2.inForm2 End Sub '---------------- つまり、VBが自動的に書く Private Sub Command3_Click() 〜 End Sub は別のフォームから呼び出せないが、自分で作ったSubプロシージャは別のフォームから呼び出せる。
だからこれからはいちいち '------------------- Sub myCommand3_Click ステートメントいろいろ End Sub '----------------- Private Sub Command3_Click() myCommand3_Click End Sub '---------------------- のようにイベントハンドラのところからサブプロシージャに飛ばせる方法でプログラミングしていくのがよいかもしれない。 そうすればどのフォームからも再利用可能だ。
971はバカか? すべての関数・変数にはスコープというものがあるんだよ イベントの定義文には Private Sub 〜 とあるだろ。 Private と Public の違いくらい自分で調べてから能書きたれろ。ぼけ
>>988 Sub の中身が他から呼び出せないのはわかるけど、
Subプロシージャ自身も他から呼び出せないのか、と思った。
>>988 BASIC使いにスコープを説くなんて正気の沙汰とは思えない。
>>990 BASIC と Visual Basic の区別がつかないのにこのスレに居るなんて気の沙汰とは思えない。
あ、区別がつかないからスレに居るのか。
>>971 はもう氏ね。
書き込みすぎ。
だいたい質問するにも値しないレベルだ。まず本買え。
結論でたし、なっとくしたからもう書き込まない。
↑馬鹿( ´_ゝ`)
うましか?
\ 馬 / \ 鹿 / ∩ ∩ | つ 「,"| ヾ∧ !,'っ_ ⊂_,! / ・ |ミ / ・ ヽつ (_'... |ミ ▼,__ | (゚Д゚; )..|ミ (゚Д゚ ,)・| (| .、)| (| 、)| | | | ・・| ヽ.._人 ヽ._・ν U"U U"U
カワユイ
998
999
1000。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。