• ベストアンサー

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

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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/7940)
回答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

  • エクセルVBAで困ってます。

    私は今、エクセルVBAで困ってます。 内容はデータを入力したエクセルのシート上で、別のファイル(CSV形式)を開いてある特定の行に入力したデータを参照し、完全に一致した際には、別のファイルの内容をシートに反映させるといったようなことは可能でしょうか? 襲えて下さい。 回答お待ちしています。

  • VBAからEXCELの新規ファイルを作成する

    VB6.0 Excel2000を使用しています。 VBAからEXCELファイルを参照する方法は前回教えていただきましたが 新規にEXCELファイルを作成する方法がわからないので教えてください。 【やりたいこと】 ・ファイル名は、ダイアログボックスから入力され、フルパスで変数に  格納されています。 ・シート名は固定文字で指定します。 (↑ここまではできています) (↓ここからわかりません) ・セルの内容を編集したあと、指定のファイル名・シート名で保存したい よろしくお願いします。

  • VBAのハイパーリンクについて質問です

    こんばんわ。 VBA初心者です。調べてみて分からない箇所がありましたので教えてください m(_ _)m マクロを作成しているブックを、リスト.xls とします。 リストのマクロを実行して、別のブックを開く動作を行います。 開くブックは毎回違い、シートも複数あります。 条件にあてはまるシートをリスト.xls のシート2にハイパーリンクを追加したいと思っています。 ブック、シート名を指定すればリンクを追加できるのですが、毎回ブックもシート名も違うので 変数を使用しなければならないと思うのですがどのように書いていいのかわかりません。 出来れば簡単な解説付きだと嬉しいです。 よろしくお願いします。

  • エクセルVBAでの変数のスコープ

    基本的なことなのですが、教えて下さい。 当方、PHPやjavascriptを中心にプログラムしてきたのですが、 今回、エクセル+VBAでプログラムすることになり、VBAを勉強しているところなのですが、ちょっと戸惑っています。 いままでは、グローバル変数をなるべく使わないように、プログラミングをしてきたのですが、 VBAの勉強で、参考にしている本のコードは、全てグローバル変数を使っています。 そもそも、エクセルのシート・セルがグローバル変数のようなもの(?)なので、変数のスコープにこだわってもあまり意味がないのかな?とも思います。 エクセル+VBAである程度の規模のプログラムを作る際、 変数のスコープはどのように使い分けるのが良いのでしょうか? すみませんが、ご教授の程、よろしくお願いします。

  • VBAについて

    ExcelのVBAで、ブック内のシートに飛ぶハイパーリンクを設定するマクロを組みたいんですが、シート名に変数を使うと、変数として認識されません。ためしにシート名を指定してみるとうまくいくんですが、どうしても変数を使いたいのです。いい方法ありますか?

  • EXCELでVBAを使って住所録(超初心者です)

    EXCELでVBAを使って住所録(超初心者です) 会社の住所録を新しく作り直すよう指示されました。 以前作った方がアクセスが得意だったようでアクセスの住所録を使っておりましたが 当方はエクセルを少しかじった程度ですので関数が人より少しできるぐらいです。 本題に入りますが、アクセスのデータをとりあえずエクセルに抜き出し、 2つに別れていたデータをVLOOKUPでぶつけてひとつにまとめました。 そのシートをAとしてそのデータは基本的には入力不可とし、 シートBで名前を検索すると該当アリの場合は住所などが表示され、 かつ訂正が生じた場合はシートBのままそこに入力すると変更ができるように。 該当ナシの場合は新規で住所などをインプットし、 かつシートAの最下部にシートBにてインプットしたデータが 反映されるようにしたいのですが、どのようにプログラミングしたらよろしいでしょうか? 説明がへたくそで申し訳ございません。 VBAの本を買って勉強してから独学で頑張ろうとおもっておりますので 可能かどうかだけでも結構ですので宜しくお願いします。

  • EXCEL VBA n番目のシートの内容を参照した

    EXCEL VBAについて教えてください。 別のブックのシートのセルを直接参照したいのですが、 シート名が、決まっておらず、必ず4番目のシートを参照したいです。 以下のようなVBAの シート名をSheets(1)のような、決まったインデックス番号で指定にしたいのですが、どのように指定すればよいでしょうか? Range("A1") = "='e:\Temp\working\[book1.xls]シート名'!A1"

  • Excel VBAの連続印刷について。

    Excel VBAをこれから始めてみようとしている超初心者です。 手始めとして、以下の処理をさせてやろうかと思っていたのですが いきなり挫折しまいました。。 ◎Sheet1から順番に最終シートまでを連続印刷。 ◎最終シートまで印刷されたら処理終了で、Sheet1を表示させる。 ・データによってシート数は変動する。最終がSheet50の時もあれば  Sheet300の時もあり。 ・シート名は「Sheet」+半角数字で、連続している。 シート名を変数にして、1ずつ加えていって…と考えながら、色々と 繰り返し処理についてもネットで調べてみたのですが、結局頭の中で 行き詰ってしまいました。 非常に簡単な処理だとは思うのですが、どのような書き方があるのか ご教示頂ければ助かります。 宜しくお願いします。

  • エクセルVBAについて

    こんばんは。エクセルVBAについてアドバイスをお願いします。 エクセルのシートをNotesにオブジェクトとして貼り付けて使用しています。 エクセルファイルを開いたときに「シートA」を表示させましてその後そのシート上のデータを参照しながら別のシート上で作業したいと思っています。 しかしファイルを開くと 「'Sheets'メソッドは失敗しました'Globalオブジェクト'」というメッセージが表示されてしまいます。 エラーがでた場所は下記の※印の場所です。 =============================================== Dim WORK As Long Dim DATA As Object Set DATA = Worksheets("シートA").Range("A1") ※ WORK = DATA.Value =============================================== 情報が足りない場合は追記お願いします。 アドバイスお願い致します。

  • エクセルVBAで困ってます。

    エクセルVBAで困っています。 データ入力済みのシートが2つあります。 シート名を「Sheet1」「Sheet2」とします。 「Sheet1」のA列のデータが「Sheet2」のA列のデータと一致した時に それぞれのシートのセル番地を取得したいのですが出来ません。 教えて下さい。 データの並び順は「Sheet1」と「Sheet2」で異なります。

専門家に質問してみよう