• ベストアンサー

他のDBからエクセルへデータを渡す

現在ロータスノーツ(R4.6)のDBからエクセル(95)へファイルを作る作業をしております。 でエクセルからノーツへの取得はできました。 例:doc.MCode = .Cells( i , MCode ).Value'エクセルの1番目のセル ですが、今度は逆のことをしたいのです。 で、適当に書いてみたのですが、エラーがでます。 例:Workbook.WorkSheets(1).Cells("A1").Value = uidoc.fieldgetText("MCode") すいませんが助けてください

noname#63429
noname#63429

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

前半と後半に分けました。 後半の正しさは不明です。 前半は下のようにするとできます。 A1セルに文字"MCode"を入れる と変えました。 1. ThisWorkbook.Worksheets(1).Range("A1").Value = "MCode" 2. ThisWorkbook.Worksheets(1).Cells(i, MCode).Value = "MCode" 1と2がありますが、どちらでも同じです。 Rangeは座標を指定できます。 Cellsは(1,1)のように、前を行、うしろを列の 数字であらわします。行を下げながら書き込みをする時は Cellsの方が便利です。

noname#63429
質問者

お礼

ThisWorkbook.Worksheets(1)の部分が、 ExcelObject.WorkSheets(1)になりましたが、 できました。 ありがとうございました。

