Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4466 / 13644 ツリー ←次へ | 前へ→

【56386】ステートメント内容について 初心者さっち 08/6/16(月) 10:02 質問[未読]
【56388】Re:ステートメント内容について neptune 08/6/16(月) 10:33 回答[未読]
【56391】Re:ステートメント内容について 初心者さっち 08/6/16(月) 11:08 回答[未読]
【56397】Re:ステートメント内容について neptune 08/6/16(月) 13:16 回答[未読]
【56399】Re:ステートメント内容について 初心者さっち 08/6/16(月) 13:58 質問[未読]
【56409】Re:ステートメント内容について neptune 08/6/16(月) 16:26 回答[未読]
【56458】Re:ステートメント内容について 初心者さっち 08/6/18(水) 11:17 質問[未読]
【56465】Re:ステートメント内容について neptune 08/6/18(水) 13:25 回答[未読]
【56468】Re:ステートメント内容について 初心者さっち 08/6/18(水) 13:52 質問[未読]
【56471】Re:ステートメント内容について neptune 08/6/18(水) 15:41 回答[未読]
【56483】Re:ステートメント内容について 初心者さっち 08/6/19(木) 8:51 お礼[未読]
【56472】Re:ステートメント内容について ノーシン 08/6/18(水) 16:03 発言[未読]
【56484】Re:ステートメント内容について 初心者さっち 08/6/19(木) 8:58 回答[未読]
【56389】Re:ステートメント内容について ひげくま 08/6/16(月) 10:37 発言[未読]
【56392】Re:ステートメント内容について 初心者さっち 08/6/16(月) 11:14 質問[未読]
【56394】Re:ステートメント内容について ひげくま 08/6/16(月) 11:18 回答[未読]
【56400】Re:ステートメント内容について 初心者さっち 08/6/16(月) 14:00 お礼[未読]
【56390】Re:ステートメント内容について kanabun 08/6/16(月) 10:50 回答[未読]
【56393】Re:ステートメント内容について 初心者さっち 08/6/16(月) 11:16 質問[未読]

【56386】ステートメント内容について
質問  初心者さっち  - 08/6/16(月) 10:02 -

引用なし
パスワード
   さっそくですが、ご教示ください。

Sub test()
  Dim rs As Integer
  For rs = 1 To 5
    Debug.Print ("rs=(" & rs & ")")
  Next rs
End Sub

【上記実行結果】
rs=(1)
rs=(2)
rs=(3)
rs=(4)
rs=(5)

上記の、("rs=(" & rs & ")")がわかりません。
なぜアンパサンドが入るのでしょうか。

("rs=(rs)")では、たしかに( 1 )←なります。1の前後にスペースが入ってしまいます。きれいに表示させるには、上記のように記述するのは理解できるのですが、なぜ上記のように記述するとそうなるのかをご教示できればと思います。

宜しくお願い致します。

【56388】Re:ステートメント内容について
回答  neptune  - 08/6/16(月) 10:33 -

引用なし
パスワード
   ▼初心者さっち さん:
>さっそくですが、ご教示ください。
>
>Sub test()
>  Dim rs As Integer
>  For rs = 1 To 5
>    Debug.Print ("rs=(" & rs & ")")
>  Next rs
>End Sub

>上記の、("rs=(" & rs & ")")がわかりません。
>なぜアンパサンドが入るのでしょうか。
本来文字列出力ですから
Debug.Print ("rs=(" & cstr(rs) & ")")
とすべきですが、VBの便利な機能である「暗黙の型変換」が行われているからです。
便利な仕様ですが、時に大きなお世話もしてくれます。

文字列の結合には「&」を使用します。

>("rs=(rs)")では、たしかに( 1 )←なります。1の前後にスペースが入って
>しまいます。きれいに表示させるには、上記のように記述するのは理解できる
>のですが、なぜ上記のように記述するとそうなるのかをご教示できればと思います。
理解が間違っています。

>>("rs=(rs)")では、たしかに( 1 )←なります。
ですが、本当になりますか?VBの文法から言うと
>Debug.Print ("rs=(rs)")では、
rs=(rs)
と出力されるはずです。

【56389】Re:ステートメント内容について
発言  ひげくま  - 08/6/16(月) 10:37 -

引用なし
パスワード
   こんにちは。

>("rs=(rs)")では、たしかに( 1 )←なります。

本当ですか?

私がやってみたところ、
Debug.Print ("rs=(rs)")
では、
rs=(rs)
という文字列が表示されます。

