• ベストアンサー

VBAで別シートの必要データの値をコピーし貼付け

sheet2の項目よりsheet1の必要項目の値のみを貼り付けたいのですがsheet1のC列5行文字入力があり次の行以降にsheet2のセルB2以降の範囲のsheet1の2行目必要項目に対しての入力値の値のみを入力したいのですがsheet2入力値は何百項目あります。 どなたかVBAコードが解る方よろしくお願いします。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

参考に Sub Test()   Dim ws1 As Worksheet, ws2 As Worksheet   Dim LR1 As Long, LR2 As Long   Dim h As Long   Set ws1 = Worksheets("Sheet1")   Set ws2 = Worksheets("Sheet2")   LR1 = ws1.Cells(Rows.Count, "C").End(xlUp).Row   LR2 = ws2.Cells(Rows.Count, "B").End(xlUp).Row   h = LR2 - 5   ws1.Cells(LR1 + 1, "A").Resize(h, 2).Value = ws2.Cells(6, "B").Resize(h, 2).Value   ws1.Cells(LR1 + 1, "C").Resize(h, 2).Value = ws2.Cells(6, "E").Resize(h, 2).Value   ws1.Cells(LR1 + 1, "E").Resize(h, 1).Value = ws2.Cells(6, "H").Resize(h, 1).Value End Sub

