
No.2ベストアンサー
- 回答日時:
こんばんは!
一例です。
Sub Sample1()
Dim lastRow As Long, lastCol As Long
lastRow = Cells(Rows.Count, "A").End(xlUp).Row '←A列で最終行取得//
lastCol = Cells(5, Columns.Count).End(xlToLeft).Column '←5行目で最終列取得//
Range(Cells(5, "A"), Cells(lastRow, lastCol)).Sort key1:=Range("B5"), order1:=xlAscending, Header:=xlYes
Range(Columns("F"), Columns(lastCol)).ColumnWidth = 12
End Sub
こんな感じではどうでしょうか?m(_ _)m
ありがとうございます!初心者の私にはわかりやすかったです^^ 動作、バッチリでした!!覚えておいて今後どんどん活用していきたいです!
No.3
- 回答日時:
最終行の取得としては、たとえば、
Dim LstRow As Long
LstRow=Cells(Rows.Count,1).End(xlUp).Row
で行けます。
つまり、A列の最終行から上に遡ってぶち当たる行、ということです。
同様に最終列の取得は、たとえば
Dim LstCol As Long
LstCol =Cells(1,Columns.Count).End(xlToLeft).Column
で行けます。
1行目の最終列から左に遡ってぶち当たる列、ということです。
データの入力状況に応じて、上記の「A列」や、「1行目」のところはアレンジしてください。
それを踏まえて、ご質問の状況に当てはめれば、たとえば以下。
Dim Rng1 As Range, Rng2 As Range, LstRow As Long, LstCol As Long
LstRow=Cells(Rows.Count,1).End(xlUp).Row ’最終行を変数LstRowに入れる
LstCol =Cells(1,Columns.Count).End(xlToLeft).Column ’最終列を変数LstCol に入れる
Set Rng1 = Range(Cells(5,1),Cells(LstRow,43)) 'A5~AQ最終行の範囲を変数Rng1に格納
Rng.Sort _
Key1:=Cells(5,2), Order1:=xlAscending,Header:=xlYes
Set Rng2 = Range(Columns(6),Columns(LstCol)) 'F列から最終列の範囲を変数Rng2に格納
Rng2.ColumnWidth=12
Set Rng1=Nothing
Set Rng2=Nothing
とか。
ありがとうございます、初心者の私には少し難しかったですが、遡ってぶち当たるという概念がわかりやすかったです!Rngに格納というのを使った事がまだありませんでしたので、大変参考になりました。
No.1
- 回答日時:
最終行を取得する場合は、
Cells(1, 1).End(xlDown).Rowです。
http://excel-ubara.com/excelvba4/EXCEL222.html
こちらに詳しく載っていますので参考になさってください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルVBA 最終行を選んで並び替え
Excel(エクセル)
-
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
Excel VBAにてソートが上手くいかない
その他(Microsoft Office)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
エクセルVBA 最終行を選んで並び替え (空白セルを一番上に表示したい)
Excel(エクセル)
-
6
エクセル マクロ 最終列までを全選択
Excel(エクセル)
-
7
エクセル マクロ名にブック名が付いた場合の修正方法
Excel(エクセル)
-
8
【Excel VBA】一番右端セルまでの範囲指定の仕方(途中に空白セルあり)
Visual Basic(VBA)
-
9
エクセルvbaで、別シートの最下行にデータを取り込むコードを教えてください。
Visual Basic(VBA)
-
10
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
11
マクロで最終行を取得してコピーしたい
Visual Basic(VBA)
-
12
VBA 何かしら文字が入っていたら
Visual Basic(VBA)
-
13
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
14
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
15
VBAで文字列を数値に変換したい
Excel(エクセル)
-
16
EXCEL VBAで、セルの文字列の前後に文字を入力する方法は?
その他(Microsoft Office)
-
17
特定の文字がある行以外を削除するマクロ
その他(Microsoft Office)
-
18
マクロ 新しいシートにデータをコピペしてシートの名前を変更したい
Excel(エクセル)
-
19
IFS関数の場合で、セルが空白の場合は何も表示しないようにする方法
Excel(エクセル)
-
20
空白行も含めてソートしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「段」と「行」の違いがよくわ...
-
土日の列幅の自動変更を教えて...
-
VBAで結合セルを転記する法を教...
-
エクセルで離れた列を選択して...
-
LEFT関数とIF関数の組み合わせ...
-
列方向、行方向の定義
-
VLOOKUPの列番号の最大は?
-
エクセル 文字列を日付に変更...
-
EXCELでデータの更新した後の列...
-
VBA 指定した列にある日時デー...
-
リストからデータを紐付けしたい
-
Excel文字列一括変換
-
列を1つずつ非表示にしたい
-
最終行に合計(最終行が列によ...
-
Excelの行数、列数を増やしたい...
-
Excel 区切り位置指定ウィザー...
-
エクセルで住所を県と市・郡と...
-
excelについて。
-
アクセス 取り込み時に、桁数(...
-
CSVファイルの「0落ち」にVBA
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「段」と「行」の違いがよくわ...
-
エクセルで離れた列を選択して...
-
Excelの行数、列数を増やしたい...
-
VLOOKUPの列番号の最大は?
-
vba マージエリアの行数を非表...
-
列方向、行方向の定義
-
VBA 指定した列にある日時デー...
-
エクセル マクロ 範囲指定で...
-
Alt+Shift+↑を一括で行うには、...
-
LEFT関数とIF関数の組み合わせ...
-
横軸を日付・時間とするグラフ化
-
Excel文字列一括変換
-
VBAで結合セルを転記する法を教...
-
最近急にVBAの処理速度が遅くな...
-
EXCEL VBA 文字列から電話番号...
-
CSVファイルの「0落ち」にVBA
-
VBAで別ブックの列を検索し、該...
-
リストからデータを紐付けしたい
-
エクセルで最初の行や列を開け...
-
ListViewで列を指定して表示さ...
おすすめ情報