タイトル : Re^3: Excelが解放されない 投稿日 : 2010/07/09(Fri) 13:04 投稿者 : 魔界の仮面弁士
> 「xlSheet 変数を使って制御する」というのは、 > Set xlSheet = xlBook.Worksheets(L_Value)だけで、シートの選択はできており、 > このコードのみでよいということでしょうか? 取得しただけなので、選択はされていません。 xlBook.Sheets(L_Value).Select ではなく、 xlSheet.Select と記述しましょう、という意味です。 > ご指摘頂きました内容でわからない所がありました。 指摘の意図を順に説明していきます: ★1:シート系プロパティを使い分けましょう★ >> シートの種類(ワークシート、グラフ、ダイアログ、マクロシート)ごとに >> .Worksheets / .Charts / .DialogSheets / .Excel4MacroSheets プロパティを >> 使い分けるようにしましょう。 Excel のシートには、ワークシートやグラフシートなど、複数の種類があります。 たとえば、「シートの種類は問わないが、とにかく先頭のシート」という目的であれば、 xlBook.Sheets(1) といった表現で構いませんが、「先頭のワークシート」の意味ならば xlBook.Worksheets(1) と記述した方が、より正確な表現となります。 (シート番号ではなく、シート名などを使うとよりベター) また、もしもワークシートしか使っていない場合には、 xlBook.Sheets(L_Value).Select xlBook.Worksheets(L_Value).Select は同じ意味を持ちますが、他の種類のシートなどが含まれていると、 それぞれは別のシートを指し示す可能性があります。 ★2:プロパティの取得回数は最低限にしましょう★ >> 同じシートならば、最初に取得した xlSheet 変数を使って制御するようにすべきです。 xlBook.Sheets(L_Value).Select を実行したときには、 (1) xlBook 変数から、処理対象の Workbook オブジェクトを取得。 (2) Workbook オブジェクトの Sheets プロパティから、Sheets オブジェクトを取得。 (3) Sheets オブジェクトの既定のプロパティから、L_Value という Sheet オブジェクト(正確には Worksheet オブジェクト)を取得。 (4) Sheet オブジェクトの Select メソッドを呼び出し、該当シートを選択。 という処理が実行されています。L_Value に対して検索処理が発生しています。 しかし処理対象のワークシートは、既に変数 xlSheet に取得済みなのですから、 ここでは xlSheet.Select と記述した方がスマートです。こちらの記述を使うと、 (1) xlSheet 変数から、処理対象の Worksheet オブジェクトを取得。 (2) Worksheet オブジェクトの Select メソッドを呼び出し、該当シートを選択。 という単純なステップで済みます。 >> Name "\\Kq-001\工程集計\工程不良集計\Ppk集計" & "\" & "\Ppk管理図(原紙)" _ >> As "\\Kq-001\工程集計\工程不良集計\Ppk集計" & "\" & "\Ppk管理図" & Gouki > 間違いではありませんが、この部分、やや統一性が無いように見えました。 よく見ると微妙に間違っていますね。これだと、 "\\Kq-001\工程集計\工程不良集計\Ppk集計\Ppk管理図(原紙)" ではなく "\\Kq-001\工程集計\工程不良集計\Ppk集計\\Ppk管理図(原紙)" というパスを操作していることになってしまいます。 > Name プロパティを使ったコードはどのようになるのか教えて頂けませんでしょうか。 "Ppk管理図(原紙)" というのはフォルダですよね。 Gouki が文字列であり、かつ、その中に "\" が含まれていないというパターンなら、 FSO.GetFolder("\\Kq-001\工程集計\工程不良集計\Ppk集計\Ppk管理図(原紙)").Name = "Ppk管理図" & Gouki といった感じです。ここで、FSO はFileSystemObject 型のオブジェクト変数です。 あるいは、 FSO.MoveFolder "\\Kq-001\工程集計\工程不良集計\Ppk集計\Ppk管理図(原紙)", _ "\\Kq-001\工程集計\工程不良集計\Ppk集計\Ppk管理図" & Gouki という書き方もできます。 |