関連するQ&A

  • VBAの計算式で値を検出し別シートに貼り付ける

    例でA.xls sheet1に添付のデータがありB.xls sheet1のB列に検索値がありC列に記載のとおりの計算式が入力されています。関数入力はC2セルにの計算式を入力しそれを元にオートフィルでC3以降入力しているが膨大な計算式になりExcelを開いたりするのに処理に時間がかかりすぎる為セルに計算式をいれるのではなくVBAで計算式を入力しオートフィルみたいに連続した計算の値のみを入力したいのですがコードが解る方宜しくお願いします。

  • Excel VBA - 数式のコピーと値貼り付け

    A~Cを使った表があり、AとBには値が入力されています。 C2に"=A2+B2"と入力し、その式を、A列の最終行と同じ行までコピーし、C2からCの最終行までの範囲をコピーして同じ範囲に値貼り付けするにはどういうVBAを書けばいいでしょうか。 宜しくお願い致します。

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

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

  • 【Excel VBA】セルに入力されている値と同じ名前のシートにデータをコピーする

    Excel2003を使用しています。 Sheet1のC2セル以下に入力されている値と同じ名前のシートに、その行のデータをコピーする作業をマクロで処理したいのですが、セルに入力されている値と同じ名前のシートを取得する方法がわかりません。 どのようにコードを書いたらいいのでしょうか? ちなみに、Sheet1のC2セル以下に入力されている値(=シート名)は、文字列(4桁の数字)です。 よろしくお願いします。

  • EXCEL VBA 別シートで検索後、貼り付け

    excel2010 (ブック名A.xlsx)にシート名SA、シート名SBがあります。 シート名SAのC列に検索対象(C1~C50位)があり シート名SBのB列が検索範囲(流動的ですがB1~B100位の範囲)です。 検索対象は文字列で、これが検索範囲のセルにに含まれていた場合 検索範囲の隣のセルCxxに検索対象文字列をコピー&ペーストしたいです また、検索範囲の行数に値があるまで、順次処理をしていきたいです

  • エクセルVBAでデータ検索(Win2000,Excel2000)

    エクセルで毎日の業務で手計算している作業をVBAコードかいて試しているのですが、縦と横の検索で行き詰まってしまい質問しました。どうぞよろしくお願いします。 _A__B____C____D__E__F___G___H 1| 2|_______その他_1~3_4~6_7~10_11~20_21~30 3| 3|__項目A___ 0___50__49__46___43__40 4|__項目B___ 0___45__44__39___37__34 5|__項目C___ 0___43__42__34___30__ 28 行 *このデータは現在(B3:V42)にあり今後増える可能性あり *1行目とA列は空白です。 *2行目とB列は対応する項目です。 *3行目は関係ない値が入っています(データをつくる為の値) このようなデータが、"Sheet2"にあると仮定します "Sheet1"のシート上に配置したComboBox(コントロールツールボックスの)に検索値があります。 (ComboBox1 → 数値 , ComboBox2 → 数値 , ComboBox3 → 文字)*リストは"Sheet1"に登録してあります。 TextBox1 ÷ 2 の結果を小数点以下切上げし、これにTextBox2の値をかけたもの(仮にAAAとする)が、2列目のそれぞれのセルの数値範囲に対応し、TextBox3の文字列がB列に対応し、両検索結果の交わったセルの値を返すようにしたい。 例)もしAAAが「8」なら「F列」をみる。TextBox3 の文字列が「項目B」なら「4行目」をみる。この結果、交わったセルは「F4」なので、「F4」にある値「39」を"Sheet1"."A1"に返す。 また、これらコンボボックス(このシートとは別にテキストボックスを使うこともある)にはひとつずつchangeイベントでいきなり別シート("Sheet3")に書くコードが既に書いてあります。このセルから取り出すことも可能です。よろしくお願いします。

  • EXCEL VBAで別のシートに値を渡したいのですが・・・

    まず 例えば3行2列のセルに |A|10| |B|20| |C|30| というような値があるとします。 アルファベットにはそれぞれ次のような意味があり、 A=山 B=川 C=海 このデータを元に 別シート(山、川、海の3シート)に 山シート |NO.|10| 川シート |NO.|20| 海シート |NO.|30| と 1行2列のセルに値を渡したいのですが、 そういうことはエクセルで可能でしょうか? エクセルに詳しい方、どうぞご教授ください。 よろしくお願い致します。

  • VBA2010,B3の値が変わったら、A3に

    VBA2010で,B列の値が変わったら、A列の同じ行に前日の日付を入力するには、マクロコードをどのように書けばよいですか?B列データ入力範囲はB3~B65536 尚、B3~B65536にはVLOOKUPで、他のブックから値を参照しています。 最後にA列の同じ日付セルを結合し、I列、P列、W列の同じ行に結合したセルをペーストたいのです。 宜しくお願い致します。

  • VBA,二つのExcelのsheetにデータ保存

    VBA初心者です。 皆様のお力をお貸し頂きたく質問させて頂きます。よろしくお願いいたします。 質問内容は、下記になります。 Excelのsheet1には、縦列A,B,C・・・とデータが入っております。 sheet1の例 A B C sheet2は、入力するsheetです。 今回はA列の3行目からとします。 問題は、sheet1の縦の列をA,B,C,Dとすればデータの更新は、出来るのですが sheet1のデータのA,B,C一つ飛んでEまた一つ飛んでGという感じでsheet1のデータを 飛ばしてsheet2に表示、更新(保存)をしたいと思います。 ですので、sheet2のA列の3行目からA,B,C,飛んでE飛んでGとsheet1からデータを 表示させ、さらにsheet2の入力値が変更されると、sheet1のデータが入っている A,B,C,E,Gに更新される仕様です。 sheet1(データが入っています) A , B , C , E , G , 値1 , 値2 , 値3   , 値4 , 値5 sheet2(入力する、入力したデータは、sheet1へ更新される) A列 3行目 、sheet1の値1(A列)が入ります。 4行目 、sheet1の値2(B列)が入ります。 5行目 、sheet1の値3(C列)が入ります。 6行目 、sheet1の値4(E列)が入ります。 7行目 、sheet1の値5(G列)が入ります。 以上です。申し訳ございませんが、ご教授よろしくお願いいたします。

  • vbaでシートより100より大きい値を削除するコードを教えてください

    vba初心者です。 値の羅列のシートでセルの値が100より大きいセルはのある行は削除したい時どのようなコードを書けばわからず苦慮してます。 例として下記のようなシートの場合どうかきますでしょうか? A B C D E F ---------------------------------------- 1 20090101 20 30 95 40 ---------------------------------------- 2 20090102 25 35 105 45 ---------------------------------------- 3 20090103 40 50 110 50

専門家に質問してみよう