(*´д`*)ハウァッ… VB初心者質問スレ Part16
1 :
エロチカセヴン :
02/10/11 11:15
とりあえず使ってみたがなかなかいい感じ もちろんユーザ登録したぞゴルァ。
5 :
デフォルトの名無しさん :02/10/11 11:36
転職したいんだけどね。 ほとんどVB+ORACLEしか使っていない部署で働く ↓ デスにより、否デスでも精神的に向いてない ↓ この業界から足を洗いたい ↓ 退職を決意し退職 ↓ 他業種を探すがこのご時世なので仕事が無い ↓ 結局この業界の戻る ↓ しかも中途半端な技術+VBしかできないので結局VBの仕事をやらざるをえない。 ↓ 上に戻る てなやつがいっぱいいるとオモワレ この業界の体質を改善しないとVB厨は増えつづけると思うよ。 今後もっとね。
>>5 かわいそうだな。まあ気を落とさずに頑張れよ。
質問。 タブ区切りのString "123 456 789" をIntegerの動的配列に入れ込む関数とかってありますか?
>>7 Split。
Splitの戻り値はStringじゃないと駄目な筈だから
Split使った後Intの配列にでも入れれば?
っていうか このスレちんかすばかりなんでしょ? VB止める前に人生やめたら? ぷ
前スレ897 一寸叩かれ気味ですねぇ。ヘルプ見て分かんなかったらこれ読んでみたら? VisualBasic5.0ブリーフィング 翔泳社 分かりやすく書いてあったと思う(知り合いにあげてしまったのであまり覚えてないです)。
>>1 初心者スレにしてそのコピペか。
荒れる予感
どうせみんなコピペって知ってるしもう既に無視してるよ。 つーか言われるまで気づかなかった。
小数点以下を切り捨てたいのですが、どうすればいいのでしょうか? dim a as long a = 1.9 このとき a は 2 そこで Cintのヘルプは丸めるって書いてあったのをみて。 dim a as long a = cint (1.9) このとき a は 2 むかついたので「切り捨て」をヘルプで検索 VBのヘルプが出てこない。基本的なことだと思うのですが、 ヘルプに切捨てがのってないなんて・・・・。
ググったら一発だぞオイ Dim i As Integer i = Int(1.9) MsgBox i
>>14 >>15 >>16 絶対HELPに乗ってると思ってわざとGoogleしらべなかったんです。ごめんね
しかしこのINT関数FIX関数?ヘルプをどう落ち着いて検索すればかかるのよ。
相変わらずMSDNのできのよさに脱帽しました。
21 :
デフォルトの名無しさん :02/10/11 20:30
コントロールがアクティブかどうかってどうやったら取得できるのでしょうか? ActiveControlプロパティーがそれかな?と思ったけどなんか違うみたいです。
あ、GetFocusした後LostFocusするまでフラグたてておけばいいのか。 もっとスマートな方法はないですよね?
>>23 APIのGetFocus使ったらアクティブなコントロールのhWndが返ってきますた
ActiveControlでいいじゃん。なんでダメなの?
26 :
pop ◆CSZ6G0yP9Q :02/10/11 21:03
.netを刈ったのですがどうやったらActiveXを作れるのでしょうか。 使い方が変わったみたいなのでよくわかりません。 ホームページ、本なども調べたのですが見つかりません。 よろしくお願いします・
28 :
デフォルトの名無しさん :02/10/11 21:11
>>27 顔文字お宅は心でください。お願いします。
>>13 >>18 MSDNで、”切り捨て”でイッパツだったぞ。
MSDNのできのよさ云々を語る前に自分のできのよさを疑えよ。
まあ、それが出来ないからヘルプを見る事もできないんだろうけど。
31 :
デフォルトの名無しさん :02/10/11 22:50
オレももうちょっと薄くならないとな
はげ
34 :
デフォルトの名無しさん :02/10/11 23:56
テキストボックスに入力される文字数を制限する為に 作成したチェック関数の一部なのですが、 10文字以上入力されたら以降を切り取る仕様です。 ただし、10Byte目と11Byte目にまたがって 漢字を入力された場合の処理に困っています。 'Str=テキストボックスに入力された文字列です。 '長さが制限バイト数(10Byte)を越えている場合 If LenB(StrConv(Str, vbFromUnicode)) > 10 Then Str = Trim(StrConv(MidB(StrConv(Str, vbFromUnicode), 1, 10), vbUnicode)) ↑この処理だと漢字の前1Byte(前から数えて10Byte目)に残っている ごみバイトをUnicodeに変換する際、スペースに変換されるので Trimでスペースを省かれ、とりあえずは仕様どおり仕上げることができました。 ですが、漢字の前1ByteのごみをUnicodeに変換する際、StrConv関数が 必ずしもスペースに変換するとは思えないのでどうしても納得行きません。 アドバイスいただけませんか?他にこんな方法がある、とかでも嬉しいです。 長文失礼しました、よろしくお願いします。 なお、実装はAccess97でのVBAなのでなぜだかテキストボックスに MaxLenプロパティがないです。
>34 補足です、言葉が足りませんでした。 漢字がまたがってしまった場合は、 漢字ごと(9Byte)で切り捨てたいです。 上手く説明できているか不安ですが、よろしくお願いします。
36 :
デフォルトの名無しさん :02/10/12 00:00
>>34 アスキーコードなら1バイト目を調べて漢字かどうか判定できる。
10バイト目をみて漢字かどうか調べて幹事のときは早めに予約すればいいのでは?
>>34 文字コード見れば簡単じゃん。シフトJIS調べて味噌
すばやいレスありがとうございます。 とりあえず言われた方向で調べてみます。 また報告に来ますね。 ありがとうございました。
41 :
デフォルトの名無しさん :02/10/12 00:13
34がプロのプログラマーでないことを祈ります。
たぶん社内SE&PGってとこでしょう
言われた方法でいけそうです。 あと、最後の疑問点なんですが、 Windowsでテキストボックスに入力される文字は 全てシフトJIS(MS漢字)コードと思っていいのでしょうか? Unicodeってないですよね? >41 プログラマーの見習いです。 これからがんばります。。
45 :
デフォルトの名無しさん :02/10/12 00:31
>>44 会社の先輩プログラマーに聞けばいいのに。
答えは微妙。少なくとも今やっている取得方だとシフトJISと思ってていい。
選択したディレクトリの中の一時ファイルを一括で消したいのですが 実行すると「パスが違う」と怒られます。助けてください。 -- 以下ソース -- Private Sub Command1_Click() ChDrive Drive1 ChDir Dir1 On Error GoTo Errorhundra Kill "*.tmp" Exit Sub Errorhundra: MsgBox "tmp file was nothing there." End Sub
47 :
デフォルトの名無しさん :02/10/12 00:35
>>46 パスが違うのでは?
デバッガで動かして値を確認してみそ。
> Kill "*.tmp" 何なのこれ?ワイルドカード使えるの?
50 :
デフォルトの名無しさん :02/10/12 00:40
例 Kill 関数を使って、ディスクからファイルを削除するコード例を次に示します。 ' Assume TESTFILE is a file containing some data. Kill("TestFile") ' Delete file. ' Delete all *.TXT files in current directory. Kill("*.TXT") VB.netでは少なくとも使える
あ、使えるんだね。ゴメン。
VB6でも使えるようですよ あとChDrive Drive1は要らないと思われ
54 :
デフォルトの名無しさん :02/10/12 00:44
>>53 いらないけどあっても問題ない。そのせいではない。
>45 実は会社で使いまわしているコードが >34に書かせていただいたやつなのです。 見せていただいて「ほんとにこれでいいの??」っていう 気持ちが消えなくて今日帰宅、書き込みさせていただきました。 まぁ小さな会社ですので仕方ない?などと思っています。
>>53 > あとChDrive Drive1は要らないと思われ
要ります。
57 :
デフォルトの名無しさん :02/10/12 01:07
Visual Basic6.0ランタイムでVisual Basic5.0でつくったものももちろん動く??
>>18 君は泳ぎ方を覚えずにいきなり飛び込み台からダイブするやしか。
>>26 作れないわけではないが、.netでActiveXを何で作りたいの?
.netでそんなあほなことはする意味なし。
ChDriveがあった場合、 Sub Drive1_Change() 内に Dir1=Drive1 が無い場合にエラーを起こす原因になると思います
>>61 それ以前に、
> ChDir Dir1
このディレクトリとは別のドライブが
カレントドライブになっていた場合どうすんの?
あら、ほんとですね、今やってみたら ChDrive入れないとApp.pathでちゃんと ドライブ移動してませんでした。スイマセン
64 :
デフォルトの名無しさん :02/10/12 08:38
MouseMoveイベントって、コントロールからカーソルがはずれると発生しなくなりますが、 カーソルがはずれても発生するようにする方法があった気がするのですが。 たしか1行ぐらいちょっと追加するだけだった気がしますが思い出せません。
SetCaptureのことかな?
66 :
デフォルトの名無しさん :02/10/12 09:00
あ、それですそれ。 APIだかVBの機能だかさえ忘れてました
Byte型配列を結合したいんですけどどうやればいいんですか。 A() = A() & B() とかやってもエラー出ます
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) Private Sub Command1_Click() Dim a(1000) As Byte Dim B(10) As Byte, i For i = 0 To 10 a(i) = i Next i B(0) = 100 CopyMemory a(11), B(0), UBound(B) + 1 End Sub こんな感じ?
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) Private Sub Command1_Click() Dim a(1000) As Byte Dim b(10) As Byte, i For i = 0 To 10 a(i) = i Next i b(0) = 100 CopyMemory a(11), b(0), UBound(b) + 1 End Sub a(11)以降にb()の内容が入ります。 こんな感じ?
ダブっちゃいました。すいません
前スレ897です(w おかげさまでユーザーコントロールでコントロールの作成ができたんですけど、 あと一歩のところで躓いてます カーソルがコントロールの上にあるか調べたいのですが 1.親フォームがコントロールのプロパティーを変更する 2.コントロール内でSetCaptureを使ってどうにかする 3.コントロール内でGetCursorPosを使ってどうにかする どれがよいでしょうか? できたら1はさけたいんですが。 2はやってみたところ、他の同一コントロールとSetCaptureがかぶってしまうようで うまくいかないっぽいです。
失礼しました。。 2のSetCaptureでできました。
フォントプロパティーがどうにもわかんねぇYO!。・゚・(ノД`)・゚・。 Private m_Font as Font Public Property Get Font() As Font 'Font Set Font = m_Font UserControl_Resize 'コントロールを描画 End Property Public Property Set Font(ByVal fFont As Font) Set m_Font = nFont PropertyChanged "Font" End Property Private Sub UserControl_ReadProperties(PropBag As PropertyBag) Set Font = .ReadProperty("Font", Ambient.Font) End Sub Private Sub UserControl_Resize 〜描画〜 End Sub ってな風にしてるんだけど、実行中にFontプロパティーを設定しても反映されない いや、されているんだけど、UserControl_Resizeが実行されてなくて描画されない どこがいけないのかなぁ。
やっぱりダメだ。どうにもわかんない Public Property Get Font() As Font と Public Property Let Font(fFont as Font) だとプロパティー取得時にGetが、設定時にLetが呼び出されるんですよね? Letの代わりにSetにするとなんかどうにもよくわかりません。 ぱっと見Setは一度も呼び出されない感じですが・・ そして設定時にもGetが呼び出されるようだし。 どうなっているのでしょうか?
VB5で8方向スクロールをやってみた。 Bitbltで表画面に描いても、反映されるのは Form1.mainscreen.Refreshするとか Form1.mainscreen.Hide から.Showとかしないと駄目でした。 (mainscreenはPictureBox) とすると、いちいち裏画面に描く必要も無いのでは? と思うが、何かおかしいでしょうか? ちなみにCのスクリプトYaneuraGS2kより2割ほど遅いだけなので捨てがたい。 VC持ってないし。 それからBitBltより高速化したAPIはどっかに無いの?
>>67 ReDim a(10) As Byte
Dim b(20) As Byte
a = CStr(a) & CStr(b)
>>74 Property Setでは、呼び出し元の方にも
Setステートメント付けてる?
>>77 呼び出し元ってプログラムの方でしょうか?
OriginalControl.Font="Arial Black"
ってな感じですが。
>>78 > 呼び出し元ってプログラムの方でしょうか?
そう。
Property Set Font(fFont As Font)
としているなら、呼び出し元は
Set OriginalControl.Font = [Fontオブジェクトへの参照]
ではないの?
それと
>>73 の
> Public Property Set Font(ByVal fFont As Font)
> Set m_Font = nFont
はスペルミスだよね。
そうでもないような。。 他のサンプルを見る限り。 > Public Property Set Font(ByVal fFont As Font) > Set m_Font = fFont こうですね。
> そうでもないような。。 > 他のサンプルを見る限り。 おいおい、何言ってんの?
へ?何言ってるって、そのままですよ。 む、勘違いかな? 呼び出し元=オリジナルコントロールが貼り付けてあるフォーム でOKかな?
>>80 > そうでもないような。。
これは何の話のこと?
>>83 897の脳内に存在するパラレルワールドです
>>83 >Property Set Font(fFont As Font)
>としているなら、呼び出し元は
<Set OriginalControl.Font = [Fontオブジェクトへの参照]
>ではないの?
のこと。
ようやく分かってきた〜!!
プロパティーを変更するとまず
Public Property Get Font() As Font 'Font
Set Font = m_Font
End Property
が呼び出されて、Font=m_Fontがセットされる。
上のプロパティーが実行された後、m_Fontが指定したプロパティーの値になる
ってかんじかなぁ?
Debug.Printで見てたらそんな感じだった。
っていうかもうわけわけがわからなくなりました
>>85 回答に耳を傾けようとせずに1人でオナニー報告なら
ここに書き込む必要はないと思うが。
はっきり言ってウザい。
ようするに /プログラム本体/ Private Sub Command1_Click() OriginalControl.Font="Arial" End Sub /コントロール/ Public Property Get Font() As Font Set Font = m_Font Debug.Print m_Font ' Debug.Print Fontでも同じ?? End Property で、プロパティーに指定した値が表示されればいいんですよ。 上のだと、指定する1個前の値が表示されます。 他のサンプルを見ると上の中に Set hogetext.Font = m_Font ってのが入っていてそこで変更されるのでOKなようです 自分が作っているのはラベルとか使わないで自分で描画するものなので、 この方法は使えないと思うのですが。
画面全体のWidthやHeightからタスクバーの幅を引いた大きさを取得するにはどうすればいいのでしょうか? フォームを全画面表示しないでウィンドウ表示として画面いっぱいにフォームを表示させたいです。
89 :
デフォルトの名無しさん :02/10/12 22:59
タスクバーの幅はデスクトップの幅+αじゃないのか? それとも右か左にタスクバー置いてんのか? まあどっちにしてもタスクバーのウィンドウハンドルを取得してGetWindowRect汁。
聞いてばっかりじゃあれなので・・
>>88 SysInfo OCXってのをつかってもできるようですがまぁAPIを使って
SystemParametersInfo
と引数SPI_GETWORKAREAで取得できるようです。
ありゃ、遅かった ってか3人ともAPIが違う(w
>>89 タスクバーっていっぺんに上下左右すべてにおくことが出来るの知ってるのか?
まぁ正確にはタスクバーといわんかも知れんが。
「フォームサイズ」 縦幅と横幅をあわせて幅と言ってしまってました。 指摘どおり GetSystemMetrics GETWORKAREA を調べてみます。 こちらはavailable.widthのようなかんじなのかな、 と予想してキーワードavailableで探していたのですがそれではなかったみたいです。
>>897 だから79が指摘してるだろ。
> OriginalControl.Font="Arial"
の部分が間違ってるんだよ。
これでもわからん?
お前のコードはFontをセットしてるんじゃなくて
Fontを参照してからそのNameプロパティを設定してるんだよ。
GetWindowRect もやってみます。
>>95 聞く耳を持たないバカなんだから放置しとけ。
>>95 それやるとオブジェクトが必要ですって表示されるんですが。
じゃぁSet Original〜〜じゃなくて
Original〜〜だけでOKにするにはどうしたらよいのでしょう?
>>98 聞いてますよ。
>>99 > それやるとオブジェクトが必要ですって表示されるんですが。
そりゃオブジェクトを指定してないからだろ。
お前がやりたいことは
Fontのセット
フォント名(Font.Name)の指定
このどっちなのよ?
Fontのセットなら多分 Set Original〜〜じゃないと無理。
フォント名の指定だけなら Property Getだけでできる。
>>100 フォントのセットです。
>Fontのセットなら多分 Set Original〜〜じゃないと無理。
これがどうにも意味わからんです。
他のサンプルみるとそんなの使ってないし。
>>101 Property SetでなくProperty Letで宣言すれば
Set無しで代入可能だな。
ただその場合も代入元には文字列でなく
Fontオブジェクトを指定しないといけない。
>>102 ええ。最初はLetでやってたんですけど
デザイン時のプロパティーのフォントの項目って、
コモンダイアログから選択できるようになってるじゃないですか。
Public Property Let Font(fFont as Font)
でやってOrigonalControl.Font〜でやるとオブジェクトが必要ですってでるので
(っていうかオブジェクトについてよく分かっていない)
他のサンプル見るとどれもPublic Property Set Font(fFont as Font)
となっているのでまねしてみたのですが。
あうあう >コモンダイアログから選択できるようになってるじゃないですか。 で、LetじゃなくてSetでやるとそれができるようになりました。
>>104 なんか今イチ意味がわからんけど、
> Public Property Set Font(fFont as Font)
これが普通だと思うし、こう宣言したなら
Set OrigonalControl.Font =
にしろよ。
一体Setの何が不満なの?
サンプルではSetを使ってないと言うならそのサンプルを上げてみ。
そもそもVBなんぞでオブジェクト指向やろうとするから混乱する。 ポインタ知らないと扱える代物じゃない。
>>107 オブジェクト指向とポインタにいったい何の関係が?
ポインタでつまずいたの?
引数付でプログラムの呼び出しって出来ないのでしょうか shell や call では上手くいかないようです。 messege.exe open (openが引数)みたいにやりたいんだけどダメ?
Shellでできます。
サンプルです ’プログラム本体 Private Sub Command1_Click() uctUDText1.Font = "Arial Black" End Sub ’ユーザーコントロール Private pFont As Font 'フォント Private Sub UserControl_Initialize() Set pFont = Text1.Font Text1.Text = 10 End Sub 'プロパティの値を読みこみ Private Sub UserControl_ReadProperties(PropBag As PropertyBag) Set pFont = PropBag.ReadProperty("Font", pFont) Set Text1.Font = pFont End Sub 'プロパティの値を保持 Private Sub UserControl_WriteProperties(PropBag As PropertyBag) PropBag.WriteProperty "Font", pFont End Sub Public Property Get Font() As Font Set Font = pFont End Property Public Property Set Font(mnewFont As Font) Set pFont = mnewFont Set Text1.Font = mnewFont PropertyChanged "Font" End Property これだとばっちりです。 これはTextコントロール上に文字を表示していますが、そうじゃなくて自分で文字列を描画します。 具体的にはText1.textがUserControl.Paintになるかんじです
>>111 だから上で書いたようにそのコードの
> uctUDText1.Font = "Arial Black"
というのはFontをセットしてるわけじゃなくて、
Fontを参照してそのNameプロパティを設定してるだけなんだよ。
> Public Property Set Font(mnewFont As Font)
このプロシージャは全然使われてないんだよ。
あ、全然使われてないこともないな。
>>112 なるほど。ようやく意味が分かりました。
Setの部分はデザインモード用ですね。
で、Textコントロールを使わず、
自分で描画するようにすると1回分遅れて反映するのですが、どうすればよいのか・・
>>114 > Setの部分はデザインモード用ですね。
わかってねーな。
MSDNの”ユーザー コントロールへの Font オブジェクトの追加”読んでみて。
平たく言うとフォント変更時にイベントを発生させるにはstdFontオブジェクトを
WithEvent 付きで宣言する必要があります。
これでFontChangedイベントが発生するようになります。詳しくはMSDNで
ここからは
>>897 の本文からの予想です。
独自のコマンドボタンを作りたいようなので以下を参考にしてみてください。
MSDNとは違いますが。
手法−ユーザコントロールにLabelコントロールを貼り付けFontを変更する。
コントロール名はlblCaptionにします(紛らわしいけど)あとAlignment
を中央揃え.背景を透明にしておきます
つづく
続き Public Property Get Font() As StdFont Set Font = UserControl.lblCaption.Font End Property Public Property Set Font(ByVal vNewValue As StdFont) Set UserControl.lblCaption.Font = vNewValue With UserControl.lblCaption ’ラベルの縦位置を中央に ’念のため空にならないように... .Height = UserControl.TextHeight(UserControl.lblCaption.Caption & "X") .Top = (UserControl.Height - UserControl.lblCaption.Height) / 2 End With PropertyChanged "Font" End Property Private Sub UserControl_Resize() With UserControl.lblCaption ’ラベルの縦位置を中央に ’念のため空にならないように... .Height = UserControl.TextHeight(UserControl.lblCaption.Caption & "X") .Top = (UserControl.Height - UserControl.lblCaption.Height) / 2 .Width = UserControl.Width .Left=0 End With End Sub Private Sub UserControl_WriteProperties(PropBag As PropertyBag) PropBag.WriteProperty "Font", UserControl.lblCaption.Font, Ambient.Font End Sub これならフォントの初期化はラベルコントロールがやってくれます。 かなり偏った予想ですがFontについてはこれでいけるんじゃないんですか? 思いつきなんで自信ないです突っ込み求ム
>>平たく言うとフォント変更時にイベントを発生させるにはstdFontオブジェクトをWithEvent 付きで宣言する必要があります。 おおおこれですこれ!! 続きの部分、わざわざ申し訳ありませんでしたが、使うまでもなくできました。 ありがとうございました。
>続きの部分、わざわざ申し訳ありませんでしたが、使うまでもなくできました。
http://www.oak.dti.ne.jp/~niku/R3_temp.swf?inputStr=%82%BF%82%C6%8E%63%94%4F%81%49 Public Function GetLupin(DT As String)
Dim Buff As String
For i = 1 To Len(DT)
Buff = StrConv(Mid(DT, i, 1), vbFromUnicode)
If LenB(Buff) = 1 Then
GetLupin = GetLupin & "%" & Trim(Hex$(AscB(Buff)))
Else
Buff = Format$(Hex$(AscW(Buff)), "@@@@")
GetLupin = GetLupin & "%" & Right$(Buff, 2)
GetLupin = GetLupin & "%" & Left$(Buff, 2)
End If
Next i
End Function
122 :
デフォルトの名無しさん :02/10/14 16:12
最近VB使ってると、何もしないのに ぽかぽか落ちるのは何故っすか? XPのSP1入れたあたりから異様に落ちやがります。
>>122 VB.NET買えというMSからのメッセージです。
まぁ、状況を詳しくいえないんじゃ解決せんだろな。
VB6で透明レイヤーって作れますか?
>>125 >透明レイヤー
VBユーザは何の前提も無くすぐこういう言葉を使う。
だからDQNだと言われるんだ。
127 :
デフォルトの名無しさん :02/10/14 19:05
>>125 126ではないが言葉の意味を咀嚼して書いて欲しい。
On Error GoTo 0 ってどこ行くの?
>128 On Error Resume Nextを無効にするの
>>129 Sub temp()
1
2
3
End Sub
として、Go Toはプロジージャ(モジュールって言うんだっけ?)内の〜行目に飛ぶ命令としても使えるってこと?
>>130 おっ ありがと
エラー用のコードをぜんぜんかかないから知らなかった
>>131 遙か昔はどこにでも飛んで行けた。ある意味最強の制御構造。
>>133 へぇ 最近のVBじゃ封印されたのか
-----------------------------------
(ヘルプより)
GoTo line
引数 line は必ず指定します。引数 line には、任意の行ラベルまたは行番号を指定します。
------------
ラベルはコロンをつけるやつだけど、行番号とはなんや?
>>134 使えるのか・・・行番号。さすがBASIC
>>135 今頃おもいだしたけど
10
20
30
というやつか。いいねえ。この行番号愛用しよう。
1行目から数えた行の番号だと思う
>>138 1行目って言うと、
Formモジュールの先頭からかあ。
番号重複せずに行番号つかうのもめんどそうだなあ。
確かにプロシージャレベルだと
Command1.10
ってかんじに10行目を指定するはずだものね。
>>138 ↓のことでしょ。
Sub Main()
10 GoTo 30
20 MsgBox "A"
30 MsgBox "B"
End Sub
>>140 とすると、やっぱり
これから実行されるGoToとおなじプロジージャにある行番号
にジャンプできるのか。
構造化、オブジェクト指向文化にドロップキックかますような仕様だなぁ・・・。
10 20 30 ・・・ なんともいえずいい味だしてる。
144 :
デフォルトの名無しさん :02/10/14 23:12
うーん・・・世代交代を感じるなあ・・・ 昔は行番号がいやでいやで、エディタでプログラム書いて あとから番号付けるプログラムに入れてソース作ってたよ。
追加プログラムの挿入がめんどっつい
最初はじめたころ、BASIC=エディタ、デバッガ、環境だったなあ 当時は行番号のないプログラムってのが理解できなかった
RENUM 100
150 :
デフォルトの名無しさん :02/10/14 23:51
>>147 gosubを使う。ラベル張って。
N88BASICの頃だよ。
>>150 うんうん、厨房の頃FORとかWHILEとか使わず全部IFとGOTOでやってたんで。
今考えるとあのときは才能に満ちあふれてたなぁ・・・それが今はどうだ・・・。
ラベルもRENUMもなかったN60BASICが最強かも
153 :
デフォルトの名無しさん :02/10/14 23:59
ROM-BASIC時代を懐かしむご老人方のスクツか、ここは。
VBしらないもん
win95にMDACインストールしようと思って間違ってMDACの後にDCOM for windows95 をインストールしてしまいました。 おかげでMDACが正常にインストールできないんですが誰か直す方法知ってます?
私はMSX-BASICにはまってた素チンです。
ピポッ♪
159 :
デフォルトの名無しさん :02/10/15 11:50
行番号ってさ 最初は 10 ステップで 作るんだけどさ、 デバッグしていったり 機能追加していくと その 10の中を1 ステップずつで やってたりして 苦労したよなぁ。 で、よく 行番号を最初から 振りなおさせたりしてよ、意味ねぇじゃんかってカンジ〜
RENUMするだけじゃん。別にたいしたことではない。
161 :
デフォルトの名無しさん :02/10/15 13:01
改行コードを挿入するにはなんと書いたらいいですか Label1.Caption = Label1.Caption & 改行
vbCrLf
>>162 vbctrl だと思ってた。
vbCrLf か ありがとう
vbNewLineでもいいぞ
>>165 ここまでヒントもらったんだから後は自分でやったら
>>167 ついでにききました。
ありがとうございました。
169 :
デフォルトの名無しさん :02/10/15 22:46
SetCaptureって、ReleaseCaptureせずになんども実行しても問題ない?
170 :
デフォルトの名無しさん :02/10/16 00:14
Dim a as Long Dim b as Long a = &HFFF b = &HA0A0 b = b Or (&H100000 * a) 予定ではこうなるはずが b = &HFFF0A0A0 オーバーフローになります どうすればいいんでしょうか?
171 :
デフォルトの名無しさん :02/10/16 00:21
>>170 Long型整数の取りうる値の範囲を16進表記で調べてみるといい。
>>170 桁そろえて文字列としてくっつけとくとか。
&H100000 * aがLongに収まらないのでアウト。
&H表記はLongの範囲まで。
OrもLongまで。
>>170 あるいは、Byte配列に小分けに入れておいて、バイト単位で論理和を
取るとか。いぜれにせよ、でかい桁は自前で処理。
Docmd.setwarnings false Docmd.Domenultem acFormbar,acEditMenu,8,,acMenuVer70 Docmd.Domenultem acFormbar,acEditMenu,6,,acMenuVer70 Docmd.setwarnings True Docmd.close この部分なのですが、今一なにをやろうとしてるのかが分りません 。Docmd.Domenultemは現在、Docmd.Runcommand に変わっているのは分っている のですが・・・。 それでも今一なにをやろうとしているのかが分りません。 どなたかお願いいたします。
175 :
デフォルトの名無しさん :02/10/16 01:09
ゲ製作技術で回答が無かったのでこっちに来ました。 VBはインタプリタでないのにエミュレータより遅いのは何故? VBのコーディングで何が一番ネックで何に気をつければいいんでしょう? スーファミ時代のアクションゲームくらい出来ませんか?
>>175 エミュレータより遅いってどうやって判断したの?
GDIではなく大半のエミュレータ・ゲームで使用しているDirectXを
使えばVBでも十分早いと思いますが。
50キャラのアニメ処理+スクロールでチラツクから。 DirectXはやった事ないけど、BitBltより速いの?
ダブルバッファって 裏画面描きの事かな? それとも描画をパスする事かな? どっちもやってないけどそれよりもスクロールだけでも遅い。
>>179 もしかしてちらつきの原因は遅いからだと思っている人?
181 :
デフォルトの名無しさん :02/10/16 04:02
VBScriptを使って↓の文字列 <a name="a1"></a><dt><a href="menu:1">1</a> <a name="a2"></a><dt><a href="menu:2">2</a> <a name="a3"></a><dt><a href="menu:3">3</a> を ↓ <dt>1 <dt>2 <dt>3 に変換したいんですが、この場合は正規表現を使わないといけませんか? もしよろしければサンプルコードを書いていただければ助かります。 さすがにReplaceで変換を1000行ベタ打ちするのはアレなんで。(w
>>181 ループとinstr()やmid()を使えばできるだろ
>>181 なにが「(w」だ。なんで赤の他人のおまえにヘラヘラされながら
仕事らしきものを丸投げされにゃいかんのだ?
アフォか。死ね。
>>174 (1) ヘルプという言葉はご存知ですか?
(2) ヘルプの存在意義、使用方法はご存知ですか?
(3) ヘルプの起動方法、キーワードの検索方法はご存知ですか?
>>184 いや、DoMenultemで何をやってるかまでは
ヘルプじゃわかんないんだよね、これが。
その前にスレ違いのような気がするけど。
186 :
デフォルトの名無しさん :02/10/16 09:50
画面&印刷で文字幅を倍とかにしたいんだけど CreateFont の nWidth ってどうやって値を出すの?
187 :
デフォルトの名無しさん :02/10/16 10:14
VBから端末にExcelがインストールされているかどうかを、もっとも簡単にチェックする方法を 教えてもらえませんでしょうか。やっぱレジストリかなんかですか?(あまり知識ないっす…)
>>187 CreateObjectでExcel.Applicationを作成しようとして
エラーになるかどうかで判断できるんじゃないか?
エラー処理で! 簡単っちゃあ簡単ですが、チョトビクリツしました。 どうもです。
>>183 別におまえに聞いてるわけじゃないとおもうが。そこまで腹が立つか?
>>181 でもどんな頼み方でもソース書いてくれっていうやつはむかつく
自分で考えたり、調べたり、自分で書いたソースを試したりする気まったくなしって感じが。
絶対に進化しないからなこういうやつは。
まあ文章からして、かしこくなる気がない雰囲気むんむんだけど
191 :
デフォルトの名無しさん :02/10/16 11:23
>>186 何もしないで 倍幅にする方法
判→半リ
頼→束頁
欠点:できる文字が少ないということ(w
193 :
デフォルトの名無しさん :02/10/16 11:33
倍角は こうか イ立 |口
>>186 GetTextMetricsでフォントの情報取得して、
それのnWidthを倍にしてやればいいんじゃないの?
>>194 tmAveCharWidth で近似値がとれますた
どうもです!
VB6で透明レイヤーって作れますか?
>>196 前スレまで行って前のお前の発言拾ってこようか?
すごいレスついてたぞ。
>>198 VBユーザってどうして前提なしでそういうふざけたこと抜かすかなぁ。
だからDQNっていわれるんだよ
>>198 じゃないがもう少し説明してくれ。
こんな感じ。
>>192 そのVBScriptがわからないおまえははやく死ねwププププププ
ウキャキャキャキャキャ
>>200 いや、特に役にもたたんだろ。あれ。
ある特定のOSの特定のブラウザで動くクライアントサイド言語。
なぜかOS開発元ですら使われていないバッチ用スクリプティング言語。
元となる簡単言語は発売終了。
202 :
デフォルトの名無しさん :02/10/16 16:25
Chmのヘルプファイルをプロジェクトプロパティーのヘルプファイルに登録して、 F1キーで呼び出しをしているのですが、ちゃんと表示されるときとされないときがあります。 さっきはダメだったけどプログラムを再起動したら表示されるなど 一体なぜなのでしょうか??
vbs便利だよ
204 :
デフォルトの名無しさん :02/10/16 17:45
RGBカラーから、それぞれ赤、緑、青の要素をとりたいのですが、 どうすればできますか?
>>204 R ... &HFF And 値
G ... (&HFF00& And 値) \ &H100
B ... (&HFF0000 And 値) \ &H10000
207 :
デフォルトの名無しさん :02/10/16 18:25
ありがと〜。できました
>>207 ここはオマエだけが質問しオマエだけが回答を得ているワケではないのだがな
209 :
デフォルトの名無しさん :02/10/16 18:33
windows2000なんですけど、VB5入れても大丈夫でしょうか? VB6ほか、コンパイラは入っていません。 ネットで検索したのですが、不具合がありようなことが 書いてあったりで心配です。
>209 まぁ普通に考えると大丈夫。 どんなソフトでも大小あれトラブルはつきもの。
ここは本物のVB初心者が集うところなんですね。 津 魔 蘭
>>211 辺でもないんでないかな。
207がありがとだけだったから何のだよ!と208は思ったのだろうきっと。
207が何へのレスは明示的じゃないからな。ま、206へだと思うが。
>>209 MSからサービスパックダウソして入れておいた方が良いよ。
VB5の初期のバグでなんらかの条件で起動できなくなる罠が有ったと思う・・・・(´・ω・`)アレニハマイッタ
>>216 > VB5の初期のバグでなんらかの条件で起動できなくなる罠が有ったと思う・・・・(´・ω・`)アレニハマイッタ
OSのSPもVBのSPも関係ないよ。なるときゃなる。
プロジェクトを置く場所に全角を含むパスをつかっちゃだめなのさ。
予期せぬエラーがでたら
HKEY_CURRENT_USER\Software\Microsoft\Visual Basic\5.0\RecentFiles
ここの日本語パスを含む分の項目を削除すりゃ復活する。
>>217 情報サンコス。当時ネット環境無かったし田舎故に全然情報が無くて、
根性でプログラミングする度ソフトをサイインスコしていた・・・・(´д`;)バカダ
でも確かVBを直接立ち上げないでソースを開けば全角バグも恐くなかった気がする。
>>181 暇だからレス・・ってもう終わったかのぉ・・・
i = 0
Do
i = InStr(i + 1, srcS, "menu:")
If i = 0 Then Exit Do
i = InStr(i + 5, srcS, ">")
If i = 0 Then Exit Do
ii = InStr(i + 1, srcS, "<")
If ii = 0 Then Exit Do
retS = retS & "<dt>" & Mid$(srcS, i + 1, ii - i - 1) & vbCrLf
i = ii
Loop
srcS に突っ込めば retS に出てくる。汚くてみづらいソース(´д`;)スマソ
TAB入れ替えるの忘れてた・・・・(´・ω・`)ヤテマタ
おい!おまいら教えてください! IFの判断文の内容(IF xxxx Then の xxxx 部分)を動的に作成したいのですが、うまい方法はないですか?
>>222 動的にってなに。
テキストボックスかなんかに A=10 AND B=50 とか
入力させてそれを反映させたいってことか?
人に聞くならまずやりたいことを分かるように説明せえよ
>>224 いや、俺も偉そうに言った割には、実現方法は皆目見当つかんのだけどねw
というか、もし俺が例で書いたAだのBだのがソース上の変数名とイコールであれば、
実現は限りなく不可能に近いと思う。
>>222 構文解析すれば良いんだろうけど、結構面倒だよ・・・
>>222 というか、なんでそんな事が必要なのか教えて下さい。
仕様から見直すべきかも。
>>222 Script Controlを使えばできるかも
>>222 サンプル書いてみた。
Dim vbs As Object
Set vbs = CreateObject("MSScriptControl.ScriptControl")
vbs.Language = "VBScript"
vbs.ExecuteStatement "A=2"
Debug.Print vbs.eval("A+2")
Delphiなら簡単!
231 :
デフォルトの名無しさん :02/10/17 20:14
ほ〜。 そんなことが出来るんだ っていうかなんかVBScriptのほうが優れてる点が結構ない? ショートカットの作成もVBScript使えば出来たりするし。 本家がしょぼく感じてしまふ。 その辺はVB.net移行すればOKってことなんかいな?
>>229 Script 便利(;´Д`)ハァハァ
でもOSが古いと動かない罠。まぁ今時そんなマシン余り無いか
233 :
デフォルトの名無しさん :02/10/17 20:25
VisualStudio.netProffesionalのVB.NETでシリアルポートを 利用するためにMSCOMM32.OCXを使いたいのですが、インストールの 方法がわかりません。古いバージョンのものをSYSTEM32ディレクト リにコピーしても「このActiveXコントロールを使用するライセンス がありません」と怒られてしまいます。インストールの仕方を教えて ください。
>>231 > っていうかなんかVBScriptのほうが優れてる点が結構ない?
文字列を「命令」として実行する機能は、モダンなインタプリタ言語なら持っているものも多い。
(極論するとファイルから読んで実行するか、文字列から読むかだけの違いだからね。)
> ショートカットの作成もVBScript使えば出来たりするし。
用途が違うからねぇ...。
そういえば.netではComなんかのレガシーデバイスへのアクセスって拒否されますね APIのCreateFileは使えるみたいだけど。
そのためのP/Invokeじゃろうなあ
>>231 すべてはVBの部品。VBの素晴らしいところは何でも部品になることさ。
>>232 MSCOMM32.ocxがVB6の付属物なので、まずVB6のダミーアプリをインストールするべし。
そうでなけりゃそもそも君はライセンス違反。旧VBが入ってないなんてことはないよな?
>>236 どういう状況?Marshalクラス使えばたいていできるような・・・
>>238 >すべてはVBの部品。VBの素晴らしいところは何でも部品になることさ。
だとすると他言語に勝るモノは何もないことになると思われ。
>>231 一度コンポーネントにすればあとは数行ですむではないか。
それこそOO(良くわからんが)であろう。
>>239 何でも部品にできるというのは素晴らしいと思うが。
社長みたいなもんさ。馬車うまのように働かされている君にはわかるまい。
とか煽って欲しい?
VBScriptの方が後発だからねぇ。 Delphiの方が後発だからねぇ。 とかなんぼでもいいようはある。
VB6のランタイムって MSVBVM60.DLL ってことですか?
>>238 > すべてはVBの部品。VBの素晴らしいところは何でも部品になることさ。
VBで使える部品ならすべて他の言語(C++等)上でも使えるんだから
ちょっと違うと思う。
VBのよいところは、これらの部品を誰でも手軽に利用できる
(利用するための手続きが非常に簡単)ところではないかな。
>>244 > VBのよいところは、これらの部品を誰でも手軽に利用できる
> (利用するための手続きが非常に簡単)ところではないかな。
本当にそうか?
Delphiの方がよっぽど簡単なように思える。
246 :
デフォルトの名無しさん :02/10/18 02:09
VBでDNSからMXレコードだけ抜き出そうとして、 あまりの面倒くささに挫折仕掛けのところです。 リクエストは送って、バイト配列で受け取ることも出来ました。 肝心のホスト名を抜き出すまでが面倒くさくてたまりません。 誰か代わりにやってください。 もしくは、ソースのリンク教えてください。
>>245 本当にそうか?
どっちもたいして変わらないように思える。
Delphi、UIと操作性だけVBにならんかな。 VBに慣れきった漏れにはフォームデザイナとかコードエディタが使い難く過ぎる・・・。
234,238さん、レスありがとうございます。 mscomm32.ocxは書籍についてきたものなのでVB6のライセンスは持っていません。 VisualStudio.netにはシリアルポート制御できるActiveXコントロールは付属して いないのでしょうか。
251 :
デフォルトの名無しさん :02/10/18 11:46
VisualBasic6.0で質問です。 ある計測用プログラムを作っているのですが、その際にPictureボックス内に 例えば6000個のデータで計測データの推移を波形にして表示するようにして います。 これを、Picture1.Line (x1,y1)-(x2,y2)のようにして描画しているのですが、 もうちょっと速く描画できないものかと思っているのですが、全然分かりません。 何か方法はないでしょうか? ヒントでもあったら教えて頂けると助かります。
>>251 Polylineで調べてみ
APIだけど段違いに速くなるぞ
>>252 APIはほとんど使ったことがないので苦手ですが、それ覚えておきます。
ヒント有難う。
>>253 非表示にしたPictureBoxにAPIでLineを描画して全部書き終わったら改めて表示させるとか
>>254 有難うございます。
しかし、APIはほとんど分からないので時間が繋りそうです。
前にも文字列の回転描画(印刷)で、えらく手間取ったし、今でもあのコードは自分
で書いたのによく分からないという・・時々失敗するし(´Д`;)
256 :
デフォルトの名無しさん :02/10/18 14:05
作成したexeをタスクバーの右下のところに常駐させておくにはどうしたらよいのでしょう?
>>256 Delphiならコンポーネントペタッで終了!簡単!
TextボックスのプロパティにEnabledとLockedがありますが機能的に同じものですよね?
261 :
デフォルトの名無しさん :02/10/18 16:29
画像ビューアを作りたいのですが、どうすればええでしょうか? テキストベースならDAO・ADOでやれるのですが、そんな機能が 今の自分の知識の中からは出てきません。 Linerのようなビューア領域を作ることが目標です。 どうかご教授を。
>>257 ヘルプで見れないよぅ。
>>259 Delphiか・・・。勉強してみようかな・・・。
でも今はVBで作ったやつをタスクバーにいれたい。いったいどうすれば・・・
>>260 Enabledでは文字が灰色になっちゃわなかったっけ?
そうしたくないときにLockedを設定するとよいと本で読んだよ。
ほかにも違いありそうだけど。
>>262 そうしたくないときにはLockedですか。
ありがとうございます。
>>264 色で使い分けるのは本来の使い方ではない。
該当するオブジェクトにフォーカスを移したくない時にはEnabledを使うんではないかい。
266 :
デフォルトの名無しさん :02/10/18 18:53
EnabledをFalseにしちゃうと選択もできないでしょ? Lockedは書き換えのみを不可にするんだとおもう
267 :
デフォルトの名無しさん :02/10/18 19:02
明るさを調整したいのですが、 RGBで(50,100,150)だとして、明るさを+10とすると (50+10,100+10,150+10) ではなくて、相対的にやるものなんですよね? PaintShopProの明るさをいじっていたら (100,100,0)でどんどん明るくしていくと(255,255,0)になったあと Bの値も増えていって最終的には(255,255,255)になりました。 どういう処理をしているのでしょうか?
>>265-266 使い分けたいときは使い分けるし、どちらでもいいときはどちらも使ってみます。
>>267 乗算でない?他が255になって0のが残ってたら1ずつ足してくとか
>>267 HSVとかに変換してやってるんじゃないの
PaintShopProのはHSVのを元にしてやってるのかな。 う〜む、難しそう
>>260 EnabledとLocked、機能も違うし、意味も違う。
Enabledは使用不可にする。
Lockedは入力不可にする。ただし・・・
>>266 >Lockedは書き換えのみを不可にするんだとおもう
Shift+Insertでペーストできるので書き換えできちゃうんだけどね。
さらにOSがWin2000の場合だと右クリックメニューの制御が不完全とかあるし。
>>250 ない。gotdotnet.comのどっかで
Rs232.vbってファイルをダウソできるみたい。誰かさん作のCOM用クラス。
273 :
デフォルトの名無しさん :02/10/18 22:30
>>267 よくわからんが
> RGBで(50,100,150)だとして、明るさを+10とすると
> (50+10,100+10,150+10)
> ではなくて、相対的にやるものなんですよね?
といってるのだから結果のRGB値を取得したんだろう?
その値はいくつなの?
274 :
デフォルトの名無しさん :02/10/18 22:49
.netになって落ちこぼれちゃった人ってどれくらいいる? うちの会社だと8割くらいいて 全員戦力外通告が出てるw 1割は非.netの会社へ転職するみたい。 残りは受け皿無しだってさ。
276 :
デフォルトの名無しさん :02/10/18 23:25
>>274 切り捨ての口実のような気がしないでもない。
しかし、さしあたっては仕事に関係ないとしても、
.NETへの適応力は1つの目安にはなる。
これからも開発環境は変わっていくだろうから。
>>274 .netさまさまだな。
糞PGが8割もいるお前の糞会社が少しはまともになれるチャンスじゃんか。
仕事があることが唯一の取り柄だったVB
279 :
デフォルトの名無しさん :02/10/19 00:01
>>256 APIはVBでは標準扱いでは無いみたいなのでMSDNではCで引かないと出てこない。
Public Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type
Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Public Const NIM_ADD = &H0
Public Const NIM_DELETE = &H2
Public Const NIF_ICON = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_TIP = &H4
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_RBUTTONUP = &H205
Public nIcon As NOTIFYICONDATA
280 :
デフォルトの名無しさん :02/10/19 00:03
Sub ADDIcon(pForm As Form, MSG As String) nIcon.cbSize = Len(nIcon) nIcon.hwnd = pForm.hwnd nIcon.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE nIcon.uCallbackMessage = WM_MOUSEMOVE nIcon.hIcon = pForm.Icon nIcon.szTip = MSG & vbNullChar Shell_NotifyIcon NIM_ADD, nIcon End Sub Sub DELIcon(pForm As Form) nIcon.cbSize = Len(nIcon) nIcon.hwnd = pForm.hwnd Shell_NotifyIcon NIM_DELETE, nIcon End Sub フォームに Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Select Case x \ Screen.TwipsPerPixelX Case WM_LBUTTONDBLCLK Me.Show DELIcon Me Case WM_RBUTTONUP PopupMenu Popup_Menu, 2 End Select End Sub
XPにVisual stadio 6.0 インストールしても大丈夫?
>>281 だめな理由をのべよ?
MSのサイトに自社製品のXP対応リストがないわけ無いと思うが。。。
すみません、MSサイトに書いてありました・・・ XPは.NETじゃなきゃだめと思い込んでたんで・・・
284 :
デフォルトの名無しさん :02/10/19 13:17
デフォルトルートと、プライマリDNSの値を取得したいのですが、 やり方があれば教えてください
285 :
デフォルトの名無しさん :02/10/19 13:54
シューティングゲームの当たり判定でAPIのRectInRegionを使いたいのですが、 RECTの使い方がいまいちわかりません。誰かご教授下さい。
>>285 (´-`).。oO(RECTすら自分で調べられないならシューティング諦めた方が・・・)
>>285 RECT データ構造体は、次の形式です。
typedef struct tagRECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
RECT 構造体は、四角形の左上隅と右下隅の座標を定義します。
この無茶苦茶わかりやすい説明のどこが「いまいちわからない」のか...。
(´-`).。oO(VBでシューティングか。ご苦労なこった)
289 :
デフォルトの名無しさん :02/10/19 14:36
284…
>>287 さん
その辺りは調べたんですけど・・・実際どういう風に使えばいいのかがよくわからないんです。
考えろよ( ´,_ゝ`)プッ いやなら BASICでも買えば?
292 :
デフォルトの名無しさん :02/10/19 15:02
>>284 TCP/IPユーティリティのコマンドでわかるんでない?
DNSサーバ−nslookup
ルート−route
それぞれのコマンドでわかると思う。
>>291 考えてもわかんないんです。どーしましょ?
>>292 コマンド使えば読み出せるのはわかってるんですけど、その方法だと、
nslookupが存在しないwin98とかに対応できないんで…
nslookupが内部的にどうやって取得してるかが知りたいです。
説明不足ですみません
296 :
デフォルトの名無しさん :02/10/19 15:08
297 :
デフォルトの名無しさん :02/10/19 15:27
>>295 じゃーwininet.dllのHttpQueryInfo APIとか。
このdllのAPI使えばいいような気もする。
>>297 それってDNSのアドレスとか取れるんでしょうか…
HTTP関係しか無理な気も…
Dependency Walker使ってwininet.dllものぞいてみましたが、
それらしい関数は発見できませんでした。
APIスレに行ってきます
Ruby!
できました。RectInRegionだけじゃだめだったんすね、皆様お騒がせしてスマソ
303 :
デフォルトの名無しさん :02/10/19 16:51
オブジェクト変数への参照が設定されているかどうか 調べる方法ってあるのでしょうか?
If obj Is Nothing Then
305 :
デフォルトの名無しさん :02/10/19 16:54
助けてください データフォームウィザードを使ってアクセスのデータベースに接続したい のですがデータベースファイルを選択するとき、ファイルの名前をいれても 「認識できません」ってでます。私はどうすれば、、、 ソフトはvb6、アスセス2002です
サウンドカードのマイク入力からいれた音の大きさの値を取得したいんですが、さっぱりです。 どなたか教えてくっさい。 VB6です。
誤爆しました。ごめんなさい。
>>306 昨日来ました。と書かないとただのマルチポストだ。
後、何で無視されたのかどうして考えない?
どうすれば?か。その仕事向いてない。やめろ。
今日からVBはじめました。 文字列の代入と比較の記述が同じに見えてなりません、さっぱりです。 どなたか教えてくっさい。 誤爆しました。ごめんなさい。
>>312 (´д`;)・・・・なんか良くワカランが、がんがれ・・・・
本当に何を言ってるかわからん。
>誤爆しました。ごめんなさい。 ここが意味不明
VBって何のためにあるの?
プログラムを組むため
320 :
デフォルトの名無しさん :02/10/20 01:00
DirectDraw7のプライマリサーフェスの作成でつまづいた。 VB5だから駄目なのかな? 定数すら定義してくれん・・・鬱だ。
321 :
デフォルトの名無しさん :02/10/20 01:04
>>320 VBでDirectXなんか使えるわけねーだろ。
ポインタも使えないくせにどうやって使うつもりだ。
322 :
デフォルトの名無しさん :02/10/20 01:07
7から使えるよ。
>>312 =には
"等しくする""等しい"って意味がある。
A=B <-この場合代入
If A=B Then <-等の場合比較
として扱われます。CやJavaなんかでは代入は=比較は==でしたがVBやSQLではどちらも=を使用します。
また、チョット変則ですが
A=(0=0) では変数AにTrue(-1)が入ります。
何はともあれ、がんばってください。
>>326 うわあ。VBの演算子ってきもちわるいですねえ。
Cよりまし。なんで比較が==なんだよ。!=とかあるし。
>>327 まぁ他言語から来たならそうだろうねぇ・・・
時々他言語で条件文の == を = にして無駄に時間を費やすこともしばしば(´д`;)
文字列の比較は eq も使えるよ。
331 :
デフォルトの名無しさん :02/10/20 06:27
cでいうstrtokみたいな関数ってVBにもあるの? VBの文字列ってよくわからないね。
>>331 作れば?まぁ、状態を保持する必要があるからクラスにした方がいいけど。
>>331 文字列がなくて文字の配列でしか表現できない言語よりマシ。
>>333 こうして人をだめにしていく言語か・・・。
無いなら作れよ。と。
336 :
デフォルトの名無しさん :02/10/20 06:52
>>335 VB厨よ。これ以上バカな発言を繰り返すな。
バカな発言って 「VBの文字列ってよくわからないね。」 のことか?
338 :
デフォルトの名無しさん :02/10/20 06:56
strtokって仕様がキモイね。
愚和〜っし!! VB虫の人達は親切でした。蟻が父さんでーす。 =が同じなのは目の錯覚ではなかたのですね、覚えたのれす。 eqというのもあるのですね、これと=では同じ意味なのれしょうか? 参照比較と文字列比較とかの違いはないのれすか、さっぱりです。 これが理解できたらForに学習を移りますのれす。難しそうなのれす。 んじゃーサバラ!
>>339 そだな。実際複数から呼び出すとボロボロになる仕様。
しょしんしゃスレなので知らなくてもワラ割れる筋合いはないのれす。 しょしんしゃスレに煽りにだけ来てるほーが(わるい)のれす。
・初心者 これから学ぼうとしているもの ・素人 何も知らないもの
>>345 ・入門者
これから学ぼうとしているもの
気持ちの問題であって結局は素人。
>初心者と素人は明確に差別されます。 >気持ちの問題であって結局は素人。 いってる事がわからないのれす。さっぱりです。 しょしんしゃorしろうとスレを荒らす事がカコわるいとおもてる かどうかの見解も聞きたいものれす。
初心者かどうかはともかく、 妙な日本語を使うのは質問する相手に失礼じゃないのかね?
>妙な日本語を使うのは質問する相手に失礼じゃないのかね? (藁 とか使っといて 妙な日本語失礼じゃないのかね? 妙な日本語失礼じゃないのかね? 妙な日本語失礼じゃないのかね? プ。 話そらすなよ(麦
>>350 (麦ワラタ。
後、攻撃する相手変わってるぞ(孫
(孫ワラタ(壺
>>331 用途によるけど、デリミタが一種類なら Split() 使うのが吉。
えーと質問です。環境はXP+VB6SP5 とあるByte配列の中身が空っぽであるか調べたいのですが どうやればいいのでしょうか。String型と全然勝手が違って悩んでいます。 String型なら If TempStr = "" Then こう、簡単なんですが・・・。
おっと、age
解決した。 約1.4倍速度UP。こんなもんなのか・・・ちょっとがっかり。
>>357 1.4倍が妥当なのか知らんが、ちゃんとハードウェアアクセラレートは
使用されてるか? エミュレーションモードで動いてたりしないよね。
>>355 動的配列? 静的配列?
動的配列なら、UBoundかなあ?
静的配列なら、初期化時は全部0が入ってると思うよ。
>>359 動的配列だろ。
静的配列なら、初期化時と同じだからと言って空っぽと言う判断するのはどうかと思うよ。
とりあえず、
If UBound(A) < LBound(A) Then
' 空っぽの処理
EndIF
でいいと思う。
Dim A() As Byte If UBound(A) < LBound(A) Then MsgBox "(゚∀゚)" End If アヒャった
↑スマソ ×アヒャった ○エラった
String型のデータの中から 指定した行数目のテキストを抜き出したいのですが こういう場合は自作関数しかないのでしょうか? とりあえず自作のがあるんですけど微妙に動作がおかしいんです。 そんな事しないでも出来る方法、あるんでしょうか? 無いのなら、このソースのどこら辺がマズってのるのか 教えて頂けるでしょうか。
Public Function GetLineX(ByVal Text As String, ByVal LineIndex As Long) As String 'ErrChk "GetLINE" Dim LL As Long Dim NN As Long Dim CRLFpos As Long Dim CRLFpos_ As Long CRLFpos = 0 LL = LineIndex - 1 For NN = 0 To LL '指定行目まで繰り返す CRLFpos_ = CRLFpos CRLFpos = InStr(CRLFpos + 1, Text, vbCrLf) If CRLFpos = 0 Then 'もう改行が見つからない時 If NN = LL Then '指定した行数目だったら GetLineX = Replace(Mid(Text, CRLFpos_ + 2, Len(Text) - CRLFpos_ - 1), vbCrLf, ""): Exit Function Else GetLineX = Replace(Mid(Text, CRLFpos_ + 2, Len(Text) - CRLFpos_ - 1), vbCrLf, ""): Exit Function End If End If Next NN If LL = 0 Then '1行目が指定されていた場合 GetLineX = Replace(Mid(Text, 1, CRLFpos - 1), vbCrLf, "") Else GetLineX = Replace(Mid(Text, CRLFpos_ + 2, CRLFpos - CRLFpos_ - 1), vbCrLf, "") End If End Function
うわぁ激しく半角スペース削られた・・・ Public Function GetLineX(ByVal Text As String, ByVal LineIndex As Long) As String 'ErrChk "GetLINE" Dim LL As Long Dim NN As Long Dim CRLFpos As Long Dim CRLFpos_ As Long CRLFpos = 0 LL = LineIndex - 1 For NN = 0 To LL '指定行目まで繰り返す CRLFpos_ = CRLFpos CRLFpos = InStr(CRLFpos + 1, Text, vbCrLf) If CRLFpos = 0 Then 'もう改行が見つからない時 If NN = LL Then '指定した行数目だったら GetLineX = Replace(Mid(Text, CRLFpos_ + 2, Len(Text) - CRLFpos_ - 1), vbCrLf, ""): Exit Function Else GetLineX = Replace(Mid(Text, CRLFpos_ + 2, Len(Text) - CRLFpos_ - 1), vbCrLf, ""): Exit Function End If End If Next NN If LL = 0 Then '1行目が指定されていた場合 GetLineX = Replace(Mid(Text, 1, CRLFpos - 1), vbCrLf, "") Else GetLineX = Replace(Mid(Text, CRLFpos_ + 2, CRLFpos - CRLFpos_ - 1), vbCrLf, "") End If End Function
>>367 実行時エラー '9': インデックスが有効範囲にありません。
てな感じでエラーが出マスタ。まぁ一度も領域指定してないから当たり前だけど・・・
>>364 Split(text,vbCrLf)(lineindex)
>>364 Public Function GetLineXX(ByVal srcS As String, LineIndex As Long) As String
Dim L&, LL&, LineCount&
LL = 1
srcS = srcS & vbCrLf
For LineCount = 1 To LineIndex
L = InStr(LL, srcS, vbCrLf)
If L = 0 Then Exit For
If LineCount = LineIndex Then
GetLineXX = Mid(srcS, LL, L - LL)
Exit Function
End If
LL = L + 2
Next
GetLineXX = ""
End Function
とか
>>368 俺も気になったが、Dim A() As Byte の直後に A = "" としとけば大丈夫。(ちなみに、UBound(A) = -1, LBound(A) = 0 になる。)
逆に、
>>355 が未使用の状況まで知りたいと言うなら、エラートラップするしかないと思う。
>>371 > 逆に、
>>355 が未使用の状況まで知りたいと言うなら、
動的配列だったら普通はこっちだと思うが。
>>371 まぁポインタ見れば良いんだろうけどね。
If StrPtr(A) = 0 Then
MsgBox "(゚∀゚)"
End If
隠し関数は余り使わない方が良いんだろうけど、漏れはこうやってる(´д`)もっと良い方法キボーン
そもそも、
>>355 の「配列が空」ってのがどういう意味なのかが良くワカランです
>>358 はぅあ!!エミュレーション?
HALだかHELだかって奴ですか・・・
よくわからんがBLTFASTの方を使ってるんで。
ノートだから余計なハードは無いと思う。
375 :
デフォルトの名無しさん :02/10/20 20:03
>>373 余計なお世話的説明補足。
結果的にそれで判定できてるみたいだけど、なんか勘違いというか「ん〜」てなとこがあるので。
Byte配列と文字列は相互に変換できる。StrPtrの引数は文字列なのでByte配列が文字列に変換される。
そのときByte配列が空だと(空文字ではなく)vbNullStringに変換される。そのためStrPtrで判断できる。
ちなみにvbNullString=""はTrueなのでIf CStr(a) = "" Thenでも判定できる。
378 :
デフォルトの名無しさん :02/10/21 00:05
VisualBasicのラベルに立方センチメートルのような上付きの表示を 出したいんですが、できますか?
超初心者なんだけど誰か優しく教えてくれる人いる???
380 :
デフォルトの名無しさん :02/10/21 00:13
BMPファイルの任意点のRGB値を10進数で抜き出したいです. んで,たとえばR値の入ってるアドレスを バイナリ形式で読み取って文字列として格納. それをAscで10進数に変換できるのかな? と思ってやってみたんですが,R値が小さいときにはできてるけど, 大きくなると負の値が戻ってくる.どうしてでしょう? 本気初心者なんで,見当違いのことしてるかもしれませんが ヒントでも関連ページでもなんでもいいので,お願いします.
>>374 ちょっとまて。
それすら知らないでDirectXで性能が出ないなんてほざいてるのか?
糞とはいえあまりにもDirectXとカードメーカーが不憫だ。
>>380 通常、嫌でも10進表現になると思われ。
>>381 そもそもVBでDirectXの時点で間違ってる。
Dim stDocName As String Dim stLinkCriteria As String (略) DoCmd.OpenForm stDocName, , , stLinkCriteria ・・・・上の構文を良く見かけるんだけど、stdocname,stLinkCriteria 自体に何か意味があるんでしょうか?必ずこの文字を使わなければ いけないんですか???初心者ですみません。
>>382 そっか.通常はなりますか.
とりあえず方向性は間違ってないってことがわかっただけでも
助かりますた.ありがとうございます.
なんか,他の要因探ってみま〜す.
>>380 「バイナリ形式で読み取って文字列として格納」ってあたりが怪しい。
どうやって読み込んでいるのかわからんけど(まぁ想像はできるが)、
文字列で読み込むときに2バイト分よみこまれてるんじゃないかな。
「1バイト」を読み込んでいるつもりだろうけど、
「1文字」が読み込まれてるように思える。
1バイト目が漢字コードなどの1バイト目だと、
次のバイトも読み込まれて「1文字」が読み込まれるよ。(仕様)
漢字の文字列にAscするとシフトJISコードが帰ってくるけど、
シフトJISってのは&H8000以上だから
負の数がかえってきているんだと思う。(この辺はわかるよね?)
そもそも文字列にして格納する必要がないと思うけど?
Byte型の変数でゲットすれば普通に求められると思うぞ。
387 :
デフォルトの名無しさん :02/10/21 00:34
ピクチャボックスに書いた線等が保存するときにはなくなってるのですが、 どうすればいいでしょうか?
388 :
デフォルトの名無しさん :02/10/21 00:38
>>387 Picture1.Pictureではなく、Picture1.Imageを指定する
>>383 まぁ禿同だけど、VB厨にも夢をみせてやれ。
390 :
デフォルトの名無しさん :02/10/21 00:42
>>386 >そもそも文字列にして格納する必要がないと思うけど?
>Byte型の変数でゲットすれば普通に求められると思うぞ。
あれま.そんなんできるんだ.
てか,それでできました.すげぇ.別にすごくないんだろけど.
おかげさまでここ何日かの悩みが解決しますた.
いや,まぢで何日も悩んでたんですよ.ほんまありがとうございました.
391 :
デフォルトの名無しさん :02/10/21 00:48
388さん ありがとです。 あとautoredrawがfalseになってましたw
392 :
デフォルトの名無しさん :02/10/21 00:50
>>384 必ずしもその変数名である必要はないはずです。
おそらくヘルプのサンプルにそう書いてあったので、
みんなコピペしたのだと思います。
ちなみにうちの会社では、Callが無い点と、
String型の変数の前置詞がstだという点で不許可です。
393様!!!!!!!!! どうもありがとう!!!!!!!!!!!! さらに質問してもいい?
>>393 なんのキーワードで探すとヘルプでみれますか??
わりこんでしまって、もうしわけありませんが質門いいでしょか、 sub main()内で wininet.dllを使用してFTPをしようとしたところ、 FTPの処理はうまくいくのですが、すべての処理の 終了後にVBが終了しなくなってしました。 これは、何か開放できないインスタンスが悪さでもしてるのでしょか。 どなたかなにか、ヒントを教えていただけないでしょうか。 お願いします。 環境は、Windows2000 ,Visual Basic6.0です。
>>395 だからOpenFormメソッドの[使用例]で、
と思ってみてみたら
> DoCmd.OpenForm "社員", , ,"氏名 = '山田 一郎'"
日本語だった。
まあ、気にすんな。
>>389 VBでDirectX使えるんだから夢ってほどのことでもないでしょ。
すみません自己解決できました、 ルータの設定変えたら直りました。 ご迷惑おかけしました。
>>399 ルータの設定で直るわけ無いだろ。どっかにバグがある。
>>400 でも、本当にルータの設定で直ってしまいました。
バグはあるかもしれませが、環境に依存するとヤツだと思いますので、
いろいろ試してみて、なんとか調べ上げようと思います。
レスありがとうございました。
>>401 直ったんじゃなくルータが正しく設定された状態でのみ正しく動くだけだろ。
なぜルータが正しくないときは終了しないのか原因を究明しろよ。
>>402 それを調べると
>>401 で書いたつもりですが、言葉がたりませんでした。
申し訳ありません。
405 :
デフォルトの名無しさん :02/10/21 07:40
動的配列に要素が一件も入っていないことを確かめるにはどうしたら いいのでしょうか? 今は、配列に入れた数をカウントする関数を使っているのですが、 無駄な変数を増やしているような気がしてなりません。
>>405 こういうことか?
Private Declare Function SafeArrayGetDim Lib "oleaut32" (psa() As Any) As Long
Private Sub Command1_Click()
Dim a() As Long
If SafeArrayGetDim(a) = 0 Then MsgBox "ないよ" Else MsgBox "あるよ"
End Sub
407 :
デフォルトの名無しさん :02/10/21 08:04
>>406 そういうことでございますた。
ありがとうございます。
oleaut32っていうのは標準に入っているdllですか?
>>406 おいおい、嘘を教えるな。
APIを使うなら自分が理解してから使え。
>>407 406は結果オーライになってるだけだ。
素直にエラートラップを使って判定しろ。
409 :
デフォルトの名無しさん :02/10/21 10:11
ListBoxで 画面上に表示されているリストの一番上のindexは、 どうやって取得したらいいのか教えてください。 ListBoxで スクロールさせたとき、上に表示されているアイテムのindexを 取得したいんです。
410 :
デフォルトの名無しさん :02/10/21 10:37
411 :
デフォルトの名無しさん :02/10/21 10:41
>>405 動的配列に要素を入れるときに、
lngCnt = lngCnt + 1
とし、単純にカウントするのが一番だ。
>>411 俺も。
UBoundとか使ってトリッキーに(ってほどでもないか・・・)処理してると、
思わぬ落とし穴があったりする。
シンプル・イズ・ベストってやつだね
413 :
デフォルトの名無しさん :02/10/21 10:49
ListBOXで ホイールのイベントを取得するには どうしたらいいのでしょうか?
WebBrowserコントロールに表示したページをクリップボードへコピーしたいのですが できますでしょうか? 通常のWebブラウザで表示した画面をPrintScreenでコピーすると 入りきらない部分がスクロールしないと表示できないので困っています。 そこでVBでやろうと思ったわけです。
415 :
デフォルトの名無しさん :02/10/21 11:11
>414 API知ってる?? 知ってたらできるよ。
>>415 WebBrowser.hWnd をOpenClipbordに渡せばいいでしょうか?
表示されてない部分までコピーできるもんなの?
418 :
デフォルトの名無しさん :02/10/21 12:02
&H8000000F& といったシステム予約済みのカラーから 実際のRGBの値ってどうやったら求められますか?
419 :
デフォルトの名無しさん :02/10/21 13:30
s = Hex(lbl_tujou.BackColor) s = String(8 - Len(s), "0") & s R = "&H" & Mid(s, 7, 2) G = "&H" & Mid(s, 5, 2) B = "&H" & Mid(s, 3, 2)
420 :
デフォルトの名無しさん :02/10/21 13:32
>>1 >悪いことは言わないから(w)、転職、または他部門への異動を真剣に
>検討して頂きたい。
検討するから やとってくれ(w
R = c And &HFF G = (c And &HFF00&) \ &H100 B = (c And &HFF0000) \ &H10000
いや、&H8000000F&とかの&H8で始まるやつって システムカラーの設定によって変わってくるから、 実際の色は何色かを求めたいのですが。 ちなみに&H8000000F&はボタン表面の色。
俺、前にVB6+DirectX8でフライトシミュレーター作ったけど パフォーマンス的にもなんの問題もなかったよ。 DirectInput使ってジョイスティックの制御もやったけど、 そちらも特に問題なし。 まあ、一応参考までに・・・
>>423 あはは。確かに。
GetSysColorじゃだめなの?
いやぁ決まってるわけじゃなくて、設定できるようにしたいので。 まぁ&H8000000Fなら〜ってかけばいいのですが。 どっかに点を描画してその色を取得するって方法は思い浮かびましたが あまりスマートじゃないすよね。
427 :
デフォルトの名無しさん :02/10/21 15:42
ああ ちなみに ボタンの色とか Windowsの根本の色は、デスクトップの設定で 変わっちゃうんだよなぁ〜〜〜。
>>426 設定するならSetSysColorsでは?
429 :
デフォルトの名無しさん :02/10/21 15:53
430 :
デフォルトの名無しさん :02/10/21 15:54
ListBoxによぉ、リアルタイムで追加してるんだけどさ、 なんか、けっこう画面が ちらついて うっとしいんだわさ。 これって ちらつかないようにできないのかねぇ。 だれか やり方、知ってたら 教えてよ。
むぅ。 んじゃ If oleColor = &H8000000F then o_Color=GetSysCollor(COLOR_BTNFACE) ElseIf '以下同様のやついっぱい Else o_Color = oleColor End If Debug.Print o_Color ってやるしかないかいなぁ
>>431 何言ってんだか。
o_Color = GetSysColor(oleColor And &H7FFFFFFF)
でいいじゃん。
>>430 知ってるしすぐ書けるけどよぉ〜
調べればすぐ分かっしよぉ
それって人に聞く態度じゃないよなぁ
だから教えないよ
432の補足。 Dim oleColor As Long だとすると、 If oleColor >= 0 Then o_Color = oleColor Else o_Color = GetSysColor(oleColor And &H7FFFFFFF) End If
おおお、なるほど。 ちゃんと対応してるのね
>>424 俺がバカでした。作ってもみないで不可能だと思い込んでいました。俺逝ってよし。
名前間違い。 ×422 ○383
439 :
デフォルトの名無しさん :02/10/21 20:13
WebBrowserコントロールで、 navigate2 メソッドのヘッダーにて User-Agent を決めることは出来ましたが、 表示されているページのリンクを押した際されるページ切替の際は User-Agent を変える方法がわかりません。 どうやればいいかわかりますか?
おれもたちなおれません
442 :
デフォルトの名無しさん :02/10/21 20:21
すいませんあの聞きたいんですけど y=sin(x)cos(2x+3)exp(x) のグラフを表示させるプログラムを作らなくてはいけないんですけど・・・誰か教えてもらえませんか?
444 :
デフォルトの名無しさん :02/10/21 20:33
446 :
デフォルトの名無しさん :02/10/21 20:37
わかりました宿題のスレ教えてもらえませんか?
宿題という言葉の意味を百回ほど辞典で調べろ
449 :
デフォルトの名無しさん :02/10/21 22:16
VBで作った2つのプログラムをディストリビューションウィザードを使って パッケージを作ってインストールしました。 2つのプログラムは別のアイコンなのですが、アプリケーションの追加と 削除の画面をみると両方とも同じアイコンになってしまいました。 こんな現象が起きたことあります? ちなみにVB6.0です。
453 :
デフォルトの名無しさん :02/10/22 09:43
テキストボックス内テキストの縦方向の配置を変えたいんだけど EM_SETRECTでメッセージを送信しても何も起きん どうやるのか教えてくれ
? MultiLineをTrueにするとできるようだな そういう仕様なのか?
455 :
デフォルトの名無しさん :02/10/22 10:20
メニューを動的に階層を作る事は出来ないのか?
俺はVBは抑止欄のだが、 menuのメソッドを実行時に呼び出せばできるのでは?
458 :
デフォルトの名無しさん :02/10/22 11:41
SQL関連(VB)になってしまうのですが教えてください。 "((DateDiff('yyyy',[生年月日],#10/1/2002#))" & "Between 50 AND 70" & "))" ある特定の年齢を求めようとSQL文を作成したのですが、 Between 50 AND 70の部分で問題が発生してしまいました。 この部分を変数にした場合、 変数="Between 50 AND 70" プログラム上では、 変数="Between '50' AND '70'" となってしまい、 SQL文として認識されません。 何かよい方法はないでしょうか?
459 :
デフォルトの名無しさん :02/10/22 11:46
>>458 なぜ肝心の、その文字列を作成する部分のソースを出さないの
というか、どうやったらそういう風になるのかが不思議・・・
興味age
460 :
デフォルトの名無しさん :02/10/22 11:55
Private Function XXX_年齢条件(ByVal 指定日付 As String, _ ByVal 指定年齢 As String) As Boolean On Error GoTo XXX_年齢条件_Err Dim SQL As String SQL = "INSERT INTO TBL_XXX検索_該当条件 ( OOOO番号, 22番号 ) " _ & "SELECT 22名簿.OOOO番号, 22名簿.22番号 FROM "22名簿 " _ & "WHERE ((Not (22名簿.OOOO番号) Is Null) AND (Not (22名簿.99年月日) Is Null) AND " _ & "((DateDiff('yyyy',[生年月日],#10/1/2002#))" & 指定年齢 & "))" DoCmd.SetWarnings False DoCmd.RunSQL (SQL) XXX_年齢条件 = True XXX_年齢条件_Exit: Exit Function XXX_年齢条件_Err: XXX_年齢条件 = False MsgBox Str(Err) & vbCrLf & Err.Description, _ vbOKOnly + vbExclamation + vbMsgBoxSetForeground, "error" Resume XXX_年齢条件_Exit End Function
461 :
デフォルトの名無しさん :02/10/22 11:56
#10/1/2002# = cdate(指定日付)
462 :
デフォルトの名無しさん :02/10/22 12:19
>>458 ×…プログラム上では
○…プログラム実行中では
>>460 それのどこにBETWEENの文字が??
464 :
デフォルトの名無しさん :02/10/22 13:23
誤り Public Function 指定年齢抽出(ByVal 条件1 As String, _ ByVal 条件2 As String) As String '指定年齢 or 期間 取得 If IsNull(条件1) Or 条件1 = "" And IsNull(条件2) Or 条件2 = "" Then '未入力 指定年齢抽出 = "" ElseIf 条件1 <> "" And IsNull(条件2) Or 条件2 = "" Then '○歳以上 指定年齢抽出 = ">=" & "'" & 条件1 & "'" ElseIf IsNull(条件1) Or 条件1 = "" And 条件2 <> "" Then '○歳以下 指定年齢抽出 = "<=" & "'" & 条件2 & "'" Else '○歳以上 ○歳以下 指定年齢抽出 = "Between " & "'" & 条件1 & "'" & " and " & "'" & 条件2 End If End Function
465 :
デフォルトの名無しさん :02/10/22 13:24
正 Public Function 指定年齢抽出(ByVal 条件1 As String, _ ByVal 条件2 As String) As String '指定年齢 or 期間 取得 If IsNull(条件1) Or 条件1 = "" And IsNull(条件2) Or 条件2 = "" Then '未入力 指定年齢抽出 = "" ElseIf 条件1 <> "" And IsNull(条件2) Or 条件2 = "" Then '○歳以上 指定年齢抽出 = ">=" & 条件1 ElseIf IsNull(条件1) Or 条件1 = "" And 条件2 <> "" Then '○歳以下 指定年齢抽出 = "<=" & 条件2 Else '○歳以上 ○歳以下 指定年齢抽出 = "Between " & 条件1 & " and " & 条件2 End If End Function
466 :
デフォルトの名無しさん :02/10/22 13:34
>>463 お手数かけました。
指定日付に"2002/10/22"、指定年齢に"Between 50 AND 70"が入ります。
指定年齢に入っている時点で変だったので混乱してしまいました。
動作はテキストボックスに○歳以上と○歳以下の項目があり、
このどちらか、または両方を入れて該当年齢抽出するものです。
○歳以上と○歳以下を判別するプログラムが間違っていました。
>>464 >>465 ×…"'" & 条件1 & "'"
○…条件1
レコードセットや数値を抽出すには "'" & 条件1 & "'" で良いのですが、
文字列の場合は、そこまでの手間はいりませんでした。
SQLにロジックが偏重したプログラムはいじりたくないなあ。
468 :
デフォルトの名無しさん :02/10/22 14:38
>>467 気持ちはわかるが、表現が簡潔過ぎて、意図するところがイマイチ不明。
(
>>460 のソースが汚くて読みにくい、という趣旨なら、禿げしく同意)
Windows2000にVB5.0をインストールしたけどスタートメニューに 何も登録されませんでした。しかたなくvb5.exeを起動してますが これってどうなの?
>468 RDBをいじる以上、現状はどうしても>460 のようにSQL文字列を 切ったり張ったりしなけりゃならない。別に>460 が悪いわけじゃない。 でも、こういったSQL文字列操作処理のバグとりは憂鬱。 なーんかもっとOOらしくスマートにできんかなあと思って。 (>460のソースは日本語変数名や関数の切り出し方に問題があるけど、 うちの連中のソースに比べたら綺麗なほうです。)
471 :
フォローになってないが・・・。 :02/10/22 15:34
>>470 > うちの連中のソースに比べたら綺麗なほうです。
胃薬をどーぞ。
472 :
デフォルトの名無しさん :02/10/22 18:07
早くこのスレ消化しようぜ
>>1 の書き込みがマジでウザイ
474 :
デフォルトの名無しさん :02/10/22 20:24
クリスタルレポートをやっているのですが、 たとえばB4横を使用して、右半分、左半分とページ的に扱うにはどうしたらいいのでしょうか? 具体的には、 □□ ← B4を横にしたとして、 まず左がわにレコードを印刷していき、下まできたらつづきは右側、というようにです。
>474 プリンタの設定をB4横にします。 [書式][セクション][ディティール][ラベルのレイアウト] で”ユーザー定義サイズ”を選択してサイズを設定します。 ラベルサイズで設定されたサイズで面取りされます。 縦から横オプションボタンをオンにします。 宛名ラベルを参考にしてください。
476 :
デフォルトの名無しさん :02/10/22 21:45
VBScriptはWeb制作板でするべきなのに、なぜこのスレッドでも受け付けているんですか?
そこにコードがあるから
>>465 どうせ年齢なんて範囲がある程度決まっているんだから...
Public Function 指定年齢抽出(_
ByVal 下限 As String, _
ByVal 上限 As String) As String
If IsNull(下限) Or 下限 = "" Then 下限 = "0"
If IsNull(上限) Or 上限 = "" Then 上限 = "999"
指定年齢抽出 = "Between " & 下限 & " and " & 上限
End Function
でいいと思うけど。
>>475 なんとか宛名ラベルを使用して、
また、1ページの表示できる最大レコード毎にページカウントを印刷ワーク作成時に入れて、
サブレポートにてページ毎の表を作ることができました。
今度は、線を任意に表示・非表示がやりたいのですが、
通常のテキストフィールドには式により設定できるのに、線オブジェクトの非表示項目には式がありません。
どうにかならないでしょうか。
>>456 どんもです。
AppendMenuかInsertMenuItemを使えばいいみたいですね。
少し作ってみたけれど、変なところにメニューが出来てしまいますたヽ(´Д`;)ノ
まぁ、色々チャレンジしてみますです。
有難うございますた
>>479 CrystalReportめったに使わないんでてきとーな返事なんですが、
線の上にテキストフィールドを非透過で置いてその表示/非表示を切り替えてみれば?
出来るかどうか分からないけど?
482 :
デフォルトの名無しさん :02/10/23 10:04
PopupMenu でモーダルなフォームを表示すると そのフォームで PopupMenu が使えんようだ 回避策を教えてくれ
483 :
デフォルトの名無しさん :02/10/23 12:54
おれは、別に 1の書きこみなんて 気にしないぜ〜〜 優秀だからよぉ(w ま、初心者のスレに 転職しろってのも変な話だよなぁ。 しかも、みんな 職業プログラマみたいないい方だし。 前スレのレスが よっぽど 気に入ったらしいな(w
484 :
デフォルトの名無しさん :02/10/23 12:55
別に消化しなくたっていいんだぜ。 新スレたてればいいんだ! ここは スレデフレになってないしな。 って スレデフレって なんやねん(爆)
>>483 うん。俺も気にしない。まぁどうでもいいんだから、あんなの無視しとけって。
無視できない奴は実は
>>1 でわざと気づかせようとしていると思われるぞ(w
マッチポンプですた
言われてむかつくことは内心自分が認めていること。
ものすごいバカにバカって言われてもむかつくよ。
( ´,_ゝ`)プッ
VC++やJava知っている人がVBやるとどれぐらいで覚えられる? 1週間ぐらい?
便利そうで使わないもの。 "CallByName"! 誰か使ってる?
493 :
デフォルトの名無しさん :02/10/23 16:55
>>489 >
>>2-999 >悪いことは言わないから(w)、転職、または他部門への異動を真剣に
>検討して頂きたい。技術のない技術者(言葉が矛盾しているが w)の
>存在は、顧客にとっても、同業者にとっても、迷惑(足手纏い)以外の
>何者でもない。
おまえも入っているという罠
>>490 VBは比較的かわってて
C++ユーザーとかは入り込みにくいというのをよく聞く。
>>490 VBとVCとJavaでどれが他に有ってどれが他の言語に無いのか
まとめられればいいんだけどねぇ。
496 :
デフォルトの名無しさん :02/10/23 18:56
>>495 言語や開発ツールの比較対照をまとめたサイトなんていくらでも
あるだろーが。
>>496 言語仕様まで踏み込んだ比較対照サイトは知らない。
>>500 別に。その程度でかわいそうだなんて甘いよ。
502 :
デフォルトの名無しさん :02/10/23 19:24
WebBrowserコントロールで、 navigate2 メソッドのヘッダーにて User-Agent を決めることは出来ましたが、 表示されているページのリンクを押した際されるページ切替の際は User-Agent を変える方法がわかりません。 どうやればいいかわかりますか?
MDIの画像編集ソフトを作っています。 (子フォームにはPictureboxがあり、それを使って編集。名前はPIc) 画像を読み込んだときに、PIcはAutosizeをtrueにして 読み込む画像のサイズに合わせているので良いのですが、 フォームもPIcが全部入るようにしようとして ActiveForm.Width = ActiveForm.PIc.Width ActiveForm.Height = ActiveForm.PIc.Height とやると、PIcの一部が欠けてしまいます。どうすれば良いでしょうか。 開発環境はVB6+SP3です。
>>503 Borderの分が足りてないだけっしょ。
ex=ActiveForm.Width-ActiveForm.ScaleWidth
ex=ActiveForm.Height-ActiveForm.ScaleHeight
ActiveForm.Width = ActiveForm.PIc.Width+ex
ActiveForm.Height = ActiveForm.PIc.Height+ey
とかしてみ。
ScaleModeをvbPixelとかにしてるなら
Screen.TwipsPerPixelX/Yで補正してな。
>>504 なるほど。今試してみたら上手くいきました。ありがとうございます。
AryStr(0)="桃" AryStr(1)="VB" AryStr(2)="タニシ" ・・・ という感じで文字の格納されている配列を 文字コード順で並び替えるにはどうすればいいのでしょう? ならびかえたあと別の配列に入れる予定です。 NewAry(0)="VB" NewAry(1)="タニシ" NewAry(2)="桃" ちなみに正規表現はよくわかりません。
プログラムはずぶの素人が短期間で何かのプログラムを作ろうとする場合 やっぱりCなんかよりもVBマンセーでつか?
508 :
デフォルトの名無しさん :02/10/23 23:27
>>507 経験が無いならという前提で。
VBでもDelphiでもBCBでも一緒。
VC++やBCCは、ちと時間がかかる。
プログラムの種類にもよるけどね。 コンソールアプリならCの方が短時間で何かのプログラムを作れる。
>>506 ソートをオンにしたリストボックスを使う…のは邪道?
511 :
デフォルトの名無しさん :02/10/23 23:30
>>506 左端1文字でソートする。
まずは基本から。
手抜きはあとで教える。
512 :
デフォルトの名無しさん :02/10/23 23:33
>>509 > プログラムの種類にもよるけどね。
要するに、適材適所。
ハイヒールは登山には不向き。
ビキニの水着(あ、別にビキニじゃなくても(^^;)はスキーには不向き。
軽飛行機は宇宙旅行には不向き。つうか、不可能。
そういうこと。
>>506 バブルソート
AryStr(0)とAryStr(1)を比べて1の方が小さかったら0と1を入れ替える。
AryStr(0)とAryStr(2)を比べて2の方が小さかったら0と2を入れ替える。
これで0が最小になる。
1と2を比べて2のほうが小さかったら1と2を入れ替える。
これで1が0の次に小さくなる。
>>507 簡単なデバッグができるようになるまでの研修期間
VB 3ヶ月(9割の人間が習得できる)
VC++ 12ヶ月(5割の人間が習得できる)
514 :
デフォルトの名無しさん :02/10/23 23:44
>>513 3ヶ月は甘過ぎるような気がするけど?
(1) 新卒採用時に能力適性がきちんと見極められている。
(2) 短期集中教育
が実現できていれば、簡単なデバッグは1週間でできるかと思われ。
むしろ、構造化とか、変数のスコープ、OO的な部品再利用のしくみ
(COM等)の方が、教育に時間が掛かるのではないかと?
>>509 厨な質問でスマソ・・・・・・
コンソールアプリってなんでつか?(;・∀・)スマソ・・・・
517 :
デフォルトの名無しさん :02/10/23 23:47
>>513 son-na osoi houhou wo oshieruna.
518 :
デフォルトの名無しさん :02/10/23 23:50
>>515 次の中から選択してください。
(1) コソーリ作るアプリ
(2) コンソメの味がするアプリ
(3) コンサルの業務を支援するアプリ
(4) GoTo
>>1 : End
※ ちなみに、推奨する選択肢は(4)です。w
バブルソートって隣接交換法だよね? 隣のものと比べるんじゃないの? AryStr(0)とAryStr(1)を比べて0の方が小さかったら0と1を入れ替える。 AryStr(1)とAryStr(2)を比べて1の方が小さかったら1と2を入れ替える。 というのを配列の末尾までやると一番大きな値が配列の末尾にくる。 あとはソートする範囲をせばめて同じことを繰り返す。
519
小さかったじゃなくて大きかったら。
>>513 のをコピペして使ったから間違った。。。
文字コードを返す関数ってなんでしたっけ? StrComp,StrConv,StrReverse いづれもちがうみたいでした。
Asc。
523 :
デフォルトの名無しさん :02/10/23 23:59
IPを詐称するにはどうしたらいいでしょうか?
すれ違い
>>515 適性検査の結果で、VB研修コースとVC研修コースに分けます。
さらに、VC研修コースで落ちこぼれた人たちにVB研修コースに行って貰います。
>構造化とか、変数のスコープ、OO的な部品再利用のしくみ(COM等)
を理解してもらおうとは思っていません。
でも、現実はVCいじってても、デバッグはできるけど
フルスクラッチはできないって人が多いでつ。
>>522 Ascをヘルプで見てみました。まさに求めていた関数でした。
はじめてAscをみたときは絶対値を返すのとおなじ関数なんだなあとおもいましたが、
ヘルプを読んでいくうちに絶対値はAbsだとわかりました。ありがとうございました。
>>506-525 みなさま
ありがとうございました。
>>519 そうでした。
大きな数字が泡のように登ってくるからバブルソートでしたね。
逝ってきます。
>>525 >>構造化とか、変数のスコープ、OO的な部品再利用のしくみ(COM等)
>を理解してもらおうとは思っていません。
こうやってVBユーザに糞プログラマが量産されるんだな(ワラ
529 :
デフォルトの名無しさん :02/10/24 05:16
コンソールアプリって コマンド入力するようなDOS画面などで使うアプリのことかな。
時代を感じる・・・
531 :
デフォルトの名無しさん :02/10/24 09:16
EnumWindowsっていうAPIを使いたいのですが、 VB上で実行すると「DLLが正しく呼び出せません」とエラーがでます。 Exeにすれば動くようなのですが、それではデバッグ時に激しく困ってしまいます。 どうすればよいのでしょうか?
532 :
デフォルトの名無しさん :02/10/24 10:02
JetDBエンジンで dim db as Database set db = open(...... if db = 開けた? then msgbox "やったー" end if みたいにオープンできたかどうか調べたいのですができますか? On errorとかは使いたくないのですが
534 :
デフォルトの名無しさん :02/10/24 11:22
JetDBエンジンで dim db as Database set db = open(...... if Err=0 then msgbox "やったー" end if
> On errorとかは使いたくないのですが ハア? 無理です。 悪いことは言わないから(w)、 転職、または他言語への異動を真剣に検討して頂きたい。
>>536 いや、説明上そういっただけでほんとは使ってるよ。
on error を必要以上に嫌う・恐れる必要はないよね。 よく使い道を理解した上で、必要最小限しか使わなければいいわけで。
>>537 説明上って... じゃあ、
> On errorとかは使いたくないのですが
というのは一体どういう意味なの?
>>539 on errorを意味なく嫌ってるアホって意味でしょw
538が書いたとおり、使い方さえ間違えなければいいだけなのに
>>533 On Error使わんと無理。openでこけるよ。
On Error GoTo がいやで、 On Error Resume Next は別にいいとかではなくてかな
544 :
デフォルトの名無しさん :02/10/24 12:47
On Error で 飛んで処理させる言語は クズだな。 んなもん、使用した関数で エラーを出して IF文で処理させろよ。
>>531 そのソースを見てみないことには何とも...
>>539 答えがOn Error以外のが欲しかったから。
>>544 > 使用した関数で エラーを出して IF文で処理させろよ。
( ´,_ゝ`) プッ
ネタ?
On Errorで思い出したけど、 On Error使わないで、On Errorに引っかかるようなエラーが出ると 「〜〜〜エラー 〜〜〜が〜〜〜です」とかメッセージボックスでたあと強制終了しちゃうけど、 メッセージボックスだけでだして終了しないようには出来ないの? On Error Resume Nextしたみたいにエラーだしたあと、その処理を無視して 続行、みたいな。
>>546 じゃあそもそも聞き方が間違ってる。
現在は on error で処理していますが、違う方法は
ないんでしょうか? が正しい。
Private Sub Command1_Click() Dim Ret As Long Ret = EnumWindows(AddressOf Rekkyo, 0) End Sub Public Function Rekkyo(ByVal Handle As Long) As Boolean 〜コード〜 End Function 関数Rekkyoの中身に関わらずエラーがでます。
>>549 そうなんだけどね。俺日本語不自由なんだよね。察してよ。
>>546 541が書いてるように、OpenDatabaseでオープンできなかった時は
実行エラーが発生するのはわかってる?
それがわかっていれば On Errorなしではチェックできない
こともわかるはず。
>>550 Rekkyoの引数の数と戻り値の型が間違ってるよ。
(戻り値の型が違うのはエラーとは関係ないが)
Public Function Rekkyo(ByVal Handle As Long, _
ByVal lParam As Long) As Long
お〜、動いた。ありがとうございました。 っていうかこのコード実はサンプル集から持ってきた奴だったりして(w でもEXEにすると動いたのはなぜ??
>>553 さあ。手元にVBがないのでわからんけど、
俺の手元のWin98では、EnumWindowsのコールバック関数の
引数のサイズや呼び出し規約が正しくなくても、
それを呼び出したDLL側でスタックポインタを復帰してくれてる。
そうなると、開発環境がエラーを検出できている方が不思議だけど。
555 :
デフォルトの名無しさん :02/10/24 15:02
バブルソートなんか 使っていると そのうち バブルが はじけるぞ (謎)
>>555 「この会社辞めようと思った上司の一言」ですか?
557 :
デフォルトの名無しさん :02/10/24 16:51
ソニー製アプリケーションって、ボタンの色はもちろん、 メニューとか全部独自のカラー&デザインになってますよね。 でも機能や操作性はWindows標準コントロールと変わらない。 あれは独自にコントロールを作成しているのでしょうか? それとも、Windows標準コントロールに何らかの方法で描画しているのでしょうか? VBでコマンドボタンの色を変えようとしても表面だけで陰の部分は変わってくれませんよね?
>>557 そのソニー製は見たことないから知らんけど、
標準コントロールでも独自コントロールでも可能。
560 :
デフォルトの名無しさん :02/10/24 19:46
>>557 標準コントロールと100%同じ独自コントロールだって作れるん
だから、自分でがんばれ!
そうですね。どちらでも可能だとは思いますが。 まぁボタンとチェックボックスぐらいはできそうだけど、 リストボックスや、メニュー、タブストリップまでとなると。。 おそらくソニーのやつは標準コントロールになんらかのメッセージを送ってると思うのですが どういったAPI使えばよいのでしょうか?
あ、そういえばWindowBlindsってソフトありますよね。 あれと同じ事をしてると思うのですが。
まぁオリジナルのオブジェとか見た目は良いかもしれないけど、見た目重視しすぎて 重くなったり動作が不安定にならないように気を付けてね・・・
背景が半透明のエディタをつくる方法がまったくわかりません。 リッチテキストボックスを半透明にするコマンドとかあるんですかね。
565 :
デフォルトの名無しさん :02/10/24 20:34
>背景が半透明のエディタをつくる方法がまったくわかりません。 WinME,XP,98でしか無理。 というか、 1)エディタは出来てるが半透明化が全く解からん 2)エディタもつくれないし、透明化も全く解からんアホ どっち?
>WinME,XP,98でしか無理。 Win2000,XPでしょう? Windowsの透明レイヤー機能を使うか、 自分で全部描画するかすりゃいいとおもいます
567 :
デフォルトの名無しさん :02/10/24 20:47
以下のように、オラクルに接続して接続失敗したらエラーコードを取得するコードを書いています。 接続とエラー処理は別のモジュール内にあります。 これを実行したとき、矢印の場所の”cnObj”の個所で エラーメッセージ「名前が適切ではありません」と言うのが出てきてしまうのですが、 cnObjの宣言をFnc_Orasseion内で行うと上手く行きます。 Publicで接続オブジェクトを宣言しても、別モジュールでは使用出来ないのでしょうか。 basOra内 *********************** Public cnObj As New ADODB.Connection Public rsObj As New ADODB.Recordset Public er As ADODB.Error Public Function Fnc_Orasession() As Boolean Dim ret As Boolean On err Goto ErrTrup 'データベース接続文字列 cnObj.Open pstrOraSource, pstrOraUser, pstrOraPass Exit Function ErrTrup: call subErr End Function *************************** basErr内 *************************** public sub subErr For Each er In cnObj.Errors ← msgbox er.Number Next end sub
>>565-566 エディタはつくれなくても、
テキストボックスやリッチテキストボックスを透けさしたり、それらに背景画像を表示させてみたいです。
あそびごころのあるテキスト入力ボックスですね。
WindowsはXPです。
透明レイヤー機能ははじめて聞きました。
透明レイヤーはWin2000とXPしかつかえない。 でも結構簡単に実装できる。 でもちょっと重い。
>>565 アフォ?
どのWinでもできるっつーの
VBの場合、クラスモジュールに宣言したStatic変数は どういうスコープになるのでしょうか? 確か、C++でクラス内にStatic宣言をすると、 各インスタンスから参照される定数が メモリ上に一個だけできたはずなんだが。
VB.NET環境でCORBA通信できるクライアントサーバのサンプルソースキボン
まずは透明レイヤーでしらべてみます。
>>557 > まぁボタンとチェックボックスぐらいはできそうだけど、
> リストボックスや、メニュー、タブストリップまでとなると。。
メニューはともかくとして、リストボックスやタブなら
自前でも難しくはないと思う。
> おそらくソニーのやつは標準コントロールになんらかのメッセージを送ってると思うのですが
> どういったAPI使えばよいのでしょうか?
標準コントロールにメッセージを送るのではなく、
サブクラス化とか、オーナードローを使うのが普通。
(コールバック関数を用意して、送られてくるメッセージを自分で処理する)
む、なにやら難しそうですな。 クラスはまだ全然分からないです。 >メニューはともかくとして、リストボックスやタブなら >自前でも難しくはないと思う。 まぁタブはそれほどむずくはないですか。 リストボックスはちょっとむずそうというかどちらかというとリストビューのほうが良いし。 あとスクロールバーがあれば大抵はいけそうではありますが。
>>578 > クラスはまだ全然分からないです。
オブジェクト指向のクラスのことを言ってるの?
ウィンドウのサブクラス化はそれとは別物なので、
一度ググッてみることをおすすめする。
>>579 >オブジェクト指向のクラスのことを言ってるの?
>ウィンドウのサブクラス化はそれとは別物なので、
オブジェクト指向なAPIを持つWindowsに対する挑戦か?
VBでマルチスレッドってできますか?
582 :
デフォルトの名無しさん :02/10/25 03:02
ヴァカな発言がネタなのか、天然なのかを効率よく判定するアルゴリズムを 教えてください。
「ネタだったら寒い。本気だったら痛い。釣りならヘタ。」と言ってあげる。
>>584 感謝。m(_ _)m
分岐条件が網羅的なところにセンスを感じますた。
586 :
デフォルトの名無しさん :02/10/25 13:17
ToolTipTextで 改行させて 複数行表示させる方法を教えてください。
588 :
デフォルトの名無しさん :02/10/25 13:23
>>586 Listboxなんですけど、表示を確認してから コーディングの仕方を
教えてもらえないでしょうか?
589 :
デフォルトの名無しさん :02/10/25 13:23
>>590 日本語が読めない人をいじめたら可哀そうじゃん。
592 :
デフォルトの名無しさん :02/10/25 14:13
>>590 おれやってみたけど、改行文字入れても ダメだった。
>>592 ちなみに何入れたの?13 10だよ?OK?
594 :
デフォルトの名無しさん :02/10/25 14:22
ああそういえば 改行文字ってなんだ? \n か? chr(13) & chr(10) か? それとも 改行文字って 入れないとダメなのか?(w
595 :
デフォルトの名無しさん :02/10/25 14:26
おっ 知ったかの糞厨 発見
vbCrLf
597 :
デフォルトの名無しさん :02/10/25 14:38
MDIで子フォームがいくつかあって メニューエディタで設定できないショートカットキーで 特定の子フォームのイベントを発生させたい場合 どうしたらいいでしょう? 全ての子フォームにキーイベントを書かないとだめでしょうか? メニューエディタのショートカットキーを増やす裏ワザとか あったりするんでしょうか?
vbCrlf でTooltip改行しようとしても文字化け起きて改行できなかった Win2000(sp3) & vb6(sp5)
ToolTipTextで改行はできないよ。 ToolTipText用のフォームを作るなりコントロールを作るなりしてゴマかせ。
601 :
デフォルトの名無しさん :02/10/25 16:14
>>599 なーんだ できないのか。いくらやっても おかしいなぁと思ったんだよ。
だから、できるのを確認して、コードを出してって いうのに、
変なこと いう人いるんだから。
>>601 誰 っつーか 無償の第三者に動作確認してから
コード出せとは相当図々しいぞ。学生だろお前?
>>601 謎の半角スペースは何のつもりなんですか?句読点の使い方がいまいち理解できてない?
VBとかより今の義務教育の勉強を真面目にした方が良いと思われ。
後、煽りには国語必須な。
文章に隙があれば付け入られる。
>>603 >学生だろお前?
と言うせりふをこの板で良く耳にしますが、社会人は偉いんですかいな?
立派な人は立派ですが
>>603 の様な痛い方も多いわけで。
>>605 肝心な部分に反論できてないキミのほうがイタイよ・・
学生には、社会の厳しさを知らない甘えんぼチャンが多い。 ということでしょうな
>>607 禿同。605よ、言葉通りに受け取らず、そう言われた意味を察しろ。
>>605 どうでもいいとこいじくるな。
>>603 を含むこの板の住人は社会人がえらいとかどうとかじゃなくて
モラルとか常識のなさを学生並と皮肉ってるんだろ。
ToolTipって改行不可だと思ったけど vbCrLfでも無理なはず。
げっ!リロードしてなかった。 WinXPでもPCカード取り外したりするときにでてくるToolTipを使うとよいよ み〜くんぱぱのところにサンプルがある
614 :
デフォルトの名無しさん :02/10/25 18:12
ここで聞けないようなもっと初歩的なことは、どこで聞けばよいのですか?
617 :
デフォルトの名無しさん :02/10/25 18:24
半角スペースって謎か?(w
>>615 じゃあ、叩かれるのを承知で書いてみます。
全然初心者なんですけど、急きょVBをいじらされることになりました。
リストラは最悪です。(昔はSEがいたのだけど、今は庶務課の私が開発
も兼務・・・)
さて、作るAPなんですが、pdfファイルを3つ選択して、それをftpで送信するというものです。
こんな書くと簡単なものなのですが、作り方がさっぱりわかりません。
(今日VBをインストールしたばっかの初心者なんで。。。)
AP実行手順(イメージ)は、
@アプリを.exeで起動
Aあらかじめform上に用意してある3つのブランクBOXに.pdfファイルを選択してきて、入れ込む。
(pdfファイルは指定のフォルダに入れておくカタチでも良いですが、
windowsのディレクトリを参照してファイルが選択できるようであれば尚良しです。)
B3つのブランクにファイルが埋まって、「送信ボタン」を押すと指定したftpのサイトへそのファイルを転送する。
C送信終了時に「送信完了(成功)」とかメッセージが出る。
D終了ボタンでexeが落ちる
ってな具合です。
VBをインストールしたばっかの初心者に開発させるなんて最悪の会社だな。
なんかわざわざつくらなくてもいいようなソフトだね
>>618 初歩的な質問とは言い難いがその会社すごい事させるな。(w
サンプルのソース探してそれをいじくるのが吉と思われ。
そうなんですよ、ヒドイ会社で・・・(泣 サンプル探しているんですけどねぇ。。。みつからなひ
623 :
デフォルトの名無しさん :02/10/25 18:33
>>618 MS-DOSで、FTPっていうコマンドが、使えるから、それでバッチを
作ったほうが、簡単。
>>623 たぶん作ってもらいたいのはFTP送信というよりも
フォームにファイルを選択してボタン押すだけで送信できるツールだと思われる。
給料払って車輪の再発明をさせるとは、素晴らしいDQN害社ですね。(w
>>626 車輪すらまともに作れず威張ってるヤツよりましだと思われ。
つか、IEで普通にできるよな。FTPぐらい ミラーリングとか必要なさそうだし
俺は>614 が女性だったら合コンで手を打とう。
>>630 俺だったら、セクースさせて貰わんと、納得できんが。
俺は手を握ってもらうだけでいいよ
>628 さん、任せましたよ。
遅くなりました。
>>628 さん、ご協力いただけると助かります、ホントに。
宜しくお願いいたします。
メアドは後ほどアップします。
>>635 は犬猿の仲の同僚のメアドをアップして、嫌がらせするつもりだそうです。
まだできないの?
638 :
デフォルトの名無しさん :02/10/25 21:54
つーか NextFTP使え ゴラァ!
>>638 フリーのFFFTPの方が明らかに優れているのに、なんでわざわざ
シェアウェアを使うよ?
>>639 そうか?シンボリックリンクもまともに操作出来ないあのソフトが?
>>639 制限解除する前の状態と比較するなよ・・・
>>614 (1)IEを起動する。
(2)アドレス欄に「
ftp://FTPサーバのアドレス 」と入力しEnter。
ユーザとパスワードを聞かれるので入力する。
このとき「パスワードを保存」をチェックしておくと次回から楽。
ついでにアドレスはお気に入りに入れておけばなお楽。
(3)エクスプローラでPDFファイルのあるフォルダを開く。
(4)3つのファイルを選択してIEにドロップ。
これでだめかい?
また別な雑用におわれて、レス出来ませんでした。
メールアドレスは、
[email protected] になります。
よろしくお願いします。
>>642 お客さんに見せるデモの一部なんで、それではダメなんだそうです。
やってることはその通りでも、それっぽくみせることが大切とかで!?
(下請けなんで、ツライです。)
しかし、まともなプログラマいないのに・・・。
644 :
デフォルトの名無しさん :02/10/25 23:56
配列ってどうやって作るんですか?
>>643 おいおい。客がいるのかよ。だったら教えられないな。
客がかわいそうだ。
>>614 質問の内容は確かに初歩的だが以前に、本人に努力する意思が見られな
い以上、これ以上のアドバイスはする気にならんね。
649 :
デフォルトの名無しさん :02/10/26 00:11
>>647 さんくす。
それをヒントに今からサーチします!!
ってかマニュアル買う金ねぇ...鬱。
>>649 本屋で立ち読みとか
サンプルコードを探すって手もある。
653 :
デフォルトの名無しさん :02/10/26 00:22
ヘルプ? 私VBA(エクセルのヤツ)なんだけど、ヘルプ見ようとするとインストールがどうのって言われる゚・(。´Д⊂)゚。・ ネットで探すしかない。 あと本屋で立ち読みする程度では私には理解できないと思う。
>>614 やれるだけやってみて、
そして解らないことが出てきたら、
個別にここで聞いてみたらどうでしょう?
それか、お金を払って別の会社に作ってもらっては?
>>648 628さんのお助けは、あくまで最後の切り札と考えています。
これでも自分なりに試行錯誤しています。
(本とか買ってきて、分からないなりにイジっています・・・)
こんな中年になって苦労するとは思いませんでした。
全然ダメダメ初心者ですが、頑張ります。
>>655 Inetコントロールを使えば簡単だよ。
>>653 ハァ?日本語も読めねーのか?
そりゃエラーメッセージ読めなきゃ本なんか読んでも意味ねーよな。
北鮮に帰れや。
660 :
デフォルトの名無しさん :02/10/26 00:37
>>656 ですよねw。こないだからCD探し続けてます。
661 :
デフォルトの名無しさん :02/10/26 01:56
現在フォーカスがあるコントロールの次のタブインデックスが設定されている コントロールを知りたいんですが方法ないですかね? どこかで見かけた記憶があったような気がするんですが・・
662 :
デフォルトの名無しさん :02/10/26 07:18
FTPのソフトは、Delphiを買うと サンプルについてるからそれ使えば、便利だぞ。 無理に VBを使う必要なしっ!
663 :
デフォルトの名無しさん :02/10/26 09:14
タイマー使ってイメージ動かすと途中でチカチカするんですが何とかなりませんか?
664 :
デフォルトの名無しさん :02/10/26 09:30
この業界入って、何の資格も取らずに40歳までいっちゃうとリストラ対象になるってホントですか?
>>663 AutoRedrawとかClipControlsとかそこらへん。
>>664 四角を取る → 角が取れて人間が丸くなる
という意味。要するに、テクニカルスキルだけでなく、対人関係にも
気を遣わないとダメですよ、という意味。
669 :
デフォルトの名無しさん :02/10/26 14:34
VBの派生テクノロジーを全部うpしてください。 VB VBA VBScript とあとなにがあるんですか?
>>669 派生というか全部サブセットです。以上。
サブセットのくせにVBにできなくてVBScriptにできることがあるのは我慢ならん。
672 :
デフォルトの名無しさん :02/10/26 15:24
ソフトの二重起動を防止したいのですが、 よくあるサンプルはApp.PrevInstanceとAppActivateを使う奴が多いようです が、これだと別の場所にコピーしたExeから起動できてしまうし、 タイトルバーの名前を変えてしまうとアクティブにできません。 ミューテックスを作成するとかいうのはプログラムが正常終了しないと起動できなくなってしまいます。 ウィンドウのタイトルを取得してソフト名が含まれてたら〜ってやればいいじゃん と思ってやってみたのですが、ウィンドウタイトル=Exeの入ってるフォルダ名 ってことがあるとダメなことに気がついてしまいました。 どういう方法が一番よいでしょうか? プロセスからファイル名を取得してファイル名から判断するってなことも考えてみましたが、 どうだろうって感じです。
> ミューテックスを作成するとかいうのはプログラムが正常終了しないと起動できなくなってしまいます。 そんなことはないと思うが?
>>673 同意。NTオブジェクトである以上プロセスと運命をともにするはず。
どうやらVB上だとダメっぽいです。 一度実行するともう起動しなくなります。 EXEにすると問題ないのですが。
インタプリタ実行した場合って事ね。そりゃそうか
>>675 それでいいんじゃない? というか、
EXEの時にだけチェックするのでは不都合があるの?
おっと、QueryUnloadにReleaseMutexじゃなくてCloseHandleにしたらちゃんと起動するようになりました。 ただ、VBの終了ボタンで終了してしまうと当然起動しなくなりますが。 開発環境で実行してるかどうかのチェックをすればよいのかな? VB5だとわり算だかで計算結果が違うのを利用できたそうなのですがVB6はどうなのでしょうか
>>678 > 開発環境で実行してるかどうかのチェックをすればよいのかな?
気は確かか ? 一体どのタイミングでチェックするんだ ?
え? If 開発環境=False then Unload Me End If ってやるだけですが。
exe実行時だけのチェックで何がマズいのかさっぱりわからん(´ー`)
>>68 だからexe実行時かどうか知りたいんでしょ?
デバック時にも2重起動禁止が働いて、2重起動してないのに走らないんじゃ不便だから
方法はいくつかあると思うけど、 MSの技術情報ではApp.ExeNameで判定するのが 紹介されていたような気がする。 でも、条件付きコンパイルとか、EXEを作る時に初めて チェックルーチン呼び出しを組み込んでもいいんじゃない?
mutex
いや、その、VB上で実行しているときに、
アプリケーション側で終了していればQueryUnloadが呼び出されてMutexが解放されるけど、
VB側で終了させてしまうとMutexが解放されないので以降実行できなくなってしまうんですよ。
VBを終了させてプロジェクトを開き直さないといけません。
>>683 条件付コンパイルですか。なるほど。
それでもいいかな。
>>685 なんで終了処理の方で使い分けようとするの?
終了時ではなく、起動時のMutex作成を
(開発環境での実行時は)行わないようにした方が
よいのでは?
>>683 で App.ExeNameと書いてるけど、
これ多分 GetModuleFileNameの間違いだわ。ごめん。
>>680 どこに書いておけば、そのコードが「VB側で終了させてしまうと」の時に走るんだ ?
(ったく、誰がチェック/対処 の仕方を聞いてるんだよ...。)
(しかも、Unload Me したってダメだし。)
>>686 そうですね。そうします。
ところで、Mutexの作成元のウィンドウはどうやったらわかるのでしょうか?
二重起動の時には既に起動しているウィンドウをアクティブ表示にしたいのですが。
半角スペースって謎か?(w
>>689 それこそウィンドウタイトルやクラス名でウィンドウを検索して
アクティブにすればいいのでは?
Mutexの作成元プロセスを取得する方法があるのかどうか知らないけど、
仮に方法があったとしても、多分、NT系OS限定(セキュリティ関連)
ではないかと思う。
それと、688の意味はわかった? 彼の言ってることは正しいと思うよ。
ああ、そういうことですか。
>>688 いや、別にVBで終了させるときに走らせる必要はなくて
VB上なら問答無用で起動させるようにすりゃよいだけです。
というか686さんの方法でばっちりなのですが。
・DB名,パスワード等の取得について win2000は環境変数があってそこから取得すればよいと思うんですが、 win95の場合はどうやって取得すればよいと思いますか?iniファイルとか? なにかよい案をください。 お願いします。
>>693 パスワードは、ポストイットに書いたのをモニタに貼り付けておく。
それを見ながら、画面上でパンチすればよい。
iniファイルを使うのはセキュリティ上問題があるので、不可逆暗号化した方がよい。
695 :
デフォルトの名無しさん :02/10/27 12:38
>>614 あなたと同じようなソフトを作りたいと思ってるんですが、
まったくのプログラム初心者ですが、私にも出来るでしょうか?
>695 が女性だったら合コンで手を打とう。
>>694 ありがとうございます。
自分の書き方が悪かったのですが、情報に持ちたいのは
DB接続に使うためのサーバー名,DB名,ユーザーID,パスワードなんです。
なにか良い案はありますか?
698 :
デフォルトの名無しさん :02/10/27 13:27
VB検定対策問題集の出版元はアーティファイであっているでしょうか?
MediaPlayer1.FileName = "C:\動画.avi" メディアプレイヤーコントロールは コードで直接ファイル名を指定して再生するのは簡単ですけど、 実行時にエクスプローラの動画ファイルをメディアプレイヤーコントロールにドラッグして FileNameプロパティをドラッグファイルに設定する方法がわかりません。 メディアプレイヤーコントロールに DragDropというものがありましたがそこに何を書いたらFileNameを設定できるのでしょうか。 Private Sub MediaPlayer1_DragDrop(Source As Control, x As Single, y As Single) End Sub ↑こんなかんじにDragDropがなってました。
「私を犯して!!」と言ってきた女とした場合、それは強姦なのだろうか?
なんか昔、女を強姦するときはわざとゴツゴツした地面の所を選び押し倒し、 痛がらせてから「じゃああっちの平らな所にする?」と聞き、 「うん」と答えさせたら強姦じゃなくなるとかいう話聞いたな。 激しくどうでもいい上にスレ違いだが。
ひどいインターネットだな。
707 :
デフォルトの名無しさん :02/10/27 14:40
残念ながら男ですw
当方、プログラマと言うわけでは無く、単純に仕事の流れの1部分を
楽にして他の作業に時間をかけようと思ってるので作ろうと思ってる
わけなんですが、過去プログラムで挫折クチであります。
女性も多い職場なので合コンぐらいだったらいくらでも用意しますが、
まずは私と友達になった上で信頼が置けるようであればいくらでも合コン
程度で良ければ用意できます。さすがに掲示板で知り合って初対面での合コンは
厳しいですね。と、マジレスはさておき、
ファイル選択には、TextBoxにとファイル参照用のCommandBoxの配置まで
やった上で、グーグル検索しコモンコントロールを使用するらしいという
ところまで来ました。
FTP送信部分には
>>624 のdllを組み合わせてみようかなと思ってます。
暖かく見守ってください。今日中に出来るかな?!
>707 そこまでできてんなら、俺の出番は無いな。 完成したら>614 にあげれば。
709 :
695=707 :02/10/27 14:58
>>708 いい線まで行けてますか?
私も初心者なんで勉強にもなってますから、上手く行ったらUPしても良いとは思ってますが
はてさて成功するでしょうか…。
コモンコントロールでいつも見慣れてるファイルの参照ようのBOX表示までは成功したんですが、
それをTextBox表示させる部分に来て、グーグル検索繰り返してます。
10日で覚えるとかって本を見たことが有ったので、それでも買ってこようかな…。
>>707 女性が多い職場かー
いいな。俺んとこには一人もいねー
>>709 Private Sub Command1_Click()
Call Me.CommonDialog1.ShowOpen
Me.Text1.Text = Me.CommonDialog1.FileName
End Sub
>>711 おぉ。ありがとうございます。
追加でこういう風に変更してみました。
----------------command box------------------
Private Sub Command1_Click()
CommonDialog1.DialogTitle = "ファイル選択"
CommonDialog1.FileName = ""
CommonDialog1.Filter = "テキストファイル *.txt|*.txt;|アプリケーション *.exe|*.exe"
Call Me.CommonDialog1.ShowOpen
Me.Text1.Text = Me.CommonDialog1.FileName
End Sub
----------------text box------------------
Private Sub Text1_Change()
Text1.Text = CommonDialog1.FileName
End Sub
------------------------------------------
なんとなくあぷりっぽくなってきました。ありがとうございます。
今度は、送信ボタンを押せばtextbox内のファイルを送信させる
と言うcommand box部分に入ってみようと思います。
713 :
デフォルトの名無しさん :02/10/27 16:57
>>713 ありがとうございます。今、見てる最中ですが、
初心者の私には何とも長いコードのように思えてf(^^;
イベントプロシージャをさっき理解したところでして…(汗
長い目で見て勉強になりそうです。
できれば単純にFTPコネクトしてputしてそれが成功したか、
その途中のどこかで失敗かをダイアログで出す所まで行きたいんですが…。
basファイルの標準モジュールが何なのかを調べ漁ってます。
715 :
デフォルトの名無しさん :02/10/27 17:41
エクセルのVBAについて質問させてください。 xmlファイルを読み込んで処理したいのですが、 何か簡単な方法は無いでしょうか?
718 :
デフォルトの名無しさん :02/10/27 18:37
画像を背景にしたいのですが、どうすればイイのでしょうか?
719 :
デフォルトの名無しさん :02/10/27 18:44
ネットワーク上でやりとりされたデータのサイズ (ようするにネットワーク接続があるときにタスクトレイに出てくるやつに表示されるバイト数) を求めたいのですがどうやればよいでしょうか? 送受信共にです。 転送量モニターを作りたいのです。 WinSockとInetコントロールはみたところ送受信自体をやるもののようなのですが。
VBでミリ秒単位の正確な時間管理ってできます? プログラム開始から終了までを計測したいのですが マルチスレッドにしないとできないような事を言われました。 ・VBでミリ秒単位の管理は可能? ・VBでマルチスレッドってどうやって実現する?? どなたか教えてください。
>>721 GetTickCountとか。
マルチスレッドは無理。
てか、プログラム開始から終了はかるのにマルチスレッドなど何に使うっつんだ?
そもそもマルチタスクOSで正確な時間管理なんかできない。
>>723 ほう、マルチタスクなハードリアルタイムOSはやたらとあるが。
726 :
デフォルトの名無しさん :02/10/27 20:15
>>721 つーかウィンドウズ上で正確にexeの実行開始から終了までの時間なんて
計測できない
>>722-724 ありがとうございます。ついでに質問なのですが、こいつを使えば
起動後、正確に5秒後とかにイベントを発生させるような
事が可能でしょうか?
タイマーオブジェクトだと、微妙にずれてしまって
うまく行かなかったので・・・。
まぁ721が求める結果は、 フォームロード時にGetTickCountして適当な変数にぶち込んでおき、 終了するときにまたGetTickCountして、そこから起動時に変数に入れた奴を引き算した奴で 上等なんだろ。 そんな細かい屁理屈こねるなよ。
>>727 その正確ってのがまた微妙だなぁ。
誤差100msくらいなら正確と捕らえるのか、
1msでもズレたらあかんのか。
>>728 ありがとうございます!
これで難しいプログラミングしなくてすみます!!
>>729 外部デバイスの動作時間を計測したいので、
できれば正確なものがよいのですがー
それっぽい数字が出ればいいので、100msぐらいの
誤差ならかまわないです。
もっと正確に計測できる方法をご存知ならば
教えていただきいのですが・・・。
>>730 だったらそれこそGetTickCountでいいべ。
>>731 ありがとうございます!!!
これですっきり解決です。
timeGetTime()のほうがいいらしい
734 :
デフォルトの名無しさん :02/10/27 21:10
再起動させるコードが知りたいのですが…
>>734 > 再起動させるコードが知りたいのですが…
コンパイルエラー:
主語がありません。
737 :
デフォルトの名無しさん :02/10/27 22:30
>>735-736 リンク先に行って見ましたが、自分の探しているものは見つからないのです。
私が望んでいるものは、VisualBasicで作ったボタンで、Windowsを再起動させる為のVBのソースコードが欲しいのです。
どうか教えて下さい。お願いします。
>>739 警告:
反復回数は2のべき乗で指定してください。
丸2日かかって、FTPでサーバーにつながるところまで作りました。 もう、心底疲れました。 VB超初心者向け入門本とかには、簡単な計算プログラムとか載ってて 「やっぱ最初はこういうのからやるだよなぁ」と、いきなりファイル転送の プログラムを作ってる自分の愚かを改めて感じます。 今、PDFのファイルをCmnDialogで拾ってきて、そのファイル名(パス)をlistboxに表示させ、 それをuploadするところを考えているのですが、 CmdBtnでCmnDialogを表示させ、pdfファイルを選択するとBOXに1つ表示。 で、また同じボタンを押して同様にpdfファイルを選択するとBOXの2段目に表示。 という具合にしたいのです。3回繰り返しで3つのファイル名を表示させたいんです。 で、それをInet1.Execute , "PUT"でuploadしようと思うのですが。 なんか695さんも私と似たようなものをお作りのようで、712とかもみて みたんですが、ちょっと違うようなのでお聞きしたいと思って書きました。 それでは宜しくお願いします。
コモンダイアログは一度に複数のファイルを選択するのが可能だから、そうした方が楽だけどどうかな
もう終電なのでiモードからです。 pdfファイルを選択するディレクトリが、 異なることも考えられるので、 別々に3回になるのかな?と思ったんですが。 あと、パスを表示させて、その内容を使って送信をしたい時は、 何のボックスを使えば良いのですか? はぁ、ホントにダメ人間だな。(泣
745 :
デフォルトの名無しさん :02/10/27 23:54
Accessとかにある帳票のウィザードのような機能をつくるよう頼まれて困っています。 1.エクセル、csv、mdbなどからの任意データのインポート 2.項目の自由な設定 3.一覧、宛名ラベル、伝票などの印刷 1,2は適当にいぇれそうですが、3で困っています。なんかツールとか サンプルPGないでしょうか・・・困ったです。
746 :
デフォルトの名無しさん :02/10/28 00:00
W2k,VB6sp5でMDIで作ってます。 子フォームを表示しない状態だと正常なんですが 子フォームを表示した状態だとMDIフォームにあるメニューを クリックしてもメニューが表示されません。 なぜかWクリックすると表示されます。 この状態をなんとかしたいのですがどうすればいいのよいでしょうか? ちなみに子フォームは BorderStyle無しでメニューもありません。
747 :
デフォルトの名無しさん :02/10/28 00:16
age
>>614 お疲れ様です。
私の考えてたのよりも複雑な作りをしてるようですね。
私は、超初心者ですのでサンプルの寄せ集めのような感じになってしまってます。
単純にファイルを参照できるボタンとそれを表示させるボックス
それに対して、送信するボタンと終了のボタンのみです。
送信ボタン(Command)部分に次の行を入れてやりました。
-------------送信ボタン-------------------------
Private Sub Command2_Click()
Dim rCode As UDT
Dim lll As Long
lll = TsureFTP("ホスト名", "ユーザid", "パスワード", "リモートファイル名", "ローカルファイル名", _
"コマンド", "リモートのディレクトリ")
MsgBox rCode.sfatrv
MsgBox CStr(lll)
End Sub
--------------------------------------------
これでOKなのかどうかも謎なんですが、ホスト名・ユーザーid等は、自分のUPしたい
場所を記述するんだろうなと言うところまでは解かりました。
ローカルファイル名にCommonDialog1.FileName辺りを入れてやれば良いところまで
予想はつくんですが、同じくUPするサーバーへも同じ名前にする場合は、CommonDialog1.FileName
を追加してやれば良いのでしょうか?
コマンドにはもちろんputを置いてみます。
後、戻り値でエラーが出る際に数字だけでるので、それの数値をdllftpのbasに書かれてある
エラー表示と同じようにしたいと思ってます。
1日で作ろうと思ったけど間に合わなかった(涙
749 :
デフォルトの名無しさん :02/10/28 01:47
VB.NETで最も簡単にwavファイルを再生するにはどうしたらいいんでしょうか? 本にはDirectXを使う方法しか書いてないのですがそれが一番早い方法なのでしょうか。 それも一冊だけであまりサウンド再生について触れている本が見つかりません。 VisualBasicでDirectXを使うなんて思いもしなかったんですが・・・
古典的ですがIF文使ってエラー表示は何とかなりました。 実際デバッグしてみると、どうもPUTでエラーが返ってきてるようです。 ファイル名辺りのエラーだと思うのですが、どなたかお解りになる方宜しくお願いします。 ローカルファイル名部分を参照したファイルにして、UPしたファイルも同じ名前にしたいんですが…。
プログラマーみたいなパソコン関係の仕事で一番エリートな仕事は何? ハッカーって仕事?
>>752 ありがとうございます。
参考にやってみます。やはりそれなりに面倒みたいですね。
>>753 ゲームキャラの著作権をもったグラフィックデザイナ(ただしメジャーなゲーム)だ。
わかったか。
くれぐれもプログラマとかになろうとするなよ。
迷惑だから。
>>755 それ嘘なんでしょ?
本気でいまから一流大の情報学科目指してんのに( `_ゝ´)プンプン
>>754 mciSendStringかPlaySoundあたりのが全然簡単
>>757 いや,社長は会社が潰れたら責任とらなきゃならんので,
実際は偉くない.
基本だと思うのですが、ListViewの項目を選択した時Textを取得する 方法がわからなくて困ってます。 わかる方教えてください。
761 :
デフォルトの名無しさん :02/10/28 13:48
Listview.text Listview(listview.listindex)
>>760 Me.Text1 = List1.List(Me.List1.ListIndex)
>>759 責任を取らなきゃならないから偉くないってアフォ?
責任を取らない奴が偉いのかよ。
VBのプログラムから、たとえばメモ帳を呼び出して メモ帳での編集が終了するまで待ってることって できるでしょうか。
責任を取らなきゃならないから偉いんだとしると、 株式会社の代表より、合資会社の無限責任社員の方が偉いわけか…
>761,762 ありがとうございます。 早速試してみます。
>>766 ( ゚o゚) エッ! できるんですか!
あまりの感動で濡れてきました!
ネカマを強制終了させる関数を教えてください
>>769 そのネタ前にもどこかで見たことある・・・
最初はワロタが、二度目はつまらんよ
>>770 Call ItteYoshi()
>>768 WaitForSingleObjectをググれ
>695 リモートファイルとローカルファイルがPUTの時は置き換わるらしいので注意。 エラー値から変数名に戻すのは無理なので、関数を用意した。 Private Sub Command2_Click() Dim nRet As Long Dim sHostName As String Dim sUserId As String Dim sPass As String Dim sFromFileName As String Dim sToFileName As String Dim sCommand As String Dim sRemotePath As String Me.MousePointer = vbHourglass Me.Command2.Enabled = False sHostName = "127.0.0.1" sUserId = "ftp" sPass = "" sFromFileName = Me.Text1.Text sToFileName = GetFileNameFromFullPath(sFromFileName) sCommand = "PUT" sRemotePath = "" nRet = TsureFTP(sHostName, sUserId, sPass, sFromFileName, sToFileName, sCommand, sRemotePath) Debug.Print "Ret=" & GetFtpErrorName(nRet) & "(" & nRet & ")" Me.Command2.Enabled = True Me.MousePointer = vbNormal End Sub
Private Function GetFtpErrorName(n As Long) As String Dim sError As String Select Case n Case 1: sError = "OPEN_ERROR" Case 2: sError = "CONNECT_ERROR" Case 3: sError = "FILE_GET_ERROR" Case 4: sError = "SUCCESS" Case 5: sError = "FILE_PUT_ERROR" Case 6: sError = "FILE_DEL_ERROR" Case 7: sError = "CHNG_DIR_ERROR" Case 8: sError = "CLOSE_ERROR" Case 9: sError = "BUT_COMMAND" Case 999: sError = "ERROR" Case Else: sError = "UNKNOWN ERROR" End Select GetFtpErrorName = sError End Function Private Function GetFileNameFromFullPath(sFullPath As String) As String Dim nPos As Long For nPos = Len(sFullPath) To 1 Step -1 If (Mid$(sFullPath, nPos, 1) = "\") Then GetFileNameFromFullPath = Mid$(sFullPath, nPos + 1) Exit For End If Next End Function
>>772 769 はわたしぢゃありませんよ。 WaitForSingleObjectですね!
ありがとうございました。さっそくググってみます。
でもググるってどーゆー意味??
>>774 > Case 9: sError = "BUT_COMMAND"
しかしコマンド
振るパスからファイル名は GetFileTitle()だったような
>>775 www.google.co.jpで検索しろってことだ。>ググれ
>>778 (ノ゚ο゚)ノ おー すばらしい! こんなサイトがあったんですね!
WaitForSingleObject の第一引数のハンドルは
shell関数が返すタスクIDぢゃないですよね、やっぱ。
とにかくいろいろやってみますよ。ありがとうございますた。
>776 TsureFtpの作者に行ってくれい。 >777 オメ GetFileTitle()では、漏れには機能が想像つかん。 汚いコード読んでくれてありがと。
ヘタレ614です、お疲れ様です。 VBにかかりきりで4晩目に突入しました。 コモンダイアログからファイルをListBoxに表示させるところまできました。 ListBoxに表示してあるフルパスの情報で、複数のファイルをFTP送信(PUT) したいと思うのですが、ここが分かりません。 よろしくお願いします。
できますた、できますた。♪ あり。でございます。
>>781 なんだか本当にかわいそうになってきたなー
まじで作ってやるか。
ソースを載せてみます。 Private Sub Command1_Click() Dim GetUrl As String Dim GetName As String Dim GetPass As String Dim i As Integer '処理が終了するまでコマンドボタンを無効化 Command1.Enabled = False 'FTPサーバ名の取得 GetUrl = Combo1.Text 'ログインユーザネームの取得 GetName = Text1.Text 'パスワードの取得 GetPass = Text2.Text
With Inet1
'URLを指定
.URL = "
ftp:// " & GetName & ":" & GetPass & "@" & GetUrl
'ルートディレクトリへ移動
.Execute , "CD /"
'ビジー待ち
Do While Inet1.StillExecuting = True
DoEvents
Loop
'ルートディレクトリの一覧を要求
.Execute , "DIR /"
End With
'コマンドボタンを有効化
Command1.Enabled = True
End Sub
Private Sub Command2_Click() '処理が終了するまでコマンドボタンを無効化 Command2.Enabled = False Dim Fname As String 'ファイルを選択するためにダイアログを開く With CommonDialog1 .ShowOpen Fname = .FileName End With If Fname = "" Then Exit Sub End If '選択したファイルをList2に表示 List2.AddItem Fname 'コマンドボタンを有効化 Command2.Enabled = True End Sub
Private Sub Command3_Click()
'【疑問】Command1で接続しているのですが、ここの部分は再度必要ですか?
> Dim GetUrl As String
> Dim GetName As String
> Dim GetPass As String
> '処理が終了するまでコマンドボタンを無効化
> Command3.Enabled = False
> GetUrl = Combo1.Text
> GetName = Text1.Text
> GetPass = Text2.Text
>
> With Inet1
> 'URLを指定
> '.URL = "
ftp:// " & GetName & ":" & GetPass & "@" & GetUrl
> 'ルートディレクトリへ移動
> 'ビジー待ち
> 'Do While Inet1.StillExecuting = True
> ' DoEvents
> .Execute , "CD homepage/A"
> 'ビジー待ち
> Do While Inet1.StillExecuting = True
> DoEvents
> Loop
'List2に表示されたファイルのパスでアップロードをする。
.Execute , "PUT" & List2.Text 【疑問】・・・← ここがよくわかりません
End With
MsgBox "アップロード完了!"
'コマンドボタンを有効化
Command3.Enabled = True
End Sub
Private Sub EndBtn_Click() '終了ボタン On Error Resume Next Inet1.Execute , "CLOSE" Unload Me End End Sub Private Sub Inet1_StateChanged(ByVal State As Integer) Dim vntGetData As Variant Dim strSplit() As String Dim lngBufSize As Long Dim lngCounter As Long
'リストボックスをクリア List1.Clear 'Excuteメソッドによる処理要求が完了したら、 If State = icResponseCompleted Then '1回で取得するデータサイズを指定 lngBufSize = 1024 Do 'サーバから返されたデータを取得 vntGetData = Inet1.GetChunk(lngBufSize, icString) '戻り値が長さ0の文字列だったらループを抜ける If Len(vntGetData) = 0 Then Exit Do '取得したデータを基に配列を作成 strSplit = Split(vntGetData, vbNewLine) '配列の各要素を調べる For lngCounter = 0 To UBound(strSplit) '長さ0の配列要素を除く If Len(strSplit(lngCounter)) <> 0 Then 'リストボックスへ追加 List1.AddItem strSplit(lngCounter) End If Next Loop End If MsgBox "接続しました" End Sub
Private Sub List1_DblClick() ’リストBOX1 '処理が終了するまでコマンドボタンを無効化 Command1.Enabled = False With Inet1 '選択されたディレクトリに移動 .Execute , "CD " & List1.Text 'ビジーの間待つ Do While Inet1.StillExecuting = True DoEvents Loop '現在のディレクトリのファイルと 'ディレクトリの一覧を要求 .Execute , "DIR" End With 'コマンドボタンを有効化 Command1.Enabled = True End Sub
>614 Dim n As Long For n = 0 To Me.List1.ListCount - 1 Debug.Print Me.List1.List(n) Next
長くなりましたが、4日かかってゼロからこれだけです。 今、良く分かってないのは、 connect1で接続した後、connect3で再度接続が必要なのか? Listに表示したパス名をPUTで使うにはどうすれば良いのか? というところです。 すみません、宜しくお願いいたします。
>792(=630)さん それを、どこへ書き足せばよいのですか?
>>793 接続は1回でいい。
フルパスからファイル名だけを取り出すAPIはGetFileTitle()
796 :
デフォルトの名無しさん :02/10/28 20:25
VB6付属のAPIViewerのデータベースって古いからのってないのいろいろあるけど、 新しいバージョンのデータベースってないの?
>614 いろいろまずいな。自分の力量以上に複雑にし過ぎ。 >618 のすっきりした仕様とぜんぜん違うじゃん。 FTPクライアントを再開発したいの? 送信を楽にするソフトを作りたいの? StateChangedイベントハンドラがぜんぜん駄目。 これじゃあ、DIRの時しか対応できないし、 Executeが終わってないのに、各Buttonのイベントハンドラが終わっちゃうし。 ところで、同名のファイルがサーバに存在した時はどうする? 上書き?
>>797 すいません。
StateChangedイベントは、サンプルのパクリです。
とりあえず、ここまできたのでちゃんと動くものにするのが先ずの目標です。
最後の最後で動かずに、力が抜けそうです・・・。
サーバのファイル上書きは問題ないです。
(デモ用APなんで)
とりあえず動きました。 涙が止まりません(泣 さっきのUpされなかったのは、ファイル名を繰り返して入れてなかった からでした。 Listからのファイル名取得はまだ出来ていませんが、コードに固定パス 打ち込みで、あたかもそのファイルを選んで送信しているかのように 見せかけようと思います。 (間に合うようなら、もう少しがんばってみたいのですが、本来の仕事も 全然停滞しているため) 皆様には大変お世話になりました。 ありがとうございました。
>614 直しきれんのでとりあえず複数ファイル送信できるようにしてみた。
Private Sub Command3_Click()
Dim GetUrl As String
Dim GetName As String
Dim GetPass As String
Command3.Enabled = False '処理が終了するまでコマンドボタンを無効化
GetUrl = Combo1.Text
GetName = Text1.Text
GetPass = Text2.Text
With Inet1
'''''いきなりこのボタンを押してしまうかもしれないので一応やっとけ。
.URL = "
ftp:// " & GetName & ":" & GetPass & "@" & GetUrl 'URLを指定
Do While Inet1.StillExecuting = True 'ビジー待ち
DoEvents
Loop
Call .Execute(, "CD homepage/A") 'ルートディレクトリへ移動
Do While Inet1.StillExecuting = True 'ビジー待ち
DoEvents
Loop
'List2に表示されたファイルのパスでアップロードをする。
Dim n As Long
For n = 0 To Me.List2.ListCount - 1
Debug.Print Me.List2.List(n)
Call .Execute(, "PUT " & Me.List2.List(n))
Do While Inet1.StillExecuting = True 'ビジー待ち
DoEvents
Loop
Next
End With
MsgBox "アップロード完了!"
Command3.Enabled = True 'コマンドボタンを有効化
End Sub
nbsp;より全角スペースの方が綺麗に見えるな。 自分の仕事やる気無し、今日も進みませんでした マル
>>830 (630!)
神様です。すごいです。
ありがとうございました。
#本当に初歩的なことで恐縮なんですが、保存した.vbpファイルと.frmファイル
を別なマシンで実行しようとすると「パスがみつかりません」とエラーが
出ます(実行できない)。
これは何故なんでしょうか?
>>799 よかったですね
他人事ながら、なんだか嬉しいです
>802 ちゃんとVBをインストールした端末? プロジェクトを開く時にエラーが出るの? それともF5キーで実行する時にエラーが出るの? エラーのおこった行は表示されないの? VBPファイルをメモ帳にドラッグしてフルパスで書かれたものが その端末に存在するかチェックしてみ。
>>630 おぉ。ざっと過去ログみてたんですが、何か関数まで用意していただいて・・・(汗
ありがとうございます!!日曜プログラマ化してるんですが、
今から過去ログをしっかり見直してみたいと思います!
戻り値からのメッセージ化は、古典的ですがIf構文でこうやってみてたんです。
----------------------------------------
Private Sub Command2_Click()
Dim rCode As UDT
Dim lll As Long
lll = TsureFTP("ホスト名", "ユーザid", "パスワード", "", "Me.CommonDialog1.FileName", _
"コマンド", "ディレクトリ")
If CStr(lll) = 1 Then MsgBox "FTPのオープンに失敗しました"
If CStr(lll) = 2 Then MsgBox "サーバとのコネクトに失敗しました。"
If CStr(lll) = 3 Then MsgBox "ファイルのGETに失敗しました。"
If CStr(lll) = 4 Then MsgBox "処理に成功しました。"
If CStr(lll) = 5 Then MsgBox "ファイルのPUTに失敗しました。"
If CStr(lll) = 6 Then MsgBox "ファイルのDELETEに失敗しました。"
If CStr(lll) = 7 Then MsgBox "ディレクトリの移動(cd)に失敗しました。"
If CStr(lll) = 8 Then MsgBox "FTPセッションのクローズに失敗しました。"
If CStr(lll) = 9 Then MsgBox "不正なコマンドを発行しました。"
If CStr(lll) = 999 Then MsgBox "不明なエラー"
End Sub
-------------------------------------------------
今から、ちゃんと過去ログ読まさせていただきます。
ご丁寧にありがとうございました!
807 :
◆LL.98XOPJI :02/10/28 23:37
質問。VB6です VisualStudio開発環境についてくる「Spy++」ってありますよね。 あれの機能でメッセージを監視できるじゃいですか。 ひとつのウィンドウハンドルを見張るようにして、 送られてきたメッセージを書き出していくっていう。 あれはどうやってやっているのでしょうか? また、VBにてあれと同じような事がやりたいです。 ヒントでもヨロシクお願いします。
808 :
デフォルトの名無しさん :02/10/28 23:56
情けない質問ですがデータレポートで宛名ラベルを印刷したいのですが どうやれば2列、3列の指定ができるのかわかりません。。。どうか ご教授のほどよろしくお願い致します(__)。
一昨日はどうも有り難うございました。 紹介されたサイトを見ました。が、あれを使ったのですが、ビルドエラーがでます。 何故でしょうか?VB6とVB.netとはコードが変わったのでしょうか? 変わっていたら、変更した無いようにしてください。お願いします。
>>807 SetWindowsHookEx
ただし、他のプロセスのウィンドウを監視するなら
DLL内にフックプロシージャ(コールバック関数)を
用意する必要があるので、VBでは無理かも。
(9x系OS限定ならexeだけでもなんとか動くけど)
811 :
デフォルトの名無しさん :02/10/29 05:55
VBって バージョンアップするたびにソース変えなきゃ いかんからなぁ。 Delphiだとそんなことない。
812 :
デフォルトの名無しさん :02/10/29 10:07
VB6で、SSTABを使ってるんですが、 WinXPでSSTABのタブに改行コードを含む文字列を入れると正常に 改行されて表示されるのですが、 Win2Kで同じことをやると改行コードが「・・」で表示されてしまいます。 Win2Kで「・・」が表示されないようにするには、 なにかテクニック等ありますでしょうか? 先輩方、ご教授お願い致します。
813 :
デフォルトの名無しさん :02/10/29 11:08
Screen.Fontsでフォント列挙して、んでそのフォント名をStdFont に代入してみたのですが、MSゴシックなんかのCharSetが128になり ません。 これは最近私の頭髪がうすくなりはじめたことと何か関係があるの でしょうか? どなたかご教授ください。 環境は、Win2k+SP2 VB6.0+SP5です。
814 :
デフォルトの名無しさん :02/10/29 11:13
VB6.0+Access(バージョン関係なし)ですが、 拡張子がmdbだと、hProcessが0しか返してくれないのですが、 これは何が原因なのでしょう? 解決方法をお願いします。 Const PROCESS_QUERY_INFORMATION = &H400& Const SW_SHOWNORMAL = 1 Dim hProcess As Long Dim lret As Long lret = ShellExecute(Me.hwnd, vbNullString, _ "ファイル名パス\sample.mdb", vbNullString, _ "c:\", SW_SHOWNORMAL) hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 1, lret)
FindExecutable ?
関数のParamArray指定された引数に、 ハードコーディングじゃ無しに 動的配列を渡せますか? いろいろ試してみたのですが、 関数内ではからっぽのVariant型になってしまうのですが‥
817 :
デフォルトの名無しさん :02/10/29 13:44
>>816 配列を格納した Variant が 1 つ渡るんだろ。
818 :
デフォルトの名無しさん :02/10/29 13:47
>815 ダメだった。 hProcess取得してくれない。
Private sub Main Dim strtest() As String ReDim strtest(0 To 2) strtest(0) = "a" strtest(1) = "b" strtest(2) = "c" Call test(strtest()) End Sub Private Function test(ParamArray vntArr() As Variant) As Boolean MsgBox UBound(vntArr()) End Function て感じで UBound(vntArr()) = 0 になってしまうんですよ VB6なんですが。根本的にボケてますか?
>>819 その場合ParamArrayを使う理由がない気が...
Private Function test(var As Variant) As Boolean
MsgBox UBound(var)
End Function
>>814 ShellExecuteの戻り値はプロセスIDではないよ。
つまりShellExecuteでは不可能。
ShellExecuteExならプロセスハンドルも取得できるが、
Shell関数で起動した方が簡単だと思う。
>820 人様の作った関数‥そういう仕様なんです‥ 使えんからラッパー作りたいんですが(。´Д⊂)
>>822 んじゃ
MsgBox UBound(vntArr(0))
「使えん」は言い過ぎでした。ご免なさい 「諸々の都合」ってやつですね 私も大したもんではないですのでハイ
825 :
デフォルトの名無しさん :02/10/29 14:56
>>821 実はその方法も考えたのですが、
起動させるファイル(拡張子)がmdbである為
lret = Shell("c:\winnt\notepad.mdb", vbNormalFocus)
のような起動だとエラーが発生してしまい
lret = Shell(SysCmd(acSysCmdAccessDir) & "MSACCESS.EXE " & "ファイルパス名", vbNormalFocus)
のようにするとmdbは起動するのですが、
指定mdb以外にもう1つmdbが起動してしまいます。
> lret = Shell(SysCmd(acSysCmdAccessDir) & "MSACCESS.EXE " & "ファイルパス名", vbNormalFocus) このコードをVB側に書いてんの? だったらSysCmd()の呼び出しでAccess.Applicationの 暗黙のインスタンスが作られるんだから当たり前。 ShellでやるならAccessのパスを別の方法で取得するか、 または CreateObject("Access.Application").SysCmd(acSysCmdAccessDir) のように一時的なインスタンスからパスを取得するか、 またはいっそのことShellでなくオートメーションで Accessを起動してhwndAccessAppプロパティからプロセスIDを得る。
827 :
デフォルトの名無しさん :02/10/29 15:43
Picture Boxについて質問です。 ペイントブラシ(MSPaint.exe)よりも簡易な描画・bmp保存ツールを作成中なのですが、 Picture Box上の絵を任意の位置に移動するという処理方法で、 Psetで1ピクセルづつ描き移すというのしか思いつかず、 これだと処理速度が遅く、困っております。 何か良い方法がないものでしょうか?
フォントが使用できるキャラクターセットを列挙するには、どのようにすればいいのでしょうか? ご教示お願いします。
829 :
デフォルトの名無しさん :02/10/29 15:55
ボタンを押したらText1の URL に対し、 1.response header をText2 に表示 2.htmlソースを text3 に表示 3.htmlを解釈したものを???に表示 という動作をやりたいんですが、 1.2.を Inet、3を WebBrowser と2動作に分けてやれば出来るんですが、 一度の request にて上記123を満たすにはどうすればいいでしょうか?
>828 Screen.Fontsでフォント名を取得して、StdFont.Nameにセットしてみる。 Win2k以外はこれでうまくいきます。 Win2kの問題の回避方法をご存知の方いませんか?
831 :
デフォルトの名無しさん :02/10/29 16:27
IEを監視してURLの履歴を取るソフトを作っているのですが 件数が1000とかになるとメモリに格納できなくなります(当たり前ですが そこで配列が100を超えると101件目からDatファイルなどに書き込んでそこから読み取ろうと思うのですがどうしたらいいでしょうか? 現在のやり方 リストボックスからX件前を表示 履歴(X)をTEXT1に表示。IEコントロールでページをプレビュー表示 やりたいやり方 履歴が100を超える 1件目のデータをDATの一行目に書き込む さらにもう一度履歴を取る DATカウント+1 2件目のデータをDATの2行目に書き込む DATカウント+1 でリストボックスで1件目を選択 (DATカウント)行目を参照し TEXT1に表示。IEコントロールでページをプレビュー表示 ってな感じにしたいのですが・・・・ 説明が長文&わかりにくくてすいませんがご助言宜しくお願いします。 検索もしたつもりですがお勧めの参考ページなどありましたらそちらも教えていただけるとありがたいです。
昨日、630さんにいただいたソースで、listboxのファイルをupすること ができました。 .Execute , "PUT " & Me.List2.List(n) & " " & Me.List2.List(n) 現在、Upするときに付けるファイル名もフルパスになっているのですが、 これをファイル名だけにするには、どうしたらよいのですか? (上の行の後ろのMe.List2.List(n)を工夫すれば良いはずなんですが。
>>832 .Execute , "PUT """ & Me.List2.List(n) & """ """ & Me.List2.List(n) & """
ってしといたほうがいいよ。
フォルダにスペースとかはいってたらうまくいかないから。
>>832 Option Explicit
Private Declare Function GetFileTitle Lib "comdlg32.dll" Alias "GetFileTitleA" _
(ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer) As Integer
Private Sub Form_Load()
Dim fileName As String
fileName = String(256, vbNullChar)
GetFileTitle "c:\hoge.txt", fileName, 256
MsgBox fileName
End Sub
FileName = Dir("c:\hoge.txt")
>832 IISでは"PUT ローカルフルパス"だけで、自動的にファイル名だけになったので 確認せんかった。 対処は>833 >834のとおり。
>>826 ShellExecuteExで動作しました。
ありがとうございます。
Shellの方は
パス名が取得できませんでした。
lret = Shell(パス名, vbNormalFocus)
この時点でパス名が狂い、エラーになってしまいます。
>831 やりたい事とかはともかくとして、何が分からないのかはっきりせぇよ。
>>831 1000件くらい余裕だと思うが。10000件でも余裕だと思うが。
そもそもIEは自力で履歴を取ってるのだが・・・。
843 :
807 ◆LL.98XOPJI :02/10/29 19:57
>>810 ありがとうございます。早速ぐぐってみました。
やはり、ローカルフックならVBでも可能だけれど
グローバルフックをするにはDLLを必要とするみたいですね。
しかもそのDLLをVBで、って訳にはいかないそうで・・・。
ちなみに自分がやりたいのは
他のプロセスのウィンドウ一つについて監視したいだけなのですが
それでもやはり自アプリ内の事ではないのでVBでは無理ですかねぇ。
調べていたら
http://www.int21.co.jp/pcdn/vb/vb5/vb5adrof.html にて、丁度自分がやりたい事のようなサンプルがありました。
そしてそこで使われているのは「SetWindowLong」なのですが
これでも外部プロセスのウィンドウを監視することは出来ないのでしょうか。
>>807 一つ厳しい事聞いていいか?
SetWindowLongの意味もわからないのに
メッセージフックしてなにがやりたいんだ?
他プロセスのメッセージ取得したいだけなら
VBから使えるフックOCXなんていくらでも転がってると思うぞ。
お疲れです。
>>630 さんのお蔭様でプログラムらしくなってきました。本当に有難うございました。
>>614 さんのソースを見てて、TextBoxに何も入ってない時には送信ボタンを無効化させないと
まずい事に気づいてそれに関して調べたりしてます。
プログラムって完成に近づくにつれて不具合が見つけたり、問題点が分かったりして奥深いですね。
今まで使ってたソフトのプログラマの皆様には感謝感謝です。自分でプログラム始めて初めてわかる
有難さ。
さて、今日は自分が使いやすくする為にTextBoxをドラッグ&ドロップに対応させてみました。
ソースはこんな感じにしました。
-------------------------------------------------------------
Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, _
Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.Text = Data.Files(1)
End Sub
-------------------------------------------------------------
段々らしくなってきたので、アイコンを付けてみようかなとも思ってます。
後少し!頑張ります!
>>843 > 他のプロセスのウィンドウ一つについて監視したいだけなのですが
個数は関係ないよ。
> そしてそこで使われているのは「SetWindowLong」なのですが
> これでも外部プロセスのウィンドウを監視することは出来ないのでしょうか。
SetWindowLongは別プロセスで作られたウィンドウの
プロシージャを書き換えることはできないし、
そもそもアドレス空間が異なるという大前提は理解してるの?
その外部プロセス側のコードを変更できないとすれば、
とにかくVBだけでやろうとするなら、DLLの中に
静的なコールバック関数を作る方法を考えること。
(俺には方法が考えつかない)
APIの引数にコールバックとしてDLLのハンドルと関数ポインタが必要 標準モジュールの関数ポインタはAddressOfで取得できる ActiveX DLLを作成 標準モジュールの関数ポインタを取得するCOM用の関数を作成 ActiveX DLLをCOM経由で関数ポインタを取得 ActiveX DLLをLoadLibraryでロードしDLLのハンドル取得
>>845 それじゃ一個しか登録されないから、
For i=1 to Data.Files.Count
List1.additem Data.Files(i)
Next i
と。
何もみずに書いたので間違ってるかも
ん?TextBoxなの??
すごくシンプルなところでエラーが出てしまいました。 メディアプレイヤーコントロールを使っていて、フォームにファイルをドラッグすると再生するのはうまくいきました。 mediaplayer1.filename = data.files(1) このときのdata.files(1)の中身はドラッグしたファイルのフルパスです。 でもアイコンにドラッグして再生するのはエラーが出てしまいました。 'フォームロードの中に記述 mediaplayer1.filename = command() mediaplayer1.filenameの中は空文字でした。でもcommand()の中はdata.files(1)と同じフルパスが入っていました。 もしかしたらフォームロード時にはまだmediaplayer1オブジェクトがないのかなとおもって、いったんグローバル変数に入れてから mediaplayer1.filename に入れてみましたが、同じ結果になりました。 なんでmediaplayer1.filenameに同じストリング型を代入しても入るときと入らないときがあるのでしょうか?
(^Д^)ギャハ!↑みなさん、この人のレスどう思いますか♪ なんてありきたりなんでしょうね♪ 誰もが皆、一瞬つけてみたくなる発想のレスです♪ しかし、賢明な人はその自らの短絡的思考を野放しにする事を嫌がり、 こういうレスは控えます♪ しかし、この人はしてしまったのです(^^;ワラ 「誰もが思い付くような事」を堂々と♪ この人にとってこのレスは何なのでしょうか♪ このレスをしている間にも時間は刻々と 過ぎ去っているのです♪ 正にこの人のした事は「無意味」「無駄」でしかありません♪ ああ・・・何ていう事でしょう(^^;ワラ 図星で泣いちゃうかも(^^;ワラ
コピペウザイ
動物園の猿からかうようにちょっかいを出したくなる気持ちは分かるが、相手をしてはいかんよ。
いったいどんな人間と思っているのかな。学校の時クラスにいた変な奴とか職場にいる変わった奴とか、
そんなレベルで考えてたら大間違いちゃう?
そういうのはあくまでも健常者。カキコしてるのは、養護教育とか精神医療の対象者だよ。
興味の対象が固着して、前スレからエンドレスに同じ行動を繰り返してる。正常な人間ならとてもでき
ない。明らかに精神障害者でしょ。こういう人間は、健全な自我とか自尊心とかは、形成されていない
か崩壊してる。だから揶揄しても無駄。
精神科の個室に閉じこめられた患者が、孤独と退屈を紛らすため、廊下をとおる看護師や雑役婦を振り
向かせようとするにはどうするか。こいつは、ネットでそれと同じようなことをしているだけ。
無秩序な人格が、反応を求めて彷徨っているのよ。画面に反応が現れるという、その一点に興味と関心
が集中し、ずっとそのまんま。精神の荒廃は相当進んでいると思う。
何かポイントを突いたようなカキコをする場合もあるが、それは模倣によるもの。
他人を模倣する能力は、幼児など人格自律性が薄弱な者ほど高い。こういう人たちは、健常者の言った
立派な挨拶をそのまま他所で真似して喋り、その場の人をビックリさせるようなことがある。
>>855 こいつのカキコも、真似の結果たまたま意味のある内容になっているだけ。効果的と思われる幾つかの
パターンを学習しているにすぎない。意味にこだわってはいけない。
このスレでは、他の健常者との区別は截然としているのだから、別に支障もないでしょ。
憐れみつつ、放置しておきましょう。それが一番。
VB4.0でラベル等に中国語を入力・表記したいのですが、 日本語版でそのような事が可能でしょうか? ちなみにOSは98の2ndエディションです。 IMEもダウンロード済みですがVBを立ち上げると選択できなくなってしまいます。 宜しくお願いします。
レコードセットのFields(0)が見当たらないのですがどうしてでしょうか?
864 :
◆.OZsf3JbRk :02/10/30 21:52
質問です。 MSNメッセンジャーで、右下に出るような ポップアップウィンドウを出したいです。 具体的には、枠無しのWindowで 最前面表示固定のWindowsで 表示されてもフォーカスは一切奪わないWindow と、これだけの条件を満たすWindowを表示したいです。 現にこれを実装しているアプリを多く見かけるので どうにか出来ると思うのですが、何故か上の3つが上手く噛み合ってくれません。 どうしたら↑のようなウィンドウを作成できるでしょうか。
865 :
デフォルトの名無しさん :02/10/30 22:24
GetDiskFreeSpaceExを使ってドライブ容量を取得したのですが、 上位下位にわかれた64ビット変数に値が格納されています。 これはどうやったら処理できるのでしょうか? DiskSize=(FreeSize.HighPart * 2147483647) + FreeSize.LowPart ってやるとオーバーフローになってしまいますし
867 :
デフォルトの名無しさん :02/10/30 23:04
VB6ですが、Printerオブジェクトへの出力で印刷をしてるのですが プレビューができず困っています。良い方法とかツールってないでしょうか? あと、リストボックスのアイテムをドラッグして任意のテキストボックスに ドロップってできないでしょうか? もしよければお教え下さい。
868 :
デフォルトの名無しさん :02/10/30 23:08
>>867 プレビューするには、PictureBoxに出力するしかない。
共通ルーチンに対してオブジェクト変数を渡すようにすれば、
コードもムダにはならない。これ基本中の基本。
アイテムのドラッグは自分で実装すればよい。
>>866 つかってみますたが、オーバーフローでてダメですた。
872 :
デフォルトの名無しさん :02/10/30 23:46
867
>>869 &
>>870 サンキューです。さっそく試してみます。ドラッグ&ドロップもよろしくお願いします。
(一応ぐぐってはみたのですが見落としてますね・・・)
873 :
デフォルトの名無しさん :02/10/31 00:00
>>870 さっそくトライアル判をダウンしたけど
VSPrinterって自由に使っても良いのかな?
結構良さそうです。謝謝♪
>>873 再配布にライセンス料とかは必要ないはずだよ。
876 :
デフォルトの名無しさん :02/10/31 00:13
>>865 Dim DiskSize As Variant
DiskSize = CCur(HighPart) * 2147483647 + LowPart
あたりでどうだろう。
>>848 レス頂きありがとうございます♪
Txtboxなの?と書かれてて頭に「?」が浮かんでたんですが、通常はListboxの方なのですね…。
全く解かって無いままでした。これからLISTに変えてみます!
皆さんのおかげで段々プログラムらしくなってきました。
アイコンは、32X32のBMPの拡張子をicoとすれば良いと思ってたんですが、大違いだったんですね(汗
32X32で作成したBMPのコンバーターはこれを使用しました。
フリーで高機能なグラフィック閲覧ソフト「XnView」です。
http://www.xnview.com/
>>866 Currency型とか浮動小数点に変換して計算しな。
dim w@
w=ccur([下位32ビットが格納されている変数])
if w<0 then w=w+4294967296@
w=w+ccur([上位32ビットが格納されている変数])*4294967296@
hogehoge.caption=format$(w,"#,###0")+" Bytes"
bogeboge.caption=format$(w/1024@/1024@,"#,###0")+" MBytes"
こんな感じ。試してないけどうまくいくだろ、たぶん。
>>878 じぶん、符号の処理わすれてますた。
めんどくさいけど
if w<0 then w=w+4294967296@
は必要な処理ですね。。。
http://www.tripod.co.jp/guides/cgi2.html このsendmail
と、上のWAUを使いたいです。
宜しくお願いします。JAVAアプレットオフの人をとばす文字列も教えてください・・
noscriptみたいな感じでしたっけ・・
又、CGIボーイのアクセス解析いれたら、
左下にGETIPIPPLET と表示されます、クリックしたときに。
これはCGIボーイですか?それとも関係ないでしょうか。宜しくお願いします。
CGIボーイって、アクセス売ってるって話ありますが、裏にどこがついてるんでしょう・・お願いします
もう一回はります。
http://www.tripod.co.jp/guides/cgi2.html このsendmail
と、上のWAUを使いたいです。
宜しくお願いします。JAVAアプレットオフの人をとばす文字列も教えてください・・
noscriptみたいな感じでしたっけ・・
又、CGIボーイのアクセス解析いれたら、
左下にGETIPIPPLET と表示されます、クリックしたときに。
これはCGIボーイですか?それとも関係ないでしょうか。宜しくお願いします。
CGIボーイって、アクセス売ってるって話ありますが、裏にどこがついてるんでしょう・・お願いします
>>865 というか、わざわざULARGE_INTEGERなんて用意しなくても
64ビット整数であるCurrency型で直接処理すればいいと思うが。
Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" _
Alias "GetDiskFreeSpaceExA" _
(ByVal lpRootPathName As String, _
lpFreeBytesAvailabelToCaller As Currency, _
lpTtoalNumberOfBytes As Currency, _
lpTtoalNumberOfFreeBytes As Currency) As Boolean
戻されたCurrency型引数に10000を掛ければ本当の数値が得られる。
あ、上の関数宣言は戻り値をLong型で宣言すべきだな。
>880
逆に質問させてください。
1)Perlの質問と思われるのに、WebProg板(
http://pc.2ch.net/php/index.html )で聞かずに、
VB初心者スレッドで質問したのは何故でしょうか?
2)「上のWAU」「とばす文字列」「CGIボーイ」「アクセス売ってる」とは何でしょうか?
不勉強ですいません。
3)日本人ですか?
なんかうまくいかないので自力で
Private Function fLowBit2HighBit(HighBit As Large_Int) As Currency
Dim cFlg As Currency
Dim w As Currency
cFlg = 0
w = HighBit.HPart
If HighBit.LPart < 0 Then
HighBit.LPart = HighBit.LPart - &H80000000
cFlg = 1
End If
fLowBit2HighBit = HighBit.LPart + (cFlg * &H7FFFFFFF) + (w * 4294967296#)
End Function
っての作ってあげたらうまくいきました。
>>881 それだと型が一致しませんですですっていわれます
>>884 http://ww3.enjoy.ne.jp/~kazu.ohara/SampleCode.html みてやってみたけど
double型で/ 4.94065645841247E-324 で取れたよ。
Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" _
Alias "GetDiskFreeSpaceExA" _
(ByVal lpRootPathName As String, _
lpFreeBytesAvailabelToCaller As Double, _
lpTtoalNumberOfBytes As Double, _
lpTtoalNumberOfFreeBytes As Double) As Boolean
Private Sub Command1_Click()
Dim strRootPathName As String
Dim lintFreeByteAvail As Double
Dim lintByteSize As Double
Dim lintByteSpace As Double
Dim blnRet As Boolean
strRootPathName = "c:\"
blnRet = GetDiskFreeSpaceEx(strRootPathName, _
lintFreeByteAvail, _
lintByteSize, _
lintByteSpace)
MsgBox lintByteSize / 4.94065645841247E-324
End Sub
887 :
デフォルトの名無しさん :02/10/31 09:25
フルパスからドライブ名を取得するのはどうやればよいのでしょうか? 単にLeft(DriveName,2)だとネットワークドライブ名が取得できませんし、 文字列操作だと区切りが\とか/、はたまたウォンとかあるようです。 ファイル名を取得するのはAPIがあるようですが。 VBScriptは使用しない方法がよいです。
>>887 区切り文字がChr(&H5C)以外のWindowsってみたこと無いんだけど。
>>887 ネットワークドライブの場合ドライブレターという概念がないのでは?
まぁ、どっちにしろ初めから一つの\までだろうけど。
え?そうなんですか? 「/」(文字コード42)でもいけちゃうじゃないですか。
>>890 使う人いません。それでエラーが出て文句言う人はいません。
>>884 > それだと型が一致しませんですですっていわれます
はあ? 何言ってんの?
Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" _
Alias "GetDiskFreeSpaceExA" _
(ByVal pDirectoryName As String, _
lpFreeBytesAvailabelToCaller As Currency, _
lpTtoalNumberOfBytes As Currency, _
lpTtoalNumberOfFreeBytes As Currency) As Long
Sub Sample()
Dim a As Currency, b As Currency, c As Currency
If GetDiskFreeSpaceEx("C:\", a, b, c) Then
Debug.Print "使用可能", a * 10000
Debug.Print "全容量", b * 10000
Debug.Print "空き容量", c * 10000
End If
End Sub
これだけでできるんだが。
VBに型なんてあったのか・・・!?
>>893 わざわざ書くな。部外者は他所言ってくれ。
>>894 わざわざ書くな。部外者は他所言ってくれ。
>>895 わざわざ書くな。部外者は他所言ってくれ。
>893 あるよ、A香港型とか
>>893 いろいろなスポーツに型があるようにVBにも
やはり型は存在します。型は、とくに日本古来の
武術において重要視されています。
たとえば弓道。これなどは、型がきっちりと
決められるようになるまでは矢を射ることが
禁じられているのです。そして、型を決めることが
できるようになった暁には、もうその矢がどこへ
飛んでいこうが知ったことではないのです。
ここに真の行き当たりばったりとはなにか、という
問いに対する答えのすべてがあるのですね。
VBの型もおなじです。まず型を徹底的に極めなさい。
そのあとはおのずとあなたの前にはすばらしい人生が
開けてくるはずです。
やっぱDelphiだな。
901 :
デフォルトの名無しさん :02/10/31 19:41
D e l p h i マ ン セ ー !
902 :
デフォルトの名無しさん :02/10/31 21:31
すいません、テンパってます。 VB暦、6日目にして、明日今作ってるものの期限の者です。 FTPサーバー上から、フォルダを取得したいんですけど、 どうしたらよいんでしょうか? 自分なりに調べてみたんですけど、どうしても見つかりません。 なんでも良いんで、情報をお願いします。 今日は、会社に泊まりです。
>>902 なんだ? 素人がFTPクライアントを作るのが流行なのか?
DIRをExecuteして、後ろに / がついてるのがディレクトリ。
>>785-791 あたりにソースが出てたぞ。
905 :
デフォルトの名無しさん :02/10/31 22:04
labelについて質問です labelでは、「文字に合わせてラベルのサイズを変更」はAutosizeで出来ますよね 逆に「ラベルのサイズに合わせて文字の大きさを変更」っていうのはできるのでしょうか?
>>905 通常、動的にラベルの大きさ変えるヤツいないですから。
できると思うし方法も思いついたけどあまり美しくないのでもっと美しい方法を教えてくれる人待ち
>>907 取りあえずResizeイベント捕まえて高さと幅取得してもごもごすれば?
>>907 君と同じ方法を思いついた。それでいけ。
もう一つ思いついたが、内緒。
910 :
デフォルトの名無しさん :02/10/31 22:59
902
>>903 さん 904さん
ありががとうございました。
さっそく見ています。
ボクのVBが風ひきました
914 :
デフォルトの名無しさん :02/10/31 23:24
テキストボクース
916 :
デフォルトの名無しさん :02/10/31 23:35
昨夜はありがとう。 ところでVS-VIEWで手に入るVSPrinterですが、使用すると バージョン情報なるダイアログが表示されて激うざです。 製品を購入しないと消えないのでしょうか?
917 :
デフォルトの名無しさん :02/10/31 23:37
エクセルのデータをテキストのようにINPUTできないのでしょうか?
>>914 ネタじゃなく教えてほしいんなら、ふざけた態度を改めよ。
(*´д`*) あっ、すみません。 じゃあ、テキストボックスってことでひとつお願いいたします。
>>908 >取りあえずResizeイベント捕まえて高さと幅取得してもごもごすれば?
"もごもご"の部分っていうのは、高さと幅に合わせてフォントサイズを拡大するっていうことですか?
"もごもご"の部分ってどうすれば?
>>920 頭を使わないプログラマってさ、
PC初心者でも出来る!簡単な宛名の入力のお仕事です。
仕事をしながらPCに強くなれます。
とレベルが変わらないと思うんだがどうか?
922 :
デフォルトの名無しさん :02/11/01 00:35
アクティブウィンドウ上でのマウスイベントで 例えば、ボタンがクリックされたなどの判定をするにはどうすればいいんでしょうか・・・ どなたかお願いします。
>>922 純粋にClickイベントをハンドリングすればいいのでは?
日本語とネギしょったカモ
悪いことはいわないから(以下略
>>921 なるほど、ラベルとレベルをかけている訳か。
おい920君、座布団もってきてやれ。
920に言っておく。
こうすればできるかなと少しでも思ったら試してみろよ。
仕組みを確認するための小さなプログラムとか
みんな星の数ほど書いて技術を身に付けてきてんだぞ。
ここはVB初心者スレだが人間初心者スレじゃないぞ?
俺もかなり偉そうな事言ってるのはわかってるが、
「自分ができるけど面倒だから他人にやらせよう」ってスタンスのお前は
そんなに偉いのか?
>>926 プログラムって言うのは文章を書くという行為に非常に似ている。
まず、文法を覚え、どういう表現が存在するのか把握する。
次に、いろいろなモノを参考にいろいろ書いてみる。初めはもちろんうまくいかない。
しかし、書き続けていればうまくなっていく。
彼女に気持ちを伝えたいんですがどんな文章を書けばいいですか?
ん?だから相手を好きになった経緯とかごにょごにょ書けば?
それはどうやって書けばいいんですか?
お前の手紙だ。お前の好きなように書けよと。
後、ついでに本厨にも言っておく。
初めのうちから「うまい文章の書き方」なんぞ読んでも文章はうまくならん。
自分のスタイルを理解しその問題点をきちっと把握してから読むものだ。
そんなんで育ったら融通の利かないお役所書類しか書けなくなるぞ。
>>926 Resizeで高さと幅を取得して、それをどうやってフォントサイズに生かすかがわからないんで試そうと思ってもできないんです。
>>914 ふざけた態度を改めてるとは思えんな。
「じゃあ」ってなんだよ。おめぇは消防か?
とか言っておきながら回答つけてみたりw
LostFocusイベントにでもこれいれてみて。
Text1.SelStart = Len(Text1.Text)
要はカーソルを一番後ろにもっていってやってるわけ。
ちなみにオイラの環境では文字列の右側が切れたりしないよ。
環境やプロパティの状態によっても違ってくるかもしれないから
今度からはそこら辺も書いた方がいいね。
わかったかボケ
>>923 もしよろしければ、コードを・・・
自分がやるとVBのフォーム内ではマウスイベントが発生するのですが
アクティブにしたIEなどではマウスイベントが発生しなくて困ってます。
>>928 >>905 高さと幅の取得方法は知ってるんだね?
フォントサイズって数値だってのはわかるよね。
高さと幅も数値だよね。
つまり数値から数値への変換な訳だよ。
で、どんな係数や式で変換できるか、これが問題だよね。
初めに戻るけど高さと幅の数値はわかる訳だよね。
そのときの君が最適と考えるフォントサイズってのもわかるよね。
まぁAutoSize=Trueしてみて値をとってみてもいいよね。
そうやっていくつかの組み合わせを「試して」
その数値の組み合わせを紙に書いて見てみよう。
どうだい?中学の数学の時間にやったような記憶はないかい?
数列とかの時間に等差数列とか等比数列とかやったような気がするでしょ。
(君がまだ中学生や小学生だというなら僕の見当違いだったかもしれないね。
そのときは学校の先生に聞いてみるか、あと数年待った方がいいね)
別の考え方もしてみよう。
ヘルプにちゃんと書いてあるからわかっていると思って話してなかったけど、
フォントサイズってのはポイント単位だってのは知ってるよね?
高さや幅の単位はどうなってるかな?
君がコンテナオブジェクトのScaleModeプロパティをなににしているかは
僕にはわからないんだよ。とっても残念だけどね。
で、ScaleModeプロパティをよくみてみると・・・
おや?「2-ポイント」ってのがあるよね。
ってことは高さや幅の単位とフォントサイズの単位を同じにできるかも!
同じ単位ならあとはそのまま代入でいけるかもしれないね〜
さぁレッツ・トライ!「試せる」よ!
>>922 IEって、他アプリ上でのクリックを取得したいってこと?
それならフックするのが一番かな。
システムフックをする必要があるからVBだけでやるのは茨の道。
VCとかでちょちょいっとDLLを書いてやるか、
システムフック可能なOCXとかあちこちで見かけるから
それ使わせてもらうのが簡単だね。
どんなアプリ作ろうとしてるのか知らんけど、
複数のアプリを動かせる仕掛けのOSでは
他アプリの情報は簡単には取得できないようになってるもんだよ。
もちろん裏技というか抜け道は必ずあるけどね。
そういう普通じゃないアプリ作成にはVBは向かんよ。
>>932 なるほど。ScaleModeプロパティと言う手があったんだ
ありがとうございました
変な文章で、毎日煽り入れるだけで、回答してやれないヤシ(推定だが毎日同じヤシ)、 目障りだから氏ねよ。 さ、会社逝こうっと。
936 :
デフォルトの名無しさん :02/11/01 07:53
TextOut でモノクロプリンタに出力するテキストの色の濃さを変えたいのだが SetTextColor は効かんようだ 方法を教えてくれ
プリンタドライバ (もしくはOS?) によって結果が異なるようだ スマソ無視してくれ
そもそも全然VBの質問じゃないしな、それ。
>>916 そりゃ、評価版なんだからしかたないんじゃない
もうひとつ ExtCreatePen について Win98 は問題ないが Win2000/XP だとハンドルが取得できん 方法を教えてくれ
>>939 謝れとは言いませんがこちらもちょっと大人気ないのですが
ムカついたので友達のハッカーに頼んであなたの個人情報を
探してもらうことにしました。あ、もう遅いですよ。
もうすでに友達解析始めちゃってますから・・・(^^;
ちなみにこれは自慢じゃないんですがその友達は日本でも
5の指に入るくらいの凄腕のハッカーです。
この前彼の家に遊びに行ったらものの5分で他人の個人情報を
抜き取っていました。
彼にとってそれくらい赤子の指をひねるくらいの行いなんですよね(爆)
これであなたもいっかんの終わりってやつですね(^^;
まあせいぜい後悔してくださいね。
それからもう二度と荒らしはしないこと(その友達は荒らしが大嫌いらしいです。
荒らしを見つけたら即解析に入るみたいです。(^^;)
それでは、う〜ん二日後くらいかな?また例のところに来てくださいね。
あなたの住所本名住所その他もろもろのせておきますんで(笑)
あ、警察とかに言ったって無駄ですよ。
あなたは荒らし(犯罪)なんだから通報したところで捕まるのは アナタです
友達は掲示板のログを自在に操ることができるんです。
と、いうことでbye♪(^O^)/~~
>>942 大まかなポイントは押さえてあるので,ほぼ良いのではないでしょうか.
欲を言うと,もう少し文章に力が欲しいところです.
944 :
デフォルトの名無しさん :02/11/01 13:49
Me.Hide とやっても 非表示にならないFormがあるんです、 これを非表示にするには、どうしたらいいのでしょうか?
>>944 非表示にならないFormについて詳細に書いてね。
946 :
デフォルトの名無しさん :02/11/01 13:53
Shellを使って、外部.exeを起動させようと思うのですが、フルパスを 指定しないで(exe名のみで)、起動させたいのですが、うまくいきません。 Shell("calc.exe")とかShell("notepad.exe")は、これだけで起動するんですが、 Shell("c:\Program Files\Afolder\Bfolder\client.exe")は、 Shell("client.exe")だけでは、「実行時エラー53ファイルがみつかりません。」 となってしまい、うまく動作しません。 どうすれば解決できるのでしょうか?
948 :
デフォルトの名無しさん :02/11/01 14:04
エクセルのアプリケーションオブジェクトを操作するプログラムを書いています。 が、どんなプロパティやメソッドがあるのか、わかりません。 どこを探したら良いでしょうか。
>>948 VCでタイプライブラリをインポートする
>>947 ありがとうございます。
WinXPを使っているのですが、
システム→詳細設定→環境変数→ユーザ環境変数と辿っていき、
pathのところに「;c:\Program Files\Afolder\Bfolder\client.exe」と追加
してみたのですが、状況が変わりません。
何かのバッチファイルとかを書かなくてはいけないのでしょうか?
それとも書き方がおかしいんですかね?
そもそもが良くわかっていないので、よろしくお願いいたします。
(何かに何かの設定をすれば、フルパスを打たずに実行できるように
なりそうだ、というのは理解しているのですが・・・)
>>953 client.exeはいらないと思うがどうだろう
>946 分かってない割には的確だな。中途半端だけど。 「;c:\Program Files\Afolder\Bfolder」でよし。
なんでわざわざシステムの環境変数をいじってまで フルパス指定を避けたいんだろう?
chdir はダメ?
958 :
デフォルトの名無しさん :02/11/01 16:09
>949-952 レスありがとうございました。 いろいろ見てみます。
959 :
デフォルトの名無しさん :02/11/01 16:10
>>954-955 (630)さん、ありがとうございます。
言われた通りにしてrebootしたら出来ました。
>>956 今作ってるアプリを使うのが特定のマシンとは限らないんです。
で、呼び出すEXEが格納されているディレクトリはマシンによって異なる
可能性があるんで、何か回避方法はないかな?と思ったのです。
ありがとうございました。
>>960 iniファイルとかレジストリとかに絶対パスを設定するようにしたほうがイクナイ?
>>960 > 今作ってるアプリを使うのが特定のマシンとは限らないんです。
> で、呼び出すEXEが格納されているディレクトリはマシンによって異なる
だったら別にフルパスのままでいいじゃん。
s = "c:\Program Files\Afolder\Bfolder\"
( ↑ 実際にはレジストリや設定ファイルから取得)
Shell s & "client.exe"
わざわざシステムの設定を書き換える必要はないと思うが。
あ、ごめん。961とかぶってたわ。
shellを使ってエクスプローラを開くときに指定したフォルダを開きたいときは どうするんでしょうか?
>>964 何で開きたいのかによるがな
Shell "EXPLORER.EXE C:\WINDOWS", vbNormalFocus
>>965 さん
コマンドボタンを押したらお気に入りのフォルダがたちどころに開けるとベンリなのでつくってみたかったです。
ありがとうございました。
967 :
デフォルトの名無しさん :02/11/01 19:07
2つのフォームを使って1つ目をメニューにして、2つ目で作業するとして、 フォーム1の「開始」みたいな感じのボタン Dim frm2 As New Form2() frm2.ShowDialog() Me.Hide() フォーム1の「終了」ボタン Me.Close() フォーム2の「メニューに戻る」みたいな感じのボタン Dim frm1 As New Form1() frm1.Show() Me.Close() とするとプログラムが終了してくれないんですけどどうしてでしょうか? VB.NETです。
>>967 VB.NET?
とりあえずフォーム1がフォーム2によって新規に作られてるかなじゃない?
Dim frm1 As New Form1()
969 :
デフォルトの名無しさん :02/11/01 19:24
>>968 答えていただいてありがとうございます
確かにForm1がもうひとつ作られて、「終了」で閉じられているのは
1つだけになっているようです。
新しく作らないようにするにはどうやってfrm1を宣言すればいいのでしょうか。
As NewのNewを何かに変えればいいのですか?
>>VB.NET?
ごめんなさい勝手に略しました。VisualBasic.NETです。
6.0と.NETではだいぶ違うらしいので・・・
(最近やり始めたので6.0はわかりません)
すみません。VB.NET用のスレがあるの知りませんでした。 そっちで聞いてきます。
972 :
デフォルトの名無しさん :02/11/01 20:26
( ´,_ゝ`)プッ
973 :
デフォルトの名無しさん :02/11/01 21:50
975 :
デフォルトの名無しさん :02/11/02 11:24
VB6でActiveX EXE形式でコンパイルしたファイルを 削除しようとしたのですが、 REGSVR32ではActiveX Dll,Ocxなどはレジストリから削除できるのですが、 ActiveX EXEはできないようです。 どなたか方法知っていたら教えてください
>>975 hoge.exe -Unregserver
(hoge.exeがそのActiveX EXEのフルパス名ね)
977 :
デフォルトの名無しさん :02/11/02 17:09
>>976 解決しました!!
ありがとうございました。
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
このような感じでデータベースに新規レコードを追加しています。
発生するときと発生しないときがあり、どうしても解決できません。
ダレモイナイ…
1000get スルナラ…
イマノウチ…
ランタンタン♪ ランタンタンタン♪
2重カコキにもマケナイゾ…ット。
ランタンタン♪
987 :
デフォルトの名無しさん :02/11/02 18:37
まもなくここは 乂1000取り合戦場乂 となります。 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( ) ( ) ( ) ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( ) ( ) ( ) ( )
( ´,_ゝ`)プッ…
989get
今だ!990番ゲットォォォォ!!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´ ∧∧ (´⌒(´ ⊂(゚Д゚ )≡≡≡(´⌒;;;≡≡≡ ⊆⊂´ ̄ ⊂ソ (´⌒(´⌒;;  ̄ ̄ ̄ ズザーーーーーッ
ヾ(;゚∀゚)ノシ ガッセンハジマル
>>980 わるいけど、次スレ持ち越しってことで
(゚∀゚)
(´∀` )
(,,゚Д゚)
(´д`)
(・ω・)
(゚∀゚)~°アヒャヒャ
1000
1000
┌┐ ●●● 人 ││ ●\ ●\ ノ二\ ナ ゝゝ V ●●● ●\ ●\ / / 乙 つ O ●\ ●\ ●\ ●\ ●●● ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●●● \ ●\ ●\ ●\ ●\ ●\ \\ ●\ ●\ ●\ ●●● \ ●\ ●\ ●\ \\\ ●\ ●●● \ ┌┐ ┌┐ ●\ \\\ ┣━┳┃┃ ┃ ││ ││ ●●●\ ┃ ┃┃┃ ┣┓ ━╋ ━╋ V V \\\\ ┛ ━┛ ┃ ┏┫ ┏┫ O O (´´ /■\ ) (´⌒(´ ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;;
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。