本記事ではVBAでのワークブックを「開く・閉じる」「新規作成」「保存する」といったワークブックの操作について簡単に解説していきます。
VBAでツールを作る際に頻繁に使うと思うので、ぜひ覚えていってください。
ワークブックを開く
エクセルファイルを開く場合は下の一文で済みます。
※今回は『デスクトップにあるsample.xlsというファイル』を開きます。
1 2 3 4 5 6 |
Sub sample1() ' --- デスクトップにある「sample.xlsx」ファイルを開く Workbooks.Open "C:\Users\username\Desktop\sample.xls" End Sub |
また、開いたエクセルファイルを操作する時には”変数に代入する”と良いです。
1 2 3 4 5 6 7 8 9 10 |
Sub sample2() Dim wb As Workbook ' --- 「sample.xlsx」ファイルを開いて変数に代入 Set wb = Workbooks.Open("C:\Users\murakamih\Desktop\sample.xls") Debug.Print wb.Sheets("sheet1").Range("A1").Value End Sub |
「Workbooks.Open」の特性で”開いたファイルが表示される”があります。
なので、よく『ActiveWorkbook』で直近で開いたファイル(現在利用中のワークブック)を操作する人がいます。
たしかに、わざわざ変数を宣言して、代入する手間がなくなって効率的かもしれません。
しかし、この記述の仕方だと複数のワークブックを操作するときに面倒なことになったりします。
例えば、複数のワークブックの操作するコードを書いているときには「このワークブックを操作したいけど、今のアクティブワークブックはコレであっているか?」といちいち気にしなければならなかったりします。
なので、できれば、上のコードのように開いたファイルを変数に代入して、開いたファイルを的確に操作できるようにしたほうがいいと考えています。
ワークブックを閉じる
次に開いているワークブックを閉じる方法です。
その記述は下の4行目の一文になります。
※下では現在開いている「sample.xls」を閉じるコードです。
1 2 3 4 5 6 7 8 9 |
Sub sample3() ' ---「sample.xls」を閉じる Workbooks("sample.xls").Close ' --- おまけ:現在開いているファイルを閉じる 'ActiveWorkbook.Close End Sub |
一応、7行目にアクティブワークブックを閉じるコードも書いています。
ワークブックの新規作成
次に新しくワークブックを作成する方法です。
その記述は下の6行目の一文になります。
1 2 3 4 5 6 7 8 9 10 |
Sub sample4() Dim wb As Workbook ' --- ワークブックを新規作成 Set wb = Workbooks.Add Debug.Print wb.Name '"Book1"が出力される End Sub |
ちなみに新しく追加したワークブックは”Book1”が名前に割り当てられます。
ワークブックを保存する
ここではワークブックの保存の仕方についてになります。
まず、現在表示しているワークブックの「上書き保存」は『Save』メソッドを使った下の一文になります。
1 2 3 4 5 |
Sub sample5() ActiveWorkbook.Save End Sub |
一度も保存されていないブックの場合、作成時に自動でファイル名がつけられ保存されます。
そして、『保存の際に名前を付けて上書き保存』したい場合は『SaveAs』メソッドを使います。
1 2 3 4 5 |
Sub sample5() ActiveWorkbook.SaveAs ("C:\Users\username\Desktop\sample.xls") End Sub |
また、『ブックをコピーし名前を付けて保存』する場合は『SaveCopyAs』メソッドを使います。
1 2 3 4 5 |
Sub sample6() ActiveWorkbook.SaveCopyAs ("C:\Users\username\Desktop\sample.xlsx") End Sub |
1位 | 2位 | 3位 |
---|---|---|
Excel VBA 脱初心者のための集中講座 | パーフェクトExcel VBA | ExcelVBA 実戦のための技術 |
初心者~中級者 | 中級者 | 初心者~中級者 |
【初心者が手に取るべき参考書】 ・「書籍+動画」で圧倒的に理解しやすい入門書になっている。 ・丁寧で詳しい解説でボリューム感がある。 | 【より深い理解をしたい方にお勧めな参考書】 ・テーマに対して丁寧な解説・適度な深さで解説されている。 ・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。 | 【入門書と一緒に買うべき参考書】 ・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。 ・実践的で効果的なコードの書き方が理解できる。 |
【読んでみた一言】 正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。 | 【読んでみた一言】 深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。 | 【読んでみた一言】 基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。 |
スポンサーリンク