• ベストアンサー

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

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

質問者の聞きたいことが良くわからない。 したいことの例を、文章で、かつエクセルの用語で書くべきだ。質問の状態では、回答者が一々推定して答えなければならない。回答者が手がかからず正確に答えが出るよう勉強すること。質問するにも勉強が必要だ。 聞きたいことーー>煮詰めると' " ! &にあるらしいと質問者は推測した、らしいが そこに初心者の不正確な判断が入っていて、不十分になっている個所が多いのでは。 自分の知っていること、勉強したこと、考えたことは最後の注記にでもとどめ、聞きたいことを表現し回答者の優れた経験の回答からえて、場合によっては全面的に自分の考えを改める覚悟で聞くことが良い。 ーーー シート参照の話題らしいが !は関数などでは、他シートの参照に使うので、そのことか。 ただし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 でもよく読むほうが勉強になるだろう。 >うまく動作できません その例を挙げれば、原因や答えは回答者に指摘してもらえるだろう。

yuukoron
質問者

お礼

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

その他の回答 (4)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.5

ここでは、いかに的確な回答を得るかは質問しだいというところありますね。 うまくできなかった行を貼り付けしたら解決ではありますがー、毎度質問すると人に頼るばかりで上達遅いです。 セルの数式欄と同じ感覚でやっていますね?。普通シート名!セル名ですがVBAの方はほかの書き方になります。「EXCELVBAの道」、まとめたサイトの一例です。セル参照、シート参照にどんな記載があるのか学習すると良いです。数式とは違うのも。 また、VBAでは「“」は「CHR(34)」で表現できるのでファイル名の両端に「“」を付けたいとき等は「CHR(34)&ファイル名の変数&CHR(34)」と書くこともあります。これはしばらく使ってから良いです。

yuukoron
質問者

お礼

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

  • qyukip
  • ベストアンサー率40% (13/32)
回答No.4

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

yuukoron
質問者

お礼

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

  • qyukip
  • ベストアンサー率40% (13/32)
回答No.3

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

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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とワークシートの数式とは違います。 >' " ! & の使い方をやさしく解説してください。 的確な回答が欲しいときは,あなたが「今判っていること(あるいは自分で実際に書いてみたけど上手く動かなかったそのマクロ)」と「ここが判らない(あるいはこういう事がしたい)」具体的な内容を丁寧に説明してみてください。

yuukoron
質問者

お礼

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

関連するQ&A