[[20030604150904]] 『マクロを使って値を移したい』(aoij) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロを使って値を移したい』(aoij)

マクロを使ってデータの並び替えを行おうと思っています。
ちょっとややこしいのですが、まず縦に入力したデータを横型のデータとして置きかえ、並び替えるところまではできました。

次に、この横に並び替えたものを同じシート内にある別のセルに移し変えたいのです
が、

AP8のセルのものをF8のセルに移動し、その後F8〜H8のセルを統合します。
次にAQ8のセルをK8のセルに移動し、その後K8〜M8のセルを統合します。
という作業をAP8〜AP48までの40回繰り返したいのですが、そのままマクロを作っていく
とものすごい行数になってしまいます。

なんとか行数を減らすために良い方法があったら教えてください。
よろしくお願いします。

ちなみに作成したマクロは以下の通りです。

    Range("AP8").Select
    Selection.Cut
    Range("F8").Select
    ActiveSheet.Paste
    Range("F8:H8").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Merge
    With Selection
        .HorizontalAlignment = xlRight
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = True
    End With
    Range("AQ8").Select
    Selection.Cut
    Range("K8").Select
    ActiveSheet.Paste
    Range("K8:M8").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
  Selection.Merge
    With Selection
        .HorizontalAlignment = xlRight
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = True
    End With

 offset か cells あたりを使って、回してください。

 for n = 0 to 100 
    Range("AP8").Offset(0, n).Select
    Selection.Cut
    Range("F8").Offset(0, n * 5).Select
    ActiveSheet.Paste
    Range("F8:H8").Offset(0, n * 5).Select
    Selection.Merge
    With Selection
        .HorizontalAlignment = xlRight
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = True
    End With
 next n

 (ramrun)スレ上げ委員会

 ramrun さん、レスありがとうございます。
 offsetというのがあったんですね。勉強になりました。
 早速試してみます。
(aoi)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.