■ 2ちゃんねるは、ここのサーバを使ってるです。。。
 .jp ドメインお持ちのお客様大歓迎。maido3.jp
 .fm 取得代行します。(US) maido3.fm
 .ca 取得代行します。(US) maido3.ca
 .com .net .org 取得代行します。(US) maido3.com
 .cc .to .tv 取得代行はじめました。NEW
人気サイト
月々1,000円からの BinboServer.com 2ちゃんねるも使っている Big-Server.com
>> 2ちゃんねる、サーバ監視所

■掲示板に戻る■ ■過去ログ倉庫めにゅーに戻る■
◆VB初心者質問スレ Part5
1 名前: 引越しました 投稿日: 02/01/10 10:04
前スレはこちら。
  Part1 = http://piza.2ch.net/test/read.cgi?bbs=tech&key=968328471&ls=50
  Part2 = http://piza2.2ch.net/test/read.cgi?bbs=tech&key=990793224&ls=50
  Part3 = http://pc.2ch.net/test/read.cgi/tech/1000523122/
  Part4 = http://pc.2ch.net/test/read.cgi/tech/1006922992/

Win32 API関連スレ
  http://pc.2ch.net/test/read.cgi/tech/1006783012/l50

心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調てみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。


2 名前: Part4 の 959 さんの解決されていない?質問 投稿日: 02/01/10 10:06
複数のコントロールが重なっている状態で、
ZOrderを使い、前面・背面移動を切り替えた場合に
各コントロール毎に表示されている重なり位置は取得できるのでしょうか?

すいません、ちょっと伝わらないと思ったので補足します。

コントロールはまったく同じではないのですが、
部分的に重なっているものとします。

最前面側
「コントロールC」
「コントロールA」
「コントロールB」
最下面側

上のような状態で重なっているものとして、
コントロールA = 1
コントロールB = 2
コントロールC = 0
の様な、ZOrderに対応した値を取得することは可能なのでしょうか?

m(_ _)m よろしくおねがいします


3 名前: Part4 の 965 さんの解決されていない質問 投稿日: 02/01/10 10:07
ネットワークに繋がっているPCがいくつかあるとします。
たとえばPC001・PC002・PC003の3台。
で、このネットワークに入れるユーザがいつくかあるとします。
たとえばHOGE・WOW・MAO・AFOなど

やりたいことは、各パソコンから相互に自分以外のパソコンにログインしている
ユーザ名がわかるようにしたいのです。
たとえば、PC001を使用している人は、PC002と3に今ログインしているユーザ名
を取得したい。

自分のパソコンにログインしているユーザ名は簡単に取得できますが、
ネットワークに繋がったパソコンの現ログインユーザ名は取得できないのでしょうか

よろしくお願いします。


4 名前: デフォルトの名無しさん 投稿日: 02/01/10 10:28
仮に取得できないとしても、自分のPCにログインしている人を
返すようなサーバソフトを作ればいいと思うが。


5 名前: デフォルトの名無しさん 投稿日: 02/01/10 11:12
>>2
コントロールがウインドウハンドルを持っていると仮定するとして、
APIのGetTopWindowでZが一番上のhWndを取得。
んで、それを目的のコントロールのhWndと比較。
GetNextWindowで次のZ順位のウインドウを探して、繰り返し。

これで一応実現できると思う。
目的のコントロールのhWnd突っ込んだらZが出るよーな関数でも
作ればいいんじゃないかな。
もっと簡単そうな方法は知らない。


6 名前: デフォルトの名無しさん 投稿日: 02/01/10 13:38
>>3
ログインしているユーザ名が外部から知られてしまうというのは
どうなのだろうか、、、

>>4 のようにサーバソフトと、各クライアントからサーバへユーザ名を
申告するようなものを作れば良いとおもうのですが


7 名前: 2 投稿日: 02/01/10 14:42
>>5さん レスありがとうございます。

具体的な方法で答えていただき、大変参考になりました。

重なりで使用するコントロールを調べたところ、
ハンドルを持ってるコントロールもありますが、
持ってないコントロールもありました。

とりあえず、ハンドルが取得できるものだけでも
この方法で試してみます。

ありがとうございます。


8 名前: デフォルトの名無しさん 投稿日: 02/01/10 15:09
WinSockコントロールを使用して簡単な通信アプリを作っています。
ポート番号は、1024番以降であれば好きに使ってよいのでしょうか?


9 名前: デフォルトの名無しさん 投稿日: 02/01/10 15:29
>>8
10000以上にしましょう


10 名前: デフォルトの名無しさん 投稿日: 02/01/10 15:46
>>8
http://www.iana.org/assignments/port-numbers
The Dynamic and/or Private Ports are those from 49152 through 65535
ってあるから、まぁ50000以上にするのが無難かもしれないけど、10000以上なら
隙間が空きまくりなので問題ないでしょ。いちおうかぶらないよう気をつけて。

#9801がRFCに登録されてたのは驚いた。


11 名前: デフォルトの名無しさん 投稿日: 02/01/10 15:51
日付を入力して、その日がその月の第何週かをしらべたいのですが
どうもうまくいきません
Datepart関数をつかったのですが
1月1日から数えて第○週となってしまいます
その月だけの指定はどのようにおこなうのでしょうか?
それとも根本的に間違ってるのでしょうか?


12 名前: 8 投稿日: 02/01/10 16:03
>9 >10
サンクスっす。


13 名前: デフォルトの名無しさん 投稿日: 02/01/10 17:13
>>11
月初めの日と、目的の日、双方の年始めからの週を取得し、
差を求めればいいような気がするが。


14 名前: 3 投稿日: 02/01/10 17:51
ありがとうございます。
では>>4のやり方で実現するつもりですが、このソフトが完成しインストールする際
そのパソコンにログインするすべてのユーザのスタートアップに、ソフトの
ショートカットを入れるにはどうしたらよいでしょうか。

もうVB自体の質問ではない気もしますが、よろしくお願いします。
おそらく、ProgramMenuFolder のようなWindowsの特殊フォルダを指定する
ようなキーワードがあるのだろうとは思うのですが、見つけられませんでした。

ちなみにインストーラはWindows Installerを使っています。


