だれかのなにかに役立てるウェブ制作者YoTaの趣味ブログ

Excel VBAで処理中に他のファイル(ブック)を開いて、操作する方法

Excel VBAで、プロシージャの処理中に、他のファイル(ブック)を開いて、操作する場合は、下記コードのように記述します。

ソースコード

Sub test()

  Dim openBookDir,closeFileDir As String

  openBookDir = "C:\test.xlsx"

  '他のブックを開く
  Workbooks.Open openBookDir

  'ブック・シートを選択して、自由に操作可能。

  'ブックを閉じる(変更の保存を確認するメッセージを非表示)
  closeFileDir = Right(openBookDir, InStr(StrReverse(openBookDir), "\") - 1)
  Application.DisplayAlerts = False
  Workbooks(closeFileDir).Close
  Application.DisplayAlerts = True

End Sub

ブックを開いたあとは、ブック・シートなどを選択することで、開いたブックからデータを読み取ったり、データを書き込んだりすることができます。多くのエクセルデータを入出力する必要がある際、とても重宝します。

ただ、上記コードは自分で使う用ですので簡略化していますが、他に人が使うVBAコードを作成するのであれば、ファイルを開く際、ファイルの有無確認・同じ名前のファイルを開いていないかどうかなど、エラーチェックする記述をつけたほうが望ましいです。

▼こちらのサイト様で、とても詳しく書かれています。
http://officetanaka.net/excel/vba/file/file01.htm

ページ上部に戻る