他のワークブックのデータの読み込みと設定

他のワークブックに、読み込みたいデータが入っていることもあります。読み込みたいデータが入っているワークブックの方は、VBAが設定されてなければ、拡張子は「xlsx」で構いません。VBAが設定されていれば「xlsm」となります。マクロの実行前に、利用するワークブックはすべて[Officeメニュー]-[開く]でメモリーに読み込んでおいてください(*)。マクロの入っているワークブックを表示させて、マクロを実行します。

*)マクロの書きこまれているワークブックからVBAでデータの入っているワークブックを自動的に読み込む「Workbooks.Open」という命令もあります。この方法は今後順を追って説明していきたいと思います。

[リスト11]acc01_book(セル操作編例題.xlsm と 他のBook.xlsx)

Sub acc01_book()
    Windows("他のBook.xlsx").Activate        '(1)
    Sheets("Sheet1").Select
    a = Cells(2, 2)                          '(2)

    Windows("セル操作編例題.xlsm").Activate  '(3)
    Sheets("Sheet1").Select
    Cells(10, 2) = a                         '(4)

    Windows("他のBook.xlsx").Activate        '(5)
    Sheets("Sheet1").Select
    Cells(20, 2) = a * 10                    '(6)

End Sub

(1)ワークブックを参照するために、「Windowsプロパティ」というものがあります。「Windows("参照したいワークブック名").Activate」で今から作業するワークブックを指定します。「.Activate」は指定したワークブックを選択するという意味になります。他に「.Close」(ワークシートを閉じる)の指定などもあります。

(2)で2行B列のデータを変数aに読み込みます。

(3)から(4)でこのデータをマクロの設定のあるワークブックの10行B列に設定します。

(5)(6)はデータを読み込んだワークブックの20行B列に変数を10倍して設定しています。
(1)の書き方で各ワークブックを指定します。シートやセルの指定方法については、外部ワークブックを使った場合にも、これまでと変わるところはありません。

図8:他のワークブックのデータの読み込み画面

シートの指定とセルの指定はまとめて指定することもできます。

[リスト12]acc02_book(セル操作編例題.xlsm と 他のBook.xlsx)

Sub acc02_book()
    Windows("他のBook.xlsx").Activate
    a = Sheets("Sheet1").Cells(2, 2)       '(1)

    Windows("セル操作編例題.xlsm").Activate
    Sheets("Sheet1").Cells(10, 2) = a

    Windows("他のBook.xlsx").Activate
    Sheets("Sheet1").Cells(20, 2) = a * 10

End Sub

(1)のように書きます。ここではSelectメソッドがないので、指定したシートが現在表示されているシートでないときは、画面にも表示されず、データの読み込みだけが行われます。

セルの操作

次に、セルに値を設定したり、逆にセルの値を変数に読み込んだりする方法を見ていきます。

[リスト13]cell_set(セル操作編例題.xlsm)

Sub cell_set()
    Sheets("Sheet1").Select
    a = Cells(1, 1)           '(1)
    b = Cells(2, 1)           '(2)
    Cells(3, 1) = "上記の加算の答えは"   '(3)
    Cells(4, 1) = a + b       '(4)
End Sub

読み込みや設定は、「=」演算子をはさんで行います。右に書かれた式の答えを、左に指定した変数やCellsプロパティなどに設定します。(1)(2)は読み込みで、a、bの変数に値を読み込んでいます。(3)は3行A列に文字列を設定しています。(4)は読み込んだ変数a、bの内容を加算して、4行A列に設定しています。

図9-1 マクロ実行前に設定

図9-2マクロ実行結果