現在notes7で開発を行っている(初心者)なのですが
ビュー内の選択している文書からデータを取ってきて
読み込んだexcelファイルに書き足していきたいのですが、
任意のexcelを開くところまではネットを参考にして出来たのですが
詳細を理解していないため、そのファイルにデータを書き足していくことが出来ません。アドバイスをお願い致します。
現在作ってあるプログラムが以下です。
' 既存のEXCELワークブックを開く
Dim xlApp As Variant ' Excelオブジェクト
' マイドキュメントの指定ファイルを開く
Dim wsh As Variant, fso As Variant
Dim FilePath As String, FileName As String
Set wsh = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
FilePath = wsh.SpecialFolders("MyDocuments")
FileName = FilePath & "\sample.xls"
If Not fso.FileExists(FileName) Then
Msgbox "ファイルがありません。" & Chr(13) & FileName, 16
Exit Sub
End If
Set xlApp = CreateObject("Excel.Application") ' Excel OLE起動
xlApp.Workbooks.Open FileName
xlApp.Visible = True
これで、ファイルは開けます。ちなみにビュー内の選択文書の取り込みは出来てます。後は、そのデータをエクセルに書き出すだけなのですが
そこが解りません。
それと、現在マイドキュメント内のファイルを読み込んでますが
同じデータを共有リソースの中に保存してあるので、そっちから開きたいのですが、パスをどのように設定すればいいのか解りません。
すみませんが、アドバイスをお願い致します。
No.1ベストアンサー
- 回答日時:
ひとまず、書き出しの方から回答いたします。
エクセルファイルの取得まではできているようですので、今後は「シートオブジェクトの取得」->「セルを指定して処理」の流れでプログラムを作成すればよいと思います。
例えば、作成済みのプログラムの次に以下のコードを追記すれば、Excelに書き出しができると思います。
Dim xlWorksheet As Variant'エクセル・シート
'シート名を指定してシートオブジェクトを取得
Set xlWorkSheet = xlApp.WorkSheets( "Sheet1" )
'セルの1行1列目に「あああああ」という文字をセット
xlWorksheet.cells(1,1).Value = "あああああ"
既に文書の取り込みができているとのことですので、例えば文書オブジェクトがdocだとしたら、以下のコードで実現できるのではないでしょうか。
'文書上のxxxxxフィールドの値を、Excelの1行1列目にセット
xlWorksheet.cells(1,1).Value = doc.GetItemValue( "xxxxx")(0)
蛇足ですが、サイズ幅の変更のような処理も可能です。(マクロをNotes上から実行させるイメージです)
xlWorksheet.cells(1,1).ColumnWidth = 4.13
No.3
- 回答日時:
共有リソースはそちらをさしていたのですね、了解いたしました。
ただし、そうなると、申し訳ありませんが、あまり期待にそえる回答ができなそうです。
共有リソースは、例えば複数のフォームで同じロゴの画像イメージを使いたい場合等に、共有リソースにロゴイメージを1つだけ登録し、各フォームでは共有リソースを参照するという用途に利用いたします。(メンテナンス性とディスクサイズの削減)
また、共有リソースへのパスの指定方法は、申し訳ありませんがちょっと思いつきません。(WebDAVの機能を利用すればできるかもしれませんが、各クライアントに設定が必要になることと、共有リソースは設計要素のため、編集には設計者権限以上が必要となってしまうことから現実的ではないと思います)
どのような要件から、Notes DB上にExcelファイルを共有し、そちらに直接書き込みをしたいのか、ということにもよりますが、対応としては以下の方法が考えられるかと思います。
1. Excelファイルについては、ファイルサーバーで共有する
2. Excelファイルは特定のNotes文書に添付して管理し、書き出し時には一旦ダウンロードして添付しなおすという運用にする
3. (Notes DB内の情報だけでExcelファイルが作成できる場合、)既存のファイルに書き出すのではなく、新規にExcelファイルを作成するロジックを組む
gexさん
回答ありがとうございました!!
無事に、ファイル読み込み→編集→出力 を行うことができました!
本当に助かりました!
ありがとうございます。
ファイルの保持についてですが、
ご指摘のとおり共有フォルダにファイルを保存することにします!
丁寧な説明、有難うございました!
No.2
- 回答日時:
続いて、パスの指定方法について。
「共有リソース」といっているのは、エクスプローラーでマイコンピューターの直下にある「共有ドキュメント」(私の環境はWindows XPです)のことでしょうか?
それであれば、以下のように絶対パスを指定するのもありかもしれません。
FileName = "C:\Documents and Settings\All Users\Documents\sample.xls"
また、頻繁に更新ファイル先を変える場合には、以下のように都度Fileパスとシート名をセットさせるのも手かもしれません。
Dim filenames As Variant'ファイルパス&ファイル名
Dim sheetName As String'シート名
Dim objXL As Variant'エクセル・ファイル
Dim xlWorksheet As Variant'エクセル・シート
Dim ws As New NotesUIWorkspace
'ファイルの指定
filenames = ws.OpenFileDialog( False, "上書きするファイルを選択してください",, )
If Not( Isarray( filenames ) ) Then
Msgbox "処理を終了します"
Exit Sub
End If
'シート名の指定
sheetName = Inputbox$("読み込みを実施するシート名を入力ください")
'エクセルファイルの読み込み処理
Set objXL = getObject( filenames(0) )
'シートの読み込み処理
Set xlWorkSheet = objXL.WorkSheets( sheetName )
早速の回答ありがとうございます!
とても丁寧な説明で助かります^^
早速明日試してみたいと思います!
共有リソースの話なのですが、マイドキュメント直下の共有フォルダのことではなく、NotesDB内に存在する共有リソースというものです。
Notes Designerで、作成中のDBの項目画面(ページやフォームなどが表示されているところ)に、共有リソース→(画像 or ファイル etc..)
と設定できる箇所があり、共有リソースに1回データを取り込むと
DB内のいたるところに活用でき、例えば画像ファイルを共有リソースに取り込んで、ページの2箇所にその画像を挿入したとします。
画像自体を修正し更新すると、ページ内に挿入されている画像も全て自動的に更新されるというものです。
今作っているDBはローカルで作っていますが、いずれサーバーにUPするので、マイドキュメントのファイルを参照している現在の形ではなく
DB自体にファイルを保存させ、マイドキュメントにファイルを保持していなくてもデータの出力が行えるようにしたいと考えています。
てっきり、共有リソースというのが,DBが保持するデータの集まりなのかと思っていました。
方法は何でもいいのですが、上記に書いたように、DB自体に元となるEXCELファイルを保持させ
それを参照してきて、データを追加していき、ファイルを出力する。ということがやりたいので、そのためのEXCELファイルの保持方法、参照方法がもし解れば教えて頂けると嬉しいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
notesDBをExcelに出力したい
グループウェア
-
NotesのビューをEXCELシートに展開したい
グループウェア
-
【ノーツ】添付ファイル保存【ver6.5】
Yahoo!メール
-
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでセルに入力したパ...
-
excelに貼り付けた数値が勝手に...
-
Teraマクロで日付ディレクトリ...
-
VLOOKUP関数とネットワークに置...
-
excel INDIRECT 他ファイル参照
-
【マクロ】2回実行したら、エ...
-
パス名を参照するコードのファ...
-
CSVで文字化けしてしまうのを直...
-
EXCELのVBAで画像を選んだ順に...
-
ローマ字→カタカナへ変換(エク...
-
マクロ 実行ボタンを押さずに...
-
Excel:コマンドボタンの移動
-
EXCELのセルへ、デジタル時計を...
-
スクロールしてもボタンを常に...
-
エラーになってないのにVBA...
-
Excelを開いた時に表示さ...
-
コマンドボタンを押すたびに大...
-
ワードからエクセルへ貼り付け...
-
エクセルでコマンドボタンを押...
-
複数ファイルにある特定のシー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでセルに入力したパ...
-
excelに貼り付けた数値が勝手に...
-
EXCELのVBAで画像を選んだ順に...
-
Teraマクロで日付ディレクトリ...
-
ハイパーリンクで前回値をひき...
-
エディタで効率的な切り出し方法
-
ファイルを並び替えるときの「...
-
CSVで文字化けしてしまうのを直...
-
excel INDIRECT 他ファイル参照
-
VLOOKUP関数とネットワークに置...
-
Excelvbaで同一フォルダー内の...
-
エクセルVBA+ADOで特定のCSVフ...
-
エクセル 一括リンクの解除
-
エクセルVBAで指定フォルダ内の...
-
=CELL("filename")で取得したフ...
-
【マクロ】2回実行したら、エ...
-
CDBurnerXP「ファイル名が長す...
-
EXCEL VBA ー 同一フォルダ内の...
-
複数のcsvファイルの結合
-
エクセルからスキャナVBAで連動...
おすすめ情報