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

VB初心者質問スレ Part4

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
VB初心者質問スレPart3
http://pc.2ch.net/test/read.cgi/tech/1000523122/
0653デフォルトの名無しさんNGNG
>>642
WORKGROUP 内のコンピュータのIPアドレス取得
http://www.mitene.or.jp/~sugisita/family/papa/vb/api_net.html
「現在接続しているIPネットワーク先のIPアドレスとMACアドレスの取得」

IPアドレス→ホスト名
http://www.mitene.or.jp/~sugisita/family/papa/vb/api_net.html
「IPアドレスよりホスト名の参照」

ユーザ名は分からん。
0654デフォルトの名無しさんNGNG
>>651
漏れはこんな感じでやってる。

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
        Debug.Print LCase(sPathName)
    End If

End Sub
0655( ゚д゚)NGNG
>>652 >>654
レスども。
そのあたりの煎で調べてみます。
0656648NGNG
>>650
サンクス 英語に戸惑ったけどこれで大丈夫みたい
0657デフォルトの名無しさんNGNG
Drag&Drop後のMouseUpイベントを取得する方法について教えて下さい。

具体的には...
DragModeを手動にし、MouseDows時にDragメソッド(引数 1)で
Drag&Dropを行うのですが、Drag&Drop後のMouseUpイベントが
取得できません。

フォーム外にDragされた場合に、イベントを取得できないので、
MouseUpであれば、フォーム外でもイベント取得できるので、
どうにかMouseUpを取得できれば良いのですが
0658デフォルトの名無しさんNGNG
IEからExcelファイルへのリンクをクリック>Excel起動として
開いたExcelファイルのセルにhtmlフォームのテキストボックスの内容を
反映させるようなVBAってありますでしょうか?
IE5.0 と Excel97です。

ヒントだけでもよいのでお願いできませんでしょうか?


HTML側
<FORM ACTION="***.cgi"> /* ここは適当 */
<INPUT TYPE="text" NAME="text">
<BR>
<A HREF = "xxx.xls">xxx.xls</A> /* このxlsにtextの内容を読ませたい */
</FORM>

EXCEL側
Private Sub Workbook_Open()
Call Read_text /* 起動時に関数呼び出し */
End Sub

Private Sub Read_text()
Dim txtField As String

/* ???? */
/* ここでテキストボックスの内容を取得したい */

ActiveCell.FormulaR1C1 = txtField
Range("A1").Select
End Sub
0659きょうすけNGNG
VBAのProperty Windowのフォントがいきなり、変な文字になって、内容が読めなくなってしまいました。
だれか、復旧方法を教えてください。VB Editorから入っていき、フォームを作り、Propertyを見ると、
文字がイタリックのさらに崩したような状態になっていて、使えません。 だれか助けてください。
0660デフォルトの名無しさんNGNG
質問2つ。
・電話番号欄があって、半角数字とハイフンしか入れられなくしたいのですが
 IsNumeric使うとハイフンも受け付けなくなるので、なんとかなりませんか。
・Form_Loadで、セットフォーカス使うと参照がおかしいみたいな事
 言われんですけど、無理なんですか?
0661デフォルトの名無しさんNGNG
>>660
上の解答(らしきもの)
「マスク エディット (MaskEdBox) コントロール」
0662デフォルトの名無しさんNGNG
>>660
>半角数字とハイフンしか入れられなくしたいのですが
Key Pressイベントで、Key Asciiを調べて、数字とハイフン以外は
KeyAsciiに0を設定すればいい。キーコードについてヘルプで検索すれ。

>Form_Loadで、セットフォーカス使うと参照がおかしいみたいな...
これだけじゃ何をしたいかわからん。
0663661NGNG
「プロシージャの呼び出し、または引数が不正です。(Error 5)」

つまりこれを回避したいと言うことかな?
0664名無しさん ◆MZ2000oY NGNG
Form_Load イベント内では SetFocus は使えない。
0665661NGNG
Form_Paint あたりで SetFocus だな。
0666デフォルトの名無しさんNGNG
>>659
キャッシュのクリアか、再インストール (多分)

http://www.zdnet.co.jp/help/books/at_tb/ch04/ch04_07a.html
0667660NGNG
みなさんありがとう。
Form_Paintって初めて聞きました。
Form_Loadより後に起こるイベントってあるんですね。ビクリしました。
0668デフォルトの名無しさんNGNG
>>658
クリップボード経由だけど、それらしいことはできる。

「セキュリティの設定」で「スクリプトによる貼り付け処理の許可」を有効にする。
(セキュリティとしては大いに問題あり)

