Contents
ブックを開きます。同名ファイルや存在しないファイルを指定するとエラーが発生します。
- 構文
- Workbook = Workbooks.Open( FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad )
- 引数
- FileName (String = EMPTYPARAM)省略可
- 開くブックのファイル名。
- UpdateLinks (Variant = EMPTYPARAM)省略可
- リンクの更新方法を指定します。省略した場合は確認メッセージが表示されます。
- ReadOnly (Boolean = False)省略可
- 読み取り専用で開くにはTrueを指定します
- Format (String)省略可
- テキストファイルを開くときの区切り文字を指定します。
- Password (String)省略可
- パスワード保護されたブックを開くときに必要なパスワードを指定します。パスワードが必要なブックで省略した場合、ダイアログが表示されます。
- WriteResPassword (String)省略可
- 書き込みパスワードが設定されたブックを開くときの書き込みパスワードを指定します。
- IgnoreReadOnlyRecommended (Boolean)省略可
- [読み取り専用を推奨する]にチェックが入っていてもメッセージを非表示にするにはTrueを指定します。
- Origin (XlPlatform)省略可
- テキストファイルを開くとき、テキストファイルの形式を指定します。
- Delimiter (String)省略可
- Formatで6を設定しているとき、区切り文字を指定します。
- Editable (Variant)省略可
- Notify (Variant)省略可
- Converter (Variant)省略可
- AddToMru (Boolean = False)省略可
- 最近使用したファイルの一覧にブックを追加するにはTrueを指定します。既定値はFalseです。
- Local (Variant)省略可
- CorruptLoad(XlCorruptLoad)省略可
- 戻り値
- 開いたブックを表すWorkbook オブジェクト
Workbooks オブジェクトを返すメソッド・プロパティ
- Application.Workbooks プロパティ
- 開いているすべてのワークブックを表すWorkbooks オブジェクトを返します。
定数一覧
XlPlatform 列挙
名前 | 値 | 説明 |
---|---|---|
xlMacintosh | 1 | Macintosh |
xlWindows | 2 | Microsoft Windows |
xlMSDOS | 3 | MS-DOS |
CONST xlMacintosh = 1
CONST xlWindows = 2
CONST xlMSDOS = 3
XlCorruptLoad 列挙
名前 | 値 | 説明 |
---|---|---|
xlNormalLoad | 0 | ブックを正常に開きます。 |
xlRepairFile | 1 | ブックを修復モードで開きます。 |
xlExtractData | 2 | ブックをデータの抽出モードで開きます。 |
CONST xlNormalLoad = 0
CONST xlRepairFile = 1
CONST xlExtractData = 2
ブックを開く
指定したファイルを開く
D:\Desktop\Book1.xlsxを開く。
DIM Excel = CREATEOLEOBJ("Excel.Application")
Excel.Visible = TRUE
Excel.Workbooks.Open("D:\Desktop\Book1.xlsx")
FileNameに相対パスを指定する場合、そのパスは現在の作業ディレクトリを基準として解釈されます。作業ディレクトリはApplication.DefaultFilePath プロパティで取得することができます。UWSファイルが保存しているパスを基準とはならないので、特に理由がない限りは絶対パスで指定することをおすすめします。
以下はApplication.DefaultFilePath プロパティでD:\Documentsと取得されるので、Workbooks.Open メソッドでは実行しているUWSファイルの場所に関係なくD:\Documents\Book1.xlsxが開かれることになります。
PRINT Excel.Application.DefaultFilePath
Excel.Workbooks.Open("Book1.xlsx")
- 結果
D:\Documents
実行しているUWSファイルを基準とした相対パスを指定する場合は、以下のようにパスの前にGET_CUR_DIRをつけて実行します。
Excel.Workbooks.Open(GET_CUR_DIR + "\Book1")
拡張子を省略すると以下のリストで先に見つかったファイルが優先して開きます。どれも見つからなければエラーが発生します。
Book1.xlsxとBook1.csvがある場合、より上にあるBook1.xlsxが開きます。
- xlsx
- xlsm
- xlsb
- xltx
- xls
- slk
- csv
- txt
- dif
読み取り専用で開く
Excel.Workbooks.Open(FileName:="D:\Desktop\Book1.xlsx", ReadOnly:=TRUE)
外部参照のリンクを更新しないで開く
Excel.Workbooks.Open(FileName:="D:\Desktop\Book1.xlsx", UpdateLinks:=FALSE)
パスワード保護されたブックを開く
パスワード保護されたブックを開くにはPasswordにパスワードを指定します。
Excel.Workbooks.Open(FileName:="D:\Desktop\Book1.xlsx", Password:="1234")
Passwordを指定しなかった場合、入力を求めるダイアログが表示されます。

