VBAでRange(xx).ClearContentsとプルダウンメニューは相性が悪い事が分かった。
後の為に、以下にメモしておく。
1.背景
Intercepter Ace支援ツールを作っている時に、Range(xx).ClearContentsで
指定したセル範囲を超えてクリアーしているのに気付いた。
2.指定範囲外のクリアー事例
(1)ClearContents実行前
下図枠内の消去を考えていた。
(2)ClearContents実行後
指定範囲よりも3行広くクリアーしている。
(3)ClearContentsのコード
17行目(上図では機銃選択)から26行目(上図では爆撃機編隊)までをクリアーする。
3.原因
不明。しかし、下記4項の対策で解消できるのでプルダウンメニューのセルを
範囲指定にすると意図した動きにならないようである。
4.対策
消去範囲を指定するセルは、プルダウンメニューを指定しているセルを除く。
(1)具体例
上記2.の場合は、開始セルを1行上にする。(下図)
(2)実行結果
下図のように意図した通りにクリアーしている。
補足説明は次回へつづく
<個人的な感想>
制限事項というよりも不具合のように思うが・・・。