Open について
既存ファイルの開き方について、WorkbooksオブジェクトのOpenメソッドを調べていきます
■Openメソッド
・構文
構文は以下の通りです
Excel.Workbooks.Open(FileName,[UpdateLinks],[ReadOnly],[Format],[Password],[WriteResPassword],[Ignorereadonlyrecommended],[Origin],[Delimiter],[Editable],[Notify],[Converter],[AddToMru],[Local],[CorruptLoad])
・パラメーター
- FileName … ファイル名(パス)
- UpdateLinks … [省略可]ファイル内の外部参照(リンク)の更新方法を設定
- ReadOnly … [省略可]読み取り専用の設定
- Format … [省略可]テキストファイルを開く場合は区切り文字を指定
- Password … [省略可]パスワード設定されたファイルを開く場合に指定
- WriteResPassword … [省略可]書き込み保護されたファイルに書き込む際のパスワードを指定
- Ignorereadonlyrecommended … [省略可]読み取り専用を推奨するファイルを開く場合のメッセージを非表示にする設定
- Origin … [省略可]テキストファイル開く場合の改行コードを判定するための設定
- Delimiter … [省略可]テキストファイルを開く場合でFormatが「6」の場合に指定
- Editable … [省略可]アドインファイルを開く場合にアドインをウィンドウ表示するかを指定
- Notify … [省略可]ファイルが読み取り/書き込みモードで開けない場合に通知リストに追加するかを指定
- Converter … [省略可]ファイルを開くときに最初に実行するファイルコンバータを指定
- AddToMru … [省略可]最近使用したファイルの一覧にブックを追加するかを指定
- Local … [省略可]ファイルの言語をExcelに合わせるかを指定
- CorruptLoad … [省略可]開くファイルのモードを指定
[UpdateLinks]は以下の「XlUpdateLinks 列挙型」を指定できます
[Format]は以下の値が設定できるようですが、列挙型が見当たりませんでした
XlUpdateLinks 列挙型
- xlUpdateLinksAlways … リンクは常に更新されます
- xlUpdateLinksNever … リンクはまったく更新されません
- xlUpdateLinksUserSetting … ユーザーの設定に従って更新
Format
- 1 … タブ
- 2 … コンマ「,」
- 3 … スペース
- 4 … セミコロン「;」
- 5 … なし
- 6 … カスタム文字([Delimiter]で指定)
Excelシートにテキストを張り付けた時に使うテキストウィザードの画面と同じですね
・戻り値
- 開いたWorkbookオブジェクトを返す
■例
・簡単なサンプル
Sub SampleSub() Dim wb As Workbooks Dim w As Workbook Set wb = Me.Application.Workbooks ' ファイルを読み取り専用で開く、リンクは更新しない Set w = wb.Open("C:\Sample2.xlsx", xlUpdateLinksNever, True) Debug.Print w.Name ' 「Sample2.xlsx」 Set w = Nothing Call wb.Close Set wb = Nothing End Sub
・説明
パラメータが多すぎてよく・・わからないものもたくさんありますねw
マクロでファイルを連続して開いて処理を行っていくような場合、途中で確認メッセージが出ると、
自動化した処理が無駄になってしまいますので、以下の項目は指定すると良いです
[UpdateLinks]、[Password]、[WriteResPassword]、[Ignorereadonlyrecommended]、[Notify]
他によく使うのは、[ReadOnly]くらいです
テキストファイルを扱う場合には、[ReadOnly]や[Origin]、[Delimiter]が必要になります
[Notify]はサーバーのファイルを誰かが開いている場合に、編集できるように「通知」する設定です
Excelファイルを開いて、データを抽出したい場合というシーンはよくあります
その際、元のファイルの意図しない変更を発生させないため、ファイルは読み取り専用で開き、リンクは更新しないとするのがベストです!
サーバーで管理されているファイルの場合だと、誰かが開いている場合もありますので、読み取り専用で開くのは好都合です
Openメソッドでもテキストファイルを開くことは可能ですが、テキストファイルを開くときは、OpenTextメソッドを使用してください
・注意点
- 確認メッセージを表示させない開き方にする
- リンクは更新するかしないかは運用で決めよう
- データを抽出はファイルを読み取り専用で開こう
- テキストファイルはOpenTextメソッドを使おう
・その他
OpenTextメソッドについては、また、時間ができたら書いていきますので、
次は、Workbookオブジェクトについて書いていきたいと思います
ではでは