2015年3月31日火曜日

ブックを保存する

ブックを閉じずに名前を付けて保存するだけの場合は、WorkbookオブジェクトのSaveAs
メソッドを使用する :

Workbookオブジェクト.SaveAs Filename

以下に新規ブックを保存するサンプルコードを記す :

Sub SampleSaveAsWorkbook()
     Dim bk As Workbook
     Set
bk = Application.Workbooks.Add

     '
     ' <<新規ブックを更新する処理をここに記述>>
     '
     bk.SaveAs Filename:="D:\SampleBook.xlsx"
End Sub

ブックを閉じる

ブックを閉じる場合は、WorkbookオブジェクトのCloseメソッドを使用する :

Workbookオブジェクト.Close [SaveChanges], [Filename]

ブックの変更内容を保存して閉じたい場合はSaveChanges引数にTrueを、保存せずに
閉じたい場合はFalseを指定する。また、ブックに名前を付けて保存して閉じる場合は
SaveChanges 引数にTrueを指定し、且つ、Filename引数を設定しなければならない。

以下に新規ブックを保存して閉じるサンプルコードを記す :

Sub SampleCloseWorkbook()
     Dim bk As Workbook
     Set
bk = Application.Workbooks.Add

     '
     ' <<新規ブックを更新する処理をここに記述>>
     '
     bk.Close SaveChanges:=True, Filename:="D:\SampleBook.xlsx"
End Sub

CSVファイルを読み込む

CSVファイルを読み込む場合は、既存ブックを開く場合と同様に、Workbooksオブジェクト
Openメソッドを使用する(厳密さに欠けるが...) :

Set Workbook変数 = Workbooksオブジェクト.Open(Filename, _ 
                                                                               [Format], _
                                                                               [Delimiter])

ファイルの区切り文字を指定するFormat引数に設定する値は下記のいずれか :

1  :  タブ
2  :  カンマ(,)
3  :  スペース
4  :  セミコロン(;)
5  :  なし(なし、って何?)
6  :  ユーザーが独自の区切り文字を指定する場合

Format引数に6を指定した場合に限り、Delimiter引数を設定する必要がある。

カンマ区切りCSVを読み込むサンプルコードを以下に記す :

Sub SampleOpenCSV1()
     Dim bk As Workbook
     Set
bk = Application.Workbooks.Open(Filename:="D:\Sample1.csv", _
                                                             Format:=2)
End Sub


文字列"++"で区切られたCSVを読み込むサンプルコードは以下の通り :

Sub SampleOpenCSV2()
     Dim bk As Workbook
     Set
bk = Application.Workbooks.Open(Filename:="D:\Sample2.csv", _
                                                             Format:=6, _
                                                             Delimiter="++")
End Sub

2015年3月30日月曜日

既存ブックを開く

既に存在するブックを開くときは、WorkbooksオブジェクトのOpenメソッドを使用する。
Openメソッドの書式は下記の通り :

Set Workbook変数 = Workbooksオブジェクト.Open(Filename , _
                                                                              [ReadOnly], _
                                                                              [Password]) 

既存のブック D:\SampleBook.xlsx を開くサンプルコードは以下の通り :

Sub SampleOpenWorkbook1()
     Dim bk As Workbook
     Set
bk = Application.Workbooks.Open(Filename:="D:\SampleBook.xlsx")
End Sub


既存のブックを読み取り専用で開くサンプルコードは以下の通り :

Sub SampleOpenWorkbook2()
     Dim bk As Workbook
     Set
bk = Application.Workbooks.Open(Filename:="D:\SampleBook.xlsx", _
                                                             ReadOnly:=True)
End Sub


ブックがパスワードで保護されている場合のコードは以下の通り(パスワードは
「12345」とする) : 

Sub SampleOpenWorkbook3()
     Dim bk As Workbook
     Set
bk = Application.Workbooks.Open(Filename:="D:\SampleBook.xlsx", _
                                                             Password:="12345")
End Sub 


新規ブックの作成

新たにブックを作成する場合は、WorkbooksオブジェクトのAddメソッドを使用する。
Addメソッドの書式は下記の通り :

Set Workbook変数 = Workbooksオブジェクト.Add([Template])

ここでTemplate引数に指定できる値は、下記の通り(実は他にもあるがほとんど使わない
はずなので割愛する) :

XlWBATemplate.xlWBATWorksheet

以下に、新規ブックを作成するコードを記す :

Sub SampleCreateNewWorkbook1()
     Dim bkNew As Workbook
     Set bkNew = Application.Workbooks.Add
End Sub


上のプロシージャを実行すると「Bookn」(nは正の整数)という名前で、新たにブックが追加
される。これに対して、Template引数を指定した下記のコードを実行すると、「Sheetn
 (nは正の整数)という名前の新規ブックが追加される :

Sub SampleCreateNewWorkbook2()
     Dim bkNew As Workbook
     Set bkNew = _

     Application.Workbooks.Add(Template:=XlWBATemplate.xlWBATWorksheet)
End Sub