縦方向の日別データを、選択行へ横方向にコピー 【改善前】 Range(Cells(i, 3), Cells(i, 6)).Copy Range(Cells(rn, 13), Cells(rn, 16)) (変数[i]は行でi=3で、[rn]も行でrn=1では、A3〜A6の縦セルデータを、M1〜P1の横列にコピーした例) 【改善後】 Range(Cells(rn, 13), Cells(rn, 16)).Value = Range(Cells(i, 3), Cells(i, 6)).Value (Copyメソッドの場合は、計算式を含めコピーしますが、Valueは表示されている数値のを移動する) |
MN列を数値化 【改善前】 Range(Cells(4, 13), Cells(endr2, 14)).Copy Range("M4").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("M3").Select Application.CutCopyMode = False (これは、コピーして、「貼り付けのオプション」の値(V)実行のマクロ化です) 【改善後】 Range(Cells(4, 13), Cells(endr2, 14)).Value = Range(Cells(4, 13), Cells(endr2, 14)).Value (Valueは表示されている値のみを移動する |
JKL列を指定日数後へずらす(終値、転換線、基準線) 【改善前】 Range(Cells(4, 10), Cells(endr1, 12)).Copy Cells(kzhi1, 10).Select ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _ IconFileName:=False Range(Cells(4, 10), Cells(kzhi1 - 1, 12)).ClearContents (場所をズラシ終えた後、不要の元データ(kzhi1 - 1行)を消去しました) 【改善後】 ReDim dat(endr1, 3) dat = Range(Cells(4, 10), Cells(endr1, 12)).Value Range(Cells(kzhi1, 10), Cells(endr1, 12)).Value = dat Range(Cells(4, 10), Cells(kzhi1 - 1, 12)).ClearContents (本例は、直接貼り付けでなく、データを一旦配列変数[dat]に保存し,それを場所を指定し貼り付けています) (マクロ記載では省略してありますが、モジュール変数としてDim dat() As Variant を記述) |
日付I列に表示 【改善前】 Range(Cells(3, 1), Cells(gyou, 1)).Select Selection.Copy Range("I3").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.NumberFormatLocal = "m/d;@" (A列の日付をコピーして、I列に貼り付け、本例ではセルデータ全ての貼り付けです) 【改善後】 Range(Cells(3, 9), Cells(gyou, 9)).Value = Range(Cells(3, 1), Cells(gyou, 1)).Value Range(Cells(3, 9), Cells(gyou, 9)).NumberFormatLocal = "m/d;@" (改善前は、Selection.NumberFormatLocalですが、改善後は選択されていないので、Range設定が必要) |
終値率で表示 【改善前】 Range(Cells(4, 12), Cells(gyou, 12)).Formula = "=F4/$L$3" Range("G1").Select Range(Cells(4, 12), Cells(gyou, 12)).Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("G1").Select (L列の計算結果を、計算式を省き結果の数値で表示する) 【改善後】 Range(Cells(4, 12), Cells(gyou, 12)).Value = Range(Cells(4, 12), Cells(gyou, 12)).Value (同じ場所への数値化ですが、Value実行で問題なし) |