トップページ⇒tech
1001コメント323KB

(*´д`*)ハウァッ… VB初心者質問スレ Part16

レス数が1000を超えています。これ以上書き込みはできません。
0001エロチカセヴンNGNG
>>2-999
悪いことは言わないから(w)、転職、または他部門への異動を真剣に
検討して頂きたい。技術のない技術者(言葉が矛盾しているが w)の
存在は、顧客にとっても、同業者にとっても、迷惑(足手纏い)以外の
何者でもない。


  Part11 http://pc.2ch.net/tech/kako/1024/10243/1024380249.html
  Part12 http://pc3.2ch.net/test/read.cgi/tech/1026642565/
  Part13 http://pc3.2ch.net/test/read.cgi/tech/1029241786/l50
Part14 http://pc3.2ch.net/test/read.cgi/tech/1030947162/
Part15 http://pc3.2ch.net/test/read.cgi/tech/1032706491/-100

Win32 API関連スレ
  Win32API 質問箱 Build4
  http://pc.2ch.net/test/read.cgi/tech/1023361418/
心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
4.インストーラーなどの質問もOK。
五.下ネタもたまにならOK
0002エロチカセヴンNGNG
  Part 1 http://piza.2ch.net/tech/kako/968/968328471.html
  Part 2 http://piza.2ch.net/tech/kako/990/990793224.html
  Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
  Part 4 http://pc.2ch.net/tech/kako/1006/10069/1006922992.html
  Part 5 http://pc.2ch.net/tech/kako/1010/10106/1010624646.html
  Part 6 http://pc.2ch.net/tech/kako/1013/10138/1013844542.html
  Part 7 http://pc.2ch.net/tech/kako/1015/10158/1015836357.html
  Part 8 http://pc.2ch.net/tech/kako/1018/10187/1018794901.html
  Part 9 http://pc.2ch.net/tech/kako/1020/10208/1020830472.html
  Part10 http://pc.2ch.net/tech/kako/1022/10221/1022127528.html
0003デフォルトの名無しさんNGNG
>>1
乙
0004デフォルトの名無しさんNGNG
とりあえず使ってみたがなかなかいい感じ
もちろんユーザ登録したぞゴルァ。
0005デフォルトの名無しさんNGNG
転職したいんだけどね。


ほとんどVB+ORACLEしか使っていない部署で働く
  ↓
デスにより、否デスでも精神的に向いてない
  ↓
この業界から足を洗いたい
  ↓
退職を決意し退職
  ↓
他業種を探すがこのご時世なので仕事が無い
  ↓
結局この業界の戻る
  ↓
しかも中途半端な技術+VBしかできないので結局VBの仕事をやらざるをえない。
  ↓
上に戻る


てなやつがいっぱいいるとオモワレ
この業界の体質を改善しないとVB厨は増えつづけると思うよ。
今後もっとね。
0006デフォルトの名無しさんNGNG
>>5
かわいそうだな。まあ気を落とさずに頑張れよ。
0007 NGNG
質問。
タブ区切りのString "123 456 789"
をIntegerの動的配列に入れ込む関数とかってありますか?
0008デフォルトの名無しさんNGNG
>>7
Split。
Splitの戻り値はStringじゃないと駄目な筈だから
Split使った後Intの配列にでも入れれば?
0009897NGNG
っていうか
このスレちんかすばかりなんでしょ?
VB止める前に人生やめたら?
ぷ
0010DNGNG
前スレ897
一寸叩かれ気味ですねぇ。ヘルプ見て分かんなかったらこれ読んでみたら?
   VisualBasic5.0ブリーフィング   翔泳社
分かりやすく書いてあったと思う(知り合いにあげてしまったのであまり覚えてないです)。
0011デフォルトの名無しさんNGNG
>>1
初心者スレにしてそのコピペか。
荒れる予感
0012デフォルトの名無しさんNGNG
どうせみんなコピペって知ってるしもう既に無視してるよ。
つーか言われるまで気づかなかった。
0013デフォルトの名無しさんNGNG
小数点以下を切り捨てたいのですが、どうすればいいのでしょうか?

dim a as long
a = 1.9

このとき a は 2
そこで
Cintのヘルプは丸めるって書いてあったのをみて。

dim a as long
a = cint (1.9)

このとき a は 2
むかついたので「切り捨て」をヘルプで検索

VBのヘルプが出てこない。基本的なことだと思うのですが、
ヘルプに切捨てがのってないなんて・・・・。
0014デフォルトの名無しさんNGNG
>>13
まぁ落ち着いてヘルプ調べろよ。
0015デフォルトの名無しさんNGNG
ググったら一発だぞオイ

Dim i As Integer

i = Int(1.9)
MsgBox i

0016デフォルトの名無しさんNGNG
>>13
http://ws.31rsm.ne.jp/~pension/access/ota2000/c42.htm
0017 NGNG
>>8
できました。ありがとうございました。
0018デフォルトの名無しさんNGNG
>>14
>>15
>>16
絶対HELPに乗ってると思ってわざとGoogleしらべなかったんです。ごめんね
しかしこのINT関数FIX関数?ヘルプをどう落ち着いて検索すればかかるのよ。
相変わらずMSDNのできのよさに脱帽しました。
0019デフォルトの名無しさんNGNG
>>12
気にしてないならまあいいか
0020デフォルトの名無しさんNGNG
 
0021デフォルトの名無しさんNGNG
コントロールがアクティブかどうかってどうやったら取得できるのでしょうか?
ActiveControlプロパティーがそれかな?と思ったけどなんか違うみたいです。
0022デフォルトの名無しさんNGNG
>>21
ヘルプ嫁
002321NGNG
あ、GetFocusした後LostFocusするまでフラグたてておけばいいのか。

もっとスマートな方法はないですよね?
0024デフォルトの名無しさんNGNG
>>23 APIのGetFocus使ったらアクティブなコントロールのhWndが返ってきますた
0025デフォルトの名無しさんNGNG
ActiveControlでいいじゃん。なんでダメなの?
0026pop ◆CSZ6G0yP9Q NGNG
.netを刈ったのですがどうやったらActiveXを作れるのでしょうか。
使い方が変わったみたいなのでよくわかりません。
ホームページ、本なども調べたのですが見つかりません。
よろしくお願いします・
0027デフォルトの名無しさんNGNG
>>1
顔文字変えろよバカ
0028デフォルトの名無しさんNGNG
>>27
顔文字お宅は心でください。お願いします。
0029デフォルトの名無しさんNGNG
>>28
つれた!!
0030デフォルトの名無しさんNGNG
>>13
>>18

MSDNで、”切り捨て”でイッパツだったぞ。
MSDNのできのよさ云々を語る前に自分のできのよさを疑えよ。

まあ、それが出来ないからヘルプを見る事もできないんだろうけど。
0031デフォルトの名無しさんNGNG
>>30
初心者版でそんなに厚くなっても
0032デフォルトの名無しさんNGNG
オレももうちょっと薄くならないとな
0033デフォルトの名無しさんNGNG
はげ
0034デフォルトの名無しさんNGNG
テキストボックスに入力される文字数を制限する為に
作成したチェック関数の一部なのですが、
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プロパティがないです。
003534NGNG
>34
補足です、言葉が足りませんでした。
漢字がまたがってしまった場合は、
漢字ごと(9Byte)で切り捨てたいです。
上手く説明できているか不安ですが、よろしくお願いします。
0036デフォルトの名無しさんNGNG
>>34
アスキーコードなら1バイト目を調べて漢字かどうか判定できる。
10バイト目をみて漢字かどうか調べて幹事のときは早めに予約すればいいのでは?
0037デフォルトの名無しさんNGNG
>>34
文字コード見れば簡単じゃん。シフトJIS調べて味噌
0038デフォルトの名無しさんNGNG
>>34
発見!
http://www.hidecnet.ne.jp/~sinzan/tips/etc/etc_tip08.htm
003934NGNG
すばやいレスありがとうございます。
とりあえず言われた方向で調べてみます。
また報告に来ますね。
ありがとうございました。
0040デフォルトの名無しさんNGNG
>>39
もうくんな。氏ね。
0041デフォルトの名無しさんNGNG
34がプロのプログラマーでないことを祈ります。
0042デフォルトの名無しさんNGNG
たぶん社内SE&PGってとこでしょう
0043デフォルトの名無しさんNGNG
>>41=>>42
じさくじえーん
004434NGNG
言われた方法でいけそうです。
あと、最後の疑問点なんですが、
Windowsでテキストボックスに入力される文字は
全てシフトJIS(MS漢字)コードと思っていいのでしょうか?
Unicodeってないですよね?

>41
プログラマーの見習いです。
これからがんばります。。
0045デフォルトの名無しさんNGNG
>>44
会社の先輩プログラマーに聞けばいいのに。

答えは微妙。少なくとも今やっている取得方だとシフトJISと思ってていい。
0046デフォルトの名無しさんNGNG
選択したディレクトリの中の一時ファイルを一括で消したいのですが
実行すると「パスが違う」と怒られます。助けてください。
-- 以下ソース --
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
0047デフォルトの名無しさんNGNG
>>46
パスが違うのでは?
デバッガで動かして値を確認してみそ。
0048デフォルトの名無しさんNGNG
> Kill "*.tmp"

何なのこれ?ワイルドカード使えるの?
0049デフォルトの名無しさんNGNG
>>46
ウィルスでつか?
0050デフォルトの名無しさんNGNG
例
Kill 関数を使って、ディスクからファイルを削除するコード例を次に示します。

' Assume TESTFILE is a file containing some data.
Kill("TestFile") ' Delete file.

' Delete all *.TXT files in current directory.
Kill("*.TXT")


VB.netでは少なくとも使える
005148NGNG
あ、使えるんだね。ゴメン。
0052デフォルトの名無しさんNGNG
>>50
VB6に決まってるだろ。ぼけぇ。
0053デフォルトの名無しさんNGNG
VB6でも使えるようですよ
あとChDrive Drive1は要らないと思われ
0054デフォルトの名無しさんNGNG
>>53
いらないけどあっても問題ない。そのせいではない。
005534NGNG
>45

実は会社で使いまわしているコードが
>34に書かせていただいたやつなのです。
見せていただいて「ほんとにこれでいいの??」っていう
気持ちが消えなくて今日帰宅、書き込みさせていただきました。
まぁ小さな会社ですので仕方ない?などと思っています。
0056デフォルトの名無しさんNGNG
>>53
> あとChDrive Drive1は要らないと思われ

要ります。
0057デフォルトの名無しさんNGNG
Visual Basic6.0ランタイムでVisual Basic5.0でつくったものももちろん動く??
0058デフォルトの名無しさんNGNG
>>57
動かない。VB5用のランタイムが必要。
005957NGNG
>>58ありがと!
0060デフォルトの名無しさんNGNG
>>18
君は泳ぎ方を覚えずにいきなり飛び込み台からダイブするやしか。

>>26
作れないわけではないが、.netでActiveXを何で作りたいの?
.netでそんなあほなことはする意味なし。
006153NGNG
ChDriveがあった場合、
Sub Drive1_Change() 内に
  Dir1=Drive1
が無い場合にエラーを起こす原因になると思います
0062デフォルトの名無しさんNGNG
>>61
それ以前に、
> ChDir Dir1
このディレクトリとは別のドライブが
カレントドライブになっていた場合どうすんの?
006353NGNG
あら、ほんとですね、今やってみたら
ChDrive入れないとApp.pathでちゃんと
ドライブ移動してませんでした。スイマセン
0064デフォルトの名無しさんNGNG
MouseMoveイベントって、コントロールからカーソルがはずれると発生しなくなりますが、
カーソルがはずれても発生するようにする方法があった気がするのですが。
たしか1行ぐらいちょっと追加するだけだった気がしますが思い出せません。
0065デフォルトの名無しさんNGNG
SetCaptureのことかな?
0066デフォルトの名無しさんNGNG
あ、それですそれ。
APIだかVBの機能だかさえ忘れてました
0067_NGNG
Byte型配列を結合したいんですけどどうやればいいんですか。
A() = A() & B()
とかやってもエラー出ます
0068DNGNG
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
こんな感じ?
0069DNGNG
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()の内容が入ります。
こんな感じ?
0070DNGNG
ダブっちゃいました。すいません
0071897NGNG
前スレ897です(w
おかげさまでユーザーコントロールでコントロールの作成ができたんですけど、
あと一歩のところで躓いてます
カーソルがコントロールの上にあるか調べたいのですが
1.親フォームがコントロールのプロパティーを変更する
2.コントロール内でSetCaptureを使ってどうにかする
3.コントロール内でGetCursorPosを使ってどうにかする
どれがよいでしょうか?
できたら1はさけたいんですが。
2はやってみたところ、他の同一コントロールとSetCaptureがかぶってしまうようで
うまくいかないっぽいです。
0072897NGNG
失礼しました。。
2のSetCaptureでできました。
0073897NGNG
フォントプロパティーがどうにもわかんねぇ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が実行されてなくて描画されない
どこがいけないのかなぁ。
0074897NGNG
やっぱりダメだ。どうにもわかんない
Public Property Get Font() As Font
と
Public Property Let Font(fFont as Font)
だとプロパティー取得時にGetが、設定時にLetが呼び出されるんですよね?

Letの代わりにSetにするとなんかどうにもよくわかりません。
ぱっと見Setは一度も呼び出されない感じですが・・
そして設定時にもGetが呼び出されるようだし。
どうなっているのでしょうか?
0075 NGNG
VB5で8方向スクロールをやってみた。
Bitbltで表画面に描いても、反映されるのは
Form1.mainscreen.Refreshするとか
Form1.mainscreen.Hide から.Showとかしないと駄目でした。
(mainscreenはPictureBox)
とすると、いちいち裏画面に描く必要も無いのでは?
と思うが、何かおかしいでしょうか?
ちなみにCのスクリプトYaneuraGS2kより2割ほど遅いだけなので捨てがたい。
VC持ってないし。
それからBitBltより高速化したAPIはどっかに無いの?
0076デフォルトの名無しさんNGNG
>>67
ReDim a(10) As Byte
Dim b(20) As Byte

a = CStr(a) & CStr(b)
0077デフォルトの名無しさんNGNG
>>74
Property Setでは、呼び出し元の方にも
Setステートメント付けてる?
0078897NGNG
>>77
呼び出し元ってプログラムの方でしょうか?
OriginalControl.Font="Arial Black"
ってな感じですが。
0079デフォルトの名無しさんNGNG
>>78
> 呼び出し元ってプログラムの方でしょうか?
そう。

Property Set Font(fFont As Font)
としているなら、呼び出し元は
Set OriginalControl.Font = [Fontオブジェクトへの参照]
ではないの?

それと >>73の
> Public Property Set Font(ByVal fFont As Font)
>  Set m_Font = nFont
はスペルミスだよね。
0080897NGNG
そうでもないような。。
他のサンプルを見る限り。
> Public Property Set Font(ByVal fFont As Font)
>  Set m_Font = fFont
こうですね。
0081デフォルトの名無しさんNGNG
> そうでもないような。。
> 他のサンプルを見る限り。

おいおい、何言ってんの?
0082897NGNG
へ?何言ってるって、そのままですよ。
む、勘違いかな?
呼び出し元=オリジナルコントロールが貼り付けてあるフォーム
でOKかな?
0083デフォルトの名無しさんNGNG
>>80
> そうでもないような。。
これは何の話のこと?
0084デフォルトの名無しさんNGNG
>>83
897の脳内に存在するパラレルワールドです
0085897NGNG
>>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で見てたらそんな感じだった。

っていうかもうわけわけがわからなくなりました
0086 NGNG
>>85
回答に耳を傾けようとせずに1人でオナニー報告なら
ここに書き込む必要はないと思うが。

はっきり言ってウザい。
0087897NGNG
ようするに
/プログラム本体/
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なようです
自分が作っているのはラベルとか使わないで自分で描画するものなので、
この方法は使えないと思うのですが。
0088デフォルトの名無しさんNGNG
画面全体のWidthやHeightからタスクバーの幅を引いた大きさを取得するにはどうすればいいのでしょうか?
フォームを全画面表示しないでウィンドウ表示として画面いっぱいにフォームを表示させたいです。
0089デフォルトの名無しさんNGNG
タスクバーの幅はデスクトップの幅+αじゃないのか?
それとも右か左にタスクバー置いてんのか?
まあどっちにしてもタスクバーのウィンドウハンドルを取得してGetWindowRect汁。
0090デフォルトの名無しさんNGNG
>>88
GetSystemMetrics
0091897NGNG
聞いてばっかりじゃあれなので・・
>>88
SysInfo OCXってのをつかってもできるようですがまぁAPIを使って
SystemParametersInfo
と引数SPI_GETWORKAREAで取得できるようです。
0092897NGNG
ありゃ、遅かった
ってか3人ともAPIが違う(w
0093デフォルトの名無しさんNGNG
>>89
タスクバーっていっぺんに上下左右すべてにおくことが出来るの知ってるのか?
まぁ正確にはタスクバーといわんかも知れんが。
009488NGNG
「フォームサイズ」
縦幅と横幅をあわせて幅と言ってしまってました。
指摘どおり
GetSystemMetrics
GETWORKAREA
を調べてみます。
こちらはavailable.widthのようなかんじなのかな、
と予想してキーワードavailableで探していたのですがそれではなかったみたいです。
0095デフォルトの名無しさんNGNG
>>897
だから79が指摘してるだろ。
> OriginalControl.Font="Arial"
の部分が間違ってるんだよ。

これでもわからん?
お前のコードはFontをセットしてるんじゃなくて
Fontを参照してからそのNameプロパティを設定してるんだよ。
009688NGNG
GetWindowRect
もやってみます。
009795NGNG
>>897じゃなかった。 >>87だ。
0098デフォルトの名無しさんNGNG
>>95
聞く耳を持たないバカなんだから放置しとけ。
0099897NGNG
>>95
それやるとオブジェクトが必要ですって表示されるんですが。
じゃぁSet Original〜〜じゃなくて
Original〜〜だけでOKにするにはどうしたらよいのでしょう?
>>98
聞いてますよ。
010095NGNG
>>99
> それやるとオブジェクトが必要ですって表示されるんですが。

そりゃオブジェクトを指定してないからだろ。
お前がやりたいことは
 Fontのセット
 フォント名(Font.Name)の指定
このどっちなのよ?

Fontのセットなら多分 Set Original〜〜じゃないと無理。
フォント名の指定だけなら Property Getだけでできる。
0101897NGNG
>>100
フォントのセットです。
>Fontのセットなら多分 Set Original〜〜じゃないと無理。
これがどうにも意味わからんです。
他のサンプルみるとそんなの使ってないし。
010295NGNG
>>101
Property SetでなくProperty Letで宣言すれば
Set無しで代入可能だな。
ただその場合も代入元には文字列でなく
Fontオブジェクトを指定しないといけない。
010388NGNG
ありがとうございます。
指示されたキーワードで調べていくうちに
ttp://hp.vector.co.jp/authors/VA013031/tips/api001.htm
このページに出会ったのでコピペして実行してみたところできました。
0104897NGNG
>>102
ええ。最初はLetでやってたんですけど
デザイン時のプロパティーのフォントの項目って、
コモンダイアログから選択できるようになってるじゃないですか。
Public Property Let Font(fFont as Font)
でやってOrigonalControl.Font〜でやるとオブジェクトが必要ですってでるので
(っていうかオブジェクトについてよく分かっていない)
他のサンプル見るとどれもPublic Property Set Font(fFont as Font)
となっているのでまねしてみたのですが。
0105897NGNG
あうあう
>コモンダイアログから選択できるようになってるじゃないですか。
で、LetじゃなくてSetでやるとそれができるようになりました。
010695NGNG
>>104
なんか今イチ意味がわからんけど、
> Public Property Set Font(fFont as Font)
これが普通だと思うし、こう宣言したなら
Set OrigonalControl.Font =
にしろよ。

一体Setの何が不満なの?
サンプルではSetを使ってないと言うならそのサンプルを上げてみ。
0107デフォルトの名無しさんNGNG
そもそもVBなんぞでオブジェクト指向やろうとするから混乱する。
ポインタ知らないと扱える代物じゃない。
0108デフォルトの名無しさんNGNG
>>107
オブジェクト指向とポインタにいったい何の関係が?
ポインタでつまずいたの?
0109デフォルトの名無しさんNGNG
引数付でプログラムの呼び出しって出来ないのでしょうか
shell や call では上手くいかないようです。
messege.exe open (openが引数)みたいにやりたいんだけどダメ?
0110デフォルトの名無しさんNGNG
Shellでできます。
0111897NGNG
サンプルです
’プログラム本体
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になるかんじです
011295NGNG
>>111
だから上で書いたようにそのコードの
> uctUDText1.Font = "Arial Black"

というのはFontをセットしてるわけじゃなくて、
Fontを参照してそのNameプロパティを設定してるだけなんだよ。

> Public Property Set Font(mnewFont As Font)
このプロシージャは全然使われてないんだよ。
011395NGNG
あ、全然使われてないこともないな。
0114897NGNG
>>112
なるほど。ようやく意味が分かりました。
Setの部分はデザインモード用ですね。
で、Textコントロールを使わず、
自分で描画するようにすると1回分遅れて反映するのですが、どうすればよいのか・・
0115デフォルトの名無しさんNGNG
>>114
> Setの部分はデザインモード用ですね。
わかってねーな。
0116897NGNG
>>115
む、その通り。わかってないです
0117DNGNG
MSDNの”ユーザー コントロールへの Font オブジェクトの追加”読んでみて。
平たく言うとフォント変更時にイベントを発生させるにはstdFontオブジェクトを
WithEvent 付きで宣言する必要があります。
これでFontChangedイベントが発生するようになります。詳しくはMSDNで

ここからは>>897の本文からの予想です。
独自のコマンドボタンを作りたいようなので以下を参考にしてみてください。
MSDNとは違いますが。
手法−ユーザコントロールにLabelコントロールを貼り付けFontを変更する。
コントロール名はlblCaptionにします(紛らわしいけど)あとAlignment
を中央揃え.背景を透明にしておきます

つづく
0118DNGNG
続き

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についてはこれでいけるんじゃないんですか?
思いつきなんで自信ないです突っ込み求ム
0119897NGNG
>>平たく言うとフォント変更時にイベントを発生させるにはstdFontオブジェクトをWithEvent 付きで宣言する必要があります。
おおおこれですこれ!!
続きの部分、わざわざ申し訳ありませんでしたが、使うまでもなくできました。
ありがとうございました。
0120DNGNG
>続きの部分、わざわざ申し訳ありませんでしたが、使うまでもなくできました。

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

0121897NGNG
>>120
ワラタ
0122デフォルトの名無しさんNGNG
最近VB使ってると、何もしないのに
ぽかぽか落ちるのは何故っすか?

XPのSP1入れたあたりから異様に落ちやがります。

0123デフォルトの名無しさんNGNG
>>122
VB.NET買えというMSからのメッセージです。
0124デフォルトの名無しさんNGNG
まぁ、状況を詳しくいえないんじゃ解決せんだろな。
0125デフォルトの名無しさんNGNG
VB6で透明レイヤーって作れますか?
0126デフォルトの名無しさんNGNG
>>125
>透明レイヤー

VBユーザは何の前提も無くすぐこういう言葉を使う。
だからDQNだと言われるんだ。
0127デフォルトの名無しさんNGNG
>>125
126ではないが言葉の意味を咀嚼して書いて欲しい。
0128デフォルトの名無しさんNGNG
On Error GoTo 0
ってどこ行くの?
0129デフォルトの名無しさんNGNG
>>128
10行目?
0130デフォルトの名無しさんNGNG
>128
On Error Resume Nextを無効にするの
0131128NGNG
>>129
Sub temp()
1
2
3

End Sub
として、Go Toはプロジージャ(モジュールって言うんだっけ?)内の〜行目に飛ぶ命令としても使えるってこと?
0132128NGNG
>>130
おっ ありがと
エラー用のコードをぜんぜんかかないから知らなかった
0133デフォルトの名無しさんNGNG
>>131
遙か昔はどこにでも飛んで行けた。ある意味最強の制御構造。
0134128NGNG
>>133
へぇ 最近のVBじゃ封印されたのか
-----------------------------------
(ヘルプより)
GoTo line

引数 line は必ず指定します。引数 line には、任意の行ラベルまたは行番号を指定します。
------------
ラベルはコロンをつけるやつだけど、行番号とはなんや?
0135デフォルトの名無しさんNGNG
>>134
使えるのか・・・行番号。さすがBASIC
0136128NGNG
>>135
今頃おもいだしたけど
10
20
30
というやつか。いいねえ。この行番号愛用しよう。
0137デフォルトの名無しさんNGNG
1行目から数えた行の番号だと思う
0138128NGNG
>>138
1行目って言うと、
Formモジュールの先頭からかあ。
番号重複せずに行番号つかうのもめんどそうだなあ。
確かにプロシージャレベルだと
Command1.10
ってかんじに10行目を指定するはずだものね。
0139128NGNG
>>137ですた
0140デフォルトの名無しさんNGNG
>>138
↓のことでしょ。

Sub Main()
10 GoTo 30
20 MsgBox "A"
30 MsgBox "B"
End Sub
0141128NGNG
>>140
とすると、やっぱり
これから実行されるGoToとおなじプロジージャにある行番号
にジャンプできるのか。
0142デフォルトの名無しさんNGNG
構造化、オブジェクト指向文化にドロップキックかますような仕様だなぁ・・・。
0143デフォルトの名無しさんNGNG
10
20
30
・・・
なんともいえずいい味だしてる。
0144デフォルトの名無しさんNGNG
うーん・・・世代交代を感じるなあ・・・
昔は行番号がいやでいやで、エディタでプログラム書いて
あとから番号付けるプログラムに入れてソース作ってたよ。
0145デフォルトの名無しさんNGNG
追加プログラムの挿入がめんどっつい
0146デフォルトの名無しさんNGNG
>>144 なるほど
0147デフォルトの名無しさんNGNG
>>144
GOTOは使わない方向で?
0148デフォルトの名無しさんNGNG
最初はじめたころ、BASIC=エディタ、デバッガ、環境だったなあ
当時は行番号のないプログラムってのが理解できなかった
0149デフォルトの名無しさんNGNG
RENUM 100
0150デフォルトの名無しさんNGNG
>>147
gosubを使う。ラベル張って。
N88BASICの頃だよ。
0151デフォルトの名無しさんNGNG
>>150
うんうん、厨房の頃FORとかWHILEとか使わず全部IFとGOTOでやってたんで。
今考えるとあのときは才能に満ちあふれてたなぁ・・・それが今はどうだ・・・。
0152デフォルトの名無しさんNGNG
ラベルもRENUMもなかったN60BASICが最強かも
0153デフォルトの名無しさんNGNG
>>151
いやまったく。
0154デフォルトの名無しさんNGNG
ROM-BASIC時代を懐かしむご老人方のスクツか、ここは。
0155デフォルトの名無しさんNGNG
VBしらないもん
0156デフォルトの名無しさんNGNG
win95にMDACインストールしようと思って間違ってMDACの後にDCOM for windows95
をインストールしてしまいました。
おかげでMDACが正常にインストールできないんですが誰か直す方法知ってます?
0157デフォルトの名無しさんNGNG
私はMSX-BASICにはまってた素チンです。
0158デフォルトの名無しさんNGNG
ピポッ♪
0159デフォルトの名無しさんNGNG
行番号ってさ 最初は 10 ステップで 作るんだけどさ、
デバッグしていったり 機能追加していくと その 10の中を1 ステップずつで やってたりして
苦労したよなぁ。
で、よく 行番号を最初から 振りなおさせたりしてよ、意味ねぇじゃんかってカンジ〜
0160デフォルトの名無しさんNGNG
RENUMするだけじゃん。別にたいしたことではない。
0161デフォルトの名無しさんNGNG
改行コードを挿入するにはなんと書いたらいいですか
Label1.Caption = Label1.Caption & 改行
0162 NGNG
vbCrLf
0163デフォルトの名無しさんNGNG
>>162 vbctrl だと思ってた。
vbCrLf か ありがとう
0164デフォルトの名無しさんNGNG
vbNewLineでもいいぞ
0165デフォルトの名無しさんNGNG
>>164 使い分け方が
ありますか
0166デフォルトの名無しさんNGNG
>>165
好みで使い分けろ
0167デフォルトの名無しさんNGNG
>>165
ここまでヒントもらったんだから後は自分でやったら
0168デフォルトの名無しさんNGNG
>>167 ついでにききました。

 ありがとうございました。
0169デフォルトの名無しさんNGNG
SetCaptureって、ReleaseCaptureせずになんども実行しても問題ない?
0170デフォルトの名無しさんNGNG
Dim a as Long
Dim b as Long

a = &HFFF
b = &HA0A0
b = b Or (&H100000 * a)

予定ではこうなるはずが b = &HFFF0A0A0

オーバーフローになります
どうすればいいんでしょうか?
0171デフォルトの名無しさんNGNG
>>170
Long型整数の取りうる値の範囲を16進表記で調べてみるといい。

0172デフォルトの名無しさんNGNG
>>170
桁そろえて文字列としてくっつけとくとか。

&H100000 * aがLongに収まらないのでアウト。
&H表記はLongの範囲まで。
OrもLongまで。
0173デフォルトの名無しさんNGNG
>>170
あるいは、Byte配列に小分けに入れておいて、バイト単位で論理和を
取るとか。いぜれにせよ、でかい桁は自前で処理。
0174なつみNGNG
Docmd.setwarnings false
Docmd.Domenultem acFormbar,acEditMenu,8,,acMenuVer70
Docmd.Domenultem acFormbar,acEditMenu,6,,acMenuVer70
Docmd.setwarnings True
Docmd.close

この部分なのですが、今一なにをやろうとしてるのかが分りません
。Docmd.Domenultemは現在、Docmd.Runcommand に変わっているのは分っている
のですが・・・。
それでも今一なにをやろうとしているのかが分りません。
どなたかお願いいたします。

0175デフォルトの名無しさんNGNG
ゲ製作技術で回答が無かったのでこっちに来ました。
VBはインタプリタでないのにエミュレータより遅いのは何故?
VBのコーディングで何が一番ネックで何に気をつければいいんでしょう?
スーファミ時代のアクションゲームくらい出来ませんか?

0176デフォルトの名無しさんNGNG
>>175
エミュレータより遅いってどうやって判断したの?
GDIではなく大半のエミュレータ・ゲームで使用しているDirectXを
使えばVBでも十分早いと思いますが。
0177175NGNG
50キャラのアニメ処理+スクロールでチラツクから。
DirectXはやった事ないけど、BitBltより速いの?
0178デフォルトの名無しさんNGNG
>>177
ダブルバッファぐらいやってるよな。
0179175NGNG
ダブルバッファって
裏画面描きの事かな?
それとも描画をパスする事かな?
どっちもやってないけどそれよりもスクロールだけでも遅い。
0180デフォルトの名無しさんNGNG
>>179
もしかしてちらつきの原因は遅いからだと思っている人?
0181デフォルトの名無しさんNGNG
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
0182デフォルトの名無しさんNGNG
>>181
ループとinstr()やmid()を使えばできるだろ
0183デフォルトの名無しさんNGNG
>>181
なにが「(w」だ。なんで赤の他人のおまえにヘラヘラされながら
仕事らしきものを丸投げされにゃいかんのだ?
アフォか。死ね。
0184デフォルトの名無しさんNGNG
>>174

(1) ヘルプという言葉はご存知ですか?
(2) ヘルプの存在意義、使用方法はご存知ですか?
(3) ヘルプの起動方法、キーワードの検索方法はご存知ですか?
0185デフォルトの名無しさんNGNG
>>184
いや、DoMenultemで何をやってるかまでは
ヘルプじゃわかんないんだよね、これが。
その前にスレ違いのような気がするけど。
0186デフォルトの名無しさんNGNG
画面&印刷で文字幅を倍とかにしたいんだけど
CreateFont の nWidth ってどうやって値を出すの?
0187デフォルトの名無しさんNGNG
VBから端末にExcelがインストールされているかどうかを、もっとも簡単にチェックする方法を
教えてもらえませんでしょうか。やっぱレジストリかなんかですか?(あまり知識ないっす…)
0188デフォルトの名無しさんNGNG
>>187
CreateObjectでExcel.Applicationを作成しようとして
エラーになるかどうかで判断できるんじゃないか?
0189187NGNG
エラー処理で!
簡単っちゃあ簡単ですが、チョトビクリツしました。
どうもです。
0190デフォルトの名無しさんNGNG
>>183
別におまえに聞いてるわけじゃないとおもうが。そこまで腹が立つか?

>>181
でもどんな頼み方でもソース書いてくれっていうやつはむかつく
自分で考えたり、調べたり、自分で書いたソースを試したりする気まったくなしって感じが。
絶対に進化しないからなこういうやつは。
まあ文章からして、かしこくなる気がない雰囲気むんむんだけど
0191デフォルトの名無しさんNGNG
>>186
何もしないで 倍幅にする方法

判→半リ
頼→束頁


欠点:できる文字が少ないということ(w
0192デフォルトの名無しさんNGNG
>>190
VBScriptに何熱くなってんの?
0193デフォルトの名無しさんNGNG
倍角は こうか
イ立
|口
0194デフォルトの名無しさんNGNG
>>186
GetTextMetricsでフォントの情報取得して、
それのnWidthを倍にしてやればいいんじゃないの?
0195186NGNG
>>194
tmAveCharWidth で近似値がとれますた
どうもです!
0196デフォルトの名無しさんNGNG
VB6で透明レイヤーって作れますか?
0197デフォルトの名無しさんNGNG
>>196
前スレまで行って前のお前の発言拾ってこようか?
すごいレスついてたぞ。
0198デフォルトの名無しさんNGNG
>>197
拾って!
0199デフォルトの名無しさんNGNG


>>198
VBユーザってどうして前提なしでそういうふざけたこと抜かすかなぁ。
だからDQNっていわれるんだよ


>>198
じゃないがもう少し説明してくれ。




こんな感じ。
0200デフォルトの名無しさんNGNG
>>192
そのVBScriptがわからないおまえははやく死ねwププププププ
ウキャキャキャキャキャ
0201デフォルトの名無しさんNGNG
>>200
いや、特に役にもたたんだろ。あれ。

ある特定のOSの特定のブラウザで動くクライアントサイド言語。
なぜかOS開発元ですら使われていないバッチ用スクリプティング言語。
元となる簡単言語は発売終了。
0202デフォルトの名無しさんNGNG
Chmのヘルプファイルをプロジェクトプロパティーのヘルプファイルに登録して、
F1キーで呼び出しをしているのですが、ちゃんと表示されるときとされないときがあります。
さっきはダメだったけどプログラムを再起動したら表示されるなど
一体なぜなのでしょうか??
0203デフォルトの名無しさんNGNG
vbs便利だよ
0204デフォルトの名無しさんNGNG
RGBカラーから、それぞれ赤、緑、青の要素をとりたいのですが、
どうすればできますか?
0205デフォルトの名無しさんNGNG
>>204
256*256*256
0206デフォルトの名無しさんNGNG
>>204
R ... &HFF And 値
G ... (&HFF00& And 値) \ &H100
B ... (&HFF0000 And 値) \ &H10000
0207デフォルトの名無しさんNGNG
ありがと〜。できました
0208デフォルトの名無しさんNGNG
>>207
ここはオマエだけが質問しオマエだけが回答を得ているワケではないのだがな
0209デフォルトの名無しさんNGNG
windows2000なんですけど、VB5入れても大丈夫でしょうか?
VB6ほか、コンパイラは入っていません。
ネットで検索したのですが、不具合がありようなことが
書いてあったりで心配です。
0210デフォルトの名無しさんNGNG
>209
まぁ普通に考えると大丈夫。
どんなソフトでも大小あれトラブルはつきもの。
0211デフォルトの名無しさんNGNG
>>208 変な煽り
0212デフォルトの名無しさんNGNG
ここは本物のVB初心者が集うところなんですね。
津 魔 蘭
0213デフォルトの名無しさんNGNG
>>212 当然だろ?
0214デフォルトの名無しさんNGNG
>>212
スレタイ見ろ
0215デフォルトの名無しさんNGNG
>>211
辺でもないんでないかな。
207がありがとだけだったから何のだよ!と208は思ったのだろうきっと。
207が何へのレスは明示的じゃないからな。ま、206へだと思うが。
0216デフォルトの名無しさんNGNG
>>209
MSからサービスパックダウソして入れておいた方が良いよ。
VB5の初期のバグでなんらかの条件で起動できなくなる罠が有ったと思う・・・・(´・ω・`)アレニハマイッタ
0217デフォルトの名無しさんNGNG
>>216
> VB5の初期のバグでなんらかの条件で起動できなくなる罠が有ったと思う・・・・(´・ω・`)アレニハマイッタ

OSのSPもVBのSPも関係ないよ。なるときゃなる。
プロジェクトを置く場所に全角を含むパスをつかっちゃだめなのさ。

予期せぬエラーがでたら
HKEY_CURRENT_USER\Software\Microsoft\Visual Basic\5.0\RecentFiles
ここの日本語パスを含む分の項目を削除すりゃ復活する。
0218デフォルトの名無しさんNGNG
>>217
情報サンコス。当時ネット環境無かったし田舎故に全然情報が無くて、
根性でプログラミングする度ソフトをサイインスコしていた・・・・(´д`;)バカダ

