LoginSignup
1
2

More than 5 years have passed since last update.

ノーツ(LotusScipt)で、Excelブックを開いて操作する

Last updated at Posted at 2015-12-08

IBM ロータスノーツをまだまだ使い続けている企業等があるかと思います(私の会社もそのひとつ)。
Tips のひとつとして、ノーツから任意のエクセルブックを開いてセルの内容を編集するスクリプトを記述してみます。

エクセルブックを開くだけであれば、スクリプトのShell関数で、ブック(ファイル)のパスを引数指定してexcel.exeを起動する方法もあります。

スクリプト

Dim path As String
path = "C:\Users\....\SAMPLE.XLSX"  'エクセルブック(ファイル)のパス

' Excelアプリケーションオブジェクトを取得する
Dim app As Variant
Set app = CreateObject("Excel.Application")
If app Is Nothing Then
 ' 取得できなかった場合のエラー処理(Exit Sub など)
End If

' ブック(ファイル)を開く
Dim bk As Variant
Set bk = app.Workbooks.Open(path)

' 操作したいシートを得る
Dim st As Variant
Set st = bk.ActiveSheet 'ここでは既定でアクティブ状態になったシート

' 操作
st.Range("A1").Value = "どうかな?"
st.Range("B1").Value = "ここかな?"

' ブックを保存する
bk.SaveAs path
bk.Close

' Excelアプリケーションオブジェクトを破棄する
' これをしないと、excel.exeがゾンビ的に残ってしまう
app.Quit
Set app = nothing

説明

前提として、Excelマクロでブックやシートを操作出来るまでの知識が必要です。

VBA での変数型 Excel.ApplicationExcel.WorkbookExcel.Worksheet、Object型その他は、LotusScript上で Variant型 として定義します(が、Object型とVariant型は、必ずしも機能的にイコールではないので注意)。

CreateObject 関数で、Excel.Application のOLE/COMオブジェクトを生成しています。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2