HTMLここから--------------------------------------------
<script language="vbscript">
    Sub txtCopyToClipboard()
        set rngText = frmText.txtTarget.createTextRange()
        rngText.execCommand("copy")
    End Sub
</script>

<form id="frmText">
    <input id="txtTarget" type="text" name="txtTarget">
</form>
<a href="./xxx.xls" language="VBScript" onClick="txtCopyToClipboard()">xxx.xls</a>
HTMLここまで--------------------------------------------

EXCELここから--------------------------------------------
Private Sub Workbook_Open()
    Call Read_text
End Sub

Private Sub Read_text()
    Dim txtField As String
    Dim objData As DataObject
    
    Set objData = New DataObject
    objData.GetFromClipboard
    txtField = objData.GetText
    
    ActiveCell.FormulaR1C1 = txtField
    Range("A1").Select
End Sub
EXCELここまで--------------------------------------------
0669デフォルトの名無しさんNGNG
仕事で緊急にVBを使わなくてはならなくなりました。
社内でパソコン詳しい人が居ないもので私が使わないといけないのです。

パソコン暦3年のプログラム初心者が初心者本片手に12時間みっちりやって
どこまで出来るようになりますか?
ちょっとしたプログラムぐらいは読めるようになれますか?
0670デフォルトの名無しさんNGNG
>>669
とりあえずテキストボックスやボタンなどを配置して
Windowsの標準的なインターフェースを作れるようになるでしょ。
後はどんな処理をさせるかだけど、Webで調べれば大抵解決するよ。
0671デフォルトの名無しさんNGNG
>>669
 開発に行き詰まったらいつでもここに来ればいいさ(´∀`
0672デフォルトの名無しさんNGNG
>669
仕事で使う時ってのは到達すべき目標が見えるから覚えるのも早いで。
WebでQ&Aできる掲示板でも見つけておけ!
0673デフォルトの名無しさんNGNG
>>669
とりあえずコメントだけは面倒でもキッチリかけよ。
後々メンテするときに非常に役に立つからな。
0674デフォルトの名無しさんNGNG
InetコントロールでOpenURLメソッドを呼ばないで(GETしないで)
ヘッダー取得できますか?OpenURLの後GetHeaderするとできますが
いっかい全部落としてから取得してしまうんで。
0675きょうすけNGNG
>>659>>666
レスありがとうございます。でも、まだ直りません。
Officeを再インストールしても駄目でした。まさか、Windowsを再インストールしなければならないのでしょうか?

画面をコピーしたものを参考で公開しますので、見てみてください。

http://kyosuketsuda.hoops.ne.jp/Images/Problem.gif

誰か、助けてください。
0676669NGNG
ありがとう。
ここはやさしい人も多いのね。
私がんばるよ。。
0677デフォルトの名無しさんNGNG
>>675
Windowsの再インストってそんなに難しいことじゃないよ。
ネットの設定だけは、しっかりメモっとけよ!
0678弧愚NGNG
トリップとれるとこ知りませんか?
0679 調べて欲しいNGNG
MIME-Version: 1.0
Received: from [143.90.131.182] by hotmail.com (3.2) with ESMTP id MHotMailBCF5F31A005C400438A58F5A83B6B91B0; Sun Jun 17 05:52:43 2001
Received: from cfb87420 ([61.116.15.136]) by t-mta4.odn.ne.jp with SMTP id <[email protected]> for <[email protected]>; Sun, 17 Jun 2001 21:52:41 +0900
From [email protected] Sun Jun 17 05:53:01 2001
Message-ID: <000501c0f724$2beb5420$880f743d@cfb87420>
References: <[email protected]>
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2314.1300
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
0680デフォルトの名無しさんNGNG
>>675
昔似たような現象になったことあったな。
そんときはセーフモードで上げれば直ったけど
すぐにまた同じ現象になってな。
結局再インストールしたよ。
入れなおした方が絶対早いと思うぞ。
0681デフォルトの名無しさんNGNG
>>674
OpenURLってのは細かい制御ができないかわりに楽なんだよね。
細かいことをしたいならば面倒でもExecuteでやらんと。
Content-Lengthとかのヘッダ取るだけならこんな感じかな。

Private Sub Command1_Click()
  Inet1.Execute "http://アドレス", "GET"
End Sub
Private Sub Inet1_StateChanged(ByVal State As Integer)
  Select Case State
    Case 12
      Debug.Print "Content-Type = "; Inet1.GetHeader("Content-type")
      Debug.Print "Content-Length = "; Inet1.GetHeader("Content-Length")
      Debug.Print "Last-modified = "; Inet1.GetHeader("Last-modified")
      Inet1.Cancel '受信もしたいならここでGetChunk繰り返せ
  End Select
End Sub

ヘッダ全部が欲しいならWinsock使った方がいいかもな。
0682674NGNG
>>681
どうもです。できました。
それにしてもInetコントロールは良く分からないですね。
0683デフォルトの名無しさんNGNG
>648
Ctrl+A→Del押すだけじゃん。

>660
Loadイベントの最後あたりで、Me.Showしてから、SetFocusする手もある。
ようは、見えないコントロールにフォーカスは当てられないってこと。
0684デフォルトの名無しさんNGNG
Textの特定の文字を置換するにはどうすればいいのですか?
InStr関数がよくわかりません。

やりたいことの例↓

アボーン
アベーン
アブーン

と言う文章の「ーン」を検索して「〜ソ」に置換したいのです。
0685デフォルトの名無しさんNGNG
>>684
Replace("アブーン","ーン","〜ソ")
0686デフォルトの名無しさんNGNG
>684
Text1.Text = Replace(Text1.Text, "ーン", "〜ソ")
ほかの「ーン」が変換されたくなかったら、
各4字で計3回やればいい。
0687デフォルトの名無しさんNGNG
>>685
>>686
ありが�d
0688NanaNGNG
VBでウィルスは作れますか?
0689デフォルトの名無しさんNGNG
>>688
http://www.symantec.co.jp/region/jp/sarcj/data/w/w32.goner.a%40mm.html
0690デフォルトの名無しさんNGNG
>>658
これ(>>668)うまくいった?
0691デフォルトの名無しさんNGNG
メニューとかの名前を付けて保存(A)とかの下にボーダーがありますが
これってどうやって出すんですか?
0692デフォルトの名無しさんNGNG
>>691
キャプションに - を入れる。
0693691NGNG
>>692
すいません。ありがとうございます。
ちなみにこういうのってMSDNとかでどのように検索すれば出てきますか?
検索してみたのですがいまいちでして…
0694デフォルトの名無しさんNGNG
>>693
「メニュー」をキーワードにすると、「メニュー エディタで作成」という
項目が見つかるはず。
0695デフォルトの名無しさんNGNG
>>693
MSDNライブラリ(ヘルプ)の「メニュー (Menu) コントロール」っていう
一番基本的なページに書いてあるじゃん。
全部読めとは言わないけど、ヘルプの目次ぐらいは目を通しておくといいよ。
ヘルプの引き方もプログラミング能力の一部だからね。
えらそうでスマソ。
0696デフォルトの名無しさんNGNG
メニューコントロールに限らないのでは?
コマンドボタンでも使うよ。
0697692NGNG
>>693
スマソ 区切り線と勘違いした。

「保存(&A)」にするとよろしいかと
0698デフォルトの名無しさんNGNG
質問してもいいですか?
0699デフォルトの名無しさんNGNG
>>698
もう質問してるね。
0700698NGNG
>>699
しまったっ!
0701デフォルトの名無しさんNGNG
WinSockを使って(OCXじゃないよ)ソケットの送受信データを監視できない?
あと、使用中のソケットの列挙方法を教えてくれ。

あと、複数のイベント(FD_WRITEとか)をハンドラしたいんだけど…。
0702NanaNGNG
>689
サンクスレス
ウィルス作るためにVBマスターしてみます
0703名無しさんNGNG
拡張子変更ってどうやるんですか
0704デフォルトの名無しさんNGNG
>>703

rename();
0705デフォルトの名無しさんNGNG
>>702
なんか感謝してないみたい(w thanksless
0706( ゚д゚)NGNG
VB5なんですが・・
DBGRIDをデータと連結しないで使ってるサンプルどっかにない?
(なんだか訳わからんぞ、これ)
0707デフォルトの名無しさんNGNG
>>701
 具体的にどういうもんを作りたいからそうしたいのん?
 送受信データ監視ってそういうイベントとメソッドあるでしょ?
 FTP関係?P2Pみたいなの作んの?
0708            NGNG
あのー、秋葉に逝ったときに
VC++5エンタープライズが7000円で
売ってたけど買いですか?
ちなみ割れじゃなくて中古ソフトとして。
0709デフォルトの名無しさんNGNG
>706
ってか、意味あるんかソレ?
DataをBoundするGridだからGridなんであって...
0710デフォルトの名無しさんNGNG
ヘルプの中にあるバージョン情報とかってMsgBoxとかで作るの?
0711デフォルトの名無しさんNGNG
>>710
それでもいいし、Form で作ってもいい。

それよりも、「プロジェクト」-「フォームモジュール」-「バージョン情報」で
簡単にバージョン情報が追加できる。
0712デフォルトの名無しさんNGNG
ボタン押したら新規にディレクトリを作る方法を教えて下さい。
0713( NGNG
MkDir
0714712NGNG
>>713
できやした。Tnx。
0715デフォルトの名無しさんNGNG
コンボボックスってAppearanceで2Dに設定しても2Dにならないのですが、
他に何か設定しないといけないのでしょうか。
0716デフォルトの名無しさんNGNG
すみません、質問です
文字列の置き換え(Replace)で、「改行」を探知できますでしょうか
ある文章から「改行」を詰めたいんですけど
よろしくお願いします
0717デフォルトの名無しさんNGNG
>>716
改行を消したいって意味?
vbCrLfを指定するだけじゃ・・? 違った?
0718デフォルトの名無しさんNGNG
 
0719デフォルトの名無しさんNGNG
>716
空行を無くしたいなら、vbCrLf & vbCrLf → vbCrLf でオッケー。
もしスペースだけの行があったら、先にそれを始末する必要があるけど。
0720デフォルトの名無しさんNGNG
test
0721デフォルトの名無しさんNGNG
>>702
ここの過去ログだけでもそれなりのものは作れそうだが
0722デフォルトの名無しさんNGNG
CommonDialog1.Filter = "画像ファイル(*.BMP)|*.bmp"
でBMPファイルを開けるのですが
画像ファイル(BMP.JPG.GIF)
というように1つのフィルターで複数開けるようにしたいのですが
どのようにすればよいのでしょうか?
0723デフォルトの名無しさんNGNG
>>722
CommonDialog1.Filter = "ピクチャ (*.bmp;*.jpg;*.gif)|*.bmp;*.jpg;*.gif"
0724722NGNG
>>723
Thanx
0725デフォルトの名無しさん NGNG
VBAはそこそこ出来るけど、
VBとどう違う???
VBはやっぱ難しい?
アホな質問でスマソ。
0726P061198129228.ppp.prin.ne.jpNGNG
プロジェクト-フォームモジュールの追加で
追加したフォームなどをメニューエディタで作った項目から
開くにはどのようにしたらよろしいのでしょうか?
0727デフォルトの名無しさんNGNG
>>725
VBとVBAでは言語規則は殆ど同じ。
言語というよりコントロールの使い方がキモやね。
違うところといったらVBはコントロールとかが作れるってことかな。
(EXEが作れるかどうかという違いも当然あるけど)
その分難しいといえば難しいけど、
リンゴとミカン、どっちがおいしい?って聞いてるみたいなもんだよ。
好みや使い方でも変わってくる。
でもまぁ、VBAでできることは全部VBでできるけど
逆は無理なことがあるってかんじかな。
0728デフォルトの名無しさんNGNG
>>726
Load frmSecond
frmSecond.Show
0729725NGNG
>>727
Thanks!
0730デフォルトの名無しさんNGNG
質問です。お願いします。
Cドライブのルートから、全ディレクトリ名とファイル名を
-----------
■C:\
[DIR]
Documents and Settings,Program Files,WINNT・・・
[FILE]
AUTOEXEC.BAT,CONFIG.SYS・・・
■C:\Documents and Settings\
[DIR]
Administrator,All Users,Default User・・・
■C:\Documents and Settings\Administrator\
[DIR]
Application Data,Cookies,Favorites・・・
[FILE]
NTUSER.DAT,ntuser.dat.LOG・・・
 ・
 ・
 ・
■C:\Program Files\
[DIR]
・・・
-----------
こんな風にTXTファイルに書き出したいんですけど、どうもループの
かけ方がうまく考えられません。どなたか上手い考え方あれば
ご教授ください。お願いします。
0731デフォルトの名無しさんNGNG
>>730

これ(>>597)を使えばよろしいかと
0732デフォルトの名無しさんNGNG
>>730 再帰
0733730NGNG
>>731
うわ。過去ログ見てないのバレバレっすね;
ありがとうございました。
>>732
どゆこと?
0734732NGNG
プログラムの勉強しる
0735731NGNG
>>733
再帰処理を使えってことね。
つまり >>597 がやっていること

>>597 をそのまま使うと死ぬよ
気をつけて
0736デフォルトの名無しさんNGNG
Do...Loop に条件式指定しないで
If...Then Exit Do って書き方ってあまり良くないですか?
それとcontinueないから全然Do...Loop使えないんですけど。
0737デフォルトの名無しさんNGNG
>>736
いいんじゃないの?

continueないと不便だけど、Ifでなんとかできるでしょ。
0738デフォルトの名無しさんNGNG
Labelの中で改行ってできますか?
0739デフォルトの名無しさんNGNG
>>738
Label1.Caption = "AAA" & vbCrLf & "BBB"
0740デフォルトの名無しさんNGNG
VB6で、
Data Environmentを追加したいのですが方法がわかりません。
プロジェクト→コンポーネント→デザイナタブ、の中にData Environmentチェックボックスが存在しません。

また、表示→データビューウィンドウ→DataEnvironmentの追加を選ぶと、
「ActiveXコンポーネントはオブジェクトを作成できません」というエラーになります。どなたか対処法を教えていただきたいのですが?
0741厨房王NGNG
こんちわ〜、以前ウイルス作成者の疑いをかけられた者です。あの
プログラムは努力の末、完成しました。でもウイルスを作ろうと思
ったのでは決してありません。現在はデータベースを構築し、筆王
に近い形のアプリを作成したいと思っています。あれぐらいなら可
能だと思うのですが、みなさんはどう思われますか。

味噌を言えば、はがきの文面をどのようにして、VBで作成するかで
すが、まずはデータベースから。分からない事があったら、またお
願いします。
0742デフォルトの名無しさんNGNG
>>741
こんちわ。多分、貴方を以前ウイルス作成者ではないかと疑ったと
貴方が思っている者です。
心配しないでください。あれくらいの事がわからない奴に
ウイルス程度でも作れるとは思ってませんから。
市販アプリと同じようなものが作れると思ってしまうのは
初級後半〜中級者が陥りやすい罠ですが、誰もが通る道ですので
気にしないでがんばってくださいね。

まぁ俺も厨房っちゅうことだ(藁
俺でわかることなら答えるんでまたきーてくれや。
0743デフォルトの名無しさんNGNG
標準コントロールやOCXに頼らず自前で描画すりゃVBで作った
ようには見えないモノも十分作れます。
ただし、そこまでしてVBを使う事に意味があるかどうかは各々
の価値観次第です。
0744デフォルトの名無しさんNGNG
すみません質問があるんですけど。。。

繰り返し公式なんですけど
x2=a*x1+5*x1/(1+x*1^2)+y1,y2=-x1
におけるカオスを求めたら
アニメーションするプログラムであることがわかったんですけど
これだけではだめな見たいなんです
0745デフォルトの名無しさんNGNG
>>744 ワラタ。おちつけ。
0746nksNGNG
正方形のpictureboxを、平行四辺形に、さらに台形へ、さらに菱形に...と
変形する簡単な方法を、どなたかご存知ないでしょうか?
教えてください。
0747名無しさんNGNG
>>746
ピクチャボックス自体は大きさしか変わらない。
描画したものを変形させるってことなら計算。
0748デフォルトの名無しさんNGNG
>>746
フォームの形なら比較的簡単に変えられますが、、、
ピクチャボックスは分かりません スマソ
0749デフォルトの名無しさんNGNG
>746
PictureBoxの中に表示されてる画像もせっとで変形って事?
それとも、枠のみ変形(画像自体は変形しない)って事?

前者は難しい。
後者なら、簡単だじゅ。
0750744NGNG
すみませんお願いします
わたし独りの力じゃどうにも。。。
0751nksNGNG
画像自体も変形すると言うことです。
0752748NGNG
>>751
ピクチャボックスだけならこんな感じかな? イカサマくさいけど
フォームにピクチャボックスを配置して、次のコードをコピペ

'標準モジュール
Option Explicit

Public Declare Function SetWindowRgn Lib "user32" ( _
        ByVal hWnd As Long, _
        ByVal hRgn As Long, _
        ByVal bRedraw As Boolean) As Long
        
Public Declare Function CreatePolygonRgn Lib "gdi32" ( _
        lpPoint As POINTAPI, _
        ByVal nCount As Long, _
        ByVal nPolyFillMode As Long) As Long
        
Public Declare Function DeleteObject Lib "gdi32" ( _
        ByVal hObject As Long) As Long

Public Type POINTAPI
        x As Long
        y As Long
End Type

Public Const ALTERNATE = 1
Public Const WINDING = 2
■ このスレッドは過去ログ倉庫に格納されています