LotusNotesな日々IBM社のLotusNotesに関係する何かを日々語ってるようなきがしないでもないブログです。 

スポンサーサイト

   ↑  --/--/-- (--)  カテゴリー: スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

(記事編集) http://mesosune.blog123.fc2.com/?overture" target="_new

--/--/-- | Comment (-) | HOME | ↑ ページ先頭へ |

LotusScriptでエクセルに書き出すときのちょいテク

   ↑  2008/03/09 (日)  カテゴリー: Notes(LotusScript)
シートを分けてエクセル出力したい!という場合のちょっとしたテクニック。
基本的な書出し方がわかっている人向けです。

当然のようにOLEオブジェクトをがんがん使います。
NotesUI上で実行するとおもってください。

LotusScript内では「:=」が使用できないため、
最初からシートをこの後ろに…とかできないので
まずはシートを一個だけ残してシートを全て削除した後に順番にシートの作成を行います。
そして一番最後にシートの順番を逆に並び替えます。

'-------------------
' ※※※ 省略 ※※※(ドキュメントの宣言とか)
'-------------------

Dim coll as NotesDocumentCollection
Dim doc as NotesDocument
Dim countLng as Long , errStr as String

' EXCEL用の宣言
Dim xlApp As Variant , xlbook As Variant , xlsheet As Variant
Dim sheetcountLng as Long , sheetStr() as String

'-------------------
' ※※※ 省略 ※※※(ドキュメントの代入とか)
'-------------------

On Error Goto ErrorHandler

' EXCELの起動
Set xlApp = CreateObject("Excel.Application") ' Excel OLE起動
xlApp.Visible = False 'ステルスON
Set xlbook = xlApp.Workbooks.Add
' ひとつだけシートを残し、以外は削除する
Set xlsheet = xlbook.Worksheets(1)
For countLng = xlBook.Worksheets.Count To 2 Step -1
xlBook.Worksheets( countLng ).Delete
Next countLng

xlApp.ScreenUpdating = False ' 画面自動更新OFF

countLng = 0
' 文書があるだけ繰り返す
Do Until( doc is nothing )

countLng = countLng + 1

If countLng = 1 Then
Set xlSheet = xlBook.Worksheets(1)
Else
Set xlSheet = xlBook.Worksheets.Add
End If

xlsheet.Activate

'-------------------
' ※※※ 省略 ※※※(シートに値を入れる処理とか)
'-------------------

doc = coll.GetNextDocument( doc )
Loop

'シートの並び順を逆にする
sheetcountLng = xlbook.Worksheets.Count
Redim sheetStr( sheetcountLng -1 )
For countLng = 1 To sheetcountLng
sheetStr( countLng - 1 ) = xlbook.Worksheets( countLng ).Name
Next
For countLng = 0 To Ubound( sheetStr )
xlbook.Worksheets( sheetStr( countLng ) ).Move , xlbook.Worksheets(sheetStr( Ubound(sheetStr) ))
Next

' エクセル表示
xlApp.Visible = True
xlApp.ScreenUpdating = True

Exit sub

EndProc:
If Not xlApp Is Nothing Then
xlApp.quit
Set xlApp = Nothing
End If
Exit Sub

ErrorHandler:
errStr = "エクセル書出し処理中にエラーが発生しました"+Chr(10)+_
"DB名と以下のエラーコードを管理者(または設計者)にお知らせください。"+Chr(10)+Chr(10)+_
" ( エラーコード > " +_
+ Cstr( Erl ) + " - " + Cstr( Err ) + " = "+ Error+ " ) "
Messagebox errStr , 0+16 ,"エクセル書出し処理"
Resume EndProc
End Sub
スポンサーサイト

(記事編集) http://mesosune.blog123.fc2.com/blog-entry-63.html

2008/03/09 | Comment (0) | Trackback (0) | HOME | ↑ ページ先頭へ |

Comment

コメントを投稿する 記事: LotusScriptでエクセルに書き出すときのちょいテク

お気軽にコメントをぞうぞ。
非公開 (管理人のみ閲覧可能なコメント) にしたい場合には、ロック にチェックを入れてください。

  任意 : 後から修正や削除ができます。
  非公開コメントとして投稿する。(管理人にのみ公開)
 

Trackback

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。