Excelマクロ・VBA達人養成塾 小川です。
ちょっと、小ネタ。
シート「List」の1行目はタイトル。2行目からはA, B, C, … , W というインデックスでデータが並んでいる。
それぞれの値は、 DataA, DataB, DataC, … , DataW。
ここで、シート「Log」のセルA2に入ったA – W の記号に対応させて、シート「List」にあるデータを引っ張ってきたい。
..というマクロを書く機会がプライベートであったのでシェアします。
こんな感じ。
Sub GetData() Dim t As String t = Worksheets("Log").Range("A2").Value Select Case t Case "A" To "W" Worksheets("Log").Range("B2").Value _ = Worksheets("List").Range("B" & Asc(t) - Asc("A") + 2).Value End Select End Sub
元は、達人養成塾の発展編受講済みの人向けに公開したサンプルです。そこそこマクロ書ける人向けのサンプルなので、知識のあまり無い人にはちょっと高度かも。
このマクロ。さらに高度化したい。
具体的には:
[1]
“c” とか “e” とかの小文字表示だったときにも対応させたい。
“A” – “W”, “a” – “w” の範囲にない文字が入った場合は警告したい。
[2]
セルA2に入っていたのが ”LBD” のようなデータだった場合は、
“DataL, DataB, DataD”
という文字列を作ってシート「Log」のセルB2に代入したい。
[3]
Worksheets(“Log”)のセルA2だけでなく、セルA2~A11とかの、複数セルにある値に対して、連続で作業できるようにしたい。
さて、どうするか。
つづきは、また次回。