• 締切済み

エクセルで、列毎に数値を入れ替えたいです。

以下のように数値を入れ替えるようにしたいのです 列ごとに 1 2 3 4 5 となっているものをボタン操作で 5 1 2 3 4 また、ボタンを押すと 4 5 1 2 3 と順に入れ替えてループさせたいのですが可能でしょうか? 又、そういった列のグループが1シートに複数あった場合は1ボタン操作が できますでしょうか? 何とぞお知恵をお貸しください。

みんなの回答

noname#204879
noname#204879
回答No.4

[No.3この回答への補足]へのコメント、 》 マクロに組み込むにはどういった、手順を踏めばいいのでしょうか? 貴方と同様に、私もマクロ音痴なので回答できません。 この程度のことは、マクロ化する必要もなさそうですが・・・

noname#204879
noname#204879
回答No.3

添付図参照 セル A2 に式 =IF(A1-1,A1-1,5) を入力して、此れを右方および下方にドラッグ&ペースト

tds80
質問者

補足

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

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

とりあえず先の回答のマクロで順繰り実行して貰えば,元のご相談のリクエストは完遂すると思います。 >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 先のマクロを簡単にしただけなので,実際に応用してみてください。 本件はこれにて。

tds80
質問者

お礼

ありがとうございました。 こちらの伝えたいことを組んで下さり、助かりました。 教えていただいた式の応用で、基本的な物はできあがりました。 ただ、セルの結合部分だけが 結合されたセルの一部を変更することはできません。 のエラーで実行が止まってしまいました。 何かしらの手立てがあるのでしょうか?

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

○数式が入っているのに移動すると問題が起きる場合があるので,生データだけ入っているとします ○色々な場所で動作させたいので,ある決まりで「どの範囲を回転したい」のか自動で判別させます 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列に別の連続範囲があるような場合でも片方だけを対象にします。  ご相談に書いてない,具体的なデータの配置の姿に合わせてマクロを書けば,もっとシンプルでスマートなマクロに出来ます。

tds80
質問者

補足

お答えいただいて、ありがとうございます。 質問の際、範囲を指定したいことが抜けておりました。 例 A1からE2に1グループ、A5からC10に1グループ、 J15からP20に1グループと いった風にたくさんのグループを一度に移動させたいのですが、 セル内は数式無しです。

関連するQ&A