トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 次なるイノベーション編: 第9話「コードの問題点を解決しよう」1/4 :指摘できる箇所は色々と

やってみよう!Excel VBAで業務改善! 次なるイノベーション編|第9話 「コードの問題点を解決しよう」

指摘できる箇所は色々と

「…なかなかよくできていますが、指摘できる箇所は色々とありますよ」 そう言って八木くんが、コードの問題点を次々と指摘すると、泉先輩の表情はみるみる固まっていきました。
その様子に気づいた八木くんは、

「ああ、大丈夫です。
ひとつひとつ、詳しく解説しますから」
と言って、フォローを入れます。

「まず、アクティブシートを切り替えてる点ですが…、オブジェクトの階層構造って覚えてます?
上位オブジェクトの指定を省略すると、アクティブなオブジェクトが処理の対象になるってやつ……。
あれの逆をやるんです。
つまり、"上位オブジェクトを指定する"ことで、アクティブでないオブジェクトを操作するんですよ」
八木くんは、コードウィンドウのコードを修正していきます。

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
    :

※赤字の部分が、八木くんが修正したコードです。

一覧にもどる