【56390】Re:ステートメント内容について
回答  kanabun  - 08/6/16(月) 10:50 -

引用なし
パスワード
   余談ですが、

>    Debug.Print ("rs=(" & rs & ")")
は、& を使わずに、

  Debug.Print "rs=("; rs; ")"

と書くことができます。

  Debug.Print "rs=("; "rs"; ")"
と書いたら、
  Debug.Print "rs=(rs)"
と同じことになりますでしょう (^^

【56391】Re:ステートメント内容について
回答  初心者さっち  - 08/6/16(月) 11:08 -

引用なし
パスワード
   ▼neptune さん:
>▼初心者さっち さん:
>>さっそくですが、ご教示ください。
>>
>>Sub test()
>>  Dim rs As Integer
>>  For rs = 1 To 5
>>    Debug.Print ("rs=(" & rs & ")")
>>  Next rs
>>End Sub
>
>>上記の、("rs=(" & rs & ")")がわかりません。
>>なぜアンパサンドが入るのでしょうか。
>本来文字列出力ですから
>Debug.Print ("rs=(" & cstr(rs) & ")")
>とすべきですが、VBの便利な機能である「暗黙の型変換」が行われているからです。
>便利な仕様ですが、時に大きなお世話もしてくれます。
>
>文字列の結合には「&」を使用します。
>
>>("rs=(rs)")では、たしかに( 1 )←なります。1の前後にスペースが入って
>>しまいます。きれいに表示させるには、上記のように記述するのは理解できる
>>のですが、なぜ上記のように記述するとそうなるのかをご教示できればと思います。
>理解が間違っています。
>
>>>("rs=(rs)")では、たしかに( 1 )←なります。
>ですが、本当になりますか?VBの文法から言うと
>>Debug.Print ("rs=(rs)")では、
>rs=(rs)
>と出力されるはずです。
すいません。
まちがっていました。
Debug.Print "rs=("rs")"←こう書いたのです。
すると、勝手に"rs=("; rs; ")"なったのです。
で( 1 )ってなったんです。(スペース1スペース)

Sub test()
  Dim rs As Integer
  For rs = 1 To 5
    Debug.Print "rs=("; rs; ")"
  Next rs
End Sub

なぜアンパサンドを1の前後に記述すると、rs=(数字)となるのでしょうか

ご教示の程宜しくお願い致します。

【56392】Re:ステートメント内容について
質問  初心者さっち  - 08/6/16(月) 11:14 -

引用なし
パスワード
   ▼ひげくま さん:
>こんにちは。
>
>>("rs=(rs)")では、たしかに( 1 )←なります。
>
>本当ですか?
>
>私がやってみたところ、
>Debug.Print ("rs=(rs)")
>では、
>rs=(rs)
>という文字列が表示されます。
間違っていました。
Debug.Print "rs=("rs")"って記述したのです。
そしたら、rsの前後にセミがくっついたのです。

セミコロンとアンパサンドで同じ結果が得られるのは理解できたのですが、
なぜ、変数の前に挿入していないとだめなのでしょうか。

【56393】Re:ステートメント内容について
質問  初心者さっち  - 08/6/16(月) 11:16 -

引用なし
パスワード
   ▼kanabun さん:
>余談ですが、
>
>>    Debug.Print ("rs=(" & rs & ")")
>は、& を使わずに、
>
>  Debug.Print "rs=("; rs; ")"
>
>と書くことができます。
>
>  Debug.Print "rs=("; "rs"; ")"
>と書いたら、
>  Debug.Print "rs=(rs)"
>と同じことになりますでしょう (^^

なりました!
余談ありがとうございます。

でも、なぜアンパサンドorセミコロリンがいるのでしょうか。
そう決まっている事なのでしょうか。

ご教示ください。

【56394】Re:ステートメント内容について
回答  ひげくま  - 08/6/16(月) 11:18 -

引用なし
パスワード
   >セミコロンとアンパサンドで同じ結果が得られるのは理解できたのですが、
>なぜ、変数の前に挿入していないとだめなのでしょうか。

1を""で括っているのではなく、
rs=( を""で括って文字列扱いにして、rs ""で括らずに変数として扱って、) を""で括って文字列扱いにしています。

【56397】Re:ステートメント内容について
回答  neptune  - 08/6/16(月) 13:16 -

引用なし
パスワード
   ▼初心者さっち さん:
こんにちは

>なぜアンパサンドを1の前後に記述すると、rs=(数字)となるのでしょうか
先のResに
>>本来文字列出力ですから
>>Debug.Print ("rs=(" & cstr(rs) & ")")
>>とすべきですが、VBの便利な機能である「暗黙の型変換」が行われているからです。
>>便利な仕様ですが、時に大きなお世話もしてくれます。

>>文字列の結合には「&」を使用します。
と書きましたが。。。

もっと簡潔にいうと、VBの仕様です。
・・参考書の一冊でもお読み下さい。文字列を扱う際の基本中の基本ですから
文字列操作の部分の最初のほうに書いているのでは????。

【56399】Re:ステートメント内容について
質問  初心者さっち  - 08/6/16(月) 13:58 -

引用なし
パスワード
   こんにちは。

>先のResに
>>>文字列の結合には「&」を使用します。
>と書きましたが。。。
ようやく理解できました。
ありがとうございます。

>もっと簡潔にいうと、VBの仕様です。
>・・参考書の一冊でもお読み下さい。文字列を扱う際の基本中の基本ですから
>文字列操作の部分の最初のほうに書いているのでは????。
基本中の基本がわからなかったのです。ごめんなさい。
基本中の基本な事はここで質問するより、まず参考書をみなさいということでしょうか。

【56400】Re:ステートメント内容について
お礼  初心者さっち  - 08/6/16(月) 14:00 -

引用なし
パスワード
   こんにちは


▼>1を""で括っているのではなく、
>rs=( を""で括って文字列扱いにして、rs ""で括らずに変数として扱って、) を""で括って文字列扱いにしています。

ありがとうございます!!
やっと理解できました。
大変勉強になりました。

【56409】Re:ステートメント内容について
回答  neptune  - 08/6/16(月) 16:26 -

引用なし
パスワード
   ▼初心者さっち さん:
こんにちは

>ようやく理解できました。
それは良かったです。


>基本中の基本な事はここで質問するより、まず参考書をみなさいということでしょうか。
#もし他言語経験者ならそんな事は当たり前です。^ ^;;

が、初心者さっち さんの他言語でのプログラミングの経験がわからないので
ホントの初心者ということで書きます。

先ず、基礎文法について、解説しているサイトは少しはあるだろうけど、
非常に少ないと思います。

何で調べるかはともかく、基礎は自分で勉強する他ないと言うことです。
少なくとも私はそういうスタンスですし、自分ではそうしてきましたし、
そうしなければ、基礎は判らないということも実感してます。

もし、例えば初心者さっち さんが、ご自分で作成したプログラムを変更する際
、他人のプログラムを理解しようとする際などは基礎が無くては出来ません。
又、調べると言う事はプログラミング言語のスキルアップにとって非常に
大切な事です。ここでも、調べた内容について理解するのに基礎は必須です。

・・・と、このようなことを書いてプロになる気はないと書かれた事ありますが
この辺りの努力と言うものはプロでなくともプログラミングをするものにとって
は同じです。

ちなみに、自分で調べるスキルが付いて解決できるようになったらすでに
初心者の域は卒業しているんじゃないですかね。
が、これも基礎なしでは無理です。

以上、基礎はキチンと勉強しようと言う事でした。
頑張ってください。

【56458】Re:ステートメント内容について
質問  初心者さっち  - 08/6/18(水) 11:17 -

引用なし
パスワード
   こんちには。

>以上、基礎はキチンと勉強しようと言う事でした。
>頑張ってください。
はい、参考にさせて頂きます。
長文ありがとうございます。

ただ、基礎もこのサイトで聞いてもいいと思うのですが・・・。
もちろん、丸投げや、調べもしないでっていうのはダメだと思います。

教示していただいた、マクロを理解するべく質問することは基本方針に、
反していないと思います。

【56465】Re:ステートメント内容について
回答  neptune  - 08/6/18(水) 13:25 -

引用なし
パスワード
   ▼初心者さっち さん:
こんにちは

>ただ、基礎もこのサイトで聞いてもいいと思うのですが・・・。
>もちろん、丸投げや、調べもしないでっていうのはダメだと思います。
勿論、その姿勢で問題ないと思いますし、わからない所は解決していかなければ
後で困ります。

>教示していただいた、マクロを理解するべく質問することは基本方針に、
>反していないと思います。
反してはいないでしょうね。

ただ、今回のケースは普通の開発言語の参考書では、データ型、演算子など、
ホントの最初のほうのページで出てくる所です。
実際のプログラミングの前の解説で。

少しでも、参考書で勉強をしているなら、読んでいるはずです。
先にも書きましたが、Webサイトではそのような所まで解説している所は
少ないと思います。(調べたわけではありません)

基礎を飛ばして、応用から入っても後で落とし穴が待っているだけです。

今回の疑問は、
& 演算子のHelp、使用例があります。それを見たら解決する問題です。
参考書であれば、その部分を見れば解決します。
(どちらも、どこに書いているか判らないというのはなしで。)
ちなみに、私は参考書は見られるところに置いてます。

掲示板で聞くよりはずっと解決が早いですよね。
又、このような無駄なやり取りもしなくて済みます。^ ^;;

【56468】Re:ステートメント内容について
質問  初心者さっち  - 08/6/18(水) 13:52 -

引用なし
パスワード
   こんにちは。

>今回の疑問は、
>& 演算子のHelp、使用例があります。それを見たら解決する問題です。
>参考書であれば、その部分を見れば解決します。
つまりは、参考書及び、Helpに使用例が掲載されている事は、自己解決してください。ということでしょうか?

もしそうなら、ほとんどの回答が「参考書のはじめをみてください」、「参考書の後の方をみてください」となるのではないでしょうか?

基礎だから、参考書のはじめに書いてある事だから、使用例が書いてあるから、という言い方は納得できません。


>掲示板で聞くよりはずっと解決が早いですよね。
>又、このような無駄なやり取りもしなくて済みます。^ ^;;
私は、質問している間も調べておりましたが、掲示板の回答の方が早かったです。
無駄だとは思いません。

【56471】Re:ステートメント内容について
回答  neptune  - 08/6/18(水) 15:41 -

引用なし
パスワード
   ▼初心者さっち さん:
こんにちは。

>つまりは、参考書及び、Helpに使用例が掲載されている事は、自己解決してください。ということでしょうか?
出来ればという事ですね。読んだその上で理解できない所は質問すべきでしょう。

>
>もしそうなら、ほとんどの回答が「参考書のはじめをみてください」、「参考書の後の方をみてください」となるのではないでしょうか?
そうはなりません。何故なら、質問者も様々な方が居られるようにアドバイス
をする人も多様です。このような掲示板から勉強した人はそうは書かないかも
しれません。私はVB、(A)なしの方から始めてますのでキツメです。
それでもそれなりに遠慮はしてます。^ ^;;
VBの方ならこんなに丁寧に書きません。簡潔に書いて終わってます。

>基礎だから、参考書のはじめに書いてある事だから、使用例が書いてあるから、
>という言い方は納得できません。
納得できようが出来まいが、書いているのは事実です。調べたと言っても
どの様な調べ方をしているか私にはわかりませんし、勉強していると言っても
どの様に勉強しているかも又、私には判りません。

実際問題として、今回の質問で、先ず調べなければならないのは
&演算子です。これもどうやって調べたか、何を調べたか私にはわかりません。

>私は、質問している間も調べておりましたが、掲示板の回答の方が早かったです。
>無駄だとは思いません。
私が言っているのは、質問、解決後のこのようなやり取りです。
これは私にも、初心者さっち さんにも無駄でしょう。

これ以上雰囲気が悪くなるとそれこそ、「基本方針」に反する事になります
ので納得するしないの問題ではこれ以上このスレには書き込みません。

質問であれば回答します。

#余計なお世話ですが、調べ方についても質問した方が良いのでは?
#また気を悪くしたらごめんなさい。

【56472】Re:ステートメント内容について
発言  ノーシン  - 08/6/18(水) 16:03 -

引用なし
パスワード
   ▼初心者さっち さん:

ここの掲示板は回答をしてくださっている識者の方々は無償で的確な回答をしてくれています。

まさに的確な回答をしてくれている訳で、分からないことをあっと言う間に答えてくれています。

つまり、回答は的を射ているわけで、何を反論する必要があるんでしょうか?

忠言耳に逆らえども行いに利あり

孔子はイイことを言ったものです。

【56483】Re:ステートメント内容について
お礼  初心者さっち  - 08/6/19(木) 8:51 -

引用なし
パスワード
   ▼neptune さん
こんにちは。

質問に対しての回答以外は、気にしないようにします。
いろいろ為になる事をありがとうございます。

それと、気は悪くしてないです。

回答していただきありがとうございました。

【56484】Re:ステートメント内容について
回答  初心者さっち  - 08/6/19(木) 8:58 -

引用なし
パスワード
   ▼ノーシン さん:
こんにちは。

>まさに的確な回答をしてくれている訳で、分からないことをあっと言う間に答えてくれています。
>
>つまり、回答は的を射ているわけで、何を反論する必要があるんでしょうか?

回答への反論はしていないです。

4466 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free