トップページ⇒tech
1001コメント310KB

(*´д`*)アハァ… VB初心者質問スレ Part22

■ このスレッドは過去ログ倉庫に格納されています
0001HTML化チェック済みNGNG

  Part12 http://pc3.2ch.net/tech/kako/1026/10266/1026642565.html
  Part13 http://pc3.2ch.net/tech/kako/1029/10292/1029241786.html
  Part14 http://pc3.2ch.net/tech/kako/1030/10309/1030947162.html
  Part15 http://pc3.2ch.net/tech/kako/1032/10327/1032706491.html
  Part16 http://pc3.2ch.net/tech/kako/1034/10343/1034302532.html
  Part17 http://pc3.2ch.net/tech/kako/1036/10361/1036154952.html
  Part18 http://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
  Part19 http://pc3.2ch.net/tech/kako/1039/10398/1039859691.html
  Part20 http://pc2.2ch.net/tech/kako/1041/10418/1041879465.html
  Part21 http://pc2.2ch.net/test/read.cgi/tech/1044028945/

VB.net関連スレ
【老若】VB.net質問スレ【男女】 (Part2)
http://pc2.2ch.net/test/read.cgi/tech/1043629429/

心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
五.下ネタもたまにならOK。
0086デフォルトの名無しさんNGNG
>>85
CDに入ってますよ
008777NGNG
>>86
はぁ〜やっと見つけました…
本当にありがとうございました!!
0088デフォルトの名無しさんNGNG
メニューエディタを使ってメニューをつくるときに、
開く
終了
のように縦にメニューを表示させるのはできますが、
開く 終了
のようにメニューバーの中に2つの項目を横並びに配置する方法がわかりません。
0089デフォルトの名無しさんNGNG
>88

                    ,イ^i
                   ,イ::::  l
                  /::::::::   l
                 /::::::::::    {       /|
               /::::::::      `-、_  /:: {
              /:::::::::::    /       ̄  __ l
             ./:::::::::::         :::::\:::... \ i
             /:::::::::::          ::::::::::\:::: 、 {
             |:::::::::::.            :::::::::_ゝ:::  !
             |::::::::::::.       ):.`ー..____' /:::  |
             .l:::::::::::::.         ヽー─フ::   /   プッ
             ヽ::::::::::. ___           ,/
               \::/`ー---‐^ヽ        /
                l:::      l         /
           _ /,--、l::::.      ノ       l
       ,--、_ノ:: `ー'::   、ミー---‐,,l        \
      ,/   :::         i ̄ ̄  |         \
     /:::::::.        l:::    l:::::::   l           \
    l:::::::::::.   l:::    !::    |:::::::   l            \
    |:::::::::l::::  l:::    |::    l:::::     l              l
    |::::::::::l:::.   }:::   l:::::,r-----    l               l
    ヽ::::::::l::::   ト:;;;;;;;/-/__...........  /
    /\::::`ー‐'  / l__l;;;;;;;;;;;/
  /   `           /

0090デフォルトの名無しさんNGNG
>>88
ヘルプ嫁。
0091デフォルトの名無しさんNGNG
(*´д`*)アハァ…
009288 ◆D24s65nhoU NGNG
>>89-91
ヘルプに載ってないテクニックが必要なようで載っていませんでした。
メニュエディターを開いた後の手順を細かく教えてくれたらうれCです。
0093デフォルトの名無しさんNGNG
>>92
テクニックって、、、
たとえば
ファイル(F)
 開く
 終了
というようなものを
ファイル(F)
 開く | 終了
のような感じにするのでしょうか?
009488 ◆D24s65nhoU NGNG
>>93
(青いタイトルバー)ソフト名
(灰色メニューバー)開く 終了
としたいんです。
0095デフォルトの名無しさんNGNG
>>94
ヘルプも真面に読めないのかスカタン
0096!88NGNG
>>95
見付けられなかったけど、どのあたりに載っているか教えていただけますか?
0097!88NGNG
>>94を読み間違っていた...寝よう
0098デフォルトの名無しさんNGNG
あまりに簡単なので釣りとしか思えんが・・・確かにメニューエディタは
とっつきにくいかもしれないね。

「・・・・」がメニューの階層なのでそれを「←」ボタンで取っ払えばいいってだけ。
009988 ◆D24s65nhoU NGNG
>>98
ありがとうございます。
開く 終了
と横並びに表示する場合も
メニューエディタでは
開く
終了
と縦に登録していくんだなと気がつきました。
0100デフォルトの名無しさんNGNG
えっ、釣りじゃなかったのか
0101デフォルトの名無しさんNGNG
言われてみれば確かに、あのメニューエディタはVBらしからぬ作りだよな・・・
0102デフォルトの名無しさんNGNG
うむ、VB.NETのメニュー作成方法みたいじゃないと
Visualではないね。
0103デフォルトの名無しさんNGNG
よろしくお願いします。
汎用機で作成されたデータファイルをExcelに渡す処理を考えています。

汎用機からWindows上に落としてきてきた(この間に文字コードの変換をしています)
テキストファイルの中の、指定した行のiバイト目からjバイトを抜き出す
(その後エクセルに渡す)、という処理で詰まっております。
(この"iバイト目からjバイト"というのは汎用機側の印刷パラメータです。)
対象となる行には数値、日本語が混在しています。i,jは表の項目ですので増加していきます。

Mid,MidB関数で引数にi,jを指定してやればよかろと思っていたのですが、
汎用機側では数値は1バイト、日本語は2バイトで扱っており
Windows上では全て2バイトで扱っているのでこれだと抜き出す時に誤差が生じてしまいます。

で、バイナリで開いて先頭から順次読み込んでやればいいかなと足りない頭で考えたました。
以下、足りない頭で考えたルーチンです。
1.対象行(テキスト)をバイナリで作業ファイルに書き込む
2.作業ファイルをバイナリで指定したバイト数だけ読み込み、配列で宣言したByte型変数に格納

とここまでやったのですが、これを元の数値や日本語に戻すにはどうしたらいいでしょうか
よろしくお願いします。
0104デフォルトの名無しさんNGNG
超FAQです。
LenBとStrConvでドゾ。
0105デフォルトの名無しさんNGNG
VBでマルチキャストの送受信を行うべく、
With Winsock1
.Protocol = sckUDPProtocol
.Bind 20002
.RemoteHost = "233.0.0.0"
.RemotePort = 20002
End with
と設定して、他マシンからのマルチキャストを受信してるんですけど、
Winsock1_DataArrivalイベントが発生しません。
試しにVCで作ったマルチキャスト送受信プログラムで受信してみるとうまく受信できました。
VBで受信するには他に何か設定が必要なんでしょうか?
ちなみに、この設定のままWinsock1.SendDataで文字列を送信してみたら、
マルチキャストの送信は、できました。
0106デフォルトの名無しさんNGNG
 VBでHP作ったんですけど、アップロードの仕方が分かりません。
誰か教えてください。
0107デフォルトの名無しさんNGNG
>>105
私の環境では完璧に動きまする…。
Win2ksp3/VB6sp5。
VBにSPはあてた? Winsock.ocxにバグあった気がする。

あと、コード中で入れるんじゃなく、プロパティーページで
Bind以外を設定するとどうなる?
なんか別の所で変なことやってるのかもしれないし。
0108105NGNG
>>107
動きましたか。うちの環境はWin2k VB6SP5です。
ちょっといろいろ設定見直してみて、また来ます
0109デフォルトの名無しさんNGNG
>>103
「バイト型配列から日本語含めた文字列への変換」でいいのね。
バイト型配列を「byteArray()」とすると、

Dim strBuf As String
strBuf = StrConv(byteArray(),vbUnicode)

でいけるはず。何も見ないで書いたので綴り間違ってるかも。
ためしてみてちょ。
0110デフォルトの名無しさんNGNG
マウスカーソルの位置を強制的に固定したいのですが
マウスの位置のプロパティってありますか?
0111デフォルトの名無しさんNGNG
ClipCursorだったかな
0112デフォルトの名無しさんNGNG
ごめん
よく調べたらあった。>MouseCol、MouseRow プロパティ
0113デフォルトの名無しさんNGNG


       / ̄ ̄ヽ     / ̄ ̄ヽ
       l i'´~`ヽ|   l /~`ヽ |
       ヽ.\  ,レ-――-'<、 _ノ /
         `‐/_____\- '         人_ト、__ノ、_,ヘノ\_ノヽノ、
          / ,-、      ,-、 ヾ、       人/                \__
           l  ,..、       ,..、  l     _ノ                    (
     __l  i 0} ,.●、 !0 i  l__  _)
  / ̄| | . |  `~ /___\`~´   |  | __ノ 絶対に許さんぞ>106!!!!!!!
/     | | |l    ‘-イ !_|_!`r’     !|  | ノ
\\   | |. |`、   r{     h   ,/リ <    じわじわとなぶり殺しにしてくれる!!!!!!!
  \\.| |   ヾ\ ヽ二ニ二.ノ  /〃 |  )
、   \ノ^,ニ‐-ァ  ̄`ー-----一' ̄/  | ^ヽ
\  // ,/⌒i、_\\_____//  .|  |  ⌒)
   {   i   |  iヽ`ー-----― '    |  |    ̄ヽヘ/⌒ヽ/\i'\へ/⌒Yヽ'^

0114デフォルトの名無しさんNGNG
ユーザーの環境によっては
Date関数が
2003/02/03
ではなく
2003/2/3
という値を返すことはあるのでしょうか?
0115>>103 ですNGNG
>>104
>>109

レスありがとうございました。
StrConv関数のヘルプは散々見ていたのに、引数のvbUnicodeを見落としていますた。
これからテストしてみます!!!
0116デフォルトの名無しさんNGNG
>>114
心配ならFormat使え。
0117デフォルトの名無しさんNGNG
>>114
前提が間違ってるぞ。
そもそもDate関数は文字列を返すものじゃなく、Date型を返すもの。
文字列型へ代入した時の形式は、そのマシンの「地域のオプション」の日付形式の設定に
左右される。決まった形式で欲しいならFormat関数を使うのが吉。
0118114NGNG
>>116-117
ありがとうございます。
Format関数は使ったこと無いけどマスターしてみます。
0119114 成功しましたNGNG
Format(Date, "yyyy/mm/dd")
0120デフォルトの名無しさんNGNG
>>117
でも漏れなんかは、N88BASIC時代の人で、Date$とかTime$に慣れてたから
結構そのままやってて、意図しない書式が返ってきたりして面食らったことがあるな。
0121デフォルトの名無しさんNGNG
アプリケーションにエラーが出ていないか監視したいのですが、
どうやればいいのでしょうか?
0122デフォルトの名無しさんNGNG
この3つで使われているapigid32.dllってのを、標準のwin32APIに置き換えることはできますでしょうか?
copymovememoryとか、該当しそうなAPIがあるので・・・

Public Declare Sub agCopyData Lib "apigid32.dll" (Source As Any, Dest As Any, ByVal nCount As Long)
Public Declare Function agGetAddressForObject Lib "apigid32.dll" (Object As Any) As Long
Public Declare Function agGetStringFromLPSTR Lib "apigid32.dll" (ByVal src As String) As Long

0123デフォルトの名無しさんNGNG
>>121
On Error ステートメントか?

>>122
そもそもそのソースがどこから出てきたか説明するのが筋だと思うが・・・
ググッてみたところ、ダニエル・アップルマンの本のおまけでついていたDLLみたいだな。
それら関数の動作の詳細も書かずにできるかどうかと問われてもどうか?って
感じだが、その関数の中でやってるのと同じことをやればできるだろうw
一応マジレス。
0124122NGNG
>123
いやぁ、apigid32.dllは持っているのですが、あまりユーザの環境に入れたくないですよね、余計なDLLは。
というわけで、標準のWin32APIに置き換えはできないかなと思って質問してみました。
ありがとうございます。
0125121NGNG
>>123
VB6で作成した実行ファイルを起動していると
アプリケーションエラーがでてしまいます。
で、エラーが出たらそのアプリケーションを再起動したいのです。
0126デフォルトの名無しさんNGNG
http://www.agemasukudasai.com/bloom/
0127デフォルトの名無しさんNGNG
>>125
なぜそのアプリのバグを取ろうって発想にならないんだろ・・・ (´д`;)
FindWindowあたりでできそうな気はするが。
0128なNGNG
>>119
「/」 は地域のオプションの区切り記号に置き換えられるので、
それだと期待通りに動作しない場合があります。

Fromat(Date,"yyyy\/mm\/dd") が正解です。
0129114NGNG
>>128
むぅ。盲点でした。
世界中のVBアプリにこの手のバグがあるような悪寒を感じてしまいました。
0130デフォルトの名無しさんNGNG
すみません、くだらない質問ですが
あんまり簡単すぎて?探しても記述を見つけられないのでお願いします。

1.Space"$"(number)のように、関数の後ろに"$"が入るのはどういう意味を表していますか?
2.myarry() as integer のように、配列の括弧内が空白というのはどういう意味ですか?

よろしくお願いします。

0131デフォルトの名無しさんNGNG
>>130
ヘルプ読めばどっちも書いてあると思うが。
関数名に $ がつくのは、返り血を文字列型で返す関数。
$を省略すると、Variant型で返るので、パフォーマンスのためには
$をつけた方がいいとよく言われる。

myarry()のように空白の配列は、動的配列という。
ReDim myarray(256) などのようにして、コード中で配列の要素数を変更
したい時に使う。
0132デフォルトの名無しさんNGNG
>>131
積年の謎が解けました。
ReDimのヘルプ引いたら意味が分かりました。
ありがとうございます!!!
0133デフォルトの名無しさんNGNG
横からスマソ。
>>130-131
関数定義の段階で
Function Space(number) as String
とやっておけば、関数名に $ をつけなくても返り値は String が保証されるんですよね?
0134デフォルトの名無しさんNGNG
>>113
Yes. その辺は変数定義と一緒。
0135134NGNG
×>>113
○>>133
0136デフォルトの名無しさんNGNG
my性器
0137デフォルトの名無しさんNGNG
覚えるより忘れる方が早い人はどうすればいいんですか?
0138デフォルトの名無しさんNGNG
>>137
氏ね。
0139138NGNG
>>134
ありがとうございます。
0140デフォルトの名無しさんNGNG
>>137
電脳化させろ。
0141137NGNG
>>140
どういう意味?
0142137 ◆V1kwoShQaI NGNG
>>140
むずかしそうな話だからしばらく電脳化についてはいいや。
とにかく昔の自分のコードをわざわざみないと今現在何も作れない自分がいるのがかなすぃ。
0143デフォルトの名無しさんNGNG
>>142
そんな君にはオブジェクト指向&デザインパターン。
コードを見なきゃつくれない→自作のライブラリを使えばすぐできる。(※)
へとステップアップだ!

※自作のライブラリを使わなきゃつくれない、、、とも言う。
0144137 ◆V1kwoShQaI NGNG
>>143
ようするに普段から再利用可能でコピペで使えるようなプログラミングを心がけなさいということだね。
あとは貼り付けてつかえるActibeXコンポーネントをうまくつかうっと。
未だに変数名もばらばらにつけてるオラには再利用ライブラリはムリポ。
0145デフォルトの名無しさんNGNG
>>144
漏れが恐ろしいほどコメントつけまくるのは
他人がコード見たときの理解を助けるため・・・ではなく、
自分が後から見たときに分かるようにするためだ。

「この変数なんだっけ?(*´д`*)」
0146137 ◆V1kwoShQaI NGNG
>>145
なるほど。オレも変数についてコメント書くことがあるな。英単語の意味を。
Dim Int1 as Integer 'integer=整数という意味
0147デフォルトの名無しさんNGNG
>>145
俺も4年ごしでやってるシステムの根幹部分なんて
自分で組んだのにすっかり忘れてるよ・・・ (*´д`*) アハァ
やっぱコメントは大事だね。
でも自分で書いたソースって、やっぱ他人の書いたソースよりも
はるかに理解がしやすい。
あ、いいソース書いてるって意味じゃなくねw
やっぱ組み方のクセみたいなものがあるから理解しやすいんだと思う。
0148デフォルトの名無しさんNGNG
そろそろお昼ねタイムだ
0149デフォルトの名無しさんNGNG
失礼します。
メニュー項目をクリックすることでテキストボックスの
横スクロールバーの有無を切り替えたいのですが、
スクロールバーは新しく値を設定する事ができない、
と言われてしまいます。
どうすればメニューのクリックで
スクロールバーを切り替えられますか?
(Windowsメモ帳の「右端で折り返す」みたいな感じです)
0150デフォルトの名無しさんNGNG
>>149
あらかじめスクロールバーのあるのと無いのと2つ用意しておいて、
メニュークリック時に表示・非表示を切り替えるとか。
もちろん切り替え時に内容は同期取ってね。
0151デフォルトの名無しさんNGNG
すいません、スタンダードでも自分の作ったアプリ配布できるますか?
0152149NGNG
>>150
ありがとうございます!!

そういう手も考えてはみたのですが、
何せものすごい初心者なもので…。
その、同期を取るのをどうしたらよいかがわかりません。
本にも載ってないしヘルプファイルも参照できない状態なので、
どうか教えていただけないでしょうか?
宜しくお願いします。
0153デフォルトの名無しさんNGNG
>>152
ヘルプないなら、MSDNオンラインを利用すれ。
ttp://www.microsoft.com/japan/msdn/library/
ちなみに同期を取るとは、下記みたいな感じ。
あんまり答えモロは書きたくないが、簡単すぎるのでたまにはまんま載せてみた。

Private Sub Command1_Click()
If Text1.Visible = True Then
Text2.Text = Text1.Text
Text1.Visible = False
Text2.Visible = True
Else
Text1.Text = Text2.Text
Text1.Visible = True
Text2.Visible = False
End If
End Sub
0154デフォルトの名無しさんNGNG
>>152

sub メニューを押した
  if text1.visible then
    text2.text = text1.text
    text2.visible = false
    text1.visible = true
  else
    '反対のことをする
  end if
end sub

こんな感じー。
つーか漏前、なんでヘルプが無いんだYo!
0155デフォルトの名無しさんNGNG
負けた(ρ_;)クヤシイ
0156デフォルトの名無しさんNGNG
>>154
割れ物でMSDNのディスクがないと思われ。
0157149NGNG
>>153-154
何から何まで本当にありがとうございます!!
今度からMSDNオンラインを見てみますね!!
それでもわからなかったらまたよろしくお願いします。

>>156
その通りなんです…
0158デフォルトの名無しさんNGNG
>>157
割れ厨かよ。答えなきゃ良かった。氏ね。
0159デフォルトの名無しさんNGNG
漏れなんか、CD-ROM割れてしまって、バックアップなんか取ってないから
MSDNみれないんだじょ。マイクロソフトのサイトみてますが。

これぞ本物の「割れ」・・・・
0160デフォルトの名無しさんNGNG
>>157
通報スマスタ

>>159
MSのサイトで交換の受付ってなかったっけ…。
あっても、今更古いMSDN来ても困る罠。
MSDN付.net買うが宜し。VS6用も入ってるでしょ。
0161デフォルトの名無しさんNGNG
すみません。
VB6のプログラム作成ソフトってフリーで落ちてないんですか?
0162デフォルトの名無しさんNGNG
>>161
頭大丈夫?
0163デフォルトの名無しさんNGNG
>>161
モデラーのこと言ってんのか?
どっちにしろ、自分の考えを表現するためには、
作成ソフト自体を自作しなければ難しいぞ。
0164ひきプロNGNG
何年か前にVBの体験版とサービスパックを使って
無理矢理EXEを作成するとかいう裏技ありましたね
0165デフォルトの名無しさんNGNG
>>161
ソースだけならメモ帳でも書けるぞ
0166デフォルトの名無しさんNGNG
Form1.Showを実行するとForm1.VisibleがFalseでも画面に表示されるのだけれどこれで正常ですか?
0167デフォルトの名無しさんNGNG
>>166
正常
0168166NGNG
>>167さん
ありがとうございます。
0169デフォルトの名無しさんNGNG
>>166-168 (*´∀`*) ホ〜ノボノ♪
0170デフォルトの名無しさんNGNG
VBプロジェクトをRBプロジェクトに変換

http://www.realbasic.com/
0171デフォルトの名無しさんNGNG
VBScriptで
"ゴルァ"
と""も含めて表現したい場合、

document.write "??? "
???にはどう書けばよいのでしょうか・・・
0172ひきプロNGNG
"""ゴルァ"""
0173デフォルトの名無しさんNGNG
ぬおー、できたー アリガトゴザイマス
0174寒NGNG
VB6のLogEventで出力されるログの
"ソース"※ を変更できる方法ってありますか?

※イベントビューアで見れる項目名"ソース"

過去ログ検索する前のカキコ スマソ。
0175デフォルトの名無しさんNGNG
>>174
過去ログみてから発言しましょうね。
心得
壱.質問する前に過去ログにも目を通してみる。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
弐.質問する前に MSDN などで調べてみる。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
五.下ネタもたまにならOK。
0176デフォルトの名無しさんNGNG
>>165
ロジックはともかく、GUIをメモ帳でコーディングするのは生産性が恐ろしく低い罠・・・。
0177デフォルトの名無しさんNGNG
CreateWindowでフォームもコントロール作れ。
だったらCレベルの生産性は維持できるだろ。
0178デフォルトの名無しさんNGNG
WebBrowserコントロールでMouseMoveのようなのできないですかね?
0179デフォルトの名無しさんNGNG
誰か、わかりやすくコールバックメソッドを使った非同期通知のやり方を教えておくれ。
イベント通知だとイベント処理メソッドの処理が終わらないと一方が止まってしまうので
困ってしまってね。Coffeeサンプルは複雑で漏れにはわからん。

ヘルプ嫁・・・・はいはい
0180デフォルトの名無しさんNGNG
ピクチャーボックスに文字を出力するのは
Print Picture1 "aiueo"
だと失敗したんだけど・・・正解をキボンヌ。
0181ひきプロNGNG
Picture1.Print "aiueo"
0182180NGNG
>>181
ありがとう。微妙におしかった。
0183デフォルトの名無しさんNGNG
>>182
見た目は微妙だが、
考え方は180度間違っている。
0184105NGNG
すいません、やはりマルチキャストの受信だけができません。
UDPを使って、お互いのIPをRemoteHostに設定して
ユニキャストで文字列のやりとりはできるし、
マルチキャストを使っての送信はできる(確認は受信側でVC製の別のマルチキャスト受信ソフトで行った)のですが…
>>105の設定だけではだめなんでしょうか?
0185182NGNG
>>183
オブジェクト メソッド 引数の順で書いていけばよかったと今頃思った。
■ このスレッドは過去ログ倉庫に格納されています