• ベストアンサー

Access2000:VBAを使用し、エクセルセルにDo文を使って挿入

VBAでDo文を使って連続するセルに挿入したい場合 ロジックの書き方を教えていただけますか? あくまでもDo文を使ってです。 Dim ExcelApp As Object 'Excel.Application Dim Book As Object 'Excel.Workbook Dim Sheet As Object 'Excel.Worksheet ・・・略・・・ Sheet.Range("A13").Value 「A13」から下のセルに書き込んでいくものです。 Doの抜け出し方などはわかっています。 よろしくお願いします。

  • fm0606
  • お礼率13% (100/761)

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

  • ベストアンサー
  • tkun62
  • ベストアンサー率23% (37/159)
回答No.2

例えばですが RsD.Open wSql, CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly i = 13 Do until RsD.eof Sheet.Cells(i, 1) = RsD![データ1] i = i + 1 RsD.MoveNext Loop RsD.Close Set Rsd=Nothing テストはしていません(^_^;)

その他の回答 (1)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

n=13 Do Sheet.Cells(n,1) = "あ" n=n+1 Loop

関連するQ&A

  • Access VBA 新しいシート作成

    Access VBAにてExcelファイルを編集するプログラムを作成しています。 Dim AppObj As Object 'Excel.Applicationオブジェクトの宣言 Dim WBObj As Object 'Excel.Workbookオブジェクトの宣言 Dim WsObj As Object 'Excel.WorkSheetオブジェクトの宣言 '実行時バインディング Set AppObj = CreateObject("Excel.Application") '編集を実施するワークブックを開く 'PathにはExcelファイルのフルパス、ExfにExcelファイル名が格納されています。 Set WBObj = AppObj.WorkBooks.Open(Path & Exf) 'Excelアプリケーションを表示する AppObj.Visible = True ※各Excelファイルはシートが1つだけ存在します。 この処理の直後に『数値』という名称の新しいシートを左から2番目に作成したいのですが、どのように記述すればよろしいでしょうか?

  • グラフの表示

    VB6.0 ACCESS2000で開発しています。 下の様にACCESSからデータを読んでEXCELでグラフを表示して プレビューへ表示しています。 プレビューを表示した後、印刷してEXCELを閉じる。 又は、印刷せずに閉じた場合でも画面上はEXCELは閉じているのですが プロセスに残ってしまいます。 どこが悪いのでしょうか? よろしくお願いします。 Private Sub Command1_Click() Dim ExcelApp As Object 'Excel.Application Dim Book As Object 'Excel.Workbook Dim Sheet As Object 'Excel.Worksheet Dim cn As ADODB.Connection Dim rst As ADODB.Recordset Set cn = New ADODB.Connection cn.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\temp\db2.mdb" cn.Open Set rs = New ADODB.Recordset rs.Source = SELECT = "SELECT = "SELECT 商品名, 単価 FROM m_品名 rs.ActiveConnection = cn rs.CursorType = adOpenStatic rs.Open Set ExcelApp = CreateObject("Excel.Application") Set Book = ExcelApp.Workbooks.Add Set Sheet = Book.Worksheets(1) Sheet.Cells(1, 1).CopyFromRecordset rst Dim MyChart As ChartObject Set MyChart = Sheet.ChartObjects.Add(10, 100, 600, 330) With MyChart.Chart .SetSourceData Sheet.Range(Range("A1:B1"), Range("A1:B1").End(xlDown)), xlColumns .ChartType = xlBarClustered .Axes(xlValue).MaximumScale = 350 .Axes(xlValue).MajorUnit = 50 .HasTitle = True .ChartTitle.Text = "案件実績合計" .ApplyDataLabels (xlDataLabelsShowValue) '.SeriesCollection(1).ApplyDataLabels (xlDataLabelsShowValue) .Location Where:=xlLocationAsNewSheet End With ExcelApp.Visible = True Book.ActiveSheet.PrintPreview Book.Close ExcelApp.Quit Set Sheet = Nothing Set Book = Nothing Set ExcelApp = Nothing Set rst = Nothing Set cn = Nothing End Sub

  • TextBoxに入力した文字をExcelに書き込むには?

    VB2008を使用しています。 VBフォーム内のTextBox1に入力した内容(例 りんご)をBottanを押すことによりExcelの指定したセル(例 A1)に書き込んで保存する方法はありますでしょうか? 現在、以下のところまでは出来ています。 ' excelを定義 Dim excel As New Microsoft.Office.Interop.Excel.Application ' excel testをファイルから開く Dim book As Microsoft.Office.Interop.Excel.Workbook book = excel.Workbooks.Open("C:\test.xls") ' 1枚目のワークシートを取得 Dim sheet As Microsoft.Office.Interop.Excel.Worksheet sheet = CType(book.Worksheets.Item(1), Microsoft.Office.Interop.Excel.Worksheet) Excelの開放からsheetの取得までは出来たのですが、ここから先がわかりません。よろしくお願いいたします。

  • Excel.Rangeで取得した値を配列に格納するには?

    プログラミング初心者です。 VB.NET でExcelからデータを取得したのですが、配列等に格納したいのですが、うまくできなくて困っています。どなたか教えてください。 例)以下のデータを取得する場合 セルA(列)1(行)からA5まで セルB1からB5まで セルC1からC5まで Dim xl_APP As Excel.Application Dim xl_Book AS Excel.Workbook Dim xl_Sheet As Excel.Seets = xl_Book.Worksheets Dim xl_W_Sheet As Excel.Worksheet = CType(xl_W_Sheet.Item(1),Excel.Worksheet) 中略 Dim range_data As Excel.Range Dim i Integer Dim j Integer Dim strCel As String For i = 1 To 5 For j = 1 To 3 range_data = CType(xl_W_Sheet.Cells(i,j),Excel.Range) strCel = CStr(range_data.Value)  ↑String型変数に格納していますが、多次元配列?に格納して取り出せるようにしたいのですが、どうしたらよいのでしょうか? Next Nest <range_dataに格納されるデータ> A1:氏名 B1:学年 C:1 年齢 以下同上 ・・・・のように取り出したいと考えています。 よろしくお願いします。

  • Access2000:VBAを使用したエクセル操作

    下記のように既存のエクセルファイルにクエリからとってきたデータを挿入したいと考えております。 既存のエクセルファイルを開くことは成功したのですが、ある条件だとシートを追加するという処理(オブジェクト記述)がわかりません。 シート追加、あわせてブック追加方法もお願いします。 Set ExcelApp = CreateObject("Excel.Application") Set Book = ExcelApp.Workbooks.Open("C:\query\module\VBExcel.xls") Set Sheet = Book.Worksheets("test1")←追加したい

  • VBAで別ブックを複数列検索し、隣のセルの値を取得

    book2(master)のセルA1、2、3・・・・の値でbook1(data)の任意の複数列(以下では3列目、8列目としています)を検索し、検索結果の右側のセルの値(以下の例の場合4列目と9列目)をbook2(master)の検索元セルの右側に書き込みたいのですが、実行すると実行時エラー1004アプリケーションまたはオブジェクトの定義エラーです。 と表示されてしまいます。回避方法について教えて頂けますでしょうか また、複数列の検索方法について適切な方法がありましたら教えて頂けますでしょうか 例) master A2”aa” 空欄 ←hoを取得 A3”bb” 空欄 ←3aを取得 A4”cc” 空欄 data(ランダムに配置されています) 1 2 3 4 5 6 7 8 9    ca de      d4 2f    c1 3a      bb 3a    aa ho      7e ee Sub kensaku() Dim book1 As Workbook Dim book2 As Workbook Dim sheet1 As Worksheet Dim sheet2 As Worksheet Dim rng As Range Dim r As Long Set book1 = Workbooks.Open("D:\Book1.xls") Set book2 = Workbooks.Open("D:\Book2.xls") Set sheet1 = book1.Sheets("data") Set sheet2 = book2.Sheets("master") r = 2 Do While sheet2.Range("A" & r).Value <> "" Set rng = sheet1.Range(Columns(3), Columns(8)).Find(sheet2.Range("A" & r).Value, LookAt:=xlWhole) If Not rng Is Nothing Then sheet2.Range("B" & r).Value = rng.Offset(0, 1).Value End If r = r + 1 Loop End Sub

  • visual basic 2005 express edition でエクセル操作ってできます?

    もともとエクセルマクロを使用して 業務ツールを作っていたのですが、 visual basic2005になって無料版がでたのでそちらに移行しようかと考えている者です。 ひとつ確認させてください。 VB2005expressでエクセルのセル値を変更するコードを書いたのですが、 "range"や"cell"の頭部分が大文字になりません。 自動表示(?プルダウンで表示される機能)にも、"range""cell"等の出力はされないのですが、 なぜか、小文字のままでも動作はします。 express editionでは、オフィスの操作は正式対応していないのでしょうか? Dim xl As Object 'Excel.Application Dim wb As Object 'Excel.Workbook Dim ws As Object 'Excel.Worksheet xl = CreateObject("Excel.Application") wb = xl.Workbooks.Open(ファイル名) xl.Visible = True ws = wb.Worksheets("Sheet1") ' シート内のセルに文字を書き込む ws.cells(1, 1).Value = "hogehoge" ws.range("A1").offset(1, 2).value = "gogo"

  • VB.NETでのEecelデータの読み込みについて

    VB.netを使用しています。 過去ログを参考にして、Excel値の読み込みのプログラム作成をしています。 下記のコードでerrorはでないのですが、正常な値を読み込んでくれません。どなたかアドバイスお願いします。 ※sampleファイルのsheet1のセルA1の値をLabel1に読み込みたい このコードを実行するとLabel1に "System.__ComObject" と表示されてしまう。 セルA1には"100"という数値が入っています。 Dim excelFilePath As String = "C:\sample.xls" Dim Excel As Excel.Application Dim ExcelBook As Excel.Workbook Dim ExcelSheet As Excel.Worksheet Excel = CType(CreateObject("Excel.application"), Excel.Application) ExcelBook = CType(Excel.Workbooks.Open(excelFilePath), Excel.Workbook) ExcelSheet = CType(ExcelBook.Worksheets(1), Excel.Worksheet) Label1.Text = ExcelSheet.Cells(1, 1).ToString

  • VBでEXCELのシートのコピーに関して

    同一Book内で、シートのコピーをしようと考えて、幾つかのHPを参考に、以下のような 記述をしました。 その際に、以下の記述をした場合、本来はコピー先のシート名を変更したいにも関わらず、コピー 元のシート名が変わってしまいます。 追加したシートの名前を変更させるには、どのような書き方にすれば良いでしょうか? 自分で記述しておきながら、どのように対応したら良いかわからず。。。 また、以下のような記述をした場合、追加したセル側のシートを操作したいにも関わらず、 コピー元のシートを書き換えてしまいます。 追加したシートのセルを操作したい(値を入力)ような場合は、どのような記述を すれば良いでしょうか。。。 ご教授頂ければと思います。 '既存のEXCELファイルを開く Dim xlFilePath As String = "C:\test.xls" '起動時の処理 Dim xlApp As New Excel.Application Dim xlBooks As Excel.Workbooks = xlApp.Workbooks Dim xlBook As Excel.Workbook = xlBooks.Open(xlFilePath) '確認のためExcelのウィンドウを表示する xlApp.Visible = True Dim xlSheets As Excel.Sheets = xlBook.Worksheets Dim xlSheet As Excel.Worksheet = CType(xlSheets.Item(1), Excel.Worksheet) Dim xlSheet2 As Excel.Worksheet = xlBook.Worksheets(1) 'シートのコピー xlSheet.Copy(After:=xlSheet2) 'シートに名前を付ける xlSheet.Name = "TEST" Dim xlRange As Excel.Range 'データの入力セル範囲 xlRange = xlSheet.Range("A1:A1") 'セルへデータの入力 xlRange.Value = “AABBCC”

  • Excelvba2000でExcelファイル間のコピーを行いたい

    現在マクロ実行中のExcelブックのシートのセルの値を、 新規作成したブックのシートのセルに値を貼り付けたいのですが、 うまくいきません。 ただし、コピーの条件として、クリップボードは使用しない Activeメソッドや、Selectメソッドも使用しないという制約があります 以前は、うまくいっていたのですが、コードの書き方を忘れてしまいました。以下の★印の行で、 「RangeクラスのCopyメソッドが失敗しました。」とエラーが出ます。 以前は、以下のコードに似た、ロジックで、問題なかったのですが、 どこか間違っていますでしょうか? Dim xlsApp As Excel.Application Dim xlsBook As Excel.Workbook Dim xlsSheet As Excel.Worksheet Set xlsApp = CreateObject("Excel.Application") Set xlsBook = xlsApp.Workbooks.Add Set xlsSheet = xlsBook.Worksheets(1) '★エラー発生 ThisWorkbook.Worksheets("Sheet1").Range("A1:D4").Copy _ Destination:=xlsBook.Worksheets("Sheet2").Range("E5")

専門家に質問してみよう