53本目 テーブルの扱いと年齢計算

VBA100本ノック

VBA100本ノック 53本目を動画で解説しています。Excelの神髄さんの模範解答はコチラ


問題

#VBA100本ノック53本目
このExcelのように、A1から始まるテーブルがあります。
「東京都」の「男」で「35歳以上」の人のみ、 備考欄に「対象」と入れてください。
年齢はマクロ実行年(つまり今年)の12月31日で計算。 ※シートは任意

解答

Sub テーブルで35歳以上Fの作業列を追加()

'  =IF(DATEDIF([@誕生日],"2021/12/31","Y")>=35,"35歳以上","")
' =IF([@性別]&[@35歳以上F]&[@都道府県]="男35歳以上東京都","対象","")
    
    Dim ws As Worksheet: Set ws = Sheets("Sheet2")
    Dim tb As ListObject: Set tb = ws.Range("A1").ListObject
    Dim tb作業列 As ListColumn: Set tb作業列 = tb.ListColumns.Add '最終列
    
    tb作業列.DataBodyRange.Formula = "=IF(DATEDIF([@誕生日],""2021/12/31"",""Y"")>=35,""35歳以上"","""")"
    tb作業列.Name = "35歳以上F"
    
    With tb.ListColumns(5).DataBodyRange
        .Formula = "=IF([@性別]&[@35歳以上F]&[@都道府県]=""男35歳以上東京都"",""対象"","""")"
        .Value = .Value
    End With
    
    tb作業列.Delete
    
End Sub
新人君
新人君

テーブルに新たな列を
追加する問題ですね!

ブチョ
ブチョ

やっぱりテーブルと言えば
ダイニングだよな!

新人君
新人君

食卓と間違えとるわこの人……

コメント

タイトルとURLをコピーしました