1/99スタックエンジニアの適当記録

適当なことを書きます。関西で転職したいです。

VBAでマトリクス表の指定

毎日できる時に少しでもアウトプットしておく。

エクセルで、ある表データをマトリクス化するときに使った。
あるマトリクス表があり、その表を選択したい場合は、

Sub test()

    Range(Cells(4, 1), Cells(Cells(4, 1).End(xlDown).Row, Cells(4, 1).End(xlToRight).Column)).Copy
    
    Cells(8, 1).PasteSpecial (xlPasteAll)

End Sub

テスト的にコピーにしてみた。
rangeのendプロパティでxldownで下方向に、ctrl↓した場合と同じところを指定できる。
また、同じくrangeのendプロパティのxlToRightで右方向に、ctrl→した場合と同じところを指定できる。
xlupで↑、xlToLeftで←。

結果はこんな感じになる。

f:id:roku28632:20200416013817p:plain

サクッと書いたけど、可読性的にははこっちのほうがいいのかな

Sub test()

    Dim startRow As Integer
    startRow = 4
    
    Dim startColumn As Integer
    startColumn = 1
    
    Dim startCell As Range
    Set startCell = Cells(startRow, startColumn)

    Range(startCell, Cells(startCell.End(xlDown).Row, startCell.End(xlToRight).Column)).Copy
    
    Cells(8, 1).PasteSpecial (xlPasteAll)

End Sub

ソースの記述方法も他の人のコードを参考にして詰めていきたい。

以上