15 名前: Part4 の 960 投稿日: 02/01/10 18:08
>>Part4 の 954 解決できたか?
おいおいいい関数あるじゃねぇか!!(^^;
思いっきり Split関数の関連項目にあったよ。鬱死!

<html>
 <script language="VBScript">
  <!--
   Dim A()  '別に静的でもいい
   Dim B   '()はつけないで宣言
   Dim intI

   ReDim A(3)
   A(0) = 1
   A(1) = 2
   A(2) = 3
   A(3) = 4

   A(2) = vbNullChar 'Null はだめ。vbNullChar ならOK。

   B = Filter(A, vbNullChar, False)

   For intI = LBound(B) To UBound(B)
    MsgBox B(intI) 'これでどうでしょう?ゴルァ
   Next
  -->
  </script>
</html>

これでどうよ?


16 名前: デフォルトの名無しさん 投稿日: 02/01/10 18:51
>>14
ttp://homepage1.nifty.com/Wan/vbtool/vbtool.htm
これを応用されてはどうでしょうか

CSIDL_COMMON_STARTUP
これを使えばAll Usersのスタートアップフォルダが
取得できそうです


17 名前: 16 投稿日: 02/01/10 19:06
失礼
ご質問の内容と違っていましたね


18 名前: デフォルトの名無しさん 投稿日: 02/01/10 21:13
初心者向けの解説サイトってないですか?
自分で見つけたところはどこも制作途中で終わってしまっているもので…


19 名前: デフォルトの名無しさん 投稿日: 02/01/10 22:21
>>18
終わっているサイトが多いのではなく、検索の仕方、検索エンジンが悪いのかと。
Google (ttp://www.google.com/) がよいかと。
検索単語を半角スペース区切りで指定したらよいかと。
ex :「VB_Forms_コレクション_初心者」とか書けばよいかと。
ではさようならかと。


20 名前: デフォルトの名無しさん 投稿日: 02/01/10 23:53
>10
プロバやルータやFWの設定で、大きいポート番号を
無条件で拒否してる場合もある。


21 名前: デフォルトの名無しさん 投稿日: 02/01/11 00:12
エクセルのタイトルバーの右端にある×(閉じる)ボタンを
非表示にするにはどうすればいいんでしょうか?
ツールバーにある閉じるボタンは非表示にできるけど
その上のタイトルバーにあるもう一つができないです。
詳しい方助けてください。


22 名前: デフォルトの名無しさん 投稿日: 02/01/11 00:26
>21
板違いだから、こっちのExcelスレ逝ってみたら?
http://pc.2ch.net/bsoft/


23 名前: 38 投稿日: 02/01/11 00:26
>>21
シラネーよ、ボケ!死ね!!


24 名前: デフォルトの名無しさん 投稿日: 02/01/11 00:37
何で?VBAでも出来るんじゃないの?


25 名前: デフォルトの名無しさん 投稿日: 02/01/11 00:37
>>23 お前が市ね!!!!!!!!!!!!!


26 名前: デフォルトの名無しさん 投稿日: 02/01/11 00:40
>21
電車に飛び込んでください。


27 名前: デフォルトの名無しさん 投稿日: 02/01/11 00:40
21は高卒


28 名前: デフォルトの名無しさん 投稿日: 02/01/11 00:42
>詳しい方助けてください。
助けても見返りがないと...


29 名前: デフォルトの名無しさん 投稿日: 02/01/11 00:47
ダメな奴は何をやってもダメのいい例>21
つーか、質問の仕方がよくない。


30 名前: デフォルトの名無しさん 投稿日: 02/01/11 01:31
>3
NetWkstaUserEnumか、NetUserEnum。


31 名前: デフォルトの名無しさん 投稿日: 02/01/11 06:26
雰囲気がこわいけど・・ちょいと便乗させて。
ウインドウの最小化は表示、最大化は非表示とかできませんか?


32 名前: デフォルトの名無しさん 投稿日: 02/01/11 07:55
21=31


33 名前: 3 投稿日: 02/01/11 10:01
ネットワークに繋がっているパソコンにログインしているユーザ名を
取得するプログラムを以下で見つけました。
ttp://www.codeguru.com/system/AC_NTSrv.shtml

が、さっぱり解りません。。。。日本語はないですかね。。。


34 名前: デフォルトの名無しさん 投稿日: 02/01/11 10:02
>>31
デザイン時にFormのプロパティで設定できます。Excelだった?


35 名前: デフォルトの名無しさん 投稿日: 02/01/11 10:29
>>33
翻訳してみれば?

ttp://www.excite.co.jp/world/url/


36 名前: uja 投稿日: 02/01/11 10:41
スレ違ってたらごめんなさい。OUTLOOKのVBAについてです。
他人の予定をVBAで取得するときは、下記のようなプログラムでできたのですが
Dim myNameSpace As NameSpace
Dim myRecipient As Recipient
Dim shceduleFolder As MAPIFolder
Set myNameSpace = Application.GetNamespace("MAPI")
Set myRecipient = myNameSpace.CreateRecipient("ユーザー名")
Set shceduleFolder = myNameSpace.GetSharedDefaultFolder(myRecipient, 9)
Msgbox shceduleFolder.Items(1).body

その中の定期的な予定を取得するのがうまくいきません。
shceduleFolder.Items.IncludeRecurrences
のプロパティ値をTrueにしてやれば、定期的な予定も展開されると
MSDNには書いてあるのですが、それに従ってやっても
定期的な予定は、周期の一番最初の予定しかみることができません。
なにか知ってる方がいらっしゃいましたらアドバイスをお願いします。


37 名前: デフォルトの名無しさん 投稿日: 02/01/11 18:27
DBにMySQL使って開発した方いませんか?


38 名前: デフォルトの名無しさん 投稿日: 02/01/11 21:05
わざわざMySQLなんて使わないと思います。
ほかにもっといいものがあると思います。
少なくとも私個人としてはそう思います。


39 名前: デフォルトの名無しさん 投稿日: 02/01/11 21:16
ファイルが存在するか調べるのにDir関数って使いますよね。
ファイルが存在していれば大文字でファイル名が返される"はず"ですが、
どういうわけか小文字で返されました。こういうことってあるんでしょうか?


40 名前: デフォルトの名無しさん 投稿日: 02/01/12 00:21
>>39
大文字で返すなんて、どこに書いてあったの?


41 名前: デフォルトの名無しさん 投稿日: 02/01/12 09:33
なんか新スレになってから、ちょっと変な質問が増えたね


42 名前: 39 投稿日: 02/01/12 12:33
>>40
VisualBasic6.0例文事典 ステートメント・関数編
という本。MSDNは入れてないし今手元にない。

以前作成したプログラムでは確かに大文字で返してましたが、
単に大文字のパスをDir関数に入れてただけかも…


43 名前: デフォルトの名無しさん 投稿日: 02/01/12 13:49
>>37
漏れ貧乏だからMySQL使ってる


44 名前: デフォルトの名無しさん 投稿日: 02/01/12 15:50
小文字だと何か問題が起きるソフトを作ってるの?


45 名前: 39 投稿日: 02/01/12 17:50
>>44
いえそんなことはないです。ただ本に書いてあったことが気にかかっただけです。
小文字だろうが大文字だろうが、Ucase関数で全て大文字に変換してしまえば
なんら問題はないでしょうが。(ただのファイルチェックルーチン)


46 名前: デフォルトの名無しさん 投稿日: 02/01/13 00:02
Windowsってファイル名の大文字小文字って関係あるんか?


47 名前: デフォルトの名無しさん 投稿日: 02/01/13 08:21
>>45
>小文字だろうが大文字だろうが、Ucase関数で全て大文字に変換してしまえば
>なんら問題はないでしょうが。(ただのファイルチェックルーチン)

全角アルファベットのときに問題あります。
ヘルプの「UCase関数, ファイル名の操作」に載っています。


48 名前: デフォルトの名無しさん 投稿日: 02/01/13 08:51
全角って最初に逝ってくれ...


49 名前: デフォルトの名無しさん 投稿日: 02/01/13 13:19
こにちわー。
うんと、PictureBox自体を回転させようと思っているのですが、
PictureBoxは斜めに表示できないと聞きました。
ということは不可能なことなんですか?


50 名前: デフォルトの名無しさん 投稿日: 02/01/13 13:24
>>49
PictureBox自体を回転させるのは無理やろな。
PictureBox内の画像を回転させるなら中学数学で可能だけど。


51 名前: 39(45) 投稿日: 02/01/13 15:07
>>47
なるほど全角アルファベットがありましたね。参考になりました。
問題解決したのでみなさんお世話様です。んでは。


52 名前: デフォルトの名無しさん 投稿日: 02/01/13 15:30
>>50
はーい、わかりました。


53 名前: デフォルトの名無しさん 投稿日: 02/01/13 15:57
Windowsアプリケーションをインストールする時なんかに
よく[参照]ってボタンを押してインストールフォルダを指定しますよね。
その時に使われる、

C:\
|-Documents and Settings
|   -Administrator
|       -Application Data
|       -My Documents
|-Program Files
|-RECYCLER
|-WINNT

↑なんかこんな、クリックしたら開いていくツリーみたいなのを
VBで作れないですか?


54 名前: デフォルトの名無しさん 投稿日: 02/01/13 16:32
2Dの上から見下ろす形のレースゲームで見るような、
スクロール(らしきでもよい)画面を作りたいです。
マウスまたはキーなどで直進するように入力したら、画面は下へ流れ、
横へ入力したら、円を描くような感じで画面が回転しているように
流れます。(方向転換っていたらいいのかな?)
画面の動きがわかりやすい様に、線など描きながら見れるようなのが
いいです。

サンプルとか、出来る方がいらっしゃいましたら教えて頂きたいです。


55 名前: デフォルトの名無しさん 投稿日: 02/01/13 17:43
>>53
Private Sub cmdPath_Click()
    
    Dim typBrowseInfo As BROWSE_INFO
    Dim lFoldPointer As Long
    Dim sPathName As String

    With typBrowseInfo
        .hwOwner = frmMain.hWnd
        .lRoot = CSIDL_DESKTOP
        .sTitle = "フォルダを選択してください"
        .lOptions = BIF_RETURNONLYFSDIRS Or BIF_DONTGOBELOWDOMAIN
    End With

    lFoldPointer = SHBrowseForFolder(typBrowseInfo)

    sPathName = String$(256, vbNullChar)

    Call SHGetPathFromIDList(lFoldPointer, sPathName)

    CoTaskMemFree lFoldPointer

    If Left(sPathName, 1) <> Chr(0) Then
        txtPath.Text = LCase(sPathName)
    End If

End Sub


56 名前: デフォルトの名無しさん 投稿日: 02/01/13 17:44
>>53
Option Explicit

Public Declare Function SHBrowseForFolder Lib "shell32.dll" _
        Alias "SHBrowseForFolderA" _
       (lpBROWSEINFO As BROWSE_INFO) As Long

Public Declare Function SHGetPathFromIDList Lib "shell32.dll" _
        Alias "SHGetPathFromIDListA" _
       (ByVal pidl As Long, ByVal pszPath As String) As Long

Public Declare Sub CoTaskMemFree Lib "ole32" (ByVal pv As Long)

Public Type BROWSE_INFO
    hwOwner As Long
    lRoot As Long
    lDspName As Long
    sTitle As String
    lOptions As Long
    lfn As Long
    lParam As Long
    lImage As Long
End Type

Public Const CSIDL_DESKTOP = &H0            '仮想デスクトップ
Public Const CSIDL_PROGRAMS = &H2           'プログラムグループ
Public Const CSIDL_CONTROLS = &H3           'コントロールパネル
Public Const CSIDL_PRINTERS = &H4           'プリンタ
Public Const CSIDL_PERSONAL = &H5           'My Documents
Public Const CSIDL_FAVORITES = &H6          'お気に入り
Public Const CSIDL_STARTUP = &H7            'スタートアップ
Public Const CSIDL_RECENT = &H8             '最近使ったファイル
Public Const CSIDL_SENDTO = &H9             '送る
Public Const CSIDL_BITBUCKET = &HA          'ごみ箱
Public Const CSIDL_STARTMENU = &HB          'スタートメニュー
Public Const CSIDL_DESKTOPDIRECTORY = &H10  'デスクトップフォルダ
Public Const CSIDL_DRIVES = &H11            'ドライブ
Public Const CSIDL_NETWORK = &H12           'ネットワーク
Public Const CSIDL_NETHOOD = &H13           'NetHood
Public Const CSIDL_FONTS = &H14             'フォント
Public Const CSIDL_TEMPLATES = &H15         'テンプレート


57 名前: デフォルトの名無しさん 投稿日: 02/01/13 18:40
VB5のネイティブコードコンパイルで、「シンボリックデバッグ情報を作成」を
選択して「.pdb」ファイルを作ると、VC5のデバッガで、シンボル付きの
逆アセンブラ状態でデバッグ出来たのだけど、VB6で同じ様にコンパイルすると、
VC5でシンボル情報がありませんって言う警告が出るんです。
これってbugなのでしょうか?
MSDNにはVC++(5.0以降のバージョン)またはそれと互換性のあるデバッガでデバッグできます。
と書いてあるのですが…。


58 名前: デフォルトの名無しさん 投稿日: 02/01/13 19:08
Shift-JisとAsciiコードって何が違うのですか?


59 名前: デフォルトの名無しさん 投稿日: 02/01/13 19:15
>>58
http://www.google.com/search?q=%95%B6%8E%9A%83R%81%5B%83h%81@%83V%83t%83gJIS%81@ASCII&hl=ja&lr=


60 名前: 58 投稿日: 02/01/13 20:06
>>59
ありがとう。大好き


61 名前: デフォルトの名無しさん 投稿日: 02/01/13 22:24
>>54
参考にならんだろうけど、こんなかんじ?(←→で回転、↑で進むかんじ)
Private Const MM = 20
Private mx&(MM), my&(MM)
Private mpx&, mpy&, mpd&, wx&, wy&, rr#

Private Sub Form_Load()
Me.AutoRedraw = True
Me.ScaleMode = vbPixels
wx = Me.ScaleWidth: wy = Me.ScaleHeight
rr = 3.14159 / 180
Dim t&: For t = 0 To MM: mx(t) = Rnd * wx: my(t) = Rnd * wy: Next
mpd = 0: mpx = wx / 2: mpy = wy / 2: draw
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyLeft Then mpd = (mpd + 10) Mod 360
If KeyCode = vbKeyRight Then mpd = (mpd + 350) Mod 360
If KeyCode = vbKeyUp Then
mpx = mpx + 10 * Cos((mpd + 90) * rr)
mpy = mpy - 10 * Sin((mpd + 90) * rr)
End If
draw
End Sub

Sub draw()
Dim t&, x&, y&
Me.Cls: Me.PSet (wx / 2, wy / 2)
For t = 0 To MM
x = (mx(t) - mpx) * Cos(mpd * rr) - (my(t) - mpy) * Sin(mpd * rr)
y = (my(t) - mpy) * Cos(mpd * rr) + (mx(t) - mpx) * Sin(mpd * rr)
Me.Line -(wx / 2 + x, wy / 2 + y)
Next: Me.Refresh
End Sub


62 名前: デフォルトの名無しさん 投稿日: 02/01/13 23:06
>57
VB6とVC6の組み合わせなら、ちゃんとデバッグできたよ。


63 名前: デフォルトの名無しさん 投稿日: 02/01/13 23:16
>>61
どうもありがとうございます。
やってみます☆


64 名前: デフォルトの名無しさん 投稿日: 02/01/14 01:00
Olectra Chartってどうなんでしょうか
人から貰ったプログラムのグラフ描画部分に、これが使われてたから
試用版DLしてきたんですけど、買う価値あり?

ちなみにVB今からスタート予定・・・


65 名前: デフォルトの名無しさん 投稿日: 02/01/14 01:11
>64
使ったことない。趣味では必要ない。。
でも、グラフ使って仕事するなら、買えば?


66 名前: デフォルトの名無しさん 投稿日: 02/01/14 06:39
MoveToExとLineToを使って線を書きたいのですが、
それぞれのAPIを書いて、POINTAPIって書いた後、どうすればよいか
良くわかりません。
PictureBOXに線を描く簡単な例を教えて頂きたいです。
おねがいします☆


67 名前: デフォルトの名無しさん 投稿日: 02/01/14 07:22
>>66
ttp://www.netlaputa.ne.jp/~stadt/vb/index.html
ここのメタファイル関係あたりではどうでしょう


68 名前: デフォルトの名無しさん 投稿日: 02/01/14 10:17
>>67
いってきまーす。


69 名前: デフォルトの名無しさん 投稿日: 02/01/14 10:22
ディストリビューションウィザードを使って配布しようと思うんですが、
その時、フォントもインストールするようにしています。

しかし、インストールが終了したあとシステムを起動しても、なぜか
インストールしたはずのフォントが無効になっています。

インストールされてないのかな? と思ってコントロールパネルから
フォントを開いて見ると、ちゃんと追加されています。

その後、もう1回システムを起動したら、今度はフォントがしっかり表示
されていました。

インストールが終わったら、再起動しないといけないんでしょうか?
インストール終了後、自動で再起動させる方法があったら教えてください。

よろしくお願いします。


70 名前: デフォルトの名無しさん 投稿日: 02/01/14 22:24
今クイズのプログラムを作ってて、全部クイズが終わった後に結果出力を
指定のフォルダのテキストファイルを作りたい場合、
どのようなプログラムにすればいいのでしょうか?
過去ログから自分なりにつくってみましたが、手直しお願いいたします。
(たくさんあると思いますが)

プログラムが"C:\Program Files\MyProg"にあって
C:\Program Files\MyProg\shousai\index.txt"にファイルを作成したい
しようと思っています。

Private Sub command1_Click()

Dim intFileNum As Integer
Dim strFullPath As String 'フルパス
Dim strSoutaiPath As String '相対パス

strSoutaiPath = "\shousai\index.txt"
strFullPath = App.Path & strSoutaiPath

intFileNum = FreeFile()
Open strFullPath For Output As #intFaileNum

Print #1, "詳細出力"
Print #1, "クイズ正答率" & seitouritu & "%"
Print #1, "正解数" & seikaisuu & "問"
Print #1, "問題数" & mondaisuu & "問"
(中略)
Close #1

End Sub


71 名前: デフォルトの名無しさん 投稿日: 02/01/14 23:21
>69
再起動する必要がある。
Win9x系か、NT系か、書いてないけど、APIの
ExitWindowsEx、InitiateSystemShutdownあたりを使う。

>70
As #intFaileNum のタイプミス以外はいちおうオッケー。

"クイズ正答率" & CStr(seitouritu) & "%" とかなら、
あんまり厨房あつかいされなくなるかな。


72 名前: デフォルトの名無しさん 投稿日: 02/01/14 23:38
浮動小数から長整数へキャストする時の、小数点以下の切り捨てってどうやるんですか?
C++だとdoubleからlongへのキャスト時に勝手に小数点以下を切り捨ててくれるけど、VBで同じような感じでCLngすると値が丸められちゃうよね?
消費税算出みたいな小数点以下の切り捨てを行わなければならない時にすごく困るんだけど・・・。

あ、ちなみにInt関数やFix関数はNG。Integerでは箱が小さすぎるから・・・


73 名前: 強引 投稿日: 02/01/14 23:53
R=503.9564:? Clng(R)+(Clng(R)>R)


74 名前: デフォルトの名無しさん 投稿日: 02/01/15 00:05
さらに強引

strNum = CStr(dblNum)
strNum = Left$(strNum, Instr(1, strNum, ".") - 1)
lngNum = CLng(strNum)


75 名前: 72 投稿日: 02/01/15 00:09
73のやり方すごい。Trueが-1であることを利用したってことね?
74はピリオドがないと落ちますね・・・

thanx!!


76 名前: デフォルトの名無しさん 投稿日: 02/01/15 00:18
>>70
こらこら、何のためにFreeFile()を呼び出している?
Print #1って書きたくないからだろ?
(他の部分で既にに#1が開かれていたりした場合エラーになるので)
たまたまFreeFileが1になってるから、動いてるだけだよ。

その他は別にいいんじゃない?


77 名前: 71 投稿日: 02/01/15 00:24
>76
あ、ほんとだ。そこは見落とした(汗)。


78 名前: デフォルトの名無しさん 投稿日: 02/01/15 00:30
>>72
MSDNには、Int()やFix()がInteger型を返すとは書いてないよ。
> Int、Fix 関数
> 指定した数値の整数部分を返します。

Dim i As Integer
Dim n As Long
Dim d As Double
d = 70000.123
'i = Int(d) 'オーバーフロー
n = Int(d)
Debug.Print "i=" & i & " n=" & n

「結果」
i=0 n=70000


79 名前: デフォルトの名無しさん 投稿日: 02/01/15 00:30
>Int関数やFix関数はNG。Integerでは箱が小さすぎるから・・・
「Fix 関数および Int.関数は引き渡された値と同じデータ型で常に値を返します。」


80 名前: STRCAT 投稿日: 02/01/15 00:34
case WM_KEYDOWN:
if(wParam==VK_SPACE){
strcat(moji, "あ\n");
hDC = GetDC(hWnd);
GetClientRect(hWnd, &rt);
DrawText(hDC, moji, strlen(moji) &rt, DT_WORDBREAK);
ReleaseDC(hWnd, hDC);
}

スベース押すたびに「あ\n」が増えると思うのに
1回しか「あ\n」が増えないのはどうして?


81 名前: デフォルトの名無しさん 投稿日: 02/01/15 00:38
>>80
moji はどこで宣言してる?


82 名前: STRCAT 投稿日: 02/01/15 00:40
LRESULT CALLBACK WndProc(HWND 省略){
char *moji = "あ\n";


83 名前: STRCAT 投稿日: 02/01/15 00:43
#include <iostream.h>
main(){
char *str = "a";
int i = 1;
strcat(str,"b");
cout << str << '\n';
switch(i){
case 1:
strcat(str,"c");
cout << "case の結果は等しかった" << '\n';
break;
default:
cout << "case の結果は異なってた" << '\n';
}
cout << str << '\n';
getchar();
}

switchの中ではグローバルが通用しないかと思ったけど、↑を
やったらabcになった。問題なしだ。
Winプログラムではなぜかうまくいってない。


84 名前: STRCAT 投稿日: 02/01/15 00:49
LRESULT CALLBACK WndProc(HWND 省略){
 char *moji = "あ\n";
 strcat(moji, "い\n");

 switch (msg){
  case WM_KEYDOWN:
   if(wParam==VK_SPACE){
    strcat(moji, "う\n");
    hDC = GetDC(hWnd);
    GetClientRect(hWnd, &rt);
    DrawText(hDC, moji, strlen(moji), &rt, DT_WORDBREAK);
    ReleaseDC(hWnd, hDC);
 }

これなら、あ\nい\nう になるけど、再びスペースを押しても
  あ\nい\nう\nう\n
でなく、
  あ\nい\nう\n
なのだ。
不思議。
case の中では strcat( ) が1回しか実行されない?


85 名前: デフォルトの名無しさん 投稿日: 02/01/15 00:56
>>84
WndProcはメッセージが来るたびにOSから呼び出される。
その最初で、初期化してるのだから、何度やっても同じ結果になるのはあたりまえ。
char *moji = "あ\n";
の行をコメントアウトし、
TCHAR moji[80];
を#includeの下あたりに書いてみそ。


86 名前: STRCAT 投稿日: 02/01/15 02:08
分かったー!!
そうだったのかー。
WndProc( ) は高速で何度も発生していることが分かったよ。
ありがと〜。


87 名前: STRCAT 投稿日: 02/01/15 02:19
#includeの下あたりに書いても動いた。
つまり、int APIENTRY WinMain( ) の前。
WndProc( ) の中の case WM_CREATE: でもいいよね。

よくあるソース

LRESULT CALLBACK WndProc(HWND 省略){

 HDC hDC;
 PAINTSTRUCT ps;
 char *str = "abc";

 switch (msg){
 case WM_PAINT:
  hDC = BeginPaint(hWnd, &ps);
  TextOut(hDC,0,0,str,3);
  EndPaint(hWnd, &ps);
 break;

これは

 HDC hDC;
 PAINTSTRUCT ps;
 char *str = "abc";

が何度も実行されるから無駄がある。

LRESULT CALLBACK WndProc(HWND 省略){

 switch (msg){
 case WM_CREATE:
  HDC hDC;
  PAINTSTRUCT ps;
  char *str = "abc";
 break;
 case WM_PAINT:
  hDC = BeginPaint(hWnd, &ps);
  TextOut(hDC,0,0,"abc",3);
  EndPaint(hWnd, &ps);
 break;

とした方がいいと思ったけど、こういうソースを
見かけないのはどうして?


88 名前: デフォルトの名無しさん 投稿日: 02/01/15 02:22
こばんわー。
今、こんな感じで線を描いているます。
コマンドボタンを押すと線を描くのですが、

そうではなくて、マウスを動かして、ある座標の範囲を
示したら一定の加速度を得て、そして速度が出て、
勢いを増しながら線が描かれていくのをやりたいと思っています。
とりあえず線を描く方向は一方向でいいので、
速度をつけたいです。
出来るでしょうか?
よろしければお願いします。

BitBlit
POINT構造体
MoveToEx
LineTo

Dim hdc1 As Long, hdc2 As Long 'デバイスコンテキスト
Dim pw As Long, ph As Long 'コピー元の領域の幅,高さ
Dim sx As Long, sy As Long 'コピー先の始点
Dim p As POINTAPI

Private Sub Command1_Click()
pw = 1000&: ph = 1152& 'PictureBoxのサイズ
sx = CLng(Text1.Text)
sy = CLng(Text2.Text)
Timer1.Enabled = Ture
End Sub

Private Sub Timer1_Timer()
hdc1 = PicOriginal.hdc
hdc2 = PicDisplay.hdc

MoveToEx hdc2, pw \ 2, ph \ 2, p
LineTo hdc2, pw \ 2 + sx, ph \ 2 + sy
BitBlt hdc1, -sx, -sy, pw, ph, hdc2, 0&, 0&, vbSrcCopy
BitBlt hdc2, 0&, 0&, pw, ph, hdc1, 0&, 0&, vbSrcCopy
End Sub


89 名前: デフォルトの名無しさん 投稿日: 02/01/15 09:37
今ブラウザーを作っているのですが、TextBoxに入力されたURLが無効な
アドレスだった時の処理の仕方で詰まってます。

無効なアドレスが入力された場合、"***に接続できませんでした"と表示
されるようにしたいのですが、無効なアドレスか有効なアドレスかを判定
するには、どうしたらいいのでしょうか?


90 名前: デフォルトの名無しさん 投稿日: 02/01/15 09:59
>>87
WndProcが何度も呼び出されるって書いたよね。
一度、WndProcを抜けると、ここで宣言された変数は開放されてなくなっちゃうの。
だから、WM_CREATEでいくら宣言してあっても、
WM_PAINTに行く場合は、宣言されていないことになってしまう。

変数のスコープについて勉強しましょう。
あと、激しくスレ違いなので、
「□□□VC 初心者質問スレ 2□□□」 へ逝こう。
俺も気づかんかった。


91 名前: デフォルトの名無しさん 投稿日: 02/01/15 10:17
>>89
まずURLの形がしっかりとしているか文字列チェック
次に実際にGETして、ヘッダをチェックする。


92 名前: デフォルトの名無しさん 投稿日: 02/01/15 11:06
色を計算で自動生成したいのですが、どういう風にやればよいかイメージが湧きません。
折れ線グラフの線の色で、項目数(色数)は不定で上限がなく、
なるべく色同士の違いがわかるように設定したいのですが…


93 名前: 名無しさんです 投稿日: 02/01/15 12:54
初めてツリービューを使ってるのですが、削除した
ノードのindexって開放されずに残ったままなんで
しょうか?
ノードに納まってる変数の内容を保存しようと思って
ノードの最初のindexを参照したら削除や追加をした
後に限って「削除されてます」って怒られるのですが。
それともなにか他に問題があるのでしょうか?


94 名前: 意外と初心者(w 投稿日: 02/01/15 15:25
>>93
よくわかんない(それならレスするなちゅーねん)けど、
削除したノード分のインデクスって詰められない?勝手に。
Index を使わないで Key だったら勝手に詰められても識別できるんじゃない?


95 名前: 94 投稿日: 02/01/15 15:26
Sub の方か・・・ごめん間違い。
逝ってきます・・・。


96 名前: デフォルトの名無しさん 投稿日: 02/01/15 15:46
垂直スクロールバーがついたテキストボックスを使っていて、表示しきれないとき
勝手にスクロールさせてケツを表示させるため、以下のようなコードを書いています。
txtHoge.SelStart = Len(txtHoge.Text)

ところが、大体65535文字くらいになるとこれが効かなくなります。
どうもSelStartは65535以下までしか受け付けてくれないようです。
この場合、どうしたらいいでしょうか


97 名前: デフォルトの名無しさん 投稿日: 02/01/15 16:04
>>96
テキストボックスってそれくらいしかはいらないんじゃなかったっけ


98 名前: デフォルトの名無しさん 投稿日: 02/01/15 16:43
自己参照構造体とは何ですかね?


99 名前: デフォルトの名無しさん 投稿日: 02/01/15 17:26
>>98
http://www.google.com/search?num=20&hl=ja&q=%8E%A9%8C%C8%8EQ%8F%C6%8D%5C%91%A2%91%CC&btnG=Google+%8C%9F%8D%F5&lr=lang_ja


100 名前: デフォルトの名無しさん 投稿日: 02/01/15 17:51
DAO3.6を使っていますが、DBの最大容量はいくつですか
また、Windowsそのものの1ファイルあたりの最大容量はいくつですか


101 名前: デフォルトの名無しさん 投稿日: 02/01/15 18:11
chr$(number) と chr(number)
Left$() と Left()
の違いがまったく分かりません。


102 名前: デフォルトの名無しさん 投稿日: 02/01/15 18:23
フォームの名前を取得して
その取得した名前を引数にしてサブルーチンを動かしたんですが…

call S_test(me.form)

sub S_test(A_frmname as form)

end sub

これじゃうまくいかなかったんです
どうやってやるの?


103 名前: 8 投稿日: 02/01/15 18:23
>101
戻り値の型。


104 名前: デフォルトの名無しさん 投稿日: 02/01/15 18:27
>102
何がどううまくいかなかったのかを明確に書くとよいと思われ。


105 名前: 102 投稿日: 02/01/15 19:19
修正

call S_test(me.name)

sub S_test(A_frmname as form)

end sub

でした
me.nameでフォームの名前を取得して
その名前で処理したいんですけど
me.nameで型が違うってエラーが出てしまいます


106 名前: デフォルトの名無しさん 投稿日: 02/01/15 19:23
ダイアログにFixedsysとかのシステムフォントを使うと、
W2kで画面表示が崩れるのですが(文字が欠けたり、はみ出したり)、
プログラムの変更なしに対応させることが出来るでしょうか?
一応あちこち調べてWin2Kの固定ピッチフォントの問題のアップデートもしたけどだめでした。

システムフォントのFixedsysをMSPゴシックに変えたいのですが、
どうすればよろしいでしょうか?


107 名前: 106 投稿日: 02/01/15 19:25
ちょっと説明が足りませんでしたが、
w2k以前のバージョンのwindowsで作成したアプリを
W2kで動かす場合です。


108 名前: 名無しさん ◆MZ2000oY 投稿日: 02/01/15 19:32
>>105
Call S_test(me)

Sub S_test(A_frmname as form)

だとなんかマズイのか?


109 名前: デフォルトの名無しさん 投稿日: 02/01/15 19:49
VB6のコマンドボタンについて教えてください。
コマンドボタンの文字の色を変えたいのですが、どこを変更すれば
いいのでしょうか?
コマンドボタンのプロパティー内にBackColorという項目があり、
そこにボタンの文字という設定があるみたいなんですが、選択して
変更してもボタンの表面の色しか変わらないんです。
どなたか教えてください;-;


110 名前: デフォルトの名無しさん 投稿日: 02/01/15 19:51
>>100
> DAO3.6を使っていますが、DBの最大容量はいくつですか
DBに拠るでしょ。

> また、Windowsそのものの1ファイルあたりの最大容量はいくつですか
ファイルシステムに拠るでしょ。
FAT16:1GB
FAT32:2GB
NTFS:4TB
だっけか。NTFSはバージョンによって違うかも。
つーか、このくらい自力で調べろと言いたい。


111 名前: デフォルトの名無しさん 投稿日: 02/01/15 19:52
>>105
> sub S_test(A_frmname as form)
> sub S_test(A_frmname as String)
かな。


112 名前: デフォルトの名無しさん 投稿日: 02/01/15 21:09
>>109
この質問ってほんとよく見かけるなぁ。
コマンドボタンコントロールにはそういう機能はない。
その仕様は普通じゃないってことだ。

どうしてもっていうなら
Styleプロパティを1にしたチェックボックスなどで代用するのが定石。
Clickイベント時Value=0とすればボタンとほとんどかわらなんよ。


113 名前: 109 投稿日: 02/01/15 21:20
>112
レスありがとうございます。
そういう仕様なんですね。
うむむぅ、残念です。
ありがとうございました。m(_ _)m


114 名前: 名無し 投稿日: 02/01/15 21:31
jpgファイルの名前の部分を
あるCGIファイルの名前と、中身の一部分の文字と置き換えをする

という単純な作業の繰り返しをどうにかして
プログラムにする事はできないでしょうか
或はそのようなフリーソフトなどを知っている人がいらっしゃったら
教えていただけると嬉しいです。


115 名前: デフォルトの名無しさん 投稿日: 02/01/15 22:03
ADOの勉強してます。
VBから、あるMDBファイルのテーブル名を全て取得したいのですが、
どのようにしたら良いですか?


116 名前: デフォルトの名無しさん 投稿日: 02/01/15 23:36
>>101
103の指摘のように戻り値の型の違いもあるが、
(気持ち$ありのが速い。最近のマシンなら数万回程度のループでは計測不能なほどだが)
NULLを受け付けるかどうかという違いもある。
後は、昔のBASICの名残。

>>102
108同様
>call S_test(me.name)
をcall S_test(me)
とする方が普通のやり方でしょう。

どうしても名前でやりたいなら、
>sub S_test(A_frmname as form)
をsub S_test(A_frmname as String)
とした上でこのプロシージャの中では、
Formsコレクションでオブジェクトの参照を取得すればOK。


117 名前: デフォルトの名無しさん 投稿日: 02/01/15 23:38
あげっぱなしだ


118 名前: デフォルトの名無しさん 投稿日: 02/01/15 23:59
for (wp = start; wp->next != NULL; wp =wp-> next)

(wpは変数)
どういう意味ですかね?


119 名前: デフォルトの名無しさん 投稿日: 02/01/16 00:07
リストを終端まで辿る処理だろ。 つか、それのどこがVBだ。


120 名前: デフォルトの名無しさん 投稿日: 02/01/16 00:17
バイト配列に対するMid・Left・Rightライクな操作って、
ループで1バイトずつ処理するしかないですか?
いったん文字列に変換すると、変わる制御コードがあるから。


121 名前: デフォルトの名無しさん 投稿日: 02/01/16 00:45
>>120
RtlMoveMemoryあたりのAPIを使うと楽。
間違うと簡単に落ちるけどねw
(実行前にソースは保存しとけよ)


122 名前: 93 投稿日: 02/01/16 00:57
>>94
Keyも考えたんですが、ノードのKeyって数字が使えない
(数字のみかな?)ので不便なんです。
もうちと試行錯誤してみます…。


123 名前: 120 投稿日: 02/01/16 00:57
>121
ひえ〜〜〜!
たかが数十バイトの処理で落ちたくないですぅ。


124 名前: 120 投稿日: 02/01/16 01:01
Cの初級問題とかでアルゴリズムがあるか探してみます。
いちおう自作してみたけど、エラー処理が若干不安なので(笑)。


125 名前: 120 投稿日: 02/01/16 01:11
ここを見つけたけど、かえってむずかしい?
ttp://www.threeweb.ad.jp/~satou/delphi5.htm


126 名前: 94 投稿日: 02/01/16 03:30
>>122
Key でいいんならプレフィックス文字を適当に付けて
例えば "Z1" とか "Z0000001" とかしといて Mid$ とかで "Z" 以下取ってくれば?
それを数値型にしちゃえば Index と同じような感覚で扱えるのでは?


127 名前: 105 投稿日: 02/01/16 10:18
>>108
>>111
>>116
ありがとうございました
うまくいきました〜


128 名前: こまねずみ 投稿日: 02/01/16 10:28
WSHでファイルを開きたいだけなんだけど、
必ず「スクリプト設定ファイル "C" が不正です。」
と、なって実行できないのです。

厨房質問だとおもうけど、どなたか助けて〜。


129 名前: こまねずみ 投稿日: 02/01/16 12:38

自己解決しました。


130 名前: デフォルトの名無しさん 投稿日: 02/01/16 14:29
ルートディレクトリのパスだけが判明していて、
その中の子ディレクトリの中にあるファイルを探したいのですが、
どうしたら良いでしょう?
子ディレクトリは階層も名前も不明です。


131 名前: 130 投稿日: 02/01/16 14:30
バッチ処理なので、コモンダイアログも使えないのです。。。


132 名前: デフォルトの名無しさん 投稿日: 02/01/16 14:31
>>130
前スレに全てのファイルをリストアップするコードがあったよ。


133 名前: 132 投稿日: 02/01/16 14:36
あとこのあたり

http://www.google.com/search?num=100&hl=ja&q=VB+%83t%83@%83C%83%8B%8C%9F%8D%F5&lr=


134 名前: 130 投稿日: 02/01/16 14:44
>>132
ありがとうございます!
前スレですね?探してみます。

参考URLの方も確認します。
ありがとうございました。


135 名前: デフォルトの名無しさん 投稿日: 02/01/16 15:44
cでいう%って何でしたっけ?


136 名前: デフォルトの名無しさん 投稿日: 02/01/16 16:04
>>135
mod ?


137 名前: デフォルトの名無しさん 投稿日: 02/01/16 19:54
text1.textにかいてある文字が数字か英語か2バイト文字か判断したいのですが、どのようにやったらいいのかわかりません……


138 名前: デフォルトの名無しさん 投稿日: 02/01/16 20:10
LenBとStrConvでどうぞ。


139 名前: デフォルトの名無しさん 投稿日: 02/01/16 20:11
>>137
Midとかで1文字ずつ切り出して、Ascでコードを調べるとか


140 名前: デフォルトの名無しさん 投稿日: 02/01/16 21:18
英語かどうかはわからないと思いますよ。ローマ字かも
知れないし。


141 名前: デフォルトの名無しさん 投稿日: 02/01/16 21:57
エクセルでVBAを昨日まなびはじめたばかりなのですが・・・
エクセルなどからVBAでIEを操作したいのですが、
IEのオブジェクト構造に関する
リファレンスはどこにあるのでしょうか?


142 名前: デフォルトの名無しさん 投稿日: 02/01/16 22:04
>141
たしかOffeceのCDのどっかにあった。


143 名前: デフォルトの名無しさん 投稿日: 02/01/16 22:08
>>141
http://msdn.microsoft.com/library/default.asp

「Web Development」の辺り。(多分


144 名前: デフォルトの名無しさん 投稿日: 02/01/16 22:12
すみません・・・>>115なんですけど・・・
MSDNライブラリ見すぎても、やっぱ無理です・・・
ヒントだけでも、ひとつ。


145 名前: 141 投稿日: 02/01/16 22:14
>>142
それは、やはりヘルプファイル形式の拡張子でOfficeのCDロムを
直接検索して、1個1個見ていけばいいのでしょうか?

>>143
できれば、日本語が・・・(泣)
(でもたどってみたものの、(英語を読み違えてなければ)見つかりませんでした)

根本的な疑問として、同じ立場の場合、ふつうの人はどうしているんでしょう?


146 名前: デフォルトの名無しさん 投稿日: 02/01/16 22:26
>>145
オブジェクトブラウザ使ってる


147 名前: デフォルトの名無しさん 投稿日: 02/01/16 22:29
VB6のLearning Editionを買ってきたんですけど、
セットアップができません。

CD-ROMルートにあるsetup.exeを実行すると、
vs60wiz.exeのエラーとなってしまいます。
実験的にACMBOOT.exeからセットアップを行おうとしてみたものの、
途中でsetup.exeから実行するようにとの指示が出て終了です。
マイクロソフトのサポートページにあった
http://support.microsoft.com/default.aspx?scid=http%3a%2f%2fwww.microsoft.com%2fJAPAN%2fsupport%2fkb%2farticles%2fj046%2f7%2f41.asp
をやってみましたがセットアップは出来ないままなのです。


OSはWindows XP Professionalです。


148 名前: デフォルトの名無しさん 投稿日: 02/01/16 22:48
>>140
>英語かどうかはわからないと思いますよ。ローマ字かも
>知れないし。
もしかして、例えば「age」っていうのが英単語かローマ字日本語か見分けたいの?
そりゃ絶対むり。2chじゃ「上げ」だが普通は英単語で年齢のことだ。
Wordなんかのスペルチェックでも「上げ」とは絶対解釈しない。


149 名前: 141=145 投稿日: 02/01/16 22:50
>>146
すいません、オブジェクトブラウザ使う場合、
IEでAtt+F11できないから、
やはりエクセルとかのアプリからIEで「参照設定」して、オブジェクトブラウザに
表示させるんですよね・・・?
でも、どれを参照設定すればいいんでしょうか?
「Internet Explorer〜」とか「Microsoft Internet Explorer〜」を探したものの、
見つからないのですが?
あるいは何か勘違いしてます?


150 名前: デフォルトの名無しさん 投稿日: 02/01/16 22:54
>>149
shdocvw.dll
MSHTML.TLB
IE関係いじるときはこの2つを参照設定してる


151 名前: デフォルトの名無しさん 投稿日: 02/01/16 23:10
>>144
ADOだけじゃ無理かも。
何のDBに接続してるの? Access? SqlServer?


152 名前: デフォルトの名無しさん 投稿日: 02/01/16 23:21
>>144
これでどうや。
ADOXはMicrosoft ADO Ext. ? for DDL and Securityを参照設定やで。

Dim ax As New ADOX.Catalog
Dim tb As ADOX.Table

ax.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source= データベース名.mdb;"

For Each tb In ax.Tables
Debug.Print tb.Name
Next


153 名前: 144 投稿日: 02/01/16 23:52
>>151
ありがとうございます。
Accessに接続してます。いろいろやってみたいっすね。

>>152
やってみたら出来ました!
ちなみに、これってクエリーも釣れてしまうんですね。
うーむ。よく調べてみます。ありがとう。


154 名前: 困った名無しさん 投稿日: 02/01/16 23:55
教えてくんでスマソ。

仕事先での案件で、VB使うことになってインストールしたら、
F1キーで「ヘルプを表示できません」ってメッセージが出るんです。
MSDNは単独(プログラムメニューから)見ることができる。

今まで何も考えずにインストールしてて、ヘルプが表示されないなんて
事無かったよ。

因みに、w2k Server環境でVB6のエンタープライズ。
MSDNはカスタムでフルインストール。
自分の環境(w2k pro)で同じ構成で問題ないのになぁ。

突っ込まれる前に、googleと過去ログ(初心者質問スレ)は見てみました。
他の過去ログは何故か404で見ることができない。

あとMSDNも目を通した(w


155 名前: 141=145=149 投稿日: 02/01/16 23:56
>>150
ありがとうございます。無事表示できました。
しかし、ヘルプが表示されないのですが・・・ヘルプは存在しないということでしょうか?
だとしたらどうやって各メンバの意味をみなさん知っているのでしょう?
(まぁ、shdocvw.dllの1部は、説明がオブジェクトブラウザに書いてあるようですが・・・)


156 名前: 困った名無しさん 投稿日: 02/01/16 23:57
書き忘れ。

んで対応策とか細かくFAQとか有る場所があったら
教えてください。

解決策そのものズバリは特に歓迎(w


157 名前: デフォルトの名無しさん 投稿日: 02/01/17 00:38
>>155
http://msdn.microsoft.com/workshop/graphics/IE4Arch.gif
関係ないけどアーキテクチャ

簡単なリファレンス
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/objects/internetexplorer.asp


158 名前: 155 投稿日: 02/01/17 02:11
>>157
いやいやありがとうございます。なかなか参考になります。がんばってみます。


159 名前: 144=153 投稿日: 02/01/17 18:54
>>152
なんだかデータベースに書き込み行おうとすると、
ロックされて書き込めないのですが、カタログ使うと、こうなる仕様ですか?



160 名前: デフォルトの名無しさん 投稿日: 02/01/17 22:35
VBのディストリビューションウィザードでSetupを作成したんですが、
インストール対象がWindowsXPの場合、DLLやOCXが正常にインスト
できないようです。直接System32フォルダに放り込んでもダメです。
なにかいい方法があったら教えてください m(_ _)m


161 名前: デフォルトの名無しさん 投稿日: 02/01/17 22:53
COM系なら、regsvr32(または同等機能)を実行してないとか。


162 名前: お願いします 投稿日: 02/01/17 22:53
REDIM を使って配列エリアを拡張した場合、使い終わったら
ERASE を使って解放してあげないと、いわゆるメモリリーク
となってしまうのでしょうか?



163 名前: デフォルトの名無しさん 投稿日: 02/01/17 22:54
>>162
ならない


164 名前: お願いします 投稿日: 02/01/17 23:00
>> 163
ありがとうございます。
C言語の malloc 見たいに、解放してあげないといけないのかと
思ってました。



165 名前: 演算ベンチ 投稿日: 02/01/17 23:32
ここに VB4.0 と VC6.0 の演算速度比較が載ってますが、
ttp://www.wombat.or.jp/tomoyashuttle/shtml/colum/vbspeed1.htm

バージョンが違うし、整数型だけだし、PCも旧式。>Pentium133,32MB

VB6.0のネイティブ・コンパイルで、実数型だと、どうなりますか?



166 名前: デフォルトの名無しさん 投稿日: 02/01/18 00:03
VBのsendkeyで、windowskeyを押すことはできないのでしょうか?
ttp://www.asahi-net.or.jp/~yy6m-wd/kuma/tip/vb.htm#sendkey
などを見ても、winkeyは載ってない。。。


167 名前: デフォルトの名無しさん 投稿日: 02/01/18 00:04
プログラムが横にながくなって見にくいです。
途中で改行させることってできますか?
初歩的な質問ですんません。


168 名前: デフォルトの名無しさん 投稿日: 02/01/18 00:07
>166
たしかwinkeyだけはダメだったと思う。

>167
半角スペースと半角アンダーバーで改行できる。




169 名前: 167 投稿日: 02/01/18 00:12
>168
どもありがとうございます。


170 名前: 168 投稿日: 02/01/18 00:20
>166
Ctrl+EscでWindowsKeyと同じメニューが出せるけど、
こんなもん出してどうするの?
目的はホットキー?




171 名前: デフォルトの名無しさん 投稿日: 02/01/18 00:32
>>167
文末を _にすれば次の行は前の行の続きとされる。
 if (ながーい条件とか) and _
   (ながーい条件とか) then

アンダーバーの前に必ずスペース空けること。
何行にもできるけど、限界はある。
っていうかヘルプ見てみ。サンプルとかで一杯でてくるから。



172 名前: 166 投稿日: 02/01/18 00:32
>>170
そうです。ホットキーです。
Powertoys for Windows XP を入れたら、
バーチャルデスクトップ機能としてWin+1〜4でデスクトップを入れ替えられるようになったので、
OS起動後にVBSでその辺の処理を自動処理したいと思って。
「Win+■」=「Ctrl+Esc+■」だったららくなんですけどね。。。


173 名前: デフォルトの名無しさん 投稿日: 02/01/18 00:35
ExcelからVBA使って、IEを動かしてるのですが、
VBAを使ってIEを動かしてウェブサーバのBASIC認証を通ることは可能でしょうか?


174 名前: 167 投稿日: 02/01/18 01:22
もう一つ質問したいです。
text1.textに2つの数字を入力して、label1.captionにtext1.textの数字の左側の数字を出したいんですが、やりかたがわからないんです。
教えていただけないでしょうか?


175 名前: デフォルトの名無しさん 投稿日: 02/01/18 01:26
>>174
数字二文字(="01")ならleft()、mid()
任意数値を区切り文字で入力ならsplit()を
HELPで当たるが良いと思われ。


176 名前: デフォルトの名無しさん 投稿日: 02/01/18 13:18
>>160
ターゲットと同じOS、環境でインストール環境を作っては?
VBは普通そうすると思う。


177 名前: デフォルトの名無しさん 投稿日: 02/01/18 13:38
1行に1つ数値が書き込まれたテキストファイルがあり、これをソートしたい。
数値は小数部分があるものもあり、また桁もそろっていません。(10.5とか-9849848.1514142など)
誤ったデータはないもとします。(ABCとか、121あ12など)
このテキストファイルは約1GB程あるとします。

もし、このデータをソーティングするとしたらどのようにしますか


178 名前: デフォルトの名無しさん 投稿日: 02/01/18 13:45
>>177
少しずつ読み込んで、シェルソートとかしたら?
途中経過はテンポラリファイルに書き出すとかして。
 
前のスレあたりにも、同じような内容の質問があったような・・・


179 名前: デフォルトの名無しさん 投稿日: 02/01/18 14:08
前スレを見てみましたが、結論は出てないようですね


180 名前: デフォルトの名無しさん 投稿日: 02/01/18 14:30
>>179
アレはファイルにいったん書き出すのがヤダとかいうから
解決してないのでは?


181 名前: 177 投稿日: 02/01/18 14:39
少しずつ読み込んでソートしていったら、読み込んだ分がソートされてしまうのでは
ないのでしょうか?
結合するときにまたソーとするのですか?



182 名前: デフォルトの名無しさん 投稿日: 02/01/18 14:58
>>181
シェル・ソートってそういうときのために
ある方法だったような・・・記憶が曖昧でスマソ

確か部分数列ごとにソートして収束させていく
というアルゴリズムだと思います。


183 名前: 182 投稿日: 02/01/18 15:01
やっぱ無理みたい


184 名前: 182 投稿日: 02/01/18 15:04
遅くても良いならランダムアクセスファイルにして、
レコード番号を配列代わりに使えばできなくはないけど


185 名前: デフォルトの名無しさん 投稿日: 02/01/18 16:09
B-treeとして書き出していくとかどうよ?
一種の簡易DBになっちまうが。


186 名前: 160 投稿日: 02/01/18 16:37
>>176
レスありがとうございます! XPをサブマシンに導入して、
試してみます。ありがとうございました。


187 名前: デフォルトの名無しさん 投稿日: 02/01/18 16:47
>>177
ヲレならDBにぶち込む。

貴方の問題は1GBのデータをソートする事なのか、
そのソートしたデータを使って何かの処理を行う事なのか?
後者なら先ずは動く事、早くするのはそれからの事。


188 名前: デフォルトの名無しさん 投稿日: 02/01/18 17:36
>>181
マージソートの要領で結合しながらソートすればいいと思います。


189 名前: まちゅ ◆VcvMACHU 投稿日: 02/01/18 18:17
たぶん、188さんと同じようなことかもしれないけど、
1GBのファイルを分割してバブルソートしてはどうかな?
たとえば10MBくらいのファイルを100個作って番号を振っておく。
まずファイル1と2を読み込んでソート。
20MBくらいならオンメモリでできるでしょう。
ソート後にファイル1と2に半分づつ書き戻す。
次は、ファイル2と3を読み込んでソート・・・てな具合にやれば出来そうな気が。



190 名前: 177 投稿日: 02/01/18 19:50
色々な考え方があるものですね。
アルゴリズムについてあまり知識がないので勉強になります。

私は>>184さんと>>185さんのやり方は、どういうものなのか
理解できませんでした。すいません。。。

>>187さんの方法はDBに一旦全部格納して、SQL文でソートさせて抽出しそれを
ファイルにまた書き出すということでしょうか。それが最も簡単だと思います。
ただもしも、DBに入れられる限界を超えてしまったとしたら、できなくなってしまいます。

>>188さんと>>189さんの方法ですと、少しずつに分けてソートすることが
私にもできそうな気がしてきました。まだ考え方がうまくまとまらないのですが
もっと勉強しようと思います。


191 名前: デフォルトの名無しさん 投稿日: 02/01/18 23:31
単純に分割するのではなく、数値の範囲で分割すれば
再ソートする必要はなくなる。
スワップしまくりのDBより速く結果が出る。



192 名前: デフォルトの名無しさん 投稿日: 02/01/19 00:42
>>165
>ここに VB4.0 と VC6.0 の演算速度比較が載ってますが、
>ttp://www.wombat.or.jp/tomoyashuttle/shtml/colum/vbspeed1.htm
>
>バージョンが違うし、整数型だけだし、PCも旧式。>Pentium133,32MB

VB4はP-CODEコンパイルしかないしね。

後、根本的に計測の仕方に違いすぎですね。
・OSがWin95
→計測タイミングでかなり揺らぎがでる。何度か計測した上での平均なのかどうか不明。
・VB側のa,b,AnsがInteger
→VCでintなら、VBではLong。
・VB側の時間計測が精度の低いTimer
→VC側をGetTickCountでやるならVBも同じに。timeGetTimeの方がいいけど。
・終了時間の取得がVCではまず変数に入れてから。
→VB側もt1を宣言して、一旦変数に入れてからに。後、t0、t1共に宣言して。

>VB6.0のネイティブ・コンパイルで、実数型だと、どうなりますか?
両方持ってて暇な人実験きぼんぬ。


193 名前: デフォルトの名無しさん 投稿日: 02/01/19 01:02
でかいファイルのソート方法

(1)入力ファイルをワークファイル0にコピー
 (入力ファイルを残さないなら不要)
(2)ワークファイル1とワークファイル2を書き込みでオープン。
 (中身は消す)ワーク0は読み込みでオープン。
(3)X=1とする。
(4)ワーク0から一件読み込む
(5)前回のデータより小さいならX=X+1(X=3ならX=1)
(6)読み込んだデータをワークXに出力
(7)ワーク0の最後まで(4)から繰り返す
(8)ワーク2の件数が0なら終了。
(9)全てのワークをクローズして
  ワーク1ワーク2を読み込みでオープンしなおす。
  ワーク0は書き込みでオープン。
(10)ワーク1とワーク2から一件づつよみこむ。
(11)読み込んだデータで小さい方をワーク0に出力
  書き込んだ方は新しいデータを読み込む。
  もしワークの最後まで来たならデータを最大値(99999999とか)にしておく。
(12)ワーク0以外の全てのワークが空になるまで(11)から繰り返す。
(13)全てのワークをクローズして(2)から繰り返す。

これがファイルソートの基本中の基本のマージソート(2ファイル)。
ワークを増やせば効率がよくなる。
HDDに元データと同じくらいの余裕(これがなきゃ出力できんわな)と
数件のレコードを保存するメモリがあれば
どんな量でもソートできる。

ちなみにこれは改良の余地がかなりある。
(2)〜(7)までを分配フェーズ、(9)〜(12)を統合フェーズというが
はじめに大小関係が成り立っているデータの塊を
フィボナッチ数でワークに分配しておき
分配と統合を同時に行えるようにするポリフェーズソートとか。
興味があるならアルゴリズムの書籍を読め(古いやつな)。

ちなみにいまどきこんなソート誰もやらん。
DBにつっこんで終わり。



194 名前: デフォルトの名無しさん 投稿日: 02/01/19 10:15
ラベルに縦方向センタリングスタイル(SS_CENTERIMAGE)をつけたいのですが、
hwndプロパティが無いので、SetWindowLongが使えません。
コントロールサイズそのままで、ラベルに縦方向センタリングをつける方法って
何かありませんか?




195 名前: デフォルトの名無しさん 投稿日: 02/01/19 10:30
コレクションって内部でどういう実装になってるの?
ハッシュ? ツリー?

For Each 〜 Next でコレクションの中身を取り出すと、
ちゃんと入れた時と同じ順番で出てくるのが不思議なんだけど…。

ひょっとして、リスト構造?



196 名前: PentiumIII 866MHz 投稿日: 02/01/19 11:24
VisaulBasic6Ent.
-------------------------
Option Explicit

Public Declare Function GetTickCount Lib "kernel32" () As Long

Sub Main()

Dim i As Long
Dim a As Integer, b As Integer
Dim Ans As Integer
Dim t0 As Long

  a = 16: b = 8
  t0 = GetTickCount
  For i = 0 To 10000000
    Ans = a + b
    Ans = a - b
    Ans = a * b
    Ans = a \ b
  Next i
  MsgBox ("Time: " & CStr(GetTickCount - t0))

End Sub
-------------------------
平均 220ms


=============================


Delphi6 Personal
-------------------------
program SpdDel;
uses
Windows;

{$APPTYPE CONSOLE}
var
I,A,B,Ans,T0,T1:Integer;
begin
  A:=16; B:=8;
  T0 := GetTickCount;
  for I:=0 to 100000000 do
  begin
    Ans := a + b;
    Ans := a - b;
    Ans := a * b;
    Ans := a div b;
  end;
  T1 := GetTickCount;
  write('Time:');
  write(T1-T0);
end.
-------------------------
平均 234ms



197 名前: デフォルトの名無しさん 投稿日: 02/01/19 11:46
キーワード:"ドキュン"
文章(例):
ドキュンばっかり珍走団。ケモジャケモジャ。マリオと
オマリー。ドキュンちゃんと食パンマン。VBVBVBVBVBVB

上の文章からキーワードを含む文である、"ドキュンばっかり珍走団。",
"ドキュンちゃんと食パンマン。"を切り取りたいのですが、どうしたら
いいのでしょうか?
キーワードを含む文の長さは不定で複数あります。


198 名前: デフォルトの名無しさん 投稿日: 02/01/19 11:50
へー、デルファイって、API宣言せずに使えちゃうんだ。
便利そう。 := はいただけないが。


199 名前: デフォルトの名無しさん 投稿日: 02/01/19 11:54
正規表現で、
ドキュン[^。]*。
とか。


200 名前: デフォルトの名無しさん 投稿日: 02/01/19 16:47
ユーザーがテキストボックスに数字を入れるようにしました。
それで2バイト文字は入力できないようにしたいんですが、どのようにやるんでしょうか?
マウス右クリック→貼り付け、[CTRL+V]の貼り付けもやれないようにしたいんですが、できるでしょうか?


201 名前: でく 投稿日: 02/01/19 17:10
プログラムやる上でアルゴリズムは勉強した方がいいですか?


202 名前: デフォルトの名無しさん 投稿日: 02/01/19 17:55
>200
2byte数字は1byte数字に変換するようにすると良いですよ。
2byte文字を弾くのは、1byte文字を弾くのと同じようにやればいいかと。


203 名前: デフォルトの名無しさん 投稿日: 02/01/19 18:41
>>201

必要なときに必要なアルゴリズムを勉強すればいい。
何を作るかによるが、必要になることは少ない。
時間を持て余しているならUMLの勉強をお勧めする。



204 名前: パン 投稿日: 02/01/19 20:38
スマートと言うか、皆さんのだったらどういった方法を取られるか聞かせて頂けますか?

今からやろうとしてるのが、帳票や伝票の枠内に数値を印字していきたいのですが、
キャラクター?を設定してズレを防ぎながら作っていくのは気が遠くなりそうなので、

フォーム上にTEXTを並べて微調整していこうとしたら、
A4の用紙だとフォームでは狭すぎて印刷が出来ませんでした。

エクセルやワードをかいして印字する方法や、
アクセスにはフォームエディタみたいなウィザードが用意してあると聞いたこともあります。

行間など環境が変わっても左右されにくいのは、どういった方法でしょうか。

地道な作業なので、確実な手段でして行きたいので、みなさんでしたらどういった手段をとられますか?
宜しくお願いします。
-------------------
OS WinMe
VB6.0 Pro
MS Office
スキル 夜鍋の1年間てーど
-------------------




205 名前: 197 投稿日: 02/01/19 21:44
>>199さん、レスありがとうございました。
早速、参考書片手にやっています。
試しに、Split関数でキーワードを含む文を***で埋めようとしてみたんですが、
"ドキュン[^。]*。"だと、"***ばっかり珍走団。"という風に
文全体で無く、キーワード部分しか埋めてくれません。
Splitじゃなくて他の関数を使わないと無理ですか?


206 名前: コピペ厨房 投稿日: 02/01/19 22:50
>>204
> 今からやろうとしてるのが、帳票や伝票の枠内に数値を印字していきたいのですが、
> キャラクター?を設定してズレを防ぎながら作っていくのは気が遠くなりそうなので、

市販品を使ってよければ、ActiveReportとか使うと簡単にできますよ。
Excelを利用可能であれば、それを使うというのもあります。




207 名前: デフォルトの名無しさん 投稿日: 02/01/19 23:06
>197
strIn = 例文
strOut = ""
strWork = Split(strIn, "。")
For Each strLine in strWork
 If InStr(strLine, "ドキュン") Then strOut = strOut & strLine & "。"
Next

199の正規表現を使うなら、コンポーネントを追加しないと。



208 名前: デフォルトの名無しさん 投稿日: 02/01/19 23:09
>204
テキストを並べるのは、DOS時代のやり方。
VBなら印字位置を0.01ミリ単位で指定できるじゃん。



209 名前: ごるぁ 投稿日: 02/01/19 23:19
204はマルチ



210 名前: デフォルトの名無しさん 投稿日: 02/01/19 23:26
はわわー
>>204
帳票、伝票等をお手軽に済ませたいなら
Excel、Accessを活用する事をお勧め。


211 名前: VB超初心者厨房 投稿日: 02/01/19 23:49
ユーザーフォーム、ワークシート、モジュールなどを活用した
プログラムを作成したいのですが、超初心者でもできそうな
ものはないですか?


212 名前: 165 投稿日: 02/01/20 01:08
>192
レスどうも。
よく考えたら、Cの場合、ループ内で値が変化しないなら、
コンパイル時に定数を入れてしまう可能性とかもありますね。

>196
Delphi6も。ありがとうございます。

#VCのベンチもお願いします。>持ってる人



213 名前: デフォルトの名無しさん 投稿日: 02/01/20 02:31
イントラネット嬢での話なのですが、winsockコントロール、あるいはそれに
相当するAPIを用いるC/Sのプログラムを作成し、サーバプログラムをNTserverに
配置、作成したクライアントプログラムを用いてサーバプログラムと通信する場合、
NT側のクライントライセンスの追加購入の必要はあるのでしょうか?
ちなみにクライアント側へは、ファイル共有等のネットワーククライアント関連
のインストールはしていません。




214 名前: デフォルトの名無しさん 投稿日: 02/01/20 02:36
>196
Delphi最適化してると使われてないAnsがらみのコード削除しちゃうよ。
定数の代入すらやらないはず。

バブルソートでもやってみたら>ベンチマーク


215 名前: デフォルトの名無しさん 投稿日: 02/01/20 03:23
>>213
>イントラネット嬢
ちと萌えるな


216 名前: 173 投稿日: 02/01/20 03:25
以下は、>>173の再掲なのですが
>ExcelからVBA使って、IEを動かしてるのですが、
>VBAを使ってIEを動かしてウェブサーバのBASIC認証を通ることは可能でしょうか?
回答がないところを見ると、便利なやり方はないけど、
perlでやるみたいに1つ1つサーバにhttpで話かければいけるのでしょうか?
#VBやりはじめなのではずしてる可能性大?


217 名前: デフォルトの名無しさん 投稿日: 02/01/20 03:33
>216
Userプロパティ使えばいけると思うけど、VBAにはないの?

もしなければ、http://ユーザ名:パスワード@www.hoge.co.jp/
とかは通らない?



218 名前: デフォルトの名無しさん 投稿日: 02/01/20 03:35
>214
Delphiはそこまで最適化?
そう言えば、昔のCは、使われてない変数に警告出してたな。



219 名前: 213 投稿日: 02/01/20 03:49
>>215
あはは…本当ですね。
気付かなんだ。会社で隠語で使えそう。
「オッパイ出してるイントラネット嬢」とか
「超難解イントラネット嬢の隠しバイト」とか。

関係ない話ですいません…質問は至ってマジメというか
業者にアホみたいなライセンス数見積もりで出されたので
ちょっと?って感じなんですよ。ご回答お待ちしております。



220 名前: デフォルトの名無しさん 投稿日: 02/01/20 04:15
>>218
Delphiは知らんけど、弟分のBCBでもそんな感じに最適化される。
デバッグする時にそういう無意味な変数にbreak point張ると
何事も無かったかのように素通りしてくれるよ。
板違いネタスマソ。


221 名前: デフォルトの名無しさん 投稿日: 02/01/20 04:23
>>219
そんなのMSに直接問い合わせれば?
ライセンス料って結構いいかげんというか
運用形態に拠って変わってこないかい?

NT Serverの事は良くしらんけど、
Oracleとかは馬鹿みたいな金額取られるよ>追加ライセンス


222 名前: デフォルトの名無しさん 投稿日: 02/01/20 11:45
>>219
仕事なら221の言う通りMSに聞いて根拠にするのが一番だけど、
ソケット使うだけでライセンス発生するなら
IISでサイト開いてるところは万単位のライセンスが必要になると思うぞ(藁

そのC/Sシステムが何をやっているかによって変わってくる。


223 名前: 196 投稿日: 02/01/20 13:51
>214
適当にやってみたけど
-------------------------
Private Declare Function GetTickCount Lib "kernel32" () As Long

Private Const SAMPLE = 1000

Private Sub Command1_Click()
  Dim I As Long
  Dim J As Long
  Dim sTmp As String
  Dim lTime As Long
  
  Dim A(SAMPLE)
  
  For I = 0 To SAMPLE
    A(I) = List1.List(I)
  Next I
  
  lTime = GetTickCount
  For I = 0 To SAMPLE - 1
    For J = SAMPLE To I + 1 Step -1
      If A(J) < A(J - 1) Then
        sTmp = A(J)
        A(J) = A(J - 1)
        A(J - 1) = sTmp
      End If
  Next J, I
  Caption = CStr(SAMPLE) & "Samples Time:" & CStr(GetTickCount - lTime) & "msec"
  
  List2.Clear
  For I = 0 To SAMPLE
    List2.AddItem A(I)
  Next I
  
End Sub

Private Sub Form_Load()
  Dim I As Long
  For I = 0 To SAMPLE
    List1.AddItem Format$(Rnd, "0.000000")
  Next I
End Sub
------------------------------------------------
こんなコードで
VBは330msec, Delは100msec位だった。


224 名前: デフォルトの名無しさん 投稿日: 02/01/20 14:34
>>223
Delのコードは?

>Dim A(SAMPLE)
Variant型かい!Singleにしましょう。速さ全然違うから。

>Caption = CStr(SAMPLE) & "Samples Time:" & CStr(GetTickCount - lTime) & "msec"
終了時間もまず一旦変数に入れてから後処理してね。


225 名前: 50のVB爺 投稿日: 02/01/20 14:54
VB6(SP5)インストールしたら、今まで何ら問題なかったExcel VBA UserForm
上のDataGridが座標が(0,0)で表示されるようになった。UserFormのInitialize
でDataGrid.Visible=Falseにしておくと、この症状が出るようなんだけど、何か解決
方法はないだろうか。


226 名前: でく 投稿日: 02/01/20 15:44
VBプログラマーになる上で、何が出来たら一人前といえますか?
プロパティーや関数、メソッドなどは全て覚えなければいけませんか?


227 名前: 197 投稿日: 02/01/20 16:35
>>207さん
アドバイスのお陰で出来ました!
ありがとうございました。


228 名前: 196 投稿日: 02/01/20 16:55
>>223
ソースとバイナリをここにUPから適当に遊んでくれぃ。

http://r1.ugfree.to/~angriff/596.lzh

しかし、Delのexeはでかいよぉ(w


229 名前: VBer 投稿日: 02/01/20 19:10
ウィンドウに対してAlt+PrintScreenを押すとイメージがクリップボードに入りますが、
これをVBから他ウィンドウへ対して実行したい時は、
どのメッセージを送ればよろしいでしょうか?

Spyを使って調べながら・・・・

ret = PostMessage(hWnd, WM_SYSKEYDOWN, &H12, &H60310001)
ret = PostMessage(hWnd, WM_SYSKEYUP, &H2C, &HE0540001)
ret = PostMessage(hWnd, WM_KEYUP, &H12, &HC0380001)

を送ってみましたが、上手くクリップボードへ入ってくれませんでした・・・・。



230 名前: デフォルトの名無しさん 投稿日: 02/01/20 19:27
>>229
keybd_eventでどうぞ。


231 名前: デフォルトの名無しさん 投稿日: 02/01/20 21:23
この様な回転の為のサブプロシージャを書いた後、
Private Sub rotateZ(p() As point3D, s As Integer, e As Integer, _
rz As Single)
以下・・・。

その後Callステートメントで呼び出す時、どう書けばいいんですか?
Call rotateZ・・・この後カッコを付けて、p() As・・・と全部書けばいいんですか?


232 名前: あじゃぱ 投稿日: 02/01/20 23:05
VBのよい参考書があれば教えてください.


233 名前: デフォルトの名無しさん 投稿日: 02/01/20 23:09
MSDN>232


234 名前: デフォルトの名無しさん 投稿日: 02/01/20 23:15
>>233
基本ではあるが良いとはお世辞にも以下略。


235 名前: デフォルトの名無しさん 投稿日: 02/01/20 23:19
>>226
全部覚える必要はないよ。使わないものも多いから。
でも、AccessやExcelとの連携やSQL操作の仕事が一番多いかな。

>>231
いちおう対応する変数は全部必要。型宣言は不要だけど。



236 名前: デフォルトの名無しさん 投稿日: 02/01/20 23:21
>>231
ネタ…?

Dim buff_p() As point3D
Dim s, e, rz As Integer

<初期化、計算処理>

Call rotateZ(buff_p, s, e, rz)


237 名前: デフォルトの名無しさん 投稿日: 02/01/20 23:28
>>236
えーっと。サブプロシージャを見つけて、
使おうとしたのですが、どうすればよいのか分かんなかったのです。
説明するのに頭の部分だけで良かったのかどうか分からないのですが、
やってみます。ありがとうございます。


238 名前: デフォルトの名無しさん 投稿日: 02/01/20 23:40
>>236
ネタ…?
それじゃ、s と eがバリアントだけど。



239 名前: デフォルトの名無しさん 投稿日: 02/01/20 23:42
>>236
rzはSingleだし。

それに、呼び出し側で同じ変数名使うかな。
面倒くさい時は使うか…。




240 名前: デフォルトの名無しさん 投稿日: 02/01/20 23:43
>>237
人に聞く前にまずやってみて、ばんばんエラーを出すほうが
覚えていくもんだよ。



241 名前: デフォルトの名無しさん 投稿日: 02/01/21 01:44
>>226
>VBプログラマーになる上で、何が出来たら一人前といえますか?

自分で考えること。
自分で調べること。
自分で実験すること。

>プロパティーや関数、メソッドなどは全て覚えなければいけませんか?
そんなの全部覚えてるやつはおらん。
(長いことやってれば、どのコントロールにどんな感じのプロパティやメソッドが
あるのか知ってるし、似たようなコントロールなら予測もできるけど)

・はじめてのコントロールを使うときは、まずヘルプでそのコントロールの
プロパティ、メソッド、イベントに一通り目を通す。
・使ったことのない関数を使うときも、ヘルプで使い方を調べる。
さらに、その関数を使った小さな実験プログラムを作って自分の目で
動作確認をする。

VBに限らずプログラミングの基本中の基本。



242 名前: デフォルトの名無しさん 投稿日: 02/01/21 05:47
フォームのBoaderStyleを「可変」に設定しておいて、フォームを小さく
していくと、あるところでListBoxなどが「プロシージャの呼び出し、また
は引数が不正です」なるエラーを出てしまいます。タイトルバーしか表示
されないというところまでフォームを小さくするためには、どうしたらいい
のでしょうか。


243 名前: デフォルトの名無しさん 投稿日: 02/01/21 06:22
>242
そんなこと、今まで誰もやってないと思われ。
ListBoxを不可にするとか、不可視にするとかは?



244 名前: デフォルトの名無しさん 投稿日: 02/01/21 06:41
その動作は、「高速ダウンローダー2001」をおもいだしすな、ぁ。



245 名前: 242 投稿日: 02/01/21 06:49
>>243さん、レスありがとうございます!
242で書くべきでしたが、フォームのリサイズの際にListBox
のサイズも変更されるように、次のような記述をしています。

List1.Move 120, 120, Me.ScaleWidth - 240, Me.ScaleHeight - 240

これで、List1のHeightが240に達すると先のエラーを吐いて
しまうようです。ご指摘の通り、不可視にすればエラーを回避
できました。次の記述を加えてみました。

If List1.Height < 250 Then
List1.Visible = False

一応の解決を見ました。ありがとうございました! ところで、

> そんなこと、今まで誰もやってないと思われ。

これはどういう意味なのでしょうか。もしかして、他にもっと
いい方法があるのでしょうか。ご指導いただけると助かります。
重ね重ねよろしくお願いします!



246 名前: デフォルトの名無しさん 投稿日: 02/01/21 06:52
>>242
もしかして、Form_Resize で、そのリストボックスの高さとか幅を、
フォームサイズに合わせてない?
高さや幅の値が<0になってエラーになってるだけと思うが。

ちゃんとチェックしてマイナスにしないようにするのが良いが、
手抜きとしてはこんなんもアリ(笑

Private Sub Form_Resize

 On Error Resume Next '//手抜き

 List1.Height = Me.ScaleHeight - List1.Top

End Sub


247 名前: デフォルトの名無しさん 投稿日: 02/01/21 07:56
>>240
お返事ありがとうございます。
昨日は睡魔に負けてしまいました。
わからないことがまだ沢山あるので、その時はお願いします。


248 名前: 名無しさんです 投稿日: 02/01/21 10:41
枠無しにフォームのサイズを変更してるアプリって
ありますよね?例えば付箋関係なんかが良くやって
ますが、あれって自力で枠周辺を監視して処理して
いるのでしょうか?だとしたら具体的にどういった処理
が必要になるのでしょうか?


249 名前: VB使い 投稿日: 02/01/21 10:52
>>248
サブクラス化+メッセージ監視で出来るよ。
サンプルはWebに山ほどある。


250 名前: 248 投稿日: 02/01/21 11:01
>>249
サブクラス化しなきゃできないですかね〜。
当方開発環境がwin98なのでサブクラス化すると
ステップ実行したりエラー出たら落ちたりするんで
できればサブクラス化はしたくないのです…。
NT系だとサブクラス化しても問題無いと聞きますが。


251 名前: VB使い 投稿日: 02/01/21 11:30
>>250
まあ、サブクラス化はめんどくさいからな。
俺も完成寸前にしか動作させない。

んじゃこれ使ってみれ。
1.フォーム作ってフォームのコードに貼り付ける。
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReleaseCapture
SendMessage Form1.hwnd, &hA1, 11, 0
End Sub
2.実行してフォームをドラッグする。

あとはMSDNでWM_NCLBUTTONDOWNとか見れ。


252 名前: 250 投稿日: 02/01/21 11:45
早速試しました。なるほど、とりあえず右方向だけですが
サイズ変更できました。あとは外周マウス座標をなんとか
すればイケそうですね。MSDNでちとイロイロ調べてみます。
サンクスでした。


253 名前: 250 投稿日: 02/01/21 11:46
あ、>>251 のVB使いさんへの返信です。


254 名前: 242 投稿日: 02/01/21 17:17
>>246さん、レスありがとうございます!
自宅に帰ったらさっそく試してみたいと思います。
ありがとうございましたm(_ _)m


255 名前: デフォルトの名無しさん 投稿日: 02/01/21 18:09
>>238
C, C++ とかぶってしまった。

>>239
スマソ、宣言よく見てなかった…。


256 名前: デフォルトの名無しさん 投稿日: 02/01/21 20:44
VB6、今日から使い始めたんですけど、
SVGA(800×600)対応のフォームを作ろうとしたら、
XGA以上のディスプレイで設計しないといけないんですか?


257 名前: デフォルトの名無しさん 投稿日: 02/01/21 20:58
>255
マ板で叩かれてた人かい?

http://pc.2ch.net/test/read.cgi/prog/1010916886/


258 名前: デフォルトの名無しさん 投稿日: 02/01/21 20:58
いまVB6.0とVC6.0をインストールしています。

VisualStudioのSPですが、最新版だけ当てるのは
駄目なのでしょうか?

よろしくおねがいします。



259 名前: デフォルトの名無しさん 投稿日: 02/01/21 20:59
>>256
プロパティウィンドウで設定できるのは画面のサイズまでだったと思うので、
実行時にフォームのサイズを合わせれば一応できますが・・・

でも、実行する度に画面いっぱいいっぱいで開発効率が非常に悪いのは
言うまでもないでしょう。



260 名前: デフォルトの名無しさん 投稿日: 02/01/21 21:00
>>258
最新版にはそれまでの修正が全部含まれてます。


261 名前: 258 投稿日: 02/01/21 21:06
>>260
ということは最新版だけで良いんですね。
ありがとうございました。


262 名前: 257 投稿日: 02/01/21 21:06
>257ですけど、>256へのレスでした。


263 名前: 256 投稿日: 02/01/21 21:08
>>259
なるほど、できないことはないんですね。
月末、XGAのノートPCが到着するから、
それまで違う部分を作ることにします。
ありがとうございました。

>>262
ちがいます(w


264 名前: デフォルトの名無しさん 投稿日: 02/01/21 21:42
お世話になりますm(_ _)m

現在、ダイアログを作成してるんですが、親のフォームからの
値の取得をどうやるかで悩んでいます。いまは、わざわざLabel
コントロールに値をいったん格納し、それを

 AAA = Form1.Label1.Caption

などといったふうに読み出しています。この方法でも問題なく
処理はできるんですが、今一スマートさにかけるような気がし
ています。コントロールを作ることで余計なメモリも食ってし
まうような気もしますし。。。プロシージャやフォーム単位を
超えた、プロジェクト内で自由に使用できる変数の設定って可
能なんでしょうか。よろしくお願いします。


265 名前: デフォルトの名無しさん 投稿日: 02/01/21 22:08
>>264
新たに、「標準」モジュールを作って、そこに

  Public 変数名 as 型

と宣言すべし。全モジュールより参照できる。
こんな場合なら、構造体を使うのがベターだな。
オブジェクト指向っぽくないが、VBなので気にするな(w


266 名前: デフォルトの名無しさん 投稿日: 02/01/21 22:32
>>264
フォームモジュールの先頭に
Public AAA As String
とすれば、外部からはForm1.AAAでそれにアクセスできます。

また、変数自体はPrivateにしておいて、
PublicなPropertyプロシージャを作ればリードオンリーにしたり、
入力チェックをしたり、細かいアクセス制限もできます。
その場合もぷろぱてぃ名がAAAならば、
Form1.AAAでアクセスできます。



267 名前: 264ではないですが 投稿日: 02/01/21 22:34
>>265
>構造体を使うのがベター

それってもしかしてclassのことですか?
VBのclassがわからなくて、ある人は「C言語の構造体のようなもの」だといってました。
C言語もよく知らないんですが、VBでclassを使うといいのは どんな時ですか?


268 名前: あじゃぱ 投稿日: 02/01/21 22:36
これからVBを学ぼうかと思っているのですが、
皆さんはVBを一通りこなせるようになるのにどれくらいの時間がかかりましたか?
さらにプロレベルになるのにどれくらいかかりましたか?


269 名前: 265じゃない 投稿日: 02/01/21 22:53
>>267
>それってもしかしてclassのことですか?

クラスと構造体は別。構造体にあたるものはVBではユーザ定義型と呼ばれるよ。
クラスはクラスモジュールに記述する。

>VBのclassがわからなくて、ある人は「C言語の構造体のようなもの」だといってました。
>C言語もよく知らないんですが、VBでclassを使うといいのは どんな時ですか?

クラスはあるデータのまとまり(プロパティ)とそれらを操作するメソッドで構成されてる。
クラスはいくらでも量産することができる。標準モジュールだとこうはいかない。
実際に使ってみないと実感わかないと思うよ。



270 名前: デフォルトの名無しさん 投稿日: 02/01/21 22:54
>>268
それ聞いてなんかの参考になるん?



271 名前: あじゃぱ 投稿日: 02/01/21 23:01
>270
参考までにとしか言いようがないです.
まあ早く覚えて就職したいと考えているので、参考までに他の人は
どれくらいなのかなと思ったので.


272 名前: 267 投稿日: 02/01/21 23:24
>>269
ありがとうございます。むずかしいですね・・・。
ある人は「クラスは概念だから説明しづらい」とも言ってました。
参考書なんかにもなかなか載ってないし・・・。
どんな時に必要になるのか、まだよくわかりません。
>>269さんはどうやって勉強しましたか?


273 名前:   投稿日: 02/01/21 23:29
VBランタイムをDLしたいんですがうまくいきません
助けてください


274 名前: デフォルトの名無しさん 投稿日: 02/01/21 23:31
>271
早い人は早いし、遅い人は何年たってもダメ。

たとえば何年勉強すれば、英語しゃべれるようになる?



275 名前: デフォルトの名無しさん 投稿日: 02/01/21 23:36
テキストフィールド間をEnterキーで
移動させる方法を教えてください。
お願いします。


276 名前: 269 投稿日: 02/01/21 23:40
VBページでクラスを扱っているところ。
ttp://www.interq.or.jp/www-user/komurak/main.html
ttp://homepage1.nifty.com/CavalierLab/lab/
http://www.gj.il24.net/~nakasima/

とりあえず1番目がお勧め。
3番目はある程度わかるようになってからの方がいいかな。


277 名前: デフォルトの名無しさん 投稿日: 02/01/21 23:48
>275
超FAQ。
SetFocusで移動。KeyCode=0でBeep音対策。
入力チェックには、Validateなんかおすすめ。



278 名前: デフォルトの名無しさん 投稿日: 02/01/22 00:29
>>268
>皆さんはVBを一通りこなせるようになるのにどれくらいの時間がかかりましたか?
サラからでもひと月も毎日使っていれば普通の人なら理解できるよ。
うちの会社にいる茶髪ねーちゃんでも出来たもん。

>さらにプロレベルになるのにどれくらいかかりましたか?
プロっつーてもピンキリあるからなぁ・・・

「VB」を覚えようとするな「プログラミング」を覚えろ。
「プログラミング」はすぐには身につかん。経験が絶対必要。
本気でプロになるつもりなら、とにかく作れ。なんでもいいから作れ。
プログラムだけでなくソースも他人に見せて叩かれろ。
他人に見せられないようなソースは売り物にならん。

↑は俺の言葉じゃないけど、間違ってないと思うよ。


279 名前: デフォルトの名無しさん 投稿日: 02/01/22 00:52
>>277
ありがとうございました。
text1からtext2に移動させるとしたら、これで良いのでしょうか?
とりあえずはうまくいったのですが.....

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
Text2.SetFocus
End If
End Sub

それと、色々調べてる時にEnterキー移動はあまりお勧めできない
って書いてあったりするのですが、何か問題があるのでしょうか?
もしよろしければ教えていただけませんか?


280 名前: デフォルトの名無しさん 投稿日: 02/01/22 00:52
>278
そして、勉強している間は給料の文句は言うな

もお忘れなく。
VBと関係無いんでsage


281 名前: デフォルトの名無しさん 投稿日: 02/01/22 01:01
>>279
Windowsの標準はTabでフォーカス移動だから。
標準から外れるからには棘の道を進む覚悟が必要。


282 名前: デフォルトの名無しさん 投稿日: 02/01/22 01:02
>279
KeyPressはキーを押した後なので、それより前のKeyDownに書くほうがベター。
キーイベントの発生順序は、KeyDown → KeyUp → KeyPress なのだ。

さらに、KeyAscii = 0 の後に、
Text1.Enabled = False
Text1.Enabled = True
の2行を入れるのがM$推奨だったりする。

WindowsがTABキーで次項目に移動する仕様になってるから。
操作の統一という意味でお勧めできないというだけ。

Enterで移動するのはDOSの仕様で、これに慣れてる中年クライアントの
希望が実際に多い。ExcelもEnterによるセル移動を捨ててないしね。



283 名前: 264 投稿日: 02/01/22 01:13
>>265 >>266さん、ご回答ありがとうございます!
さっそく作りかけのプログラムを書き換えます。ありがとう
ございました!


284 名前: デフォルトの名無しさん 投稿日: 02/01/22 01:14
>>281
>>282
ありがとうございました。
TabキーがMS標準なんですね。
エクセルやアクセスを使っているとEnterキーが
標準のように思ってました。
色々と勉強になりました。


285 名前: 267 投稿日: 02/01/22 03:09
>>276(269)
クラスについてのサイト紹介、ありがとうございました。勉強してみます。

あと>>279さんのご質問に関しての>>282さんのレスについてなんですけど、

>さらに、KeyAscii = 0 の後に、
>Text1.Enabled = False
>Text1.Enabled = True
>の2行を入れるのがM$推奨だったりする。

のところの意味がわからないんです。これはどういうことでしょうか?



286 名前: VB使い 投稿日: 02/01/22 04:49
>>285
M$=MicroSoft(ややUG,2ch用語)


287 名前: デフォルトの名無しさん 投稿日: 02/01/22 06:31
>285
Enabled=Falseにすれば、次のコントロールにフォーカスが移る。
その後で、Enabled=Trueに戻せばいいってこと。
これに対しSetFocusだと、フォーカスの順番を無視できてしまう。
ただ、それだけの違い。

作成過程の都合=コントロールを貼り付けた順番のままで、
フォーカスの順番なんてまったく考慮してないアプリもあるけどね。



288 名前: てちゅや 投稿日: 02/01/22 17:20
Public Sub HogeHoge(aryParam() As Long)
For i = LBound(aryParam) To UBound(aryParam)
'aryParamを使った処理
Next
End Sub

動的配列を引数に使った上記のような関数を作成しているのですが
この関数の呼出しもとで以下の

Erase aryData
Call HogeHoge(aryData)

の様に Erase でメモリ開放をおこなってしまうと

LBound(aryParam) 及び UBound(aryParam)

の所で「実行時エラー'9' インデックスが有効範囲にありません」
が出てしまいます。
これの回避に IsArray() で判定してみたりしたんですが、
Erase をしていても宣言時に Xxxx() としていると配列扱いです。

どうやってメモリが確保してあるか判定すればいいのか分からないです。
もしかして、On Error ステートメントで実行時エラー判定させる
しか方法はないのでしょうか?

よろしくお願いします_(._.)_



289 名前: はぢめてのVB6 投稿日: 02/01/22 18:23
高度な質問の中すみません
単純なゲーム形式のプログラムを作りたいのですが

「あっちむいてほい」の逆の形式で、Rnd関数で提示した方向(ピクチャで)に対応して
キーボードの←↑↓→を押す。
正解なら正解の回数をカウントしてもう1度
不正解なら正解するまでそのまま(正解以外の入力を受け付けない)
(できればタイマーで時間制限つき)

KeyDOwnイベントと正解をカウントするってところでつまづいてます。
手元に参考書になるものが少ないので是非皆さんの力を借りて完成させたいのです。




290 名前: バァ 投稿日: 02/01/22 18:44
>289
ウp希望


291 名前: デフォルトの名無しさん 投稿日: 02/01/22 19:26
ウp?


292 名前: VB使い 投稿日: 02/01/22 19:41
>>288
つまり、動的配列の初期化/未初期化の判定をしたいんだよな?
・・・たぶん無理。

一応、On Error〜か、Redimの後に必ず初期化するか、ファイルに書き込んで
サイズを調べるとか方法があるけど一番いいのは初期化だと思う。
あとバリアントに入れてメモリをチェックするって方法があるかも。今ちょっと分からんが。
他に知ってる人キボーン。

>>289
もうちょっと具体的に頼む。


293 名前: デフォルトの名無しさん 投稿日: 02/01/22 21:19
>>291
それだけじゃ答えようがないから、
今どんなふうにやってるのか示せ(コードをupしろ)ってことだろ。たぶん。

嫌われる質問の仕方の見本みたいな書き方だからな。
「つまづいてる」って言われても289にしか状況がわからん。
「こういうエラーが出る」とか「こうしたいのにこうなってしまう」って具合な
問題点を示してくれないと答える側はいやなもんさ。
せっかく答えても「すいません、質問の仕方がわるかったです〜」みたいに
なる場合が多いからな。



294 名前: 285 投稿日: 02/01/22 22:19
>>286
>>287
ありがとうございます。よくわかりました。
ただあとひとつだけ。
>SetFocusだと、フォーカスの順番を無視できてしまう。

とありますが、それを無視できてしまうことの問題というのがいまいちピンとこないのです。
EnterとTabとを押した場合でフォーカスがうつる順番がちがってしまうということでしょうか。



295 名前: VB使い 投稿日: 02/01/22 22:39
>>294
SetFocusを使うとどこでもフォーカス飛ばせるんだけど
それはWindowsの行儀に反してるから順番どおりにフォーカスを
移動するようにしてね。
とMicosoftが主張してるってこと。


296 名前: 285 投稿日: 02/01/22 22:48
>>295
なあるほど。ありがとうございました。

また疑問ができたのでお願いします。
ひとつのプロシージャの中で、まったく関係のないループ処理が複数ある場合、
ループカウンタとして使用する変数を たとえば Dim i As Integerと宣言したら、
そのiを使い回していいんでしょうか。
それともそのループごとにわかりやすいように別に作るほうがいいんでしょうか。
プロの方はどうされているのか 教えてください。


297 名前: デフォルトの名無しさん 投稿日: 02/01/22 23:43
>>288
VB使いさんと同じで、バリアントで受けるぐらいしか案がない。

>>289
KeyDownより、←↑↓→をキャプションにしたコマンドボタン4個の
ほうがVBらしいかも。まず、そっちで作ってみたら?

>不正解なら正解するまでそのまま(正解以外の入力を受け付けない)
最悪でも4回押せば正解になっちゃうの?

>296
変数名とかは好みの問題かも。
使い捨てループには iを使うけど、intLoopとか使ってる人も。
要は、後で見てもわかりやすいほうを選べばオッケー。



298 名前: VB使い 投稿日: 02/01/22 23:53
>>296
俺は使い回ししてるな。
For〜Nextのネストレベルで変数名を同じものにして。

どっちにしろ一番大事なのは常にそうする、ということ。
(会社でやるなら会社に合わせる。)その時々でいちいち変えると
どんなにいい手法でもデバッグがめんどくさい。


299 名前: デフォルトの名無しさん 投稿日: 02/01/23 00:00
>>288
SafeArray〜のAPIで調べられるけど、
エラートラップを使ってチェックする関数を自作する方が間違いなく楽でシンプル。

>>296
>ループカウンタとして使用する変数を
>たとえば Dim i As Integerと宣言したら、そのiを使い回していいんでしょうか。

その変数がたいした意味がない場合、あるいは、同じ意味のときは使いまわす。
そうでない場合は、別々の変数にする。

でも、基本的に2つ以上のFor文が出てきたら、機能分割して、
その部分がプロシージャにならないか検討する余地あり。



300 名前: 299 投稿日: 02/01/23 00:05
>>296
追加。
296>ひとつのプロシージャの中で、まったく関係のないループ処理が複数ある場合、

関係のないループで同じ変数を使いまわす場合は、

299>その変数がたいした意味がない場合、あるいは、同じ意味のときは使いまわす。
の中のその変数にたいした意味がない場合だな。

For文の場合そもそもが単純明快なループのみに絞った方がわかりやすいと思うので、
i,jで十分だと思う。制御変数自体に意味があるなら、意味のある変数名にした上で、
Do〜Loopを検討した方がいいかも。



301 名前: デフォルトの名無しさん 投稿日: 02/01/23 01:03
以下の3つについてお願いします。m(_ _)m
1)imageでpngファイルを表示することは可能でしょうか?
2)imageでjpgファイルを表示することは可能でしょうか?
3)pictureでpngファイルを表示することは可能でしょうか?
−)pictureでjpgファイルを表示することは可能ですね。



302 名前: VB使い 投稿日: 02/01/23 01:11
>>301

2○

-そうですね。


303 名前: デフォルトの名無しさん 投稿日: 02/01/23 01:16
ありがとうございました。


304 名前: デフォルトの名無しさん 投稿日: 02/01/23 01:18
>301
pngはDLLかOCXを使うと表示できる。




305 名前: はぢめてのVB6 投稿日: 02/01/23 01:25
>>290-93
ほんとにすみませんでした。
>>297
画面にはピクチャ以外何も表示したくないのでキー操作専用にしたかったのです。
>最悪でも4回押せば正解になっちゃうの?
それは数をこなすことでなんとかしたいです。

とりあえず、自力で形になるくらいまではこぎ着けたのですが、

ピクチャが表示されっぱなしだと、切り替わった際に「ピクチャの形の違い」で
判別しやすかったのでピクチャー1回ごとにを消せるようにしたいです。
(正解して次に切り替わる際に若干消えている時間が欲しい)

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

'キーの入力方向に対してaに値を入れる

If KeyCode = vbKeyUp Then a = 1
If KeyCode = vbKeyDown Then a = 2
If KeyCode = vbKeyLeft Then a = 3
If KeyCode = vbKeyRight Then a = 4
If KeyCode = vbKeyZ Then a = 0 'スタートボタンとして設定

'iをランダムに変化させて1〜4に対応したピクチャを表示

Select Case i
Case 1
Picture1.Picture = Picture2.Picture
Case 2
Picture1.Picture = Picture3.Picture
Case 3
Picture1.Picture = Picture4.Picture
Case 4
Picture1.Picture = Picture5.Picture
End Select

' a = iを正解とし 正解数をxとして設定し、政界した場合にはカウントする

If a = i Then x = x + 1

'正解した場合のみ次のiを決定する

If a = i Then i = Rnd * 3 + 1


'正解数を表示する

Label2.Caption = x

Randomize

If KeyCode = vbKeyX Then End 'ENDボタンとして設定

End Sub



306 名前: はぢめてのVB6 投稿日: 02/01/23 01:31
>>290-293でしたスマソ
やはりタイマーでしょうか?
手元に教科書やなんかあればいいんですが・・・



307 名前: >305 投稿日: 02/01/23 01:52
>If KeyCode = vbKeyUp Then a = 1
ここは、次のブロックみたいに、Select Case で書いたほうが見やすいし、
キーの連打にも対応できる。

>Picture1.Picture = Picture2.Picture
ピクチャボックスは配列化しちゃおう。
 Picture1(0).Picture = Picture1(i).Picture

>Randomize
これはフォームをロードする時に1回だけ実行すればいい。

>If KeyCode = vbKeyX Then End 'ENDボタンとして設定
これは上の入力部と同じところに書いたほうがいい。
Endは強制終了だから、使用禁止。Unload Me を使う。

>(正解して次に切り替わる際に若干消えている時間が欲しい)
3秒待ちは、こんな感じ。
  Dim Wait As Date
  Wait = Now
  While DateDiff("s", Wait, Now) < 3
    DoEvents
  Wend



308 名前: デフォルトの名無しさん 投稿日: 02/01/23 02:01
画像のロードの仕方で以下のやり方で間違っているのはどこでしょうか?
テキストですと同じ方法でロードできるのですが。。。

Dim strBuff_zu As String
Dim intFileNum_zu As Integer
Dim strFullPath_zu As String 'フルパス
Dim strSoutaiPath_zu As String '相対パス

strSoutaiPath_zu = "\tekisei\toi" & i & "\gazou.jpg"
strFullPath_zu = App.Path & strSoutaiPath_zu
intFileNum_zu = FreeFile()
Open strFullPath_zu For Input As #intFileNum_zu
Line Input #intFileNum_zu, strBuff_zu

Close #intFileNum_zu

Image1.Picture = LoadPicture("\strBuff_zu"


309 名前: デフォルトの名無しさん 投稿日: 02/01/23 02:09
>308
画像を読み込むだけなら、LoadPictureの1行だけでいい。
()の中にはパスを入れる。EXEと同じフォルダなら、ファイル名だけでも可。

上のブロックは、テキストファイルを読み込む時のやり方で、画像とは関係ない。



310 名前: 296 投稿日: 02/01/23 07:37
>>297-300
ありがとうございました。


311 名前: デフォルトの名無しさん 投稿日: 02/01/23 12:34
VBでユーザー定義関数同士間でCでいう関数ポインタみたいにできないですか?
できるならばやり方ご存知の方お願いします!!


312 名前: VB使い 投稿日: 02/01/23 12:49
>>311
関数ポインタで関数を呼び出したいってこと?


313 名前: デフォルトの名無しさん 投稿日: 02/01/23 15:00
今、exeファイルのアイコン上に任意のファイルをドラッグ&ドロップして、
そのファイルのパスを取得したいのです。
でも、command関数を使っても、ファイル名が8文字までしか認識されません。
しかも、WinMeだとフルパス認識出来るのに、Win98SE以下だと駄目なのです。
APIを使っても、まずファイル名をプログラム内で指定しないと駄目ですし、
どうしようか、手詰まりになっています。
わかる方いらっしゃいましたら教えていただけないでしょうか?
以下、コードです。

Dim args1, args2 As String
Dim nn As Integer
args1 = Command()
nn = Len(args1)
args2 = Mid(args1, 1, nn)
Open "C:\My Documents\Doc検索\minami.txt" For Output As #1
Print #1, args2
'Print #1, nn
Close #1
ret = Shell("C:\Program Files\FileMaker\ファイルメーカーPro 5.5\ファイルメーカーPro.exe C:\My Documents\Doc検索\Docu検索01.fp5", 1)
End
End Sub



314 名前: 311 投稿日: 02/01/23 15:43
>>312
 ソウッス(・∀・)!!


315 名前: VB最高 投稿日: 02/01/23 16:37
VBをやるのにフローチャートはいりますか?
というよりフローチャートってなんですか?


316 名前: VB使い 投稿日: 02/01/23 16:51
>>314
VBはポインタを扱えないので、まぁ基本的に無理ってことで。

ただ、無理やりやるなら
1.アセンブラで関数のポインタに飛ぶコードを書いてVTableを自作し、
VtableにアセンブラコードとポインタをいれてOleaut32のDispCallFuncを
呼び出す
2.クラスを作成しインスタンス化した後Vtableのアドレスを書き換える

とかいう方法があるけどどちらも無理矢理なんでC使えるならDLLを作ることを
お勧めする。

一応1のサンプル。(DispCallFuncについてはまだよく知らないので)

Option Explicit
Private Declare Function DispCallFunc Lib "oleaut32.dll" ( _
ByVal VtblObject As Long, _
ByVal FunctionOffset As Long, _
ByVal CallConv As Long, _
ByVal ReturnType As VBA.VbVarType, _
ByVal ArgsCount As Long, _
ByRef ARefArgsType As Integer, _
ByRef ARefArgs As Long, _
ByRef RefResult As Variant) As Long
Function Func1() As Long
MsgBox ("(・∀・)ウマクイッタ!")
End Function
Sub main()
Dim pFunc As Long
pFunc = GetAddress(AddressOf Func1)
MyCall pFunc'ココがポインタ使ってるとこ。
End Sub

Function GetAddress(Functions As Long) As Long
GetAddress = Functions
End Function

Private Function MyCall(ByVal FunctionPointer As Long) As Long
Dim cd(0 To 7) As Byte 'アセンブラコード
Dim pTable As Long
Dim TableOb(0 To 1) As Long

cd(0) = &H59: cd(1) = &H58: cd(2) = &H51: cd(3) = &HFF: cd(4) = &H60: cd(5) = &H4
pTable = VarPtr(cd(0))
TableOb(0) = VarPtr(pTable)
TableOb(1) = FunctionPointer
DispCallFunc VarPtr(TableOb(0)), 0, 4, vbLong, 0, 0, 0, 0
End Function


317 名前: VB使い 投稿日: 02/01/23 17:03
>>313
もしかしてMYDOCU~1とかになるってことならDOS名なんで
VBの標準関数ならそのまま使えるぞ。

>>315
フローチャートってのはプログラムの流れを図にしたもの。
昔は機械語直接書いてたんでそういうのが必要だった。
今は・・・まあ書いたほうが分かりやすいがめんどくさい。

316訂正。
(DispCallFuncについてはまだよく知らないので)

(DispCallFuncについてはまだよく知らないのであんまり信用しちゃダメ。)


318 名前: デフォルトの名無しさん 投稿日: 02/01/23 17:58
>>317
言葉が足りませんでした。
ドラッグ&ドロップしたファイルのパス名をそのままファイルメーカーに新規レコード
として入力させたいのですが、どうしてもそのまま~付のファイル名として
入力してしまいます。
これを、そのままのファイル名として入力したいのです。

ついでながら、Win98SE以下だと、ファイルメーカーにレコードとして入力すら
出来ない状態です。
WinMeだと、このコードでもうまく行くんですけど。



319 名前: デフォルトの名無しさん 投稿日: 02/01/23 18:03
上記のは313の発言です。
なんか名前を入れると、エラーが出るもんで...


320 名前: デフォルトの名無しさん 投稿日: 02/01/23 18:08
カエレ!っていわれるだろうけど>>316みたいなのが普通のVBのテクなのか?
VB.NETを待ち望むのも無理は無いと思うよ。ところで実はVBは使った事は
無いんだが、ハックしなくてもCOMのシンクイベントみたいなやり方で
できるんじゃないの?<関数ポインタ


321 名前: Delフサギコ 投稿日: 02/01/23 18:38
VBでASPアプリを作成しているんですが
画像ファイル(JpegとかPNGとか)
を動的に作成したいと思っています。

メモリ上で画像を描画する方法は
VBではあるのでしょうか?

VBで無理ならActiveXDLLをVBと接続して
描画させてやらなきゃいけないのかなと
考えてます。

とりあえず可能か不可能かを知りたいのと
わかりやすいリンク先とかありましたら
教えてクラサイ

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧,,∧    オシエテクン デス
  ミ,, ゚Д゚彡
   〃  つ旦~~
 〜ミ,,,n,,n[ ̄ ̄ ̄.]
        ̄ ̄ ̄


322 名前: VB使い 投稿日: 02/01/23 18:38
>>318
Shellの代わりにAPIのShellExecuteを使ってみては?

>>320
もっと簡単に出来るんなら俺も教えて欲しいよ(;´Д`)


323 名前: VB使い 投稿日: 02/01/23 18:42
>>321
メモリの画像を表示したいならSetDIBitsToDeviceで。(Delは違うのか?)


324 名前: Delフサギコ 投稿日: 02/01/23 19:00
デルはそういうクラス(TBitmap)があるので…

SetDIBitsToDeviceってAPIかな?

>メモリの画像を表示したいなら
なんか微妙に違うような....
Webアプリでグラフみたいなので
動的に画像ファイルを作成したいの。

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧,,∧    サンクスコ
  ミ,,゚Д゚彡∬
   〃  つ旦O
 〜ミ,,,n,,n[ ̄ ̄ ̄.]
        ̄ ̄ ̄


325 名前: 308 投稿日: 02/01/23 19:12
>>308のようなケースで、動画(MPEG)をロードするには
どうすればいいのでしょうか?
どなたかお願いいたします。


326 名前: デフォルトの名無しさん 投稿日: 02/01/23 19:31
CreateDIBSectionでつくって、DCに対して描画して、
そのメモリを、PNG、JPGに変換して、出力とか。


327 名前: デフォルトの名無しさん 投稿日: 02/01/23 19:35
お助けください(; ;)

func1 op1, op2

Sub func1(r1 as OptionButton, r2 as OptionButton)
r1.value = ...
End Sub

てなことをやりたいのですが、呼び出し時に「型が違います」云われてしまいます……
何が間違っているのでしょう……


328 名前: デフォルトの名無しさん 投稿日: 02/01/23 19:50
はじめまして

http://mbs.jp/maji/
ここのHPにある投票フォームをソースで表示してどこかイジって
クリックするとある選択肢に投票されるプログラムを作りたいんですがわかりません。
私は全くそういう知識がなく、この板にくるのも初めてです。
どうかアドバイスお願いします。


329 名前: 327 投稿日: 02/01/23 20:49
解決しました……関数宣言 Variant にしてみました……
なんか納得いかない……


330 名前: VB使い 投稿日: 02/01/23 20:50
>>327
op1の宣言と、Setを使ってるかをチェックしてみれ。

>>324
俺ASPって今知ったんだけど、ASPからVBって使えるの?
VBScriptみたいなもんなんかなあ?


331 名前: デフォルトの名無しさん 投稿日: 02/01/23 21:03
>>330
VBでコンポーネントを作って、それをASPから呼び出すんさ。


332 名前: デフォルトの名無しさん 投稿日: 02/01/23 21:10
>>320
絶対普通じゃないと思われ(藁
っていうかVBでは関数ポインタなんて使わないように設計する。



333 名前: VB使い 投稿日: 02/01/23 22:10
>>331
微妙にスレ違いだけどASPで使うVBコンポーネントって
ActiveXEXEだけ?標準EXEもいけるのかなあ?・・・無理か。

>>332
賛成w
ま、こんなこともできるっつーことで。


334 名前: VB使い 投稿日: 02/01/23 22:27
>>328
ネットの基礎知識とJavaScriptとHTMLを勉強しましょう。


335 名前: デフォルトの名無しさん 投稿日: 02/01/23 23:21

>どうしてもそのまま~付のファイル名として入力してしまいます。
>これを、そのままのファイル名として入力したいのです。

Win95、98はそういう仕様だったような。

Dir関数にショートファイルネームのパスをかけると
ファイル名がロングファイルネームで返ってくるのを利用して、
パスを階層ごとに変換かけてロングファイルネームのパスに変換しよう。
Webで検索すればそういう関数を公開しているところはいっぱいあるよ。
APIにロングネームに変換する関数もあるけど、IEのバージョン依存だったと思う。

ところで、
>ret = Shell("C:\Program Files\FileMaker\ファイルメーカーPro 5.5\ファイルメーカーPro.exe C:\My Documents\Doc検索\Docu検索01.fp5", 1)
ret = Shell("""C:\Program Files\FileMaker\ファイルメーカーPro 5.5\ファイルメーカーPro.exe"" ""C:\My Documents\Doc検索\Docu検索01.fp5""", 1)
じゃないとまずくない?
適当なEXEを作って、Program.exeという名前にして、Cドライブ直下に置くと・・・・

>>320
>カエレ!っていわれるだろうけど>>316みたいなのが普通のVBのテクなのか?
普通のテクじゃないでしょ。
元質問のVBでポインタを扱いたいっていう発想にそもそも無理があるからね。
そういう無茶ありなら、ポインタ経由でデータを読み出したり、書き出したりも
できなくはない。実用性はないけど。

>>327
>func1 op1, op2

>
>Sub func1(r1 as OptionButton, r2 as OptionButton)
>r1.value = ...
>End Sub
>てなことをやりたいのですが、呼び出し時に「型が違います」云われてしまいます……

op1、op2の型がわからないけど、
両方ともOptionButton型でなければエラーになる。
参照渡しでは厳密に型が一致しなければエラーになるよ。
integerとかLongとかそういうのであれば型変換関数をかませばいいけど、
オブジェクトそれぞれ固有の型への変換関数はVB6以前にはないから正確な型以外渡せない。

Sub func1(ByVal r1 as OptionButton,ByVal r2 as OptionButton)
にしてあれば、op1が例えばOptionButtonの入ったObject型でもControl型でもVarinat型でも
暗黙の型変換で対処してくれる。



336 名前: デフォルトの名無しさん 投稿日: 02/01/23 23:44
>>313
>Dim args1, args2 As String
この書き方だと、args1はバリアントになる。

>nn = Len(args1)
>args2 = Mid(args1, 1, nn)
args1 = args2 とまったく同じだけどいいの?

>ファイル名が8文字までしか認識されません。
ショートネームでもフルパスはフルパスなんだけど。
どうしてもロングネームにしたかったら、APIのGetLongPathName。
FileSystemObjectでも出来るし。

>>325
Microsoft ActiveMovie Contorol を使う。



337 名前: デフォルトの名無しさん 投稿日: 02/01/24 00:22
>>311
関数ポインタじゃなくVBらしくオブジェクトを使う。

'Form1
Option Explicit

Private WithEvents m_My1 As clsMy '関数ポインタの代り
Private WithEvents m_My2 As clsMy '関数ポインタの代り

Private Sub Form_Load()
Set m_My1 = New clsMy
Set m_My2 = New clsMy
End Sub

Private Sub Command1_Click()
Call foo(m_My1)
End Sub
Private Sub Command2_Click()
Call foo(m_My2)
End Sub

'関数ポインタ経由で呼び出される関数の代り
Private Sub m_My1_func()
Debug.Print "My1"
End Sub

'関数ポインタ経由で呼び出される関数の代り
Private Sub m_My2_func()
Debug.Print "My2"
End Sub

'関数ポインタ経由で関数呼び出しをする代り
Public Sub foo(ByVal My As clsMy)
My.DoFunc
End Sub


'clsMy
Option Explicit

Public Event func()

Public Sub DoFunc()
RaiseEvent func
End Sub



338 名前: デフォルトの名無しさん 投稿日: 02/01/24 03:38
>>321 >>324
ASPでVBSを使っていて、JPGやPNGの画像ファイルを
動的に生成したいということでしょうか?

VBでは、APIが呼べますが、VBSでは無理かと思います。

ActiveXDLLが完成したら、その、DLL僕にもちょうだい。(w
DIBなら作れそうだけど、JPGで保存となると、私にはお手上げ。


339 名前: これはどう? 投稿日: 02/01/24 07:09
>>321
Doodle2 VBS用画像描画・変換COMコンポーネント
http://www.vector.co.jp/soft/winnt/prog/se219120.html

VBA/WSH/ASPなどのWindows Scripting環境で、CreateObjectして使用
BMP・JPEG・GIF・PNGファイルの読み込み・書き込み(相互変換)をサポート
直線、丸、四角、ベジエ曲線などの基本的な図形の描画
文字をグラフィックとして表示できます(TrueType可)
簡易的な画像縮小・拡大機能、コントラスト調整、ガンマ補正機能



340 名前: デフォルトの名無しさん 投稿日: 02/01/24 08:50
>>337
多態って知ってる? オブジェクト指向勉強せい!


341 名前: デフォルトの名無しさん 投稿日: 02/01/24 08:51
>>333
ActiveX-DLLもいける。標準EXEを使いたいなら、EXEファイルを
呼び出すコンポーネントを使えばよい


342 名前: Delフサギコ 投稿日: 02/01/24 09:13
    ∧,,∧     / ̄ ̄ ̄ ̄ ̄
   ミ    ミ  < とっても・・・
   ミ    つ   \_____
   ミ @ ミ
   '∪'''∪'

ピキューン      + / ̄ ̄ ̄ ̄ ̄
 +   ∧,,∧    <  感謝>>338-339
   ミ,゚Д゚ ,,ミ     \_____
((  ⊂ .  つ   ))
 +  ミ   ミ   
    ''とノ''  +

キュピィィィン   +   / ̄ ̄ ̄ ̄ ̄
     ∧,,∧   < レスくれた人、ありがd
    ミ,, ゚Д゚ミ .  \_____
    ミ  つ つ ))
 +   ミ ⊂.ミ
     ''∪''''


343 名前: 338 投稿日: 02/01/24 09:31
>>339
ThanX 世の中には、太っ腹な人がいるもんですねぇ。


344 名前: VB使い 投稿日: 02/01/24 09:51
>>341
なるほど。アリガd


345 名前: _ 投稿日: 02/01/24 13:57
コレクションで大文字・小文字を区別させたいのですが
どうすればいいのでしょうか?


346 名前: 313 投稿日: 02/01/24 14:48
VB使い様、336様
>args1 = args2 とまったく同じだけどいいの?
見なおしてみて、気付きました。(汗

>ファイル名が8文字までしか認識されません。
ショートネームでもフルパスはフルパスなんだけど。
どうしてもロングネームにしたかったら、APIのGetLongPathName。
FileSystemObjectでも出来るし。

なんとか、[GetLongPathName]にて取得できました。
いろいろご指導ありがとうございました。


347 名前: デフォルトの名無しさん 投稿日: 02/01/25 00:28
>>345
それ自体できません。

コレクションクラスを作成して、
内部的には前に「_」付けて区別するようにAdd、Item、Removeに細工しよう。




348 名前: デフォルトの名無しさん 投稿日: 02/01/25 01:52
今調べたら、
Microsoft Visual Studio 6.0 Enterprise Edition
のアカデミック版を買えば3万5千円で済むらしい。放送大学に入ってこれ買えばいいか。



349 名前: デフォルトの名無しさん 投稿日: 02/01/25 01:58
よかったら教えて下さい。
1.VBだけでマルチスレッドアプリケーションを作れるのか?
2.コンパイルした結果できたバイナリはランタイムDLLなしで、EXEファイルだけで使えるのか?



350 名前: デフォルトの名無しさん 投稿日: 02/01/25 02:14
>>349
1.VB5の頃は、APIのCreateThreadで、出来たみたいですが、
私がVB6で試した限りは、IDEが落ちました。
VCで作った方が256倍は楽です。

2.ランタイムは必要です。新規プロジェクトで試してみたら、
ASYCFILT.DLL COMCAT.DLL MSVBVM60.DLL OLEAUT32.DLL
OLEPRO32.DLL VB6JP.DLL VB6STKIT.DLL
がディストリビューションウィザードによって追加されました。
Windows2000以降は、ランタイムが付属らしいので、
他のコンポーネントを使わない限りは、動くらしいです。(未確認)


351 名前:   投稿日: 02/01/25 02:29
>>350さんありがとうございます。
やはりそれならばすべてVCでやった方がいいかもしれませんね。



352 名前: デフォルトの名無しさん 投稿日: 02/01/25 02:32
>>350
最低限必要なのは MSVBVM60.DLLだけ。
日本語を表示するには、VB6JP.DLLも必要。
あとのDLLはオートメーション用だったり、いろいろ。
ネットで配布されてる標準セットだけでオッケー。



353 名前: 349 投稿日: 02/01/25 02:34
>>352さん情報ありがとうございます。



354 名前: デフォルトの名無しさん 投稿日: 02/01/25 04:15
>>349
>1.VBだけでマルチスレッドアプリケーションを作れるのか?

VB.NETだったら楽勝!


355 名前: デフォルトの名無しさん 投稿日: 02/01/25 06:36
テキストファイルのスペース、改行などを全部詰めて、一面文字を
ビッシリ詰めたいのですが、どうしたら良いかさっぱり分かりません。
よろしければ例を交えて教えていただけませんでしょうか。
(お暇であれば、できるだけコメントを入れていただけると嬉しいです。。。)
よろしくお願いいたします。


356 名前: デフォルトの名無しさん 投稿日: 02/01/25 06:54
>>355
テキストのサイズにもよるけど、
 
Replace(strBuff, " ", "")
Replace(strBuff, vbCrLf, "")
 ・
 ・
 ・
 
って感じに


357 名前: デフォルトの名無しさん 投稿日: 02/01/25 06:54
>355
意味不明。
スペースを詰めるというのは、行頭・行末のスペースを削除?
改行を詰めるというのは、空行を削除?
それなら、フリーソフト使っときなさい。



358 名前: 355 投稿日: 02/01/25 08:31
わかりにくくてスミマセン。
空行を詰めると共に、文章の間に挟まったスペースも取り除きたいのです。
--------------
あああ
あああ  あああああ

あああ  あ
ああああああ

----↓これをこうしたい----------

あああああああああああああああああああああ

>>356さんのやり方でやってみます。ありがとう。


359 名前: あれ? 投稿日: 02/01/25 11:44
>>358じゃないけど、実験がてらExcelで
Worksheets("Sheet1").Range("B2").Replace What:=vbCrLf, Replacement:=""
とかやってみたけど詰まらないな。
識者の方に任せるわ。


360 名前: デフォルトの名無しさん 投稿日: 02/01/25 11:55
>359
Excelの改行ってCrのみじゃなかったっけか?


361 名前: VB使い 投稿日: 02/01/25 11:56
>>359
セルの中のvbCrLfを置換しようとするからまずいのでは?
っつーか、>>355が言ってるのはVBだろ。たぶん。


362 名前: VB使い 投稿日: 02/01/25 11:57
>>360
あああかぶった。


363 名前: 359 投稿日: 02/01/25 12:32
今Excelしか無くってさー。(実はExcelのことほとんど分からないんだけど…)
>>360
vbCrだけにしても駄目ダタヨ。


364 名前: VB使い 投稿日: 02/01/25 12:35
>>363
VbLfだーよ。


365 名前: 359 投稿日: 02/01/25 12:37
でけた。サンクth。


366 名前: 359 投稿日: 02/01/25 12:44
ちなみに大量の文章でやってみようと思ったら、セル内にペーストできないな。
一つのセルに書き込める文字数を超えているってこと?
だったら俺的には役にたたんな、これ。

何か大量の文章でできるすべあるかな?


367 名前: VB使い 投稿日: 02/01/25 12:47
>>366
ExcelはReplaceメソッドはあってもReplace関数は無いからな。
(2000以降出来るようになったんだっけ?)

自前で書いたほうが早いと思われ。


368 名前: 359 投稿日: 02/01/25 12:53
>>367
いちいちまったくだ。がしかし、Excelの勉強もしたくなった。
>>358に感謝。ま、帰ってから考えるとするよ。
暇な人、ヒントでも書いておいてくれるとうれしいな。


369 名前: デフォルトの名無しさん 投稿日: 02/01/25 13:18
>>367
2002だけど、Replace関数あるみたい


370 名前: VB使い 投稿日: 02/01/25 13:30
>>368
頑張れー。ヽ(´ー`)ノ

>>369
サンクスコ。2000からか?使えるの。
今使ってるの97だからなあ。


371 名前: デフォルトの名無しさん 投稿日: 02/01/25 13:42
VBでローカルマスィ-ンのIPアドレス取得しる方法教えて〜


372 名前: デフォルトの名無しさん 投稿日: 02/01/25 13:46
あああ


373 名前: デフォルトの名無しさん 投稿日: 02/01/25 13:50
>>371
http://www.google.com/search?q=VB+IP+%83%8D%81%5B%83J%83%8B%81@%8E%E6%93%BE&hl=ja&lr=


374 名前: デフォルトの名無しさん 投稿日: 02/01/25 13:53
VBでスプレッド3.0を使用している者で、質問なんでが、
例えばスプレッドが10列あったとして、最初の2列を固定列にして、
残りの8列をスクロールバーでスクロールした時に、
「灰色領域」が出てくるので、その「灰色領域」を出さないようにしたいのですが
出さない方法を知ってる方教えてください。



375 名前: デフォルトの名無しさん 投稿日: 02/01/25 19:42
DAOでデータベース開く際、mdb以外のDBも読み込めますよね。
色々試しているんですが、テキスト形式のものだとカンマ区切りはちゃんと読めるのに
スペース区切りでは区切りとみなされず1つになってしまい、ダメでした。

スペース区切りテキストファイルのデータは読み込めないのでしょうか


376 名前:  >>375 投稿日: 02/01/25 20:37
Arr()=split(格納文字,space(1))


377 名前: 息子 投稿日: 02/01/25 21:17
すみませぬ。質問よいですかい?
Text1の内容を自動的にクリップボードに貼っつけるのがやりたいんだけど、
クリップボードの扱い方がさっぱり。どうしたら良いのやら?


378 名前: >>377 投稿日: 02/01/25 21:23
Private Sub Command1_Click()
Call VB.Clipboard.SetText(Text1.Text)
End Sub
Private Sub Command2_Click()
MsgBox VB.Clipboard.GetText
End Sub



379 名前: デフォルトの名無しさん 投稿日: 02/01/25 21:25
CとPerlはそれなりに使っていて、C++は触った程度です。
(Javaは1.1.3でHelloWorld書いてみただけ)
VBを新たに覚えなければならなくなりそうなんですが、
もし、初心者がはまりそうな注意点が有ったら教えてください。

あと、事務処理の分野ではVBってよく使うものなんでしょうか?


380 名前: >>379 投稿日: 02/01/25 21:59
>初心者がはまりそうな注意点
GotFocus
LostFocus
DoEvents

>事務処理の分野ではVBってよく使うものなんでしょうか?
Yes


381 名前: 379 投稿日: 02/01/25 22:13
>>380
どうもありがとう。


382 名前: デフォルトの名無しさん 投稿日: 02/01/25 22:40
>>379
>もし、初心者がはまりそうな注意点が有ったら教えてください。
はまりそうな点というより知っておいた方がいいキーワード

Option Explicit
ByValとByRef



383 名前: デフォルトの名無しさん 投稿日: 02/01/25 22:46
DBやるんなら、NullとvbNullとvbNullStringとvbNullCharの違いを
しっておいたほうがいいかも。Null以外使わなきゃいいだけだけど。


384 名前: デフォルトの名無しさん 投稿日: 02/01/25 22:50
>379
IsNull関数の存在。


385 名前: 解説君 投稿日: 02/01/25 22:56
>Option Explicit
変数の宣言を強制する。必須。
>ByRef
参照渡し。値のポインタを投げる。
ポインタは当然スタックに詰まれるので、再帰を繰り返すと
スタックオーバーフローを起こす。

>Null
まんまNull。DBのフィールドなどに多く見られる。

>vbNull
"1"。意味不明。用途不明

>vbNullString
空文字(Nullではない)。Empty。
VB関数の戻りに多く見られる。

>vbNullChar
文字コード0のスペース。
Cで言う\0。
APIの戻りにこれが含まれている場合多し。


386 名前: デフォルトの名無しさん 投稿日: 02/01/25 23:20
age


387 名前: デフォルトの名無しさん 投稿日: 02/01/25 23:25
>>382-385
ありがとうございます。本当に助かります。


388 名前: デフォルトの名無しさん 投稿日: 02/01/25 23:35
>>374
市販ソフトのことは、ベンダーに直接質問したほうがいいです。
かならずメールで返事くれますので。

>>378
送るときは、直前にClearしないと、失敗する時もあります。

>>379
データベースにSQLを投げたり、力業をCで書いたDLLにやらせたり。
事務分野の仕事は多いです。
っていうか、事務分野以外ではあまり出番がない(笑)。



389 名前: デフォルトの名無しさん 投稿日: 02/01/26 02:06
>>385
>>ByRef
>参照照渡し。値のポインタを投げる。
内部的なことを言うなら、
「実引数(プロシージャに引数として渡す変数)のアドレスの
 コピーが作成され、そのアドレス経由で実引数の値にアクセスする。
そのため、その値を書き換えると実引数として渡された変数の値が書き換わる。」
が正確かな。

とりあえず、VBをはじめる人はプロシージャの引数はByValで
指定すべしと覚えておいてもらえばOK。

>ポインタは当然スタックに詰まれるので、再帰を繰り返すと
>スタックオーバーフローを起こす。

スタックに積まれるのは、ByRefとは全然関係ないけど(^^;

>>vbNull
>1"。意味不明。用途不明

VarType関数にNullもしくはNullの入った変数を渡したときの戻り値。

>>vbNullString
>文字(Nullではない)。Empty。

Emptyはバリアント型の初期値の値。IsEmpty関数で判定可能。
文字列用のNULLポインタ。API関数の引数に主に使用する。

>VB関数の戻りに多く見られる

俺の知る限りでは、InputBox関数の戻り値くらいなんだけど他にもある?
Debug.Print vbNullString=""はTrueを返すけど、本質的には別物。

特にメリットがあるというほどではないけど、
InputBox関数では次のようなことができる。
Dim s As String
s = InputBox("キャンセルしたのか、空文字列なのかを判断できます。")
If StrPtr(s) = 0 Then
Debug.Print "キャンセル"
ElseIf s = "" Then
Debug.Print "未入力です。"
Else
Debug.Print "入力した文字列は""" & s & """"
End If

>>vbNullChar
>文字コード0のスペース。
スペースじゃなくて、ヌル文字。


390 名前: 389 投稿日: 02/01/26 02:09
補足。
>文字列用のNULLポインタ。API関数の引数に主に使用する。
これはvbNullStringの説明ね。


391 名前: デフォルトの名無しさん 投稿日: 02/01/26 02:23
ヌル関係は、とくに覚えなくてもいいということで(笑)。


392 名前: デフォルトの名無しさん 投稿日: 02/01/26 08:50
全くの初心者向けに簡単なゲームを作るチュートリアルが載っているサイトってありませんか?


393 名前: デフォルトの名無しさん 投稿日: 02/01/26 08:52
パール厨房です。こんにちは。
この度課題でVBでオセロゲームを作るはめになりました。
VBは全く知りません。とりあえず明日の5時までが期限なのですが
出来ますでしょうか?皆さんが無理だと言ったら単位はあきらめます。


394 名前: デフォルトの名無しさん 投稿日: 02/01/26 09:00
>>393
何マス?
マス少なきゃ何とかなるとは思うけど。

てきとーに動けばいいなら、それこそオセロのロジックなんて
腐るほど転がってるから、ちょっといじれば直ぐに出来るが。

ソース解説出来なきゃならないならどうかなぁ…


395 名前: デフォルトの名無しさん 投稿日: 02/01/26 09:02
>>392
>>393
・・・・
おいおい、板違いだって。
そういう初心者はPC初心者板にでも逝ってくれ。
この板で言う初心者というのは自分一人でもある程度プログラムができて、
どうしてもわからない人のことなんだよ。
というか、そういう質問は自分の力で解決するべきじゃないのか?
最近の高校生や大学生はすぐに本とかネットとかに頼る傾向があるみたいだな・・・
10年後の日本が心配だよ。全く・・・


396 名前: デフォルトの名無しさん 投稿日: 02/01/26 09:14
>>394
マスは現実のオセロと同じマス数です。あとCPU側の思考ルーチンは
先生のほうで用意してあるみたいです。
>>395
すいません。まあちょっと冗談まじりの質問なんで勘弁です。

さっきVBの初心者本見たけど。。
VBメンソクセェヽ(`д´)ノパールのほうが余計なこと書かなくていいし楽だよ。。


397 名前: VB使い 投稿日: 02/01/26 09:20
>>392
ほれ。
http://www.google.com/search?hl=ja&q=%8F%89%90S%8E%D2+%83Q%81%5B%83%80+%8D%EC%82%E8%95%FB+VB+or+Basic&lr=
あとせめてどれぐらいの初心者か書いてくれ。

>>393
才能があるか努力がうまい奴なら出来るだろう。


398 名前: デフォルトの名無しさん 投稿日: 02/01/26 09:27
>>396
>CPU側の思考ルーチンは先生のほうで用意してあるみたいです。

それを自分で作ったオセロにどう組み込むのか。
ソースで提供されて組み込むのか?クラス化でもされてんのか?

今から勉強しながらコーディングするとして、
人対人のをただひっくり返すのでなければ
明日までには出来ない方に100vbp


399 名前: デフォルトの名無しさん 投稿日: 02/01/26 09:31
>>397
ありがとうございます。
一応、全くの初心者と書いたんですが。

>>395
すみませんでした。
次からはPC初心者板に行きます。


400 名前: VB使い 投稿日: 02/01/26 09:38
>>399
初心者にもPC初心者、プログラム初心者、VB初心者とかがあるからね。
ま、頑張れ。


401 名前: 399 投稿日: 02/01/26 09:54
プログラム知識ゼロという意味で書きました。
本当にすみませんでした。以後気を付けます。


402 名前: 393 投稿日: 02/01/26 10:33
皆さん聞いてください!!!
単位はあきらめました!
ヒャッホー潔い俺、カコ(・∀・)イイ!


403 名前: デフォルトの名無しさん 投稿日: 02/01/26 10:42
努力しないのカコワルイ


404 名前: VB使い 投稿日: 02/01/26 10:53
どーでもいいや。腹減ったし。


405 名前: デフォルトの名無しさん 投稿日: 02/01/26 10:55
あと一日ってとこまで放って置いて何言ってんだオマエ。
そんなことしてたら何の言語やっても身につかんぞ。

MSDN引きながら死ぬ気でやってみろ。


406 名前: 393 投稿日: 02/01/26 11:13
うぅ。。自分が情けない。。
とりあえず就職を有利にする為にパール以外にも言語を覚えたいので
というか高い金出してVB6を買ってしまったので独学でこつこつ
勉強したいと思います。。レポートは無理です。初心者本を読めば読むほど無理です。。


407 名前: デフォルトの名無しさん 投稿日: 02/01/26 11:30
VBなんだからとりあえず見た目だけ作ってみれや。
コーディングする必要はないから。
それがVBのいいとこじゃねーか。

それが出来たら、まずどう動かそうか考えろ。
そうして、一番機能の少ないところからコーディングしろ。

初めに4つコマ描写するだけでもいーじゃねーか。
初心者本なんて一から読んでても始まらない。
とりあえず作り始めろ。MSDNで理解できないところが出てきたら
ここに書いて聞け。

明日の5時って17時?もしかしたらできるかもなー。


408 名前: VB最高 投稿日: 02/01/26 17:27
初心者なんですが、データコントロールを使ってエクセルのデータを
編集したいのですが、プロパティーのコネクトでエクセル8.0を選び
データベースネームでエクセルのデータを選びそのあとのレコードソースを
選択するところでエラーが出てしまします.これは何故ですか?


409 名前: 仕様書無しさん 投稿日: 02/01/26 17:47
>>408
Data Environment使え


410 名前: VB最高 投稿日: 02/01/26 20:23
Data Environment ってなんですか?
データコントロールのプロパティーにはなかったんですが。




411 名前: デフォルトの名無しさん 投稿日: 02/01/26 20:45
>>410


412 名前: デフォルトの名無しさん 投稿日: 02/01/26 20:46
>>410
メニューの[プロジェクト]の中にあるっしょ。
後はWebで調べれば一発さ。


413 名前: VB最高 投稿日: 02/01/26 21:06
web調べるというのはMSDNで調べるという事ですか?
私はMSDNはインストールしていないのでできません。
他に方法はないのでしょうか?
そもそも「組み込み可能なISAMドライバが見つかりません」というのはどういう意味ですか?


414 名前: デフォルトの名無しさん 投稿日: 02/01/26 21:17
メッセージボックスを表示して終わるプログラムってできないでしょうか?


415 名前: デフォルトの名無しさん 投稿日: 02/01/26 21:20
>>414
くめう゛ぁいいじゃん。


416 名前: デフォルトの名無しさん 投稿日: 02/01/26 21:20
>web調べるというのはMSDNで調べるという事ですか?
>私はMSDNはインストールしていないのでできません。
いやしくも、Windowsプログラマなら、MSDNはインストールしとくべきだし、
msdn.microsoft.com
www.microsoft.com/japan/developer/library/
のくらいはブクマクに入っているべきだ。
そういう意味で、アンタは最低。


417 名前: VB使い 投稿日: 02/01/26 21:42
>>413
Webで調べるっつーのはこういうこと。
http://www.google.co.jp/search?q=%91g%82%DD%8D%9E%82%DD%89%C2%94%5C%82%C8ISAM%83h%83%89%83C%83o%82%AA%8C%A9%82%C2%82%A9%82%E8%82%DC%82%B9%82%F1&hl=ja&lr=

あと、マルチはやめれ。

>>414
1.標準モジュールに以下を記述。
Sub Main()
MsgBox("ヽ(´ー`)ノ")
End Sub

2.プロジェクトの設定で、スタートアップをSub Mainに変更。

3.実行


418 名前: デフォルトの名無しさん 投稿日: 02/01/26 22:34
bmpなどの画像で透明色を使う方法がわかりません。
簡単な方法があれば教えてください。


419 名前: デフォルトの名無しさん 投稿日: 02/01/26 22:40
>>418
簡単な方法はありません。


420 名前: VB使い 投稿日: 02/01/26 22:44
>>418
好きなやつをどぞ。
1.XORとANDでマスクデータとカラーデータをBiBlt(PaintPicture)で転送。
2.AlphaBlendなどのAPIを使う
3.自前で計算w



421 名前: VB最高 投稿日: 02/01/27 16:20
エクセルのデータの取り込みがいまだに出来ません。誰か助けて―。
データコントロールのプロパティーの設定でいくらやってもできねえ。
Recordsourceで▼押したら「組み込み可能なISAMドライバは見つかりません」
とかでるし。マイクロソフトのサポートみてものってねえし。



422 名前: デフォルトの名無しさん 投稿日: 02/01/27 17:15
>>421
オートメーションでやれば? ISAMうんぬんは、Jet周りのインストールが
うまくいってない可能性あり。


423 名前: VB最高 投稿日: 02/01/27 18:09
>422
何度も申し訳ありませんが、オートメーションというのはどういう意味なのですか?
Jet周りのインストールがうまくいってないというのはどういう意味ですか?
質問ばかりで申し訳ありません.


424 名前: デフォルトの名無しさん 投稿日: 02/01/27 18:39
visual basic ってワードとかエクセルに付いてますか?


425 名前: デフォルトの名無しさん 投稿日: 02/01/27 18:53
>>423
http://www.microsoft.com/JAPAN/support/kb/articles/J052/6/03.asp
見れば大体見当つく。
ヘルプの検索をまともに出来ない奴は身につかない。
開発の質問てのは、〜〜してみましたがうまくいきません。ってのを言う。
〜ってなんですか?って聞かれても、大抵の人間は自分で調べろと言うぞ。
調べて理解できないなら聞け。

>>424
VBAなら使えるべ。




426 名前: 424 投稿日: 02/01/27 19:23
VBAとVBの違いって何でしょう?


427 名前: VB使い 投稿日: 02/01/27 19:26
>>426
VBのいいところ
●ネイティブコンパイルが出来る
●exe単体で配布できる(ランタイムもいるけどたいてい入ってる。)
●速い。
●自由度がVBAに比べると高い。

VBAのいいところ
●Officeのデータをいじりやすい。

てな感じ。

まあ大体一緒だけどねー。


428 名前: 424 投稿日: 02/01/27 19:33
大変参考になりました!
有難うございます!


429 名前: 投稿日: 02/01/27 20:01
>>426
VBAってのは、VB for Application。すなわち、(Excelなどの)アプリケーションに
依存したもの、ってこと。

アプリケーションがなければ、それ単体で動作することはできない。VBは、
それ単体で動作する。

そういう根本的な違いを理解しましょう。


430 名前: デフォルトの名無しさん 投稿日: 02/01/27 21:26
タイムスタンプを変更する処理が必要なプログラムを作っているのですが、
肝心の「タイムスタンプ変更」がどうやってやるのかさっぱり見当つきません。
そういうDLLあるいは関数のようなものは存在しませんか?


431 名前: 投稿日: 02/01/27 22:29
>>430
APIのSetFileTime()を使え


432 名前: デフォルトの名無しさん 投稿日: 02/01/27 23:42
>>431
ありがとう。setfiletimeでgoogle検索したらサンプル見付かったよ!


433 名前: デフォルトの名無しさん 投稿日: 02/01/28 02:41
次スレ立てるときに1のテンプレートに
 
「宿題・課題は自分でやりましょう」
 
っていれようよ


434 名前: デフォルトの名無しさん 投稿日: 02/01/28 02:51
プログラミング言語(Perl)の問題が分かりません!!    
誰か教えてください!!ちなみに問2−4(問題1ページ目)
の(c)と(d)はこう書かれています!!

(c)if /\. \. ./   (d)if /[a-zA-Z]+\$/

★問題1ページ目
http://isweb40.infoseek.co.jp/photo/moheaven/perl_1.jpg

★問題2ページ目
http://isweb40.infoseek.co.jp/photo/moheaven/perl_2.jpg

では宜しくお願いします!!明日の夕方5時頃までにお願いします!!


435 名前: デフォルトの名無しさん 投稿日: 02/01/28 02:56
BMPの拡張子をjpgにしただけのバカはperlなんて無理だろ。



436 名前: デフォルトの名無しさん 投稿日: 02/01/28 03:28
>>434
なぜPerlの問題をここで聞く?
ネタ?
 
この時期になると「明日の5時まで」って言うのが増えるね。


437 名前: デフォルトの名無しさん 投稿日: 02/01/28 03:34
>>436
こういうのに限って前日まで何もやってないんだよな


438 名前: 投稿日: 02/01/28 04:52
以前 classに関しての質問をさせていただいたものです。
classを理解していないと仕事はできないというようなことを聞いたんですが、
プロとしてやっていくにあたって classのほかに知っておくべきこととかありますか?


439 名前: デフォルトの名無しさん 投稿日: 02/01/28 05:24
>>434
プログラミング言語にPerlを採用している学校なんてさっさとやめちまえ。


440 名前: 投稿日: 02/01/28 08:23
>>438
「わからないこと」を自分で調べる能力。


441 名前: デフォルトの名無しさん 投稿日: 02/01/28 09:12
>438
せめて基本情報に出てくるレベルの会話ができる事。


442 名前: 名無しさんです 投稿日: 02/01/28 10:51
変数の文字列をshellで立ち上げたアプリ(メモ帳など)
に送る(貼り付け?)様にしたい時、shellの後にctrl+vを
sendkeyしてるのですが、一つ目が立ちあがった時は
うまく行くのですがアプリによっては二つ目以降の
ウインドウがアクティブにならずに貼り付け失敗して
しまいます。

何かウマイ方法(上とは全く別の方法でも可)は
ありませんか?


443 名前: デフォルトの名無しさん 投稿日: 02/01/28 10:58
sell FileName,vbNormalFocus
sleep 3000



444 名前: 442 投稿日: 02/01/28 11:38
>>443
3秒ですか。待ち時間は短くても大丈夫かな?
試してみます。


445 名前: デフォルトの名無しさん 投稿日: 02/01/28 12:26
>>379
Cを知ってると90%くらいの確率でこれをやってしまうと思われ
C
 int i, j;
VB
 ×Dim i, j As Integer
 ○Dim i As Integer, j As Integer
上の宣言だとiはVariant型になってしまう。気を付けてなー

>>374
なんで「灰色領域」が出ては駄目なのか小一時間(略
顧客がそれを直せと言ってるなら仕方ないが、自分で見た目が悪いと
思ってるだけなら、直す必要はないと思うがどうか?
ちなみに、Excelでさえ右端までスクロールさせると「灰色領域」が表示されるぞ
とりあえず出ない様に回避するには、
・右端の列の幅を、Spreadの内部幅 - 固定領域の幅に合わせる
のが確実だと思われ。
他に、表示されている列に合わせてSpread自体の幅を変えるプロパティだったか
メソッドがあった記憶があるけど、漏れは忘れたので調べてくれ。
無かったらスマソ



446 名前: デフォルトの名無しさん 投稿日: 02/01/28 14:10
Split関数を使って文字列を分割する際、スペースでもカンマでもタブであっても
区切りたく、またそれぞれの文字が複数あっても区切りたい場合どうしたらいいでしょうか



447 名前: デフォルトの名無しさん 投稿日: 02/01/28 15:04
>>446
split(replace(replase(str,vbtab,","),space(1),","),",")


448 名前: 446 投稿日: 02/01/28 17:22
>>447
ありがとうございます。
replaseという関数自体はじめて知りました。。。


449 名前: デフォルトの名無しさん 投稿日: 02/01/28 18:55
VBのコマンドボタンをクリックするだけで、
・HTMLファイルをNetscapeに関連づけ。
・標準で使うブラウザをNetscapeに。
・デスクトップのIEのアイコンを削除。
・IEのプロキシ設定を空白に。
みたいなことは出来ますか?なにせ、わけあってIEを使わせたくないのです。
バッチファイルみたいなのでやるべきでしょうか(やり方分かりませんが…)?


450 名前: デフォルトの名無しさん 投稿日: 02/01/28 19:07
>>449
レジストリを書き換えるだけだと思いますが


451 名前: 449 投稿日: 02/01/28 19:46
>>450
よろしければ、その方法を教えてもらえませんか?


452 名前: 投稿日: 02/01/28 19:55
何でも聞かないで、RegMonでも使って監視してみなよ。


453 名前: デフォルトの名無しさん 投稿日: 02/01/28 19:57
>>451
たとえば「IEのプロキシ設定を空白に」という部分は
拡張子がregのファイルを作って以下の内容をコピペ
(Windows2000の場合)

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"ProxyEnable"=dword:00000000
"ProxyServer"=""

↑最後に改行を忘れないように
あとはShellとかで"regedit /S xxxxx.reg"を実行する


454 名前: デフォルトの名無しさん 投稿日: 02/01/28 21:08
教えてください

どうしてそんなに知識を無料放出出来るのですか?



455 名前: デフォルトの名無しさん 投稿日: 02/01/28 21:09
>>454
些細な知識だから


456 名前: VB使い 投稿日: 02/01/28 21:16
>>454
VBだから

関係ないけどAPIMon.exeってXPで使えた人いる?


457 名前: デフォルトの名無しさん 投稿日: 02/01/28 22:23
>>101
戻り値の型が違う。


458 名前: デフォルトの名無しさん 投稿日: 02/01/29 00:09
>>454
それくらいの知識で金とれるかいw
2ch系プログラマのオレらにだってミジンコ並みのプライドはあるぞww



459 名前: デフォルトの名無しさん 投稿日: 02/01/29 02:05
>>454
暇つぶし。


460 名前: DOSマソ 投稿日: 02/01/29 05:57
すみません厨房質問です・・・
DOSプロンプトから起動できるVBアプリ作ったんですが(Command関数使って)
メッセージをDOSプロンプト内に表示する方法ってありますか?
普通にMSGBOX使うとDOSで動かしているのにいきなり別のウィンドウがでてきて
うざいんですが・・・


461 名前: 投稿日: 02/01/29 07:01
★浜崎あゆみ、ライブで足の不自由なファンを吊るし上げ★

人気歌手・浜崎あゆみが、ファンに暴言を吐いた。
最前列で座っている足の不自由なファンに対し、
「前の方、座らないで下さ〜い」「どう思う?座ってたよ今!」
「一番前で観てんのに座ってたよ〜?」「感じ悪いね〜」
と、そのファンに暴言の雨あられ。会場はあゆ支持の歓声を上げ、
ついにはそのファンはその場で泣き出してしまう。
あゆは気にせず、自分のニューアルバムの話を切り出した。
このファンは熱心なあゆファンで、当日も最前列に座っていた。

★実際の音声
http://www.geocities.co.jp/Milano-Cat/2976/ayu_CDL_MC.mp3(2.28MB)
http://www.geocities.co.jp/Playtown-Dice/5199/ayu_CDL_MC.mp3(78.8KB)

★実際の映像
ttp://isweb40.infoseek.co.jp/computer/imode85/cgi-bin/up/upload/009.mpg
(直リンだと見えないのでコピペして下さい)

詳しくはこちら↓
http://choco.2ch.net/news/
http://tv.2ch.net/ami/


462 名前: 投稿日: 02/01/29 08:38
>>460
これ、実は面倒くさい。リンクオプションを変えてConsoleアプリに
しちゃうって方法もあるけど、WSHで作るのが楽かな。



463 名前: DOSマソ 投稿日: 02/01/29 10:58
自己レス。
ConsoleWriteを使う方法がわかりました。
DOSマンセ(ボソ



464 名前: デフォルトの名無しさん 投稿日: 02/01/29 10:58
ある文字列の中に A が含まれているとして、これを B に変換したいです。
A は1文字であっても、 AAAAAA のように複数個連続していても B 1つにしたいです。
どうやったら簡単にできますか


465 名前: デフォルトの名無しさん 投稿日: 02/01/29 11:44
do while Instr(1,str,"AA")>0
str=replace(str,"AA","A")
loop


466 名前: 続き 投稿日: 02/01/29 11:45
str=replace(str,"A","B")


467 名前: 464 投稿日: 02/01/29 13:27
本当に簡単にできる方法ですね。
わたしはもっと長々書きました。


468 名前: デフォルトの名無しさん 投稿日: 02/01/29 13:37
どんなコードを書いたのか見てみたい


469 名前: デフォルトの名無しさん 投稿日: 02/01/29 13:37
VBからoutlookを起動し、添付ファイル付のmailを作成ってどうやればいいですか?


470 名前: デフォルトの名無しさん 投稿日: 02/01/29 13:40
VBからoutlook expressを起動し、添付ファイル付のmailを作成する方法を教えてください


471 名前: 名無しさん 投稿日: 02/01/29 13:57
Outlook なのか OE なのかはっきりせよ(w


472 名前: 469 投稿日: 02/01/29 14:08
すみません
MS-Outlookです


473 名前: デフォルトの名無しさん 投稿日: 02/01/29 14:11
VB6SP5+SQLServer2000SP1で開発する場合は、
MDACのバージョンは2.7で問題無しですか?
MDAC2.5ではいかんですよね?
教えてくん。


474 名前: 名無しさん 投稿日: 02/01/29 14:14
最新版入れ解きゃ問題ない>MDAC


475 名前: 名無しさん 投稿日: 02/01/29 14:15
CDO使えばできる>Outlook


476 名前: デフォルトの名無しさん 投稿日: 02/01/29 14:16
>474
ありがとうございます。
最新版入れときまっす。


477 名前: 469 投稿日: 02/01/29 14:35
すみません、CDOってなんですか?
MSDN検索してもわかりませんでした。


478 名前: デフォルトの名無しさん 投稿日: 02/01/29 15:07
アクセス2000が入ったマシンで開発したソフトを
アクセス97が入ったマシンで実行できますか

もちろんDBにアクセスを使っています


479 名前: デフォルトの名無しさん 投稿日: 02/01/29 15:09
VBでチョンボといったらズバリ何だと思いますか


480 名前: デフォルトの名無しさん 投稿日: 02/01/29 15:18
>>479
Option Explicit
を入れない


481 名前: デフォルトの名無しさん 投稿日: 02/01/29 15:23
DoEVENTS

魔界の入り口


482 名前: デフォルトの名無しさん 投稿日: 02/01/29 15:24
>478
Access2kに「旧バージョンへ変換」ってコマンドがあるから、
それを使用して変換すれば97でもOKだよ


483 名前: VB使い 投稿日: 02/01/29 18:26
>>478
VBは簡単だと心から思うこと


484 名前: VB使い 投稿日: 02/01/29 19:20
483間違い。>>479です。鬱氏。


485 名前: デフォルトの名無しさん 投稿日: 02/01/29 23:15
>>479
FormをFrom


486 名前: デフォルトの名無しさん 投稿日: 02/01/29 23:23
>>479
pりヴぁて



487 名前: 475 投稿日: 02/01/30 01:57
このあたりを参考にするとよい。英語ソース中心になっちゃうけど>CDO
http://www.outlookexchange.com/
http://www.google.com/search?q=CDO+Outlook&hl=ja&lr=


488 名前: 475 投稿日: 02/01/30 01:58
あ、だけどExchangeつかってなくてOutlook単体だったら
VBでOutlookのオブジェクトモデルつつけばもっと楽にできるはず。
スマソ当方Exchange経由での経験しかない>CDO


489 名前: 475 投稿日: 02/01/30 01:59
あ、あとメール送信オブジェクトってってセキュリティアップデートでかなり制約
かかってる。まあリサーチしてみ>CDO


490 名前: デフォルトの名無しさん 投稿日: 02/01/30 09:11
参照設定で別のソフトウェアのライブラリを参照してVBから動かしているとき、
呼び出したソフトの処理が終わっていない状態でVBの方のウィンドウをクリック
してりすると
「コンポーネントが応答しないため、この操作を完了できません。
[切り変え]を選択してコンポーネントをアクティブにしてから
問題を解決してください。」
というエラーダイアログがでて来ます。これが出ないようにはできませんか


491 名前: デフォルトの名無しさん 投稿日: 02/01/30 10:32
>490
ムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリ
リムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリム
ムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリ
リムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリム
ムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリ
リムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリム
ムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリ
リムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリムリム



492 名前: デフォルトの名無しさん 投稿日: 02/01/30 11:05
>>490
出さないようにはできないが、これでメッセージの内容を変える事は出来るよ

App.OleRequestPendingMsgText = "ちょっと待てや(゚Д゚)ゴルァ"
App.OleRequestPendingMsgTitle = "動かせません( ̄ー ̄)ニヤリ"
App.OleRequestPendingTimeout = 2000



493 名前: 490 投稿日: 02/01/30 12:17
そんなワザがあったんですか!!
それでも十分OKです。ありがとう


494 名前: 469 投稿日: 02/01/30 12:43
>475
ありがとうございます。
参考しにしてみます。


495 名前: 475 投稿日: 02/01/30 12:52
死ぬなよ>CDO


496 名前: デフォルトの名無しさん 投稿日: 02/01/30 22:06
TreeViewコントロールにエクスプローラー風にディレクトリを表示するコードを是非教えてください!
分かる方、よろしくお願いします。


497 名前: デフォルトの名無しさん 投稿日: 02/01/30 22:32
FORMがあって、その子FORMがあったとして、
ウインドウの後ろに隠れたりで、子FORMが画面から消えた時に
まだ生きているか知るにはどうしたら良いですか。


498 名前: デフォルトの名無しさん 投稿日: 02/01/30 22:33
がいしゅつかもしれませんが、、
コンパイルオプションの”ネイティブコードコンパイル”と”P-Codeコンパイル”の違いってなんでしょ?
”P-Codeコンパイル”でコンパイルしてたらまずい?


499 名前: デフォルトの名無しさん 投稿日: 02/01/30 23:47
>>497
今VBないから自信ないけどformsコレクションでいけるんじゃないかな




500 名前: デフォルトの名無しさん 投稿日: 02/01/30 23:49
>>496
海外のサイトにサンプルがある。
検索すれば見つかるけど、ソース長いよ。

>>497
Formsコレクション

>>498
P-Codeは、疑似コード(pseudo-code)のこと。CPUは直接実行できない。
ソースと機械語の中間だから、中間コードとも言われてた。

これに対し、ネイティブコードは直接実行できるから、速い。

VBはバージョン4ぐらいまでP-Codeしか吐けなかったから、
他言語ユーザからずっとバカにされてきた。
ふつうは何も気にしないで、ネイティブのままでオッケー。

現在あえてP-Codeにするメリットがあるとしたら、サイズが小さくなること。
リソースなしでもEXEで1MB越えたら、P-Codeにする余地はあるかもね。



501 名前: デフォルトの名無しさん 投稿日: 02/01/31 00:12
VBがネイティブコードで速いなんて思ってるやつは無知
VBは遅いのは外部ライブラリ呼び出しのため。

もちろんあえてP-Codeにすることもないがな。



502 名前: デフォルトの名無しさん 投稿日: 02/01/31 00:19
>VBがネイティブコードで速いなんて思ってるやつは無知
そだね。
ネイティブコードにして速くなるのは、主に数値演算処理の部分で
その速度差はほんとに微々たるものだから、相当ヘビーな数値計算でも延々させてないと
他の部分でのオーバーヘッドの影に隠れてほとんど差がでないよ。

>もちろんあえてP-Codeにすることもないがな。

P-Codeにするメリットは開発環境と同じ動作をすること。
ネイティブの場合は、開発環境と動作は同じではないので、
細々としたところで動作の違いがでることがある。
変な動作をするなと思ったら、P-Codeを試してみる価値あり。


503 名前: デフォルトの名無しさん 投稿日: 02/01/31 00:21
ぴーコードってなんか語彙が情けないんですが、
ひょっとして放送禁止でしたか?


504 名前: デフォルトの名無しさん 投稿日: 02/01/31 00:29
>>503
是。正式名称ティンココード。


505 名前: デフォルトの名無しさん 投稿日: 02/01/31 00:29
>>501
P-Codeの質問だったから、しょうがない。
CもVBもネイティブコードなのに、どうして速度が違うの?
って質問されたら、ふれたけど。

>>502
数値演算だけじゃなくて、配列の参照とかもかなり違う。

高速化のためトリッキーなコードを書いて、開発環境で確認。
自信を持ってコンパイルしたら、実際はほとんど効果がなかった(笑)。



506 名前: デフォルトの名無しさん 投稿日: 02/01/31 00:37
戻った?


507 名前: デフォルトの名無しさん 投稿日: 02/01/31 07:23
>>445

> ×Dim i, j As Integer
> ○Dim i As Integer, j As Integer
>上の宣言だとiはVariant型になってしまう。気を付けてなー

379ではありませんが、このワナにはまってました。
どうもありがとう。

どうりでString型なのにファイルからIPアドレスを読み込むと
192.168で切れてしまうわけだ・・・


508 名前: デフォルトの名無しさん 投稿日: 02/01/31 13:34
ApiのGetPrivatePlofileStringとかってByvalで値を渡すじゃないですか・
なんで変数に値が格納されるの?

Byvalって値変わらないんじゃないの?


509 名前: 投稿日: 02/01/31 14:56
>>508
ポインタの勉強をしましょう。


510 名前: デフォルトの名無しさん 投稿日: 02/01/31 15:38
>>479
>>486ワラタ
俺がよくやるのは えんぢf


511 名前: デフォルトの名無しさん 投稿日: 02/01/31 16:00
塩Dいf

スペースが入るから変換されるのよね


512 名前: デフォルトの名無しさん 投稿日: 02/01/31 16:03
>>509
( ゚Д゚)ハァ!!
Byvalは値渡しだろ?ポインタ関係ないじゃん。
Byrefなら解るけどさ。

#てめぇが勉強してこい猿


513 名前: 抵抗Mω ◆rbbbbbbg 投稿日: 02/01/31 16:03
どうやったらプロジェクトをEXEファイルにできるんですか


514 名前: 投稿日: 02/01/31 16:41
>>512
はぁ。Cの文字列ってわかる? 文字の配列を指すポインタなんだよ。



515 名前: デフォルトの名無しさん 投稿日: 02/01/31 16:50
>>512
MSDNライブラリで、以下の項目を読みませう
「DLL, DLL プロシージャに文字列を渡す」
理解できたら、DLL プロシージャに**を渡す」を全部読んでくれ・・・

>>514
それだけでは512には理解できないと思われ

>>513
[ファイル]−[****.exe の作成]をクリック
# ネタニマジレス カコワルイイ


516 名前: 関係ないが 投稿日: 02/01/31 16:50
>( ゚Д゚)ハァ!!
と( ゚Д゚)ハァ!?
些細に見えて実は結構大きな違いなんだな。
つか、上のは違和感ありすぎ。



517 名前: デフォルトの名無しさん 投稿日: 02/01/31 17:00
>516
昨日の祭り知らない?ネタ?


518 名前: 抵抗Mω ◆rbbbbbbg 投稿日: 02/01/31 17:15
>>515
それが選択不能になってます



519 名前: 投稿日: 02/01/31 17:20
>>515
だからポインタの勉強しないとね。一から教えてられんし。

>>518
VB5CCEだったりして・・・


520 名前: 抵抗Mω ◆rbbbbbbg 投稿日: 02/01/31 17:22
>>519
ふーん
やっぱり世の中タダは無いのね。

死のう


521 名前: デフォルトの名無しさん 投稿日: 02/01/31 17:23
>>518
他に書き忘れたことがあったら今のうちに全部書いときなさい


522 名前: 512ですが 投稿日: 02/01/31 17:30
>>515
ありがとうございます。

要するにbyValでもbyRefでもポインタを投げるのですね。
それでByRefで投げるとString型のヘッダ情報まで投げてしまい、
結果としてString型を壊してしまうので文字情報のポインタのみを
投げるByValを使う。というように理解しました。

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



523 名前: デフォルトの名無しさん 投稿日: 02/01/31 17:36
>>511
あそっか。
ENDIFって打っても勝手にスペース入れてくれるから
俺はいつもスペース入れないで打ってる。
って人あまりいないよね、やっぱ。



524 名前: >>522 投稿日: 02/01/31 18:04
>値渡し
>プロシージャに引数として変数を渡す方法の 1 つ。
>値渡し (値による引き渡し) で変数をプロシージャに渡すと、
>元の変数のコピーが作成され、呼び出されたプロシージャに渡されます。
>したがって、呼び出されたプロシージャ内で渡された変数の値を変更しても、
>呼び出し側のプロシージャが参照する元の変数の値は変更されません。

VB厨はコレだから困る


525 名前: 投稿日: 02/01/31 18:09
>>524
API呼び出しのときと、そうでないときでは話が違うのよ。


526 名前: デフォルトの名無しさん 投稿日: 02/01/31 19:40
ログ見たんですけど、
Accessのテーブルの存在を確認するのがありましたが、
同様にフィールドの存在を確認する方法を教えてください。
お願いします。


527 名前: 投稿日: 02/01/31 20:31
>>526
どんな方法使ってるかわからないけど、DAOならFieldオブジェクトで。
つか、Select * でレコードセットを取得して、レコードセットの中の
フィールドを確認するのが楽かも。


528 名前: 526 投稿日: 02/01/31 20:55
>>527
どうもです。
こないだ始めたばっかりで、ADOの本見ながらやってます。
AccessにはSQLでレコードセット取得してやって…ると思います(汁
SELECT * FROM tableで全部取得するのは理解出来ますが、
その状態で現在、レコードセットが握ってるフィールドが何と何か
知る術が分かりません…。


529 名前: デフォルトの名無しさん 投稿日: 02/01/31 22:30
クラス内にタイマイベント書けないっすか?


530 名前: デフォルトの名無しさん 投稿日: 02/01/31 22:41
dim TBLNames() as string
dim i as long
dim Max as long
mAX=Adores.Fields.count-1
redim TBLNames(MAX)
for i=0 to MAX
TBLNames(i)=Adores.Fields(i).Name
next i


531 名前: デフォルトの名無しさん 投稿日: 02/01/31 23:00
13は今何処にいるのだろう...
[メアド必見]
http://pc.2ch.net/test/read.cgi/prog/1012381593/l50


532 名前: デフォルトの名無しさん 投稿日: 02/01/31 23:53
ねーねー
今知ったんだけど、VB5CCEってゆーのを使うと、タダでVBの勉強ができるらしいんだ。
これってどうよ?EXEは作れないけど。


533 名前: デフォルトの名無しさん 投稿日: 02/02/01 00:01
>>532
SPをダウンロードして、ゴニョゴニョする(した)。



534 名前: デフォルトの名無しさん 投稿日: 02/02/01 01:09
アンチMSでない先達の方々限定で質問

フォームを破棄したいんだが、こんなカンジで

unload MyForm
set MyForm = Nothing

コレよくサンプルとかでみかける書き方だと思うのだ。
でもUnloadイベントプロシージャとかQuery_Unloadイベントプロシージャで
Cancel=Trueで返したらUnloadされず、参照だけが解放されちゃうよね。
ミステリーでナンカ危険。
どうしたらアンロードを確実にやれる?

Unloadやってみてformsの中を確認ってのはなし。汚エから。
環境はVB6でいいや。さあ


535 名前: デフォルトの名無しさん 投稿日: 02/02/01 02:26
>>522
>要するにbyValでもbyRefでもポインタを投げるのですね。
あくまでByValは値渡し、ByRefは参照渡し。

ByVal指定のときは、型が違っても変換可能な型なら暗黙に変換してくれます。
UNICODEのBSTR型からSJISのLPTSTR型へ変換してくれてるのさ。



536 名前: デフォルトの名無しさん 投稿日: 02/02/01 02:27
>>529
>クラス内にタイマイベント書けないっすか?

フォームからTimerコントロールを渡してやる形でよければ、書けるよ。

Private WithEvents m_objTimer as Timer

Public Sub SetTimer(ByRef objTimer As Timer)
Set m_objTimer = objTimer
End Sub

Private Sub m_objTimer_Timer()
'ここに記述
End Sub

>>534
>unload MyForm
>set MyForm = Nothing

この記述はVB4時代の不具合回避への遺物だと思われ。
VB5以降では不要。

>Cancel=Trueで返したらUnloadされず、参照だけが解放されちゃうよね。
set MyForm = Nothing
この記述をUnloadステートメントの直後じゃなく、
Unloadイベントに書けばいいだけかと。

というか古いサンプルで見かけるものも普通そう書かれているはずだが・・・。
要は、そのサンプルが間違いだな。


537 名前: デフォルトの名無しさん 投稿日: 02/02/01 17:17
Excelのシートをスクロールさせるには、どうしたらよいのでしょうか?



538 名前: デフォルトの名無しさん 投稿日: 02/02/01 17:17
VB組み込みのDrive&Dir&FileListBoxって使えないですよね。
もっと良いコントロール探しているのですが、
皆さん、これ使ってるとかこれオススメとかありませんか?



539 名前: デフォルトの名無しさん 投稿日: 02/02/01 17:24
DBコンボの「▼」をクリックしたときに出る
ムダな空白行を取り除くにはどうしたらいいでしょう。
カッコ悪いことこの上ないです。
よろしくお願いします。


540 名前: VBマスター 投稿日: 02/02/01 17:44
正直VBなんて製品版買ったってたいしたこと出来ないから
フリーのVB5CCEで十分。
金はもっと有意義なことに使おう。
http://www.microsoft.com/JAPAN/developer/vbasic/Controls/Download.htm



541 名前: うぐぅ 投稿日: 02/02/01 19:01
>>538

コモンダイアログw


542 名前: デフォルトの名無しさん 投稿日: 02/02/01 20:50
>>540
きみがへたれなだけ。


543 名前: デフォルトの名無しさん 投稿日: 02/02/01 22:49
なんでVB5なのですか
違いが解らないのですか
それでマスターなのですか
恥を知りませんか
レスは糞でもいいのですか
ネタですか
楽しいですか
何歳ですか
もっと控えめになれませんか
死んでもらえますか
ダメですか
そこをなんとかお願いできませんか



544 名前: デフォルトの名無しさん 投稿日: 02/02/01 22:55
>>536
>>Cancel=Trueで返したらUnloadされず、参照だけが解放されちゃうよね。
>set MyForm = Nothing
>この記述をUnloadステートメントの直後じゃなく、
>Unloadイベントに書けばいいだけかと。

残念。ここでいうMyFormはデフォルトのフォームじゃなくて
set MyForm = new MyHome
で生成したものなのだあ。
よってもし、おっしゃるやり方をUnloadイベントプロシージャでやるとなると
set Me = Nothing
となる。やってみると当然だがだめ。
一応ひっかけたつもりはなかったがゴメン
他の回答ないか〜。

次の話題
毎度悩むのだが
フォームの中に閉じるとか終了ボタンとかを設けるというのは
業務プログラムのデフォのデフォだと思うのだが、
これらのボタンと同じことをシステムメニューの閉じるでもやりたい。
でもできない。システムメニューの閉じるはUnload Meとでも直結しているかの
振る舞いだからなー?

大抵散々プログラムをこねくり回した挙句に
システムメニューの閉じるを使用不可とかにしている。でもAPIのお世話に
なっている時点で負け決定な上に、カッコー悪い。いかにもブイビーってカンジ。
他の衆ラはどやってんの?


545 名前: 環境はVB6SP3@今はJavaの仕事中 投稿日: 02/02/02 00:02
漏れならプロパティ追加して回避する
MsgBoxで「はい」を押したときにTerminateが動いているから大丈夫だと思う
っていうか、Set MyForm = Nothing しなくてもきちんとTerminateは流れるなぁ・・・
まぁ、おまじない程度に考えて、あまり気にしないほうが(・∀・)イイ!
むしろ、Form上の何らかのボタンで画面が閉じられて、MyFormがNothingになったかどうか
IsNothing(MyForm)でチマチマ調べるのがメンドクセーと思う

--- Form1.frm ---
Option Explicit
Dim mblnNoExit As Boolean
Public Property Get NoExit() As Boolean
 NoExit = mblnNoExit
End Property
Private Sub Form_Load()
 mblnNoExit = True
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
 If MsgBox("--- 終了 ---", vbYesNo) = vbYes Then
  mblnNoExit = False
 Else
  MsgBox "--- 再開 ---", vbCritical
  Cancel = True
 End If
End Sub
Private Sub Form_Terminate()
 Debug.Print "Terminate"
End Sub

--- Module1.bas ---
Option Explicit
Sub main()
 Dim MyForm As Form1
 Set MyForm = New Form1
 MyForm.Show
 Unload MyForm
 If Not MyForm.NoExit Then
  Set MyForm = Nothing
 End If
End Sub


546 名前: 538 投稿日: 02/02/02 13:11
>>541
ダイアログ形式ではなくてフォームに組み込みたいんですよ。
Exolorerのような表示ができるocxはフリーソフトで見つけたのですが
もっと機能が充実してる(フォルダの追加等ができたり
特定の拡張子を含むフォルダのみを表示できたり)のは無いかなと思って。



547 名前: 475 投稿日: 02/02/02 15:56
そそのOCXホシイ!
どこでダウソできますか?


548 名前: デフォルトの名無しさん 投稿日: 02/02/02 16:05
う〜ん。やはりフォームの動きを分かっていない人が多そうだな。
VB初心者質問スレなのでしかたないのか。

本当はちゃんと説明したいとこなんだが、こんな所に書ける量じゃ
ないのでヒントだけ。

フォームはクラスとほぼ同じ動きをする。
本来フォームはSet MyForm = New Form1として作成する。
Form1.Showが動くのは暗黙にPublic Form1 As New Form1という宣言があるため。
フォームはロードされるとFormsコレクションに参照が追加される。
フォームはアンロードされるとFormsコレクションに参照が削除される。
Loadが発生するのはフォームがロードされたとき
Unloadが発生するのはフォームがアンロードされたとき。
Unload Form1はForm1の暗黙のインスタンスをアンロードしている。
Unload MeはForm1のインスタンスである自分をアンロードしている。
Set Form1 = Nothingは暗黙の変数にNothingを代入している。
Set Me = NothingはMeは変数ではないので意味ない。
フォームのプロパティまたはフォームのコントロールを参照するとロードされる。
Initializeが発生するのはインスタンスが作成されたとき。
Terminateが発生するのは参照している変数がすべてなくなったとき。
スコープを抜けた変数は自動的にNothingになる。
Nothingの変数にNothingを代入しても何も起こらない。
変数にNothingを代入しない限り勝手にNothingになることはない。
アンロードと参照の解放は違う。
Formsの中にはForm1が二つ以上入ることがある。

MSDNの「Visual Basic フォームの有効期間」とかFormsコレクションとか
クラスについて調べると良い。

これらを理解すると
unload MyForm
set MyForm = Nothing
がどういう意味なのかわかるよ。



549 名前: デフォルトの名無しさん 投稿日: 02/02/02 18:30
>>548
545じゃダメなのか




550 名前: 548 投稿日: 02/02/02 18:40
ダメとは言わない。
だがNoExitにかかわるコードは意味が無い。
全部なくしても同じように動くし、
If Not MyForm.NoExit Then
  Set MyForm = Nothing
End If

Set MyForm = Nothing
と書き換えても問題ない。

# と思う。
# >>545>>544の答えとして書いていると思うが、ちょっと
# 理解できなかった。間違って解釈してたらゴメン。



551 名前: デフォルトの名無しさん 投稿日: 02/02/02 19:13
つかさ、NoExitってFormのパブリック変数だべ?
なんでFormが解放されてからも参照が続くのか理解できんのだが。

俺は
for Each frmObj In VB.Forms
Unload frmObj
next
Set MyForm=Nothing

ってやるかも。


552 名前: 548 投稿日: 02/02/02 19:25
>>551
アンロードとNothingを代入するのは意味が違う。
Nothingを代入してもFormが消えるとは限らない。
Formが消えるのは、Formsも含めて、全ての参照がなくなったとき。
アンロードとはFormsから参照を削除すること。
Unload MyFormでアンロードされてもMyFormは生きている。
MyFormアンロードされて、MyFormがNothingになるかスコープから
削除された時点でFormは消える。



553 名前: デフォルトの名無しさん 投稿日: 02/02/02 19:48
1000レコードが格納されたリザルトセットが
存在するとして、そのリザルトセットの
内容をそのまま、コレクションオブジェクトに再格納します。
その場合、元となったリザルトセットと1000レコードが格納されたコレクションは
どちらが、メモリを多く消費しているのでしょうか?
リザルトセットは、内部にヴァリアントを多く抱えているので、
メモリ消費量が大きいような気がしますが。
このような、メモリ使用量を測定するようなAPIもしくは方法を探しています。
DBから取得したレコードはやはりコレクションに格納したほうがいいのでしょうか?
リザルトセットのままでもいいような気がするのですが。
1000レコード中か目標の1レコードを取得するのにかかる
時間は、やっぱりコレクションのほうが早いのでしょうか?
また、コレクションは、JAVAのようにインデックスに
ハッシュテーブルを作成しているのですか?

色々聞いてしまって申し訳ありません。


554 名前: デフォルトの名無しさん 投稿日: 02/02/02 20:38
AA〜ZZまでの全ての文字列のパターンを組み、
それひとつひとつをCSVに追加保存したい。

VBでこれをやるのはムリですか?


555 名前: デフォルトの名無しさん 投稿日: 02/02/02 21:32
>>554
2重forで実現可能です。



556 名前: デフォルトの名無しさん 投稿日: 02/02/02 21:54
VBでやっても無駄コードが増えるだけ


557 名前: 質問者っすけど... 投稿日: 02/02/02 22:32
>>548
>MSDNの「Visual Basic フォームの有効期間」とかFormsコレクションとか
>クラスについて調べると良い。
>
>これらを理解すると
>unload MyForm
>set MyForm = Nothing
>がどういう意味なのかわかるよ。

いやMSDNのそれはヒントがないか何度も読みなおしたのだが、
オレ的にはどうしようもないとしか読めなかったよん。
読解力が不足している?

というか548さん的には
>unload MyForm
>set MyForm = Nothing
においてunloadイベントをキャンセルした、させられたときに
その直後のset..Nothingによって、フォーム資源は解放されないまま
制御のためのインスタンスへの参照が解放されてしまう非常事態を回避スル?

ウンチクとか仕組みとか技術解説は模範回答の後希望
つーか、初心者連中とかハッキリ書いちゃうところがドキュソだな。


558 名前: デフォルトの名無しさん 投稿日: 02/02/02 22:48
「goo」で全くレスがつかなかった質問です。

入力されたパスワードを暗号化するのに、MD5やSHA-1などの
一方向性ハッシュ関数を使いたいと思っています。

MD5に関してはC言語のソースがRFCで公開されているのですが、
正直言って読んでもさっぱり解りませんでした。

VBから利用できるハッシュ関数のサンプル・DLLなど公開されているところは
ありませんか?


559 名前: デフォルトの名無しさん 投稿日: 02/02/02 22:49
無い。


560 名前: デフォルトの名無しさん 投稿日: 02/02/02 23:09
>>559

          / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          | そんなことゆわずにお願いしまプ〜
   Λ_Λ  ∠___________
  (;´Д`)
 ( ( つ ⊂ ))
   〉 〉く く
( (__)(_.)) ...ガクガク


561 名前: デフォルトの名無しさん 投稿日: 02/02/02 23:23
>>558
32文字とかではダメ?
google「VB ハッシュ関数」の1番目。



562 名前: デフォルトの名無しさん 投稿日: 02/02/02 23:30
ROMから吸い出したデーターを画像表示させたいんだが
Line文章で色つき箱を書いたんだがとても遅く
実用に耐えられない・・・。
できれば、ビットマップとして扱いたいんだが・・・。



563 名前: デフォルトの名無しさん 投稿日: 02/02/02 23:39
>>562
BoxFullのLineでやった?

それと、裏画面に描いて、オモテに転送するっていうのは常識だと思うけど。
あるいは、描画中リフレッシュをやめるか、回数を間引きする。




564 名前: デフォルトの名無しさん 投稿日: 02/02/02 23:49
>>563
その通り!!
裏画面で書いて表に転送するのは常識ですか・・・。
VBやって3週間、奥深いねぇー。
うーん、難しい



565 名前: デフォルトの名無しさん 投稿日: 02/02/02 23:53
>>564
業務系じゃなくて、ゲーム系の常識ね。すまそ。

でも、VBのLineBFはそんなに遅くないはずなんだけど。
おかしいなあ。まさかTwips座標系でやってるとかはないよね。
最小限再現できるコードを見せてもらうほうが話は早いんだけど。



566 名前: デフォルトの名無しさん 投稿日: 02/02/02 23:53
>>561
ありがとうございます!
blowfishモジュールも一緒にもらってきました。


567 名前: デフォルトの名無しさん 投稿日: 02/02/03 00:01
>>565

Dim bydata() As Byte
Dim g As Integer

Open "c:\rom\ep-rom.bin" For Binary As #1
ReDim bydata(1 To LOF(1))
Get #1, , bydata()
Close #1
x = x + 3
kosu = kosu + 1
Picture1.Line (75 * kosu + tate, 75 * yoko)-(75 * kosu + tate + 50, 75 * yoko + 50), RGB(bydata(-2 + x), bydata(-1 + x), bydata(0 + x)), BF
If kosu = 16 Then kosu = 0: yoko = yoko + 1
If yoko = 16 Then kosu = 0: tate = tate + 500: yoko = 0

こんな感じ・・・・。



568 名前: デフォルトの名無しさん 投稿日: 02/02/03 00:13
>>
右下角の座標は、-Step(50,50)のほうがいいね。
でも、本当に51×51ドットサイズなの?
RGB値は、ユーザ定義型にすれば一気に読めるかなあ。
そんなことで速くはならないけど。



569 名前: デフォルトの名無しさん 投稿日: 02/02/03 00:16
>>568
ありがとう!!
うーん、ユーザー定義型ですか?
それってなに?
自分が想像するにromには色情報がはいっていると見ているんです。
多分256色・・・。



570 名前: デフォルトの名無しさん 投稿日: 02/02/03 00:19
>569
VBのユーザ定義型は、Cで言うと構造体のこと。
一度に3バイト代入できても、見た目がすっきりするだけかな。

上のコードが何回ループするの?
ROMってゲーム機のROM?




571 名前: デフォルトの名無しさん 投稿日: 02/02/03 00:21
>>570
ループはそうだな1Mビット程度
パチンコの画像ROMなんだな・・・。




572 名前: デフォルトの名無しさん 投稿日: 02/02/03 00:33
>>571
それなら、メモリ上にDIBビットマップ配列を作って、一気に転送すると
速いけど、さすにがVB歴3週間ではちょっと面倒かも。
でも、コンバートは一度やればいい(?)から、時間かかってもいいじゃん。



573 名前: デフォルトの名無しさん 投稿日: 02/02/03 00:36
>>572
ちなみにどのようにすればいいのかな?



574 名前: デフォルトの名無しさん 投稿日: 02/02/03 00:41
1Mビット=128Kバイト
RGB各1バイトとすると、3で割るから4500万回ループ?
Refresh回数を1000回に1回とかに減らすと劇的に速くなるよ。



575 名前: デフォルトの名無しさん 投稿日: 02/02/03 00:43
>>573
このページを参考に。
ttp://www.surveytec.com/prog/vb/kouza2/chap2.html



576 名前: デフォルトの名無しさん 投稿日: 02/02/03 00:43
>>574
分からないけど、ありがとう!!
そろそろ寝ます。



577 名前: デフォルトの名無しさん 投稿日: 02/02/03 00:44
パチンコの画面は小さいはずだから、やっぱりVBのスケールモードが
PixelじゃなくてTwipsになってるんじゃないのかな?



578 名前: デフォルトの名無しさん 投稿日: 02/02/03 00:49
>>576
BMPの内部格納はふつうと逆で、右下から左上の順だからね。


579 名前: デフォルトの名無しさん 投稿日: 02/02/03 01:08
よく分からんけど、Formもプロセス終了時には開放されるんでしょ。
Endってかいとくのは、ダメ?


580 名前: デフォルトの名無しさん 投稿日: 02/02/03 01:15
>>553
実際に情報を格納しておくのは、
コレクションじゃなくて、クラスのインスタンスでは?
コレクションは、インスタンスへの参照を保持しているだけ。

メモリーの使われ方は、インスタンスの配列を作って、
そのアドレスを表示させれば分かると思うけど、VarPtrでできるかなあ。
あとは、パフォーマンスモニタで、Process - Private Bytes - そのExeのプロセス
で多少はメモリーの使われ具合が把握できる。

コレクションのキーの実装は、たぶんハッシュだと思うが、
速いかどうかは、自分でテストしてみるのが一番良い。


581 名前: 580 投稿日: 02/02/03 01:30
VarPtr(オブジェクト型)をやっても、参照のポインタがとれるだけでした。
つまり、4バイトずつ、ずれていくだけ。


582 名前: oyj 投稿日: 02/02/03 01:37
このたび独自のブラウザを作成したいと思い
ネットのさまざまな場所で調べましたが、
IEの文字のサイズを変更する方法と
お気に入りを操作する方法がわかりませんでした。

IEの文字のサイズを変更する方法ですが
ExecWBを使って変更しようとしましたが
現在のサイズを取得することしかできませんでした。

お気に入りの操作は[Favorites]フォルダを見つけることで
独自ででも作れるのですが何かもっとスマートな方法があれば
知りたいと思っています。

知っている方がいましたら教えてください。

開発環境
Win98SE
VB6LE
IE5.00


583 名前: デフォルトの名無しさん 投稿日: 02/02/03 02:02
IEのコンポーネントを使うだけで、独自のブラウザーか、おめでてーな


584 名前: oyj 投稿日: 02/02/03 02:30
あくまでも「目的ができたらそれで良し」なもんで。


585 名前: デフォルトの名無しさん 投稿日: 02/02/03 08:19
1.23456789012346E+19という数値を"12345678901234567890"という文字列に
変換するにはどうすればよいのでしょうか。


586 名前: 585 投稿日: 02/02/03 09:54
すいません、頭の悪いことを口走りました。ごめんなさい。


587 名前: デフォルトの名無しさん 投稿日: 02/02/03 10:12
>>558
md5 dll vb でGoogle検索しる。
手っ取り早く言うとココだな。
http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html


588 名前: デフォルトの名無しさん 投稿日: 02/02/03 12:13
>このたび独自のブラウザを作成したいと思い
> ネットのさまざまな場所で調べましたが、
> IEの文字のサイズを変更する方法と
> お気に入りを操作する方法がわかりませんでした。
donutのソース嫁。


589 名前: oyj 投稿日: 02/02/03 14:03
DonutはVC++で作られていますが
それがVBででも生かせすのですね。
アドバイスありがとうございます。


590 名前: デフォルトの名無しさん 投稿日: 02/02/03 14:40
>>587
どうもありがとうございました!
早速使用してみましたが・・・
>>561のモジュールと結果が違うのはどうしてなんでしょう?


591 名前: デフォルトの名無しさん 投稿日: 02/02/03 18:25
>>590
561のやつにはバグがある予感。
とゆーか、10進数で出てくるな…。DLLの方は16進数だ。
MD5って16進数表現だったような気が。


592 名前: デフォルトの名無しさん 投稿日: 02/02/03 19:25
>>591
作者氏は「忠実に移植」したと言ってますが。。。

>MD5って16進数表現だったような気が。
なるほど、DLLの方が信頼性高いかな?
システムフォルダにコピーする必要があるのが残念ですが


593 名前: デフォルトの名無しさん 投稿日: 02/02/03 21:09
msgboxを表示させるときにbeep音がなりますけど、あれって鳴らさないようにすることって
できますか?


594 名前: デフォルトの名無しさん 投稿日: 02/02/03 22:30
VCCE5を勉強したいのですが、これってVB5の本でいいのですか?
それと、VB.NETはまだ無料でダウンロードできますか?



595 名前: デフォルトの名無しさん 投稿日: 02/02/03 22:38
>>593
耳せんをする


596 名前: デフォルトの名無しさん 投稿日: 02/02/03 22:44
レジストリいじればなんとかなった気が。


597 名前: デフォルトの名無しさん 投稿日: 02/02/03 22:57
>>592
いま簡単に検証してみたけど、処理そのものはあってるよ。
ただ、出力が10進数になってるだけで。
451行目を
strMD5 = strMD5 & Right("0" & LCase(CStr(Hex(bytRV(j)))), 2)
にとすれば、RFC1321の奴と同じ出力が得られるよ。
# HexとLCaseかませただけね

>>591
MD5の出力は本来は「128bit長の整数」で、
一般的に見る形式はそれを16バイトの配列と解釈し、
個々のバイトを16進数表記にした文字列をして表現してるだけ。
だから、10進数で表現してもそれはそれで間違いじゃないので念のため。



598 名前: デフォルトの名無しさん 投稿日: 02/02/03 23:07
>>582
IE の shdocvw.dll にある DoAddToFavDlg と DoOrganizeFavDlg



599 名前: デフォルトの名無しさん 投稿日: 02/02/03 23:43
>>597
> にとすれば、RFC1321の奴と同じ出力が得られるよ。

おお、確かに!ではこちらを使わせていただこう。
勉強になりました。


600 名前: デフォルトの名無しさん 投稿日: 02/02/04 02:02
>>593
よくある方法として、MsgBox を改造したい場合
Form で自作する。


601 名前: 593 投稿日: 02/02/04 02:13
>>600
やっぱり素ではできないんですね。
自作することにします。
ありがとうございました。


602 名前: デフォルトの名無しさん 投稿日: 02/02/04 05:29
友達のVB(プロフェッショナル版・ライセンス取得)でソフトを作成して、
友人の名前ではなく自分の名前でフリーソフトとして公開したら違法ですか。
(あくまで、私の名前で)
その場合、私、友人、両方、誰が悪人になりますか?
開発した環境は友人のパソコンです。友人に許可も取っています。
そのソフトからVBのIDやライセンス保持者の名前はわかるんでしょうか。
友人は、俺が許可しているんだから大丈夫といっていますが怪しいです?
知りたいのは、IDが作成ソフトから確認できるのかということです。



603 名前: デフォルトの名無しさん 投稿日: 02/02/04 05:55
>>602
例えば他人のパソコンを借りて作成しても
著作権は作った人のもの。だから別に関係無いんじゃね?


604 名前: デフォルトの名無しさん 投稿日: 02/02/04 06:07
>602
たしかIDで同定することは可能だったと思う。
ただし、フリーソフトのIDをいちいち調べて、登録ユーザかどうか
チェックすることはしない。ウィルスとかでない限り。

まあ、使用許諾違反であることは間違いないから、
実名ではなく、ハンドルで公開したら?




605 名前: ミタカ 投稿日: 02/02/04 09:21
Function abc(i as integer) as String
      Select Case i
      Case 1  abc = “いし”
      Case 2  abc = “はさみ”
      Case 3  abc = “かみ”
      Case Else  abc = “???”
       End Select
End Functionの時、
abc(0),abc(1),abc(2),abc(3),abc(4),abc(5),abc(6),abc(7),abc(8),abc(9)
のように値を設定した時の関数の値を教えてください。


606 名前: デフォルトの名無しさん 投稿日: 02/02/04 09:25
>>605
あちこちにおんなじこと書くなよ。
自分さえ答えがよければそれでいいのか?
一回質問したら、何時間か待ってろよ。


607 名前: デフォルトの名無しさん 投稿日: 02/02/04 09:29
VB6.0を使って人達へ、
VB.NETになって泣くなよ。

言語そのものじゃなくて、プログラミングとその概念を学習しとけよ。



608 名前: デフォルトの名無しさん 投稿日: 02/02/04 09:50
>>605
自分でやってみれば?


609 名前: デフォルトの名無しさん 投稿日: 02/02/04 09:53
>607
.NETになって泣く人はVB6.0を使えてない人だし。
ってか初心者スレなんで煽りはご勘弁願いたい


610 名前: デフォルトの名無しさん 投稿日: 02/02/04 10:33
>>607
VBとVC++を使ってる俺はどうしたらいいですか?


611 名前: デフォルトの名無しさん 投稿日: 02/02/04 10:45
>>602
それが違法だってんなら友達の家でゲームやるのも違法になるのでは。
VBを入れてるパソが一台だけなら2人同時には使えないわけじゃん。
俺は問題無いと思うけど?
そのVBを自分のパソに入れて使ったら間違いなく違法だけど。

所有する全てのマシンにソフト入れてるけど
同時使用数を調べてその数だけライセンス買ってるって会社もあるよ。


612 名前: デフォルトの名無しさん 投稿日: 02/02/04 10:54
>>547 ここです。
SHTree エクスプローラと同じツリー表示を得るためのActiveXコントロール
http://www.vector.co.jp/soft/win95/prog/se112351.html

で、>>538に答えてくれる人!だれかいませんか・・・?



613 名前: デフォルトの名無しさん 投稿日: 02/02/04 14:38
VBを覚えたらバイナリエディタなどで表示される内容を
理解できますかいな?


614 名前: デフォルトの名無しさん 投稿日: 02/02/04 14:48
>>613
???
VBとは関係ないんじゃない?


615 名前: デフォルトの名無しさん 投稿日: 02/02/04 15:05
>>613
EXEやDLLなら86系の機械語を勉強せれ
JPG,GIFとかなら規格書を読め
XLSやPDFならソフト作ったメーカーに聞け


616 名前: デフォルトの名無しさん 投稿日: 02/02/04 16:03
>>615
>XLSやPDFならソフト作ったメーカーに聞け
本当に教えてくれるの?


617 名前: 投稿日: 02/02/04 19:38
Excelのフォーマットなら過去に公開されてるし、PDFもSDKがある。


618 名前: デフォルトの名無しさん 投稿日: 02/02/04 20:58
>>616
615は無料で教えてくれるとは言ってないw
MSを買い取ればマンツーマンで教えてもらえるんじゃない?ww




619 名前: デフォルトの名無しさん 投稿日: 02/02/04 22:37
>>611
>それが違法だってんなら友達の家でゲームやるのも違法になるのでは。

使用許諾契約書(LICENSE.TXT)を読みなさい。
このライセンスはMSと客の間の契約だから、他のソフトウェアはまったく無関係。

>VBを入れてるパソが一台だけなら2人同時には使えないわけじゃん。

ちなみに、普通に市販されているVBのライセンス形態は1人の人に対して
ライセンスを許諾している。だから、何台にでもインストールしてよいが、
使用できるのはただ一人。同時だとか同時じゃないとかは関係なし。

>俺は問題無いと思うけど?
(藁)

>所有する全てのマシンにソフト入れてるけど
>同時使用数を調べてその数だけライセンス買ってるって会社もあるよ。

当然、ライセンス形態が違えば、また話は違ってくる。



620 名前: 611 投稿日: 02/02/05 09:25
使用許諾契約書(LICENSE.TXT)を読みなさい。

 読みたくない(W
 わかりやすく要約してくれてありがと。
 そっかー、何台にでもインストールしていいんだ。
 いい事聞いた。



621 名前: 助けて@女性社員 投稿日: 02/02/05 10:53
VB6でリンカに送られてるコマンドラインを
「/SUBSYSTEM:windows,4.0」からこれを「/SUBSYSTEM:CONSOLE」にしろといわれたのですが
これってどうやるのでしょうか?


622 名前: 投稿日: 02/02/05 11:28
>>621
Link.exe とかって名前の実行ファイルを作って、それから真のリンカ
を呼び出せばいいんじゃない?



623 名前: 投稿日: 02/02/05 11:34
はじめまして。
今、DOSプロンプトから起動するプログラムを作っているのですが、
VBからDOSプロンプトへエラーメッセージなどの文字を出力する
方法がわかりません。
どなたか教えていただけないでしょうか?


624 名前: デフォルトの名無しさん 投稿日: 02/02/05 11:40
>>621
API使ってる?WirteConsoleとか。
WriteConsoleだったら、lpBufferに格納してるのが出力されてると
思うんですが。

的はずれだったらスマン。


625 名前: 投稿日: 02/02/05 12:12
どうもーつかってますー
だけど新しいコンソールウィンドウが開いちゃうんですよ・・・

今使っているDOS窓でメッセージ表示させたいのですが


626 名前: 投稿日: 02/02/05 12:19
>>623 >>621の方法を使うか、VBSでも使え。


627 名前: デフォルトの名無しさん 投稿日: 02/02/05 13:46
何の雑誌だったかわすれたけど
VBのアカデミックパックを自分の子供(幼稚園児)名義で買えるか?
って企画があった。
結論から言うとMSのライセンスは幼稚園生でもかまわないが
電話を含むサポートは本人からしか受け付けないというオチだった。


628 名前: 名無しさん 投稿日: 02/02/05 13:51
621の方法がDOSと関係あるの?


629 名前: デフォルトの名無しさん 投稿日: 02/02/05 13:59
電話で、どうやって本人だと確認するんだ?


630 名前: デフォルトの名無しさん 投稿日: 02/02/05 14:19
>>627
サポートが受けられる受けられない以前に、子供以外は使っちゃいかんとおもうが。


631 名前: デフォルトの名無しさん 投稿日: 02/02/05 14:28
MSのサポートなんかイラネぇよ!
ってやつは幼稚園児に買わせてもいいってことか


632 名前: 名無しさん 投稿日: 02/02/05 14:55
スマソ便乗。>>621ってコンソールに文字列表示するのと関係あるの?
というかコンパイルとかビルドってIDE以外でやったことないが・・・


633 名前: デフォルトの名無しさん 投稿日: 02/02/05 15:06
visual basicでsocksについて解説してるサイトないですか?


634 名前: VBは久しぶり 投稿日: 02/02/05 15:36
TrueDBGridの7.0を使っています。このバージョンは初めてです。

設計時のプロパティ画面ンから、列の幅を数値で指定しようと思ったのですが、
Columnのプロパティにwidthがありません。7.0になって動作が変わったのでしょうか?




635 名前: デフォルトの名無しさん 投稿日: 02/02/05 15:38
VBで作ったバイナリって、IDが埋め込まれてるの?
どのマシンで作ったか、ってわかっちゃうの?
じゃーゲーツをバカにするソフトとか作ると、ヤクザが家にきちゃう?



636 名前: デフォルトの名無しさん 投稿日: 02/02/05 16:02
今まで知らなかったのかよ。そんなの常識


637 名前: デフォルトの名無しさん 投稿日: 02/02/05 16:31
某社のGridコントロールを使った独自ライブラリを使っているんですが、、
今回画面を出さないバックエンド処理なので
Gridコントロールをダミーのクラスに置き換えてコンパイルしようとしました。

そしたら※印んところでコンパイルエラーになるじゃないですか。
GridコントロールはControlを継承してやればいいとあたりを付けて
Helpや検索してみたんですがVBじゃ「継承はできない」って、、、

もともとのGridコントロールってどうやって作ったんでしょう?(謎)
Gridコントロール使ってる個所全部#IFで囲むのは
数が多くて避けたいのですが。

Function Hoge_NewGrid&( grd As Grid)

  Fuga_NewGrid& = Core_NewGrid(grd) '←※

End Function

Function Fuga_NewGrid&( grd As Control)
'略
End Function



638 名前: 投稿日: 02/02/05 16:36
>>637
なぜにLongを返そうとしてるの? つか、何がやりたいのかぜんぜんわからん。


639 名前: デフォルトの名無しさん 投稿日: 02/02/05 16:51
Excel VBAについて質問なんですが、

Sheet2のA50のセルに値があるか?
 あれば、(次の行)A51のセルに値があるか?
  あれば、(次の行)A52のセルに値があるか?
   あれば、・・・・
なければ、終了。

で、A50-E50から値のあった行までをコピーする。
(A53まで値があれば、A53-E53まで)

そしたらSheet1のA50を選択してペーストする

という動作をやりたいのですが。。


640 名前: デフォルトの名無しさん 投稿日: 02/02/05 16:51
>>637
いや、Gridをダミーに入れ替えてコンパイルを通したいだけなんですけど、、
何をしているのかは私も不明、、

っていうか今回上の関数二つとも使わないので
「#IF」で囲んで殺してしまってもいいんですが
似たような関数がたくさんあるので手動でたくさんの個所をいじると
バグ作り込みそうで恐いのです。


641 名前: 637 640 投稿日: 02/02/05 16:53
>>640 の>637へのリンクは>>638へ読み替えてください


642 名前: デフォルトの名無しさん 投稿日: 02/02/05 19:04
VBで作ったバイナリに、個別のIDが組み込まれていて、誰が作ったか追跡できるって本当なの?
ソースはある?



643 名前: 投稿日: 02/02/05 19:07
>>640
コンパイルエラーが出る理由は、関数に値を設定しようとしてるからでは?
Control型の代わりに使うんだったら、Object型だね。


644 名前: 投稿日: 02/02/05 19:08
>>642
うそに決まってんじゃん


645 名前: デフォルトの名無しさん 投稿日: 02/02/05 19:12
>642
それどころか、遺伝子情報が埋め込まれるから作った人間も追跡できるよ。


646 名前: デフォルトの名無しさん 投稿日: 02/02/05 19:21
DNA、とか…


647 名前: デフォルトの名無しさん 投稿日: 02/02/05 20:18
>>625
VBで作られたウィルスがニュースにならないのはそのIDを元にして
簡単に犯人を特定できるから。
広まる前にタイーホされちゃうんだよ。裏では有名な話。



648 名前: 633 投稿日: 02/02/05 21:28
socks…


649 名前: デフォルトの名無しさん 投稿日: 02/02/05 21:51
VB製のウイルスってランタイムいるんですか?



650 名前: デフォルトの名無しさん 投稿日: 02/02/05 22:05
>>637
よー分からんのですが、クラスにControlのインターフェイス持たせたいなら
Implements Control
ってやるよろし



651 名前: デフォルトの名無しさん 投稿日: 02/02/05 22:09
>>637
言ってることがさっぱりわからん。
コントロール作りたいならコントロールのプロジェクトを選べばいいと思うが。



652 名前: デフォルトの名無しさん 投稿日: 02/02/05 22:09
>>649
いる


653 名前: VBA初心者 投稿日: 02/02/05 22:49
>>639
Sub main()
Dim lngI As Long
Dim varTmp As Variant
Dim strSel As String

lngI = 50
varTmp = Worksheets("Sheet2").Cells(lngI, 1).Value

Do Until varTmp = ""
lngI = lngI + 1
varTmp = Worksheets("Sheet2").Cells(lngI, 1).Value
Loop

Worksheets("Sheet2").Select
strSel = "E" & CStr(lngI - 1)
Range("A50:" & strSel).Select
Selection.Copy

Worksheets("Sheet1").Activate
Range("A50").Select
ActiveSheet.Paste
End Sub


654 名前: デフォルトの名無しさん 投稿日: 02/02/05 23:09
>625
標準ウィンドウハンドルの取得を間違えてるだけでは?

>635,642
同定(=identify)できるだけって書いたろ?!
ほかで何かを公開してなかったら、どこの誰かまではわからない。

>649
Win98以降、ランタイムは最初から入ってる。



655 名前: デフォルトの名無しさん 投稿日: 02/02/05 23:25
>>654
>Win98以降、ランタイムは最初から入ってる。
それはVB5までの(標準)ランタイムね。

Win95,NT4.0時ではVB2ランタイム。
WinMe以降はVB6ランタイムまで入っている。


656 名前: デフォルトの名無しさん 投稿日: 02/02/05 23:32
ちなみにSPは当たってないからウィルス作るときはSPのバージョンにも気をつけよう。
タマーニ動かないことあります.
最新はSP5ね。



657 名前: 仕様書無しさん 投稿日: 02/02/06 01:56
VBって何ビットなんですか?


658 名前: 名無しさん 投稿日: 02/02/06 02:06
スマソ便乗。>>621ってコンソールに文字列表示するのと関係あるの?
というかコンパイルとかビルドってIDE以外でやったことないが・・・


659 名前: デフォルトの名無しさん 投稿日: 02/02/06 02:25
>>621 >>658
リンカにSUBSYSTEMの指定をするのは、Cでの話。
多分、Cができる人にからかわれただけだと思う。

APIのWriteConsoleが正解。


660 名前: デフォルトの名無しさん 投稿日: 02/02/06 02:30
MSDNがなぜか開けなくなってしまったんですが・・・
分かる人いたらお願いします。

VB6
WindowsXP


661 名前: 投稿日: 02/02/06 02:35
しかしAPIのWriteConsoleを使うと新しいコンソールウィンドウがひらいちゃうんですよ。。。
今使っているコンソール内にメッセージを表示させたいんです。。。


662 名前: デフォルトの名無しさん 投稿日: 02/02/06 02:46
>>660
XPの再インストールとかしてみた?



663 名前: デフォルトの名無しさん 投稿日: 02/02/06 02:50
>>660
昔同じ問題にあったことがある・・・・
あー・・・・。。教えてあげたいが解決方法が思いだせん。。
直接MSDNは開けるのかな?
関連付け設定みたいなの見直せればいいけどね。


664 名前: 660 投稿日: 02/02/06 02:51
>>662
やっぱりそれしかないんですかね?


665 名前: デフォルトの七誌さん 投稿日: 02/02/06 02:55
VBでコンソールを制御する方法はあるが
どれも新規ウィンドウを開く方法だな

http://tokyo.cool.ne.jp/masapico/api_CreateConsoleScreenBuffer.html
http://tokyo.cool.ne.jp/masapico/api_sample_con02_vb.html
http://www.microsoft.com/japan/support/kb/articles/J046/4/70.asp
http://www.alpha-net.ne.jp/users2/kone/index.html


666 名前: 660 投稿日: 02/02/06 02:56
うーん。
ていうか、VBからMSDNを開こうとすると、[応答なし]になります。


667 名前: デフォルトの名無しさん 投稿日: 02/02/06 03:03
PCを再起動してみてMSDNだけを起動してみては?


668 名前: 投稿日: 02/02/06 03:04
>>659
おいおい。VB Magazineにも紹介された、伝統的な技だぞ



669 名前: 660 投稿日: 02/02/06 03:09
>>667
MSDNフォルダ開いてみたんですが、
どれを起動すればいいのか分からないんですが・・・


670 名前: デフォルトの名無しさん 投稿日: 02/02/06 03:15
>>669
ん?スタートメニューからいけるとおもうけど。。
どうもVBとMSDN再インストールしたほうがよさそうかなぁ



671 名前: 660 投稿日: 02/02/06 03:23
>>662,>>663,>>667,>>670

みなさんありがとうございました。
一度MSDNを単独で開き、
VBからもう一度開いてみたら問題なく開けました。
これで、安心してプログラム書けます。



672 名前: 565 投稿日: 02/02/06 03:26
>>668 さん
すみませんどうやってやるのでしょうか?


673 名前: 565 投稿日: 02/02/06 03:44
すみませんどうやってやるのでしょうか?その設定の変え方?


674 名前: デフォルトの名無しさん 投稿日: 02/02/06 07:02
>>661
どうやってるのかわからんが、ハンドルを取得できてないだけでは?
DOS窓の設定をいじれるなら、クリップボード経由で送るのが厨房向き。




675 名前: デフォルトの名無しさん 投稿日: 02/02/06 08:47
VB6 Enterprise +SP5ですが、
ここに参照設定でExcelのLibraryを組み込んで、
オブジェクトブラウザでExcelのクラスとかをどんなのがあるのかな〜、
ってヘルプを見ようとするとヘルプがありません、となります。
MSDNはちゃんと組み込んでるつもりなんですが、
あ、Excel2002だからかな?誰か分かる人います?


676 名前: 659 投稿日: 02/02/06 09:34
むむ、リンカにオプションを指定する方法があるの?
調べたけど、
http://www.alpha-net.ne.jp/users2/kone/back/nikkib2.html
[99/11/20 VBでCGI編 ]
> どうやらリンカに「/SUBSYSTEM:CONSOLE」が送られてることが
> 原因らしいのでVBでリンカに送られてるコマンドラインを調べてみると・・・
> やっぱり「/SUBSYSTEM:windows,4.0」になってた・・・
> これを「/SUBSYSTEM:CONSOLE」にし、さらにコンソールウインドウを
> 作成する必要がないんでAllocConsoleおよびFreeConsoleを外す。

>>622
> Link.exe とかって名前の実行ファイルを作って、それから真のリンカ
> を呼び出せばいいんじゃない?

この組み合わせでできるのか?




677 名前: 659 投稿日: 02/02/06 09:37
>>621
> 621 名前:助けて@女性社員 投稿日:02/02/05 10:53
> VB6でリンカに送られてるコマンドラインを
> 「/SUBSYSTEM:windows,4.0」からこれを「/SUBSYSTEM:CONSOLE」にしろといわれたのですが
> これってどうやるのでしょうか

そもそも、これを教えてくれた人は、
なぜ、詳しいやり方を教えてくれなかったんだろ?


678 名前: 投稿日: 02/02/06 10:22
>>676
IDEだから、オプションを変更する方法はありません。面倒だから、VB7使えば?


679 名前: デフォルトの名無しさん 投稿日: 02/02/06 10:22
editbinでsubsystemを書き換えればいいのでわ?


680 名前: ななし 投稿日: 02/02/06 10:23
http://www.alpha-net.ne.jp/users2/kone/back/nikkib2.html
このサイトみてやり方わからなかったんじゃないの?
検索するとこのサイトしかひっかからんぞ


681 名前: ななし 投稿日: 02/02/06 10:24
それにしてもやりかたわからないな
システムの環境変数いじればいいのか?


682 名前: ななし 投稿日: 02/02/06 10:24
このサイトの掲示板で質問してみるか…?


683 名前: デフォルトの名無しさん 投稿日: 02/02/06 10:42
Webでいろいろ探して見たのですが、よくわからないので質問があります。
他のアプリケーションのIME入力を制御することは出来ますか?
例えば、自作のVBアプリケーションからWindowsのメモ帳のIME入力のON,OFF切り替えを行うなどしたいのですが、どうも上手くできません。
どなかたお力を貸して欲しいです。


684 名前: 名無しさん 投稿日: 02/02/06 12:10
すみません誰か621さんのやりかたを詳しく教えてください!
どうやってSUBSYSTEM:CONSOLEにするのでsか?


685 名前: デフォルトの名無しさん 投稿日: 02/02/06 13:11
>>653さんへ
見事に出来ました。どうもありがとございました。


686 名前: 659 投稿日: 02/02/06 14:00
お、とりあえず Link.exeを置き換えたら、こんなのが取れた。
"C:\_VB\LinkDummy\LinkDummy.OBJ"
"C:\_VB\LinkDummy\Link.OBJ"
"C:\Program Files\Microsoft Visual Studio\VB98\VBAEXE6.LIB"
/ENTRY:__vbaS
/OUT:"
C:\_VB\LinkDummy\Link.exe"
/BASE:0x400000
/SUBSYSTEM:WINDOWS,4.0
/VERSION:1.0
/INCREMENTAL:NO
/OPT:REF
/MERGE:.rdata=.text /IGNORE:4078

Link.Exeのダミープロは、入れ替えが面倒だからVBで作らんほうがいいな。失敗。


687 名前: 名無しさん 投稿日: 02/02/06 14:03
入れ替えってどうやるのですか?お願いします!


688 名前: 投稿日: 02/02/06 14:12
Link.exeってのがあるだろ? それを別の名前で保存すればいい。
で、

Sub Main()
  msgbox Command
End Sub

とかってすれば、何が渡されてるかわかる。で、そのコマンドラインを引数に、
Shellで起動してやればいいんじゃないか?

Shell "Link.exe" & Replace(Command, "WINDOWS、4.0", "CONSOLE")



689 名前: デフォルトの名無しさん 投稿日: 02/02/06 15:12
無視されてるし...
コマンド打つのは嫌い?
>editbin /subsystem:console foo.exe


690 名前: デフォルトの名無しさん 投稿日: 02/02/06 15:29
>>684
ファイル→exeの作成→オプション→実行可能ファイルの作成→コマンドライン引数で、
/SUBSYSTEM:CONSOLE
かな。

引数の種類は、VB本体と同じフォルダでDOS窓を開き「LINK /?」を実行すればわかる。



691 名前: デフォルトの名無しさん 投稿日: 02/02/06 15:30
>>683
メモ帳のIMEをONにするにはハンドルを取得し、APIのImmSetOpenStatus等を使う。
しかし、どうしてメモ帳?  自作の入力用フォームならIME制御が簡単なのに。



692 名前: 659 投稿日: 02/02/06 15:37
>>689
そんなコマンドがあったのか、DummyLink.exe作っちゃったよ。

1.VBのC:\Program Files\Microsoft Visual Studio\VB98\Link.exeをLINKORIG.EXE にリネーム
2.下のやつLink.cで保存し、をコンパイルして、Link.exeを作る。(cl Link.c)
3.コンパイルしたLink.exe をC:\Program Files\Microsoft Visual Studio\VB98\ にコピー
4.VBのプロジェクトを開き、メジャーバージョンを999に変更する。
5.コンパイルしてEXEを作る。
6.俺はまだテストしてないよ。

<Link.cで保存しる>

#include <stdio.h>
#include <process.h>
#include <string.h>

/**
* Link.exe(VbLinkDummy)
* メジャーバージョンが999の時だけSUBSYSTEMをCONSOLEにする。
**/
int main(int argc, char ** argv)
{
  char szCommand[8192];
  int n;
  int isConsole = 0;
  FILE * fp;

  for (n = 0; n < argc; n++){
    if (0 == _strnicmp(argv[n], "/VERSION:999", 12)){
      isConsole = 1;
    }
  }
  
  strcpy(szCommand, "LINKORIG.EXE");
  for (n = 1; n < argc; n++){
    printf("argv[%d]=%s\n", n, argv[n]);
    strcat(szCommand, " ");
    if ((0 == _strnicmp(argv[n], "/SUBSYSTEM:", 11)) &&
      (isConsole == 1)){
      strcat(szCommand, "/SUBSYSTEM:CONSOLE");
    }else{
      strcat(szCommand, argv[n]);
    }
    
  }
  fp = fopen("VbLinkDummy.log", "a");
  fprintf(fp, "szCommand=%s\n", szCommand);
  fclose(fp);
  
  system(szCommand);
  return 0;
}



693 名前: 名無しさん 投稿日: 02/02/06 15:51
SUBSYSTEMの件、できました!皆さんありがとう!
EDITBINってこのマシンにはないですが探して見ます!


694 名前: 659 投稿日: 02/02/06 16:06
成功したらやり方ぐらい書けや、ボケ!


695 名前: デフォルトの名無しさん 投稿日: 02/02/06 18:22
Excel VBAで質問です。
xslファイルと同じディレクトリにある固定のファイルをいつも
外部データの取り込みから開きたいのですがうまくいきません。
何故でしょうか。
デスクトップで二つをファイルを操作している時は正常ですが
他のフォルダへ二つを移動してやると
「ファイルが移動または名前が変更されていないことを確認し、
再度実行してください。」と出ます。


696 名前: 695 投稿日: 02/02/06 18:24
With Selection.QueryTable
.Connection = "TEXT;aiueo.csv"  ←(.\aiueo.csv でもダメでした)
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.Refresh BackgroundQuery:=False ←(エラーはこの行と言われます)
End With


697 名前: デフォルトの名無しさん 投稿日: 02/02/06 18:34
ActiveWorkbook.Path を使うんじゃダメ?


698 名前: デフォルトの名無しさん 投稿日: 02/02/06 19:24
http://cgi.members.interq.or.jp/hokkaido/asato/upload/jam3ddr/OB000988.jpg


699 名前: デフォルトの名無しさん 投稿日: 02/02/06 19:53
>>695
EXCELでマクロを記録して、それを参考にVBへ移植しる


700 名前: デフォルトの名無しさん 投稿日: 02/02/06 19:53
>691さん、ありがとうございました。
しかし、InputContextがうまく取得できていないようでIMEを切り替えることが
できません。

lgHWnd = FindWindow("Notepad", vbNullString)
lgIMEHandle = ImmGetContext(lgHWnd)
Call ImmSetOpenStatus(lngIMEHandle, 1)

と、やっているのですがどこがマズイのでしょうか


701 名前: デフォルトの名無しさん 投稿日: 02/02/06 20:08
エクセルでデータを入力してるのですが、
     A  B  C
1列目 a  b  c
2列目 d  e  f
3列目 g  h  i
)以下続く。

と書いてある内容の1つのファイルから
a_b_c.txt d_e_f.txt g_h_i.txt・・・ というように列ごとに
テキストファイルを書き出すことはできますか?
マクロを組んだことがないのでよく分からんのです。
教えて君でスマソ


702 名前: 投稿日: 02/02/06 20:23
>>700
たしか、自アプリ以外のコンテキストハンドルはとれないはず。
AttachInputThread()してもダメかな?

>>701
Range("A1").Value で、A1の値が取得できる。ということで、順番に
取得しながら連結していけばおっけー。


703 名前: 投稿日: 02/02/06 20:52
>>702
AttachThreadInput()だった。鬱死


704 名前: デフォルトの名無しさん 投稿日: 02/02/06 21:23
>>701
エクセルVBA質問&研究板
http://pc.2ch.net/test/read.cgi/bsoft/1008219498/l50


705 名前: デフォルトの名無しさん 投稿日: 02/02/06 21:29
API関数ReadFileでバイト配列にテキストファイルを読み込み、
それをテキストボックスに表示したいんですが、どうすればいいのでしょうか。
えーと、バイト配列にテキストファイルを読み込むまでは出来てます。
バイト配列に入ってるデータをテキストとして、テキストボックスに表示したいです。



706 名前: 投稿日: 02/02/06 21:52
>>705
バイト配列は、そのままString型の文字列に設定できます。つまり、
Text1.Text = b() という感じで。

Unicode変換する必要があるかもしれないけど。


707 名前: 705 投稿日: 02/02/06 22:02
うーん、Text1.Text = b()ってやってみましたが駄目でした。
Unicode変換って、StrConv関数でいいんですか?


708 名前: 投稿日: 02/02/06 22:03
>>707
どうダメだった? 文字化けしてるなら、StrConvでUnicode変換でいけるかと。


709 名前: 705 投稿日: 02/02/06 22:08
なーんも表示されません。
Text1.Text = StrConv(b(), vbUnicode)
ってやっても何も表示されません。
b()はウォッチウィンドウで見て確かにデータ入ってますし、
WriteFileで書き込んでみたらちゃんと目的のテキストが保存されてるので、
b()が実は空っぽとか、そういうことはないと思います。


710 名前: 700 投稿日: 02/02/06 22:46
>>702
AttachInputThreadの使い方がわからん。
サンプル希望です。
情けないっす。


711 名前: 705 投稿日: 02/02/06 22:52
すみません、よくわかりませんがちゃんと表示されるようになりました。
どこも弄ったつもりないんだけど・・・今まで何が悪かったのか分からない・・・。
ま、動いてるから良しとします。
ありがとうございました。


712 名前: 701 投稿日: 02/02/06 22:54
>>704 向こうに移動しました。自分は全くわからないからなぁ・・・


713 名前: 投稿日: 02/02/06 23:08
>>710
自スレッドは、GetCurrentThread()、相手スレッドはGetWindowThreadProcessId()
で取得できる。で、3番目の引数にアタッチすることを示す1を指定すればおっけー。

つか、検索すればサンプル見つかるだろ。アクティブウィンドウ変更では
基本的な処理だし。


714 名前: デフォルトの名無しさん 投稿日: 02/02/06 23:13
すみません、テキストボックスの右揃えとか左揃えとかを指定するのはAlignmentプロパティではないのですか?
右揃えにならないんですが・・・。


715 名前: デフォルトの名無しさん 投稿日: 02/02/06 23:31
>>714
確か環境によってなったりならなかったりするはず。
(VBバージョンかOSバージョンによる)
「古いのを使ってるせいです。仕様です」と言いきるか(諦めるか)、
MultiLine=Trueでやるのが定説。



716 名前: 714 投稿日: 02/02/06 23:38
>>715
おおっ、MultiLine = Trueでやったらできましたあ!ありがとうございます!
しかし複数行入力できることで別の問題も起きてきますね・・・。まあなんとか対処法を
考えてみます。
ちなみに環境ですが、OS:Win95/VB:6.0(Enterprise Edition)です。


717 名前: 投稿日: 02/02/06 23:39
>>714
OSバージョン。Windows95と、WindowsNT4.0SP2以前はそうなる。


718 名前: 714 投稿日: 02/02/06 23:42
>>717
ああ、やはりそうなんですか・・・。Win95・・・。
なんかこれ以外にも制限うけたりしますか?


719 名前: デフォルトの名無しさん 投稿日: 02/02/06 23:49
>>675
>ここに参照設定でExcelのLibraryを組み込んで、
>オブジェクトブラウザでExcelのクラスとかをどんなのがあるのかな〜、
>ってヘルプを見ようとするとヘルプがありません、となります。

Excelインストールするときに、Excel VBAのヘルプもインストールした?
デフォルトはインストールされんと思う。
#Excel2002でもそうだったかどうかは知らんけど。



720 名前: デフォルトの名無しさん 投稿日: 02/02/07 01:10
VBAで以下の構文を実行すると、オブジョクトが設定されてません
と4行目がエラーになるんですけど、どこを
どう直したら良いでしょうか?
シートの選択までは、出来ているんですけど。

Kinou_No = "1-01"
Worksheets(1).Activate
Worksheets(1).Range("a1").Activate
Cells.Find(What:=Kinou_No).Activate



721 名前: デフォルトの名無しさん 投稿日: 02/02/07 01:31
>>720

Findメソッドのヘルプに
||検索の条件にあてはまるセルが見つからなかった場合は、Nothing を返します。
って書いてあるから、検索結果なしなんじゃないの。


722 名前: 名無しさんです 投稿日: 02/02/07 01:34
良くあるメジャーなタブブラウザなどはセキュリティレベルや
画像音楽ON/OFFなどと言った機能をソフト側で切り替えら
れるようになってますが、あれはどうやってるのでしょうか?


723 名前: D店長 投稿日: 02/02/07 05:01
あるサイトを見て以来、PCを起動すると
「エラーが発生したのでExplorer.exeを終了します」
ってなって、デスクトップが表示されなくなったんですけど。
これってウィルスですか?
マジ困ってます。
(このカキコは友人のPC借りて書いてます)


724 名前: デフォルトの名無しさん 投稿日: 02/02/07 05:05
なんでVBの質問スレで聞くねん。


725 名前: DOSマソ 投稿日: 02/02/07 07:54
おかげさまでVBでコンソールアプリができました。
ありがとうございます。


726 名前: 675 投稿日: 02/02/07 09:48
>>719
ありがd!おっしゃる通りでした!


727 名前: DOSマソ 投稿日: 02/02/07 09:51
あとVB6ではいろいろ面倒なことが多いから
VB.NETに移行することにしました。
皆さんもそうしましょうよ(無責任


728 名前: デフォルトの名無しさん 投稿日: 02/02/07 10:40
FORMを含まないモジュールのみでEXEを作る場合
そのEXEのICONって変えられないんですか?


729 名前: 投稿日: 02/02/07 10:42
>>728
変えられる。リソースでアイコンを追加して、ID_APPICONにするんだったけかな。



730 名前: 728 投稿日: 02/02/07 10:53
>>729
ありがとうございます。
すいません、もうちょっと詳しく教えてください。
リソースファイルの追加までは、やってるんですけど
>>ID_APPICONにするんだったけかな。
ここの部分がいまいち分かりません。

リソースの定義を
1 ID_APPICON "aaaaa.ico"
とかかな?と思ってやってみたんですけど、駄目だったし...
プロジェクトのプロパティにID_APPICONと設定するとこもなさそうだし...

へんな事言ってたらごめんなさい。


731 名前: MSCommとunicode 投稿日: 02/02/07 11:32
VB5で39文字の半角文字列をMSCcommで送信するのですが、
MSCommに渡す直前にlenBで実際の長さを調べると倍の78バイト、
(これはUNIcodeの為だと思うのですが)
この文字列を実際に相手側が受信すると39バイトで受信されているようなのですが
どうしてでしょうか?Winsockを使用しても同じ現象です。
UnicodeからANSIに勝手に変換されているのでしょうか?
結果OKではあるのですが、理由が知りたいのでわかる人、教えて!


732 名前: 2重引用符 投稿日: 02/02/07 12:09
すんません、VBで文字列の中に”を入れたい場合は
"を""で表して、
Msg = " 彼はいった。 ""こんにちは"" "
って書けますよね? この事ってHelpの何処かに
記述ありますか? 改めて探してみると見つからない。



733 名前: 名無しさん 投稿日: 02/02/07 12:14
使わないフォーム追加して、フォームのアイコン設定して
そのアイコンつかえばいいじゃん


734 名前: デフォルトの名無しさん 投稿日: 02/02/07 12:23
嗚呼VB


735 名前: デフォルトの名無しさん 投稿日: 02/02/07 12:50
>>732
わかってるならヘルプ見る必要ないじゃん


736 名前: 投稿日: 02/02/07 13:06
>>730
http://www3.plala.or.jp/sardonyx/smart/vb/code/2.html#L5

IDが間違ってた。スマソ


737 名前: デフォルトの名無しさん 投稿日: 02/02/07 13:26
VBでFTPを使うのってWININETってのを使えばいいんですか?
他にもっと簡単な方法とかってありますか?


738 名前: 投稿日: 02/02/07 13:53
>>737
Inetコントロールでどう?



739 名前: デフォルトの名無しさん 投稿日: 02/02/07 13:59
文字列の中からカンマの位置を取得したいのですが

strLine = "1999,2000,2001"
intBasyo = InStr(0, ",", strLine)

じゃダメでした。
何か方法はありませんか?お願いします。



740 名前: デフォルトの名無しさん 投稿日: 02/02/07 14:07
>>739
こうか?
MsgBox InStr("1999,2000,2001", ",")


741 名前: MSCommとunicode 投稿日: 02/02/07 14:08
>>739
strLine = "1999,2000,2001"
intBasyo = InStr(1, strLine, ",")

だと思うけど


742 名前: 737 投稿日: 02/02/07 14:19
>738
どうも、MSDNみてみます


743 名前: デフォルトの名無しさん 投稿日: 02/02/07 14:28
>>740
>>741

どうもすみませんでした。。。


744 名前: デフォルトの名無しさん 投稿日: 02/02/07 15:07
エクセルのマクロでエクセルを開くと自動実行するようにしました。
ですが、エクセルを開いた時に毎回、
「このファイルはマクロを含んでいます。マクロを有効にしますか?」
というダイアログが出て、OKを押すと実行されます。
有無を言わさず、自動実行したいのですがどうすれば良いでしょうか。


745 名前: デフォルトの名無しさん 投稿日: 02/02/07 15:15
>>744
エクセルの設定変えれ。


746 名前: デフォルトの名無しさん 投稿日: 02/02/07 15:16
クイズを作りたいので
サンプルキボンヌ


747 名前: デフォルトの名無しさん 投稿日: 02/02/07 15:18
>>745
すいません、どのようにですか?
あと他の人が別のパソコンで開いてもダイアログが出ないようにしたいので
マクロに記述できたら一番良いのですが。


748 名前: デフォルトの名無しさん 投稿日: 02/02/07 15:20
すいません、わかりました。
セキュリティのとこですね。
これをマクロに記述は出来ないでしょうか。
・・・でも良く考えたらセキュリティの為に自分で設定出来るのだから
マクロで設定出来たらウイルスとか間単に実行出来ちゃいますよね。
それ考えたら無理っぽいか。。


749 名前: 710 投稿日: 02/02/07 15:42
>>713さん返答感謝です。
おかげでスレッドのアタッチは出来るようになりましたが
元々の目的である、VBアプリから他のアプリのIMEを切り替える事は
スレッドをアタッチしても出来ませんでした。

マクロソフトを作っているのですが、他のアプリに"abcde"と送りたいとき
そのアプリのIMEがONだと"あbcでf"となってしまうので困っています。
なにかいい知恵はないでしょうか?


750 名前: デフォルトの名無しさん 投稿日: 02/02/07 16:11
直接WM_CHARとかで送るとか。


751 名前: 投稿日: 02/02/07 16:27
WM_SETTEXTで送るとか。


752 名前: 745 投稿日: 02/02/07 16:40
>>748
そゆこと。


753 名前: 737 投稿日: 02/02/07 16:58
>738さん
ファイル転送できました。ありがとうございました。


754 名前: デフォルトの名無しさん 投稿日: 02/02/07 16:59
ThisWorkbookのPrivate Sub Workbook_Open()にある変数を
標準モジュールのModule1にある、Sub あいうえお()の
中で使いたいのですが、引数のやり方が解りません。御願いします。


755 名前: 754 投稿日: 02/02/07 17:00
Excel VBAです


756 名前: デフォルトの名無しさん 投稿日: 02/02/07 17:00
>>748
少し主旨から外れますが、こんな感じのウィルスがあった
ということで、参考になるかもしれません。
 
・VBSでレジストリの書き換えとEXCELの立ち上げを行う。
 そのあとVBSが自分自身を消す。
・バッチファイルでREGファイルを実行してレジストリを書き換え、
 EXCELを立ち上げる。そのあとVBSが自分自身を消す。



757 名前: デフォルトの名無しさん 投稿日: 02/02/07 17:02
>>756 の訂正

・バッチファイルでREGファイルを実行してレジストリを書き換え、
 EXCELを立ち上げる。そのあとバッチファイルがREGファイルと
 自分自身を消す。



758 名前: デフォルトの名無しさん 投稿日: 02/02/07 17:19
>>440禿同


759 名前: デフォルトの名無しさん 投稿日: 02/02/07 17:53
>>752
いや、そのやりかたも判らないです。
SendMessageで送るんだろうとやってみたが、
上手くいかなかったし、スレッドアタッチしてもダメだった。
検索しても見つからないのは探し方がマズイのだろうか……。鬱。


760 名前: Winsock 投稿日: 02/02/07 18:23
MScommを使ってテキストモードで送信するとUNICODEから
ANSI(ASCII)に変換され送信されるのは
わかったのですが、Winsockもそうなのでしょうか?教えてください


761 名前: デフォルトの名無しさん 投稿日: 02/02/07 18:33
質問なのです。
MSDNのサンプルについてた「Taborder」に、
「複数項目を選択、それを一番上or下まで移動」
ってな機能をつけたいのです。
複数選択はMultiSelect=1or2でいいとして、移動部分がイマイチなのです。

とりあえずコマンドボタンを1コ追加して

Private Sub cmdTop_Click()
Dim i As Integer
Dim iCount As Integer

iCount = 0
With lstTabIndex
For i = (.ListCount - 1) To 0 Step -1
If (.Selected(i) = True) Then
.AddItem .List(i), 0
.RemoveItem i + 1
iCount = iCount + 1
End If
Next i
For i = 0 To (iCount - 1)
.Selected(i) = True
Next i
End With
End Sub

とかやってみたんですが、選択項目が連続していると
順番が入れ替わったりするのです。

どうか教えてほしいのです。


762 名前: デフォルトの名無しさん 投稿日: 02/02/07 18:42
>>761
内部でソートして、全部きれいに入れ直すのが吉
頑張ればできるかもしれないが、誰にもメンテできない難解なソースに
なるのが関の山。


763 名前: デフォルトの名無しさん 投稿日: 02/02/07 20:00
>>735
いや、この書き方が正式にサポートされているのか、裏技なのか
知りたいのですが。
昔は c$=chr$(&h22) っていうのをくっつけたもんだが。



764 名前: 761 投稿日: 02/02/07 21:15
>>762
それもそうですね。
なんとかエレガントなコードを、とか考えてたですが、
少々野暮ったくても確実に動く方がいいですね。

ありがとうです。


765 名前: デフォルトの名無しさん 投稿日: 02/02/07 21:48
質問です
クリスタルレポートで帳票を出力するプログラムをやっているのですが
普通に出す分にはできたのですが、以下の2点ができないものかと悩
んでいます。

1、フォームにコントロールを貼り付けてレポートのプレビューを出して
  いるが、プレビューを閉じるまでVBの方の処理を止めていたい。

2、クリスタルレポートのDB(mdb使用)の参照先パスを変更したい。

1はステータス、2はレコードソースを何とかすればいいのではとは
思っているんですが・・・・
ちなみにVB6、クリスタルレポート6使用です。


766 名前: 名無しさん 投稿日: 02/02/07 23:14
エクセルVBAを再度勉強しようと、
「かんたんプログラミングエクセル2000VBA基礎編(他にコントロール.関数編、応用編)、大村あつし著」技術評論社
を購入したんですが、アクセス(アクセスでのマクロ)でこの程度の本はありますか?


767 名前: デフォルトの名無しさん 投稿日: 02/02/07 23:47
ActiveXコントロールのListviewコントロールを貼り付け、
ファイルリスト代わりに使っています。

主項目にファイル名、副項目にファイルサイズと更新日付を表示しています(以下のように)
    ' p(As String)はファイル名が入っている
    Set lv = ListView1.ListItems.Add(, , p)
    lv.SubItems(1) = (FileLen(p) / 1023) & "KB" 'ファイルサイズ
    lv.SubItems(2) = Format(FileDateTime(p), "yyyy/mm/dd h:mm") '更新日付

つぎにカラムヘッダがクリックされるとソートされるように設定しました。

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader)
    ListView1.SortKey = ColumnHeader.Index - 1

    ' Sorted プロパティを真 (True) に設定してリストを並べ替えます。
    ListView1.Sorted = True
End Sub

問題はファイルサイズで、SubItems(index)がString型のためソートすると以下のようになってしまいます。
(昇順)
100KB
150KB
1KB
55KB

なんとか数値型と見なしてソートしたいのですが、良い方法はないでしょうか?


768 名前: デフォルトの名無しさん 投稿日: 02/02/07 23:57
1KB->0001KBとするとか。


769 名前: デフォルトの名無しさん 投稿日: 02/02/08 00:00
>>767
ListViewのSort機能にやってもらおうと思ってたら無理。
場合によってはソートキーの前にスペース入れて
長さをそろえることによって済ませられるかもしれんが。
あるいは隠しカラムにソートできるデータを入れる。



770 名前: デフォルトの名無しさん 投稿日: 02/02/08 00:22
>>768
それは真っ先に考えたのですが、やはりあまりにも見づらいかと思い断念しました。

>>769
>場合によってはソートキーの前にスペース入れて
なるほど。試してみます。

>あるいは隠しカラムにソートできるデータを入れる
これもよさげな案ですね。
隠しカラムとはどうすれば出来るのでしょう


771 名前: 770 投稿日: 02/02/08 00:42
とりあえずやってみました。

まず隠しカラム(width=0のカラム)を作る

    Dim x As ColumnHeader
    Set x = ListView1.ColumnHeaders.Add(, , "ファイル名", ListView1.Width / 3)
    Set x = ListView1.ColumnHeaders.Add(, , "サイズ", ListView1.Width / 5, 1)
    Set x = ListView1.ColumnHeaders.Add(, , "サイズ", 0, 1) '隠しカラム
    Set x = ListView1.ColumnHeaders.Add(, , "更新日時", ListView1.Width / 4, 1)
    ListView1.View = lvwReport

クリックされたColumnHeaderがファイルサイズの場合、SortKeyに2を代入

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader)
    If ColumnHeader.Index = 2 Then
        ListView1.SortKey = 2
    Else
        ListView1.SortKey = ColumnHeader.Index - 1
    End If
End Sub

実行してみたところ上手く動作しました・・・が、隠しカラムが列境界線ダブルクリックで
簡単に開いてしまうところが難点・・・


772 名前: 投稿日: 02/02/08 00:50
>>771
ソートロジックを置き換えるメッセージがあるから、それを使って
独自のソートを行えばおっけー。日付型のソートを行うサンプルが
MSDNライブラリにあったはず。


773 名前: 770 投稿日: 02/02/08 00:55
>>772
ListviewのSortedプロパティを使わずにソートする、ということですか?
具体的にどうすればよいのでしょう?


774 名前: デフォルトの名無しさん 投稿日: 02/02/08 01:30
>>761
' 拡張選択可で、選択項目を上に移動

Private Sub cmdTop_Click()
  Dim i As Integer
  Dim iCount As Integer
  iCount = 0
  With lstTabIndex
    i = .ListCount - 1
    Do While i > 0
      If .Selected(i) = True Then
        .AddItem .List(i), 0
        .Selected(0) = True
        .RemoveItem i + 1
        iCount = iCount + 1
      Else
        i = i - 1
      End If
      If i = iCount - 1 Then Exit Do
    Loop
  End With
End Sub



775 名前: デフォルトの名無しさん 投稿日: 02/02/08 02:32
ListBoxのチェックを、
デフォルトでチェックしている状態にするには、どうしたらいいんでしょうか。
初歩的なことかもしれませんが、
知っている人がいたら教えてください。


776 名前: デフォルトの名無しさん 投稿日: 02/02/08 02:42
>>775
上にヒントがある。
っていうか、ヘルプでリストボックスのプロパティ全部見れ!



777 名前: 775 投稿日: 02/02/08 02:52
補足。
Styleプロパティ?で、
チェック項目の表示の仕方はわかったんですが・・・


778 名前: デフォルトの名無しさん 投稿日: 02/02/08 06:30
チョー基本的な質問で大変申し訳ないが……

VB6って、フレームの中にラベル貼り付けられないの?(^^;
今、ラベルとコンボボックスを一緒にカット&ペーストしたら、コンボボックスは中に入ってラベルは下に隠れるっつー奇怪な動作をした。
VB4や5はこんな動作しなかったよーな記憶があるんですが、なんか設定、見落としてますかね?(^^;


779 名前: 775 投稿日: 02/02/08 07:39
>>776
分かりません。
どのプロパティーを使うかだけでもいいんで、
教えてください。
教えて君でスマソ。


780 名前: 投稿日: 02/02/08 08:29
>>773
だから、MSDNライブラリ見ろ、って言ってんのに。Knowledge Baseで
↓のトピックだよ。

HOWTO: Sort a ListView Control by Date
Q170884



781 名前: 775 投稿日: 02/02/08 08:31
解決しました。
知識ある方々、迷惑をおかけして申し訳ありませんでした。
これからは、なるべく自分で解決するように努力します。
というわけで、sage。


782 名前: デフォルトの名無しさん 投稿日: 02/02/08 09:13
始めて一ヶ月程度の者ですが
クラス、コレクションの使い方を覚えるのに良い本はありますか?


783 名前: 投稿日: 02/02/08 10:20
>>782
ヘルプ見てサンプル作れ。で、わかんなかったら、再度質問。


784 名前: 778 投稿日: 02/02/08 10:50
……ダメだ、どーしてもラベルコントロールがフレームの中に入らない。下に隠れてしまう。

なんで? どうしてこんな動作するんだ?(^^; どこぞプロパティ設定し忘れてるのか? でもデフォルトのまんまだぞ(T_T)


785 名前: 超初心者 投稿日: 02/02/08 10:59
ある関数において、コントロール名とプロパティを引数にしたいのですが
型指定はどのように指定すればよいのでしょうか?

#テキストボックスならば TXT**.Text 、ラベルなら LBL**.Caption と
#いうように使い分けたいのです


786 名前: Midnight 投稿日: 02/02/08 11:06
>784
新規プロジェクト作成→
 フレーム、ラベル、コンボを作成→
  ラベルとコンボを切り取り→
   フレームをクリックし、貼り付け

ってやってみたが、普通にフレームに載ったよ。
当方VB6SP5。


787 名前: 778 投稿日: 02/02/08 11:09
>>786
……ねぇ(^^; 
VB6は初めてだけど、VB4でも5でもこーやって作ってきたのに……
何が原因なんだろ?


788 名前: デフォルトの名無しさん 投稿日: 02/02/08 11:13
>787 OSから再インストールを推奨(w


789 名前: 778 投稿日: 02/02/08 11:14
>>788
……おひ(^^;


790 名前: 投稿日: 02/02/08 11:15
>>785
無理。Object型で渡して、関数側で型判断するしかない。


791 名前: 778 投稿日: 02/02/08 11:19
……もしかして、ユーザーコントロールの編集してることに関係してるのかな?
もはや、そのくらいしか原因が思いつかない……。


792 名前: デフォルトの名無しさん 投稿日: 02/02/08 11:26
>791
フレームをクリックで選択してから貼り付けてるか?
繰り返すが「フレームをクリックで選択してから」貼り付けてるか?


793 名前: 超初心者 投稿日: 02/02/08 11:31
>790
そうなんですか。ありがとうございます。


794 名前: 778 投稿日: 02/02/08 11:34
>>792
……もちろん……と、思い立って、ラベルを一枚だけカット&ペーストしてみたら……ちゃんと入った。

<Font Size="+5">なんだこの動作は!!</Font>


795 名前: デフォルトの名無しさん 投稿日: 02/02/08 11:43
漏れもコピペすると裏に回るときがよくある
それ以来コピペやめた


796 名前: デフォルトの名無しさん 投稿日: 02/02/08 11:53
すいません。厨房質問ですがお願いします

半角全角の混じったファイルをgetで読んでいます
space(5)を放り込んだ可変長文字列に読み込んでいるんですが、
5文字分読み込まれてしまいます。
getのHelpには
「文字列変数の持つ値の文字数と同じバイト数を読み込みます。」
とあるんですが、何かを勘違いしているんでしょうか?
VB5です


797 名前: 761 投稿日: 02/02/08 13:28
>>774
おお、動いた。
ありがdです。


798 名前: 778 投稿日: 02/02/08 13:30
>>795
しかし、コンボボックスだけ張り付く(しかも複数)っつーのがよくわからん(^^;


799 名前: デフォルトの名無しさん 投稿日: 02/02/08 14:40
MSFlexGrid内の項目をテキストボックスの用に入力できるようにすることはできますか?
プロパティで探したのですが、分かりませんでした。
SPREADではできるのですが、FlexGridはできないのでしょうか?


800 名前: デフォルトの名無しさん 投稿日: 02/02/08 14:44
>796
単に、私がDQNなだけなのか、質問の意味がよく理解できないです。
GETでどうしたいわけ?
space(5)の部分は読み込ませたくないの?



801 名前: デフォルトの名無しさん 投稿日: 02/02/08 14:50
>>796
5文字分のスペースが入ってるから5文字分読まれてる・・・正しいと思うけど。


802 名前: 800 投稿日: 02/02/08 14:50
>>799
MSFlexGridは、表示機能だけでセルに入力できなかったはず。
よって、MSFlexGridだけではセルに入力することは無理。
でも、入力は、TEXTコントロールなどを利用すればできるよ。



803 名前: 774 投稿日: 02/02/08 14:59
>>761
こっちのほうが可読性がいいかも。

Private Sub cmdTop_Click()
  Dim i As Integer
  Dim iCount As Integer
  iCount = 0
  With lstTabIndex
    For i = 0 To .ListCount - 1
      If .Selected(i) = True And i <> iCount Then
        .AddItem .List(i), iCount
        .Selected(iCount) = True
        .RemoveItem i + 1
        iCount = iCount + 1
      End If
    Next
  End With
End Sub

# i <> iCount 条件が無くても結果は同じだけど、
わざわざ同じ位置に挿入して削除するのはムダだから。



804 名前: 796 投稿日: 02/02/08 16:29
すいません。Binaryでopenしていることを書き忘れていました

>>800さん
可変長文字列でバイト指定で読みこみたいのです

>>801さん
5文字のスペースが入っていると5バイト分読みこんでくれる、と思ったのです
Helpを
「文字列変数の持つ値の文字数と同じバイト数を読み込みます。」
でなくて、
「文字列変数の持つ値の文字数と同じ文字数を読み込みます。」
と読めばいいのでしょうか?

Byteの動的配列をRedimして使えば良いのはわかったんですが、Helpが気になったもので……


805 名前: ぐち 投稿日: 02/02/08 16:32
IsDateに 年無しで秒までの日時("2/8 16:30:30")渡したら実行時エラー起こした。
チェックする為の関数のエラーで落ちる悲しさって...

スレ違いスマソ下げ


806 名前: 799 投稿日: 02/02/08 16:47
>802さん
やっぱり表示のみですか、ありがとうございました。


807 名前: vberr ◆P/ECE33A 投稿日: 02/02/08 17:34
>>804
素直にバイト配列使えー。

Dim ff%,txt$
Dim stemp() as byte

redim stemp(5)

ff=freefile
Open "hogehoge.txt" for binary access read as #ff
get #ff,,stemp
close #ff

txt=strconv(stemp,vbunicode)

動作チェックしてねーけど多分動くハズ
syntax error あったら自分で修正して(w

ただこれだと全角文字は半分で切れちまうがいいのか?


808 名前: vberr ◆P/ECE33A 投稿日: 02/02/08 17:48
>>807
って、>>804
> Byteの動的配列をRedimして使えば良いのはわかったんですが
解ってたのね. …早とちり(゚д゚)マズー

VB5以降は内部的に文字列をUnicodeで扱っちゃうから基本的に文字列の
カウント関する挙動は「バイト数」じゃなくて「文字数」だぁね.
LenB("A") とかしても2バイトが帰ってくる.

なので、その挙動は仕様です :-


809 名前: 796 投稿日: 02/02/08 18:07
>>808
どもです
Helpのバイト数とあったのを見て勝手に変換してバイト数の計算でもしてくれるのかと妄想してました

やっぱりVB嫌い固定長も嫌い……
#ひたすらtimeout、、多重投稿になってたらすいません


810 名前: デフォルトの名無しさん 投稿日: 02/02/08 18:20
スレ違いかもしれませんが88ベーシックのフロッピーの
フォーマットのコマンドを知っている方いませんか?
ネタじゃないです・・・まじで・・・


811 名前: デフォルトの名無しさん 投稿日: 02/02/08 21:28
三角形を描いて、その中を塗りつぶすにはどうしたらよいのでしょうか?
Lineを使って三角を書くことはできるのですけど塗りつぶす方法が分かりません。

単純な質問で申し訳ないです。



812 名前: デフォルトの名無しさん 投稿日: 02/02/08 21:33
マルチでごめんなさい、急いでるんです〜

アクティブレポートの改ページについて教えてチャンです。
改ページの条件をIF文で指定することはできますか?
改ページのキーをどこに設定するかもわからないんですが、
よろしくお願いします


813 名前: デフォルトの名無しさん 投稿日: 02/02/08 21:36
>>811
http://www.google.com/search?q=vb+%93h%82%E8%82%C2%82%D4%82%B5&hl=ja&lr=


814 名前: 813 投稿日: 02/02/08 21:38
>>811 こっちも
http://www.google.com/search?num=100&hl=ja&q=vb+%93h%82%E8%82%C2%82%D4%82%B5%81@floodfill&lr=



815 名前: デフォルトの名無しさん 投稿日: 02/02/08 22:00
>>813
ありがとうございます。
FloodFillを使って塗りつぶしできました。
FillStyleとFillColorに値を設定しなければいけなかったとは。



816 名前: デフォルトの名無しさん 投稿日: 02/02/08 23:11
>>804
バイト数を指定云々は英文ヘルプからの直訳というだけであって、
1バイト文字文化圏では、内部Unicode化による混乱とは無縁。
日本語化にともなってこういう食い違いが起きることは仕方がない。



817 名前: 今更Basic 投稿日: 02/02/08 23:25
あのさ、VBって由緒正しいMS-Basicの流派だよね?
なんで
n=10 : print Format(n , "Value = [#####] )
が Value=[ 10]
じゃなくてValue=[10]ってなるの? Helpには確かにケタが足りない時には#には何も
入らないってなっているが、それじゃ####の意味が無かろう。

そもそも
print " A B C"
print using "### ### ###" , a , b , c
ってケタを揃えられるっていうのがBasicのいい所だったのにぃ。



818 名前: デフォルトの名無しさん 投稿日: 02/02/08 23:34
>817
スペースでケタ揃えは、こうすればできる。
Print Format(n , "Value = [@@@@@] )

基本的には同感。



819 名前: デフォルトの名無しさん 投稿日: 02/02/09 01:12
VBAでファルダを作成したいのですが?
800ページも有る本にも載ってませんでした。。


820 名前: Delフサギコ 投稿日: 02/02/09 01:22
  ∧,,∧     /すみません...
 ミ,,゚Д゚彡  < ASPのVBScriptで
  U  U    \DLLかActiveXDLLかを
〜ミ  ミ  呼び出す方法についてくわしい書籍か
  ∪∪  サイト、教えてもらえんでしょうか…

DLL側はC++でもVBでもなんでもいいので
ごくごく簡単なサンプルプログラムを動作させたいっす。

よろしくお願いします。


って、スレ違いかもしれないのですが、VBScriptスレ
ないみたいなので。


821 名前: デフォルトの名無しさん 投稿日: 02/02/09 01:43
特定のウィンドウを非表示にしたり表示したりする機能のあるツールを作りたいんですが、
現在そのウィンドウがが表示中か非表示中なのかを取得する方法がわかりません。

えーと、今はFindWindowで消したいウインドウのハンドル取得して、
ShowWindowで消したり表示したりしてるんですが、
今はこれが表示ボタンと非表示ボタンがある状態です。

これを、非表示なら「表示」ボタンにして、表示されてるなら「非表示」ボタンにして、
ボタン一個ですませたいんです。

というわけで、ウインドウが表示されてるか非表示なのかを取得したいんですが、
どうすればいいのでしょうか。


822 名前: デフォルトの名無しさん 投稿日: 02/02/09 02:22
GetWindowPlacement


823 名前: デフォルトの名無しさん 投稿日: 02/02/09 02:37
>821
最小化されてるか知りたいん?


824 名前: デフォルトの名無しさん 投稿日: 02/02/09 03:16
>>820
Server.CreateObjectを使ってActiveXDLLを使うYO
VC+ATLで作った物を使うときは、IDispatchインターフェイスを持たせたものを作らないといけないらしいYO
VCかVBで普通にActiveXDLLを作れば問題無いYO


http://www.zdnet.co.jp/help/howto/win/win2000/0007complus_vb/chap08/28.html



825 名前: デフォルトの名無しさん 投稿日: 02/02/09 03:57
>>823
「ShowWindowで消したり表示したりしてるんですが」って言ってるんだから、
最小化とか関係ないのでは?


826 名前: デフォルトの名無しさん 投稿日: 02/02/09 04:27
>>821
APIのそのものすばり、IsWindowVisible




827 名前: デフォルトの名無しさん 投稿日: 02/02/09 04:56
>>819
VBA にも MkDir が、あるはずだけど。



828 名前: VB大好き教えて 投稿日: 02/02/09 08:11
http://game.2ch.net/test/read.cgi/fly/1013090043/l50
こんなのどう?


829 名前: デフォルトの名無しさん 投稿日: 02/02/09 13:16
>>828
結構まともに進行しているスレでそういったジョークは寒いな



830 名前: デフォルトの名無しさん 投稿日: 02/02/09 13:34
最近はやってるなぁ。
いっつも思うんだが、「騙されて見に行く」んじゃなくて、
「本当かどうか確かめに行く」だけなんだから、
騙されてるわけじゃねえよって感じだ。


831 名前: 名無しさん 投稿日: 02/02/09 14:45
反応してる時点でどうかと


832 名前: デフォルトの名無しさん 投稿日: 02/02/09 15:51
見られなかった。>282



833 名前: Delフサギコ 投稿日: 02/02/09 16:19

   ∧,,∧      / ̄
  ミ*゚∀゚彡  <  >>824さん
  ミ つ且~~   \_ありがとうございます。
〜ミ,,,,,, ,,ミ  URLまでわざわざ。サンクスコ

来週頭にでも、会社にいって試してみます。
VBScriptでは機能が足りないので
VBでIISアプリしようと思っていましたが
どうも、ディストリビューションが難しくて
使いづらいので、VBScriptでやってみようかと
思うてるです。


834 名前: 821 投稿日: 02/02/09 18:41
>>826
思い通りに動きました。
どもありがとうございました。


835 名前: デフォルトの名無しさん 投稿日: 02/02/09 19:23
どうやったらVBマスターできますか?


836 名前: ナナシサソ 投稿日: 02/02/09 19:29
プログラム始めようと思うのですが、
VisualBasicでいいのか迷っています。
ネットワーク関連の操作等はVBでいいのでしょうか?
お願いします。



837 名前:◆6ucuH7Ng 投稿日: 02/02/09 19:38
すいませんちょっと教えてください。
ただ今VBでチャットの様なプログラムを作っているのですが、Winsock.ocx
を使ってリモートに接続し、リモート側をwinsock.closeで切断しても、ソケットがすぐに破棄されず、
TIME_WAITで残ってしまいます。このため、切断してすぐに同じポートに接続しようとするとソケットエ
ラーではじかれてしまいます。これは仕様なんでしょうか?


838 名前: デフォルトの名無しさん 投稿日: 02/02/09 19:56
前もネットワーク〜の方で説明したが、TIME_WAITに限らず、
ソケット扱うなら、一通りよんどけ。
http://www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja-2.html#ss2.7

>切断してすぐに同じポートに接続しようとするとソケットエラーでは
クライアントのソケットをポート指定で作っていないかぎり、こんな
エラーは起こらないはずだが。


839 名前: デフォルトの名無しさん 投稿日: 02/02/09 20:43
>836マルチやめれ


840 名前:◆6ucuH7Ng 投稿日: 02/02/09 20:49
>>838
>クライアントのソケットをポート指定で作っていないかぎり、こんな
>エラーは起こらないはずだが。

どうやらこれのせいっぽいです。P2Pプログラムを作っているのですが、
自分がサーバーからクライアントに変わる時にlocalportを0にするのを
忘れてました。(汗;)



841 名前: デフォルトの名無しさん 投稿日: 02/02/10 02:35
ageるぞゴルァ


842 名前: デフォルトの名無しさん 投稿日: 02/02/10 03:00
.NET Frameworkってどこで手に入れるんですか?
パッケージで売っているの見たことがないんですけど、
雑誌とかでは大々的に取り上げてますよね?
どこで買えばいいのでしょうか?


843 名前: デフォルトの名無しさん 投稿日: 02/02/10 03:04
>.NET Frameworkってどこで手に入れるんですか?
MSサイトで無料でダウンロードできるよ。でかいけど。
製品版の日本語版はまだ出てません。
雑誌等で取り上げてたのは、Beta版


844 名前: デフォルトの名無しさん 投稿日: 02/02/10 03:32
下のようなコードで、TEXT1に入力したテキストを、Enterキーを
押下した際にTEXT2にそのまま貼り付けるようにしています。この
時、TEXT1の内容は ”” でクリアすることにしているんですが、
なぜか最上段にカーソルが来ません(必ず2段目に来ます)。
クリアの際に、常に最上段にカーソルが来るようにするためには、
どうすればいいのでしょうか。よろしくご指導ください。よろしくお願い
します。


Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = vbKeyReturn Then

Text2.Text = Text2.Text + Text1.Text
Text1.Text = ""

End If

End Sub




845 名前: デフォルトの名無しさん 投稿日: 02/02/10 03:42
ユーザフォームを表示した時、エクセルシートを操作出来ませんが、
モードレスは、エクセル97では、指定出来ないのでしょうか?



846 名前: デフォルトの名無しさん 投稿日: 02/02/10 03:55
>>843
そうなんですか、ありがとうございました。


847 名前: デフォルトの名無しさん 投稿日: 02/02/10 04:03
>>844
Text1.Text = ""
の直後に
KeyAscii = 0
を入れるべし。

今の状態だとText1を空にした後、Enterキーの入力がText1に入るので、
改行された状態になる。


848 名前: 844 投稿日: 02/02/10 13:09
>>847

レスありがとうございます! 多謝です。さっそく試してみましたが、見事
うまくいきました。

助かりました。ありがとうございました m(_ _)m


849 名前: ぱるぷんて 投稿日: 02/02/11 23:02
レベルの低い事聞いて申し訳ないのですが,フォームの右端にきたら、左方向へ移動。
フォームの左端にきたら右方向へ移動しなさいという問題なのですが,
Dim ax As Integer

Private Sub Form_Load()
ax = 100
End Sub

Private Sub Timer1_Timer()
Image1.Left = Image1.Left + ax
If Image1.Left >= Form1.ScaleWidth - Image1.Width Or Image1.Left <=0 Then
ax = -ax
End If
End Sub
では、うまくいくのですが、

Private Sub Timer1_Timer()
dim ax as integer
ax = 100
Image1.Left = Image1.Left + ax
If Image1.Left >= Form1.ScaleWidth - Image1.Width Or Image1.Left < 0 Then
ax = -ax
End If
End Sub
だとうまくいきません。これはなぜですか?タイマーイベントだと宣言はgeneral declarationsでしなければならい
とか、この場合axなどの初期値はform loadに書かなければならないという決まりがあるのでしょうか?




850 名前: 投稿日: 02/02/11 23:06
>>849
あのさ、axを毎回100で初期化しちゃだめでしょ? そゆこと。


851 名前: デフォルトの名無しさん 投稿日: 02/02/11 23:07
>>849
タイマーイベントが呼び出されるたびにaxに100が代入されてるので
ax=-axというのが意味なしおちゃんになります。



852 名前: ヤン 投稿日: 02/02/11 23:26
>>850さん、851さんすみません、ありがとうございます。
さらにしつもんなのですが、axの宣言はgeneral declarationsでないといけないのですか?
form loadやtimerに宣言するとなぜ駄目なのですか?
なんどもレベルの低い質問ばかりで申し訳ありません.


853 名前: デフォルトの名無しさん 投稿日: 02/02/11 23:35
>>852
Form_Load で宣言すると、Timerで使えない。逆もしかり。
が、冒頭=外で宣言すると、どのプロシージャからも使える。



854 名前: デフォルトの名無しさん 投稿日: 02/02/11 23:44
VBでウイ○スを作ったのですが、自分のマシンでテスト実行してみたら
感染しました!どうやったら取り除けますかっっ!


855 名前: デフォルトの名無しさん 投稿日: 02/02/11 23:56
>854
駆除ソフトをVBで作れ!



856 名前: デフォルトの名無しさん 投稿日: 02/02/12 00:02
>>855
駆除ソフトの作り方がわかりません。
ウイルスがなんか異常な動きを見せていますっっ!!!


857 名前: デフォルトの名無しさん 投稿日: 02/02/12 00:08
>856
「VB用のDLLを削除しろ!」と言わせたいわけ?(笑)




858 名前: デフォルトの名無しさん 投稿日: 02/02/12 00:15
いま削除しました。ふぅ〜っウイルス作っても自機で試すなって
ことですね。フムフム
あ、>>857氏ありがとうございました。
みなさん以後お気をつけくだs


859 名前: 反省 投稿日: 02/02/12 00:28
オチが予想できたわりには、ツッコミが平凡だった。



860 名前: 名無しさんです 投稿日: 02/02/12 01:01
>>859
いや、君はかまってあげただけやさしいヨ


861 名前: デフォルトの名無しさん 投稿日: 02/02/12 01:25
なんてハートフルなスレなんだ…。
目頭が熱くなってコーディング出来ないヨ


862 名前: デフォルトの名無しさん 投稿日: 02/02/12 09:31
テキストボックスを貼り付けたユーザコントロールを、コントロール配列にしています。
そのテキストボックスに行数・桁数での制限を設けたいのですがうまくいきません。
・1行の文字数(桁数)を超えた行には自動で改行を入れて次の行へ
・半角は1バイト・全角は2バイトとする
・折り返す行数・桁数は任意に指定できる
・行数の制限を超えた場合は制限を越えたテキストを引数に入れたイベントを出す(次のテキストボックスにそれを入れる)

ここで一番問題なのは、半角は1バイト・全角は2バイトとして計算したいことです。
内部的にUnicodeなのでEM_LINEINDEXやEM_LINEFROMCHARがうまいように値を返しません。
InStr(0,Text1.text,vbcrlf,vbTextCompare)とかやれば改行の数=行数はわかるのですが・・・


863 名前: デフォルトの名無しさん 投稿日: 02/02/12 09:34
みなさん、初めまして

PictureBoxに APIのCreateFont,CreateFontIndirectなどを使用して
フォントを出力(表示)させているのですが、
その際に、背景色を透過にできないでしょうか?

よろしくお願いします m(__)m ペコリ



864 名前: デフォルトの名無しさん 投稿日: 02/02/12 11:04
Crystal Reportsについて教えて下さい。

詳細行の繰り返しで50行出力しているのですが、
10行毎に罫線の太さを変えたいです。
データには連番を持っているのですが、
どのようにやったらよいのでしょうか?

どなたか教えて下さい。


865 名前: 超初心者 投稿日: 02/02/12 11:37
ラベルとラベルのキャプションの間隔が狭くて見苦しいのですが。
あれ、どうにかならないのでしょうか?
しょうもない質問ですみません。


866 名前: デフォルトの名無しさん 投稿日: 02/02/12 12:25
>>862
>1行の文字数(桁数)を超えた行には自動で改行を入れて次の行へ
フォントを固定幅にして、テキストボックスのサイズを桁数に合わせ、
物理改行させてしまう案はどう?

>折り返す行数・桁数は任意に指定できる
スクロールバーさえ付けなければ楽なんだけど。

>半角は1バイト・全角は2バイトとして計算したい
定番だけど   LenB(StrConv(strBuf, vbFromUnicode))
これから改行コードのバイト数 Len(strBuf) - Len(Replace(strBuf, vbCrLf, ""))
を引き算するとか。これを2で割って、1を足せば論理行数になる。
それに桁数を越える行の数を足せば、物理行数になる。

#半角2バイト文字は、入力時に拒否または自動変換するのかな。



867 名前: デフォルトの名無しさん 投稿日: 02/02/12 12:26
>>863
もしFontTransparentな設定とかが出来ないなら、シコシコやるしかない。
不可視の作業用PictureBoxにフォントを描いて、GetPixel→PutPixelする。

表示範囲が大きい時はマスク合成するほうが高速。作業用PictureBoxに白地に黒で描き
vbSrcAndでPaintPictureした後、黒地に希望色で描きvbSrcInvertでPaintPicture。
もちろん、BitBltでもオッケー。



868 名前: デフォルトの名無しさん 投稿日: 02/02/12 12:28
>>865
前にスペースを入れたら?
または、中央寄せにするとか。



869 名前: デフォルトの名無しさん 投稿日: 02/02/12 12:53
>>863
SetBkModeでTRANSPARENT、かな。


870 名前: 865 投稿日: 02/02/12 13:24
>868
それくらいしかないんでしょうか。
垂直の配置もせめて上、中、下と変えられればいいんですが...。

とりあえず、下だけ空いてるよりは上も下も空いてない方がマシなんで、
その方向で対処します。
お返事ありがとうございました。


871 名前: デフォルトの名無しさん 投稿日: 02/02/12 13:59
FTPソフトを作っているのですが、
接続した時に、サーバー上のファイルの更新日時を表示したいのですが、
全ての時間が1980-01-01で表示されてしまいます。
何が原因なのでしょうか?


' リモートファイルの日付を格納
FileTimeToSystemTime FileInfo.ftLastWriteTime, SysTime

RemoteFile.FileDate = CDate(SysTime.wYear & "/" & SysTime.wMonth & "/" &
SysTime.wDay & " " & _
SysTime.wHour & ":" & SysTime.wMinute & ":" &
SysTime.wSecond)



あと、漢字コードを取得時に変更したいのですが、
変更するための方法を教えてください。




872 名前: ももまん 投稿日: 02/02/12 17:04
VBAで、ダイアログボックスを表示して、【名前を付けて保存】する命令があるんでしょうか?
お願いしますっ!!! 誰か答えてぇっ!! m(^^;)m


873 名前: デフォルトの名無しさん 投稿日: 02/02/12 17:26
>872 コモンダイアログコントロールを使う。


874 名前: ももまん 投稿日: 02/02/12 17:30
返事ありがとうございます。。。が、もう少し詳しく教えてくださいませんか?


875 名前: デフォルトの名無しさん 投稿日: 02/02/12 18:53
DBのデータを固定長のTEXTファイルに書き出したいのですが簡単な方法ってありますか?

    AA   bbbbbb  ccccd 123456
   AAAA   bbbb  c 1234567


876 名前: 875 投稿日: 02/02/12 18:55
↑例 がずれました気にしないで下さい


877 名前: デフォルトの名無しさん 投稿日: 02/02/12 18:56
>875
Print # を使う(詳細はヘルプ見て)。



878 名前: デフォルトの名無しさん 投稿日: 02/02/12 19:11
>875
DB自体に固定長ファイルへの出力機能が備わっているケースも多々あり


879 名前: デフォルトの名無しさん 投稿日: 02/02/12 20:59
>>874
ヘルプみたら一発だと思うよん。
あと、検索かけてみても引っかかったよ。
http://www.google.co.jp/search?hl=ja&ie=utf8&oe=utf8&q=VB%E3%80%80%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%90%8D%E3%82%92%E4%BB%98%E3%81%91%E3%81%A6%E4%BF%9D%E5%AD%98&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=


880 名前: デフォルトの名無しさん 投稿日: 02/02/12 21:51
>>870
ラベルを2つ使う。
枠だけのと枠なし背景透過のと2つ。


881 名前: デフォルトの名無しさん 投稿日: 02/02/12 22:21
PHPで作ったWEBサイトをVBで呼び出したいのですが、
どうしたらいいのでしょうか。
ていうか、VBのボタンコントロールをクリックしたら、
IEが立ち上がって特定のサイトが開くだけでいいのですが・・。



882 名前: デフォルトの名無しさん 投稿日: 02/02/12 22:40
>>881
shell "IEのフルパス" & " " & "開きたいURL"


883 名前: デフォルトの名無しさん 投稿日: 02/02/12 22:44
>>881
Googleで「VB IE 起動」
http://www.google.co.jp/search?hl=ja&q=VB+IE+%8BN%93%AE&btnG=Google+%8C%9F%8D%F5&lr=

上から3番目か・・・


884 名前: デフォルトの名無しさん 投稿日: 02/02/12 23:07
>587>883 君さりげなくいい人(w



885 名前: 862 投稿日: 02/02/12 23:18
MultiLine=TrueのテキストボックスText1を置いて
Private Sub Text1_Change()
Debug.Print (LenB(StrConv(Text1.Text, vbFromUnicode)) - _
(Len(Text1.Text) - Len(Replace(Text1.Text, vbCrLf, ""))))
End Sub
と記述したのですがこれで得られるのは改行を抜いたANSI換算での文字数ですよね?

ちなみにlstrlenってAPI使えば全角2バイト、半角1バイトでの文字数を返せるのがわかりま
した。

>スクロールバーさえ付けなければ楽なんだけど。
横スクロールバーは付けなくていいので見かけ上折り返すことはできるんですよ。
ただ、物理改行ができないので・・・

>フォントを固定幅にして、テキストボックスのサイズを桁数に合わせ、物理改行させてし
まう案はどう?
これですが、テキストボックスのサイズを桁数に合わせて物理改行するやり方がよく分かり
ません。
フォントを固定幅にするのはOKです。

本当に申し訳ありませんがもう少しヒントをお願いします・・・

>865
Printを使ってテキストを自前で描画するラベルコントロールもどきをユーザコントロールで
作ってみるのはどうでしょう。
UserControl.CurrentYを外部から設定可能できるようにして。


886 名前: デフォルトの名無しさん 投稿日: 02/02/13 00:00
>>870
3行分の高さにして、先頭にvbCrを付けるのは簡単に出来る。
さらに凝って微調整したい人はラベルonラベル、PictureBoxを使う。

>>871
いったんLocalTimeに変換してから、SystemTimeに変換する。
漢字コードの変換は、nkf32.dllを使うのが超定番。



887 名前: デフォルトの名無しさん 投稿日: 02/02/13 00:04
>>885
>改行を抜いたANSI換算での文字数ですよね?
文字数じゃなくて、ずばりバイト数ですよ。
改行を引かなければ、lstrlenと同じになるはず。

>ただ、物理改行ができないので・・・
見かけ上の折り返しを物理行と言います。
逆に使ってる人もけっこういるらしい
http://www.ht.sakura.ne.jp/~delmonta/emacs/16.txt



888 名前: 881 投稿日: 02/02/13 00:19
>>882-883



889 名前: デフォルトの名無しさん 投稿日: 02/02/13 00:28
Windows98なんですけど
スタンバイモードに一度入ってから復帰すると
起動中だったVBのアプリでBitBltなどの描画が著しくスピード落ちるんですけど
これは、どうにかならないかしら?
画面のプロパティでスクリーンの解像度変更したら元に戻ること知ったので
ChangeDisplaySettingsExで実際には解像度変更しないでリフレッシュしたら
うまくいったんだけど
なんか納得しない
ビデオのドライバ固有の問題かしら?


890 名前: デフォルトの名無しさん 投稿日: 02/02/13 00:30
>ビデオのドライバ固有の問題かしら?
とか言いながら、ビデオカードが何だか言ってないじゃん。


891 名前: 862 投稿日: 02/02/13 00:33
>>887
あ、ほんとですね(苦笑)
よく分かっていませんでした(^^;

> 見かけ上の折り返しを物理行と言います。
> 逆に使ってる人もけっこういるらしい
これも逆に使ってました(^^;
メモリ上の物理的な配置に由来するから「物理」行なんですね・・・

inStr関数でvbcrlfの位置を検索して、見かけ上の1行の取得はなんとかできました。
ただ、それの途中で文字を区切る処理がうまくいかないんです。
たとえば
aaaあ
を(半角換算で)4桁で区切るとします。4バイトとは言っても実用上
aaa

となって欲しいのですが(こういう処理なんて言うんでしたっけ?)
バイト配列にテキストを放り込んでMidB関数で分けちゃうと、「あ」という2バイトの文字を強引に分割してしまうためにaaaの後の文字が文字化けします。
これを回避するにはどうすれば良いのでしょうか・・・
本当に何も分かっていなくて申し訳ありません。


892 名前: デフォルトの名無しさん 投稿日: 02/02/13 00:47
MSProjectでVBA組んでいるのですが・・・
「固有IDが「n」(注:IDではない)のタスクを選択する」というのを
実現させるコード、わからないでしょうか?
(フィルタ使わないで。。。)
#MSProjectでVBAなんて人いないかな・・・


893 名前: デフォルトの名無しさん 投稿日: 02/02/13 00:50
チャットソフトを作っています。そこで、2つ分からない点について質問
させてください m(_ _)m

1)MSNメッセンジャーのように、メッセージを追加するたびに、最下段
 を表示するにはどうしたらいいのでしょうか。

2)ユーザーごとに、メッセージの色分けをするにはどうしたらいいの
 でしょうか。リッチテキストボックスを使えばいいのではと思っている
 のですが、.selcolorでもうまくいきません・・・・・。また、HTMLでやれ
 ばできてしまうと思うんですが、こちらは一つのセリフを追加するた
 びに全部を読み込みなおさなければならないので、今ひとつスマー
 トさに欠けるように思います。

以上、よろしくお願いします。


894 名前: デフォルトの名無しさん 投稿日: 02/02/13 00:55
特定のフォントのある文字の幅を取得する方法はないですか?
たとえば、今私が書いたこの文章は多くの人がIEを使って、
MS Pゴシックの12ポイントで見てると思いますが、
この環境で「あ」という文字は11ドットで、「,」だと3ドットで、「 」(半角スペース)だと5ドットですよね。
こういうのを取得する方法が知りたいです。
ラベルコントロールのautosizeをtrueにして調べたいフォントに設定してcaptionに調べたい文字、
そしてwidthプロパティ見れば取得はできるんですが、
なんだかとってもカッチョわるいんで、コードだけで取得したいです。


895 名前: デフォルトの名無しさん 投稿日: 02/02/13 01:00
すいません。
サンプルをコピーしただけなのですが、
上手く動きません。
よろしくお願いします。
http://www.geocities.co.jp/SiliconValley-Cupertino/4003/



896 名前: デフォルトの名無しさん 投稿日: 02/02/13 01:01
>>893
1)は
txtLog.SelStart = Len(txtLog.Text)
txtLog.SelLength = 0
txtLog.SelText = "追加したい文字" & vbCrLf

ってな感じでいけると思う。
ただ、これだといつかオーバーフローするので、
一定文字数になったら昔のは破棄するようにしないとだめ。
If Len(txtLog.Text) > 10000 Then txtLog.Text = Right(txtLog.Text, 9000)
こんな感じかな。


897 名前: デフォルトの名無しさん 投稿日: 02/02/13 01:13
>>891
指定バイト位置を見て、シフトJISの第1バイトだったら、改行を挿入。

>>893
2はPictureBoxでPrint使えば? 色変えられるから。
1はメッセンジャー使ってないので、意味がわからない。

>>894
TextWidthプロパティ



898 名前: デフォルトの名無しさん 投稿日: 02/02/13 01:13
FormやPictureBoxのTextWidth、TextHeightメソッドでわかりますよ。



899 名前: 897 投稿日: 02/02/13 01:18
あ、メソッドだったのね。



900 名前: デフォルトの名無しさん 投稿日: 02/02/13 01:28
ふつー、GetTextExtentPoint32 APIつかわないかね?


901 名前: 898 投稿日: 02/02/13 01:54
>>900
VB的には別にふつーってこともない。

このAPIも挙げようかと思ったけど、
GetとExtentの部分しか思い出せずに検索したけど関数名がわからんかったよ(恥



902 名前: 894 投稿日: 02/02/13 02:23
>>897-901
どもありがとうございます。
思い通りに動きました。
感謝。


903 名前: 893 投稿日: 02/02/13 02:47
>>896さん、>>897さんレスありがとうございました!
さっそく試してみたいと思います。勉強になりました。
多謝m(_ _)m



904 名前: 名無しさんです 投稿日: 02/02/13 03:47
らるち〜のような、デスクトップやマイドキュメントのアイコンを
クリックしたら、DirListBoxが自動でそのパスに移動する、
ってのはどうやってやってるのでしょう?


905 名前: デフォルトの名無しさん 投稿日: 02/02/13 04:13
>>889
>>890
だって〜んドライバまでいくと
VBではどうしようもないでしょ〜
RIVA128ZX 8MBね〜古ッ
開発環境はこれでいいのだヽ(^。^)丿


906 名前: デフォルトの名無しさん 投稿日: 02/02/13 04:39
>>904
Pathプロパティにデスクトップのパスとか突っ込んでるだけでしょ。


907 名前: デフォルトの名無しさん 投稿日: 02/02/13 05:54
こんにちわ。
もしよろしければ教えて頂きたいことがあります。
MoveToEx〜LiniToまたはMoveToEx〜PolylineToで描いた一本の直線
をキーボードのボタンを押す事で、右回転、左回転させたいと思っています。
(時計の針みたいに)
簡単に作れるようでしたら、迷惑でなければ、プログラムの書き方を
教えて頂きたいと思います。お願いします。


908 名前: lookman ◆xLhiVh/Y 投稿日: 02/02/13 06:00
申し訳ありません
>>895の発言は別スレで公開した私のソフトをはなっから疑ってかかった方の
発言ですので無視して下さい


909 名前: lookman ◆xLhiVh/Y 投稿日: 02/02/13 06:40
>>908の続き
別スレというのは↓です
http://pc.2ch.net/test/read.cgi/tech/1013527404/l50



910 名前: デフォルトの名無しさん 投稿日: 02/02/13 09:01
863です。

>>867さん >>869さん
早速、試してみます、ありがとうございました。


911 名前: デフォルトの名無しさん 投稿日: 02/02/13 11:09
VB6を使用しています。
PCからRS232C経由で外部の機器へキャラクタコードを送信したいのですが、
特定のコードで送信データが NULL となってしまい、思ったように送信できません。
例えば
Mscomm1.Output=chr(244)
が送信できません。

244のほかに、129〜159 と 224〜252 で NULL になってしますようですが、
回避はできるのでしょうか?



912 名前: デフォルトの名無しさん 投稿日: 02/02/13 11:17
893さんに便乗して質問してしまいます。

リッチテキストでURL(らしき文字列)を認識して自動的に
下線を付し、リンクとしての機能を持たせるのはコーディング
によるものでしょうか?
それともそういうコントロールがあるのでしょうか?
コーディングしたいのですがちとやっかいそうですので質問してみました。

回答よろしくおながいします


913 名前: 904 投稿日: 02/02/13 12:08
>>906
すいません、うまく行かない原因がわかりました。指定するドライブ
が大文字だとダメみたいです。APIで特殊フォルダのパスを取得
したときの返り値が「C:\なんたら」だったのを小文字に変換したら
行けました。


914 名前: デフォルトの名無しさん 投稿日: 02/02/13 13:21
オフィスシリーズでVBプログラミングが出来るって聞いたんですが本当ですか?


915 名前: デフォルトの名無しさん 投稿日: 02/02/13 14:20
>914
VBAの事を指しているのなら本当だ。


916 名前: デフォルトの名無しさん 投稿日: 02/02/13 16:26
>>893
1)に関しては、>>896さんのでok。
補足すると、.SelStartはテキストより大きい値を設定するとテキスト末尾に
設定され、また.SelStartを設定したタイミングで.SelLengthは0になるので、

txtLog.SelStart = 65535
txtLog.SelText = "追加したい文字" & vbCrLf

こんなんでokかと。

オーバーフロー予防には、
If txtLog.SelStart > 30000 Then
  txtLog.SelStart = 0
  txtLog.SelLength = 10000
  txtLog.SelText = ""
  txtLog.SelStart = 65535
End If
とかいう手もある。(Rightで削った方がいいかもしれないが。)

2)のRichTextBoxに関しては、コントロールのバグっぽい挙動に悩まされること
うけあい。長時間稼働させてアプリが落ちたら、RichTextBox周りを疑ってみる
と良いかも。

  RichTextBox1.SelColor = &hFFCC00&
  RichTextBox1.SelText = "Hoge"

とりあえず、こんなふうにすると色がつくはず。

ただ、私の経験では、これを繰り返すといずれアプリが落ちる。
RichTextのコード(\f0\fs20\'90\'c0とかいうやつ)にゴリゴリ変換して、
.SelRTFにつっこんで解決したけど、Win2kと9xとの非互換とかあって困ったよ。


917 名前: とも 投稿日: 02/02/13 17:21
誰か教えてください!!
VB6.0でMediaPlayerをコンポートして、自作ゲームの効果音を再生してましたが、
MediaPlayer自体をバージョンアップして、6.4から→7.1に変えたら、vbpを開こうと
したら、「不正な処理をおこなったため」と出てきて、vbpが閉じられてしまいます!
お願いです!誰か教えてください!!


918 名前: デフォルトの名無しさん 投稿日: 02/02/13 18:39
vbpを直接エディタで開いてWMPコンポーネントのぶぶん消しちゃうとか。

ってか、ゲームの効果音をWMPコンポーネントで再生しようとしてる事自体ちょっと変だよ。



919 名前: 教えて君LV1 投稿日: 02/02/13 19:01
N88BASICでいうところの
「GET@」と「PUT@」はピクチャボックスであれこれやるのですか?
教えて下さい


920 名前: デフォルトの名無しさん 投稿日: 02/02/13 19:03
N88>>>>>>>>>>VB>HTML


921 名前: 教えて君LV1 投稿日: 02/02/13 19:11
>>920

え?どういうことでしょうか?


922 名前: デフォルトの名無しさん 投稿日: 02/02/13 19:22
>>911
>244のほかに、129〜159 と 224〜252 で NULL になってしますようですが、
バイト型で送ればOK。
日本語版VB5/6での使用が保証されてるASCIIコードは、32〜126。(ヘルプ参照)

>>912
よく見る、リッチテキスト中のURLリンクはコーディングによるものです。

>>914
VBとVBAは言語的にはほとんど同じ。
ただし、VBAはオフィスのどれかと一緒でないと動かせない。

>>919
PaintPicture



923 名前: 教えて君LV2 投稿日: 02/02/13 19:32
PaintPictureというのですか?
どのように使うのでしょうか?お願いします


924 名前: デフォルトの名無しさん 投稿日: 02/02/13 19:36
912です
>>922さん
ありがとうございました!
ヤパーリそうですよねぇ・・・<コーディング
結構めんどくさそうですが。。。


925 名前: デフォルトの名無しさん 投稿日: 02/02/13 19:51
うそこけ >>922

>>924 www.vbvbvb.com で探すと、ハイパーリンクのやり方が出てるよ。


926 名前: デフォルトの名無しさん 投稿日: 02/02/13 21:49
MSGBOXの背景の色や文字の大きさって変更できないんですかね?
自作でMSGBOXをつけるしかないんですかね?


927 名前: デフォルトの名無しさん 投稿日: 02/02/13 21:59
>>926
あきらめてください。


928 名前: デフォルトの名無しさん 投稿日: 02/02/13 22:07
ていうかそんな気持ち悪いインターフェース勘弁してください。


929 名前: デフォルトの名無しさん 投稿日: 02/02/13 22:15
>>926
俺のラッキーカラーは青だ。だからコンパネで青にしてる
あんたの趣味で勝手に変えんな。

それに世の中、色覚障害者もいるんだぞ。
曲がりなりにもWindowsはユーザー補助で障害者に対応しているんだぞ。
それを台無しにするきか。


930 名前: とも 投稿日: 02/02/13 22:16
>>918
遅れてすみません。なにぶん、初心者なものでもう少し詳しく教えていただけませんか?


931 名前: デフォルトの名無しさん 投稿日: 02/02/13 22:29
>>907
時計のようにだったら、円の公式を角度を媒介変数として表した以下の式が基本。
x = r * cos(t)
y = r * sin(t)

回転の公式とかも高校の教科書で見るとよいかも。



932 名前: デフォルトの名無しさん 投稿日: 02/02/13 23:09
>>923
Picture2.PaintPicture Picture1.Image, x1, y1, w1, h1, x2, y2, w2, h2

>>925
0505 リッチテキストボックスにハイパーリンク機能を実装する
APIのSetWindowLongを使うか。
自分で書くより面倒かも(笑)。



933 名前: デフォルトの名無しさん 投稿日: 02/02/13 23:17
>>930
ソースファイルの中に拡張子がvdpとfrmというファイルがあるだろ?
それをメモ帳とかで開いてみな、その中に「Object=」の行があるはずだ。
その中からWMPの行を削除しちまいな。
WMP以外のOCXを使ってたら一つじゃないかもしれないけど
どれがWMPのかぐらいは調べられるよな?
で、削除したらVBで開くとエラーになるけど気にするな。
削除したコントロールはPictureBoxに化けてるから、それを削除して
再度コンポーネントを追加してコントロールを再配置しな。

もう一つ教えてやろう。
>なにぶん、初心者なものでもう少し詳しく教えていただけませんか?
なんて文は、嫌われることはあっても歓迎されることはない。2chに限らずな。
あと文末の「!」もバカまるだしにしか見えない。ネタじゃないならやめとけ。



934 名前: 933じゃないが 投稿日: 02/02/13 23:29
933に補足。
言うまでもないとは思うが念のため。
vbpやfrmは編集前にバックアップとっとけよ。


935 名前: デフォルトの名無しさん 投稿日: 02/02/14 17:39
そろそろ新スレの予感…


936 名前: デフォルトの名無しさん 投稿日: 02/02/14 17:45
VB6(comctl32.ocx)で、ToolBarの幅を実行時に動的に変えるにはどうしたらいいのでしょうか?

VB5までは素直に「ToolBar.width」に幅を入れてやれば変わりましたが、VB6ではそれではダメな模様。
ButtomをPlaceHolderにしてWidthを指定してやったがそれでも×。何か情報をお持ちの方がいらっしゃればアドバイスをお願いします。



937 名前: デフォルトの名無しさん 投稿日: 02/02/14 19:45
フレーム内に入れたテキストボックスをコピーして、
オブジェクト配列をたくさん作りたいのですが、
ペーストすると、フレームの外に貼り付けられちゃって鬱です。
フレーム内にペースト出来ないもんですか?


938 名前: デフォルトの名無しさん 投稿日: 02/02/14 20:08
>937
フレームをクリックして、選択状態になっていることを確認してからペースト。


939 名前: デフォルトの名無しさん 投稿日: 02/02/14 20:09
>>937
テキストボックスをコピーした直後はFormにフォーカス移ってるから
フレーム選択して張り付けしるっ!


940 名前: 937 投稿日: 02/02/14 21:18
僕が天然でした。


941 名前: デフォルトの名無しさん 投稿日: 02/02/14 21:40
>>931
ありがとうございます。
高校の教科書ですか。何だか難しそう。



942 名前: デフォルトの名無しさん 投稿日: 02/02/14 23:12
>937
テキストでfrm開いて、Frameクラスの中に入れたれ


943 名前: デフォルトの名無しさん 投稿日: 02/02/14 23:59
Randomize ?
この?の部分が同じならどんなパソコンでも毎回発生する乱数は変わらないのですか?

あとテキストボックスで
ブブブビブ
毛毛毛毛毛
と複数行に出力されているとき
ブブブビブをA(0)に、毛毛毛毛毛をA(1)にと入れるにはどうすればいいでしょうか。




944 名前: デフォルトの名無しさん 投稿日: 02/02/15 00:07
>943
同じになるかどうかやってみそ!

下のは、
A = Split(Text1.Text, vbCrLf)



945 名前: 943 投稿日: 02/02/15 00:26
>>944
Randomizeは一応二つのパソコンで調べたら結果が同じでした。
「N88互換BASIC for Windows95」でも同じ結果だったので
恐らくどれでも同じ…なのかな?

>A = Split(Text1.Text, vbCrLf)
おぉ、これは凄いです!
ありがとうございます。まじでビビリました。


946 名前: 傍観者 投稿日: 02/02/15 00:28
引退しました。


947 名前: デフォルトの名無しさん 投稿日: 02/02/15 00:37
>>945
Seedが同じなら、同じ乱数を出すというのがMS乱数の仕様。
同じ乱数を再現する必要があるケースも世の中にはあるから。
で、引数無しの場合は、タイマーからSeedを拾ってくるのね。
これはN88-BASICより進歩してる。



948 名前: 943 投稿日: 02/02/15 00:48
>>947
>同じ乱数を再現する必要があるケースも世の中にはあるから。
おぉ、今の状態はまさしくそれです。
ありがとうございました。安心しました。


949 名前: デフォルトの名無しさん 投稿日: 02/02/15 01:55
JPGファイルを読み込んで、その画像を任意の大きさ(縦横の比率は同じ)に変更できて、JPG保存できるツールをつくりたいのですが、簡単ですか?
VBはほとんどやったことがありません。
初心者でもちょっと勉強すればつくれそうですか?


950 名前: デフォルトの名無しさん 投稿日: 02/02/15 02:32
>949
JPG保存は簡単にやろうと思ったら、外部OCXやDLLを使わないとできません。
ま、自力保存するコードを実験的に書いた人もいるが。

他はまぁ簡単だ。
君にとって簡単かどうかは俺にはわからんが。


951 名前: デフォルトの名無しさん 投稿日: 02/02/15 03:06
http://www.vector.co.jp/soft/win95/prog/se093621.html
これを使わせてもらおう。


952 名前: デフォルトの名無しさん 投稿日: 02/02/15 03:36
Intelのライブラリもメジャーだ。


953 名前: デフォルトの名無しさん 投稿日: 02/02/15 13:25
クラスモジュールの使用方法について参考になるもの
何か教えてください!


954 名前: デフォルトの名無しさん 投稿日: 02/02/15 14:02
文字の検索で変数aaaからダブルクオーテーションを検索したいのですが
instr(,aaa,""")じゃだめなようですのでだれか助けてください・・・。


955 名前: デフォルトの名無しさん 投稿日: 02/02/15 14:04
>954
うまくいくまで " の数を増やしてみれ(乱暴)


956 名前: デフォルトの名無しさん 投稿日: 02/02/15 15:47
マイドキュメントやデスクトップのフルパスを取ってくる関数ってありますか?


957 名前: デフォルトの名無しさん 投稿日: 02/02/15 16:46
>956 SHGetSpecialFolderLocation API


958 名前: 956 投稿日: 02/02/15 17:07
>>957
サンクス! サンプル発見できました


959 名前: デフォルトの名無しさん 投稿日: 02/02/15 17:22
VB5を使っています。
VBからアウトラインフォントで印刷するにはどうすればいいのでしょうか?


960 名前: デフォルトの名無しさん 投稿日: 02/02/15 18:37
>>954
instr(aaa , """ ) じゃないの?



961 名前: 2重引用符 投稿日: 02/02/15 18:40
>>960
dc = """
a = "ab" & dc "def"
i = instr( a ,dc )
debug.print i



962 名前: 2重引用符 投稿日: 02/02/15 18:41
>>961
あ、間違い。

dc = """
a = "ab" & dc & "def"
i = instr( a ,dc )
debug.print i



963 名前: ◆tmkzRAXY 投稿日: 02/02/15 18:46
>962
InStr(aaa, Chr(34))
これでもいいよね?


964 名前: スガ 投稿日: 02/02/15 19:20
XPで印刷するときに、
printer.port = "....."
とかってやると、ウインドウズ98、95なら
ちゃんと出来るのに
XPだとエラー帰ってくるのはナゼだ?


965 名前: デフォルトの名無しさん 投稿日: 02/02/15 22:39
>>954
「"あいう""えお"」は「あいう"えお」という中身を意味する。
要は2回重ねるのだよ。


966 名前: デフォルトの名無しさん 投稿日: 02/02/15 22:41
数字の0〜9だけテキストボックスに入れたい場合は

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii >= 48 And KeyAscii <= 57 Then
KeyAscii = 0
End If
End Sub

でいいのでしょうか?


967 名前: デフォルトの名無しさん 投稿日: 02/02/15 23:04
>>964
V友QA板とマルチポスト。



968 名前: 傍観者 投稿日: 02/02/15 23:07
>>967
傍観しとけ。
こっちのは投稿がやや手抜きになってるんだから。


969 名前: デフォルトの名無しさん 投稿日: 02/02/15 23:18
>>966
そのコードだと、数字の0〜9だけ無視。
っていうか、それくらい何でまずやってみないの?



970 名前: デフォルトの名無しさん 投稿日: 02/02/15 23:20
>>968
946の引退宣言は撤回?(笑)




971 名前: おせっかいさん 投稿日: 02/02/15 23:27
>>949
デジタル画像を拡大・縮小すれば、画質は確実に落ちるのに
やりたがるヤツが多いなあ。
Photoshopとかで高度な演算をすれば、画質の劣化はマシだけど。



972 名前: ランダム名無しさん 投稿日: 02/02/15 23:30
>>953
前スレの900番台に、クラスの参考になるサンプルコードがある。



973 名前: デフォルトの名無しさん 投稿日: 02/02/15 23:44
      ♪
  ♪
♪  ∩ ∧_∧   
   ヽ ( ´A`)  なんじゃこりゃあああ!
    ヽ ⊂ ヽ   
     O-、 )〜  
       U
http://www.puchiwara.com/hacking/
      ♪
  ♪
♪  ∩ ∧_∧   
   ヽ ( ゚ー゚)  えろいニャー!
    ヽ ⊂ ヽ   
     O-、 )〜  
       U



974 名前: デフォルトの名無しさん 投稿日: 02/02/16 00:25
V友って土日休日のカキコが激減するのね。
趣味グラマとしては、ちとさみしい。



975 名前: デフォルトの名無しさん 投稿日: 02/02/16 00:44
はじめまして。
フォームを開いて1秒後に「A」と表示して2秒後に「B]と
表示してABCDE・・・と順に表示したいんですがどうすれ
ばいいんでしょうか?



976 名前: デフォルトの名無しさん 投稿日: 02/02/16 00:52
タイマーを使うなら
Private mlngCount As Long
Private Sub Form_Load()
Timer1.Interval=1000
Timer1.Enabled=True
End Sub
Private Sub Timer1_Timer()
mlngCount=mlngCount+1
if mlngCount >= 26 Then Exit Sub
Debug.Print Chr$(64+mlngCount)
End Sub


977 名前: デフォルトの名無しさん 投稿日: 02/02/16 00:58
>975
1秒ごとにカウントアップする例がここにある。まずはこれから。
ttp://www18.tok2.com/home/mixtea/vg_2.htm



978 名前: デフォルトの名無しさん 投稿日: 02/02/16 01:02
>976
>977ありがとうございます。
見てからちょっと考えます。



979 名前: デフォルトの名無しさん 投稿日: 02/02/16 01:03
>>976
フォームに表示するなら、Debug.Print → Print
その場合は、3行目あたりに Form1.AutoRedraw = True が必要。




980 名前: デフォルトの名無しさん 投稿日: 02/02/16 01:11
>>979
フォローども。
下から三行目はExit SubでなくTimer1.Enabled=Falseのがベターでした。スマソ


981 名前: デフォルトの名無しさん 投稿日: 02/02/16 01:24
>>980
それも書こうと思ったけど、タイマーは動き続けてもいいかなと。
そのために、Integerじゃなくて、Longにしたのかと(笑)。



982 名前: 959 投稿日: 02/02/16 01:29
959です。何度もすみません。
解説ページのURLなどでも構いませんのでどなたかご教示
願えませんでしょうか?
印刷してもフォントがつぶれるので困っています。


983 名前: 975 投稿日: 02/02/16 01:32
みなさまありがとうございます。
書いて頂いたソースを元に(ほとんど完成品ですが)
なんとかやれそうです。



984 名前: デフォルトの名無しさん 投稿日: 02/02/16 01:35
>>982
いまどうやってるのか、最低限の再現コードを書かないと、
回答しようがない。



985 名前: 959 投稿日: 02/02/16 01:41
>>984
すみません。ありがとうございます。

フォームにLineやShape+テキストボックスで簡単な表を書いて、
Form1.PrintForm
で印刷しようとしています。これ以外の印刷方法はよく知りません。
テキストボックスのフォントサイズは8で、印刷するとつぶれてしまい
ました。同じサイズのフォントをWordから印刷すると普通にきれいでした。
それで調べてみてアウトラインフォントとビットマップフォントがあると
いうことまでは分かりましたが、そこからどうすればいいのかが全く
分かりません。
よろしくお願いいたします。


986 名前: デフォルトの名無しさん 投稿日: 02/02/16 01:49
>>985
PrintFormメソッドは無理やり拡大してるから、印刷が汚いの。
フォントサイズを上げて、Printerオブジェクトに印刷するといい。
印字品位を最高に設定して。

フォントも、TrueTypeのフォントを選択すればいい。

959の質問だと、API使って、超拡大文字の輪郭線を抽出するんだと思った。



987 名前: 959 投稿日: 02/02/16 01:57
>>986
Printerオブジェクトというものを知りませんでした。
本当にどうもありがとうございます!
長々とすみませんでした。


988 名前: デフォルトの名無しさん 投稿日: 02/02/16 02:36
labelに計算した結果を表示させたいのですが、

答え:○○
となっているのを

答え:
○○

というふうにしたいのです。
labelの途中で改行させることって出来ますか?


989 名前: デフォルトの名無しさん 投稿日: 02/02/16 02:41
>>988
Label1.Caption = "答え:" & vbCrLf & "○○"


990 名前: デフォルトの名無しさん 投稿日: 02/02/16 02:44
>>989
即レス感謝です。 出来ました!! ありがとうございます。


991 名前: デフォルトの名無しさん 投稿日: 02/02/16 03:10
>>988
聞くようなことか?
HELPないんかい
調べんのおっくうかい



992 名前: 引っ越します 投稿日: 02/02/16 16:29
http://pc.2ch.net/test/read.cgi/tech/1013844542/


993 名前: デフォルトの名無しさん 投稿日: 02/02/18 14:35
>>991
HELPに載ってるんかい?


994 名前: デフォルトの名無しさん 投稿日: 02/02/18 21:23
vbでGIF画像をjpgに変換できるDLLってあります?
できればフリーのがいいです


995 名前: 8484 投稿日: 02/02/18 21:24
『ハッキングのわざが手に取るようにわかるサイト』または
『ハッキングのわざが手に取るようにわかる本』に書かれている内容を
実践・計画をした場合、以下の罪・違反・侵害に問われる可能性アリ。
どうかご注意して頂きたい。
http://www.puchiwara.com/hacking/



2ちゃんねるは、ここのサーバを使ってるです。。。