アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のように数値を入れ替えるようにしたいのです
列ごとに
1 2 3 4 5 となっているものをボタン操作で
5 1 2 3 4 また、ボタンを押すと
4 5 1 2 3 と順に入れ替えてループさせたいのですが可能でしょうか?

又、そういった列のグループが1シートに複数あった場合は1ボタン操作が
できますでしょうか?

何とぞお知恵をお貸しください。

A 回答 (4件)

○数式が入っているのに移動すると問題が起きる場合があるので,生データだけ入っているとします


○色々な場所で動作させたいので,ある決まりで「どの範囲を回転したい」のか自動で判別させます


Sub macro1()
 Dim r As Range
 Dim n As Double

 On Error Resume Next
 Set r = Application.Intersect(ActiveCell.CurrentRegion, ActiveCell.EntireRow)
 If r.Count = 1 Then Exit Sub
 Set r = r.SpecialCells(xlCellTypeConstants)

 n = r.Areas(r.Areas.Count).Count
 r.Areas(r.Areas.Count).Cells(n).Cut
 r.Cells(1).Insert Shift:=xlToRight

End Sub

回転したい中のセルを1つ選んでマクロを実行します。


#空セルで作動させても誤動作しない手当てをしてあります
#連続した範囲(Ctrl+Shift+:で選択される)の中で,データの入っている範囲を対象にします。
#連続した範囲に含まれた空セルも回転の対象にしますが,連続した範囲の外にあるセルは対象外なので,たとえばA:E列に連続した範囲,J:M列に別の連続範囲があるような場合でも片方だけを対象にします。
 ご相談に書いてない,具体的なデータの配置の姿に合わせてマクロを書けば,もっとシンプルでスマートなマクロに出来ます。

この回答への補足

お答えいただいて、ありがとうございます。
質問の際、範囲を指定したいことが抜けておりました。


A1からE2に1グループ、A5からC10に1グループ、
J15からP20に1グループと
いった風にたくさんのグループを一度に移動させたいのですが、
セル内は数式無しです。

補足日時:2010/12/29 13:47
    • good
    • 0

とりあえず先の回答のマクロで順繰り実行して貰えば,元のご相談のリクエストは完遂すると思います。





>A1からE2に1グループ、A5からC10に1グループ、
>J15からP20に1グループと
>いった風にたくさんのグループを一度に移動させたい

どのようにローテートしたいのか欲しい結果がイマイチ見えませんが,勝手に想像します。

sub macro2()
 range("E1:E2").cut
 range("A1:A2").insert shift:=xltoright

 range("C5:C10").cut
 range("A5:A10").insert shift:=xltoright

 range("P15:P20").cut
 range("J15:J20").insert shift:=xltoright
end sub

先のマクロを簡単にしただけなので,実際に応用してみてください。
本件はこれにて。
    • good
    • 0
この回答へのお礼

ありがとうございました。

こちらの伝えたいことを組んで下さり、助かりました。
教えていただいた式の応用で、基本的な物はできあがりました。
ただ、セルの結合部分だけが

結合されたセルの一部を変更することはできません。

のエラーで実行が止まってしまいました。

何かしらの手立てがあるのでしょうか?

お礼日時:2010/12/29 15:54

添付図参照



セル A2 に式 =IF(A1-1,A1-1,5) を入力して、此れを右方および下方にドラッグ&ペースト
「エクセルで、列毎に数値を入れ替えたいです」の回答画像3

この回答への補足

お答えいただき、ありがとうございます。
お礼が遅れてすいません。
教えていただいた、関数をNo.2で参考にさせてもらったマクロに
組み込むにはどういった、手順を踏めばいいのでしょうか?

補足日時:2011/01/05 09:42
    • good
    • 0

[No.3この回答への補足]へのコメント、



》 マクロに組み込むにはどういった、手順を踏めばいいのでしょうか?

貴方と同様に、私もマクロ音痴なので回答できません。
この程度のことは、マクロ化する必要もなさそうですが・・・
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!