Excel VBA質問箱 IV

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

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


782 / 13645 ツリー ←次へ | 前へ→

【78341】疑問に思い、、、 yuuta 16/7/20(水) 18:40 質問[未読]
【78342】Re:疑問に思い、、、 β 16/7/20(水) 19:06 発言[未読]
【78343】Re:疑問に思い、、、 yuuta 16/7/20(水) 19:17 発言[未読]
【78344】Re:疑問に思い、、、 β 16/7/20(水) 21:03 発言[未読]
【78345】Re:疑問に思い、、、 yuuta 16/7/20(水) 21:32 発言[未読]
【78346】Re:疑問に思い、、、 カエムワセト 16/7/20(水) 21:54 発言[未読]
【78347】Re:疑問に思い、、、 β 16/7/20(水) 21:57 発言[未読]
【78348】Re:疑問に思い、、、 yuuta 16/7/20(水) 22:06 お礼[未読]
【78349】Re:疑問に思い、、、 16/7/21(木) 6:29 発言[未読]

【78341】疑問に思い、、、
質問  yuuta  - 16/7/20(水) 18:40 -

引用なし
パスワード
   Rangeを使うときに、"(ダブルクォーテーション)が必要なのはなぜなのでしょうか!?
本で調べても載ってませんでした(^-^;

【78342】Re:疑問に思い、、、
発言  β  - 16/7/20(水) 19:06 -

引用なし
パスワード
   ▼yuuta さん:

たとえば シート上では =SUM(A1:A10) と書くことができるというか、
そう書かなければいけないのに、なぜ VBA では Range("A1:A10") と書かなければいけないのか??
ということですね。

そうですねぇ。
Rangeの書き方は多種多様ですが、そのなかで、情報として セル領域アドレス文字列(A1:A10等)を与える書き方の場合、
VBAでいうところの【文字列】には、必ず、前後に "をつけることが必要という、まぁ、これもお約束です。

で、このルールは Range のルールではなく【文字列】のルールです。

たとえば

MsgBox "こんにちは"

この場合にも、こんにちは の前後に " を付けますよね。

【78343】Re:疑問に思い、、、
発言  yuuta  - 16/7/20(水) 19:17 -

引用なし
パスワード
   なるほど、、ダブルクォーテーションの意味がわかれば解決するということですね、、、

【78344】Re:疑問に思い、、、
発言  β  - 16/7/20(水) 21:03 -

引用なし
パスワード
   ▼yuuta さん:

>なるほど、、ダブルクォーテーションの意味がわかれば解決するということですね、、、

ん?
意味がよくわかりませんけど、VBAで文字列をあらわすときには

"文字列" と記述する、ただ、それだけのことですが?

【78345】Re:疑問に思い、、、
発言  yuuta  - 16/7/20(水) 21:32 -

引用なし
パスワード
   なぜ " を使わないといけないかと言う質問です。
"にどういった意味があるかということです。
緑なのになんで黒板っていうの?という質問と同じ部類なら答えんで良いです。

【78346】Re:疑問に思い、、、
発言  カエムワセト  - 16/7/20(水) 21:54 -

引用なし
パスワード
   なぜ文字列を""で括らないといけない仕様になっているのか?という質問でしたらVBAの開発者に聞いてください、としか
言えません。

また、回答者は常にお子ちゃまを相手にしているわけではないので、質問は具体的に、だれが見ても質問の意図が分かる
ようにしましょう。

【78347】Re:疑問に思い、、、
発言  β  - 16/7/20(水) 21:57 -

引用なし
パスワード
   ▼yuuta さん:
>なぜ " を使わないといけないかと言う質問です。
>"にどういった意味があるかということです。
>緑なのになんで黒板っていうの?という質問と同じ部類なら答えんで良いです。

逆に質問しますが 領域をあらわすのに なぜ Range(なんたら) と Range というスペルのワードを使わなければいけないのでしょう?
どんな言語にも、その言語の表記規約として、定められたキーワードや定められた記述用法があります。

で、VBAでは 【文字列】を生成するときには "こんにちは" と、先頭と末尾に " をつける。
これが、規約です。

もし、" をつけずに 単に こんにちは と記述すると、それは こんにちは という名前を持つ変数になります。

理屈はありません。そういう言語仕様です。

繰り返します。
" は VBA では 文字列のはじめ と 文字列の終わり を意味する特殊文字です。

【78348】Re:疑問に思い、、、
お礼  yuuta  - 16/7/20(水) 22:06 -

引用なし
パスワード
   ▼β さん:
>
>逆に質問しますが 領域をあらわすのに なぜ Range(なんたら) と Range というスペルのワードを使わなければいけないのでしょう?
>どんな言語にも、その言語の表記規約として、定められたキーワードや定められた記述用法があります。
>
>で、VBAでは 【文字列】を生成するときには "こんにちは" と、先頭と末尾に " をつける。
>これが、規約です。
>
>もし、" をつけずに 単に こんにちは と記述すると、それは こんにちは という名前を持つ変数になります。
>
>理屈はありません。そういう言語仕様です。
>
>繰り返します。
>" は VBA では 文字列のはじめ と 文字列の終わり を意味する特殊文字です。

ちゃんと意味があったようですね。ありがとうございました。

【78349】Re:疑問に思い、、、
発言    - 16/7/21(木) 6:29 -

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

意味は有るような無いような。

Rangeという語は英語では、領域とか領土とかの意味なので
エクセルVBAの仕様を決めた人は、シート上のセル範囲を表す語
として、ふさわしいと考えたのでしょう。なにがなんでもRange
に限るというほどではなくても。
ただし、いったんRangeで行くと決まってしまったら、絶対です。
われわれ利用者は勝手に他の単語を使うわけには行きません。

一方、文字列をあらわす""はRangeのような意味は有りません。
ではどんな記号でもよかったかというと、さにあらず。
英語の文章では、たとえば「.」や「,」には意味があり
文字列のなかに含まれてくる可能性が高い。
そんなのを文字列を表す記号にすると、ややこしいので
""は意味の無いところがポイントだったわけです。


▼yuuta さん:
>▼β さん:
>>
>>逆に質問しますが 領域をあらわすのに なぜ Range(なんたら) と Range というスペルのワードを使わなければいけないのでしょう?
>>どんな言語にも、その言語の表記規約として、定められたキーワードや定められた記述用法があります。
>>
>>で、VBAでは 【文字列】を生成するときには "こんにちは" と、先頭と末尾に " をつける。
>>これが、規約です。
>>
>>もし、" をつけずに 単に こんにちは と記述すると、それは こんにちは という名前を持つ変数になります。
>>
>>理屈はありません。そういう言語仕様です。
>>
>>繰り返します。
>>" は VBA では 文字列のはじめ と 文字列の終わり を意味する特殊文字です。
>
>ちゃんと意味があったようですね。ありがとうございました。

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