パスワードが間違っていた場合、COMエラーが発生します。
パスワードをつけて保存するにはWorkbook.SaveAs メソッドでPasswordを指定します。
ファイルの書き込みパスワード

プログラム実行例
表の最終データの下のセルを選択

使用関数
予定データをExcelから読み込み追加する(Outlook)

CONST xlDown = -4121
DIM Excel = CREATEOLEOBJ("Excel.Application")
Excel.Visible = TRUE
Excel.Workbooks.Open("C:\Users\Owner\Downloads\東京月別平均気温(2000-2019年).xlsx")
Excel.Range("B4").End(xlDown).Offset(1).Select
使用関数
コロナのグラフ
CONST xlUp = -4162
CONST olAppointmentItem = 1
HASHTBL reminders
reminders["なし"] = -1; reminders["0分"] = 0; reminders["5分"] = 5
reminders["10分"] = 10; reminders["15分"] = 15; reminders["30分"] = 30
reminders["1時間"] = 60; reminders["2時間"] = 120; reminders["3時間"] = 180
reminders["4時間"] = 240; reminders["5時間"] = 300; reminders["6時間"] = 360
reminders["7時間"] = 420; reminders["8時間"] = 480; reminders["9時間"] = 540
reminders["10時間"] = 600; reminders["11時間"] = 660; reminders["0.5日"] = 720
reminders["18時間"] = 1080; reminders["1日"] = 1440; reminders["2日"] = 2880
reminders["3日"] = 4320; reminders["4日"] = 5760; reminders["1週"] = 10080
reminders["2週"] = 20160
DIM Excel = CREATEOLEOBJ("Excel.Application")
Excel.Visible = TRUE
DIM Workbook = Excel.Workbooks.Open("D:\Desktop\予定一覧.xlsx")
DIM MaxRow = Excel.Cells(Excel.Rows.Count, 1).End(xlUp).Row
DIM Outlook = CREATEOLEOBJ("Outlook.Application")
DIM AppointmentItem = Outlook.CreateItem(olAppointmentItem)
FOR row = 2 TO MaxRow
PRINT row
WITH AppointmentItem
.Subject = Excel.Cells(row, 2).Value // 件名
.Location = Excel.Cells(row, 3).Value // 場所
.Start = Excel.Cells(row, 4).Value // 開始時刻
.End = Excel.Cells(row, 5).Value // 終了時刻
IF Excel.Cells(row, 6).Value = "○" THEN .AllDayEvent = TRUE // 終日
IFB reminders[Excel.Cells(row, 7).Value] <> -1 THEN
.ReminderSet = TRUE
.ReminderMinutesBeforeStart = reminders[Excel.Cells(row, 7).Value] // リマインダー
ELSE
.ReminderSet = FALSE
ENDIF
.BusyStatus = 1 // 公開方法
.Body = Excel.Cells(row, 8).Value // 本文
.Save
ENDWITH
NEXT
MSGBOX((MaxRow - 1) + "件の予定を登録しました。")
Outlook.Quit
Excel.Quit
使用関数
この記事は役に立ちましたか?
ご協力ありがとうございます。
関連記事
- XLOPEN関数 (スクリプト関数)
- Excelまたは OOo のCalcを起動。
- XLSHEET関数 (スクリプト関数)
- Excelシートを追加・削除する。
- PageSetup オブジェクト
- Excel のシートの印刷設定を表すオブジェクトです。シートの用紙サイズ、余白、方向、印刷タイトルなど、印刷に関連する設定を管理するのに使用されます。
- Application オブジェクト
- Excel全体を表すオブジェクトです。Excel全体に対しての操作、設定変更をしたい場合に使います。
- Border オブジェクト
- 上下左右一つひとつの罫線を表します。
- Borders オブジェクト
- RangeオブジェクトまたはStyleオブジェクトの4つの罫線を表す、4つのBorderオブジェクトのコレクションです。
- Characters オブジェクト
- オブジェクトに含まれる文字列の文字を表します。
- Chart オブジェクト
- ブック内のグラフを表します。
- ChartObjects オブジェクト
- 指定したグラフ シート、ダイアログ シート、またはワークシート上のすべての ChartObject オブジェクトのコレクション。
- Charts オブジェクト
- 指定されたブックまたは作業中のブックにあるすべてのグラフシートのコレクションです。