ページ

2017年6月19日月曜日

ExcelのデータをNotes文書にするVBAのサンプルファイル

みなさま、こんにちは!
アリンコに要注意な島からの情報発信です(汗

先週のテクてく、いかがでしたか?
大阪でのPVに参加したかったのですが、本業の会議と重なり、どうしても参加できませんでした。せめてリモートで画面だけとパソコンを持ち込んだのですが、それもできず。
資料のみ入手して、我慢しております。
大阪のPVは継続頂けるようですので、今回ご参加できなかった皆様も、ぜひ来月はご一緒しましょう!!

さて先月、標題記事を記載させて頂きましたが、本日は配布できそうな状態のExcelファイル(.xlsm)が完成しましたので、そちらの紹介とサンプルダウンロードへのリンクを掲載させて頂きます。

早速ですが、サンプルのダウンロードはこちらよりお願いします。

中身ですが、シートは全くのブランクになります。

標準モジュールとして以下のふたつを含んでおります。

●ExcelのSheet1の1行目の値をNotesの指定データベースの指定フォームにインポートした新規文書を保存する。最後にSheet1の1行目を削除する。


Private Sub import_notesdb()

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

Set Session = CreateObject("Notes.Notessession")
Set db = Session.GetDatabase("サーバー名", "データベース名")
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
doc.フィールド名5 = Range("E1").Value
doc.フィールド名6 = Range("F1").Value
doc.フィールド名7 = Range("G1").Value
doc.フィールド名8 = Range("H1").Value
doc.フィールド名9 = Range("I1").Value
doc.フィールド名10 = Range("J1").Value
doc.フィールド名11 = Range("K1").Value
doc.フィールド名12 = Range("L1").Value
doc.フィールド名13 = Range("M1").Value
doc.フィールド名14 = Range("N1").Value
doc.フィールド名15 = Range("O1").Value
doc.フィールド名16 = Range("P1").Value
doc.フィールド名17 = Range("Q1").Value
doc.フィールド名18 = Range("R1").Value
doc.フィールド名19 = Range("S1").Value
doc.フィールド名20 = Range("T1").Value
doc.フィールド名21 = Range("U1").Value

Call doc.Save(True, True)

Sheets("Sheet1").Select
Rows("1:1").Select
Selection.Delete Shift:=xlUp

End Sub


赤字部分は貴社環境に合わせて変更してください。
項目は多めに記載していますが、必要に応じて増減させてください。

前回の記事ではPublic Subとしていましたが、実際のインポートは次に作成する繰り返しの処理で行いますので、Private Subに変更しています。


●Sheet1のセルA1が"空白"になるまで、処理を繰り返す。


Sub インポート()
    Do Until Sheets("Sheet1").Range("A1") = ""
        Call import_notesdb
    Loop
End Sub


もし1列目にタイトル行がある場合は、列番号に関わる部分を"2"などに修正してください。


サンプルの紹介は以上になります。

先日も書きましたが、弊社では基幹システムのデータをExcelやCSVに抽出し、Notesに取り込む作業がいくつかありますが、現在はすべてVBAに切り替えました。

今後は、ユーザーが申請するワークフローで、フィールド数の多いものなどについて、エクセルでの入力フォームを配布し、ユーザー各自がVBAを利用してNotes文書に登録できるような運用にも利用予定です。


ぜひお試しください!!


0 件のコメント:

コメントを投稿