Attribute VB_Name = "Workbook1" '___________________________________________________________ 'sample-vbaxlwb1-1 version 1.1, Copyright (C) 2001 Tomizono 'sample-vbaxlwb1-1 comes with ABSOLUTELY NO WARRANTY. This is free software, 'and you are welcome to redistribute it under certain conditions. 'See http://www.gnu.org/copyleft/gpl.html#SEC3 for details. '___________________________________________________________ 'discribes howto treat MS Excel Workbook objects. 'this is a VBA module source for MS Excel. 'this version: http://www.geocities.com/tomizono/gpl/2001/sample-vbaxlwb1-1.1.1.bas 'lattest: http://www.geocities.com/tomizono/gpl/sample-vbaxlwb1-1.bas ' 'Further information is available at: 'http://www.geocities.com/tomizono/vba/workbook1.html '___________________________________________________________ 'sample-vbaxlwb1-1: discribes howto treat MS Excel Workbook objects. 'Copyright (C) 2001 Tomizono ' 'This program is free software; you can redistribute it and/or modify 'it under the terms of the GNU General Public License as published by 'the Free Software Foundation; either version 2 of the License, or '(at your option) any later version. ' 'This program is distributed in the hope that it will be useful, 'but WITHOUT ANY WARRANTY; without even the implied warranty of 'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 'GNU General Public License for more details. ' 'You should have received a copy of the GNU General Public License 'along with this program; if not, write to the Free Software 'Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA '___________________________________________________________ Option Explicit Sub Workbook1() ' 新規ワークブックを作成する。 Dim wb As Workbook Set wb = Workbooks.Add MsgBox wb.Name, vbOKOnly, wb.FullName End Sub Sub Workbook1B() ' 新規ワークブックを template から作成する。 Dim wb As Workbook Set wb = Workbooks.Add("C:\usr\VBA\temp.xls") MsgBox wb.Name, vbOKOnly, wb.FullName End Sub Sub Workbook2() ' すべてのワークブックを閉じる。 ' 保存ダイアログでユーザーがキャンセルボタンを押すと、エラーになって返ってくる。 Workbooks.Close End Sub Sub Workbook3() ' ワークブックを閉じる。 ' 保存ダイアログでユーザーがキャンセルボタンを押しても、エラーにならない。 ActiveWorkbook.Close End Sub Sub Workbook4() ' ワークブックを破棄する。 ActiveWorkbook.Close SaveChanges:=False End Sub Sub Workbook4B() ' ワークブックを保存して閉じる。 ActiveWorkbook.Close SaveChanges:=True, FileName:="C:\usr\VBA\temp.xls" End Sub Sub Workbook5() ' ワークブックを開く。 Dim wb As Workbook Set wb = Workbooks.Open("C:\usr\VBA\temp.xls") MsgBox wb.Name, vbOKOnly, wb.FullName End Sub Sub Workbook6() ' テキストファイルをワークブックとして開く。 ' 形式を指定しない場合、拡張子で判断される。csv ならカンマ区切り。デフォルトは、単一列への読み込み。 Workbooks.OpenText FileName:="C:\usr\VBA\temp.csv" End Sub Sub Workbook8() ' ワークブックを保存する。 ' 一度も保存していないブックも、現在の名称のままで、カレントディレクトリに保存する。 ActiveWorkbook.Save End Sub Sub Workbook9() ' ワークブックを保存する。 ' 一度も保存していないブックも、現在の名称のままで、カレントディレクトリに保存する。 ' パラメーターを省略すれば、SaveAs は Save と同じ動きをする。 ActiveWorkbook.SaveAs End Sub Sub Workbook10() ' ワークブックを保存する。 ' ファイル名等を指定して、保存する。 ActiveWorkbook.SaveAs FileName:="C:\usr\VBA\temp.xls" End Sub Sub Workbook11() ' ワークブックを保存する。 ' ファイル名等を指定して、複製を保存する。現在のブックに影響しない。 ' Saved プロパティも変化しない。 ActiveWorkbook.SaveCopyAs FileName:="C:\usr\VBA\temp.xls" End Sub Sub Workbook12() ' ワークブックの保存状態を知る。 If (ActiveWorkbook.Saved) Then MsgBox "このワークブックは、前回保存された後、何も変更されていません。", vbOKOnly, ActiveWorkbook.Name Else MsgBox "このワークブックには、保存されていないデータがあります。", vbOKOnly, ActiveWorkbook.Name End If End Sub Sub Workbook14() ' ワークブックを順次、切り替える。 Dim wb As Workbook For Each wb In Workbooks wb.Activate Application.Wait Now() + 1 / 24 / 3600 Next wb End Sub