指摘できる箇所は色々と
「…なかなかよくできていますが、指摘できる箇所は色々とありますよ」
そう言って八木くんが、コードの問題点を次々と指摘すると、泉先輩の表情はみるみる固まっていきました。
その様子に気づいた八木くんは、
「ああ、大丈夫です。
ひとつひとつ、詳しく解説しますから」
と言って、フォローを入れます。
「まず、アクティブシートを切り替えてる点ですが…、オブジェクトの階層構造って覚えてます?
上位オブジェクトの指定を省略すると、アクティブなオブジェクトが処理の対象になるってやつ……。
あれの逆をやるんです。
つまり、"上位オブジェクトを指定する"ことで、アクティブでないオブジェクトを操作するんですよ」
八木くんは、コードウィンドウのコードを修正していきます。
Function リスト範囲設定(ListName As String, ListRange As Range) As Boolean
Dim r As Long, c As Long, o As Object
Set o = Worksheets("リスト設定").Rows(1).Find(ListName)
If Not o Is Nothing Then
c = o.Column
r = Worksheets("リスト設定").Cells(Rows.Count, c).End(xlUp).Row
:
※赤字の部分が、八木くんが修正したコードです。