エクセルマクロで参照データのコピーする方法は?

このQ&Aのポイント
  • エクセル2010を使っています。A1セルに山田と入力されており、A5セルには=A1と入力されています。マクロを実行するとコピーはできますが、表示が#REFとなってしまいます。他のセルを参照しているセルをマクロでコピーしても、表示されている数値を正しく表示させる方法を知りたいです。
  • エクセル2010でマクロを使用して、他のセルを参照しているセルをコピーする際に、表示が#REFとなってしまう問題が発生しています。他のセルを参照しているセルをマクロでコピーしても、表示されている数値を正しく表示させる方法を教えてください。
  • エクセル2010を使用しています。A1セルに山田と入力されており、A5セルには=A1と入力されています。マクロを使用してA5セルをコピーすると、コピーは成功しますが、表示が#REFとなってしまいます。他のセルを参照しているセルをマクロでコピーしても、表示されている数値を正しく表示させる方法を教えてください。
回答を見る
  • ベストアンサー

エクセル マクロ 参照データのコピー

エクセル2010を使っています。 A1セルに 山田 と入っています。 A5セルに =A1と入っていて 山田 が表示されています。 その状態でマクロ Sub ボタン1_Click() Worksheets("sheet1").Range("A5").Copy Worksheets("sheet2").Range("A5") End Sub を実行すると、コピーは出来るのですが、表示が #REF となってしまいます。 おそらくコピーしたA5セルが他セルを参照しているからだと思いますが、これを正しく表示させるにはどういった方法があるでしょうか? 実際の範囲はすごく広いので、あくまでも 他セルを参照しているセルをマクロでコピーしても、見えている数値を表示させる方法を知りたいです。 詳しい方、よろしくお願いいたします。

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

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.2

形式を選択して貼り付け→値で張り付ける場合、 Sub ボタン1_Click() Worksheets("sheet1").Range("A5").Copy Worksheets("sheet2").Range("A5").PasteSpecial xlPasteValues End Sub クリップボードを使わずに貼り付ける場合、 Sub ボタン1_Click2() Worksheets("sheet2").Range("A5").Value = Worksheets("sheet1").Range("A5") End Sub

gekikaraou
質問者

お礼

なるほど、こういった便利な技があるのですね。 参考になりました、ありがとうございます!

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

Rangeの参照には、value や text や fomulaがあります。 値そのものはValueかValue2を、見えてるものは textを、式ならfomulaを参照して下さい

gekikaraou
質問者

お礼

わかりやすい説明をありがとうございます。 なるほど、参照にもタイプがあるのですね、参考になりました。

