• 締切済み

値の取得

現在Excelのシートで A~IのデータをK~Q列に=で参照して表示しています。 2行目の参照の式をA列のデータがある場所までコピーしていますが、 大変時間がかかります。 効率のいい方法をおしえていただけないでしょうか。。? できれば値だけを取得したいです。 よろしくお願いいたします。 作成しているマクロは以下のとおりです。 Sub Macro1() Dim R As Long For R = 3 To Cells(Rows.Count, "A").End(xlUp).Row Range("k3").Copy Cells(R, "k") Range("l3").Copy Cells(R, "L") Range("m3").Copy Cells(R, "M") Range("n3").Copy Cells(R, "N") Range("o3").Copy Cells(R, "O") Range("p3").Copy Cells(R, "p") Range("q3").Copy Cells(R, "q") Range("r3").Copy Cells(R, "r") Range("s3").Copy Cells(R, "s")   Next R End Sub

みんなの回答

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

一例です。 内部メモリを利用すれば格段に速くなりますが如何でしょうか。 因みにご例示のマクロコードが範囲A3:IxをK3:Sxにコピーしているとは思えません。 work = Range("A3:I" & Cells(Rows.Count, "A").End(xlUp).Row) Range("K3:S" & Cells(Rows.Count, "A").End(xlUp).Row) = work

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.3

>A~IのデータをK~Q列に=で参照して表示しています。 >2行目の参照の式をA列のデータがある場所までコピー >できれば値だけを取得したい  下記の操作を、[新しいマクロの記録] で記録してみてください。 1)A2 を クリック。 2)[Shift] を押したまま、I2 を クリック。 3)[Shift] + [Ctrl] + [↓] で、「A列のデータがある場所まで」を選択。 4)[Ctrl] + [C] で、選択範囲 を コピー。 5)K2 を クリック。 6)[編集(E)] - [形式を選択して貼り付け(S)...] - [値(V)] - [OK]。 7)[Esc] キー を押下して、範囲選択を解除。  以上で、 Range("A2:I2").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Range("K2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False というような コード が得られます。  先ずは、[新しいマクロの記録] を取ってみる、それをいろいろと弄ってみて、どうにもお分かりにならないことがあればお尋ねになってみてください。

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

何がしたいかよくわからない。 言葉で表現したらどうなるのですか。 初心者が思いついたやり方でやってるのでは。他の人の良い色々なやり方を学ぶほうが良い。 やりたいことをセル範囲を示してコピー元セル範囲、コピー先セル範囲で表してみるほうが良い。 ーー マクロの記録を採ると Sub Macro4() Range("A3:C3").Select Selection.AutoFill Destination:=Range("A3:C16"), Type:=xlFillDefault Range("A3:C16").Select End Sub のようなことか。 A3:C3をA16:C16まで複写の例。短くして Range("A3:C3"). Selection.AutoFill Destination:=Range("A3:C16"), Type:=xlFillDefault

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

>A~IのデータをK~Q列に=で参照して表示しています。 K~Sの間違いの様ですが、下記の様な事で良いのでしょうか? 外していたらすみません。 Sub test() Range(Range("A3"), Range("I" & Rows.Count).End(xlUp)).Offset(0, 10).FormulaR1C1 = "=RC[-10]" End Sub

関連するQ&A