• ベストアンサー

エクセルVBAで違うブックの指定セルの値をコピーするコード

merlionXXの回答

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

追伸 「日報」ブックの「入力」シートのセルに入力して、とお書きですが、 「入力」ブックの「入力」シート→「日報」ブックの「日報」シート となってますので、「入力」ブックの「入力」シートから「日報」ブックの「日報」シートへ転記するようにしています。 従ってこのコードも「日報」ブックの標準モジュールに書いてください。

wait4u
質問者

補足

merlionXXさんありがとうございます。ためさせていただいたのですが、「日報ブックは既に開いています・・・」と出ます。 日報ブックに記述し、既に開いているのでこうなるのでしょうか? 「日報」ブック、「入力」ブックの二つを開いた状態でマクロを「日報」 ブックから実行するとするとコードは変わってきますでしょうか。

関連するQ&A

  • Excelで飛び飛びのセル(列)を参照したいのですが…その2

     ある「sheet1」で、G1="A",H1="B",I1="C",J1="D",K1="E",L1="F",M1="G",N1="H",O1="I",P1="J",Q1="K",・・というように文字が入力されているとすると、5列飛びの値A,F,K・・・(G1,L1,Q1・・・)が欲しいのです。そして、その値が「sheet2」に、C5=A,D5=F,E5=K,F5=P・・・となるようにしたいのです。ただ数値が5ずつ増加するのではなく、そのセルに入力されている文字列を参照したいのです。  それをまた、「sheet1」の、G2="A",H2="B",I2="C",J2="D"・・・の値でも同じ事をしたいのですが・・・。  よろしくお願いします。

  • Excel2007 VBAでブックのコピーについて

    VBAでブックのコピー仕方が分からないので教えて下さい やりたいことはBook1とBook2のシートデータを統合した物をBook3に書き出したいです 具体的には以下になります Book1 シート名 パターン1 パターン5 A-1 B-2 B-3 B-4 C-1 C-3 C-5 C-7 Book2 パターン2 パターン3 パターン4 パターン6 D-5 D-6 D-7 D-8 E-9 E-10 F-1 F-5 これをパターン1を先頭にアルファベット順に整列してBook3に書き出す作業をしたいです 求めている結果 Book3 パターン1 パターン2 パターン3 パターン4 パターン5 A-1 B-2 B-3 B-4 C-1 C-3 C-5 C-7 D-5 D-6 D-7 D-8 E-9 E-10 F-1 F-5 Book1とBook2のシート名に関しては重複するシート名はないが並び順がばらばらなので Book3に合体させたときにパターン1を先頭にアルファベットのA-1から順番に整列させたいです どのようにマクロを記述したらいいのか分からず困っているのでよろしくお願いします シートの中には画像やオートシェイプなども入っています

  • Excel2007 VBAでブックのコピーについて

    VBAでブックのコピー仕方が分からないので教えて下さい やりたいことはBook1とBook2のシートデータを統合した物をBook3に書き出したいです 具体的には以下になります Book1 シート名 パターン1 パターン5 A-1 B-2 B-3 B-4 C-1 C-3 C-5 C-7 Book2 パターン2 パターン3 パターン4 パターン6 D-5 D-6 D-7 D-8 E-9 E-10 F-1 F-5 これをパターン1を先頭にアルファベット順に整列してBook3に書き出す作業をしたいです 求めている結果 Book3 パターン1 パターン2 パターン3 パターン4 パターン5 A-1 B-2 B-3 B-4 C-1 C-3 C-5 C-7 D-5 D-6 D-7 D-8 E-9 E-10 F-1 F-5 Book1とBook2のシート名に関しては重複するシート名はないが並び順がばらばらなので Book3に合体させたときにパターン1を先頭にアルファベットのA-1から順番に整列させたいです どのようにマクロを記述したらいいのか分からず困っているのでよろしくお願いします シートの中には画像やオートシェイプなども入っています

  • エクセルVBAで指定したセルへジャンプするコード

    こんにちは。ファイル内の各シートのセルに順にジャンプするVBAのコードを教えていただけないでしょうか。以下のような条件や構成にしたいと考えています。 ・「操作ブック」と名づけたファイルに「設定」シートをつくり次のようにする A列B列の2行目以下に「シート名」「セル番地」を入力し、ジャンプするセルを入力 (例) A B←うまく表になりませんがB列がセル番地です Sheet1 E9 Sheet1 U7 Sheet2 S2 ・ジャンプする先は「操作ブック」内ではなく、開いている“もうひとつのブック内”の各シート ・ジャンプして選択したセルに一時的に色をつけ、次に進む時は色を元に戻す(難しいのであれば結構ですが、できればすごくうれしいです) ・「設定」シートに入力した上から下に順にジャンプする。ジャンプする前にメッセージで、「次に進みますか?」と聞き、「はい」で次のセルにジャンプする という設定にしたいのですが、マクロでジャンプの記録をとってみましたが、私にはとてもできない記述なので、教えていただきたく参りました。 よろしくお願いします。

  • EXCEL VBA コピーしたシートへ値をコピペ

    選択対象シート数は4つで、シート名は、「101」「102」「103」「104」とします。 シート名「表紙」のA列のセルはA10:101 A11:102 A12:103 A13:104となっており、 使用者はとなりのB10~B14セルに「○」「×」を入力規則から選択します。 また、シート名「表紙」のB6セルには製造番号(例:AM01-130012)を入力しておきます。 「○」となっているシートのみ選択して、下記マクロにてコピーを作成します。 コピーしたシートすべてのB2セルに製造番号を入力します。 ここまではできていて、下記のプログラムを追加したいのですが、うまくいきません。 さらに、○を付けたのと同じ行のD10~L10、D11~L11、D12~L12、D13~L13セルに、 使用者が文字列を入れる場合と入れない場合があります。文字列は左のD列から順に入れます。 文字列があれば、○を付けてコピーした対応するシートの中のH3~P3セルへ貼り付けたいのです。 D10、D11、D12、D13セルが空白のときは何も処理は行わないとします。 たとえば、下記のようにB12セルが○で、D12セルに文字列があれば、 D12~L12セルの値を、コピーで作成したシート103の中のH3~P3セルへ貼り付けたいのです。 B11セルも○ですが、D11セルに文字列がないのでシートのコピーだけ行います。 アドバイスいただけると助かります。 VBA初心者で申し訳ございませんが、よろしくお願いいたします。 <表紙のシート>    A     B     C    D     E     F    G    H     I     J     K      L 5 6    AM01-130012 7 8 9  10 101    × 11 102    ○ 12 103    ○       A1-1  A1-2  A1-3  A1-4  A1-5  A1-6  A1-7  A1-8   A1-9 13 104    × <プログラム> Sub TestSample() If Application.CountIf(Worksheets("表紙").Range("B10:B17"), "*○*") = 0 Then MsgBox "部品番号が選択されていません。" Exit Sub End If Dim 製造番号 As String 製造番号 = Range("B6").Value Dim c As Range Dim flg As Boolean On Error Resume Next flg = True ThisWorkbook.Activate On Error GoTo ErrOut_ For Each c In Worksheets("表紙").Range("B10:B13") If c.Value Like "○*" Then Worksheets(c.Offset(, -1).Text).Select flg flg = False End If Next c If Not flg Then ActiveWindow.SelectedSheets.Copy ' コピーしたすべてのシートに製造番号を書き込む For Each 各シート In Worksheets With 各シート .Activate Cells(1, 2) = 製造番号 End With Next Exit Sub ErrOut_: MsgBox """表紙""シートに記載されたシート名" & c.Offset(, -1).Text & "は存在しません。, vbInformation" End Sub

  • VBA 他シートを参照しているセルのコピー

    お世話になります。 以下のシートがあります。 [sheet a]    A     B        C      D     E 1 2004 2005 2006 2007 2008 2 =b!A2 =b!C2 =b!E2 =b!G2 =b!I2 3 10 15 16 4 11 4 12 30 20 9 2 5 =SUM(A3:A4) =SUM(B3:B4) =SUM(C3:C4) =SUM(D3:D4) =SUM(E3:E4) [sheet b] A B C D E  F G H I J 2004 2005 2006 2007 2008 1 あ1 い1 う1 え1 お1 か1 き1 く1 け1 こ1 2 あ2 い2 う2 え2 お2 か2 き2 く2 け2 こ2 ・・・・・・・・・ [sheet a]F列以降に入れるデータは、VBA(マクロ)を使って、別のブックから取り出しています。 (例) F1…=E1+1(E1の数式をコピー) F3,F4…任意の値(別のブックからコピー) F5…=SUM(F3:F4)(E5の数式をコピー) 1行目,5行目の場合は左のセルをコピーして数式を貼り付けると、列が自動的に列が変わりますが、2行目の場合は元のシートを1行おきに参照しているので、単純にコピーしただけでは正しい数式が入りません。 2行目の参照をVBAで作るには、どのようにしたらいいでしょうか。 よろしくお願いします。

  • VBA 別BOOKへのデータ転記について

    VBA初心者です。 以下のことがしたいのですが、 コードをご教示いただきたくお願いいたします。 BOOKが5つあります。 BOOK1:抽出用(Sheet2に日々の受注データを入れています)        BOOK2:転記100用 BOOK3:転記200用 BOOK4:転記300_400_500用 BOOK5:工事番号用 BOOK1:抽出用はA列からQ列まで工事番号ごとに2行目から受注データが入っています。 抽出用のsheet2のA列に「1」と入力することで転記したいデータだというフラグにし、 抽出用O列のコード100,200,300,400,500(工事の種類のようなものです)を見て、 該当のBOOK2から4にその工事番号が転記がされているか? (されていれば登録済みのメッセージ表示) 転記がされていなければ新規に登録、 新規登録の際に、抽出用Sheet2のD列の工事番号、I列の件名、K列の数量を表示して、 このデータを新規登録しますか?のようなメッセージを出し、Yesなら新規登録。 さらに、新規に登録した際にはその工事番号を名前とするBOOK5を新規作成、 BOOK5にも抽出用の受注内容を転記。 BOOK2から4に転記された工事番号をクリックすると その工事番号のBOOK5にジャンプするようにしたいのです。 抽出用A2とA4に「1」と入力された場合(O列は共に200) BOOK1抽出用データの転記したいセル番地  →  BOOK3転記200用のセル番地 A2のデータ D2 → A7 K2 → A8 C2 → A9 H2 → A10 I2 → A11 F2 → D7 L2 → D8 M2 → D9 J2 → D10 C2 → I5 Q2 → J5 A4のデータ D4 → A12 K4 → A13 C4 → A14 H4 → A15 I4 → A16 F4 → D12 L4 → D13 M4 → D14 J4 → D15 C4 → I10 Q4 → J10 BOOK2から4は1つの工事番号を5行使用して表わしています。 ですので、1つの工事番号が7から11の行、 2つ目の工事番号が12から16行目となり、それぞれ100件分の工事番号を入れられるように 作成してあります。 またBOOK5については、(A2のデータの場合)以下のように転記し、ファイル名を抽出用D2の工事番号にしたいです。 A2のデータ D2 → A3 K2 → A4 C2 → A5 H2 → A6 I2 → A7 F2 → F3 L2 → E4 M2 → E5 J2 → E6 大変長くなってしまいましたが、以上のようなことをしたいと考えておりますが、 当方、VBA初心者でして参考書とネットを駆使して抽出用のVBA(CSVデータをコピーして加工する)ことにすら大苦戦しております。 なんとかお力を貸していただけないでしょうか? ご教示よろしくお願いいたします。

  • 複数のセルをコピーし、別シートの任意のセルへペーストをするためのマクロ

    ブック(1)のシート(1)にある複数の離れたセル(A1,B2,C3,D4:F4)をコピーし、別ブックのシート(1)のセル(E1,F2,G3,B4:F4)へリンク貼り付けを実行するためのマクロを教えてください。 なお、ブック(1)とブック(2)は同一階層に置いてあります。 このブック(1)とブック(2)の表のフォーマットが違っており、ブック(1)のセルA1をコピーして ブック(2)のセルE1へ貼り付けし、 また同様にブック(1)のセルB2をコピーして ブック(2)のセルF2へ貼り付けをしていきます。 (A1→E1、B2→F2、C3→G3、D4:F4→B4:F4 へ貼り付ける) この作業をマクロを使って自動実行させたいと思っています。 御手数お掛け致しますが、何卒よろしくお願いいたします。

  • 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

  • エクセルのセル抽出でチェックシート

    複数ブックの同じシートの特定セルの内容を抽出し、1つのチェックシート用のエクセルに貼り付けたいのですが、可能でしょうか。 複数ブックは1つのフォルダの中に入れます。特定セルは複数のシートにまたがっています。 Book1 Sheet1:A5, B10, D20/Sheet3:C1, H4/Sheet5:F7 Book2 Sheet1:A5, B10, D20/Sheet3:C1, H4/Sheet5:F7 Book3 Sheet1:A5, B10, D20/Sheet3:C1, H4/Sheet5:F7  ・  ・