関連するQ&A

  • Excelマクロについて(セルのコピー)

    今、マクロで自動的にセルのデータを別シートに貼り付けるというものを作っています。 Private Sub コピー定義() Worksheets("sheet1").Activate 'sheet1をアクティブにする コピー元行 = 2 コピー先行 = 1 コピー元セル = "A" & コピー元行 コピー先セル = "A" & コピー先行 Worksheets("sheet1").Range(コピー元セル).Copy _ Destination:=Worksheets("sheet2").Range(コピー先セル) End Sub これで、sheet1のA2からsheet2のA1にコピーできるのですが、 Private Sub コピー定義() Worksheets("sheet1").Activate 'sheet1をアクティブにする コピー元行 = 2 コピー先行 = 1 コピー元行 = 2 コピー先行 = 1 コピー元セル = "A" & コピー元行 コピー先セル = "A" & コピー先行 コピー元セル = "B" & コピー元行 コピー先セル = "B" & コピー先行 Worksheets("sheet1").Range(コピー元セル).Copy _ Destination:=Worksheets("sheet2").Range(コピー先セル) End Sub とすると、B2の項目しかコピーされません。複数のセルを一度にコピーするマクロの作り方をご存じの方、ご伝授下さい。

  • エクセル2010 マクロで値のみコピー

    こんばんは、エクセル2010を使っています。 マクロでデータを値のみをコピーしたいのですが、うまくいきません。 文は 以下の様なものです。 Sub ボタン1_Click() Worksheets("Sheet4").Range("e1").Copy Worksheets("sheet2").Range("b1").PasteSpecial Paste:=xlValues End Sub マクロの画面を閉じようとした時に、Pasteの部分が選択され  コンパイルエラー 修正候補:ステートメントの最後 と言うダイアログボックスが出てしまいます。 ご存知の方教えて頂けないでしょうか、よろしくお願いします。 ※ ちなみに Worksheets("Sheet4").Range("e1").Copy Worksheets("sheet2").Range("b1")  ならちゃんとコピーされるのですが、コピー元の数式がコピーされるので、値のみをコピーしたいのです。

  • エクセル2000のマクロにおける、複数シート間のコピー&ペーストについて

    閲覧ありがとうございます。 現在、エクセル2000(OS、WIN2KPRO)を用いて、以下のような仕様のマクロを組もうとしています。 1.Sheet1のCommandButton1から実行する。 2.Sheet2のA1セルから、O?セルまでのデータの入っているセルをコピーし、Sheet1のB4セル以下にペーストする。 3.O?セルの?は1000以下の値で変化する。 4.Sheet2のF列には、ユニークキーが入力される為、必ず値が入力されている。 上記の仕様に従い、以下のようなマクロを組みましたが、 > Worksheets("Sheet2").Range(Cells(1, 1), Cells(Line_Num, 15)).Select のラインでエラーが発生します。 激しく独学の為、汚いソースですみません^^; **************************************** Private Sub CommandButton1_Click() Worksheets("Sheet2").Select Worksheets("Sheet2").Activate Dim Line_Num Line_Num = 1000 - WorksheetFunction.CountBlank(Range("F1:F1000")) Worksheets("Sheet2").Range("A1").Select Worksheets("Sheet2").Range(Cells(1, 1), Cells(Line_Num, 15)).Select Worksheets("Sheet2").Range(Cells(1, 1), Cells(Line_Num, 15)).Copy Worksheets("Sheet1").Select Worksheets("Sheet1").Activate Range("B4").Select ActiveSheet.Paste End Sub

  • エクセル2003 マクロ機能を使ったコピー

    エクセルのマクロ初心者です。 コピー元は、計算式が入ったセルです。 値のみを別のシートへコピーしたいと思っていますが 40番の行でエラーとなってしまします。 行き詰ってしまったため、ご教授いただければ幸いです。 よろしくお願いします。 以下が現在のマクロです。 ================ Private Sub 10 月 = Worksheets("毎月").Cells(1, 2) 20 月 = 月 + 3 30 Worksheets("毎月").Range("F24").Copy 40 Worksheets("年").Range(Cells(月, 3)).Select 50 Selection.PasteSpecial Paste:=xlPasteValues End Sub ================

  • エクセルにてマクロで図形を複写

    Windows2000でEXCEL2002を使用しています。 Sheet1の特定の位置へSheet2にある図形をコピーするマクロを作ったのですが、 クリップボードを使わないで同じ事が出来ないでしょうか。 マクロは初心者なので、よろしくお願いします。 Sub cmd画像A_Click() Sheets("Sheet2").Shapes("pic001").Copy Sheets("sheet1").Paste _ Destination:=Worksheets("Sheet1").Range("C3") End Sub

  • エクセルVBAでコピーすると行の高さが低くなる

    いつもお世話になってます。 エクセル2003のVBAで、セルの範囲を指定してコピーすると行の高さが低くなってしまいます。その他の書式は、変化せずうまくコピーできています。以下がプログラムです。 Sub copy_hyou() Worksheets("sheet1").Activate Range("A1:K24").Copy 'セルA1からK24をコピーします。 Range("A25").Select 'A25からペイストします。 ActiveSheet.Paste End Sub どう直せば、行の高さもコピーできるでしょうか? お休み中すみませんがよろしくお願いいたします。

  • エクセル2007マクロ シート間のセルコピー

    [Sheet1]にあるデータを[Sheet2]にコピーするマクロボタンを[Sheet2]に作りたいのですが、マクロがよく分からないので、「マクロの記録」で作成してみました。 Sub siken() ' ' siken Macro ' ' Sheets("Sheet1").Select Range("A1").Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select ActiveSheet.Paste Sheets("Sheet1").Select Range("B3").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B3").Select ActiveSheet.Paste Sheets("Sheet1").Select Range("B6:D6").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B6").Select ActiveSheet.Paste End Sub (実際はもっと多くのセルをコピーします) マクロを実行すると、ちゃんとコピーできるのですが、セルをコピーする都度[Sheet1]と[Sheet2]が交互に表示されます。 コピー元の[Sheet1]を表示させずにマクロを実行させるにはどのようにしたらよいのでしょうか? よろしくお願いします。

  • excelのマクロでrangeの選択がうまくいきません。

    excelのマクロでrangeの選択がうまくいきません。 以下のマクロをsheet2に書きました。testcopyは動きますが、testcopy2は動きません。なぜなのでしょうか。どうすればいいのでしょうか。それ以外のマクロの部分との関係から、cellsを使い、数字を使ってrangeの処理をしたいのです。よろしくお願いします。 Sub testcopy() Worksheets("sheet1").Range("B3:C10").Copy Worksheets("sheet2").Range("e5").Select ActiveSheet.Paste End Sub Sub testcopy2() Worksheets("sheet1").Range(Cells(3, 2), Cells(10, 3)).Copy Worksheets("sheet2").Range("e5").Select ActiveSheet.Paste End Sub

  • エクセルマクロでセルのコピー

    困ってしまったので質問させてください Sub 一定秒おきに実行() Dim i As Integer  For i = 1 To 10   Application.Wait Now() + TimeValue("00:00:10")  コピーして別のシートに貼り付ける Next End Sub ---------------------------------- Sub コピーして別のシートに貼り付ける() Worksheets("sheet1").Activate Range("A1:G1").Copy ActiveSheet.Paste Destination:=Worksheets("sheet").Range("??") End Sub ----------------------------------- 以上のようなコードがありますが Sheet1のA1:G1を10秒おきにSheet2の1行、2行、3行 と順番にコピーする Sub コピーして別のシートに貼り付ける() のコードを教えてください よろしくお願いいたします

  • エクセルのマクロについてご教示下さい。

    シート1のA1からW47までを同じワークシートのA48にコピーするマクロを作りましたが、 Worksheets("Sheet1").Range("A1:W47").Copy _ Destination:=Worksheets("Sheet1").Range("A48") Range("A48")を変数にし、(2回目は48+47 3回目は48+47+47 4回目は48+47+47+47)というように複数回コピーを繰り返したいのですが、とんと分からなくなりました、ご教示いただけますでしょうか? 宜しくお願い致します。

専門家に質問してみよう