関連するQ&A

  • エクセルVBAで他のbookのセルcellsで参照

    エクセルVBAで他のbookのセルの値(一定の範囲)を参照したいのですが、変数を使いたいため、cellsを使用したいのですがうまくいきません。方法はないでしょうか。 下記に例を示します。 rangeを使用すればすべてok((2)(5))(この場合はset文を使用しなくてもok(5))。同じbookならcells使用ok(4)。 他のbookをcells文使用する方法はないでしょうか(もちろんできれば、Thisbookの方もcellsを使用したい)。 よろしくお願いします。 sub test() Dim ThisBook As Workbook Dim Workbook2 As Workbook 'マクロを実行しているワークブック Set ThisBook = ThisWorkbook '他のワークブック Set Workbook2 = Workbooks("test11.xlsx") ' 'ThisBook.Worksheets(1).Range("A1:B2").Value = Workbook2.Worksheets(1).Range(Cells(1, 1), Cells(2, 2)).Value  '(1)だめ 'ThisBook.Worksheets(1).Range("A1:B2").Value = Workbook2.Worksheets(1).Range("a1:b2").Value '(2) OK 'Workbooks("test1.xlsm").Worksheets(1).Range("A1:B2").Value = Workbooks("test11.xlsx").Worksheets(1).Range(Cells(1, 1), Cells(2, 2)).Value '(3) だめ 'Workbooks("test1.xlsm").Worksheets(1).Range("A1:B2").Value = Workbooks("test1.xlsm").Worksheets(1).Range(Cells(3, 3), Cells(4, 4)).Value  '(4)だめ 'Workbooks("test1.xlsm").Worksheets(1).Range("A1:ii8000").Value = Workbooks("test11.xlsx").Worksheets(1).Range("a1:ii8000").Value  '(5) ok End Sub

  • Excel VBA 他のブックへ値を返す

    Excelで「備品」というブックと「不用品報告」というブックを作り、「備品」の方でボタンをクリックすると「不用品報告」の"一覧"というシートに順々に入力されるように組んでみました。 ※「備品」「不用品報告」は同じフォルダに入っています。 Application.ScreenUpdating = False Dim thisBook As Workbook Dim workBook1 As Workbook Dim lastrow2 As Long Set thisBook = ThisWorkbook Set workBook1 = Workbooks.Open(thisBook.Path & "\不用品報告.xlsx") lastrow2 = workBook1.Worksheets("廃棄一覧").Range("C" & Rows.Count).End(xlUp).Row + 1 workBook1.Worksheets("廃棄一覧").Range("G" & lastrow2).Value = thisBook.Worksheets("一覧").Cells(ActiveCell.Row, 15).Value workBook1.Worksheets("廃棄一覧").Range("H" & lastrow2).Value = "報告する" workBook1.Close SaveChanges:=True Application.ScreenUpdating = True MsgBox "廃棄処理が完了しました。不用品報告ファイルの一覧にデータが追加されています。", vbInformation, "廃棄処理" End If という形です。 「不用品報告」ブックにデータが飛ぶのですが、ActiveCell.Rowと設定しているにも関わらず一定の行のデータしか飛んでくれません。 ※例 5行目のデータを飛ばしたいのに(アクティブなセルは5行目のセルになっている状態)7行目のデータが入る という感じです。 違うブックにデータを飛ばすときには「ActiveCell~」は使えないのでしょうか。もしくはどこか不具合があるのでしょうか。 お詳しい方がいらっしゃいましたら、ご教授願います。

  • EXCELでセル名でのアクセス

    こんばんわ 現在、試せる環境では無いので ご存知の方教えてください。 EXCEL2007のシートにVB6からデータを貼り付けています。 例)   東京 名古屋 大阪 福岡 1月 2月 3月 ・ ・ 12月 MyXl.Worksheets("sheet1").Cells(2,2).Value=25.3 とすればデータをセットできますが、 EXCELの行と列にそれぞれ名前をつけ、その行名、列名でセルに アクセスすることってできるのでしょうか? MyXl.Worksheets("sheet1").Cells(3月,東京).Value=25.3                        ↑こんな感じで・・・ よろしくお願いいたします。

  • エクセル側からアクセスへデータ転送

    エクセル側からアクセスへデータを転送したく、 Sub Data_Add() Dim db As New ADODB.Connection Dim Rs As New ADODB.Recordset db.Open _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\Users\Owner\Desktop\A.mdb;" Rs.Open "B", db, adOpenStatic, adLockPessimistic Rs.AddNew Rs!a = Worksheets("1").Range("A1").Value Rs!b = Worksheets("1").Range("B1").Value Rs!c = Worksheets("1").Range("C1").Value Rs!d = Worksheets("1").Range("D1").Value Rs!e = Worksheets("1").Range("E1").Value Rs.Update Rs.Close db.Close これで、エクセルからアクセス"A"のテーブル"B"のフィールド"a"にエクセルの"A1"を、フィールド"b"にエクセルの"B1"をという風に、セル1つづつを転送させる事はできましたが、セル1つづつでは無く、A列をフィールド"a"に、B列をフィールド"b"にという風に、列ごと追加するにはどの様にしたらいいですか? 又、追加ではなく更新(すでにあったデータに追加するのではなく、上書き)するにはどの様にしたらいいですか? 追加、更新それぞれしたいので、誰か教えて頂けませんか? よろしくお願いします。

  • Excel VBAを使って、Excelデータを別のExcelファイルに取り込みします

    報告書にexcel VBAを使って、(報告書を開いたまま)報告書のデータを別のexcelファイル(一覧)に取り込みします。 Sub k() Dim ブック As Workbook Set ブック = Workbooks.Open("c:\テスト\" & "一覧.xls") ブック.Worksheets("Sheet1").Cells(3, 2) = Worksheets("企業情報シート").Cells(3, 3) End Sub 報告書の"Worksheets("企業情報シート").Cells(3, 3)"は書き方がおかしいみたいで、正しい書き方を教えてください。

  • エクセルのフォーム入力について

    初心者です。 フォームから自動でシート入力をしたいのですが、最下行の取得が出来ません。教えて下さい Private Sub CommandButton1_Click() '登録ボタンの動作 Dim myDCount As Long Worksheets("全体売上").Activate myDCount = Range("扱い月").Rows.Count myDCount = Range("扱い月").Cells(myDCount, 1).EntireRow.Insert 'データの最終行+1を取得 'データの入力(フォームからセルへ) With Worksheets("全体売上") .Cells(myDCount, 1).Value = TextBox1 .Cells(myDCount, 2).Value = TextBox2 .Cells(myDCount, 3).Value = TextBox3 .Cells(myDCount, 5).Value = TextBox4 .Cells(myDCount, 6).Value = TextBox5 .Cells(myDCount, 9).Value = TextBox6 .Cells(myDCount, 13).Value = TextBox9 .Cells(myDCount, 7).Value = TextBox10 .Cells(myDCount, 8).Value = TextBox11 .Cells(myDCount, 21).Value = TextBox12 End With Me.Hide End Sub

  • エクセルのデータを定型用紙に印刷 

    エクセルのデータシートの各行(1件づつ)を 一枚づつ定型の見積り書に印刷しようと思います。 sheet1が定型の見積書 sheet2がデータシートです。 sheet1のセル(12,3)にsheet2のセル(2,4),(3,4),(4,4) を印刷するには Sub 見積書印刷() Dim i As Long With Worksheets("sheet1") For i = 2 To 4 .Cells(12, 3).Value = Worksheets("sheet2").Cells(i, 4) .PrintOut Next i End With End Sub で、 できました。 データがsheet2でなく他のBOOKのsheetの場合 どのような式になるか 教えていただけませんか、お願いします。

  • セルにデータが入っていないのを見つけるには?

    ユーザフォームにあるコマンドボタンを押すと、Sheet1のセル"D4"から横方向→にセルの中にデータが入っていない所までループし、データが入っていないセルがあったら"END"が入力され終了したいのですが。。 Private Sub CommandButton5_Click() Dim u As Integer u = 4 Do Until Worksheets("Sheet1").Cells(7, u).Value = "" If Worksheets("Sheet1").Cells(7, u).Value = "" Then Worksheets("Sheet1").Cells(7, u).Value = "END" End If u = u + 1 Loop End Sub このコードでは無反応でした。なにがいけないのかご指摘お願いいたします。 ExcelVBAです。

  • エクセルVBAとVBScript

    WinXP/Pro  エクセル2002使用です。 VBScriptで下記のメール送信のプログラムを作り、 それをエクセルVBA→BATファイル→VBScript(→エクセルVBAに戻る)という流れで自動化させましたが、下記のコードでは、現在進行中のエクセルVBAとは別のブックを作るのでうまくいきません。 (エクセルブックを2重起動してしまいます) Set objExcel =GetObject( "d:\auto\aaa.xls") Dim stradrs Dim strkk Dim strjikan with objExcel stradrs = .Worksheets("Sheet1").Cells(5,1).Value strkk= .Worksheets("Sheet1").Cells(4,1).Value strjikan = .Worksheets("Sheet1").Cells(4,2).Value end with Set objEmail = CreateObject("CDO.Message") objEmail.From = "***@***.com" objEmail.To = stradrs objEmail.Subject = "表題" objEmail.Textbody = "内容" objEmail.AddAttachment("d:\auto\" & strkk & strjikan & ".doc") objEmail.Send Set objEmail = nothing Set objExcel = nothing 目的は、最初に立ち上げている(VBScriptを呼び出したVBAを実行中の)エクセルから値を取得したいのです。 下記いずれかの方法によると思っています。 (1)エクセルVBAから直接VBScriptに引数で値を渡すことは可能でしょうか? (2)VBScriptからエクセルブックを起動させずに値を取得することは可能でしょうか? 値はテキスト文字です。 何卒よろしくお願いします。

  • エクセルとVB6

    環境は OS XP Visual Basic 6 Excel 2003 です。 エクセルを扱うについては、今回初めてです。 ソースです----------------------------------- Dim ex As Object ' Excel.Application Dim wb As Object ' Excel.Workbook Dim ws As Object ' Excel.Worksheet Set ex = CreateObject("Excel.Application") ex.Visible = True 'エクセルを表示する Set wb = ex.Workbooks.Add '空白の新しいブックを追加 Set ws = wb.Worksheets.Add '新しいシートを追加 ws.Name = "XXX " 'シートの名前を設定 'シートのセルに書き込む '構文:Cells(行, 列).Value = 値 ws.Cells(1, 1).Value = "ID" ws.Cells(1, 2).Value = "PS" III% = 2 For x% = 0 To 135 III% = III% + 1 ws.Cells(1, III%).Value = 問D$(x%, 0) Next x% ----------------------------------- エクセルが起動し、挿入されます。 質問1 シート XXXはsheet3としてに挿入され、それ以外にsheet1 sheet2もできています。 これはなぜですか。 質問2 sheet1 sheet2を生成しないようにできますか。 できないようにするには、どうすればいいですか。 全くエクセルは詳しくありません。 お詳しい方、よろしくお願いします。

専門家に質問してみよう