Excelで並べたセルを左右対称入れ替え
世の人達が批判的になる理由はよくわかるけど、Excelで図を描くのは楽で便利だ。
罫線の下書きがすでに描かれた状態なので、罫線を引くのが異常に簡単。
Visioだと左で引いた線と右で引いた線とが、いつの間にかずれてイライラする。
Excelだとそんなことはない。ただ行削除、列削除するとずれちゃうことはあるけど。。。
それに計算もできるんで、数列の式さえわかればコピペですむ。
VisioでもWordでもうまくすればできそうだけど、そんなにお手軽ではない。
昨日仕事で巨大な図をExcelで描いた。
その図を左右反転したくなったけど、近い機能としては「行と列を入れ替える」しかなく左右反転できず。
調べてみると、欲しい機能をVBAで書いてくれている人がいた。ありがたや。
excel 左右対照入れ替え | Office系ソフトのQ&A【OKWave】
Sub test() Dim i As Long Const mirrorColumnsNo As Long = 4 ActiveSheet.Columns(1).Resize(, mirrorColumnsNo).Cut Destination:=Sheets(2).Columns(1).Resize(, mirrorColumnsNo) For i = 1 To mirrorColumnsNo Sheets(2).Columns(i).Cut Destination:=ActiveSheet.Columns(mirrorColumnsNo - i + 1) Next i ActiveSheet.Columns(1).Resize(, mirrorColumnsNo).Replace What:=ActiveSheet.Name & "!", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False End Sub
使い方は、
- 左右反転させたい領域を新しいファイルのSheet1にコピー
- Visual Basic Editorを起動し、ThisWorkbookにコピー(ここ間違ってそうだけど、僕はうまくいった)
- 最初の方のmirrorColumnsNoの数字を、左右反転させたいカラム数に合わせて書き換え(僕は418カラムを左右反転させた)
- Visual Basic Editorの実行ボタンをプッシュ
ががーっと処理が進む姿を見ると、がんばってるなって感じだった。
VBAでセルを編集するとUndoができないのが、玉に瑕。