|
つっこみどころがいくつかあります。
型の不一致ですが、それは、pos1が結合セルの場合、
pos1.Valueが配列になるからです。
配列と一つの値を = で比較することはできません。
まずそのことを念頭におくと、
Set pos1 = Cells(pos1row, pos1col).MergeArea
Set pos1 = pos1(1)
としてしまう方法があります。
(最初だけでなく、複数箇所変更が必要です)
その他。
(1)1行ずつ行送りすると無駄かもしれない。
pos1row = pos1row + sh1.Cells(pos1row, pos1col).MergeArea.Rows.Count
とするとよいかも。
(2) name1,name2などを繰り返しの中で定義する必要はない。
(3) memo = "ee" などとダイレクトに文字をコードに書くなら、
name1 などと変数を使わないほうが直感的かもしれない。
memo に書き込む値も文字列変数で定義するか、いずれ統一が必要。
(4)Case Is = name1 は、普通は Case name1 で良い。
(5)投稿にあたっては、コピーペイストしてください。
memo = bb1" & Right(pos1.Offset(, 3).Value, 5) & "bb2" _
& Left(pos1.Offset(, 3).Value, 4) & "bb3"
などというのはコンパイルエラーになる。
(6)インデントが恣意的です。タブを使ってください。
|
|