Vba: 最後に使用された列を見つける方法
VBA で次の基本構文を使用すると、Excel シートで最後に使用された列を検索できます。
Sub FindLastColumn()
Range(" A14 ") = Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByColumns,xlPrevious,False).Column
End Sub
この特定の例では、現在のシートで最後に使用された列を検索し、セルA14に結果を返します。
メッセージ ボックスの最後の列を表示したい場合は、次の構文を使用できます。
Sub FindLastColumn()
Dim LastCol As Long
LastCol=Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByColumns,xlPrevious,False).Column
MsgBox " Last Column: " & LastCol
End Sub
次の例は、これらの各メソッドを実際に使用する方法を示しています。
例 1: VBA を使用して最後の列を検索し、結果をセルに表示します。
さまざまなバスケットボール選手に関する情報を含む次のデータセットが Excel にあるとします。
次のマクロを作成して、この Excel シートで使用されている最後の列を検索し、結果をセルA14に表示します。
Sub FindLastColumn()
Range(" A14 ") = Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByColumns,xlPrevious,False).Column
End Sub
このマクロを実行すると、次の出力が表示されます。
セルA14に値2 が含まれていることに注目してください。
これは、この特定のシートで使用されている最後の列が列 2 であることを示しています。
使用された列の前に空の列がある場合、このマクロは常に最後に使用された列を検索することにも注意してください。
たとえば、次のデータセットに対してマクロを実行するとします。
セルA14 は値が含まれる最後の列であるため、値5が含まれます。
例 2: VBA を使用して最後の列を検索し、結果をメッセージ ボックスに表示します。
代わりに、シート内で最後に使用された列を検索し、その列番号をメッセージ ボックスに表示したいとします。
これを行うには、次のマクロを作成できます。
Sub FindLastColumn()
Dim LastCol As Long
LastCol=Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByColumns,xlPrevious,False).Column
MsgBox " Last Column: " & LastCol
End Sub
このマクロを実行すると、次の出力が表示されます。
メッセージ ボックスは、シートで使用されている最後の列が列2であることを示しています。
注: VBA Findメソッドの完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。