LoginSignup
0
0

More than 3 years have passed since last update.

VBAでMatch関数を使用し列番号を取得する

Last updated at Posted at 2020-09-02

列挿入や列削除で列番号が変わる可能性がある

Excelのシートでは列を追加したり削除したりすることがあり
以下のようなコードだとその度書き直すことになるので

ThisWorkbook.Worksheets("Sheet1").Cells(LastRow + 1, 1).Value = 10

その度書き直さなくてもいいように
項目行から項目名をMatch関数で検索し、変数に格納します。

Sub MasterDataAdd1()'最終行のひとつ下にデータを追加するコード
    Dim NoCol As Long 'Noの列番号を格納する変数
    Dim IDCol As Long 'IDの列番号を格納する変数
    Dim LastRow As Long '最終行を格納する変数

'列番号を変数に格納する
'Masterはシートオブジェクト名です
    NoCol = WorksheetFunction.Match("No", Master.Rows(1), 0) 'Match関数で列数格納
    IDCol = WorksheetFunction.Match("ID", Master.Rows(1), 0) 'Match関数で列数格納
    LastRow = Master.Cells(Rows.Count, NoCol).End(xlUp).Row '最終行格納
    Master.Cells(LastRow + 1, NoCol).Value = 10 '最終行のひとつ下にNo追加
    Master.Cells(LastRow + 1, IDCol).Value = "jjj" '最終行のひとつ下にID追加
End Sub

実行結果
image.png

ワタシ流こだわり:point_up:

列番号を格納する変数は「~Col
行番号を格納する変数は「~Row

ちなみに

このままだと項目行の上に行を追加されたり項目名を変更されたらアウトです。
その可能性がある場合はその対策もとる:wink:
でもとりあえずむやみな変更をしないように伝えておくのは大事。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0