• ベストアンサー

EXCELのマクロでセルの値を取得するには?

EXCELのSheet1が下記のようにあります。   A  B  C  D 1    10 2 3 4 マクロでB1の値の10を取得して 1回から10回処理を繰り返したいのですが どのようにしたらよいかわかりません。どなたかお教えください。

  • saiz
  • お礼率62% (66/106)

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

  • ベストアンサー
  • mythism
  • ベストアンサー率52% (45/86)
回答No.1

いろいろな方法がありますが, Worksheets("Sheet1").Cells(1,2).Value がSheet1の1行目の2列目(=B1)の値となりますので,これを T = Worksheets("Sheet1").Cells(1,2).Value のように変数に代入して(代入しなくても良いのですが…),後は通常のVBEの処理を行えばよいと思います. For i = 1 To T (ここに処理を入れる) Next なお,Worksheets("Sheet1")はその時点での作業シートがSheet1であれば,省略しても問題ありません.

saiz
質問者

お礼

早速の回答有難うございます。 解決できました。

その他の回答 (1)

  • Vargas
  • ベストアンサー率45% (9/20)
回答No.2

Sheet1.Cells(1, 2).Value Sheet1.Range("B1").Value どちらかで値を取得し、その値を使用して、for文でループする。

saiz
質問者

お礼

早速の回答有難うございました。 No.1の方の回答で解決できてしまいました。

