VBAトレーニング-便利帳01-[ブック操作関係のまとめ]

VBAトレーニング-便利帳01- [ブック操作関係のまとめ]

 エクセルブックの操作に関して、よく使用する記述をまとめてみました。(これらは「VBAトレーニング」の中でも紹介しています)

関連記事

このページで学習出来る事  VBAトレーニング最初となる今回は、Excelシートの使い方について説明をしていきたいと思います。  ただ単純にシートを切り替えたり、削除したりするコードを覚えるのではなくブックやシートオブジェクトを見[…]

VBAトレーニング-01

目次

・エクセルを表示せずに(非表示で)ブックを開く方法

・新規エクセルファイルの作成

・エクセルファイルの保存方法


エクセルを表示せずに(非表示で)ブックを開く方法

Sub main()
    Dim objXlsApp As New Application
    Dim objWorkbook As Workbook

    Set objWorkbook = objXlsApp.Workbooks.Open("C:\sample.xlsx")

    '--------------------------
    'シートの値を取得するなどの処理をする。
    '--------------------------

    objWorkbook.Close SaveChanges:=False
End Sub

コードの解説

‘エクセルアプリケーションを操作するオブジェクトを読み込んでいます。
Dim objXlsApp As New Application

‘エクセルブックを入れる変数宣言をしています。
Dim objWorkbook As Workbook

‘エクセルアプリケーションから指定したエクセルファイルを開いています。
‘この操作で[C:\sample.xlsx]の内容が[objWorkbook]に入っています。
Set objWorkbook = objXlsApp.Workbooks.Open(“C:\sample.xlsx”)

‘開いたファイルを保存せずに閉じています。
objWorkbook.Close SaveChanges:=False

 この様にエクセルアプリケーションを事前に宣言することで、エクセルファイルを表示せずに開くことが出来ます。
 ただ「バックグラウンド」では開いていますので、ブックを閉じる前にVBAがエラーなどで終了してしまうと、タスクマネージャーなどで消してあげる必要があります。

  


新規エクセルファイルの作成

Sub main()
    Dim objXlsApp As New Application
    Dim objWorkbook As Workbook

    Set objWorkbook = objXlsApp.Workbooks.Add

    objWorkbook.SaveAs ("C:\sample.xlsx")
    objWorkbook.Close
End Sub

コードの解説

‘エクセルアプリケーションを操作するオブジェクトを読み込んでいます。
Dim objXlsApp As New Application

‘エクセルブックを入れる変数宣言をしています。
Dim objWorkbook As Workbook

‘[objXlsApp.Workbooks.Add]で新規ブックを作成し、その情報を[objWorkbook]に入れています。
Set objWorkbook = objXlsApp.Workbooks.Add

‘名前を付けてエクセルファイルを保存しています。
objWorkbook.SaveAs (“C:\sample.xlsx”)
objWorkbook.Close

  


エクセルファイルの保存方法

'上書き保存
Sub main()
    Dim objXlsApp As New Application
    Dim objWorkbook As Workbook

    Set objWorkbook = objXlsApp.Workbooks.Open("C:\sample.xlsx")
    objWorkbook.Close SaveChanges:=True
End Sub
'保存せずに閉じる
Sub main()
    Dim objXlsApp As New Application
    Dim objWorkbook As Workbook

    Set objWorkbook = objXlsApp.Workbooks.Open("C:\sample.xlsx")
    objWorkbook.Close SaveChanges:=False
End Sub
'名前を付けて保存
Sub main()
    Dim objXlsApp As New Application
    Dim objWorkbook As Workbook

    Set objWorkbook = objXlsApp.Workbooks.Open("C:\sample.xlsx")
    objWorkbook.SaveAs ("C:\sample2.xlsx")
    objWorkbook.Close
End Sub

コードの解説

‘上書き保存
‘開いているブックオブジェクトを上書き保存します。
Set objWorkbook = objXlsApp.Workbooks.Open(“C:\sample.xlsx”)
objWorkbook.Close SaveChanges:=True

‘保存せずに閉じる
‘開いているブックオブジェクトを保存せずに閉じます。
Set objWorkbook = objXlsApp.Workbooks.Open(“C:\sample.xlsx”)
objWorkbook.Close SaveChanges:=False

‘名前を付けて保存保存せずに閉じる
‘開いているブックオブジェクトを名前を付けて保存します。
Set objWorkbook = objXlsApp.Workbooks.Open(“C:\sample.xlsx”)
objWorkbook.SaveAs (“C:\sample2.xlsx”)
objWorkbook.Close

この様な方法で、名前を付けて保存する方法もあります。
objWorkbook.Close SaveChanges:=True, Filename:=”C:\sample.xlsx”

  

次回-関連記事

 関数の操作に関して、よく使用する記述をまとめてみました。(これらは「VBAトレーニング」の中でも紹介しています) [sitecard subtitle=関連記事 url=https://www.taru-net.jp/tec/excel[…]

VBAトレーニング-便利帳02