|
n様、ご回答ありがとうございます。
>まずはコードモジュールの先頭に
>Option Explicit
>をいれて、変数に対して明示的な宣言を強制し、
>コンパイルエラーのチェックを行ったほうが良いかもしれません。
頭にハテナを浮かべながら言われた通りにしてみたところ・・
sv_ のカウンターが宣言されていませんでした!!!
ありがとうございます。
>開いた後のWorkbooksのインデックスの指定には、ファイル名のみを使います。
> Dim bookname As String
>...と変数を1個追加し、
> Workbooks.Open Filename:=filePath
> bookname = ActiveWorkbook.Name
> :
> MsgBox (filePath)
> MsgBox (bookname)
> Workbooks(bookname).Activate
> 'Workbooks(filePath).Activate
>...としてみてください。
できましたー!!!!!なるほど!開いた直後はアクティブなはずなので、そこで nameプロパティ(!)で名前をとっておくんですね。
>ただ、文字列指定ではなくて、Object型の変数を用意すれば、
>名前によるインデックス指定使わなくても良いです。
オオ・・実は代入は全部 Set を使うのかと今日の午前中くらいまで思っていたんですが、オブジェクト型変数に代入するときに Set を使うんですね!!
大変勉強になります。本当にありがとうございます。改良したら(可読性と合わせて)もういちどコードをのせます。
----------------------
> Set wb = Nothing
VBA でもメモリーリークみたいのがあるんですか(NullじゃなくてNothingなんですね・・)使わなくなった変数はどんどん Nothing を代入すると安全・・ですか・・・
|
|