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

VB初心者質問スレ Part4

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
VB初心者質問スレPart3
http://pc.2ch.net/test/read.cgi/tech/1000523122/
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
0753748NGNG
'フォーム
Option Explicit

Private mlngRet As Long
Private mlngFormation As Long

Private Sub Deformation(lngFormation As Long)

    Dim hRgn As Long
    Dim lpPoint(1 To 4) As POINTAPI

    Select Case lngFormation
        Case 1
            lpPoint(1).x = 100
            lpPoint(1).y = Picture1.Top
            lpPoint(2).x = Picture1.Width
            lpPoint(2).y = Picture1.Top
            lpPoint(3).x = Picture1.Width - 100
            lpPoint(3).y = Picture1.Top + Picture1.Height
            lpPoint(4).x = Picture1.Left
            lpPoint(4).y = Picture1.Top + Picture1.Height
        Case 2
            lpPoint(1).x = 100
            lpPoint(1).y = Picture1.Top
            lpPoint(2).x = Picture1.Width - 100
            lpPoint(2).y = Picture1.Top
            lpPoint(3).x = Picture1.Width
            lpPoint(3).y = Picture1.Top + Picture1.Height
            lpPoint(4).x = Picture1.Left
            lpPoint(4).y = Picture1.Top + Picture1.Height
0754748NGNG
        Case 3
            lpPoint(1).x = Picture1.Width \ 2
            lpPoint(1).y = Picture1.Top
            lpPoint(2).x = Picture1.Width
            lpPoint(2).y = Picture1.Top + Picture1.Height \ 2
            lpPoint(3).x = Picture1.Width \ 2
            lpPoint(3).y = Picture1.Top + Picture1.Height
            lpPoint(4).x = Picture1.Left
            lpPoint(4).y = Picture1.Top + Picture1.Height \ 2
        Case 4
            lpPoint(1).x = Picture1.Left
            lpPoint(1).y = Picture1.Top
            lpPoint(2).x = Picture1.Width
            lpPoint(2).y = Picture1.Top
            lpPoint(3).x = Picture1.Width
            lpPoint(3).y = Picture1.Top + Picture1.Height
            lpPoint(4).x = Picture1.Left
            lpPoint(4).y = Picture1.Top + Picture1.Height
    End Select

    hRgn = CreatePolygonRgn(lpPoint(1), 4, WINDING)

    Call DeleteObject(mlngRet)
    mlngRet = SetWindowRgn(Picture1.hWnd, hRgn, True)
    
End Sub
0755748NGNG
Private Sub Form_Load()
    mlngFormation = 1
    With Picture1
        .BorderStyle = 0
        .Top = Me.ScaleTop
        .Left = Me.ScaleLeft
        .Height = Me.ScaleHeight
        .Width = Me.ScaleWidth
    End With
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Call DeleteObject(mlngRet)
End Sub

Private Sub Picture1_Click()
    Call Deformation(mlngFormation)
    mlngFormation = mlngFormation + 1
    If mlngFormation > 4 Then mlngFormation = 1
End Sub
0756748NGNG
実行してピクチャボックスをクリックしてみて
はずしてたらスマソ

画像の変形は面倒
0757748NGNG
ピクチャボックスの背景は白で、
スケールモードはピクセルにしてね
0758デフォルトの名無しさんNGNG
>>750 ワラタ。おちつけ。

質問の要点が分からん
0759744NGNG
>>758
すみません返信ありがとうございます
この繰り返し公式のプログラムを実行すると、
アニメーションするんですが、
これ以外にも意味があるらしいんです
0760nksNGNG
ありがとうございました。早速ためしてみます。
0761デフォルトの名無しさんNGNG
インストールしたらテキストファイル(Readme)をデスクトップに作りたいんですけど、
デスクトップってインストールしている環境によってPATHが違うじゃないですかー。
これって、どうやって指定したら良いんですかい?
0762デフォルトの名無しさんNGNG
>>761
そのくらい自分で調べれ

http://www.google.com/search?num=100&hl=ja&q=%83f%83X%83N%83g%83b%83v%81@%83p%83X%81@%8E%E6%93%BE&lr=
0763デフォルトの名無しさんNGNG
>>759
何を聞きたいのか、それでは解りません。
0764761NGNG
>>762 ありがとうございますー。
0765デフォルトの名無しさんNGNG
>761
オレのデスクトップに、ファイルやショートカットを
勝手に置くようなアプリは100回削除してやる!
0766デフォルトの名無しさんNGNG
VBから既存のエクセルファイルを参照(読み書き)して上書き保存したいんですけど
成功してもバックグランドでEXCELが解放されなくて残っちゃうんですけどどうすれば
いいんしょうか?
ちなみにソースはこんな感じ
出先なんでスペルミスとかあるかもしれないけど起動と読み書きと閉じることは成功
してます。
誰か教えてください。

