VBAでボタンを押すと、指定したセルに他セルの内容をコピー

このQ&Aのポイント
  • VBAを使ってボタンを押すと、指定したセルに他のセルの内容をコピーする方法について教えてください。
  • 現在、統計等を出すプログラムを作成しており、ボタンも配置済みですが、どのようにして他のセルの内容を指定セルにコピーすれば良いかわかりません。
  • 具体的には、ボタンを押すとA1セルにはD4の内容、A2セルにはE8の内容、A4セルにはF3の内容を入れたいです。プログラム的にどのように実現できるか、教えていただけると助かります。
回答を見る
  • ベストアンサー

VBAでボタンを押すと、指定したセルに他セルの内容をコピー

現在統計等を出すプログラムを作成しています。 ボタン等も配置しましたが、タイトルのとおりこのボタンをおすことで 指定セルに他のセルの内容をコピーしたいのです。 しかし、やりかたがわからずに非常にこまっているのでわかる方がいましたら教えて頂けたらうれしいです。 具体的にいうと ボタンを押すと A1セルにはD4の内容を、A2セルにはE8の内容を、A4セルにはF3の内容を いれたいのです。  一回のボタン動作でこのすべてをいれたいですが、プログラム的にはどうなるのかわからず、悩んで居ますのでおしえていただけたら幸いです。おねがいします。 逐次D4、E8、F3の内容は変わっていくので、このようなボタン機能を設置したというながれであります。

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

  • ベストアンサー
  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.1

下記のようにコードを書いて マクロの実行で、Testを選択します。 プログラムを作成しているのであれば、これは、基本中の基本です。是非覚えていてほしいですね。 Sub Test() Range("A1").Value = Range("D4").Value Range("A2").Value = Range("E8").Value Range("A4").Value = Range("F3").Value End Sub

その他の回答 (1)

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

シートにコマンドボタン1つ貼り付け。 コマンドボタンのクリックイベントに Private Sub CommandButton1_Click() a = Array("A1", "D4", "A2", "E8", "A4", "F3") For i = 0 To UBound(a) Step 2 Range(a(i)) = Range(a(i + 1)) Next i End Sub を作る。 編集モードを脱する。 コマンドボタンをクリックすると、 A1、A2,A4のセルにD4,E8,F3から値が代入されます。 上記のコードのa=()のカッコ内には、それらのペアを並べてください。 >イベントプロシジュアーという考えをなれてください。 ーー 上記コードは私の好みの方法なので、#1のご回答の方法で、まず考えてください。

