Workbooks.Openオープン メソッド

ブックを開きます。同名ファイルや存在しないファイルを指定するとエラーが発生します。

構文
  1. 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)省略可
Format6を設定しているとき、区切り文字を指定します。
Editable (Variant省略可
Notify (Variant省略可
Converter (Variant省略可
AddToMru (Boolean = False)省略可
最近使用したファイルの一覧にブックを追加するにはTrueを指定します。既定値はFalseです。
Local (Variant省略可
CorruptLoad(XlCorruptLoad省略可
戻り値
開いたブックを表すWorkbook オブジェクト

Workbooks オブジェクトを返すメソッド・プロパティ

Application.Workbooks プロパティ
開いているすべてのワークブックを表すWorkbooks オブジェクトを返します。

定数一覧

XlPlatform 列挙

名前説明
xlMacintosh1Macintosh
xlWindows2Microsoft Windows
xlMSDOS3MS-DOS
UWSC
CONST xlMacintosh = 1
CONST xlWindows = 2
CONST xlMSDOS = 3

XlCorruptLoad 列挙

名前説明
xlNormalLoad0ブックを正常に開きます。
xlRepairFile1ブックを修復モードで開きます。
xlExtractData2ブックをデータの抽出モードで開きます。
UWSC
CONST xlNormalLoad = 0
CONST xlRepairFile = 1
CONST xlExtractData = 2

ブックを開く

指定したファイルを開く

D:\Desktop\Book1.xlsxを開く。

UWSC
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が開かれることになります。

UWSC
PRINT Excel.Application.DefaultFilePath
Excel.Workbooks.Open("Book1.xlsx")
結果
プレーンテキスト
D:\Documents

実行しているUWSファイルを基準とした相対パスを指定する場合は、以下のようにパスの前にGET_CUR_DIRをつけて実行します。

UWSC
Excel.Workbooks.Open(GET_CUR_DIR + "\Book1")

拡張子を省略すると以下のリストで先に見つかったファイルが優先して開きます。どれも見つからなければエラーが発生します。

Book1.xlsxBook1.csvがある場合、より上にあるBook1.xlsxが開きます。

  1. xlsx
  2. xlsm
  3. xlsb
  4. xltx
  5. xls
  6. slk
  7. csv
  8. txt
  9. dif

読み取り専用で開く

UWSC
Excel.Workbooks.Open(FileName:="D:\Desktop\Book1.xlsx", ReadOnly:=TRUE)

外部参照のリンクを更新しないで開く

UWSC
Excel.Workbooks.Open(FileName:="D:\Desktop\Book1.xlsx", UpdateLinks:=FALSE)

パスワード保護されたブックを開く

パスワード保護されたブックを開くにはPasswordにパスワードを指定します。

UWSC
Excel.Workbooks.Open(FileName:="D:\Desktop\Book1.xlsx", Password:="1234")

Passwordを指定しなかった場合、入力を求めるダイアログが表示されます。

パスワードが間違っていた場合、COMエラーが発生します。

パスワードをつけて保存するにはWorkbook.SaveAs メソッドPasswordを指定します。

ファイルの書き込みパスワード

プログラム実行例

表の最終データの下のセルを選択

ダウンロードボタン
UWSC
使用関数

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

ダウンロードボタン
UWSC
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
使用関数

コロナのグラフ

UWSC
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 オブジェクト
指定されたブックまたは作業中のブックにあるすべてのグラフシートのコレクションです。