VBAからワークシートのセルを操作する場合、Range(”A1″)のようにセル番地を使うのが一般的です。しかし、VBAアセットでは、セルに名前をつけてRange(“番号”)のようにして指定するのを基本としています。
その理由は、ワークシートが変更された場合にVBAを修正する必要性をできるだけ少なくしたいからです。セル番地を使うと、セルの位置が変わるたびにVBAの修正が必要となります。これに対して、名前を使った場合は、セルの位置が変わっても名前も一緒に移動してくれるので修正の必要がありません。
ただし、セルに名前をつける際には、注意しなければならないことがあります。それは、名前の適用範囲です。ワークシートの名前ボックスで名前をつけるとその適用範囲が自動的に「ブック」になり、ワークシートごとに別の名前をつけなければならなくなります。セルを右クリックして、名前をつけるようにすると適用範囲を「シート」にすることができるようになり、別のシートで同じ名前を使うことができるようになります。
細部については、こちらの記事に詳しく書かれていますので、参考にしてください。
なお、テーブルが設定されている部分については、自動的に範囲名が設定されますので、改めて名前を定義する必要はありません。
テーブル内でのセルの特定については、こちらの記事をお読みください。
コメント