1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Excelの薄い本(1)

Last updated at Posted at 2018-04-28

ActiveSheet のテーブル名を見つける

テーブルは、ListObject なので、以下の関数で変数Tにテーブル名が入ります。

   Dim L As ListObject: Set L = ActiveSheet.ListObjects(1)
   Dim T:  T = L.Name

テーブルに、"月日"という項目があった場合、Range(T & "[月日]")で指定できます。

構造化参照とRangeの関係について

という事は、Range関数に、構造化参照の文字列を入れるとテーブル内の列を指定して参照できます。
これを利用すると、複数のテーブル参照をキーワードで切り替えることが可能になります。

例として、ロット番号(年-機械ー連番)の機械番号で参照するテーブルを切り替える関数を定義します。
関数TMIはMI、関数TDIはDIの拡張です。

Function TMI(R, Optional S = "")
    On Error Resume Next   

    Dim M: M = MM(R)
    Dim K: K = DI(R, M, 2)  ' 機械番号

    If K = 1 Then
        S = CC(MLOT(Range("T01N_"), R), "A")
    ElseIf K = 2 Then
        S = CC(MLOT(Range("T02N_"), R), "B")
    End If
    TMI = S
End Function

Function TDI(A, T, Optional S = "")
    On Error Resume Next

    Dim I: I = Right(A, 1)
    Dim J: J = Val(A)
    
    If I = "A" Then S = DI(Range("T01N_[" & T & "]"), J)
    If I = "B" Then S = DI(Range("T02N_[" & T & "]"), J)
    
    TDI = S
End Function

説明があまりにも端折りすぎで判りにくいですね。
ここにない関数は、基礎編応用編で。

1
0
0

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?