でも確かVBを直接立ち上げないでソースを開けば全角バグも恐くなかった気がする。
0219デフォルトの名無しさんNGNG
>>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 に出てくる。汚くてみづらいソース(´д`;)スマソ
0220219NGNG
TAB入れ替えるの忘れてた・・・・(´・ω・`)ヤテマタ
0221181NGNG
>>182,219
ありがとうございます。

>>190
すみません。
0222デフォルトの名無しさんNGNG
おい!おまいら教えてください!
IFの判断文の内容(IF xxxx Then の xxxx 部分)を動的に作成したいのですが、うまい方法はないですか?
0223デフォルトの名無しさんNGNG
>>222
動的にってなに。
テキストボックスかなんかに A=10 AND B=50 とか
入力させてそれを反映させたいってことか?
人に聞くならまずやりたいことを分かるように説明せえよ
0224デフォルトの名無しさんNGNG
>>223
申し訳。おっしゃる通りです。
0225デフォルトの名無しさんNGNG
>>224
いや、俺も偉そうに言った割には、実現方法は皆目見当つかんのだけどねw
というか、もし俺が例で書いたAだのBだのがソース上の変数名とイコールであれば、
実現は限りなく不可能に近いと思う。
0226デフォルトの名無しさんNGNG
>>222
構文解析すれば良いんだろうけど、結構面倒だよ・・・
0227デフォルトの名無しさんNGNG
>>222
というか、なんでそんな事が必要なのか教えて下さい。
仕様から見直すべきかも。
0228デフォルトの名無しさんNGNG
>>222
Script Controlを使えばできるかも
0229228NGNG
>>222
サンプル書いてみた。

Dim vbs As Object
Set vbs = CreateObject("MSScriptControl.ScriptControl")
vbs.Language = "VBScript"
vbs.ExecuteStatement "A=2"
Debug.Print vbs.eval("A+2")
0230デフォルトの名無しさんNGNG
Delphiなら簡単!
0231デフォルトの名無しさんNGNG
ほ〜。
そんなことが出来るんだ
っていうかなんかVBScriptのほうが優れてる点が結構ない?
ショートカットの作成もVBScript使えば出来たりするし。
本家がしょぼく感じてしまふ。
その辺はVB.net移行すればOKってことなんかいな?
0232デフォルトの名無しさんNGNG
>>229
Script 便利(;´Д`)ハァハァ
でもOSが古いと動かない罠。まぁ今時そんなマシン余り無いか
0233デフォルトの名無しさんNGNG
VisualStudio.netProffesionalのVB.NETでシリアルポートを
利用するためにMSCOMM32.OCXを使いたいのですが、インストールの
方法がわかりません。古いバージョンのものをSYSTEM32ディレクト
リにコピーしても「このActiveXコントロールを使用するライセンス
がありません」と怒られてしまいます。インストールの仕方を教えて
ください。
0234DNGNG
>>233
多分コピーしただけではライセンス情報は登録されないはず。
http://www.microsoft.com/japan/developer/library/vccore/_core_activex_controls.3a_.licensing_an_activex_control.htm#_core_licensing_support
ここに詳しく載っています。
ただその前にRegsvr32.exeでレジストリに登録する必要もあるような気が...
これで駄目ならVB6インストールすれば?ライセンスはあるんでしょ。
0235デフォルトの名無しさんNGNG
>>231
> っていうかなんかVBScriptのほうが優れてる点が結構ない?

文字列を「命令」として実行する機能は、モダンなインタプリタ言語なら持っているものも多い。
(極論するとファイルから読んで実行するか、文字列から読むかだけの違いだからね。)

> ショートカットの作成もVBScript使えば出来たりするし。

用途が違うからねぇ...。
0236DNGNG
そういえば.netではComなんかのレガシーデバイスへのアクセスって拒否されますね
APIのCreateFileは使えるみたいだけど。
0237デフォルトの名無しさんNGNG
そのためのP/Invokeじゃろうなあ
0238デフォルトの名無しさんNGNG
>>231
すべてはVBの部品。VBの素晴らしいところは何でも部品になることさ。

>>232
MSCOMM32.ocxがVB6の付属物なので、まずVB6のダミーアプリをインストールするべし。
そうでなけりゃそもそも君はライセンス違反。旧VBが入ってないなんてことはないよな?

>>236
どういう状況?Marshalクラス使えばたいていできるような・・・
0239デフォルトの名無しさんNGNG
>>238
>すべてはVBの部品。VBの素晴らしいところは何でも部品になることさ。

だとすると他言語に勝るモノは何もないことになると思われ。
0240デフォルトの名無しさんNGNG
>>231
一度コンポーネントにすればあとは数行ですむではないか。
それこそOO(良くわからんが)であろう。
0241デフォルトの名無しさんNGNG
>>239
何でも部品にできるというのは素晴らしいと思うが。
社長みたいなもんさ。馬車うまのように働かされている君にはわかるまい。
とか煽って欲しい?
0242デフォルトの名無しさんNGNG
VBScriptの方が後発だからねぇ。
Delphiの方が後発だからねぇ。
とかなんぼでもいいようはある。
0243デフォルトの名無しさんNGNG
VB6のランタイムって MSVBVM60.DLL ってことですか?
0244デフォルトの名無しさんNGNG
>>238
> すべてはVBの部品。VBの素晴らしいところは何でも部品になることさ。

VBで使える部品ならすべて他の言語(C++等)上でも使えるんだから
ちょっと違うと思う。

VBのよいところは、これらの部品を誰でも手軽に利用できる
(利用するための手続きが非常に簡単)ところではないかな。
0245デフォルトの名無しさんNGNG
>>244
> VBのよいところは、これらの部品を誰でも手軽に利用できる
> (利用するための手続きが非常に簡単)ところではないかな。

本当にそうか?
Delphiの方がよっぽど簡単なように思える。
0246デフォルトの名無しさんNGNG
VBでDNSからMXレコードだけ抜き出そうとして、
あまりの面倒くささに挫折仕掛けのところです。

リクエストは送って、バイト配列で受け取ることも出来ました。
肝心のホスト名を抜き出すまでが面倒くさくてたまりません。
誰か代わりにやってください。
もしくは、ソースのリンク教えてください。
0247デフォルトの名無しさんNGNG
>>245
本当にそうか?
どっちもたいして変わらないように思える。
0248デフォルトの名無しさんNGNG
Delphi、UIと操作性だけVBにならんかな。
VBに慣れきった漏れにはフォームデザイナとかコードエディタが使い難く過ぎる・・・。
0249デフォルトの名無しさんNGNG
>>248
Delphiに慣れてください。
0250233NGNG
234,238さん、レスありがとうございます。
mscomm32.ocxは書籍についてきたものなのでVB6のライセンスは持っていません。
VisualStudio.netにはシリアルポート制御できるActiveXコントロールは付属して
いないのでしょうか。
0251デフォルトの名無しさんNGNG
VisualBasic6.0で質問です。

ある計測用プログラムを作っているのですが、その際にPictureボックス内に
例えば6000個のデータで計測データの推移を波形にして表示するようにして
います。

これを、Picture1.Line (x1,y1)-(x2,y2)のようにして描画しているのですが、
もうちょっと速く描画できないものかと思っているのですが、全然分かりません。

何か方法はないでしょうか? ヒントでもあったら教えて頂けると助かります。
0252デフォルトの名無しさんNGNG
>>251
Polylineで調べてみ
APIだけど段違いに速くなるぞ
0253251NGNG
>>252
APIはほとんど使ったことがないので苦手ですが、それ覚えておきます。
ヒント有難う。
0254デフォルトの名無しさんNGNG
>>253
非表示にしたPictureBoxにAPIでLineを描画して全部書き終わったら改めて表示させるとか
0255251NGNG
>>254
有難うございます。

しかし、APIはほとんど分からないので時間が繋りそうです。

前にも文字列の回転描画(印刷)で、えらく手間取ったし、今でもあのコードは自分
で書いたのによく分からないという・・時々失敗するし(´Д`;)
0256デフォルトの名無しさんNGNG
作成したexeをタスクバーの右下のところに常駐させておくにはどうしたらよいのでしょう?
0257デフォルトの名無しさんNGNG
>>256
Shell_NotifyIcon
0258256NGNG
>>257
ありがとうございます。
0259デフォルトの名無しさんNGNG
>>256
Delphiならコンポーネントペタッで終了!簡単!
0260デフォルトの名無しさんNGNG
TextボックスのプロパティにEnabledとLockedがありますが機能的に同じものですよね?
0261デフォルトの名無しさんNGNG
画像ビューアを作りたいのですが、どうすればええでしょうか?
テキストベースならDAO・ADOでやれるのですが、そんな機能が
今の自分の知識の中からは出てきません。
Linerのようなビューア領域を作ることが目標です。
どうかご教授を。
0262256NGNG
>>257
ヘルプで見れないよぅ。
>>259
Delphiか・・・。勉強してみようかな・・・。
でも今はVBで作ったやつをタスクバーにいれたい。いったいどうすれば・・・
>>260
Enabledでは文字が灰色になっちゃわなかったっけ?
そうしたくないときにLockedを設定するとよいと本で読んだよ。
ほかにも違いありそうだけど。
0263デフォルトの名無しさんNGNG
>>262
MSDN Google
0264260NGNG
>>262
そうしたくないときにはLockedですか。
ありがとうございます。
0265デフォルトの名無しさんNGNG
>>264
色で使い分けるのは本来の使い方ではない。
該当するオブジェクトにフォーカスを移したくない時にはEnabledを使うんではないかい。
0266デフォルトの名無しさんNGNG
EnabledをFalseにしちゃうと選択もできないでしょ?
Lockedは書き換えのみを不可にするんだとおもう
0267デフォルトの名無しさんNGNG
明るさを調整したいのですが、
RGBで(50,100,150)だとして、明るさを+10とすると
(50+10,100+10,150+10)
ではなくて、相対的にやるものなんですよね?
PaintShopProの明るさをいじっていたら
(100,100,0)でどんどん明るくしていくと(255,255,0)になったあと
Bの値b熨揩ヲていって麹ナ終的には(255,255,255)になりました。
どういう処理をしているのでしょうか?
0268260NGNG
>>265-266
使い分けたいときは使い分けるし、どちらでもいいときはどちらも使ってみます。
0269デフォルトの名無しさんNGNG
>>267
乗算でない?他が255になって0のが残ってたら1ずつ足してくとか
0270デフォルトの名無しさんNGNG
>>267
HSVとかに変換してやってるんじゃないの
0271267NGNG
PaintShopProのはHSVのを元にしてやってるのかな。
う〜む、難しそう
0272デフォルトの名無しさんNGNG
>>260
EnabledとLocked、機能も違うし、意味も違う。
Enabledは使用不可にする。
Lockedは入力不可にする。ただし・・・

