ブックが開いているか確認してから開く
開いているブックに変更を加えたあと
同じブックを開こうとすると次のような警告が出ます。
この警告はOpenメソッドの前に
次のコードを実行して表示させないようにできます。
Application.DisplayAlerts = False
この場合ブックに加えた変更は破棄されます。
開こうとしているブックを開いているか確認して
開いているなら新たに開かない、
開いていないなら開く、
ということをVBAでやります。
まずは現在開いているブックの名前を取得します。
これにはFor Eachステートメントを使います。
以前の記事にもあったシートの名前を取得する要領です。
MyFileにファイルへのフルパスを入れてください。
開こうとしているファイルが既に開いているのなら
flag = True になります。
flag = FalseのままFor Eachのループを終えると
ファイルは開いていないとIfステートメントで判断して
ファイルを開きます。
コードはこちら
Sub macro111008a() Dim flag As Boolean |
データ型がWorkBooksとWorkBookの2つがあり、
はじめWorkBooksで変数を宣言していました。
すると、For Eachのところで
コンパイルエラー:
メソッドまたはデータメンバが見つかりません。
とダイアログが表示されエラーになりました。
類似のエラーはWorksheetとWorksheetsにも起きますので
こちらのエラーが出たらデータ型を見るといいかもしれません。
| 固定リンク
この記事へのコメントは終了しました。

コメント