■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#6529-0マウスの座標を出すプログラムHiroyuki20002000-03-09(木) 13:35
     #6531-0RE#6529:マウスの座標を出すプログラムどらお2000-03-09(木) 13:57
     #6532-0RE#6529:マウスの座標を出すプログラムみゆき2000-03-09(木) 14:00
     #6533-0RE#6531:マウスの座標を出すプログラムHiroyuki200002000-03-09(木) 14:35
     #6534-0RE#6533:マウスの座標を出すプログラムどらお2000-03-09(木) 14:45
     #6535-0RE#6534:マウスの座標を出すプログラムhiroyuki22002000-03-09(木) 15:14
#6529-0
マウスの座標を出すプログラム
すいません。ここは始めたばかりの人専用掲示板ですが、僕の場合はそれよりも低レベルな質問です。
今本を見ながら、マウスの座標を出すプログラムを作っているのですが、
ソースファイルは、formのmouseupイベントの、

Dim message as string

if button1then
message="マウスの位置は" & X & "." & Y
label1.caption=massage
end if

になるんですが、マウスの位置はの隣の" & X & "."& Yの意味が分かりません。
超超超超初心者ですので、こんなことで悩んでます。
誰か教えてくれたらうれしいです。
#6531-0
RE#6529:マウスの座標を出すプログラム
> すいません。ここは始めたばかりの人専用掲示板ですが、僕の場合はそれよりも低レベルな質問です。

はじめたばかりなので、仕方ないと思いますよ。気にせず質問してください(^_^)

> になるんですが、マウスの位置はの隣の" & X & "."& Yの意味が分かりません。

""でくくられてる中身はそのまま文字列として扱われます。&は文字列を連結するための「演算子」と
呼ばれるものです。
XとYはVBがMouseUpイベントに渡してくれる変数で、マウスの位置が格納されています。
なのでmessageという名前の変数の中には「マウスの位置は(Xの値).(Yの値)」という文字列が
入ってくることになります。

#以下、蛇足
VBには変数の型を自動で変換してくれる機能があります。なので、上記のコードで正しく動作するのですが
本来X、YはSingle型と呼ばれる「数値」を格納するための変数ですので
message="マウスの位置は" & CStr(X) & "." & CStr(Y)
と書いた方がよいです。
自動型変換させるのはバグの元ですので、なるべく早いうちに型を意識して
明示的な変換をするよう心がけておきましょう。
また、変数名・コントロール名もVBのヘルプに名前を付けるときの目安が書いてあるので
一通り目を通しておいた方がいいと思います。(必ずしもキチンと守る必要はないですが知ってるのと
知らないのとでは大違いですので)
VB6のMSDNの場合「名前付け基準」をキーワードに探せば載ってます。

#ご覧になられている本は、残念ながらあまりそのあたりがしっかりしてないように思われます(;_;)
#6532-0
RE#6529:マウスの座標を出すプログラム
> すいません。ここは始めたばかりの人専用掲示板ですが、僕の場合はそれよりも低レベルな質問です。
> 今本を見ながら、マウスの座標を出すプログラムを作っているのですが、
> ソースファイルは、formのmouseupイベントの、
> 
> Dim message as string
> 
> if button1then
> message="マウスの位置は" & X & "." & Y
> label1.caption=massage
> end if
> 
> になるんですが、マウスの位置はの隣の" & X & "."& Yの意味が分かりません。
> 超超超超初心者ですので、こんなことで悩んでます。
> 誰か教えてくれたらうれしいです。


正しいコーディング例は以下の通りです
  ┌─────────────────────────────────────────────
1 │Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
2 │    Dim message As String
3 │
4 │    If Button And vbLeftButton Then
5 │        message = "マウスの位置は" & X & "," & Y
6 │        Label1.Caption = message
7 │    End If
8 │End Sub


以下説明
1. フォーム上でマウスボタンが離されたときのイベント
    引数
        Button      ボタンの状態
        Shift       キーボード[Shift][Alt][Ctrl]の状態
        X           X座標
        Y           Y座標

        X座標、Y座標は Form の ScaleMode プロパティにより値が変化します。

2. 変数宣言

4. ここのIf文を日本語にすると「もし左ボタンが離されたときならば」

5. message 変数に文字列 "マウスの位置は" と数値 X と 文字列 "," と数値 Y を結合する

    ここは
        message = "マウスの位置は" + CStr(X) + "," + CStr(Y)
    を置き換えたのと同様です。

    VB では、異なる型の変数の連結は & で行うことができ、自動で型変換が行われます。
    "+" で連結は文字列のみで、数値等は型変換を明示的に行わないとエラーになります。

6. Label1 の表示内容を message の変数の内容に変更する

7. 4行目の If 〜 Then の終端、もし If の条件に当てはまらない場合はここに飛んでくる