>>266
>Lockedは書き換えのみを不可にするんだとおもう

Shift+Insertでペーストできるので書き換えできちゃうんだけどね。
さらにOSがWin2000の場合だと右クリックメニューの制御が不完全とかあるし。

>>250
ない。gotdotnet.comのどっかで
Rs232.vbってファイルをダウソできるみたい。誰かさん作のCOM用クラス。
0273デフォルトの名無しさんNGNG
>>267
よくわからんが
> RGBで(50,100,150)だとして、明るさを+10とすると
> (50+10,100+10,150+10)
> ではなくて、相対的にやるものなんですよね?
といってるのだから結果のRGB値を取得したんだろう?
その値はいくつなの?
0274デフォルトの名無しさんNGNG
.netになって落ちこぼれちゃった人ってどれくらいいる?
うちの会社だと8割くらいいて
全員戦力外通告が出てるw
1割は非.netの会社へ転職するみたい。
残りは受け皿無しだってさ。
0275デフォルトの名無しさんNGNG
>>271
http://homepage2.nifty.com/nomura_seiji/htm_vb/vb_2_g003.htm
0276デフォルトの名無しさんNGNG
>>274
切り捨ての口実のような気がしないでもない。
しかし、さしあたっては仕事に関係ないとしても、
.NETへの適応力は1つの目安にはなる。
これからも開発環境は変わっていくだろうから。
0277デフォルトの名無しさんNGNG
>>274
.netさまさまだな。
糞PGが8割もいるお前の糞会社が少しはまともになれるチャンスじゃんか。
0278デフォルトの名無しさんNGNG
仕事があることが唯一の取り柄だったVB
0279デフォルトの名無しさんNGNG
>>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
0280デフォルトの名無しさんNGNG
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
0281デフォルトの名無しさんNGNG
XPにVisual stadio 6.0 インストールしても大丈夫?
0282デフォルトの名無しさんNGNG
>>281
だめな理由をのべよ?
MSのサイトに自社製品のXP対応リストがないわけ無いと思うが。。。
0283281NGNG
すみません、MSサイトに書いてありました・・・
XPは.NETじゃなきゃだめと思い込んでたんで・・・
0284デフォルトの名無しさんNGNG
デフォルトルートと、プライマリDNSの値を取得したいのですが、
やり方があれば教えてください
0285デフォルトの名無しさんNGNG
シューティングゲームの当たり判定でAPIのRectInRegionを使いたいのですが、
RECTの使い方がいまいちわかりません。誰かご教授下さい。
0286デフォルトの名無しさんNGNG
>>285
(´-`).。oO(RECTすら自分で調べられないならシューティング諦めた方が・・・)
0287デフォルトの名無しさんNGNG
>>285
RECT データ構造体は、次の形式です。

typedef struct tagRECT {
 LONG left;
 LONG top;
 LONG right;
 LONG bottom;
} RECT;

RECT 構造体は、四角形の左上隅と右下隅の座標を定義します。

この無茶苦茶わかりやすい説明のどこが「いまいちわからない」のか...。
0288デフォルトの名無しさんNGNG
(´-`).。oO(VBでシューティングか。ご苦労なこった)
0289デフォルトの名無しさんNGNG
284…
0290285NGNG
>>287さん
その辺りは調べたんですけど・・・実際どういう風に使えばいいのかがよくわからないんです。
0291デフォルトの名無しさんNGNG
考えろよ( ´,_ゝ`)プッ
いやなら
BASICでも買えば?
0292デフォルトの名無しさんNGNG
>>284
TCP/IPユーティリティのコマンドでわかるんでない?
DNSサーバ−nslookup
ルート−route
それぞれのコマンドでわかると思う。
0293285NGNG
>>291
考えてもわかんないんです。どーしましょ?
0294デフォルトの名無しさんNGNG
>>293
だったら無理だろ・・・
0295284NGNG
>>292
コマンド使えば読み出せるのはわかってるんですけど、その方法だと、
nslookupが存在しないwin98とかに対応できないんで…
nslookupが内部的にどうやって取得してるかが知りたいです。

説明不足ですみません
0296デフォルトの名無しさんNGNG
http://yahooo.s2.x-beat.com/
0297デフォルトの名無しさんNGNG
>>295
じゃーwininet.dllのHttpQueryInfo APIとか。
このdllのAPI使えばいいような気もする。
0298284NGNG
>>297
それってDNSのアドレスとか取れるんでしょうか…
HTTP関係しか無理な気も…

Dependency Walker使ってwininet.dllものぞいてみましたが、
それらしい関数は発見できませんでした。

APIスレに行ってきます
0299デフォルトの名無しさんNGNG
>>293
HSP使えば?
0300300NGNG
Ruby!
0301285NGNG
できました。RectInRegionだけじゃだめだったんすね、皆様お騒がせしてスマソ
0302デフォルトの名無しさんNGNG
>>293
本かえっツーの
マイコンベーシック
0303デフォルトの名無しさんNGNG
オブジェクト変数への参照が設定されているかどうか
調べる方法ってあるのでしょうか?
0304デフォルトの名無しさんNGNG
If obj Is Nothing Then
0305デフォルトの名無しさんNGNG
>>304
ありがとう
0306モモNGNG
助けてください
データフォームウィザードを使ってアクセスのデータベースに接続したい
のですがデータベースファイルを選択するとき、ファイルの名前をいれても
「認識できません」ってでます。私はどうすれば、、、

ソフトはvb6、アスセス2002です
0307 NGNG
>>293

素のWin95サポートする必要があるなら、SNMP API使ってみたら?
MIB の書き方はこの辺↓とか RFC とか読んで。
ttp://www.ibiblio.org/pub/micro/pc-stuff/ms-windows/winsnmp/winsnmp_mib/
0308デフォルトの名無しさんNGNG
>>307
誤爆か ?
0309TOMNGNG
サウンドカードのマイク入力からいれた音の大きさの値を取得したいんですが、さっぱりです。
どなたか教えてくっさい。
VB6です。
0310307NGNG
誤爆しました。ごめんなさい。
0311デフォルトの名無しさんNGNG
>>306
昨日来ました。と書かないとただのマルチポストだ。
後、何で無視されたのかどうして考えない?

どうすれば?か。その仕事向いてない。やめろ。
0312まこっちゃんNGNG
今日からVBはじめました。
文字列の代入と比較の記述が同じに見えてなりません、さっぱりです。
どなたか教えてくっさい。

誤爆しました。ごめんなさい。
0313デフォルトの名無しさんNGNG
>>312
(´д`;)・・・・なんか良くワカランが、がんがれ・・・・
0314デフォルトの名無しさんNGNG
本当に何を言ってるかわからん。
0315デフォルトの名無しさんNGNG
>>312
仕様です。
0316デフォルトの名無しさんNGNG
>誤爆しました。ごめんなさい。
ここが意味不明
0317デフォルトの名無しさんNGNG
VBって何のためにあるの?
0318デフォルトの名無しさんNGNG
プログラムを組むため
0319デフォルトの名無しさんNGNG
>>317
MSが儲けるため。
0320デフォルトの名無しさんNGNG
DirectDraw7のプライマリサーフェスの作成でつまづいた。
VB5だから駄目なのかな?
定数すら定義してくれん・・・鬱だ。
0321デフォルトの名無しさんNGNG
>>320
VBでDirectXなんか使えるわけねーだろ。
ポインタも使えないくせにどうやって使うつもりだ。
0322デフォルトの名無しさんNGNG
7から使えるよ。
0323デフォルトの名無しさんNGNG
>>321
baka?
0324デフォルトの名無しさんNGNG
>>321
真性あふぉ( ´,_ゝ`)プ
0325デフォルトの名無しさんNGNG
>>321
VBでもポインタ弄れますが?
0326DNGNG
>>312
=には
"等しくする""等しい"って意味がある。
A=B <-この場合代入
If A=B Then <-等の場合比較
として扱われます。CやJavaなんかでは代入は=比較は==でしたがVBやSQLではどちらも=を使用します。
また、チョット変則ですが
A=(0=0) では変数AにTrue(-1)が入ります。
何はともあれ、がんばってください。
0327デフォルトの名無しさんNGNG
>>326
うわあ。VBの演算子ってきもちわるいですねえ。
0328デフォルトの名無しさんNGNG
Cよりまし。なんで比較が==なんだよ。!=とかあるし。
0329デフォルトの名無しさんNGNG
>>327
まぁ他言語から来たならそうだろうねぇ・・・
時々他言語で条件文の == を = にして無駄に時間を費やすこともしばしば(´д`;)
0330デフォルトの名無しさんNGNG
文字列の比較は eq も使えるよ。
0331デフォルトの名無しさんNGNG
cでいうstrtokみたいな関数ってVBにもあるの?
VBの文字列ってよくわからないね。
0332デフォルトの名無しさんNGNG
>>331
作れば?まぁ、状態を保持する必要があるからクラスにした方がいいけど。
0333デフォルトの名無しさんNGNG
>>331
文字列がなくて文字の配列でしか表現できない言語よりマシ。
0334デフォルトの名無しさんNGNG
>>333
こうして人をだめにしていく言語か・・・。