関連するQ&A

  • エクセルのマクロで、セルの値を参照してジャンプ

    エクセルのマクロで、セルの値を参照して、 別シートにジャンプして貼り付けたいと思っています。 <Sheet1>  |  A  B  C ------------------------------------ 1|  A1  あ  100 2|  B5  い  50 3|  C7  う  80 4|  D3  え  20 5|  E9  お  40 <Sheet2>  |  A  B  C  D  E ------------------------------------ 1|  あ 2|  100 3|         え 4|         20 5|    い 6|    50 7|       う 8|       80 9|            お 10|            40 といったイメージです。(お分かり頂けますか?) Sheets1!B1:C1を選択し、A1のセルの値を参照して、Sheets2!A1にジャンプして、 行列入れ替えて貼り付ける、といったマクロを組みたいのですが、 セルの値を参照する部分が分かりません。 実際はSheets2の様なシートは複数あり、1つのリストから複数の形式を変えた表を 作りたいと思っています。 Sheets2以降のシートに見出し行を加え、VLOOK関数を組み込んだ表を作っておき、 結果を貼り付けて見出し行を削除する、といったマクロは組めるのですが、 セルを参照してジャンプして貼り付けてくれると便利だと思い質問させて頂きました。 どなたかお知恵を拝借できましたら嬉しいです。 宜しくお願い致しますm(_ _)m

  • マクロで自動的に計算式に値を取得させたい

    マクロで自動的に計算式に値を取得させsheet1にある基データを sheet2に等間隔で出力させたいのですが・・・うまくいきません。 最終的にはこれをループさせsheet1の全てのデータを等間隔で sheet2の方へもたせる予定です。 [sheet1]          [sheet2]   A   B   C        A     B     C 1  りんご         りんご 2  みかん 3  なし          みかん 4  ・・・ 5  ・・・          なし 6  ・・・                    sheet2のA1に計算式「=sheet1!$A1」を入れ、それをコピーして A3、A5にペーストすると計算式が上手く反映されず、ずれてしまいます。 希望としては・・・ A3には「=sheet1!$A2」となりsheet1のA2の「みかん」 A5には「=sheet1!$A3」となりsheet1のA3の「なし」 が入るようにしたいのですが、上手くいきません。また、 sheet1のデータ量も多いのでマクロでの処理を考えています。 いろいろ検索してみたのですが上手く処理ができませんでしたので こちらで質問させていただきました。 よろしくお願いします。

  • ◯ならば、右セルをコピーし、1セルにまとめるマクロ

    エクセルのマクロで、顧客管理情報のシートを作成しています 例えば下のような二列のセルがありまして、(|は、セルの境目を表す) ◯ | A ◯ | B × | C ◯ | D この時、 ◯のついている行の値だけど、つなげたいと思っています。 この場合であれば、得たい値は「A、B、D」という値です。(AとBの間を ”,” などで区切ろうと考えています。 エクセルの関数でいえば「A1&","&A2」といったところでしょうか・・・ そのような操作を、上のテーブルでいえば「◯」のついているセルに対してのみ実行してもらうマクロを組みたいです。 このような場合、どうしたら良いでしょうか? アドバイスを、どうぞよろしくお願いいたします。

  • エクセルで別シートの値を取得したいです。

    エクセルで質問があります。 別シートからセル値を取得したいです。 ただ、セル番地は行番号、列番号で指定し、 行、列番号はセルに入力してある値を使いたいです。 例 Aシート(値格納シート) B1セル値=1000 -------------- Bシート(値取得シート) A列=行番号入力 B列=列番号入力 C列=Aシートの取得関数 A2セル値=1 B2セル値=2 C2セル=1000(取得値) C2セルの関数に、A2とB2の値を使って Aシートのセル値を取得したいです。 よろしくお願いします。

  • Excelマクロでセルの値を他のセルに表示する方法

    Excelマクロがよく分からので教えてく下さい。 Excelで次のように表を作成します(添付画像参照)。 ・A列・・・連番 ・B列、C列、D列・・・それぞれに任意の値 ・E列・・・G列の関数で得た値をE列に返す。 ・G列に関数(=B2&C2&D2) G2で得た値を、E2に返す方法として 以下のマクロで出来ることが調べて分かりました。 Sub 取得() Dim namae As String namae = Range("G2").Value Range("E2").Value = namae End Sub ですが、G列の値全てをE列全てに返す場合のマクロの作成方法がわかりません。 どなたか詳しい方がいましたら、ご教示願います。

  • エクセルのマクロのセルの選択について

    エクセルのマクロについて教えてください。 シート上にボタンを作ります。 そのボタンをクリックする前に適当にセルを範囲指定(アクティブ)に しておきます。 セルをアクティブにしたその状態で、ボタンをクリックすると、どこから どこまで範囲指定しているのかわかるようなマクロは作れるでしょうか? (1)たとえばB3からD10まで範囲指定しているときは、B3とD10のセルの場所  をひっぱってくるような... (2)あるいは  cell(?1,?2) ←B3とD10の ?1 と ?2 の値を求めるような... できれば(1)のようなB3とD10のセルの場所が直接わかるようなマクロが現在考えています処理にあっているので、そのほうがいいと思っているのですが.. お忙しいところ申し訳ありませんが宜しくお願い致します。

  • 二つのシートのセルを比較して、あるセルの値が一致した場合に、片方のセル

    二つのシートのセルを比較して、あるセルの値が一致した場合に、片方のセルの値を 別のシートに設定するには、どうしたらいいでしょうか? [シート1] --|A---B---C---D---E --+---+---+---+---+--- 01|A1 ??? 02|A2 yyy 03|B1 ??? 04|C1 sss [シート2] --|A---B---C---D---E --+---+---+---+---+--- 01|A1 aaa 02|A3 bbb 03|B0 xxx 04|B1 ccc 05|C1 sss シート1 [Aのセル]とシート2の[Aのセル] を比較し、同じ値だった場合に、 シート2の [B] の値を シート1の[C]に設定するための関数はどのようにしたら良いでしょうか? 最終的に、シート1が --|A---B---C---D---E --+---+---+---+---+--- 01|A1 ??? aaa 02|A2 yyy 03|B1 ??? ccc 04|C1 sss sss となります。 Excelの関数あマクロは、どうしても分からなく質問させてもらいました。 申し訳ありませんが、ご教授宜しくお願い致します。

  • エクセルVBAで関数が入った空白セルの取得

    エクセルVBAで下記のようなセルの参照をしたいのですが、よろしくお願いします。(エクセル2002です)   A  B  C  D  E  F 1 78 80 セル(A1)(B1)には値も関数も入れられています。 セル(C1)(D1)(E1)には値は入っていませんが、ワークシート関数が組み込まれており空白となっています。(関数の""にて空白) セル(F1)には何も入力されていません。 今回はセル(B1)の80の値を取得できるようにVBAで下記のようにコードを組みました。 Range("F1").End(elToLeft).Activate そうすると、セル(E1)に関数があるために(?)(E1)がアクティブな状態となります。 関数が入力されていても空白として(B1)をアクティブな状態にするために良い方法はありますでしょうか? 誠に申し訳ございませんが、よろしくお願いします。

  • Excelマクロで教えて下さい。

    Excelマクロで教えて下さい。 シート1に下記のような表がありまして その表の有休・公休取得者の名前を日にち別に シート2にまとめたいのですがマクロを教えて下さい。 ・日にちは3ヶ月並びます。 ・人数は50人います。 ・休みの種類は5種類あります。 ・有:有休 公:公休 出:出勤(本来は空欄です)  表の入力が難くわかり難いですが宜しく御願い致します。 シート1 名前 3/1 3/2 3/3 3/4 3/5 A氏 出 有 有 出 出 B氏 有 有 出 公 出 C氏 出 出 有 有 出 D氏 出 有 出 出 有 E氏 有 出 出 有 公 シート2 有休 3/1 B氏 E氏 3/2 A氏 B氏 D氏 3/3 A氏 C氏 3/4 C氏 E氏 3/5 D氏 公休 3/1 3/2 3/3 3/4 B氏 3/5 E氏

  • マクロを使用した選択セルの値のコピーについて

       A   B   C   D   E   F   G 1 10  15       9   23  33  55 2             10   33  44  56 3             11   44  55  57            4             12   55  66  76 5             13   23  77  87 6             14   33  88  88 7             15   45  99  99 8             16   55  21  56 9             17   66  45  76 10            18   77  52  54 質問です A1の値が10 B1の値が15 でA1とB1の値は各データによって異なって入力されています。 決まりとしては、 A1<B1で, 必ず、A1の値とB1の値はD列に存在します。 A1の値とB1の値をマクロで取得し、 D列でその選択範囲を検索し、D列の10~15の値の選択範囲で、 D2:G7までをうまくコピーし、違う場所に張り付けしたいのです。 もし、詳しい方がいらっしゃいまして、簡単にできる方法がありましたら、 ご指導の程お願い致します。

専門家に質問してみよう