VB初心者質問スレ Part4
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1000523122/
0357箱入り娘作成中
NGNGん?板チェックしに来たら、もう出来てる?!
私はまだ完成してません。
もしかしてImageコントロールをFormにペタペタ貼ってた
のが、ただでさえ初心者の私をさらに追い込んでたとか・・・。
そんな気がしてきた!
0358とて〜も初心者
NGNG私のパソコンでは(VAIOノートのPCG-FX33G/BP)DLLがないとか
言われたことはありません。
DLLを入れた記憶はないのですが、メーカー製のものってDLLとかが標準で
入ってるってことですか?
0359デフォルトの名無しさん
NGNG0360箱入り娘作成中
NGNG作ってる私も解けません。
0361箱入り娘作成中
NGNGファイルのパスは合ってるのに。なんで?
Private Sub Form_Load()
Dim Pic_Waku As Picture
Set Pic_Waku = LoadPicture("C:\〜省略〜\koma0.gif")
frmMain.PaintPicture Pic_Waku, 0, 0
End Sub
0362デフォルトの名無しさん
NGNGfrmMainにじかに書いているわけですね。
恐らくfrmMainのAutoRedrawがFalseになってるせいです。
この辺はWindowsの仕組みを理解していないとわからない所ですね。
0363箱入り娘作成中
NGNGくそー!!!
めちゃくちゃくやしい!
(と心の中で思い、太股をこぶしで殴打)
0364VB使い
NGNGVB6.0で作ったEXEをWindowsで動かすときに最低限
用意しなければいけないものはMSVBVM60.DLLだけです。
(一応VB6JP.DLLも。無くても文字化けしながら一応動く。)
標準でついているもの以外を使った場合はそれ用の
DLLやらOCXやらがいるけど、使ってないならいりません。
そしてMSVBVM60.DLLが標準でついているOSもあり、
WinMe,2000,XPです。(なぜかVB6JP.DLLはついてない。)
上記OS以外でDLLがないという文句を言われないメーカー製PCは
メーカーがトラブルを避けるために入れているのでしょう。
0365デフォルトの名無しさん
NGNG文字列として取り込みたいのですが、
VBヘルプをみるとダブルクォートしか文字列として対応してないみたいです。
何か良い方法がありますか?
レコードを一文字ずつばらしてカンマを検出し、
文字列の両端のシングルクォートを削るしか、VBでは方法がないのでしょうか?
0366デフォルトの名無しさん
NGNGSplit関数使ってみれ。
0367365
NGNGそんな便利な関数があったんですね。
ありがとう
0368366
NGNG低脳ワザと言われそうな ex...
データ 'TEST_1','TEST_2' ってなってたら
Dim strX() As String
strBuf = "'," & "'TEST_1','TEST_2'" & ",'"
strX = Split(strBuf, "','")
でどうよ?
0369366
NGNG添え字最低値、最大値はそれぞれLBound、UBound関数で判る。
但し、空要素の配列で何かしようとするとエラーが発生するので
自前で空配列を調べるような関数を作っておくべし。
0370デフォルトの名無しさん
NGNG[コンピュータの管理(ローカル)]-[システムツール]-[共有フォルダ]を右クリックして現れるメニューの
[すべてのタスク→]-[コンソールメッセージの送信...]をVBで制御する方法はありませんか?
これを使えれば、他のマシンと色々交信できて楽しそうなんですが。。。
0371ヒッキー@プログラミング
NGNGコマンドプロンプトから「net send」コマンドを
実行してはどうでしょうか。
使い方は、net /? で調べてみてください。
0372370
NGNGこれなら簡単にいじれますね。ありがとうございます。
0373デフォルトの名無しさん
NGNGどうしたらいいでしょうか。できればドメインごとに取得したいです。
0374デフォルトの名無しさん
NGNG全世界とかいうなら無理だと思うが、とりあえずやってみ
IPアドレスをしらみつぶしに調べる(当然特別なIPアドレスは省く)
0.0.0.0 〜 255.255.255.255
とりあえずpingでも飛ばしてみ。
http://www.geocities.co.jp/SiliconValley-SanJose/3279/scrap.html
http://w3.one.net/~kevinw/VB/s_modules.htm
IPアドレス→ホスト名は、このあたりを参考に。
http://www.mitene.or.jp/~sugisita/family/papa/vb/api_net.html
おまけのwhoisはこのあたりを参考に。
http://www.vbip.com/winsock/winsock_whois.asp
0375とて〜も初心者
NGNG0376デフォルトの名無しさん
NGNGとりあえず WinSock でもいじってみれ。
0377デフォルトの名無しさん
NGNG完全匿名“Freenet”のクローンでも作ってよ。
ソースも公開されているし。
「freenet0.4+frostスレ Key1」
http://tmp.2ch.net/test/read.cgi/download/1007824064/
0378箱入り娘作成中
NGNGすいませ〜ん!356さん
>1.あのままではマウス移動の判定が鈍いので、改良。
どんな風に改良したんですか?
まだ、完成してません・・・・。
0379デフォルトの名無しさん
NGNG1.移動ベクトルの傾きを計算して、XとYのどちらを優先するかをまず判断。
実際にはAbsで絶対値の大小比較をするだけ。
今度は敏感すぎて、2マス連続で移動しちゃう(笑)。
2.マウスボタンを離した点で判定してたのを押し始めの点で判定。
困ったこと。ふつうは1マスずつ移動させるのですが、それだと瞬間移動みたいだから、
あの作者はわざわざ半マス移動方式にしたんでしょうね。
でも、手数のカウントが面倒です。いまは単純に2で割ってるだけです。
ほか、改良点としては効果音をつけました。
0380デフォルトの名無しさん
NGNGGetGlyphOutline()でできるようなこと書いてあったのですが
1.APIビュワーからコピペしたものを使おうとしたら
「ユーザー定義型は定義されていません」となってしまいます。
("lpgm As GLYPHMETRICS"と"lpmat2 As MAT2"がひっかかってる?)
2.引数になにを入れたらいいかわかりません(汗
どなたかご教授お願いします。
0381箱入り娘作成中
NGNG移動ベクトルの傾き・・・
押し始めの点で判定・・・・
もうちょっと勉強してから出直してきますっ
0382デフォルトの名無しさん
NGNGむずかしく書いちゃったけど、ここのとこです。
If y - oldy > 32 Then Call DownKoma(x, y)
これを
If Abs(x - oldx) > Abs(y - oldy) Then でまず判定して、
If y > oldy Then Call DownKoma(oldx, oldy)
移動は1ドットでもオッケー(笑)。
ボタンを離した点と書いたのはカン違いで、ドラッグ中の点でした。
だから、そのままでもいいのかも。
GIF画像は、サイトにあったのを使いましたが、koma12.gifは
「You Win!」って大きく書いてあるだけなので、パス。
0383デフォルトの名無しさん
NGNG.wavファイルのループ再生を行うにはどうすればいいのでしょうか。
現在標準モジュールに
Declare Function sndPlaySound Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long
Public Const SND_SYNC = &H0
Public Const SND_ASYNC = &H1
Public Const SND_NODEFAULT = &H2
Public Const SND_LOOP = &H8
Public Const SND_NOSTOP = &H10
フォームに
Private Sub Command2_Click()
Call sndPlaySound("A:\中略\game.wav", SND_LOOP)
End Sub
と書いているのですが、エラー音しか出ないのです。
どこが間違っているのか教えてやってください。
0384デフォルトの名無しさん
NGNGヘルプから抜粋:
指定されたファイルが見つからなかった場合、PlaySound関数はデフォルトの
サウンド(一般の警告音)を鳴らそうとします。
pszSoundパラメータで指定したサウンドは、使用可能な物理メモリに収まる
サイズでなければなりません
この辺で引っかかってませんか?
0385373
NGNGネットワークに繋がっているとは、単にネットワークコンピュータで
表示されるパソコンのことです。
やりたいことは、たとえばWORKGROUPにぶら下がるPC名の一覧が欲しいのです。
それで、さらにWORKGROUP以外にもグループがあったとしたら、そちらの
PC名もほしいのです。
0386VB5
NGNG標準のコントロールでは何を使うのが一番いいんでしょうか?
0387ヒッキー@プログラミング
NGNGDataGridかDataBoundGridなんかはどうでしょうか。
0389デフォルトの名無しさん
NGNGMicrosoft DataGrid Control 6.0。
0390デフォルトの名無しさん
NGNGいつ出んだろ?
0392デフォルトの名無しさん
NGNGDataGridはVB6です。
VB5なら Data Bound Grid かな
0393デフォルトの名無しさん
NGNGWNetEnumResource()API、WNetOpenEnum()APIあたりで
昔やった記憶があるよ。
0395質問です。
NGNG今度、中途の就職活動のSEの求人先で、「意欲はあるのは分かるが
何か言語試して欲しい」と言われました。それでPC環境的にもてっと
り早いのがVBではないかと、言われたのです。基本は取りあえずわか
りそうなのですが、何か何でもいいから作って欲しいと言われた課題内
容をどうしたものかと考えています。
VBの初心者として最初に組めたら良い、メルクマール的な、プログラム
って何でしょうか?教えて下さい。
研修で良く初心者に課題として課される者でも良いのですが・・・。
よろしくお願いします。
0396デフォルトの名無しさん
NGNG連続で二回以上送信すると当然のようにうまくいきません。
画面を表示しない仕様のため、標準モジュールで処理を行っています。
(fromはVisibleをFalseにしています)
うまく一回ずつ間を空けるように出来ないでしょうか。
Win2000
0397396
NGNGWin2000のVB6.0を使ってます。
0398デフォルトの名無しさん
NGNGおめでてーな。
0399デフォルトの名無しさん
NGNG本気でそんな質問しないよね?
0400デフォルトの名無しさん
NGNG小・中学生、高校生、バカな大学生が対象なら、
とりあえず、「日付と時刻のプロパティ」のようなものを
標準のコントロールだけで作らせる。
0401デフォルトの名無しさん
NGNGようにするにはどうすればよいのでしょうか?
WindowStateを変更するとエラーが発生して、
標準にしか設定できません。
0402とて〜も初心者
NGNGそりゃー「HelloWorld」に決まりでしょ
0403デフォルトの名無しさん
NGNGなんかデータベースにつないでInsert/Update/Deleteなどを一通りやってみたら?
SEってことだから設計能力も問われると思われ。
はっ、マジレスしてしまった
0404質問です。
NGNG全く未経験という場合には課題を課しているそうです。
0405とて〜も初心者
NGNG課題ができないと落とされるってワケか?
0406質問です。
NGNG事らしいです。しかし、課題が何でも言いと言われても・・・。テキストには
時計プログラムとか載っていますが・・・。
0407デフォルトの名無しさん
NGNGネタかと思ったんだが・・・。
その会社はオープン系なんか?
じゃ、403さんの言うとおりのDBとの連携なんかが
いいんじゃネーノ?
IEコンポーネント貼ったブラウザもどきとかもいいかもな。
ちなみに俺が前受けた会社はBMP画像の拡大をするもの
とかが課題だったな。ゲーム系だが。
クソまじめにラグランジュ補完とかやったな。落ちたけど。
0408407
NGNGしかし、395さんよ、SEとして成功したいならさ、
提案能力も問われるわけだろ?
「そういう要求に対してどういう提案が出来るか」が
その会社の人間が見たいとこだろうと思うぞ。
ここで、聞いて参考にするのもいいけど、
やっぱさ、自分で考えることに意味があるんじゃないの?
0409デフォルトの名無しさん
NGNGdocファイル文章内すべて文字「XXX」検索して、置換するというプログラムを作ろうとしているのですが、
Findメソッドを使用し、Do loopで末尾までぐるぐる回そうとしたのですが、
文章の末尾どう取得してよいかわかりません。
Do loopで文章の先頭から末尾まで回すときは、どんな条件にするればいいでしょうか?
0410デフォルトの名無しさん
NGNGSelection.WholeStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = True
End With
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "キーワード1"
.Replacement.Text = "キーワード2"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
0411デフォルトの名無しさん
NGNGありがとうございます。
[XXXA1234]を[ZZZA1234]ではなく[ZZZ12A34]
というような置換をしたいのですが、この場合は
1.一行アクティブして、
2.INSTR関数で「XXX」を検索し
3.アクティブ行を置換
という順序で考えています。
説明不足ですいませんが、お願いします。
0412デフォルトの名無しさん
NGNGどうしてわざわざ1行ずつやるの?
INSTRで文書全体検索すればいいじゃん。
0が返ってくるまで。
0413デフォルトの名無しさん
NGNGな、なんといっていいか・・・
あ、ありがとうございます。
0414デフォルトの名無しさん
NGNGExcelのセル内改行はvbLfのようだけど 他はvbCrLfでなくても改行されます。
じゃあ vbNewLine じゃなくてもWindowsでは勝手に判断してくれるの?
0415デフォルトの名無しさん
NGNGttp://pc.2ch.net/test/read.cgi/tech/1000523122/193-197
0416デフォルトの名無しさん
NGNGレスありがとうございます。
リンク先の
>vbNewLine : 一応プラットホームに依存しない(事になってる)コードを書ける。
>まあ気休めだけどね。
は見ました。
聞きたかったのは
vbNewLine じゃなくてもWindowsでは勝手に判断してくれるの?
と書いたように、vbLf,vbCrを使用してもWindowsでは
改行してくれるので意識しなくてもようのかとか、vbLfでないとだめな場合とかをお聞きしたかった
のです。
0417416
NGNG意識しなくてもよいのか とか
0418デフォルトの名無しさん
NGNG勝手に判断はしてくれない。
有名なところでは、メモ帳はvbLfやvbCrで改行しない。
逆に、vbCrLfでダメな場合は例外的ケースで、そんなに多くないはず。
それだけ覚えておけばいい。
もちろん、いつかは仕様変更されると思う。
だから、vbNewLineを使っておけば、いちおう安心ってことね。
0419質問です。
NGNGまあ、営業力とか問われるのは分かっています。
そう言う業界だったんですが前職。
あからさまに聞けないことも2chなら、まあ聞いてもイイかなと思いまして。
結局決めるのは自分だってのは分かってます。
0420null
NGNGフリーのメール送信dll等も使わず、mapiを使わずに、
メール送信ってできますか?
0421デフォルトの名無しさん
NGNGできるっしょ
0422デフォルトの名無しさん
NGNGどうやってやるのか、是非教えて頂きたい。
0423デフォルトの名無しさん
NGNGmsgbox"bigin"
'たとえばここで一秒待ちたい
msgbox"end"
0424デフォルトの名無しさん
NGNGTimer関数使ってDo〜Loopとか。
0425デフォルトの名無しさん
NGNGDeclare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
して
Sleep 1000
とかでどうです
0426デフォルトの名無しさん
NGNG>>425
さんきゅです。試してみます。
0428デフォルトの名無しさん
NGNGWinsockコントロールを使うか、いやならAPIを使えばいい。
WSAStartup
socket
connect
send
recv
closesocket
WSACleanup
あたりを調べてみて
0429ヒッキー@プログラミング
NGNGTimer1.Enabled=True
か
Form1.TIMER1_TIMER
でどうでしょうか。
0430424
NGNG>>428-429
APIやTimerコントロール使いたくないなら
Sub main()
Dim ldblTimer As Double
MsgBox "Hoge"
ldblTimer = Timer
Do
If ldblTimer + 1# < Timer Then '1秒経過したら
Exit Do
End If
Loop
MsgBox "HogeHoge "
End Sub
正確ぢゃ無いけど。
0431ひよこ名無しさん
NGNGVBでテキストファイルを読み込む際、Tabも一緒に読み込むにはどうすればいいんでしょうか?
Open filename for input as #1からInputステートメントで読み込むと、
データに含まれるTabが無視されて困ってます・・・
0432デフォルトの名無しさん
NGNGline input
ttp://www02.so-net.ne.jp/~hat/mailer/rfc.ja.html (日本語訳)
ttp://ash.or.jp/ash/tips_prog/htm/telnet_smtp.htm
コードはこんな感じ。ものすごく単純化してあるし、まちがって
いるかもしれないので、このまま使わないでください。
あくまでも参考にということで。
------ここから
Private Sub Send()
Dim strHost As String
Dim strDomain As String
Dim strFrom As String
Dim strFromName As String
Dim strTo As String
Dim strSubject As String
Dim strData As String
With objWinsock
.RemoteHost = strHost
.RemotePort = 25
.Connect
Do While .State <> sckConnected Or Left$(mstrBuff, 3) <> "220"
DoEvents
Loop
.SendData "HELO " & strDomain & vbCrLf
Do While Left$(mstrBuff, 3) <> "250"
DoEvents
Loop
Do While Left$(mstrBuff, 3) <> "250"
DoEvents
Loop
.SendData "RCPT TO: " & strTo & vbCrLf
Do While Left$(mstrBuff, 3) <> "250"
DoEvents
Loop
.SendData "DATA" & vbCrLf
Do While Left$(mstrBuff, 3) <> "354"
DoEvents
Loop
.SendData "From: " & strFromName & " <" & strFrom & ">" & vbCrLf & _
"Date: " & Format(Now, "ddd, d mmm yyyy hh:mm:ss") & " +0900 (JST)" & vbCrLf & _
"To: " & strTo & vbCrLf & _
"Subject: " & strSubject & vbCrLf & _
vbCrLf & _
strData & vbCrLf & _
"." & vbCrLf
Do While Left$(mstrBuff, 3) <> "250"
DoEvents
Loop
.SendData "QUIT" & vbCrLf
Do While Left$(mstrBuff, 3) <> "221"
DoEvents
Loop
.Close
Do While .State <> sckClosed
DoEvents
Loop
End With
End Sub
------ここまで
0435431
NGNG解決しました、ありがとうございました!
重ね重ねで申し訳ないのですが、
テキストボックスの文字を、特定の部分だけ色替えしたり、
強調したりする方法ってありませんか?
0436デフォルトの名無しさん
NGNGRichTextBox使えばー
0438デフォルトの名無しさん
NGNGコードまで頂き、感涙であります。
早速、試してみます。
0440デフォルトの名無しさん
NGNG文字コードの変換もお忘れなく
0441デフォルトの名無しさん
NGNGまず、どっからやればいいんでしょうか?
教えてください
0442VBのことをまったく知らない初心者です
NGNGVBAではここまでしかできないけどVisualBasicとかではできるとか
ありますか?
0443VB使い
NGNGいっぱいあるけど・・・・主な所をあげると、
VBAよりVBが優れている所
・ネイティブコンパイル可能
・必要なランタイムが少ない
・APIやフォームなどが使いやすい
VBAがVBより優れている所
・Office系のデータを簡単にいじれる
てな感じ(細かい所は無視)
でもやっぱり一番の魅力はネイティブコンパイルだろうなあ。
ソフトとして発表できるし、何より速い。
0444416
NGNG>勝手に判断はしてくれない。
>有名なところでは、メモ帳はvbLfやvbCrで改行しない。
レスありがとうございます。また舌足らずでした。
VBのプログラム中に
MsgBox "AAA" & vbLf & "BBB"
MsgBox "AAA" & vbCr & "BBB"
と書いても改行してくれているということを言いたかったのです。
だからvbNewLineって?と思った訳で
WindowsのVBではと書くべきでした。(Mac版もVBAはあるよね)
>vbCrLfでダメな場合は例外的ケースで、そんなに多くないはず。
昔、ラベルのキャプションがvbLFだったと聞いたことがあります。
今はvbCrLfでもOKのようですが。
そういった使い分けが知りたかったのです。
>vbNewLineを使っておけば、いちおう安心ってことね。
そうですね(^^)
0445431
NGNGレスありがとうございます!
RichTextBoxはよく分からないんですが、頑張って勉強してみます。
>>437
自前で描画はやろうと思ったんですが、IMEが使えなくなったりと
こっとの方がトラブル多くて諦めました・・・
>>441
一例を挙げてみます。
使うコントロール:ピクチャボックス
ピクチャボックスを4×4に分割して考え、それぞれの升目にパネルを配置する。
キーボードの↓←↑→が押されたらイベントを呼び出し、空白升に隣接したパネルを動かす。
(マウスイベントでも可)
パネルがそろえば、ゲームクリア。
パネルの配置は2次元配列(4×4)を使うと良いでしょう。
あとは、パネルの配置が変わるごとに、ピクチャボックスを再描画する。
------------------------------------------------------------
[Declaration]
Option Explicit
<変数の定義>
[Form_Load()]
<乱数配列を初期化する(Randomize)>
<パネルを配置する(乱数使用)→パネルの配列(2次元)に格納>
<ピクチャボックスに描画>
[Picture1.KeyDown(...)]
select case keycode
case vbkeyleft:……
……
end select
<ピクチャボックスに描画>
<揃ったかどうかを判定>
画像を使う場合、BitBlt APIを使うと良いです。
分かりにくくてすみません・・・
0446441
NGNG親切にありがとうございました。
今度、これを参考に作りたいと思います。
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNGまず、どっからやればいいんでしょうか?
教えてください
0451デフォルトの名無しさん
NGNG15パズルの局面数は、(16!/2)通り≒10 の13 乗。
まず、8パズルぐらいからやってみろ。 (9!/2)= 181440個
0452デフォルトの名無しさん
NGNG14⇔15パズル、しらない?
0453
NGNGhttp://www.incl.ne.jp/~hotcake/puzz15.htm
0454デフォルトの名無しさん
NGNG0455デフォルトの名無しさん
NGNG本とか見てもどうもサッパリなんです。
どなたかお教授を・・・
0456デフォルトの名無しさん
NGNG指定した容量の空のFILEなら知りません。
■ このスレッドは過去ログ倉庫に格納されています