3日がかりのその仕事、3分で終わらせる方法教えます!
パソコンスキルの心技体

別リストにあるデータを利用したい – エクセルマクロ・VBA

2012年8月4日
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

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とかの、複数セルにある値に対して、連続で作業できるようにしたい。

さて、どうするか。

つづきは、また次回。

キーワード

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

最新の記事

人気記事

最新記事

カテゴリ

最新コメント

タグクラウド