Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4387 / 13646 ツリー ←次へ | 前へ→

【56973】VBAコードを実行しても元データが変わらない様にするには? さぶちゃん 08/7/15(火) 20:40 質問[未読]
【56974】Re:VBAコードを実行しても元データが変... kanabun 08/7/15(火) 21:12 発言[未読]
【56980】Re:VBAコードを実行しても元データが変... さぶちゃん 08/7/16(水) 2:32 お礼[未読]
【56975】Re:VBAコードを実行しても元データが変... ponpon 08/7/15(火) 22:12 発言[未読]
【56979】Re:VBAコードを実行しても元データが変... さぶちゃん 08/7/16(水) 2:29 お礼[未読]

【56973】VBAコードを実行しても元データが変わ...
質問  さぶちゃん  - 08/7/15(火) 20:40 -

引用なし
パスワード
   こんにちは。
VBA超初心者です、宜しくお願いします。
下記の様にA1〜E3までの各セルに数値が入っている元データを同じワークシートの別セル(G1〜K3)に一行ずつ加工(左から大きい順に並べ替えて最大値と最小値に色を付ける)して全てコピーするコード(下記)を作りました。
質問は、このコードを実行すると元データまで連動して変わってしまうのですが、元データはそのまま変わらない様にするにはどうしたらいいのでしょうか。
別のワークシートにコピーされる様なコードに変更してやってもみましたがダメでした。
ご教授頂ければ幸いです。宜しくお願いいたします。

  (元データ)           (実行後)  
  A  B  C  D  E   F  G  H  I  J  K 
1 7.3 7.0 7.2 7.5 7.7    7.7 7.5 7.3 7.2 7.0
2 7.0 8.0 7.3 7.1 7.4    8.0 7.4 7.3 7.2 7.0
3 7.0 7.8 7.6 7.3 7.2    7.8 7.6 7.3 7.2 7.0

 (コード)
Sub Macro1()
Range("A1:E1").Sort _
Key1:=Range("A1:E1"), Order1:=xlDescending, Orientation:=xlSortRows
Range("A1:E1").Copy Range("G1:K1")
Range("G1").Interior.ColorIndex = 8
Range("K1").Interior.ColorIndex = 6
End Sub

Sub Macro2()
Range("A2:E2").Sort _
Key1:=Range("A2:E2"), Order1:=xlDescending, Orientation:=xlSortRows
Range("A2:E2").Copy Range("G2:K2")
Range("G2").Interior.ColorIndex = 8
Range("K2").Interior.ColorIndex = 6
End Sub

Sub Macro3()
Range("A3:E3").Sort _
Key1:=Range("A3:E3"), Order1:=xlDescending, Orientation:=xlSortRows
Range("A3:E3").Copy Range("G3:K3")
Range("G3").Interior.ColorIndex = 8
Range("K3").Interior.ColorIndex = 6
End Sub

【56974】Re:VBAコードを実行しても元データが...
発言  kanabun  - 08/7/15(火) 21:12 -

引用なし
パスワード
   ▼さぶちゃん さん:
>質問は、このコードを実行すると元データまで連動して変わってしまうのですが、元データはそのまま変わらない様にするにはどうしたらいいのでしょうか。

コードをみると、
元データ範囲をソートしてから 別の場所に貼り付けているようにしか
見えませんが?

>Range("A1:E1").Sort _
>Key1:=Range("A1:E1"), Order1:=xlDescending, Orientation:=xlSortRows
>Range("A1:E1").Copy Range("G1:K1")

【56975】Re:VBAコードを実行しても元データが...
発言  ponpon  - 08/7/15(火) 22:12 -

引用なし
パスワード
   ▼さぶちゃん さん:

>質問は、このコードを実行すると元データまで連動して変わってしまうのですが、元データはそのまま変わらない様にするにはどうしたらいいのでしょうか。

はじめにデータをコピーして、
その後にソート
そして色づけの順にしてみたら、元データは関係ないと思いますが・・・

【56979】Re:VBAコードを実行しても元データが...
お礼  さぶちゃん  - 08/7/16(水) 2:29 -

引用なし
パスワード
   ▼ponpon さん:
>▼さぶちゃん さん:
>
>>質問は、このコードを実行すると元データまで連動して変わってしまうのですが、元データはそのまま変わらない様にするにはどうしたらいいのでしょうか。
>
>はじめにデータをコピーして、
>その後にソート
>そして色づけの順にしてみたら、元データは関係ないと思いますが・・・

ponponさん:
回答ありがとうございました。
実行する順番を変えてやってみた所、期待した通りの結果が得られました。
本当にありがとうございました。
また質問する事があるかも知れませんが、その際はひとつ宜しくお願い致します。

【56980】Re:VBAコードを実行しても元データが...
お礼  さぶちゃん  - 08/7/16(水) 2:32 -

引用なし
パスワード
   ▼kanabun さん:
>▼さぶちゃん さん:
>>質問は、このコードを実行すると元データまで連動して変わってしまうのですが、元データはそのまま変わらない様にするにはどうしたらいいのでしょうか。
>
>コードをみると、
>元データ範囲をソートしてから 別の場所に貼り付けているようにしか
>見えませんが?
>
>>Range("A1:E1").Sort _
>>Key1:=Range("A1:E1"), Order1:=xlDescending, Orientation:=xlSortRows
>>Range("A1:E1").Copy Range("G1:K1")

kanabunさん:
回答ありがとうございました。
当方のつたない文章のためうまくこちらの意図する所が伝わらなかったかも知れません、申し訳ありません。
何とか解決する事ができました。
また質問する事があるかも知れませんが、その節は宜しくお願い致します。
本当にありがとうございました。

4387 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free