みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル VBA ' " ! & の使い方

エクセル VBA ' " ! & の使い方
VBAを独学で勉強している、超初心者です。
同じシート内でのVBAを作るのはなんとなくできるようになったのですが、別のシートのデータを参照したいときなど、(シート名を変数にしています)うまく動作できません。
' " ! & の使い方をやさしく解説してください。
よろしくお願いします。

投稿日時 - 2010-06-14 00:05:37

QNo.5966883

困ってます

質問者が選んだベストアンサー

質問者の聞きたいことが良くわからない。
したいことの例を、文章で、かつエクセルの用語で書くべきだ。質問の状態では、回答者が一々推定して答えなければならない。回答者が手がかからず正確に答えが出るよう勉強すること。質問するにも勉強が必要だ。
聞きたいことーー>煮詰めると' " ! &にあるらしいと質問者は推測した、らしいが
そこに初心者の不正確な判断が入っていて、不十分になっている個所が多いのでは。
自分の知っていること、勉強したこと、考えたことは最後の注記にでもとどめ、聞きたいことを表現し回答者の優れた経験の回答からえて、場合によっては全面的に自分の考えを改める覚悟で聞くことが良い。
ーーー
シート参照の話題らしいが
!は関数などでは、他シートの参照に使うので、そのことか。
ただしVBAではWorksheets("Sheet2").Range(”A1")のほうが使い勝手が良い。
シート名の指定は
(1)名前
(2)インデック番号
(3)ActiveSheet
(4)NextやBefore
などがある。
ーー
”は、どの何のことか良くわからない。
ーー
’は
http://www.excel-jiten.net/formula/ref_other_books.html
の最後の「直接数式を入力する」にある式の’などのことか?
ーー
&は(シートとの関連だとすると)なんのこと?文字列の結合をするときに使う演算子だが、聞くまでも無い簡単なことで、エクセル関数でも出てくる。
Googleででも「エクセル VBA "&"」で照会し
http://home.att.ne.jp/zeta/gen/excel/c04p22.htm
でもよく読むほうが勉強になるだろう。
>うまく動作できません
その例を挙げれば、原因や答えは回答者に指摘してもらえるだろう。

投稿日時 - 2010-06-14 10:04:21

お礼

ありがとうございました。解決できました。
わたしが参考にしている本の構文も、数式を直接入力していたみたいで、頭がごっちゃになってました。
上記、いろいろ参考になりました。

投稿日時 - 2010-06-16 00:55:36

ANo.2

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

ここでは、いかに的確な回答を得るかは質問しだいというところありますね。

うまくできなかった行を貼り付けしたら解決ではありますがー、毎度質問すると人に頼るばかりで上達遅いです。

セルの数式欄と同じ感覚でやっていますね?。普通シート名!セル名ですがVBAの方はほかの書き方になります。「EXCELVBAの道」、まとめたサイトの一例です。セル参照、シート参照にどんな記載があるのか学習すると良いです。数式とは違うのも。

また、VBAでは「“」は「CHR(34)」で表現できるのでファイル名の両端に「“」を付けたいとき等は「CHR(34)&ファイル名の変数&CHR(34)」と書くこともあります。これはしばらく使ってから良いです。

投稿日時 - 2010-06-14 13:48:45

お礼

ありがとうございました。「EXCELVBAの道」参考にさせていただきます。

投稿日時 - 2010-06-16 00:57:24

ANo.4

結論から言うとVBAで別のシートのデータを参照するのに ' " ! & は使用しません。
使用する方法は他の回答者様の言う通りWorkSheets("シート名").range("セル番号").valueです。
この質問ではシートの参照がしたいのか ' " ! & が何に使用するものなのかがわからず、
回答する側も困ってしまいます。
もし質問するとしたら単純に「別のシートの内容をVBAで参照するにはどうすればよろしいでしょうか?」等
で十分です。なのでやりたいことを具体的に質問するようにしてください。

投稿日時 - 2010-06-14 10:41:15

お礼

ありがとうございました。質問の仕方がおかしかったですね。気をつけます。

投稿日時 - 2010-06-16 01:00:40

ANo.3

結論から言うとVBAで別のシートのデータを参照するのに ' " ! & は使用しません。
使用する方法は他の回答者様の言う通りWorkSheets("シート名").range("セル番号").valueです。
この質問ではシートの参照がしたいのか ' " ! & が何に使用するものなのかがわからず、
回答する側も困ってしまいます。
もし質問するとしたら単純に「別のシートの内容をVBAで参照するにはどうすればよろしいでしょうか?」等
で十分です。なのでやりたいことを具体的に質問するようにしてください。

投稿日時 - 2010-06-14 10:41:04

ANo.1

>別のシートのデータを参照したい

例:シート2のA1セルの値をシート1のB2セルに引き写す
sub macro1()
 worksheets("Sheet1").range("B2").value = worksheets("Sheet2").range("A1").value
end sub


例:シートの1,2,3,4番目の各A1セルの値を,シート5のA1からA4までに引き写す
sub macro2()
 dim i
 for i = 1 to 4
  worksheets("Sheet5").cells(i, "A").value = worksheets(i).range("A1").value
 next i
end sub





VBAとワークシートの数式とは違います。
>' " ! & の使い方をやさしく解説してください。

的確な回答が欲しいときは,あなたが「今判っていること(あるいは自分で実際に書いてみたけど上手く動かなかったそのマクロ)」と「ここが判らない(あるいはこういう事がしたい)」具体的な内容を丁寧に説明してみてください。

投稿日時 - 2010-06-14 01:24:43

お礼

ありがとうございました。おかげさまで、解決できました。
質問の仕方がおかしかったようで、すみませんでした。

投稿日時 - 2010-06-16 00:50:19

あなたにオススメの質問