8. Sub の終端


理論はともかく、「こんなもの」と覚えるのがいいかと思います。
#6533-0
RE#6531:マウスの座標を出すプログラム
> > すいません。ここは始めたばかりの人専用掲示板ですが、僕の場合はそれよりも低レベルな質問です。
> 
> はじめたばかりなので、仕方ないと思いますよ。気にせず質問してください(^_^)
> 
> > になるんですが、マウスの位置はの隣の" & X & "."& Yの意味が分かりません。
> 
> ""でくくられてる中身はそのまま文字列として扱われます。&は文字列を連結するための「演算子」と
> 呼ばれるものです。
> XとYはVBがMouseUpイベントに渡してくれる変数で、マウスの位置が格納されています。
> なのでmessageという名前の変数の中には「マウスの位置は(Xの値).(Yの値)」という文字列が
> 入ってくることになります。
> 
> #以下、蛇足
> VBには変数の型を自動で変換してくれる機能があります。なので、上記のコードで正しく動作するのですが
> 本来X、YはSingle型と呼ばれる「数値」を格納するための変数ですので
> message="マウスの位置は" & CStr(X) & "." & CStr(Y)
> と書いた方がよいです。
> 自動型変換させるのはバグの元ですので、なるべく早いうちに型を意識して
> 明示的な変換をするよう心がけておきましょう。
> また、変数名・コントロール名もVBのヘルプに名前を付けるときの目安が書いてあるので
> 一通り目を通しておいた方がいいと思います。(必ずしもキチンと守る必要はないですが知ってるのと
> 知らないのとでは大違いですので)
> VB6のMSDNの場合「名前付け基準」をキーワードに探せば載ってます。
> 
> #ご覧になられている本は、残念ながらあまりそのあたりがしっかりしてないように思われます(;_;)

お答えありがとうございます。ものすごい初心者ですいません。
こんな初心者におすすめの本てのはありますか?
今、10日で覚えるVB6入門教室と言う本を読んでいます。10日で覚えるように急いで覚えるから力がつかないのかな?どうでしょうか?
ぜひどらおさんが参考にした書籍があれば教えて下さい。お願いします。
#6534-0
RE#6533:マウスの座標を出すプログラム
> 今、10日で覚えるVB6入門教室と言う本を読んでいます。10日で覚えるように急いで覚えるから力がつかないのかな?どうでしょうか?
> ぜひどらおさんが参考にした書籍があれば教えて下さい。お願いします。

10日で完全に読みきるのは無理だと思いますが、VBのヘルプを判らなくてもいいので一通り目を通しておくと
かなり勉強になると思います。
お持ちの入門書と一緒に使っていくといいのではないでしょうか。<入門書は入門書なりのいい点もあるので
VB6をお使いの場合、MSDNの目次から「VisualBasicドキュメント-VisualBasicの使用方法-プログラミングガイド」
の項目に目を通されるといいかと思います。
#6535-0
RE#6534:マウスの座標を出すプログラム
> > 今、10日で覚えるVB6入門教室と言う本を読んでいます。10日で覚えるように急いで覚えるから力がつかないのかな?どうでしょうか?
> > ぜひどらおさんが参考にした書籍があれば教えて下さい。お願いします。
> 
> 10日で完全に読みきるのは無理だと思いますが、VBのヘルプを判らなくてもいいので一通り目を通しておくと
> かなり勉強になると思います。
> お持ちの入門書と一緒に使っていくといいのではないでしょうか。<入門書は入門書なりのいい点もあるので
> VB6をお使いの場合、MSDNの目次から「VisualBasicドキュメント-VisualBasicの使用方法-プログラミングガイド」
> の項目に目を通されるといいかと思います。

教えてくれてどうもありがとうございます。早速見てみました。わけわかりませんでしたけど、
分からなくてもいいんですよね!?一応目を通しています。
僕のもってる入門書で分からない事があれば調べればいいんですね。
いろいろおしえてくれてどうもありがとうございました。
このページと関連する記事:
#10138-0PictureBox内でマウスで範囲指定するには?2000-05-06(土) 16:55
#20971-0ドラッグすると出る薄い線2001-05-20(日) 17:51
#5318-0エディットモードのやりかた1999-09-17(金) 08:13
#37815-0複数のマウスポインタの位置取得2001-01-27(土) 04:12
#1354-2PictureBox内のマウス座標取得方法2002-07-03(水) 04:46
#35854-0Labelのサイズをマウスでリアルタイムに変更できる?2000-12-22(金) 14:05
#10774-0ツリービューに関して1999-12-01(水) 19:25
#138-0移動中のフォーム表示1999-07-21(水) 16:00
#38021-0コントロールのサイズ変更について2001-01-31(水) 19:12
#46038-0pictureboxのドラック&ドロップについて2001-08-22(水) 16:34
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)