関連するQ&A

  • セルのデータを、ボタンでコピーさせたいのです

    初めて質問させていただきます。 エクセル関数はある程度こなせますが、マクロはほとんど初心者です。 どのようにマクロを記述すれば良いか、わからなくて困っています。 A1のセルにコピー元のデータがあります。 この時、A4にあるボタンを押すと、A1のデータがA3にコピーされます。 またある時は、C4にあるボタンを押すと、A1のデータがC3にコピーされます。 またある時は、D4にあるボタンを押すと、A1のデータがD3にコピーされます。    A   B   C   D   E ・・・・・・ 1 100 2 3 100 100  100 4 ■  ■  ■  ■   ■ 5 6 7 ・ ・ ・ あるいは、ボタンを一つにして、B1にあるボタンを押すと A1のデータがA3にコピーされます。またある時は、B1にあるボタンを押すと A1のデータがC3にコピーされます。   A  B  C  D  E 1 100  ■ 2 3 100 100 4 5 6 コピー先のセルが少数なら、コピー先のセルを"Range"で指定して、各ボタンに割り付ければ済むのですが、入力するセルが何百とある為、これをいちいち各ボタンに割り付けて、マクロを書いて行くのは、気が遠くなる作業になってしまいます。 ボタンは一個でも、何百個あっても構わないのです。 マクロをどのように記述すれば良いでしょうか。 どうか、アドバイスをお願いします。

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

    同じフォルダ内に次のブックがあります。 ・「日報」フォルダ ・「入力」ブック ・「日報」ブック 「日報」ブックの「入力」シートのセルに入力して、ボタンを押すと 「日報」ブックの指定のセルに順にコピーしていくようにしたいの ですが、コードをお教えいただけないでしょうか? 具体的には次のようになります。 「入力」ブックの「入力」シート→「日報」ブックの「日報」シート A2,C2,D2,E2,F2→→→→→→A5,D5,F5,L5,P5 A3,C3,D3,E3,F3→→→→→→A6,D6,F6,L6,P6 A12,C12,D12,E12→→→→→→A34,J34,E34,E35 A13,C13,D13,E13→→→→→→A36,J36,E36,E37 このように入力されるようにしたいと思います。 実際にはもう少し同じようにコピーするところが あるので、後でセル番地を追加できるようなコード であれば非常にありがたいです。コードを教えて ほしいなんて本当にずうずうしいですが、どうぞ よろしくお願いします。

  • excelで、あるセルの範囲をコピーできるボタンを作成できますか?

    例えば、A1からD4までの16個のセルをコピーしたい時、 エクセルにボタンなどを設置して、それを押すだけで コピーを実行させることは可能でしょうか?

  • 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でボタンを押すと指定したセルの色が白く、もう一度押すと黒くするには。

    現在エクセルでいろんな計算式が入ってものを作りました。 ですが問題がでてきてしまって、印刷時に表示しないで印刷したい箇所が何カ所かあるのです。  その箇所が、A1~A10、B5、B7~B22 セルなのですが、 現在ボタンを設置したので、それを押すことで、このセルだけ表示しないようにしたいのですが、一番いいかなと思いついたのが、ボタンを押すだけで色が白くなり、画面に打つさないプログラムです。 そしてもう一度そのボタンを押すと指定セルが黒くなるというものです。 これができれば仕事上でかなり役立つプログラムとなり、現在の悩みが解決いたします。 どうかわかる方がいましたら教えて頂けないでしょうか? お願い致します。

  • 可視セルへのコピー マクロ

    次のように、可視セルから可視セルへコピーしたいです。 (元の状態) A   B     C     D   E   F 名前  支払  金額  名前 支払  金額 aさん 済    150 bさん 済    200 cさん 未    150 dさん 済    100 eさん 未    120 fさん 済    250 gさん 未    300 hさん 未    210 この状態をB列で支払が済んでるかどうかでフィルターをかけて ABC列をコピーし、DEF列に可視セルのみコピーして A   B     C     D   E   F 名前  支払  金額  名前 支払  金額 cさん 未    150  cさん 未    150 eさん 未    120  eさん 未    120 gさん 未    300  gさん 未    300 hさん 未    210  hさん 未    210 フィルターをはずすと A   B     C     D   E   F 名前  支払  金額  名前 支払  金額 aさん 済    150 bさん 済    200 cさん 未    150   cさん 未    150 dさん 済    100 eさん 未    120   eさん 未    120 fさん 済    250 gさん 未    300   gさん 未    300 hさん 未    210   hさん 未    210 と、未払いの人だけ、D列以降にもコピーされてる状態にしたいのです。 可視セルへのコピーはマクロを組む必要があると聞いて見てるのですが、 私が実現させたい可視セルへのコピーとまた違うプログラムでした。 どなたかよろしくお願いします。

  • VBAでセルのコピーがおかしい??バグ??

    VBAでセルのコピーをする際におかしいことがあります。 詳しい方よろしくお願いします。 sheet2のA1からZ5の間に罫線と5個のセルに入力規則を貼ったものをただターゲットセルからオフセットした所へコピーするだけのプログラムなのですが画面更新を停止していてもブルブル揺れてしまいます。 しかし、画面更新は停止しているので動作自体は見えませんが画面が揺れます。何故なのでしょうか? また別の問題ですが、Sheet2の入力規則なのですが名前の定義とINDIRECT関数を利用して連動したドロップダウンリストにしています。 C1セルにドロップダウンリストを作りその内容に応じてD1~D5のリストを変化させています。 =INDIRECT($C$1)と固定してあるのですがこれをSheet1にそのままコピーしていくと値がおかしくなってしまいます。 動的に変化させるいい知恵は無いでしょうか?

  • 異なる結合セルのコピー

    A.B.C列の結合セルに文字が入力されています。 その文字を違う表のD.Eの結合セルにコピーをしたいのですが、 「コピー領域と貼り付け領域が違う為コピーできません。」 というメッセージがでます。 A B C  ああ D E  ああ F列を作らないで出来る方法があれば、教えて下さい!! 宜しくお願い致します。

  • 離れたセルをコピー

    エクセルで、選択状態になっている離れたセルのデータを、位置関係を崩さずに一括でコピーしたいのですが。 例えば、A1・B5・C3・D4を、E7・F11・G9・H10にコピーするというようなことです。(貼付け対象セル以外は変化なし) よろしくお願いします。

  • Excell VBA 指定セルにコピー&ペースト

    VBAについて質問です。 Excellで家計簿のようなものを作成してつくっているのですが、 A1~A31までのセルに日付の1日~31日を記入し、 B1~B31までのセルに各日の支出金額の合計を記入するような表を作成しています。 ただ、一日の支出が多い場合(金額的に多いというわけではなく、レシートの枚数が多く合算しなければ一日の支出合計が出ない状態のこと)は別セルで合計を計算し、その結果を記入するようにしています。 ただ、その結果を毎回コピペするのがとても面倒なので、 コマンドボタンを計算結果の横に設置し、 そのコマンドボタンをクリックしたら、どこのセルにペーストするかをメッセージボックスで問われ(C言語でいうScanf的なもの)、記入してOKをクリックするとその指定したセルに計算結果が自動的にペーストされるようにしたいと考えています。 ただ、そのコマンドがわからなくて足止め状態です。 どなたか教えてください!! 内容としましては、 セルE1に計算結果が表示されてるとして、 そのE1の内容を上記のようなコマンドボタンを使用して指定したセルにペーストするようなマクロをくみたいです。 上記の「どこのセルにペーストするかをメッセージボックスで問われ」という部分については、セル番を入力することで指定できるだけでもよいのですが、欲を言えばA1~A31に記入されている日付を入力することでペースト先のセルを指定できればベストだなと考えています。 こんなこと可能でしょうか?? 説明がわかりにくいとは思いますが、どなたかお願いします

専門家に質問してみよう