dim exl as object
dim wb as object
dim ws as object

set exl=createobject("excel.application")
set wb=exl.application.workbooks.open(既存のエクセルファイルのフルパス)
set ws=worksheets(上記エクセルファイルの参照するシート名)

ここから開いたエクセルファイルの読み書きをする

wb.save
wb.close
exl.Quiet
set ws=nothing
set wb=nothing
set exl=nothing
0767デフォルトの名無しさんNGNG
>>766
本質的なことではないかもしれないけど、

exl.Quiet  → exl.Quit

ではないかと
0768デフォルトの名無しさんNGNG
そりゃ黙らせただけじゃ終了せんわな。
0769766NGNG
>>767
ただのスペルミスです、無視してください(恥

>>768
黙らせた後どうしたらよいのでしょうか?
0770767NGNG
これで多分いいはず

Set ws = Worksheets("Sheet1")
↓
Set ws = wb.Worksheets("Sheet1")
 
exl.Quiet
↓
exl.Quit
0771766NGNG
>>770
ありがとうございます、試してみます。
0772デフォルトの名無しさんNGNG
InetコントロールでHTTPでバイナリファイルを取得したいんですけど
GetChunkにicByteArrayを渡した後の処理が分かりません。
こっち系のサンプルが乏しいものでよく分かりません。
0773デフォルトの名無しさんNGNG
>>772
なにをしたいの?
「GetChunkにicByteArrayを渡した後の処理」って
貴方がなにをしたいかによって変わってくるよ。
それともGetChunkをどこでやればいいのかとかがわからないとか?
それならヘルプみてみ。ばっちり書いてあるよ。
icByteArrayだろうがicStringだろうが流れはかわらんからね。
バイト配列の使い方がわからないならそれ以前の問題やね。
0774デフォルトの名無しさんNGNG
あげておきます。
0775デフォルトの名無しさんNGNG
とても厨房な質問なのですが、
TextboxやLabelの左枠と文字の間隔って変えられないでしょうか。
-----------------
|←ココ→ああああ
-----------------
やっぱ無理すかね・・・?
0776名無しさんNGNG
>>775
スペース挿入、ってこんな簡単な事じゃないんだろうね
0777デフォルトの名無しさんNGNG
クリックしたら特定のファイルを開く(HTMLファイルとか)
のってどうすればいいですか?
OLEコンテナとかで開けばいいんですか。
0778デフォルトの名無しさんNGNG
>777
関連付けられたアプリならShellExecuteっていうのは既出だが
0779デフォルトの名無しさんNGNG
>>775
VBだけでやるなら、PictureBoxの中に
BorderStyle=0にしたTextBox置けばいいんでない?
(背景色を合わせれば見た目わからんよ)
いやならTextBoxにEM_SETRECTでも送ればできるんでないかな。
0780775NGNG
>>776、>>779
ありがとうございます。

Labelを2重にしました。盲点でした。スゲー。
ちなみにEM_SETRECTって何ですか?
ヘルプ見たら全部英語でした。。。
0781デフォルトの名無しさんNGNG
>>780
SendMessageとかのAPIでEM_SETRECTというメッセージを
TextBoxに送ると、上下左右のマージンを変えられるんよ。
(ただしMultiLine=Trueの場合ね)

コンテナにコントロールを入れて使うってのVBではよくやるよ。
Enabled=Falseにしたときにグレーにしたくない場合とか
PictureBoxやFrameとかのコンテナにTextBoxを入れて、
コンテナの方のEnabledを変えるんよ。
すると入力はできなけど見た目は変わらないってのができる。
Enabledを変更するコントロールが多いときなんかも便利。
Lockだとフォーカスが移っちゃうけどこれだと移らないしね。

ちなみにLock=TrueにしてもShift+Insで変更できちゃうんだよね。
このへんきちんとしてないプログラムって多いだろうな。
0782デフォルトの名無しさんNGNG
>>781さん
僕、>>780さんじゃないですが、初心者です。
ほんと勉強になります。
その「ちなみに」を回避するのって、
キーコード取って禁止するしかないんですか?
0783野口NGNG
Write#なんかでテキスト書き出したら、こうなるっしょ?
  Write #1, #02/01/05#
    ↓
  "02/01/05"
このダブルクォーテーションを付けない方法はないのかい?
0784777NGNG
>>778
すいません。
ヘルプで検索したら全部英語でした…
■ このスレッドは過去ログ倉庫に格納されています