実はVBAは使用せずに、関数だけでコピペをしようと思いましたが、なかなか上手くいきませんでした。
なのであきらめてVBAで作ります。
目的
順序がバラバラのセルに番号をふって、別のシートに整列させたい
※フィルター機能は使えないという前提。
例題
A列のセルに入ってる図形をB列のセルに入っている番号順に並べ変えたい。
1〇、2△、3□の順に。
現在のシートは”2”、並べ替えたものをシート”1”に入れたい。
VBAを書く
開発→VisualBasic→挿入→標準モジュール
Sub cp()
Dim i As Long
Dim R As Long
For i = 1 To 3
Sheets("2").Select
Cells(i, 1).Select
Selection.Copy
R = Cells(i, 2).Value
If R = 1 Then
Sheets("1").Select
Range("A1").Select
ActiveSheet.Pictures.Paste
ElseIf R = 2 Then
Sheets("1").Select
Range("A2").Select
ActiveSheet.Pictures.Paste
Else: R = 3
Sheets("1").Select
Range("A3").Select
ActiveSheet.Pictures.Paste
End If
Next i
End Sub
ちなみに普段pythonを書いているので、インデントは癖です。
適当にボタンを作って実行してみます
実行結果
一応並びました。
ペーストされる方のセルの大きさは、合わせておかないと重なってしまって見辛くなってしまいます。
とりあえず実用出来そうなので、目的は達成されました。
もっといいやり方があればおしえてください。