2008.07.23

ブックを開かずにセルのデータを読み込む

別のブックのセルの値を取得するExcelマクロを作成することがあったので、
紹介します。

○ブックを開かずにセルの値を読み込む

Sub ReadData()
  MsgBox ExecuteExcel4Macro("'C:\[Sample.xls]Sheet1'!R1C1")
End Sub
上のプログラムではC:\Sample.xlsのSheet1のセルA1のデータを読み込みます。


○ブックを開かずにセルに値を書き込む

Sub WriteData()
  Dim i1 As Integer
  For i1 = 1 To 10
    Cells(i1, 1) = ExecuteExcel4Macro("'C:\[Sample.xls]Sheet1'!R" & i1 & "C1")
  Next
End Sub
上のプログラムではC:\Sample.xlsのSheet1のセルA1~A10の範囲の値を
アクティブシートのセルA1~A10の範囲に書き込みます。


値を読み込むために指定したブックやシート(今回の場合はC:\Sample.xlsのSheet1)が存在しない場合はエラーになるの注意してください。

また、このマクロではセルの指定にR1C1形式を使用していますが、「R」はRow(行)
「C」はColumn(列)を指し、行列ともに数字で表示されます。
次の行に移動していくとR1,R2,R3,・・・、次の列に移動していくとA1,A2,A3,・・・というふうに指定していきます。


コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
takehara