ページビューの合計

2017年5月22日月曜日

ExcelのデータをNotes文書にするVBA

皆様、こんにちは!!
先週末のテクてくLotus技術者夜会 ザ・大阪編、いかがでしたでしょうか。
私の発表はともかく、他の皆様の内容は非常に興味深いものばかりでした。

近々資料もアップロードされるかと思いますので、参加できなかった皆様もぜひご一読いただければと考えております。

さて今回は前回記載しましたユニバーサルテンプレート アクション編を次回にまわさせて頂き、テクてくにてI様が触れられていたExcel VBAを利用したNotesの運用にヒントを頂き、早速社内業務に適用してみましたので、そちらについて記載させて頂きます。

I様の事例では、ExcelシートにNotesアプリケーションのデータを呼び込むというものでした。
弊社では基幹システムからデータをExcelに呼び出し、CSV化してNotesにインポートするという業務が複数あり、都度colファイルを切り替えながらという手間がありました。

今回はExcelに呼び出したデータをVBAを利用し、Notesの新規文書として保存する手順を記載させて頂きます。
※データ項目数はかなり多いものですが、今回は割愛して紹介させて頂きますので、ご了承ください。

まず従来呼び出していたExcelファイルです。


A列から、部課コード・担当者コード・取引先コード・取引先支店コードの4項目がセットされています。

早速ですが、VBAのコードです。

-----------------------------------------------------------------------------------------
 Public Sub import_notesdb()

  Dim Session As Object
  Dim db As Object
  Dim doc As Object

  Set Session = CreateObject("Notes.Notessession")
  Set db = Session.GetDatabase("サーバー名", "DB名.nsf")
  Set doc = db.createdocument(db)

  doc.form = "フォーム名(別名)"
  doc.フィールド名1 = Range("A1").Value
  doc.フィールド名2= Range("B1").Value
  doc.フィールド名3 = Range("C1").Value
  doc.フィールド名4 = Range("D1").Value

  Call doc.Save(True, True)

 End Sub

-----------------------------------------------------------------------------------------

赤字の部分は貴社環境に合わせて変更してください。
特に難しいコードはひとつもありませんね。

Excelブックを保存し、「import_notesdb」を実行します。
Notesアプリケーションを開くと、インポートされていることがわかります。


文書を開くと、


指定したフィールドに値がセットされています。

とっても簡単ですね!!
今まで苦労していましたので、かなり便利になりました。
また副産物としてCSVデータをNotesに呼び出した場合、先頭の"0"が消えるという現象がありましたが、このVBAではこちらも回避できるようになりました。

あとは複数行のデータを繰り返すように組み替えれば完成です。

従来Notesのインポート操作を一般ユーザーに教えるのは少し難しいところがあったのですが、Excel VBAですと誤った操作をしてしまうことも回避できるため、こちらも大きな進歩になりました。

I様、重要なヒントありがとうございました!!


次回はユニバーサルテンプレートに戻る予定です。

2 件のコメント:

  1. アプローチは異なるのですが、以前にエクセルをノーツの『ビュー』で再現する、という試みに挑戦したことがあります: http://dotnsf.blog.jp/archives/1060332597.html

    返信削除
    返信
    1. これは・・・!!
      さらにスゴい技術ですね。

      つい先日、緊急でExcel⇒Notesの依頼があったのですが、これを知っていれば・・・。

      ぜひ引き続き、よろしくお願いします。

      削除