和風スパゲティのレシピ

日本語でコーディングするExcelVBA

Cells(○, ○). の入力候補を出す小技

セルへの処理を書いている際、地味に困るのが、

Cells(R, C).

この入力候補(インテリセンス)が出てくれないことです。


Valueをたくさん手打ちするのは面倒ですし、
Interior.Colorとか、何度も打ってると嫌になってきますよね。


Range("A1"). はちゃんと出てくれますし、
CellsでもRangeオブジェクト型の変数に入れてしまえば、

変数に入れた場合の入力候補

こんな風に出てくれるんですけどね。
なかなか全部を変数に入れて対応するのは難しいです。


さてこの現象、根本的な解決方法はないのですが、少しでも楽をする小技として、
「Cells.」から先に入力し行列番号は後から入力するという方法があります。


↓こんな感じで.Interior.Colorを入力してから後で(R, C)を入れるということです。

Cellsから入力した場合の入力候補

(R, C)の入力に戻る手間はありますが、
長いプロパティを入れるときはこれでもなかなか重宝します。



しかしこの技、これだけでは「Worksheets("○○").」の後では使えません。

Worksheets("○○").Cells.
    ' ↑やっぱり出ない。。。

 

この問題は、

  • Cells(○, ○). の入力候補が出ない
  • Worksheets("○○"). の入力候補が出ない

の二段重ねで起きているため、小技ひとつでは突破できないのです。


そこでこの問題を突破するためのもう一つの小技なのですが、
「Worksheets("○○"). Cells.」のように.とCellsの間にスペースを入れる
という技が使えます。


Worksheets("○○"). Cellsからの入力候補
↑これで入力候補が出る!


これはRangeプロパティを使用しているときにももちろん活用でき、
こちらはCellsと違い引数があってもインテリが効くためより効果が大きいです。


Worksheets("○○"). Range("A1")からの入力候補
↑ Range("○○").は元から候補入力ができるのでこれで完結!



さらにこの技の真に素晴らしい点なのですが、
入れたスペースは改行時に勝手に消えてくれます。

改行時に無駄なスペースが消えるアニメ
↑ スペースを消すために戻る必要なし!

  

  • スペースを空けたことで親がApplication.判定になって入力候補が出る
  • 改行時に「.」とプロパティの間の無駄なスペースは自動削除される

という仕様を突いた、隙を生じぬ二段構えになっています。


ActiveSheet. でももちろん活用できる技ですので、
インテリが効かない入力が苦痛な私のような方は、ぜひともご活用ください。