無いなら作れよ。と。
0335デフォルトの名無しさんNGNG
>>334
お前が作れば。
0336デフォルトの名無しさんNGNG
>>335
VB厨よ。これ以上バカな発言を繰り返すな。
0337デフォルトの名無しさんNGNG
バカな発言って
「VBの文字列ってよくわからないね。」
のことか?
0338デフォルトの名無しさんNGNG
>>337
あぁ そりゃバカだ。誰だ言った奴(藁
0339デフォルトの名無しさんNGNG
strtokって仕様がキモイね。
0340まこっちゃんNGNG
愚和〜っし!!
VB虫の人達は親切でした。蟻が父さんでーす。
=が同じなのは目の錯覚ではなかたのですね、覚えたのれす。
eqというのもあるのですね、これと=では同じ意味なのれしょうか?
参照比較と文字列比較とかの違いはないのれすか、さっぱりです。

これが理解できたらForに学習を移りますのれす。難しそうなのれす。
んじゃーサバラ!
0341デフォルトの名無しさんNGNG
>>340
本当にVBを知らない奴がいた(藁
0342デフォルトの名無しさんNGNG
>>339
そだな。実際複数から呼び出すとボロボロになる仕様。
0343まこっちゃんNGNG
しょしんしゃスレなので知らなくてもワラ割れる筋合いはないのれす。
しょしんしゃスレに煽りにだけ来てるほーが(わるい)のれす。
0344デフォルトの名無しさんNGNG
>>343
初心者と素人は明確に差別されます。
0345デフォルトの名無しさんNGNG
・初心者
これから学ぼうとしているもの

・素人
何も知らないもの
0346デフォルトの名無しさんNGNG
>>345
・入門者
これから学ぼうとしているもの

気持ちの問題であって結局は素人。
0347デフォルトの名無しさんNGNG
>>345
だとすると上の彼らは素人だと思われ。
0348まこっちゃんNGNG
>初心者と素人は明確に差別されます。
>気持ちの問題であって結局は素人。

いってる事がわからないのれす。さっぱりです。
しょしんしゃorしろうとスレを荒らす事がカコわるいとおもてる
かどうかの見解も聞きたいものれす。
0349デフォルトの名無しさんNGNG
初心者かどうかはともかく、
妙な日本語を使うのは質問する相手に失礼じゃないのかね?
0350まこっちゃんNGNG
>妙な日本語を使うのは質問する相手に失礼じゃないのかね?

(藁 とか使っといて

妙な日本語失礼じゃないのかね?
妙な日本語失礼じゃないのかね?
妙な日本語失礼じゃないのかね?

プ。
話そらすなよ(麦
0351デフォルトの名無しさんNGNG
>>350
(麦ワラタ。
後、攻撃する相手変わってるぞ(孫
0352デフォルトの名無しさんNGNG
(孫ワラタ(壺
0353デフォルトの名無しさんNGNG
>>331
用途によるけど、デリミタが一種類なら Split() 使うのが吉。
0354デフォルトの名無しさんNGNG
>>349
激しく同意。
見ててうざい。
0355 ◆dcIDMhC9ck NGNG
えーと質問です。環境はXP+VB6SP5

とあるByte配列の中身が空っぽであるか調べたいのですが
どうやればいいのでしょうか。String型と全然勝手が違って悩んでいます。
String型なら If TempStr = "" Then こう、簡単なんですが・・・。
0356 ◆dcIDMhC9ck NGNG
おっと、age
0357320NGNG
解決した。
約1.4倍速度UP。こんなもんなのか・・・ちょっとがっかり。
0358デフォルトの名無しさんNGNG
>>357
1.4倍が妥当なのか知らんが、ちゃんとハードウェアアクセラレートは
使用されてるか? エミュレーションモードで動いてたりしないよね。
0359デフォルトの名無しさんNGNG
>>355
動的配列? 静的配列?
動的配列なら、UBoundかなあ?
静的配列なら、初期化時は全部0が入ってると思うよ。
0360デフォルトの名無しさんNGNG
>>359
動的配列だろ。
静的配列なら、初期化時と同じだからと言って空っぽと言う判断するのはどうかと思うよ。

とりあえず、

If UBound(A) < LBound(A) Then
  ' 空っぽの処理
EndIF

でいいと思う。
0361デフォルトの名無しさんNGNG
Dim A() As Byte

If UBound(A) < LBound(A) Then
 MsgBox "(゚∀゚)"
End If


アヒャった
0362361NGNG
↑スマソ
×アヒャった
○エラった
0363モモNGNG
>>311
うう、自分でがんばってみます。
0364 ◆oRZMgJMAzg NGNG
String型のデータの中から
指定した行数目のテキストを抜き出したいのですが
こういう場合は自作関数しかないのでしょうか?
とりあえず自作のがあるんですけど微妙に動作がおかしいんです。
そんな事しないでも出来る方法、あるんでしょうか?

無いのなら、このソースのどこら辺がマズってのるのか
教えて頂けるでしょうか。
0365 ◆oRZMgJMAzg NGNG
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



0366 ◆oRZMgJMAzg NGNG
うわぁ激しく半角スペース削られた・・・

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
0367アフォルトの名無しさんNGNG
>>362
アヒャった、でいいじゃないか。
0368361NGNG
>>367
実行時エラー '9': インデックスが有効範囲にありません。

てな感じでエラーが出マスタ。まぁ一度も領域指定してないから当たり前だけど・・・
0369デフォルトの名無しさんNGNG
>>364
Split(text,vbCrLf)(lineindex)
0370デフォルトの名無しさんNGNG
>>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

とか
0371360NGNG
>>368
俺も気になったが、Dim A() As Byte の直後に A = "" としとけば大丈夫。(ちなみに、UBound(A) = -1, LBound(A) = 0 になる。)
逆に、>>355 が未使用の状況まで知りたいと言うなら、エラートラップするしかないと思う。
0372デフォルトの名無しさんNGNG
>>371
> 逆に、>>355 が未使用の状況まで知りたいと言うなら、

動的配列だったら普通はこっちだと思うが。
0373361NGNG
>>371
まぁポインタ見れば良いんだろうけどね。

If StrPtr(A) = 0 Then
 MsgBox "(゚∀゚)"
End If

隠し関数は余り使わない方が良いんだろうけど、漏れはこうやってる(´д`)もっと良い方法キボーン
そもそも、>>355の「配列が空」ってのがどういう意味なのかが良くワカランです
0374320NGNG
>>358
はぅあ!!エミュレーション?
HALだかHELだかって奴ですか・・・
よくわからんがBLTFASTの方を使ってるんで。
ノートだから余計なハードは無いと思う。
0375デフォルトの名無しさんNGNG
http://yahooo.s2.x-beat.com/
0376デフォルトの名無しさんNGNG
>>373
余計なお世話的説明補足。
結果的にそれで判定できてるみたいだけど、なんか勘違いというか「ん〜」てなとこがあるので。
Byte配列と文字列は相互に変換できる。StrPtrの引数は文字列なのでByte配列が文字列に変換される。
そのときByte配列が空だと(空文字ではなく)vbNullStringに変換される。そのためStrPtrで判断できる。
ちなみにvbNullString=""はTrueなのでIf CStr(a) = "" Thenでも判定できる。
0377361NGNG
>>376
なるほど。指摘さんこす
0378デフォルトの名無しさんNGNG
VisualBasicのラベルに立方センチメートルのような上付きの表示を
出したいんですが、できますか?
0379なつみNGNG
超初心者なんだけど誰か優しく教えてくれる人いる???
0380デフォルトの名無しさんNGNG
BMPファイルの任意点のRGB値を10進数で抜き出したいです.

んで,たとえばR値の入ってるアドレスを
バイナリ形式で読み取って文字列として格納.

それをAscで10進数に変換できるのかな?
と思ってやってみたんですが,R値が小さいときにはできてるけど,
大きくなると負の値が戻ってくる.どうしてでしょう?

本気初心者なんで,見当違いのことしてるかもしれませんが
ヒントでも関連ページでもなんでもいいので,お願いします.
0381デフォルトの名無しさんNGNG
>>374
ちょっとまて。
それすら知らないでDirectXで性能が出ないなんてほざいてるのか?
糞とはいえあまりにもDirectXとカードメーカーが不憫だ。
0382デフォルトの名無しさんNGNG
>>380
通常、嫌でも10進表現になると思われ。
0383デフォルトの名無しさんNGNG
>>381
そもそもVBでDirectXの時点で間違ってる。
0384なつみNGNG
Dim stDocName As String
Dim stLinkCriteria As String

(略)

DoCmd.OpenForm stDocName, , , stLinkCriteria

・・・・上の構文を良く見かけるんだけど、stdocname,stLinkCriteria
自体に何か意味があるんでしょうか?必ずこの文字を使わなければ
いけないんですか???初心者ですみません。
0385380NGNG
>>382
そっか.通常はなりますか.
とりあえず方向性は間違ってないってことがわかっただけでも
助かりますた.ありがとうございます.

なんか,他の要因探ってみま〜す.
0386デフォルトの名無しさんNGNG
>>380
「バイナリ形式で読み取って文字列として格納」ってあたりが怪しい。
どうやって読み込んでいるのかわからんけど(まぁ想像はできるが)、
文字列で読み込むときに2バイト分よみこまれてるんじゃないかな。
「1バイト」を読み込んでいるつもりだろうけど、
「1文字」が読み込まれてるように思える。
1バイト目が漢字コードなどの1バイト目だと、
次のバイトも読み込まれて「1文字」が読み込まれるよ。(仕様)
漢字の文字列にAscするとシフトJISコードが帰ってくるけど、
シフトJISってのは&H8000以上だから
負の数がかえってきているんだと思う。(この辺はわかるよね?)

そもそも文字列にして格納する必要がないと思うけど?
Byte型の変数でゲットすれば普通に求められると思うぞ。
0387デフォルトの名無しさんNGNG
ピクチャボックスに書いた線等が保存するときにはなくなってるのですが、
どうすればいいでしょうか?
0388デフォルトの名無しさんNGNG
>>387
Picture1.Pictureではなく、Picture1.Imageを指定する
0389381NGNG
>>383
まぁ禿同だけど、VB厨にも夢をみせてやれ。
0390デフォルトの名無しさんNGNG
>>386
>そもそも文字列にして格納する必要がないと思うけど?
>Byte型の変数でゲットすれば普通に求められると思うぞ。

あれま.そんなんできるんだ.
てか,それでできました.すげぇ.別にすごくないんだろけど.

おかげさまでここ何日かの悩みが解決しますた.
いや,まぢで何日も悩んでたんですよ.ほんまありがとうございました.
0391デフォルトの名無しさんNGNG
388さん
ありがとです。
あとautoredrawがfalseになってましたw
0392デフォルトの名無しさんNGNG
>>380
Long型使わないとマイナスになる
0393デフォルトの名無しさんNGNG
>>384
必ずしもその変数名である必要はないはずです。
おそらくヘルプのサンプルにそう書いてあったので、
みんなコピペしたのだと思います。

ちなみにうちの会社では、Callが無い点と、
String型の変数の前置詞がstだという点で不許可です。
0394なつみNGNG
393様!!!!!!!!!
どうもありがとう!!!!!!!!!!!!
さらに質問してもいい?
0395なつみNGNG
>>393
なんのキーワードで探すとヘルプでみれますか??
0396デフォルトの名無しさん NGNG
わりこんでしまって、もうしわけありませんが質門いいでしょか、
sub main()内で
wininet.dllを使用してFTPをしようとしたところ、
FTPの処理はうまくいくのですが、すべての処理の
終了後にVBが終了しなくなってしました。
これは、何か開放できないインスタンスが悪さでもしてるのでしょか。

どなたかなにか、ヒントを教えていただけないでしょうか。
お願いします。

環境は、Windows2000 ,Visual Basic6.0です。
0397デフォルトの名無しさんNGNG
>>395
だからOpenFormメソッドの[使用例]で、
と思ってみてみたら
> DoCmd.OpenForm "社員", , ,"氏名 = '山田 一郎'"
日本語だった。
まあ、気にすんな。
0398デフォルトの名無しさんNGNG
>>389
VBでDirectX使えるんだから夢ってほどのことでもないでしょ。
0399396NGNG
すみません自己解決できました、
ルータの設定変えたら直りました。
ご迷惑おかけしました。
0400デフォルトの名無しさんNGNG
>>399
ルータの設定で直るわけ無いだろ。どっかにバグがある。
0401396NGNG
>>400
でも、本当にルータの設定で直ってしまいました。
バグはあるかもしれませが、環境に依存するとヤツだと思いますので、
いろいろ試してみて、なんとか調べ上げようと思います。
レスありがとうございました。
0402デフォルトの名無しさんNGNG
>>401
直ったんじゃなくルータが正しく設定された状態でのみ正しく動くだけだろ。
なぜルータが正しくないときは終了しないのか原因を究明しろよ。
0403396NGNG
>>402
それを調べると>>401で書いたつもりですが、言葉がたりませんでした。
申し訳ありません。
0404デフォルトの名無しさんNGNG
>>383
なぜ間違っているのかを教えてくれ。
0405デフォルトの名無しさんNGNG
動的配列に要素が一件も入っていないことを確かめるにはどうしたら
いいのでしょうか?

今は、配列に入れた数をカウントする関数を使っているのですが、
無駄な変数を増やしているような気がしてなりません。
0406デフォルトの名無しさんNGNG
>>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
0407デフォルトの名無しさんNGNG
>>406
そういうことでございますた。
ありがとうございます。

oleaut32っていうのは標準に入っているdllですか?
0408デフォルトの名無しさんNGNG
>>406
おいおい、嘘を教えるな。
APIを使うなら自分が理解してから使え。

>>407
406は結果オーライになってるだけだ。
素直にエラートラップを使って判定しろ。
0409デフォルトの名無しさんNGNG
ListBoxで 画面上に表示されているリストの一番上のindexは、
どうやって取得したらいいのか教えてください。
ListBoxで スクロールさせたとき、上に表示されているアイテムのindexを
取得したいんです。
0410デフォルトの名無しさんNGNG
>>409
TopIndex
0411デフォルトの名無しさんNGNG
>>405
動的配列に要素を入れるときに、
lngCnt = lngCnt + 1
とし、単純にカウントするのが一番だ。
0412デフォルトの名無しさんNGNG
>>411
俺も。
UBoundとか使ってトリッキーに(ってほどでもないか・・・)処理してると、
思わぬ落とし穴があったりする。
シンプル・イズ・ベストってやつだね
0413デフォルトの名無しさんNGNG
ListBOXで ホイールのイベントを取得するには どうしたらいいのでしょうか?
0414デフォルトの名無しさんNGNG
WebBrowserコントロールに表示したページをクリップボードへコピーしたいのですが
できますでしょうか?
通常のWebブラウザで表示した画面をPrintScreenでコピーすると
入りきらない部分がスクロールしないと表示できないので困っています。
そこでVBでやろうと思ったわけです。
0415デフォルトの名無しさんNGNG
>414
API知ってる??
知ってたらできるよ。
0416デフォルトの名無しさんNGNG
>>415
WebBrowser.hWnd をOpenClipbordに渡せばいいでしょうか?
0417デフォルトの名無しさんNGNG
表示されてない部分までコピーできるもんなの?
0418デフォルトの名無しさんNGNG
&H8000000F&
といったシステム予約済みのカラーから
実際のRGBの値ってどうやったら求められますか?
0419デフォルトの名無しさんNGNG

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)
0420デフォルトの名無しさんNGNG
>>1
>悪いことは言わないから(w)、転職、または他部門への異動を真剣に
>検討して頂きたい。

検討するから やとってくれ(w
0421デフォルトの名無しさんNGNG
R = c And &HFF
G = (c And &HFF00&) \ &H100
B = (c And &HFF0000) \ &H10000
0422デフォルトの名無しさんNGNG
>>398
>>404
そういう書き込みはするな
まあバカはほっとけ
0423418NGNG
いや、&H8000000F&とかの&H8で始まるやつって
システムカラーの設定によって変わってくるから、
実際の色は何色かを求めたいのですが。
ちなみに&H8000000F&はボタン表面の色。
0424デフォルトの名無しさんNGNG
俺、前にVB6+DirectX8でフライトシミュレーター作ったけど
パフォーマンス的にもなんの問題もなかったよ。
DirectInput使ってジョイスティックの制御もやったけど、
そちらも特に問題なし。
まあ、一応参考までに・・・
0425421NGNG
>>423
あはは。確かに。
GetSysColorじゃだめなの?
0426418NGNG
いやぁ決まってるわけじゃなくて、設定できるようにしたいので。
まぁ&H8000000Fなら〜ってかけばいいのですが。
どっかに点を描画してその色を取得するって方法は思い浮かびましたが
あまりスマートじゃないすよね。
0427デフォルトの名無しさんNGNG
ああ ちなみに ボタンの色とか Windowsの根本の色は、デスクトップの設定で 変わっちゃうんだよなぁ〜〜〜。
0428デフォルトの名無しさんNGNG
>>426
設定するならSetSysColorsでは?
0429デフォルトの名無しさんNGNG
>>418
GetSysColor
0430デフォルトの名無しさんNGNG
ListBoxによぉ、リアルタイムで追加してるんだけどさ、
なんか、けっこう画面が ちらついて うっとしいんだわさ。
これって ちらつかないようにできないのかねぇ。
だれか やり方、知ってたら 教えてよ。
0431418NGNG
むぅ。
んじゃ
If oleColor = &H8000000F then
 o_Color=GetSysCollor(COLOR_BTNFACE)
ElseIf
 '以下同様のやついっぱい
Else
 o_Color = oleColor
End If
Debug.Print o_Color
ってやるしかないかいなぁ
0432421NGNG
>>431
何言ってんだか。

o_Color = GetSysColor(oleColor And &H7FFFFFFF)
でいいじゃん。
0433デフォルトの名無しさんNGNG
>>430
知ってるしすぐ書けるけどよぉ〜
調べればすぐ分かっしよぉ
それって人に聞く態度じゃないよなぁ
だから教えないよ
0434421NGNG
432の補足。
Dim oleColor As Long だとすると、

If oleColor >= 0 Then
  o_Color = oleColor
Else
  o_Color = GetSysColor(oleColor And &H7FFFFFFF)
End If
0435418NGNG
おおお、なるほど。
ちゃんと対応してるのね
0436422NGNG
>>424
俺がバカでした。作ってもみないで不可能だと思い込んでいました。俺逝ってよし。
0437436NGNG
名前間違い。
×422
○383
0438デフォルトの名無しさんNGNG
>>1の書き込み見ると毎日が鬱です
0439デフォルトの名無しさんNGNG
WebBrowserコントロールで、
navigate2 メソッドのヘッダーにて User-Agent を決めることは出来ましたが、
表示されているページのリンクを押した際されるページ切替の際は User-Agent を変える方法がわかりません。
どうやればいいかわかりますか?
0440デフォルトの名無しさんNGNG
>>438
気にしてるのはあんただけだよ。
0441デフォルトの名無しさんNGNG
おれもたちなおれません
0442デフォルトの名無しさんNGNG
すいませんあの聞きたいんですけど
y=sin(x)cos(2x+3)exp(x)
のグラフを表示させるプログラムを作らなくてはいけないんですけど・・・誰か教えてもらえませんか?
0443デフォルトの名無しさんNGNG
>>438=>>441=>>1
0444デフォルトの名無しさんNGNG
>>442
宿題をきくスレは ここじゃない!
0445デフォルトの名無しさんNGNG
>>409
>>413
>>430
0446デフォルトの名無しさんNGNG
わかりました宿題のスレ教えてもらえませんか?
0447デフォルトの名無しさんNGNG
>>446
自分で解かないと意味がないだろ。
0448デフォルトの名無しさんNGNG
宿題という言葉の意味を百回ほど辞典で調べろ
0449デフォルトの名無しさんNGNG
VBで作った2つのプログラムをディストリビューションウィザードを使って
パッケージを作ってインストールしました。
2つのプログラムは別のアイコンなのですが、アプリケーションの追加と
削除の画面をみると両方とも同じアイコンになってしまいました。
こんな現象が起きたことあります?

ちなみにVB6.0です。
0450デフォルトの名無しさんNGNG
>>442
御見積書を先生に出してやれ!
0451デフォルトの名無しさんNGNG
>>450
チョトワラタ
0452デフォルトの名無しさんNGNG
>>450
(・∀・)イイ!
0453デフォルトの名無しさんNGNG
テキストボックス内テキストの縦方向の配置を変えたいんだけど
EM_SETRECTでメッセージを送信しても何も起きん
どうやるのか教えてくれ
0454453NGNG
?
MultiLineをTrueにするとできるようだな
そういう仕様なのか?
0455デフォルトの名無しさんNGNG
メニューを動的に階層を作る事は出来ないのか?
0456デフォルトの名無しさんNGNG
>>455
参考になるか知らんが、興味あったから調べてみたら
下記のような情報を発見。
書いてあるようなAPIを駆使すればできるのかもね。
ttp://www.users.gr.jp/ml/archive/vb/4887.asp
0457デフォルトの名無しさんNGNG
俺はVBは抑止欄のだが、
menuのメソッドを実行時に呼び出せばできるのでは?
0458デフォルトの名無しさんNGNG
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文として認識されません。
何かよい方法はないでしょうか?
0459デフォルトの名無しさんNGNG
>>458
なぜ肝心の、その文字列を作成する部分のソースを出さないの
というか、どうやったらそういう風になるのかが不思議・・・
興味age
0460デフォルトの名無しさんNGNG
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
0461デフォルトの名無しさんNGNG
#10/1/2002# = cdate(指定日付)
0462デフォルトの名無しさんNGNG
>>458
×…プログラム上では
○…プログラム実行中では
0463デフォルトの名無しさんNGNG
>>460
それのどこにBETWEENの文字が??
0464デフォルトの名無しさんNGNG
誤り

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
0465デフォルトの名無しさんNGNG
正

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
0466デフォルトの名無しさんNGNG
>>463
お手数かけました。
指定日付に"2002/10/22"、指定年齢に"Between 50 AND 70"が入ります。
指定年齢に入っている時点で変だったので混乱してしまいました。

動作はテキストボックスに○歳以上と○歳以下の項目があり、
このどちらか、または両方を入れて該当年齢抽出するものです。

○歳以上と○歳以下を判別するプログラムが間違っていました。
>>464
>>465
×…"'" & 条件1 & "'"
○…条件1

レコードセットや数値を抽出すには "'" & 条件1 & "'" で良いのですが、
文字列の場合は、そこまでの手間はいりませんでした。
0467デフォルトの名無しさんNGNG
SQLにロジックが偏重したプログラムはいじりたくないなあ。
0468デフォルトの名無しさんNGNG
>>467
気持ちはわかるが、表現が簡潔過ぎて、意図するところがイマイチ不明。
(>>460のソースが汚くて読みにくい、という趣旨なら、禿げしく同意)
0469デフォルトの名無しさんNGNG
Windows2000にVB5.0をインストールしたけどスタートメニューに
何も登録されませんでした。しかたなくvb5.exeを起動してますが
これってどうなの?
0470467NGNG
>468
RDBをいじる以上、現状はどうしても>460 のようにSQL文字列を
切ったり張ったりしなけりゃならない。別に>460 が悪いわけじゃない。

でも、こういったSQL文字列操作処理のバグとりは憂鬱。
なーんかもっとOOらしくスマートにできんかなあと思って。

(>460のソースは日本語変数名や関数の切り出し方に問題があるけど、
うちの連中のソースに比べたら綺麗なほうです。)
0471フォローになってないが・・・。NGNG
>>470

> うちの連中のソースに比べたら綺麗なほうです。

胃薬をどーぞ。
0472デフォルトの名無しさんNGNG
宿題を きくスレは
http://pc3.2ch.net/test/read.cgi/tech/1029422194/
0473デフォルトの名無しさんNGNG
早くこのスレ消化しようぜ
>>1の書き込みがマジでウザイ
0474デフォルトの名無しさんNGNG
クリスタルレポートをやっているのですが、
たとえばB4横を使用して、右半分、左半分とページ的に扱うにはどうしたらいいのでしょうか?
具体的には、
□□ ← B4を横にしたとして、
まず左がわにレコードを印刷していき、下まできたらつづきは右側、というようにです。

0475DNGNG
>474
プリンタの設定をB4横にします。
[書式][セクション][ディティール][ラベルのレイアウト]
で”ユーザー定義サイズ”を選択してサイズを設定します。
ラベルサイズで設定されたサイズで面取りされます。
縦から横オプションボタンをオンにします。

宛名ラベルを参考にしてください。
0476デフォルトの名無しさんNGNG
VBScriptはWeb制作板でするべきなのに、なぜこのスレッドでも受け付けているんですか?
0477デフォルトの名無しさんNGNG
そこにコードがあるから
0478デフォルトの名無しさんNGNG
>>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

でいいと思うけど。
0479474NGNG
>>475
なんとか宛名ラベルを使用して、
また、1ページの表示できる最大レコード毎にページカウントを印刷ワーク作成時に入れて、
サブレポートにてページ毎の表を作ることができました。

今度は、線を任意に表示・非表示がやりたいのですが、
通常のテキストフィールドには式により設定できるのに、線オブジェクトの非表示項目には式がありません。
どうにかならないでしょうか。
0480デフォルトの名無しさんNGNG
>>456
どんもです。
AppendMenuかInsertMenuItemを使えばいいみたいですね。
少し作ってみたけれど、変なところにメニューが出来てしまいますたヽ(´Д`;)ノ
まぁ、色々チャレンジしてみますです。
有難うございますた
0481DNGNG
>>479
CrystalReportめったに使わないんでてきとーな返事なんですが、
線の上にテキストフィールドを非透過で置いてその表示/非表示を切り替えてみれば?
出来るかどうか分からないけど?
0482デフォルトの名無しさんNGNG
PopupMenu でモーダルなフォームを表示すると
そのフォームで PopupMenu が使えんようだ
回避策を教えてくれ
0483デフォルトの名無しさんNGNG
おれは、別に 1の書きこみなんて 気にしないぜ〜〜
優秀だからよぉ(w

ま、初心者のスレに 転職しろってのも変な話だよなぁ。
しかも、みんな 職業プログラマみたいないい方だし。
前スレのレスが よっぽど 気に入ったらしいな(w
0484デフォルトの名無しさんNGNG
別に消化しなくたっていいんだぜ。
新スレたてればいいんだ!
ここは スレデフレになってないしな。
って スレデフレって なんやねん(爆)
0485デフォルトの名無しさんNGNG
>>483
うん。俺も気にしない。まぁどうでもいいんだから、あんなの無視しとけって。
無視できない奴は実は>>1でわざと気づかせようとしていると思われるぞ(w
0486デフォルトの名無しさんNGNG
マッチポンプですた
0487DNGNG
言われてむかつくことは内心自分が認めていること。
0488デフォルトの名無しさんNGNG
ものすごいバカにバカって言われてもむかつくよ。
04891NGNG
( ´,_ゝ`)プッ
0490デフォルトの名無しさんNGNG
VC++やJava知っている人がVBやるとどれぐらいで覚えられる?
1週間ぐらい?
0491デフォルトの名無しさんNGNG
>>490
VBは奥が深いよ
0492DNGNG
便利そうで使わないもの。
"CallByName"!
誰か使ってる?
0493デフォルトの名無しさんNGNG
>>489
>>>2-999
>悪いことは言わないから(w)、転職、または他部門への異動を真剣に
>検討して頂きたい。技術のない技術者(言葉が矛盾しているが w)の
>存在は、顧客にとっても、同業者にとっても、迷惑(足手纏い)以外の
>何者でもない。

おまえも入っているという罠
0494デフォルトの名無しさんNGNG
>>490
VBは比較的かわってて
C++ユーザーとかは入り込みにくいというのをよく聞く。
0495デフォルトの名無しさんNGNG
>>490
VBとVCとJavaでどれが他に有ってどれが他の言語に無いのか
まとめられればいいんだけどねぇ。
0496デフォルトの名無しさんNGNG
>>495
言語や開発ツールの比較対照をまとめたサイトなんていくらでも
あるだろーが。

0497デフォルトの名無しさんNGNG
>>494
入る必要がない。
0498デフォルトの名無しさんNGNG
>>496
言語仕様まで踏み込んだ比較対照サイトは知らない。
0499デフォルトの名無しさんNGNG
>>497
>>490が入る必要がありそうだ。
0500デフォルトの名無しさんNGNG
>>499
かわいそうだね。
0501デフォルトの名無しさんNGNG
>>500
別に。その程度でかわいそうだなんて甘いよ。
0502デフォルトの名無しさんNGNG
WebBrowserコントロールで、
navigate2 メソッドのヘッダーにて User-Agent を決めることは出来ましたが、
表示されているページのリンクを押した際されるページ切替の際は User-Agent を変える方法がわかりません。
どうやればいいかわかりますか?
0503デフォルトの名無しさんNGNG
MDIの画像編集ソフトを作っています。
(子フォームにはPictureboxがあり、それを使って編集。名前はPIc)
画像を読み込んだときに、PIcはAutosizeをtrueにして
読み込む画像のサイズに合わせているので良いのですが、
フォームもPIcが全部入るようにしようとして

ActiveForm.Width = ActiveForm.PIc.Width
ActiveForm.Height = ActiveForm.PIc.Height

とやると、PIcの一部が欠けてしまいます。どうすれば良いでしょうか。

開発環境はVB6+SP3です。
0504デフォルトの名無しさんNGNG
>>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で補正してな。
0505503NGNG
>>504
なるほど。今試してみたら上手くいきました。ありがとうございます。
0506デフォルトの名無しさんNGNG
AryStr(0)="桃"
AryStr(1)="VB"
AryStr(2)="タニシ"
・・・
という感じで文字の格納されている配列を
文字コード順で並び替えるにはどうすればいいのでしょう?
ならびかえたあと別の配列に入れる予定です。
NewAry(0)="VB"
NewAry(1)="タニシ"
NewAry(2)="桃"

ちなみに正規表現はよくわかりません。
0507デフォルトの名無しさんNGNG
プログラムはずぶの素人が短期間で何かのプログラムを作ろうとする場合
やっぱりCなんかよりもVBマンセーでつか?
0508デフォルトの名無しさんNGNG
>>507
経験が無いならという前提で。
VBでもDelphiでもBCBでも一緒。
VC++やBCCは、ちと時間がかかる。
0509デフォルトの名無しさんNGNG
プログラムの種類にもよるけどね。
コンソールアプリならCの方が短時間で何かのプログラムを作れる。
0510デフォルトの名無しさんNGNG
>>506
ソートをオンにしたリストボックスを使う…のは邪道?
0511デフォルトの名無しさんNGNG
>>506
左端1文字でソートする。
まずは基本から。
手抜きはあとで教える。
0512デフォルトの名無しさんNGNG
>>509

> プログラムの種類にもよるけどね。

要するに、適材適所。

ハイヒールは登山には不向き。
ビキニの水着(あ、別にビキニじゃなくても(^^;)はスキーには不向き。
軽飛行機は宇宙旅行には不向き。つうか、不可能。

そういうこと。
0513デフォルトの名無しさんNGNG
>>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割の人間が習得できる)
0514デフォルトの名無しさんNGNG
>>513
3ヶ月は甘過ぎるような気がするけど?

(1) 新卒採用時に能力適性がきちんと見極められている。
(2) 短期集中教育

が実現できていれば、簡単なデバッグは1週間でできるかと思われ。
むしろ、構造化とか、変数のスコープ、OO的な部品再利用のしくみ
(COM等)の方が、教育に時間が掛かるのではないかと?
0515507NGNG
>>509
厨な質問でスマソ・・・・・・
コンソールアプリってなんでつか?(;・∀・)スマソ・・・・
0516 NGNG
>>510
すばらしいです。
わたしは並び替えだけのためにデータベースをつかわないとかんかなあという大げさなことを考えてました
SQL文でASCやDESCEをつかうのかなあなんて。

>>511
>>513
StrComp()をつかってやるような予想はつけたのですが。
http://www.geocities.co.jp/SilkRoad/4511/vb/strsort.htm
がみつかったのでコピペで手抜きしてみます。

>>510リストボックス使ってみたくなりました。
0517デフォルトの名無しさんNGNG
>>513
son-na osoi houhou wo oshieruna.
0518デフォルトの名無しさんNGNG
>>515

次の中から選択してください。

(1) コソーリ作るアプリ
(2) コンソメの味がするアプリ
(3) コンサルの業務を支援するアプリ
(4) GoTo >>1 : End

※ ちなみに、推奨する選択肢は(4)です。w
0519517NGNG
バブルソートって隣接交換法だよね?
隣のものと比べるんじゃないの?

AryStr(0)とAryStr(1)を比べて0の方が小さかったら0と1を入れ替える。
AryStr(1)とAryStr(2)を比べて1の方が小さかったら1と2を入れ替える。
というのを配列の末尾までやると一番大きな値が配列の末尾にくる。
あとはソートする範囲をせばめて同じことを繰り返す。
0520517NGNG
519
小さかったじゃなくて大きかったら。
>>513のをコピペして使ったから間違った。。。
0521 NGNG
文字コードを返す関数ってなんでしたっけ?
StrComp,StrConv,StrReverse いづれもちがうみたいでした。
0522デフォルトの名無しさんNGNG
Asc。
0523デフォルトの名無しさんNGNG
IPを詐称するにはどうしたらいいでしょうか?
0524デフォルトの名無しさんNGNG
すれ違い
0525513NGNG
>>515
適性検査の結果で、VB研修コースとVC研修コースに分けます。
さらに、VC研修コースで落ちこぼれた人たちにVB研修コースに行って貰います。

>構造化とか、変数のスコープ、OO的な部品再利用のしくみ(COM等)
を理解してもらおうとは思っていません。

でも、現実はVCいじってても、デバッグはできるけど
フルスクラッチはできないって人が多いでつ。
0526 NGNG
>>522
Ascをヘルプで見てみました。まさに求めていた関数でした。
はじめてAscをみたときは絶対値を返すのとおなじ関数なんだなあとおもいましたが、
ヘルプを読んでいくうちに絶対値はAbsだとわかりました。ありがとうございました。

>>506-525みなさま
ありがとうございました。
0527513NGNG
>>519
そうでした。
大きな数字が泡のように登ってくるからバブルソートでしたね。
逝ってきます。
0528デフォルトの名無しさんNGNG
>>525
>>構造化とか、変数のスコープ、OO的な部品再利用のしくみ(COM等)
>を理解してもらおうとは思っていません。
こうやってVBユーザに糞プログラマが量産されるんだな(ワラ
0529デフォルトの名無しさんNGNG
コンソールアプリって コマンド入力するようなDOS画面などで使うアプリのことかな。
0530デフォルトの名無しさんNGNG
時代を感じる・・・
0531デフォルトの名無しさんNGNG
EnumWindowsっていうAPIを使いたいのですが、
VB上で実行すると「DLLが正しく呼び出せません」とエラーがでます。
Exeにすれば動くようなのですが、それではデバッグ時に激しく困ってしまいます。
どうすればよいのでしょうか?
0532デフォルトの名無しさんNGNG
>>525
掃溜めなのか(w
0533デフォルトの名無しさんNGNG
JetDBエンジンで
dim db as Database
set db = open(......

if db = 開けた? then
msgbox "やったー"
end if

みたいにオープンできたかどうか調べたいのですができますか?
On errorとかは使いたくないのですが
0534デフォルトの名無しさんNGNG
JetDBエンジンで
dim db as Database
set db = open(......

if Err=0 then
msgbox "やったー"
end if
0535デフォルトの名無しさんNGNG
>>534
にゃるほど。さんくす。
0536デフォルトの名無しさんNGNG
> On errorとかは使いたくないのですが

ハア? 無理です。
悪いことは言わないから(w)、
転職、または他言語への異動を真剣に検討して頂きたい。
0537デフォルトの名無しさんNGNG
>>536
いや、説明上そういっただけでほんとは使ってるよ。
0538デフォルトの名無しさんNGNG
on error を必要以上に嫌う・恐れる必要はないよね。
よく使い道を理解した上で、必要最小限しか使わなければいいわけで。
0539536NGNG
>>537
説明上って... じゃあ、
> On errorとかは使いたくないのですが
というのは一体どういう意味なの?
0540デフォルトの名無しさんNGNG
>>539
on errorを意味なく嫌ってるアホって意味でしょw
538が書いたとおり、使い方さえ間違えなければいいだけなのに
0541デフォルトの名無しさんNGNG
>>533
On Error使わんと無理。openでこけるよ。
0542536NGNG
>>538,540
禿しく同意。
0543デフォルトの名無しさんNGNG
On Error GoTo
がいやで、
On Error Resume Next
は別にいいとかではなくてかな
0544デフォルトの名無しさんNGNG
On Error で 飛んで処理させる言語は クズだな。
んなもん、使用した関数で エラーを出して IF文で処理させろよ。
0545デフォルトの名無しさんNGNG
>>531
そのソースを見てみないことには何とも...
0546デフォルトの名無しさんNGNG
>>539
答えがOn Error以外のが欲しかったから。
0547デフォルトの名無しさんNGNG
>>544
> 使用した関数で エラーを出して IF文で処理させろよ。

( ´,_ゝ`) プッ
ネタ?
0548デフォルトの名無しさんNGNG
On Errorで思い出したけど、
On Error使わないで、On Errorに引っかかるようなエラーが出ると
「〜〜〜エラー 〜〜〜が〜〜〜です」とかメッセージボックスでたあと強制終了しちゃうけど、
メッセージボックスだけでだして終了しないようには出来ないの?
On Error Resume Nextしたみたいにエラーだしたあと、その処理を無視して
続行、みたいな。
0549デフォルトの名無しさんNGNG
>>546
じゃあそもそも聞き方が間違ってる。
現在は on error で処理していますが、違う方法は
ないんでしょうか? が正しい。
0550531NGNG
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の中身に関わらずエラーがでます。
0551デフォルトの名無しさんNGNG
>>549
そうなんだけどね。俺日本語不自由なんだよね。察してよ。
0552536NGNG
>>546
541が書いてるように、OpenDatabaseでオープンできなかった時は
実行エラーが発生するのはわかってる?
それがわかっていれば On Errorなしではチェックできない
こともわかるはず。

>>550
Rekkyoの引数の数と戻り値の型が間違ってるよ。
(戻り値の型が違うのはエラーとは関係ないが)

Public Function Rekkyo(ByVal Handle As Long, _
ByVal lParam As Long) As Long
0553531NGNG
お〜、動いた。ありがとうございました。
っていうかこのコード実はサンプル集から持ってきた奴だったりして(w
でもEXEにすると動いたのはなぜ??
0554552NGNG
>>553
さあ。手元にVBがないのでわからんけど、
俺の手元のWin98では、EnumWindowsのコールバック関数の
引数のサイズや呼び出し規約が正しくなくても、
それを呼び出したDLL側でスタックポインタを復帰してくれてる。

そうなると、開発環境がエラーを検出できている方が不思議だけど。
0555デフォルトの名無しさんNGNG
バブルソートなんか 使っていると そのうち バブルが はじけるぞ (謎)
0556デフォルトの名無しさんNGNG
>>555
「この会社辞めようと思った上司の一言」ですか?
0557デフォルトの名無しさんNGNG
ソニー製アプリケーションって、ボタンの色はもちろん、
メニューとか全部独自のカラー&デザインになってますよね。
でも機能や操作性はWindows標準コントロールと変わらない。
あれは独自にコントロールを作成しているのでしょうか?
それとも、Windows標準コントロールに何らかの方法で描画しているのでしょうか?
VBでコマンドボタンの色を変えようとしても表面だけで陰の部分は変わってくれませんよね?
0558デフォルトの名無しさんNGNG
>>534
インライン エラー処理使えよ。
0559デフォルトの名無しさんNGNG
>>557
そのソニー製は見たことないから知らんけど、
標準コントロールでも独自コントロールでも可能。
0560デフォルトの名無しさんNGNG
>>557
標準コントロールと100%同じ独自コントロールだって作れるん
だから、自分でがんばれ!
0561557NGNG
そうですね。どちらでも可能だとは思いますが。
まぁボタンとチェックボックスぐらいはできそうだけど、
リストボックスや、メニュー、タブストリップまでとなると。。
おそらくソニーのやつは標準コントロールになんらかのメッセージを送ってると思うのですが
どういったAPI使えばよいのでしょうか?
0562557NGNG
あ、そういえばWindowBlindsってソフトありますよね。
あれと同じ事をしてると思うのですが。
0563デフォルトの名無しさんNGNG
まぁオリジナルのオブジェとか見た目は良いかもしれないけど、見た目重視しすぎて
重くなったり動作が不安定にならないように気を付けてね・・・
0564デフォルトの名無しさんNGNG
背景が半透明のエディタをつくる方法がまったくわかりません。
リッチテキストボックスを半透明にするコマンドとかあるんですかね。
0565デフォルトの名無しさんNGNG
>背景が半透明のエディタをつくる方法がまったくわかりません。
WinME,XP,98でしか無理。

というか、
1)エディタは出来てるが半透明化が全く解からん
2)エディタもつくれないし、透明化も全く解からんアホ

どっち?

0566デフォルトの名無しさんNGNG
>WinME,XP,98でしか無理。
Win2000,XPでしょう?

Windowsの透明レイヤー機能を使うか、
自分で全部描画するかすりゃいいとおもいます
0567デフォルトの名無しさんNGNG
以下のように、オラクルに接続して接続失敗したらエラーコードを取得するコードを書いています。
接続とエラー処理は別のモジュール内にあります。
これを実行したとき、矢印の場所の”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
0568564NGNG
>>565-566
エディタはつくれなくても、
テキストボックスやリッチテキストボックスを透けさしたり、それらに背景画像を表示させてみたいです。
あそびごころのあるテキスト入力ボックスですね。
WindowsはXPです。
透明レイヤー機能ははじめて聞きました。
0569デフォルトの名無しさんNGNG
透明レイヤーはWin2000とXPしかつかえない。
でも結構簡単に実装できる。
でもちょっと重い。
0570デフォルトの名無しさんNGNG
>>565
アフォ?
どのWinでもできるっつーの
0571デフォルトの名無しさんNGNG
VBの場合、クラスモジュールに宣言したStatic変数は
どういうスコープになるのでしょうか?

確か、C++でクラス内にStatic宣言をすると、
各インスタンスから参照される定数が
メモリ上に一個だけできたはずなんだが。
0572デフォルトの名無しさんNGNG
VB.NET環境でCORBA通信できるクライアントサーバのサンプルソースキボン
0573564NGNG
まずは透明レイヤーでしらべてみます。
0574デフォルトの名無しさんNGNG
レキシカルスコープでつ
http://homepage2.nifty.com/rohizuka/ka/pa_003_a.htm
0575564NGNG
ttp://hp.vector.co.jp/authors/VA014315/vb6.htm
ttp://www.vector.co.jp/soft/winnt/prog/se254101.html?g
ttp://tokyo.cool.ne.jp/kanain/APIHTM/Blend.html
ttp://www.vector.co.jp/soft/winnt/prog/se154482.html?y
ttp://www.vector.co.jp/soft/win95/prog/se144994.html?y
ttp://dobon2.tripod.co.jp/dotnet/form.html#opacity
画像の半透明化は結構みつかる。
VB.NETではフォームを半透明にするコマンドも標準であるらしいこともわかった。
テキストボックスを半透明にするにはBitBltとかを勉強してみるしかないか。
0576デフォルトの名無しさんNGNG
>>574
またそれか。しね。
0577デフォルトの名無しさんNGNG
>>557
> まぁボタンとチェックボックスぐらいはできそうだけど、
> リストボックスや、メニュー、タブストリップまでとなると。。
メニューはともかくとして、リストボックスやタブなら
自前でも難しくはないと思う。

> おそらくソニーのやつは標準コントロールになんらかのメッセージを送ってると思うのですが
> どういったAPI使えばよいのでしょうか?
標準コントロールにメッセージを送るのではなく、
サブクラス化とか、オーナードローを使うのが普通。
(コールバック関数を用意して、送られてくるメッセージを自分で処理する)
0578557NGNG
む、なにやら難しそうですな。
クラスはまだ全然分からないです。

>メニューはともかくとして、リストボックスやタブなら
>自前でも難しくはないと思う。
まぁタブはそれほどむずくはないですか。
リストボックスはちょっとむずそうというかどちらかというとリストビューのほうが良いし。
あとスクロールバーがあれば大抵はいけそうではありますが。
0579デフォルトの名無しさんNGNG
>>578
> クラスはまだ全然分からないです。

オブジェクト指向のクラスのことを言ってるの?
ウィンドウのサブクラス化はそれとは別物なので、
一度ググッてみることをおすすめする。
0580デフォルトの名無しさんNGNG
>>579
>オブジェクト指向のクラスのことを言ってるの?
>ウィンドウのサブクラス化はそれとは別物なので、

オブジェクト指向なAPIを持つWindowsに対する挑戦か?
0581  NGNG
VBでマルチスレッドってできますか?
0582デフォルトの名無しさんNGNG
>>581
VB.NETでは可能
0583デフォルトの名無しさんNGNG
ヴァカな発言がネタなのか、天然なのかを効率よく判定するアルゴリズムを
教えてください。
0584デフォルトの名無しさんNGNG
「ネタだったら寒い。本気だったら痛い。釣りならヘタ。」と言ってあげる。
0585デフォルトの名無しさんNGNG
>>584
感謝。m(_ _)m
分岐条件が網羅的なところにセンスを感じますた。
0586デフォルトの名無しさんNGNG
ToolTipTextで 改行させて 複数行表示させる方法を教えてください。
0587デフォルトの名無しさんNGNG
>>586
改行文字を。
0588デフォルトの名無しさんNGNG
>>586

Listboxなんですけど、表示を確認してから コーディングの仕方を
教えてもらえないでしょうか?
0589デフォルトの名無しさんNGNG
まちげえた
>>587
です。
0590デフォルトの名無しさんNGNG
>>589
改行文字を入れろって書いてあるじゃん
0591デフォルトの名無しさんNGNG
>>590
日本語が読めない人をいじめたら可哀そうじゃん。
0592デフォルトの名無しさんNGNG
>>590

おれやってみたけど、改行文字入れても ダメだった。
0593デフォルトの名無しさんNGNG
>>592
ちなみに何入れたの?13 10だよ?OK?
0594デフォルトの名無しさんNGNG
ああそういえば 改行文字ってなんだ?

\n か?
chr(13) & chr(10) か?
それとも 改行文字って 入れないとダメなのか?(w
0595デフォルトの名無しさんNGNG
おっ 知ったかの糞厨 発見
0596デフォルトの名無しさんNGNG
vbCrLf
0597デフォルトの名無しさんNGNG
MDIで子フォームがいくつかあって
メニューエディタで設定できないショートカットキーで
特定の子フォームのイベントを発生させたい場合
どうしたらいいでしょう?
全ての子フォームにキーイベントを書かないとだめでしょうか?
メニューエディタのショートカットキーを増やす裏ワザとか
あったりするんでしょうか?
0598デフォルトの名無しさんNGNG
vbCrlf でTooltip改行しようとしても文字化け起きて改行できなかった

Win2000(sp3) & vb6(sp5)
0599デフォルトの名無しさんNGNG
ToolTipTextで改行はできないよ。
ToolTipText用のフォームを作るなりコントロールを作るなりしてゴマかせ。
0600デフォルトの名無しさんNGNG
>>599
了解
0601デフォルトの名無しさんNGNG
>>599
なーんだ できないのか。いくらやっても おかしいなぁと思ったんだよ。
だから、できるのを確認して、コードを出してって いうのに、
変なこと いう人いるんだから。
0602デフォルトの名無しさんNGNG
>>601
・・・誰?
0603デフォルトの名無しさんNGNG
>>601
誰 っつーか 無償の第三者に動作確認してから
コード出せとは相当図々しいぞ。学生だろお前?
0604デフォルトの名無しさんNGNG
>>601
謎の半角スペースは何のつもりなんですか?句読点の使い方がいまいち理解できてない?

VBとかより今の義務教育の勉強を真面目にした方が良いと思われ。

後、煽りには国語必須な。
文章に隙があれば付け入られる。
0605デフォルトの名無しさんNGNG
>>603
>学生だろお前?

と言うせりふをこの板で良く耳にしますが、社会人は偉いんですかいな?
立派な人は立派ですが>>603の様な痛い方も多いわけで。
0606デフォルトの名無しさんNGNG
>>605
肝心な部分に反論できてないキミのほうがイタイよ・・
0607デフォルトの名無しさんNGNG
学生には、社会の厳しさを知らない甘えんぼチャンが多い。
ということでしょうな
0608デフォルトの名無しさんNGNG
>>607
禿同。605よ、言葉通りに受け取らず、そう言われた意味を察しろ。
0609デフォルトの名無しさんNGNG
>>605
どうでもいいとこいじくるな。
>>603を含むこの板の住人は社会人がえらいとかどうとかじゃなくて
モラルとか常識のなさを学生並と皮肉ってるんだろ。
0610デフォルトの名無しさんNGNG
>>605
生徒だろお前?
0611デフォルトの名無しさんNGNG
>>610
生理だろお前?
0612デフォルトの名無しさんNGNG
ToolTipって改行不可だと思ったけど
vbCrLfでも無理なはず。
0613デフォルトの名無しさんNGNG
げっ!リロードしてなかった。
WinXPでもPCカード取り外したりするときにでてくるToolTipを使うとよいよ
み〜くんぱぱのところにサンプルがある
0614デフォルトの名無しさんNGNG
ここで聞けないようなもっと初歩的なことは、どこで聞けばよいのですか?
0615デフォルトの名無しさんNGNG
>>614
ここでいいよ
0616デフォルトの名無しさんNGNG
>>614
なぁ、本とかで勉強してこい。
0617デフォルトの名無しさんNGNG
半角スペースって謎か?(w

0618614NGNG
>>615
じゃあ、叩かれるのを承知で書いてみます。
全然初心者なんですけど、急きょVBをいじらされることになりました。
リストラは最悪です。(昔はSEがいたのだけど、今は庶務課の私が開発
も兼務・・・)

さて、作るAPなんですが、pdfファイルを3つ選択して、それをftpで送信するというものです。
こんな書くと簡単なものなのですが、作り方がさっぱりわかりません。
(今日VBをインストールしたばっかの初心者なんで。。。)

AP実行手順(イメージ)は、
 �@アプリを.exeで起動
 �Aあらかじめform上に用意してある3つのブランクBOXに.pdfファイルを選択してきて、入れ込む。
(pdfファイルは指定のフォルダに入れておくカタチでも良いですが、
   windowsのディレクトリを参照してファイルが選択できるようであれば尚良しです。)
 �B3つのブランクにファイルが埋まって、「送信ボタン」を押すと指定したftpのサイトへそのファイルを転送する。
 �C送信終了時に「送信完了(成功)」とかメッセージが出る。
 �D終了ボタンでexeが落ちる

ってな具合です。
0619デフォルトの名無しさんNGNG
VBをインストールしたばっかの初心者に開発させるなんて最悪の会社だな。
0620デフォルトの名無しさんNGNG
なんかわざわざつくらなくてもいいようなソフトだね
0621デフォルトの名無しさんNGNG
>>618
初歩的な質問とは言い難いがその会社すごい事させるな。(w

サンプルのソース探してそれをいじくるのが吉と思われ。
0622614NGNG
そうなんですよ、ヒドイ会社で・・・(泣

サンプル探しているんですけどねぇ。。。みつからなひ
0623デフォルトの名無しさんNGNG
>>618
MS-DOSで、FTPっていうコマンドが、使えるから、それでバッチを
作ったほうが、簡単。
0624デフォルトの名無しさんNGNG
>>622
じゃぁ、こんなのはどうだ?
ttp://www.vector.jp/soft/win95/net/se058005.html
0625デフォルトの名無しさんNGNG
>>623
たぶん作ってもらいたいのはFTP送信というよりも
フォームにファイルを選択してボタン押すだけで送信できるツールだと思われる。
0626デフォルトの名無しさんNGNG
給料払って車輪の再発明をさせるとは、素晴らしいDQN害社ですね。(w
0627デフォルトの名無しさんNGNG
>>626
車輪すらまともに作れず威張ってるヤツよりましだと思われ。
0628デフォルトの名無しさんNGNG
>>614
それ作ってやってもいいぞ、ただで。
0629デフォルトの名無しさんNGNG
つか、IEで普通にできるよな。FTPぐらい
ミラーリングとか必要なさそうだし
0630デフォルトの名無しさんNGNG
俺は>614 が女性だったら合コンで手を打とう。
0631デフォルトの名無しさんNGNG
>>630
俺だったら、セクースさせて貰わんと、納得できんが。
0632デフォルトの名無しさんNGNG
>>630-631
男だよ。
0633デフォルトの名無しさんNGNG
俺は手を握ってもらうだけでいいよ
0634630NGNG
>628 さん、任せましたよ。
0635614NGNG
遅くなりました。
>>628さん、ご協力いただけると助かります、ホントに。
宜しくお願いいたします。
メアドは後ほどアップします。
0636デフォルトの名無しさんNGNG
>>635 は犬猿の仲の同僚のメアドをアップして、嫌がらせするつもりだそうです。
0637デフォルトの名無しさんNGNG
まだできないの?
0638デフォルトの名無しさんNGNG
つーか NextFTP使え ゴラァ!
0639デフォルトの名無しさんNGNG
>>638
フリーのFFFTPの方が明らかに優れているのに、なんでわざわざ
シェアウェアを使うよ?
0640デフォルトの名無しさんNGNG
>>639
そうか?シンボリックリンクもまともに操作出来ないあのソフトが?
0641デフォルトの名無しさんNGNG
>>639
制限解除する前の状態と比較するなよ・・・
0642デフォルトの名無しさんNGNG
>>614
(1)IEを起動する。
(2)アドレス欄に「ftp://FTPサーバのアドレス」と入力しEnter。
  ユーザとパスワードを聞かれるので入力する。
  このとき「パスワードを保存」をチェックしておくと次回から楽。
  ついでにアドレスはお気に入りに入れておけばなお楽。
(3)エクスプローラでPDFファイルのあるフォルダを開く。
(4)3つのファイルを選択してIEにドロップ。

これでだめかい?
0643614NGNG
また別な雑用におわれて、レス出来ませんでした。
メールアドレスは、[email protected]になります。
よろしくお願いします。

>>642
お客さんに見せるデモの一部なんで、それではダメなんだそうです。
やってることはその通りでも、それっぽくみせることが大切とかで!?
(下請けなんで、ツライです。)
しかし、まともなプログラマいないのに・・・。
0644デフォルトの名無しさんNGNG
配列ってどうやって作るんですか?
0645デフォルトの名無しさんNGNG
>>643
おいおい。客がいるのかよ。だったら教えられないな。
客がかわいそうだ。
0646デフォルトの名無しさんNGNG
>>644
マニュアル読めよ
0647デフォルトの名無しさんNGNG
>>644
dim hoge()
0648デフォルトの名無しさんNGNG
>>614
質問の内容は確かに初歩的だが以前に、本人に努力する意思が見られな
い以上、これ以上のアドバイスはする気にならんね。
0649デフォルトの名無しさんNGNG
>>647
さんくす。
それをヒントに今からサーチします!!
ってかマニュアル買う金ねぇ...鬱。
0650デフォルトの名無しさんNGNG
>>649
ヘルプでいいだろう
0651デフォルトの名無しさんNGNG
>>649
(゚д゚)ハァ?
0652デフォルトの名無しさんNGNG
>>649
本屋で立ち読みとか
サンプルコードを探すって手もある。
0653デフォルトの名無しさんNGNG
ヘルプ?
私VBA(エクセルのヤツ)なんだけど、ヘルプ見ようとするとインストールがどうのって言われる゚・(。´Д⊂)゚。・
ネットで探すしかない。

あと本屋で立ち読みする程度では私には理解できないと思う。
0654デフォルトの名無しさんNGNG
>>614
やれるだけやってみて、
そして解らないことが出てきたら、
個別にここで聞いてみたらどうでしょう?

それか、お金を払って別の会社に作ってもらっては?
0655614NGNG
>>648
628さんのお助けは、あくまで最後の切り札と考えています。
これでも自分なりに試行錯誤しています。
(本とか買ってきて、分からないなりにイジっています・・・)
こんな中年になって苦労するとは思いませんでした。
全然ダメダメ初心者ですが、頑張ります。
0656デフォルトの名無しさんNGNG
>>653
インストールしろよ
0657デフォルトの名無しさんNGNG
>>655
Inetコントロールを使えば簡単だよ。
0658デフォルトの名無しさんNGNG
>>655
ほい!
http://www.microsoft.com/japan/developer/library/VBCon98/vbconusinginternettransfercontrol.htm
0659デフォルトの名無しさんNGNG
>>653
ハァ?日本語も読めねーのか?

そりゃエラーメッセージ読めなきゃ本なんか読んでも意味ねーよな。
北鮮に帰れや。
0660デフォルトの名無しさんNGNG
>>656
ですよねw。こないだからCD探し続けてます。
0661デフォルトの名無しさんNGNG
現在フォーカスがあるコントロールの次のタブインデックスが設定されている
コントロールを知りたいんですが方法ないですかね?
どこかで見かけた記憶があったような気がするんですが・・
0662デフォルトの名無しさんNGNG
FTPのソフトは、Delphiを買うと サンプルについてるからそれ使えば、便利だぞ。

無理に VBを使う必要なしっ!
0663デフォルトの名無しさんNGNG
タイマー使ってイメージ動かすと途中でチカチカするんですが何とかなりませんか?
0664デフォルトの名無しさんNGNG
この業界入って、何の資格も取らずに40歳までいっちゃうとリストラ対象になるってホントですか?
0665デフォルトの名無しさんNGNG
>>664 コピペウザイ
0666デフォルトの名無しさんNGNG
>>663
AutoRedrawとかClipControlsとかそこらへん。
0667デフォルトの名無しさんNGNG
>>664

四角を取る → 角が取れて人間が丸くなる

という意味。要するに、テクニカルスキルだけでなく、対人関係にも
気を遣わないとダメですよ、という意味。
0668デフォルトの名無しさんNGNG
>>667
目からうろこです。
0669デフォルトの名無しさんNGNG
VBの派生テクノロジーを全部うpしてください。

VB VBA VBScript
とあとなにがあるんですか?
0670デフォルトの名無しさんNGNG
>>669
派生というか全部サブセットです。以上。
0671デフォルトの名無しさんNGNG
サブセットのくせにVBにできなくてVBScriptにできることがあるのは我慢ならん。
0672デフォルトの名無しさんNGNG
ソフトの二重起動を防止したいのですが、
よくあるサンプルはApp.PrevInstanceとAppActivateを使う奴が多いようです
が、これだと別の場所にコピーしたExeから起動できてしまうし、
タイトルバーの名前を変えてしまうとアクティブにできません。
ミューテックスを作成するとかいうのはプログラムが正常終了しないと起動できなくなってしまいます。
ウィンドウのタイトルを取得してソフト名が含まれてたら〜ってやればいいじゃん
と思ってやってみたのですが、ウィンドウタイトル=Exeの入ってるフォルダ名
ってことがあるとダメなことに気がついてしまいました。
どういう方法が一番よいでしょうか?
プロセスからファイル名を取得してファイル名から判断するってなことも考えてみましたが、
どうだろうって感じです。
0673デフォルトの名無しさんNGNG
> ミューテックスを作成するとかいうのはプログラムが正常終了しないと起動できなくなってしまいます。

そんなことはないと思うが?
0674デフォルトの名無しさんNGNG
>>673
同意。NTオブジェクトである以上プロセスと運命をともにするはず。
0675672NGNG
どうやらVB上だとダメっぽいです。
一度実行するともう起動しなくなります。
EXEにすると問題ないのですが。
0676デフォルトの名無しさんNGNG
インタプリタ実行した場合って事ね。そりゃそうか
0677デフォルトの名無しさんNGNG
>>675
それでいいんじゃない? というか、
EXEの時にだけチェックするのでは不都合があるの?
0678672NGNG
おっと、QueryUnloadにReleaseMutexじゃなくてCloseHandleにしたらちゃんと起動するようになりました。
ただ、VBの終了ボタンで終了してしまうと当然起動しなくなりますが。
開発環境で実行してるかどうかのチェックをすればよいのかな?
VB5だとわり算だかで計算結果が違うのを利用できたそうなのですがVB6はどうなのでしょうか
0679デフォルトの名無しさんNGNG
>>678
> 開発環境で実行してるかどうかのチェックをすればよいのかな?

気は確かか ? 一体どのタイミングでチェックするんだ ?
0680672NGNG
え?
If 開発環境=False then
 Unload Me
End If
ってやるだけですが。
0681デフォルトの名無しさんNGNG
exe実行時だけのチェックで何がマズいのかさっぱりわからん(´ー`)
0682デフォルトの名無しさんNGNG
>>68
だからexe実行時かどうか知りたいんでしょ?

デバック時にも2重起動禁止が働いて、2重起動してないのに走らないんじゃ不便だから
0683デフォルトの名無しさんNGNG
方法はいくつかあると思うけど、
MSの技術情報ではApp.ExeNameで判定するのが
紹介されていたような気がする。
でも、条件付きコンパイルとか、EXEを作る時に初めて
チェックルーチン呼び出しを組み込んでもいいんじゃない?
0684デフォルトの名無しさんNGNG
mutex
0685672NGNG
いや、その、VB上で実行しているときに、
アプリケーション側で終了していればQueryUnloadが呼び出されてMutexが解放されるけど、
VB側で終了させてしまうとMutexが解放されないので以降実行できなくなってしまうんですよ。
VBを終了させてプロジェクトを開き直さないといけません。

>>683
条件付コンパイルですか。なるほど。
それでもいいかな。
0686デフォルトの名無しさんNGNG
>>685
なんで終了処理の方で使い分けようとするの?

終了時ではなく、起動時のMutex作成を
(開発環境での実行時は)行わないようにした方が
よいのでは?
0687683NGNG
>>683で App.ExeNameと書いてるけど、
これ多分 GetModuleFileNameの間違いだわ。ごめん。
0688デフォルトの名無しさんNGNG
>>680
どこに書いておけば、そのコードが「VB側で終了させてしまうと」の時に走るんだ ?

(ったく、誰がチェック/対処 の仕方を聞いてるんだよ...。)
(しかも、Unload Me したってダメだし。)
0689672NGNG
>>686
そうですね。そうします。
ところで、Mutexの作成元のウィンドウはどうやったらわかるのでしょうか?
二重起動の時には既に起動しているウィンドウをアクティブ表示にしたいのですが。
0690デフォルトの名無しさんNGNG
半角スペースって謎か?(w
0691デフォルトの名無しさんNGNG
>>689
それこそウィンドウタイトルやクラス名でウィンドウを検索して
アクティブにすればいいのでは?
Mutexの作成元プロセスを取得する方法があるのかどうか知らないけど、
仮に方法があったとしても、多分、NT系OS限定(セキュリティ関連)
ではないかと思う。

それと、688の意味はわかった? 彼の言ってることは正しいと思うよ。
0692672NGNG
ああ、そういうことですか。>>688
いや、別にVBで終了させるときに走らせる必要はなくて
VB上なら問答無用で起動させるようにすりゃよいだけです。
というか686さんの方法でばっちりなのですが。
0693デフォルトの名無しさんNGNG
・DB名,パスワード等の取得について
win2000は環境変数があってそこから取得すればよいと思うんですが、
win95の場合はどうやって取得すればよいと思いますか?iniファイルとか?
なにかよい案をください。
お願いします。


0694デフォルトの名無しさんNGNG
>>693

パスワードは、ポストイットに書いたのをモニタに貼り付けておく。
それを見ながら、画面上でパンチすればよい。

iniファイルを使うのはセキュリティ上問題があるので、不可逆暗号化した方がよい。
0695デフォルトの名無しさんNGNG
>>614
あなたと同じようなソフトを作りたいと思ってるんですが、
まったくのプログラム初心者ですが、私にも出来るでしょうか?
0696630NGNG
>695 が女性だったら合コンで手を打とう。
0697693NGNG
>>694
ありがとうございます。
自分の書き方が悪かったのですが、情報に持ちたいのは
DB接続に使うためのサーバー名,DB名,ユーザーID,パスワードなんです。

なにか良い案はありますか?
0698デフォルトの名無しさんNGNG
VB検定対策問題集の出版元はアーティファイであっているでしょうか?
0699デフォルトの名無しさんNGNG
MediaPlayer1.FileName = "C:\動画.avi"
メディアプレイヤーコントロールは
コードで直接ファイル名を指定して再生するのは簡単ですけど、
実行時にエクスプローラの動画ファイルをメディアプレイヤーコントロールにドラッグして
FileNameプロパティをドラッグファイルに設定する方法がわかりません。
メディアプレイヤーコントロールに
DragDropというものがありましたがそこに何を書いたらFileNameを設定できるのでしょうか。

Private Sub MediaPlayer1_DragDrop(Source As Control, x As Single, y As Single)

End Sub
↑こんなかんじにDragDropがなってました。
0700デフォルトの名無しさんNGNG
>>695が女性だったら強姦で手を打とう
0701デフォルトの名無しさんNGNG
>>695が女性だったら青カンで手を打とう
0702デフォルトの名無しさんNGNG
「私を犯して!!」と言ってきた女とした場合、それは強姦なのだろうか?
0703デフォルトの名無しさんNGNG
>>702
合意の上なら、「合姦」。(w
0704デフォルトの名無しさんNGNG
なんか昔、女を強姦するときはわざとゴツゴツした地面の所を選び押し倒し、
痛がらせてから「じゃああっちの平らな所にする?」と聞き、
「うん」と答えさせたら強姦じゃなくなるとかいう話聞いたな。
激しくどうでもいい上にスレ違いだが。
0705デフォルトの名無しさんNGNG
ひどいインターネットだな。
0706デフォルトの名無しさんNGNG
>>704
んなわけねーだろ。
0707デフォルトの名無しさんNGNG
残念ながら男ですw
当方、プログラマと言うわけでは無く、単純に仕事の流れの1部分を
楽にして他の作業に時間をかけようと思ってるので作ろうと思ってる
わけなんですが、過去プログラムで挫折クチであります。
女性も多い職場なので合コンぐらいだったらいくらでも用意しますが、
まずは私と友達になった上で信頼が置けるようであればいくらでも合コン
程度で良ければ用意できます。さすがに掲示板で知り合って初対面での合コンは
厳しいですね。と、マジレスはさておき、

ファイル選択には、TextBoxにとファイル参照用のCommandBoxの配置まで
やった上で、グーグル検索しコモンコントロールを使用するらしいという
ところまで来ました。
FTP送信部分には>>624のdllを組み合わせてみようかなと思ってます。
暖かく見守ってください。今日中に出来るかな?!
0708630NGNG
>707
そこまでできてんなら、俺の出番は無いな。
完成したら>614 にあげれば。
0709695=707NGNG
>>708
いい線まで行けてますか?
私も初心者なんで勉強にもなってますから、上手く行ったらUPしても良いとは思ってますが
はてさて成功するでしょうか…。
コモンコントロールでいつも見慣れてるファイルの参照ようのBOX表示までは成功したんですが、
それをTextBox表示させる部分に来て、グーグル検索繰り返してます。
10日で覚えるとかって本を見たことが有ったので、それでも買ってこようかな…。
0710デフォルトの名無しさんNGNG
>>707
女性が多い職場かー
いいな。俺んとこには一人もいねー
0711630NGNG
>>709
Private Sub Command1_Click()
  Call Me.CommonDialog1.ShowOpen
  Me.Text1.Text = Me.CommonDialog1.FileName
End Sub
0712695NGNG
>>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部分に入ってみようと思います。
0713デフォルトの名無しさんNGNG
>>618

FTPとサンプルをキーワードに検索エンジンで探せばいろいろ見つかるが
WinInetを使用したVBによるこのサンプルがお薦め

http://www.aland.to/~e-biac/programming/library/index.html#bwFtp
0714695NGNG
>>713
ありがとうございます。今、見てる最中ですが、
初心者の私には何とも長いコードのように思えてf(^^;

イベントプロシージャをさっき理解したところでして…(汗
長い目で見て勉強になりそうです。
できれば単純にFTPコネクトしてputしてそれが成功したか、
その途中のどこかで失敗かをダイアログで出す所まで行きたいんですが…。

basファイルの標準モジュールが何なのかを調べ漁ってます。
0715デフォルトの名無しさんNGNG
エクセルのVBAについて質問させてください。
xmlファイルを読み込んで処理したいのですが、
何か簡単な方法は無いでしょうか?
0716デフォルトの名無しさんNGNG
>>715
外注に○投げする。
0717715NGNG
>>716
いや、仕事ではないので。
0718デフォルトの名無しさんNGNG
画像を背景にしたいのですが、どうすればイイのでしょうか?
0719デフォルトの名無しさんNGNG
ネットワーク上でやりとりされたデータのサイズ
(ようするにネットワーク接続があるときにタスクトレイに出てくるやつに表示されるバイト数)
を求めたいのですがどうやればよいでしょうか?
送受信共にです。
転送量モニターを作りたいのです。

WinSockとInetコントロールはみたところ送受信自体をやるもののようなのですが。
0720デフォルトの名無しさんNGNG
>>719
ほい!
http://netpassport-wc.netpassport.or.jp/~whkama/vbasam/IfInfo.htm
0721 NGNG
VBでミリ秒単位の正確な時間管理ってできます?
プログラム開始から終了までを計測したいのですが
マルチスレッドにしないとできないような事を言われました。

・VBでミリ秒単位の管理は可能?
・VBでマルチスレッドってどうやって実現する??

どなたか教えてください。
0722デフォルトの名無しさんNGNG
>>721
GetTickCountとか。
マルチスレッドは無理。
てか、プログラム開始から終了はかるのにマルチスレッドなど何に使うっつんだ?
0723デフォルトの名無しさんNGNG
そもそもマルチタスクOSで正確な時間管理なんかできない。
0724デフォルトの名無しさんNGNG
>>723
ほう、マルチタスクなハードリアルタイムOSはやたらとあるが。
0725デフォルトの名無しさんNGNG
>>724
例を出してみ
0726デフォルトの名無しさんNGNG
>>721
つーかウィンドウズ上で正確にexeの実行開始から終了までの時間なんて
計測できない
0727 NGNG
>>722-724

ありがとうございます。ついでに質問なのですが、こいつを使えば
起動後、正確に5秒後とかにイベントを発生させるような
事が可能でしょうか?

タイマーオブジェクトだと、微妙にずれてしまって
うまく行かなかったので・・・。
0728デフォルトの名無しさんNGNG
まぁ721が求める結果は、
フォームロード時にGetTickCountして適当な変数にぶち込んでおき、
終了するときにまたGetTickCountして、そこから起動時に変数に入れた奴を引き算した奴で
上等なんだろ。
そんな細かい屁理屈こねるなよ。
0729デフォルトの名無しさんNGNG
>>727
その正確ってのがまた微妙だなぁ。
誤差100msくらいなら正確と捕らえるのか、
1msでもズレたらあかんのか。
0730 NGNG
>>728
ありがとうございます!
これで難しいプログラミングしなくてすみます!!

>>729
外部デバイスの動作時間を計測したいので、
できれば正確なものがよいのですがー
それっぽい数字が出ればいいので、100msぐらいの
誤差ならかまわないです。
もっと正確に計測できる方法をご存知ならば
教えていただきいのですが・・・。
0731デフォルトの名無しさんNGNG
>>730
だったらそれこそGetTickCountでいいべ。
0732 NGNG
>>731
ありがとうございます!!!
これですっきり解決です。
0733デフォルトの名無しさんNGNG
timeGetTime()のほうがいいらしい
0734デフォルトの名無しさんNGNG
再起動させるコードが知りたいのですが…
0735デフォルトの名無しさんNGNG
>>734

> 再起動させるコードが知りたいのですが…

コンパイルエラー:
主語がありません。
0736デフォルトの名無しさんNGNG
>>734
http://www.google.co.jp/search?sourceid=navclient&hl=ja&q=VB+%8D%C4%8BN%93%AE+tips
0737デフォルトの名無しさんNGNG
>>735-736
リンク先に行って見ましたが、自分の探しているものは見つからないのです。
私が望んでいるものは、VisualBasicで作ったボタンで、Windowsを再起動させる為のVBのソースコードが欲しいのです。
どうか教えて下さい。お願いします。
0738デフォルトの名無しさんNGNG
>>737
ほれ!
http://www.cc.rim.or.jp/~namas/vb/vb_api.html
0739デフォルトの名無しさんNGNG
>>737
どこに目ぇついてんの?>>736を52回読め
0740デフォルトの名無しさんNGNG

>>739
警告:
反復回数は2のべき乗で指定してください。
0741デフォルトの名無しさんNGNG
>>740
マジですかΣ(゚Д゚)
0742614NGNG
丸2日かかって、FTPでサーバーにつながるところまで作りました。
もう、心底疲れました。

VB超初心者向け入門本とかには、簡単な計算プログラムとか載ってて
「やっぱ最初はこういうのからやるだよなぁ」と、いきなりファイル転送の
プログラムを作ってる自分の愚かを改めて感じます。

今、PDFのファイルをCmnDialogで拾ってきて、そのファイル名(パス)をlistboxに表示させ、
それをuploadするところを考えているのですが、

CmdBtnでCmnDialogを表示させ、pdfファイルを選択するとBOXに1つ表示。
で、また同じボタンを押して同様にpdfファイルを選択するとBOXの2段目に表示。
という具合にしたいのです。3回繰り返しで3つのファイル名を表示させたいんです。

で、それをInet1.Execute , "PUT"でuploadしようと思うのですが。

なんか695さんも私と似たようなものをお作りのようで、712とかもみて
みたんですが、ちょっと違うようなのでお聞きしたいと思って書きました。

それでは宜しくお願いします。
0743デフォルトの名無しさんNGNG
コモンダイアログは一度に複数のファイルを選択するのが可能だから、そうした方が楽だけどどうかな
0744614NGNG
もう終電なのでiモードからです。
pdfファイルを選択するディレクトリが、
異なることも考えられるので、
別々に3回になるのかな?と思ったんですが。

あと、パスを表示させて、その内容を使って送信をしたい時は、
何のボックスを使えば良いのですか?

はぁ、ホントにダメ人間だな。(泣
0745デフォルトの名無しさんNGNG
Accessとかにある帳票のウィザードのような機能をつくるよう頼まれて困っています。

1.エクセル、csv、mdbなどからの任意データのインポート
2.項目の自由な設定
3.一覧、宛名ラベル、伝票などの印刷

1,2は適当にいぇれそうですが、3で困っています。なんかツールとか
サンプルPGないでしょうか・・・困ったです。


0746デフォルトの名無しさんNGNG
W2k,VB6sp5でMDIで作ってます。
子フォームを表示しない状態だと正常なんですが
子フォームを表示した状態だとMDIフォームにあるメニューを
クリックしてもメニューが表示されません。
なぜかWクリックすると表示されます。
この状態をなんとかしたいのですがどうすればいいのよいでしょうか?
ちなみに子フォームは BorderStyle無しでメニューもありません。
0747デフォルトの名無しさんNGNG
age
0748695NGNG
>>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日で作ろうと思ったけど間に合わなかった(涙
0749デフォルトの名無しさんNGNG
VB.NETで最も簡単にwavファイルを再生するにはどうしたらいいんでしょうか?
本にはDirectXを使う方法しか書いてないのですがそれが一番早い方法なのでしょうか。
それも一冊だけであまりサウンド再生について触れている本が見つかりません。

VisualBasicでDirectXを使うなんて思いもしなかったんですが・・・
0750695NGNG
古典的ですがIF文使ってエラー表示は何とかなりました。
実際デバッグしてみると、どうもPUTでエラーが返ってきてるようです。
ファイル名辺りのエラーだと思うのですが、どなたかお解りになる方宜しくお願いします。

ローカルファイル名部分を参照したファイルにして、UPしたファイルも同じ名前にしたいんですが…。
0751695NGNG
>>749
初心者の聞きかじりですが、DirectShowのことじゃないでしょうか?

http://www.microsoft.com/japan/msdn/directx/japan/dxvb/dxvbdshow.asp
0752695NGNG
>>749
初心者なんでほんと申し訳ない。こちらが正解のようです。

http://www.microsoft.com/japan/msdn/directx/japan/dxvb/dxvbdmusic.asp
0753厨房マンNGNG
プログラマーみたいなパソコン関係の仕事で一番エリートな仕事は何?
ハッカーって仕事?
0754749NGNG
>>752
ありがとうございます。
参考にやってみます。やはりそれなりに面倒みたいですね。
0755デフォルトの名無しさんNGNG
>>753
 ゲームキャラの著作権をもったグラフィックデザイナ(ただしメジャーなゲーム)だ。
 わかったか。
 くれぐれもプログラマとかになろうとするなよ。







 迷惑だから。
0756厨房マンNGNG
>>755
それ嘘なんでしょ?
本気でいまから一流大の情報学科目指してんのに( `_ゝ´)プンプン
0757デフォルトの名無しさんNGNG
>>755
アフォ? 社長に決まってんじゃん。
0758デフォルトの名無しさんNGNG
>>754
mciSendStringかPlaySoundあたりのが全然簡単
0759デフォルトの名無しさんNGNG
>>757
いや,社長は会社が潰れたら責任とらなきゃならんので,
実際は偉くない.
0760初心者NGNG
基本だと思うのですが、ListViewの項目を選択した時Textを取得する
方法がわからなくて困ってます。
わかる方教えてください。
0761デフォルトの名無しさんNGNG
Listview.text

Listview(listview.listindex)
0762デフォルトの名無しさんNGNG
>>760

Me.Text1 = List1.List(Me.List1.ListIndex)
0763デフォルトの名無しさんNGNG
>>759
責任を取らなきゃならないから偉くないってアフォ?
責任を取らない奴が偉いのかよ。
0764佳美NGNG
VBのプログラムから、たとえばメモ帳を呼び出して
メモ帳での編集が終了するまで待ってることって
できるでしょうか。
0765デフォルトの名無しさんNGNG
責任を取らなきゃならないから偉いんだとしると、
株式会社の代表より、合資会社の無限責任社員の方が偉いわけか…
0766デフォルトの名無しさんNGNG
>>764
できますよ
0767初心者NGNG
>761,762
ありがとうございます。
早速試してみます。
0768佳美NGNG
>>766
( ゚o゚) エッ! できるんですか!
0769佳美 NGNG
あまりの感動で濡れてきました!
0770デフォルトの名無しさんNGNG
ネカマを強制終了させる関数を教えてください
0771デフォルトの名無しさんNGNG
>>769
そのネタ前にもどこかで見たことある・・・
最初はワロタが、二度目はつまらんよ

>>770
Call ItteYoshi()
0772デフォルトの名無しさんNGNG
>>768
WaitForSingleObjectをググれ
0773630NGNG
>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
0774630NGNG
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
0775佳美NGNG
>>772
769 はわたしぢゃありませんよ。 WaitForSingleObjectですね!
ありがとうございました。さっそくググってみます。

でもググるってどーゆー意味??
0776デフォルトの名無しさんNGNG
>>774
>    Case 9: sError = "BUT_COMMAND"

しかしコマンド
0777デフォルトの名無しさんNGNG
振るパスからファイル名は
GetFileTitle()だったような
0778デフォルトの名無しさんNGNG
>>775
www.google.co.jpで検索しろってことだ。>ググれ
0779佳美NGNG
>>778
(ノ゚ο゚)ノ おー すばらしい! こんなサイトがあったんですね!
WaitForSingleObject の第一引数のハンドルは
shell関数が返すタスクIDぢゃないですよね、やっぱ。
とにかくいろいろやってみますよ。ありがとうございますた。
0780630NGNG
>776 TsureFtpの作者に行ってくれい。
>777 オメ GetFileTitle()では、漏れには機能が想像つかん。
汚いコード読んでくれてありがと。
0781614NGNG
ヘタレ614です、お疲れ様です。
VBにかかりきりで4晩目に突入しました。

コモンダイアログからファイルをListBoxに表示させるところまできました。
ListBoxに表示してあるフルパスの情報で、複数のファイルをFTP送信(PUT)
したいと思うのですが、ここが分かりません。

よろしくお願いします。
0782佳美NGNG
できますた、できますた。♪
あり。でございます。
0783デフォルトの名無しさんNGNG
>>781
なんだか本当にかわいそうになってきたなー
まじで作ってやるか。
0784デフォルトの名無しさんNGNG
>>781
ほれ
http://homepage2.nifty.com/inform/vbmania/source/ftpupload.htm
0785614NGNG
ソースを載せてみます。

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
0786614NGNG
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
0787614NGNG
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
0788614NGNG

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
0789614NGNG
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
0790614NGNG
'リストボックスをクリア
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
0791614NGNG
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
0792630NGNG
>614
Dim n As Long
For n = 0 To Me.List1.ListCount - 1
  Debug.Print Me.List1.List(n)
Next
0793614NGNG
長くなりましたが、4日かかってゼロからこれだけです。

今、良く分かってないのは、

connect1で接続した後、connect3で再度接続が必要なのか?
Listに表示したパス名をPUTで使うにはどうすれば良いのか?

というところです。
すみません、宜しくお願いいたします。
0794614NGNG
>792(=630)さん

それを、どこへ書き足せばよいのですか?
0795デフォルトの名無しさんNGNG
>>793
接続は1回でいい。
フルパスからファイル名だけを取り出すAPIはGetFileTitle()
0796デフォルトの名無しさんNGNG
VB6付属のAPIViewerのデータベースって古いからのってないのいろいろあるけど、
新しいバージョンのデータベースってないの?
0797630NGNG
>614
いろいろまずいな。自分の力量以上に複雑にし過ぎ。
>618 のすっきりした仕様とぜんぜん違うじゃん。
FTPクライアントを再開発したいの?
送信を楽にするソフトを作りたいの?

StateChangedイベントハンドラがぜんぜん駄目。
これじゃあ、DIRの時しか対応できないし、
Executeが終わってないのに、各Buttonのイベントハンドラが終わっちゃうし。

ところで、同名のファイルがサーバに存在した時はどうする? 上書き?
0798614NGNG
>>797
すいません。
StateChangedイベントは、サンプルのパクリです。

とりあえず、ここまできたのでちゃんと動くものにするのが先ずの目標です。
最後の最後で動かずに、力が抜けそうです・・・。

サーバのファイル上書きは問題ないです。
(デモ用APなんで)
0799614NGNG
とりあえず動きました。
涙が止まりません(泣
さっきのUpされなかったのは、ファイル名を繰り返して入れてなかった
からでした。
Listからのファイル名取得はまだ出来ていませんが、コードに固定パス
打ち込みで、あたかもそのファイルを選んで送信しているかのように
見せかけようと思います。
(間に合うようなら、もう少しがんばってみたいのですが、本来の仕事も
全然停滞しているため)

皆様には大変お世話になりました。
ありがとうございました。
0800630NGNG
>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
0801630NGNG
nbsp;より全角スペースの方が綺麗に見えるな。
自分の仕事やる気無し、今日も進みませんでした マル
0802614NGNG
>>830(630!)
 神様です。すごいです。
 ありがとうございました。


#本当に初歩的なことで恐縮なんですが、保存した.vbpファイルと.frmファイル
を別なマシンで実行しようとすると「パスがみつかりません」とエラーが
出ます(実行できない)。
これは何故なんでしょうか?

0803614NGNG
× >>830
○ >>800

です、失礼しました・・・。
0804デフォルトの名無しさんNGNG
>>799
よかったですね
他人事ながら、なんだか嬉しいです
0805630NGNG
>802
ちゃんとVBをインストールした端末?
プロジェクトを開く時にエラーが出るの?
それともF5キーで実行する時にエラーが出るの?
エラーのおこった行は表示されないの?

VBPファイルをメモ帳にドラッグしてフルパスで書かれたものが
その端末に存在するかチェックしてみ。
0806695NGNG
>>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
-------------------------------------------------

今から、ちゃんと過去ログ読まさせていただきます。
ご丁寧にありがとうございました!
0807 ◆LL.98XOPJI NGNG
質問。VB6です

VisualStudio開発環境についてくる「Spy++」ってありますよね。
あれの機能でメッセージを監視できるじゃいですか。
ひとつのウィンドウハンドルを見張るようにして、
送られてきたメッセージを書き出していくっていう。

あれはどうやってやっているのでしょうか?
また、VBにてあれと同じような事がやりたいです。
ヒントでもヨロシクお願いします。
0808デフォルトの名無しさんNGNG
情けない質問ですがデータレポートで宛名ラベルを印刷したいのですが
どうやれば2列、3列の指定ができるのかわかりません。。。どうか
ご教授のほどよろしくお願い致します(__)。
0809732NGNG
一昨日はどうも有り難うございました。
紹介されたサイトを見ました。が、あれを使ったのですが、ビルドエラーがでます。
何故でしょうか?VB6とVB.netとはコードが変わったのでしょうか?
変わっていたら、変更した無いようにしてください。お願いします。
0810デフォルトの名無しさんNGNG
>>807
SetWindowsHookEx
ただし、他のプロセスのウィンドウを監視するなら
DLL内にフックプロシージャ(コールバック関数)を
用意する必要があるので、VBでは無理かも。
(9x系OS限定ならexeだけでもなんとか動くけど)
0811デフォルトの名無しさんNGNG
VBって バージョンアップするたびにソース変えなきゃ いかんからなぁ。
Delphiだとそんなことない。
0812デフォルトの名無しさんNGNG
VB6で、SSTABを使ってるんですが、
WinXPでSSTABのタブに改行コードを含む文字列を入れると正常に
改行されて表示されるのですが、
Win2Kで同じことをやると改行コードが「・・」で表示されてしまいます。
Win2Kで「・・」が表示されないようにするには、
なにかテクニック等ありますでしょうか?
先輩方、ご教授お願い致します。
0813デフォルトの名無しさんNGNG
Screen.Fontsでフォント列挙して、んでそのフォント名をStdFont
に代入してみたのですが、MSゴシックなんかのCharSetが128になり
ません。
これは最近私の頭髪がうすくなりはじめたことと何か関係があるの
でしょうか?
どなたかご教授ください。
環境は、Win2k+SP2 VB6.0+SP5です。
0814デフォルトの名無しさんNGNG
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)
0815デフォルトの名無しさん ◆Ez1ZxZMJoU NGNG
FindExecutable ?
0816デフォルトの名無しさんNGNG
関数のParamArray指定された引数に、
ハードコーディングじゃ無しに
動的配列を渡せますか?

いろいろ試してみたのですが、
関数内ではからっぽのVariant型になってしまうのですが‥
0817デフォルトの名無しさんNGNG
>>816
配列を格納した Variant が 1 つ渡るんだろ。
0818デフォルトの名無しさんNGNG
>815
ダメだった。
hProcess取得してくれない。
0819デフォルトの名無しさんNGNG
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なんですが。根本的にボケてますか?
0820デフォルトの名無しさんNGNG
>>819
その場合ParamArrayを使う理由がない気が...
Private Function test(var As Variant) As Boolean
MsgBox UBound(var)
End Function
0821デフォルトの名無しさんNGNG
>>814
ShellExecuteの戻り値はプロセスIDではないよ。
つまりShellExecuteでは不可能。

ShellExecuteExならプロセスハンドルも取得できるが、
Shell関数で起動した方が簡単だと思う。
0822デフォルトの名無しさんNGNG
>820
人様の作った関数‥そういう仕様なんです‥
使えんからラッパー作りたいんですが(。´Д⊂)
0823デフォルトの名無しさんNGNG
>>822
んじゃ
MsgBox UBound(vntArr(0))
0824822NGNG
「使えん」は言い過ぎでした。ご免なさい
「諸々の都合」ってやつですね
私も大したもんではないですのでハイ
0825デフォルトの名無しさんNGNG
>>821
実はその方法も考えたのですが、
起動させるファイル(拡張子)がmdbである為

lret = Shell("c:\winnt\notepad.mdb", vbNormalFocus)

のような起動だとエラーが発生してしまい

lret = Shell(SysCmd(acSysCmdAccessDir) & "MSACCESS.EXE " & "ファイルパス名", vbNormalFocus)

のようにするとmdbは起動するのですが、
指定mdb以外にもう1つmdbが起動してしまいます。
0826821NGNG
> lret = Shell(SysCmd(acSysCmdAccessDir) & "MSACCESS.EXE " & "ファイルパス名", vbNormalFocus)

このコードをVB側に書いてんの?

だったらSysCmd()の呼び出しでAccess.Applicationの
暗黙のインスタンスが作られるんだから当たり前。
ShellでやるならAccessのパスを別の方法で取得するか、
または
CreateObject("Access.Application").SysCmd(acSysCmdAccessDir)
のように一時的なインスタンスからパスを取得するか、

またはいっそのことShellでなくオートメーションで
Accessを起動してhwndAccessAppプロパティからプロセスIDを得る。
0827デフォルトの名無しさんNGNG
Picture Boxについて質問です。
ペイントブラシ(MSPaint.exe)よりも簡易な描画・bmp保存ツールを作成中なのですが、
Picture Box上の絵を任意の位置に移動するという処理方法で、
Psetで1ピクセルづつ描き移すというのしか思いつかず、
これだと処理速度が遅く、困っております。
何か良い方法がないものでしょうか?
0828 ◆LXNeBqeuyE NGNG
フォントが使用できるキャラクターセットを列挙するには、どのようにすればいいのでしょうか?
ご教示お願いします。
0829デフォルトの名無しさんNGNG
ボタンを押したらText1の URL に対し、
1.response header をText2 に表示
2.htmlソースを text3 に表示
3.htmlを解釈したものを???に表示

という動作をやりたいんですが、
1.2.を Inet、3を WebBrowser と2動作に分けてやれば出来るんですが、
一度の request にて上記123を満たすにはどうすればいいでしょうか?

0830デフォルトの名無しさんNGNG
>828
Screen.Fontsでフォント名を取得して、StdFont.Nameにセットしてみる。
Win2k以外はこれでうまくいきます。
Win2kの問題の回避方法をご存知の方いませんか?
0831デフォルトの名無しさんNGNG
IEを監視してURLの履歴を取るソフトを作っているのですが
件数が1000とかになるとメモリに格納できなくなります(当たり前ですが
そこで配列が100を超えると101件目からDatファイルなどに書き込んでそこから読み取ろうと思うのですがどうしたらいいでしょうか?

現在のやり方
リストボックスからX件前を表示
履歴(X)をTEXT1に表示。IEコントロールでページをプレビュー表示

やりたいやり方
履歴が100を超える
1件目のデータをDATの一行目に書き込む
さらにもう一度履歴を取る
DATカウント+1
2件目のデータをDATの2行目に書き込む
DATカウント+1
でリストボックスで1件目を選択
(DATカウント)行目を参照し
TEXT1に表示。IEコントロールでページをプレビュー表示

ってな感じにしたいのですが・・・・
説明が長文&わかりにくくてすいませんがご助言宜しくお願いします。
検索もしたつもりですがお勧めの参考ページなどありましたらそちらも教えていただけるとありがたいです。
0832614NGNG
昨日、630さんにいただいたソースで、listboxのファイルをupすること
ができました。

.Execute , "PUT " & Me.List2.List(n) & " " & Me.List2.List(n)

現在、Upするときに付けるファイル名もフルパスになっているのですが、
これをファイル名だけにするには、どうしたらよいのですか?
(上の行の後ろのMe.List2.List(n)を工夫すれば良いはずなんですが。
0833デフォルトの名無しさんNGNG
>>832
.Execute , "PUT """ & Me.List2.List(n) & """ """ & Me.List2.List(n) & """
ってしといたほうがいいよ。
フォルダにスペースとかはいってたらうまくいかないから。
0834デフォルトの名無しさんNGNG
>>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
0835デフォルトの名無しさんNGNG
FileName = Dir("c:\hoge.txt")
0836デフォルトの名無しさんNGNG
>>835
おぃおぃ
0837デフォルトの名無しさんNGNG
>>835
げっ!
動くじゃん。参りますた。
0838630NGNG
>832
IISでは"PUT ローカルフルパス"だけで、自動的にファイル名だけになったので
確認せんかった。
対処は>833 >834のとおり。
0839825NGNG
>>826
ShellExecuteExで動作しました。
ありがとうございます。

Shellの方は
パス名が取得できませんでした。

lret = Shell(パス名, vbNormalFocus)

この時点でパス名が狂い、エラーになってしまいます。
0840 NGNG
>831
やりたい事とかはともかくとして、何が分からないのかはっきりせぇよ。
0841デフォルトの名無しさんNGNG
>>831
1000件くらい余裕だと思うが。10000件でも余裕だと思うが。
0842デフォルトの名無しさんNGNG
そもそもIEは自力で履歴を取ってるのだが・・・。
0843807 ◆LL.98XOPJI NGNG
>>810
ありがとうございます。早速ぐぐってみました。
やはり、ローカルフックならVBでも可能だけれど
グローバルフックをするにはDLLを必要とするみたいですね。
しかもそのDLLをVBで、って訳にはいかないそうで・・・。

ちなみに自分がやりたいのは
他のプロセスのウィンドウ一つについて監視したいだけなのですが
それでもやはり自アプリ内の事ではないのでVBでは無理ですかねぇ。

調べていたら http://www.int21.co.jp/pcdn/vb/vb5/vb5adrof.html
にて、丁度自分がやりたい事のようなサンプルがありました。
そしてそこで使われているのは「SetWindowLong」なのですが
これでも外部プロセスのウィンドウを監視することは出来ないのでしょうか。
0844デフォルトの名無しさんNGNG
>>807
一つ厳しい事聞いていいか?
SetWindowLongの意味もわからないのに
メッセージフックしてなにがやりたいんだ?

他プロセスのメッセージ取得したいだけなら
VBから使えるフックOCXなんていくらでも転がってると思うぞ。
0845695NGNG
お疲れです。

>>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
-------------------------------------------------------------
段々らしくなってきたので、アイコンを付けてみようかなとも思ってます。
後少し!頑張ります!
0846810NGNG
>>843
> 他のプロセスのウィンドウ一つについて監視したいだけなのですが
個数は関係ないよ。

> そしてそこで使われているのは「SetWindowLong」なのですが
> これでも外部プロセスのウィンドウを監視することは出来ないのでしょうか。

SetWindowLongは別プロセスで作られたウィンドウの
プロシージャを書き換えることはできないし、
そもそもアドレス空間が異なるという大前提は理解してるの?

その外部プロセス側のコードを変更できないとすれば、
とにかくVBだけでやろうとするなら、DLLの中に
静的なコールバック関数を作る方法を考えること。
(俺には方法が考えつかない)
0847これではきっと何も解決しないNGNG
APIの引数にコールバックとしてDLLのハンドルと関数ポインタが必要
標準モジュールの関数ポインタはAddressOfで取得できる
ActiveX DLLを作成
標準モジュールの関数ポインタを取得するCOM用の関数を作成
ActiveX DLLをCOM経由で関数ポインタを取得
ActiveX DLLをLoadLibraryでロードしDLLのハンドル取得
0848デフォルトの名無しさんNGNG
>>845
それじゃ一個しか登録されないから、
For i=1 to Data.Files.Count
 List1.additem Data.Files(i)
Next i
と。
何もみずに書いたので間違ってるかも
ん?TextBoxなの??
0849デフォルトの名無しさんNGNG
>>827
PaintPictureかAPI
0850 NGNG
すごくシンプルなところでエラーが出てしまいました。

メディアプレイヤーコントロールを使っていて、フォームにファイルをドラッグすると再生するのはうまくいきました。

mediaplayer1.filename = data.files(1)

このときのdata.files(1)の中身はドラッグしたファイルのフルパスです。

でもアイコンにドラッグして再生するのはエラーが出てしまいました。

'フォームロードの中に記述
mediaplayer1.filename = command()

mediaplayer1.filenameの中は空文字でした。でもcommand()の中はdata.files(1)と同じフルパスが入っていました。

もしかしたらフォームロード時にはまだmediaplayer1オブジェクトがないのかなとおもって、いったんグローバル変数に入れてから
mediaplayer1.filename に入れてみましたが、同じ結果になりました。

なんでmediaplayer1.filenameに同じストリング型を代入しても入るときと入らないときがあるのでしょうか?
0851デフォルトの名無しさんNGNG
>>850
いちいち空行入れるな、ボケ
0852↑↑↑↑↑↑↑↑↑↑NGNG
(^Д^)ギャハ!↑みなさん、この人のレスどう思いますか♪
なんてありきたりなんでしょうね♪
誰もが皆、一瞬つけてみたくなる発想のレスです♪
しかし、賢明な人はその自らの短絡的思考を野放しにする事を嫌がり、
こういうレスは控えます♪
しかし、この人はしてしまったのです(^^;ワラ
「誰もが思い付くような事」を堂々と♪
この人にとってこのレスは何なのでしょうか♪
このレスをしている間にも時間は刻々と 過ぎ去っているのです♪
正にこの人のした事は「無意味」「無駄」でしかありません♪
ああ・・・何ていう事でしょう(^^;ワラ
図星で泣いちゃうかも(^^;ワラ  
0853デフォルトの名無しさんNGNG
コピペウザイ
0854デフォルトの名無しさんNGNG
>>852
お前も同レベル。
0855デフォルトの名無しさんNGNG
>>850
いちいち空行入れるな、ボケ
0856デフォルトの名無しさんNGNG
>>853

>>852
0857デフォルトの名無しさんNGNG
>>854
( ´,_ゝ`)プッ
コピペに(略
0858デフォルトの名無しさんNGNG


動物園の猿からかうようにちょっかいを出したくなる気持ちは分かるが、相手をしてはいかんよ。
いったいどんな人間と思っているのかな。学校の時クラスにいた変な奴とか職場にいる変わった奴とか、
そんなレベルで考えてたら大間違いちゃう?
そういうのはあくまでも健常者。カキコしてるのは、養護教育とか精神医療の対象者だよ。
興味の対象が固着して、前スレからエンドレスに同じ行動を繰り返してる。正常な人間ならとてもでき
ない。明らかに精神障害者でしょ。こういう人間は、健全な自我とか自尊心とかは、形成されていない
か崩壊してる。だから揶揄しても無駄。
精神科の個室に閉じこめられた患者が、孤独と退屈を紛らすため、廊下をとおる看護師や雑役婦を振り
向かせようとするにはどうするか。こいつは、ネットでそれと同じようなことをしているだけ。
無秩序な人格が、反応を求めて彷徨っているのよ。画面に反応が現れるという、その一点に興味と関心
が集中し、ずっとそのまんま。精神の荒廃は相当進んでいると思う。
何かポイントを突いたようなカキコをする場合もあるが、それは模倣によるもの。
他人を模倣する能力は、幼児など人格自律性が薄弱な者ほど高い。こういう人たちは、健常者の言った
立派な挨拶をそのまま他所で真似して喋り、その場の人をビックリさせるようなことがある。
>>855
こいつのカキコも、真似の結果たまたま意味のある内容になっているだけ。効果的と思われる幾つかの
パターンを学習しているにすぎない。意味にこだわってはいけない。
このスレでは、他の健常者との区別は截然としているのだから、別に支障もないでしょ。
憐れみつつ、放置しておきましょう。それが一番。
0859デフォルトの名無しさんNGNG
VB4.0でラベル等に中国語を入力・表記したいのですが、
日本語版でそのような事が可能でしょうか?
ちなみにOSは98の2ndエディションです。
IMEもダウンロード済みですがVBを立ち上げると選択できなくなってしまいます。
宜しくお願いします。
0860デフォルトの名無しさんNGNG
>>850
ほんとに入ってるのか?
0861デフォルトの名無しさんNGNG
レコードセットのFields(0)が見当たらないのですがどうしてでしょうか?
0862デフォルトの名無しさんNGNG
>>861
OSから入れなおせ
0863デフォルトの名無しさんNGNG
>>859
諦めれ。
0864 ◆.OZsf3JbRk NGNG
質問です。
MSNメッセンジャーで、右下に出るような
ポップアップウィンドウを出したいです。

具体的には、枠無しのWindowで
最前面表示固定のWindowsで
表示されてもフォーカスは一切奪わないWindow
と、これだけの条件を満たすWindowを表示したいです。
現にこれを実装しているアプリを多く見かけるので
どうにか出来ると思うのですが、何故か上の3つが上手く噛み合ってくれません。
どうしたら↑のようなウィンドウを作成できるでしょうか。
0865デフォルトの名無しさんNGNG
GetDiskFreeSpaceExを使ってドライブ容量を取得したのですが、
上位下位にわかれた64ビット変数に値が格納されています。
これはどうやったら処理できるのでしょうか?
DiskSize=(FreeSize.HighPart * 2147483647) + FreeSize.LowPart
ってやるとオーバーフローになってしまいますし
0866デフォルトの名無しさんNGNG
>>865
こんなのあったよ
http://www.remus.dti.ne.jp/~y-mac/apilib/drvchkex.htm
0867デフォルトの名無しさんNGNG
VB6ですが、Printerオブジェクトへの出力で印刷をしてるのですが
プレビューができず困っています。良い方法とかツールってないでしょうか?

あと、リストボックスのアイテムをドラッグして任意のテキストボックスに
ドロップってできないでしょうか?

もしよければお教え下さい。

0868デフォルトの名無しさんNGNG
>>867
プレビューするには、PictureBoxに出力するしかない。
共通ルーチンに対してオブジェクト変数を渡すようにすれば、
コードもムダにはならない。これ基本中の基本。

アイテムのドラッグは自分で実装すればよい。
0869デフォルトの名無しさんNGNG
>>867
http://www.systemyou.co.jp/tips/vb/tips1.htm
0870デフォルトの名無しさんNGNG
>>867
VS-VIEWもいいよ。
0871865NGNG
>>866
つかってみますたが、オーバーフローでてダメですた。
0872デフォルトの名無しさんNGNG
867>>869&>>870

サンキューです。さっそく試してみます。ドラッグ&ドロップもよろしくお願いします。
(一応ぐぐってはみたのですが見落としてますね・・・)
0873デフォルトの名無しさんNGNG
>>870

さっそくトライアル判をダウンしたけど
VSPrinterって自由に使っても良いのかな?
結構良さそうです。謝謝♪
0874デフォルトの名無しさんNGNG
>>873
再配布にライセンス料とかは必要ないはずだよ。
0875デフォルトの名無しさんNGNG
>>874 安心しました。ありがとう
0876デフォルトの名無しさんNGNG
>>865
Dim DiskSize As Variant
DiskSize = CCur(HighPart) * 2147483647 + LowPart

あたりでどうだろう。

0877695NGNG
>>848
レス頂きありがとうございます♪
Txtboxなの?と書かれてて頭に「?」が浮かんでたんですが、通常はListboxの方なのですね…。
全く解かって無いままでした。これからLISTに変えてみます!

皆さんのおかげで段々プログラムらしくなってきました。
アイコンは、32X32のBMPの拡張子をicoとすれば良いと思ってたんですが、大違いだったんですね(汗
32X32で作成したBMPのコンバーターはこれを使用しました。
フリーで高機能なグラフィック閲覧ソフト「XnView」です。
http://www.xnview.com/
0878デフォルトの名無しさんNGNG
>>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"

こんな感じ。試してないけどうまくいくだろ、たぶん。
0879876NGNG
>>878
じぶん、符号の処理わすれてますた。
めんどくさいけど
 if w<0 then w=w+4294967296@
は必要な処理ですね。。。
0880デフォルトの名無しさんNGNG
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ボーイって、アクセス売ってるって話ありますが、裏にどこがついてるんでしょう・・お願いします  
0881デフォルトの名無しさんNGNG
>>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を掛ければ本当の数値が得られる。
0882881NGNG
あ、上の関数宣言は戻り値をLong型で宣言すべきだな。
0883デフォルトの名無しさんNGNG
>880
逆に質問させてください。

1)Perlの質問と思われるのに、WebProg板(http://pc.2ch.net/php/index.html)で聞かずに、
VB初心者スレッドで質問したのは何故でしょうか?

2)「上のWAU」「とばす文字列」「CGIボーイ」「アクセス売ってる」とは何でしょうか?
不勉強ですいません。

3)日本人ですか?
0884865NGNG
なんかうまくいかないので自力で
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
それだと型が一致しませんですですっていわれます
0885デフォルトの名無しさんNGNG
>>884
DLL作って文字列で返すとか
0886デフォルトの名無しさんNGNG
>>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

0887デフォルトの名無しさんNGNG
フルパスからドライブ名を取得するのはどうやればよいのでしょうか?
単にLeft(DriveName,2)だとネットワークドライブ名が取得できませんし、
文字列操作だと区切りが\とか/、はたまたウォンとかあるようです。
ファイル名を取得するのはAPIがあるようですが。
VBScriptは使用しない方法がよいです。
0888デフォルトの名無しさんNGNG
>>887
区切り文字がChr(&H5C)以外のWindowsってみたこと無いんだけど。
0889デフォルトの名無しさんNGNG
>>887
ネットワークドライブの場合ドライブレターという概念がないのでは?

まぁ、どっちにしろ初めから一つの\までだろうけど。
0890887NGNG
え?そうなんですか?
「/」(文字コード42)でもいけちゃうじゃないですか。
0891デフォルトの名無しさんNGNG
>>890
使う人いません。それでエラーが出て文句言う人はいません。
0892881NGNG
>>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

これだけでできるんだが。
0893デフォルトの名無しさんNGNG
VBに型なんてあったのか・・・!?
0894デフォルトの名無しさんNGNG
>>893
わざわざ書くな。部外者は他所言ってくれ。
0895デフォルトの名無しさんNGNG
>>894
わざわざ書くな。部外者は他所言ってくれ。
0896デフォルトの名無しさんNGNG
>>895
わざわざ書くな。部外者は他所言ってくれ。
0897デフォルトの名無しさんNGNG
>893 あるよ、A香港型とか
0898デフォルトの名無しさんNGNG
>>897
さぶすぎるー
0899ワンNGNG
>>893
いろいろなスポーツに型があるようにVBにも
やはり型は存在します。型は、とくに日本古来の
武術において重要視されています。
たとえば弓道。これなどは、型がきっちりと
決められるようになるまでは矢を射ることが
禁じられているのです。そして、型を決めることが
できるようになった暁には、もうその矢がどこへ
飛んでいこうが知ったことではないのです。
ここに真の行き当たりばったりとはなにか、という
問いに対する答えのすべてがあるのですね。
VBの型もおなじです。まず型を徹底的に極めなさい。
そのあとはおのずとあなたの前にはすばらしい人生が
開けてくるはずです。
0900デフォルトの名無しさんNGNG
やっぱDelphiだな。
0901デフォルトの名無しさんNGNG


    D e l p h i   マ ン セ ー !
0902デフォルトの名無しさんNGNG
すいません、テンパってます。
VB暦、6日目にして、明日今作ってるものの期限の者です。

FTPサーバー上から、フォルダを取得したいんですけど、
どうしたらよいんでしょうか?

自分なりに調べてみたんですけど、どうしても見つかりません。
なんでも良いんで、情報をお願いします。
今日は、会社に泊まりです。
0903630NGNG
>>902 なんだ? 素人がFTPクライアントを作るのが流行なのか?

DIRをExecuteして、後ろに / がついてるのがディレクトリ。
>>785-791 あたりにソースが出てたぞ。
0904リンク房NGNG
[VB] : VB の WinInet API を使用した FTP の実装 (VBFTP.EXE)
ttp://support.microsoft.com/default.aspx?scid=kb;ja;JP175179

VBマニア - FTPでファイルダウンロード (INETコントロール)
ttp://homepage2.nifty.com/inform/vbmania/source/ftpdownload.htm

google [VB FTP サンプル]
http://www.google.com/search?q=FTP+VB+%83T%83%93%83v%83%8B&hl=ja&inlang=ja&ie=Shift_JIS
0905デフォルトの名無しさんNGNG
labelについて質問です
labelでは、「文字に合わせてラベルのサイズを変更」はAutosizeで出来ますよね
逆に「ラベルのサイズに合わせて文字の大きさを変更」っていうのはできるのでしょうか?
0906デフォルトの名無しさんNGNG
>>905
通常、動的にラベルの大きさ変えるヤツいないですから。
0907デフォルトの名無しさんNGNG
できると思うし方法も思いついたけどあまり美しくないのでもっと美しい方法を教えてくれる人待ち
0908デフォルトの名無しさんNGNG
>>907
取りあえずResizeイベント捕まえて高さと幅取得してもごもごすれば?
0909デフォルトの名無しさんNGNG
>>907
君と同じ方法を思いついた。それでいけ。
もう一つ思いついたが、内緒。
0910デフォルトの名無しさんNGNG
902>>903さん 904さん
ありががとうございました。
さっそく見ています。



0911デフォルトの名無しさんNGNG
ボクのVBが風ひきました
0912デフォルトの名無しさんNGNG
>>911
まず日本語の勉強からな。
0913デフォルトの名無しさんNGNG
>>911
ネギでも巻いておけ
0914デフォルトの名無しさんNGNG
テキストボクースにテキストボクースの横幅より長い文字列入れて、
そのテキストボクースからフォーカス外すと文字列の右側が切れますが、
これを左側が切れるようにはできますでしょうか。

具体的には文字列が「http://www.din.or.jp/~chorokin/laputa.mp3」
だとしたら、

・通常
http://www.din.or.jp|

・こうしたい
horokin/laputa.mp3|

よろしくおながいします。
0915デフォルトの名無しさんNGNG
テキストボクース
0916デフォルトの名無しさんNGNG
昨夜はありがとう。

ところでVS-VIEWで手に入るVSPrinterですが、使用すると
バージョン情報なるダイアログが表示されて激うざです。
製品を購入しないと消えないのでしょうか?

0917デフォルトの名無しさんNGNG
エクセルのデータをテキストのようにINPUTできないのでしょうか?
0918デフォルトの名無しさんNGNG
>>914
ネタじゃなく教えてほしいんなら、ふざけた態度を改めよ。
0919914NGNG
(*´д`*) あっ、すみません。
じゃあ、テキストボックスってことでひとつお願いいたします。
0920905NGNG
>>908
>取りあえずResizeイベント捕まえて高さと幅取得してもごもごすれば?
"もごもご"の部分っていうのは、高さと幅に合わせてフォントサイズを拡大するっていうことですか?
"もごもご"の部分ってどうすれば?
0921デフォルトの名無しさんNGNG
>>920
頭を使わないプログラマってさ、

PC初心者でも出来る!簡単な宛名の入力のお仕事です。
仕事をしながらPCに強くなれます。

とレベルが変わらないと思うんだがどうか?
0922デフォルトの名無しさんNGNG
  アクティブウィンドウ上でのマウスイベントで
 例えば、ボタンがクリックされたなどの判定をするにはどうすればいいんでしょうか・・・
 どなたかお願いします。
0923デフォルトの名無しさんNGNG
>>922
純粋にClickイベントをハンドリングすればいいのでは?
0924デフォルトの名無しさんNGNG
日本語とネギしょったカモ
0925デフォルトの名無しさんNGNG
悪いことはいわないから(以下略
0926デフォルトの名無しさんNGNG
>>921
なるほど、ラベルとレベルをかけている訳か。
おい920君、座布団もってきてやれ。

920に言っておく。
こうすればできるかなと少しでも思ったら試してみろよ。
仕組みを確認するための小さなプログラムとか
みんな星の数ほど書いて技術を身に付けてきてんだぞ。
ここはVB初心者スレだが人間初心者スレじゃないぞ?

俺もかなり偉そうな事言ってるのはわかってるが、
「自分ができるけど面倒だから他人にやらせよう」ってスタンスのお前は
そんなに偉いのか?
0927デフォルトの名無しさんNGNG
>>926
プログラムって言うのは文章を書くという行為に非常に似ている。

まず、文法を覚え、どういう表現が存在するのか把握する。

次に、いろいろなモノを参考にいろいろ書いてみる。初めはもちろんうまくいかない。
しかし、書き続けていればうまくなっていく。


彼女に気持ちを伝えたいんですがどんな文章を書けばいいですか?

ん?だから相手を好きになった経緯とかごにょごにょ書けば?

それはどうやって書けばいいんですか?


お前の手紙だ。お前の好きなように書けよと。

後、ついでに本厨にも言っておく。

初めのうちから「うまい文章の書き方」なんぞ読んでも文章はうまくならん。

自分のスタイルを理解しその問題点をきちっと把握してから読むものだ。

そんなんで育ったら融通の利かないお役所書類しか書けなくなるぞ。
0928905NGNG
>>926
Resizeで高さと幅を取得して、それをどうやってフォントサイズに生かすかがわからないんで試そうと思ってもできないんです。
0929デフォルトの名無しさんNGNG
>>928
なぜ生かせないのかがわかりません。
0930デフォルトの名無しさんNGNG
>>914
ふざけた態度を改めてるとは思えんな。
「じゃあ」ってなんだよ。おめぇは消防か?


とか言っておきながら回答つけてみたりw
LostFocusイベントにでもこれいれてみて。
 Text1.SelStart = Len(Text1.Text)
要はカーソルを一番後ろにもっていってやってるわけ。

ちなみにオイラの環境では文字列の右側が切れたりしないよ。
環境やプロパティの状態によっても違ってくるかもしれないから
今度からはそこら辺も書いた方がいいね。


わかったかボケ
0931922NGNG
>>923
もしよろしければ、コードを・・・

自分がやるとVBのフォーム内ではマウスイベントが発生するのですが
 アクティブにしたIEなどではマウスイベントが発生しなくて困ってます。
0932デフォルトの名無しさんNGNG
>>928 >>905
高さと幅の取得方法は知ってるんだね?
フォントサイズって数値だってのはわかるよね。
高さと幅も数値だよね。
つまり数値から数値への変換な訳だよ。
で、どんな係数や式で変換できるか、これが問題だよね。

初めに戻るけど高さと幅の数値はわかる訳だよね。
そのときの君が最適と考えるフォントサイズってのもわかるよね。
まぁAutoSize=Trueしてみて値をとってみてもいいよね。
そうやっていくつかの組み合わせを「試して」
その数値の組み合わせを紙に書いて見てみよう。
どうだい?中学の数学の時間にやったような記憶はないかい?
数列とかの時間に等差数列とか等比数列とかやったような気がするでしょ。
(君がまだ中学生や小学生だというなら僕の見当違いだったかもしれないね。
 そのときは学校の先生に聞いてみるか、あと数年待った方がいいね)

別の考え方もしてみよう。

ヘルプにちゃんと書いてあるからわかっていると思って話してなかったけど、
フォントサイズってのはポイント単位だってのは知ってるよね?
高さや幅の単位はどうなってるかな?
君がコンテナオブジェクトのScaleModeプロパティをなににしているかは
僕にはわからないんだよ。とっても残念だけどね。
で、ScaleModeプロパティをよくみてみると・・・
おや?「2-ポイント」ってのがあるよね。
ってことは高さや幅の単位とフォントサイズの単位を同じにできるかも!
同じ単位ならあとはそのまま代入でいけるかもしれないね〜
さぁレッツ・トライ!「試せる」よ!
0933デフォルトの名無しさんNGNG
>>922
IEって、他アプリ上でのクリックを取得したいってこと?
それならフックするのが一番かな。
システムフックをする必要があるからVBだけでやるのは茨の道。
VCとかでちょちょいっとDLLを書いてやるか、
システムフック可能なOCXとかあちこちで見かけるから
それ使わせてもらうのが簡単だね。

どんなアプリ作ろうとしてるのか知らんけど、
複数のアプリを動かせる仕掛けのOSでは
他アプリの情報は簡単には取得できないようになってるもんだよ。
もちろん裏技というか抜け道は必ずあるけどね。
そういう普通じゃないアプリ作成にはVBは向かんよ。
0934905NGNG
>>932
なるほど。ScaleModeプロパティと言う手があったんだ
ありがとうございました
0935デフォルトの名無しさんNGNG
変な文章で、毎日煽り入れるだけで、回答してやれないヤシ(推定だが毎日同じヤシ)、
目障りだから氏ねよ。

さ、会社逝こうっと。
0936デフォルトの名無しさんNGNG
TextOut でモノクロプリンタに出力するテキストの色の濃さを変えたいのだが
SetTextColor は効かんようだ
方法を教えてくれ
0937936NGNG
プリンタドライバ (もしくはOS?) によって結果が異なるようだ
スマソ無視してくれ
0938デフォルトの名無しさんNGNG
そもそも全然VBの質問じゃないしな、それ。
0939デフォルトの名無しさんNGNG
>>927
いちいち空行入れるな、ヴォケ
0940デフォルトの名無しさんNGNG
>>916

そりゃ、評価版なんだからしかたないんじゃない
0941936NGNG
もうひとつ ExtCreatePen について
Win98 は問題ないが Win2000/XP だとハンドルが取得できん
方法を教えてくれ
0942おまえしねNGNG
>>939

謝れとは言いませんがこちらもちょっと大人気ないのですが
ムカついたので友達のハッカーに頼んであなたの個人情報を
探してもらうことにしました。あ、もう遅いですよ。
もうすでに友達解析始めちゃってますから・・・(^^;
ちなみにこれは自慢じゃないんですがその友達は日本でも
5の指に入るくらいの凄腕のハッカーです。
この前彼の家に遊びに行ったらものの5分で他人の個人情報を
抜き取っていました。
彼にとってそれくらい赤子の指をひねるくらいの行いなんですよね(爆)
これであなたもいっかんの終わりってやつですね(^^;
まあせいぜい後悔してくださいね。
それからもう二度と荒らしはしないこと(その友達は荒らしが大嫌いらしいです。
荒らしを見つけたら即解析に入るみたいです。(^^;)
それでは、う〜ん二日後くらいかな?また例のところに来てくださいね。
あなたの住所本名住所その他もろもろのせておきますんで(笑)
あ、警察とかに言ったって無駄ですよ。
あなたは荒らし(犯罪)なんだから通報したところで捕まるのは アナタです
友達は掲示板のログを自在に操ることができるんです。
と、いうことでbye♪(^O^)/~~
0943デフォルトの名無しさんNGNG
>>942
大まかなポイントは押さえてあるので,ほぼ良いのではないでしょうか.
欲を言うと,もう少し文章に力が欲しいところです.
0944デフォルトの名無しさんNGNG
Me.Hide とやっても 非表示にならないFormがあるんです、
これを非表示にするには、どうしたらいいのでしょうか?
0945デフォルトの名無しさんNGNG
>>944 非表示にならないFormについて詳細に書いてね。
0946デフォルトの名無しさんNGNG
Shellを使って、外部.exeを起動させようと思うのですが、フルパスを
指定しないで(exe名のみで)、起動させたいのですが、うまくいきません。

Shell("calc.exe")とかShell("notepad.exe")は、これだけで起動するんですが、
Shell("c:\Program Files\Afolder\Bfolder\client.exe")は、
Shell("client.exe")だけでは、「実行時エラー53ファイルがみつかりません。」
となってしまい、うまく動作しません。

どうすれば解決できるのでしょうか?
0947デフォルトの名無しさんNGNG
>>946 環境変数のPATHについて調べてね。
0948デフォルトの名無しさんNGNG
エクセルのアプリケーションオブジェクトを操作するプログラムを書いています。
が、どんなプロパティやメソッドがあるのか、わかりません。
どこを探したら良いでしょうか。
0949デフォルトの名無しさんNGNG
>>948
ヘルプ&マクロの記録
0950デフォルトの名無しさんNGNG
>>948
VCでタイプライブラリをインポートする
0951デフォルトの名無しさんNGNG
>>948 オブジェクトブラウザ
0952デフォルトの名無しさんNGNG
>>948
エクセルのVBAのヘルプ
0953946NGNG
>>947
ありがとうございます。

WinXPを使っているのですが、
システム→詳細設定→環境変数→ユーザ環境変数と辿っていき、
pathのところに「;c:\Program Files\Afolder\Bfolder\client.exe」と追加
してみたのですが、状況が変わりません。

何かのバッチファイルとかを書かなくてはいけないのでしょうか?
それとも書き方がおかしいんですかね?

そもそもが良くわかっていないので、よろしくお願いいたします。
(何かに何かの設定をすれば、フルパスを打たずに実行できるように
なりそうだ、というのは理解しているのですが・・・)
0954デフォルトの名無しさんNGNG
>>953
client.exeはいらないと思うがどうだろう
0955630NGNG
>946
分かってない割には的確だな。中途半端だけど。
「;c:\Program Files\Afolder\Bfolder」でよし。
0956デフォルトの名無しさんNGNG
なんでわざわざシステムの環境変数をいじってまで
フルパス指定を避けたいんだろう?
0957デフォルトの名無しさんNGNG
chdir
はダメ?
0958デフォルトの名無しさんNGNG
>949-952
レスありがとうございました。
いろいろ見てみます。
0959デフォルトの名無しさんNGNG
http://yahooo.s2.x-beat.com/
0960946NGNG
>>954-955(630)さん、ありがとうございます。
言われた通りにしてrebootしたら出来ました。

>>956
今作ってるアプリを使うのが特定のマシンとは限らないんです。
で、呼び出すEXEが格納されているディレクトリはマシンによって異なる
可能性があるんで、何か回避方法はないかな?と思ったのです。

ありがとうございました。

0961デフォルトの名無しさんNGNG
>>960
iniファイルとかレジストリとかに絶対パスを設定するようにしたほうがイクナイ?
0962デフォルトの名無しさんNGNG
>>960
> 今作ってるアプリを使うのが特定のマシンとは限らないんです。
> で、呼び出すEXEが格納されているディレクトリはマシンによって異なる

だったら別にフルパスのままでいいじゃん。

s = "c:\Program Files\Afolder\Bfolder\"
( ↑ 実際にはレジストリや設定ファイルから取得)
Shell s & "client.exe"

わざわざシステムの設定を書き換える必要はないと思うが。
0963962NGNG
あ、ごめん。961とかぶってたわ。
0964デフォルトの名無しさんNGNG
shellを使ってエクスプローラを開くときに指定したフォルダを開きたいときは
どうするんでしょうか?
0965デフォルトの名無しさんNGNG
>>964
何で開きたいのかによるがな
Shell "EXPLORER.EXE C:\WINDOWS", vbNormalFocus
0966964NGNG
>>965さん
コマンドボタンを押したらお気に入りのフォルダがたちどころに開けるとベンリなのでつくってみたかったです。
ありがとうございました。
0967デフォルトの名無しさんNGNG
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です。
0968デフォルトの名無しさんNGNG
>>967
VB.NET?

とりあえずフォーム1がフォーム2によって新規に作られてるかなじゃない?
Dim frm1 As New Form1()
0969デフォルトの名無しさんNGNG
>>968
答えていただいてありがとうございます
確かにForm1がもうひとつ作られて、「終了」で閉じられているのは
1つだけになっているようです。
新しく作らないようにするにはどうやってfrm1を宣言すればいいのでしょうか。
As NewのNewを何かに変えればいいのですか?

>>VB.NET?
ごめんなさい勝手に略しました。VisualBasic.NETです。
6.0と.NETではだいぶ違うらしいので・・・
(最近やり始めたので6.0はわかりません)
0970デフォルトの名無しさんNGNG
>>969
VB.NETわかんない
http://pc3.2ch.net/test/read.cgi/tech/1025848458/l50
できいてみそ
0971967NGNG
すみません。VB.NET用のスレがあるの知りませんでした。
そっちで聞いてきます。
0972デフォルトの名無しさんNGNG
( ´,_ゝ`)プッ


0973デフォルトの名無しさんNGNG
次スレ たてたよ
http://pc3.2ch.net/test/read.cgi/tech/1036154952/
0974デフォルトの名無しさんNGNG
>>973
小津。
0975デフォルトの名無しさん NGNG
VB6でActiveX EXE形式でコンパイルしたファイルを
削除しようとしたのですが、
REGSVR32ではActiveX Dll,Ocxなどはレジストリから削除できるのですが、
ActiveX EXEはできないようです。
どなたか方法知っていたら教えてください
0976デフォルトの名無しさんNGNG
>>975
hoge.exe -Unregserver
(hoge.exeがそのActiveX EXEのフルパス名ね)
0977デフォルトの名無しさんNGNG
>>976
解決しました!!
ありがとうございました。
0978デフォルトの名無しさんNGNG
テキストボックスをコントロール配列にして使用していますが、
要素がある場合にも、「実行時エラー"340" コントロール配列の要素"xxxx"がありません」
となることがあります。
一度終了して、再実行すると直りますが、
何でこのエラーが発生する場合とそうでない場合があるのでしょうか。
このバグの修正方法はコントロール配列を使用しないことなのでしょうか。
どなたかアドバイスいただけませんか。
0979デフォルトの名無しさんNGNG
>>978
ソースにバグがあると思われ
0980デフォルトの名無しさんNGNG
>>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
このような感じでデータベースに新規レコードを追加しています。
発生するときと発生しないときがあり、どうしても解決できません。
0981小人NGNG
ダレモイナイ…
0982小人NGNG
1000get スルナラ…
0983小人NGNG
イマノウチ…
0984小人NGNG
ランタンタン♪ ランタンタンタン♪
0985小人NGNG
2重カコキにもマケナイゾ…ット。
0986小人NGNG
ランタンタン♪
0987デフォルトの名無しさんNGNG

        まもなくここは 乂1000取り合戦場乂 となります。

      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )
0988デフォルトの名無しさんNGNG
( ´,_ゝ`)プッ…
0989小人NGNG
989get
0990小人NGNG
今だ!990番ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
                  ∧∧       (´⌒(´
            ⊂(゚Д゚ )≡≡≡(´⌒;;;≡≡≡
        ⊆⊂´ ̄ ⊂ソ  (´⌒(´⌒;;
           ̄ ̄ ̄   ズザーーーーーッ
0991979NGNG
ヾ(;゚∀゚)ノシ ガッセンハジマル

>>980
わるいけど、次スレ持ち越しってことで
0992デフォルトの名無しさんNGNG
(゚∀゚)
0993デフォルトの名無しさんNGNG
(´∀` )
0994デフォルトの名無しさんNGNG
(,,゚Д゚)
0995デフォルトの名無しさんNGNG
(´д`)
0996デフォルトの名無しさんNGNG
(・ω・)
0997デフォルトの名無しさんNGNG
(゚∀゚)~°アヒャヒャ
0998デフォルトの名無しさんNGNG
1000
0999デフォルトの名無しさんNGNG
1000
1000小人NGNG
               ┌┐                                ●●●
    人          ││                              ●\  ●\
   ノ二\  ナ ゝゝ   V                 ●●●        ●\     ●\
     /   / 乙 つ  O               ●\   ●\      ●\       ●\
                  ●●●        ●\     ●\    ●\       ●\
                 ●\   ●\      ●\      ●\    ●\        ●\
       ●●\     ●\     ●\    ●\       ●\   ●\        ●\
        ●\    ●\      ●\    ●\       ●\    ●\       ●\
        ●\    ●\      ●\    ●\      ●\    ●\     ●\
       ●\    ●\       ●\    ●\      ●\      ●\    ●\
       ●\    ●\      ●\    ●\     ●\        ●●● \
      ●\     ●\      ●\      ●\   ●\           \\
      ●\     ●\     ●\        ●●● \
     ●\      ●\   ●\           \\\
     ●\        ●●● \                              ┌┐ ┌┐
    ●\          \\\      ┣━┳┃┃      ┃          ││ ││
   ●●●\                      ┃   ┃┃┃ ┣┓ ━╋ ━╋  V   V
   \\\\                     ┛     ━┛ ┃   ┏┫ ┏┫  O  O
                     (´´
     /■\    )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。