- ベストアンサー
セルの回転
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「行列の入れ替え」と「並べ替え」を2回繰り返せば、セルを180度回転した位置になるように思います。 1) セル範囲を選択して「コピー」操作し、どこか邪魔にならないセルを選択して、「編集」→「形式を選択して貼り付け」→「行列を入れ替える」にチェックを入れて「OK」を押します。 2) 貼り付け先の右側の空白の列に連番を入力し、貼り付けたセル範囲と連番のセル範囲を選択して、連番の列をキーに「降順」で「並べ替え」します。 3) 並べ替えたセル範囲を選択して「コピー」操作し、元のA1セルを選択して、「編集」→「形式を選択して貼り付け」→「行列を入れ替える」にチェックを入れて「OK」を押します。 4) 前記 2) と同様に連番を入力して、連番の列をキーに「降順」で「並べ替え」します。 5) 不要になったデータと塗りつぶしを削除します。
その他の回答 (2)
- n_na_tto
- ベストアンサー率70% (75/107)
koko88okokさんの手順をマクロ化したほうが圧倒的に 速いと思いますが、原始的なコピーの繰り返し のコードです。 もう不要だとは思いますが... Sub test() Application.ScreenUpdating = False Dim oldSht As Worksheet Dim newSht As Worksheet Dim myRng As Range Dim cntR As Long Dim cntC As Long Dim i As Long Dim j As Long Set oldSht = ActiveSheet Set myRng = oldSht.Range("A1").CurrentRegion With myRng cntR = .Rows.Count cntC = .Columns.Count End With oldSht.Cells.Copy Set newSht = Worksheets.Add With newSht .Range("A1").PasteSpecial Paste:=xlPasteAll .Cells.Clear For i = 1 To cntR For j = 1 To cntC oldSht.Cells(i, j).Copy .Cells(cntR - i + 1, cntC - j + 1) Next j Next i .Range("A1").Select End With Application.ScreenUpdating = True End Sub
お礼
また、同じ作業をする事になると思うので、そのときは試してみます。 ありがとうございました。
- n_na_tto
- ベストアンサー率70% (75/107)
例えばA1:T20の【値】を関数でひっくり返すなら、 転記先の左上のセルに =INDEX($A$1:$T$20,ROWS($A$1:$T$20)-ROW(A1)+1,COLUMNS($A$1:$T$20)-COLUMN(A1)+1) 右方向・→下方向・↓ しかし、塗りつぶしの色などの【書式】も一緒に移動 するとなると、関数では無理だと思います。
お礼
操作は簡単でしたが、色は入れ替えできないのですね。 マクロで色番号を使って出来そうな気はしますが難しそうです。 ありがとうございました。
お礼
操作が多いですが、色も一緒に入れ替えできました。 ありがとうございました。