• 締切済み

Access複数のテーブルを1つの既存シートに出力

Accessの複数のテーブルを1つの既存のエクセルに出力したのですが、どのようにしたらいいのでしょうか? 試しにDO~LOOPのしたにDO~LOOPをもう1つ追加してみたところ、 エラーナンバー75 オブジェクトが開いている場合は、操作は許可されません。 と表示されます。 Private Sub コマンド144_Click() On Error GoTo Err_FileDialog_Click Dim strsql1 As String Dim strsql2 As String Dim strsql3 As String Dim strsql4 As String Dim strTemplate As String Dim strFileName As String Dim ExpFileName As String Dim xlapp As Object Dim xlWB As Object Dim myCn As New ADODB.Connection Dim myRs As New ADODB.Recordset 'ExportData削除 DoCmd.SetWarnings False DoCmd.RunSQL "DELETE from T_EDI_01_CVJ" DoCmd.RunSQL "DELETE from T_EDI_02_OU" DoCmd.RunSQL "DELETE from T_EDI_03_EDI_CUSTOMER" DoCmd.RunSQL "DELETE from T_EDI_04_CUSTOMER" DoCmd.SetWarnings True 'Export用クエリ実行 DoCmd.SetWarnings False DoCmd.OpenQuery ("D_EDI_01_CVJ2") DoCmd.OpenQuery ("D_EDI_02_OU2") DoCmd.OpenQuery ("D_EDI_03_EDI_CUSTOMER2") DoCmd.OpenQuery ("D_EDI_04_CUSTOMER2") DoCmd.SetWarnings True 'ファイル名作成 ExpFileName = "FY24_03_CVJ_EDI" & "_" & Format(Date, "yyyymmdd") strFileName = GetFileName(False, "MicrosoftExcel ブック (*.xlsx)|*.xlsx", "", ExpFileName & ".xlsx") 'EXCELアプリケーションを起動 Set xlapp = CreateObject("Excel.Application") Set myCn = CurrentProject.Connection strsql1 = "T_EDI_01_CVJ" strsql2 = "T_EDI_02_OU" strsql3 = "T_EDI_03_EDI_CUSTOMER" strsql4 = "T_EDI_04_CUSTOMER" 'レコードセットオープン myRs.Open strsql1, myCn, adOpenForwardOnly, adLockReadOnly ' myRs.Open strsql2, myCn, adOpenForwardOnly, adLockReadOnly ' myRs.Open strsql3, myCn, adOpenForwardOnly, adLockReadOnly ' myRs.Open strsql4, myCn, adOpenForwardOnly, adLockReadOnly With xlapp 'テンプレートを開く strTemplate = Application.CurrentProject.Path & "\" & "FY24_03_xxx_CVJ_EDI.xlsx" Set xlWB = .Workbooks.Open(strTemplate) 'テンプレートファイルが存在しないときはエラー If Dir(strTemplate) = "" Then MsgBox "テンプレートファイルを確認してください。", vbOKOnly + vbCritical, "エラー" .Visible = True .Quit Exit Sub End If 'テンプレートファイルオープン .Workbooks.Open strTemplate 'T_EDI_01_CVJの結果値出力処理(1行目にヘッダーを表示しているので、2行目1列目からセット xlWB.Worksheets("CVJ").Rows(2).Insert xlWB.Worksheets("CVJ").Cells(2, 1).CopyFromRecordset myRs ' 'T_EDI_02_OUの結果値出力処理(1行目にヘッダーを表示しているので、2行目1列目からセット ' xlWB.Worksheets("CVJ OU別").Cells(2, 1).CopyFromRecordset myRs ' 'T_EDI_03_EDI_CUSTOMERの結果値出力処理(1行目にヘッダーを表示しているので、2行目1列目からセット ' xlWB.Worksheets("代理店別EDIデータ").Cells(2, 1).CopyFromRecordset myRs ' ' 'T_EDI_04_CUSTOMERの結果値出力処理(1行目にヘッダーを表示しているので、2行目1列目からセット ' xlWB.Worksheets("当月全代理店事業部別データ").Cells(2, 1).CopyFromRecordset myRs Dim I As Long I = 2 xlWB.Worksheets("CVJ").Activate Do While xlWB.Worksheets("CVJ").Cells(I, 1) <> "" I = I + 1 Loop '完了したら保存 If Len(strFileName) = 0 Then xlWB.Close SaveChanges:=False xlapp.Quit MsgBox "処理を中止します。", vbOKOnly + vbInformation Exit Sub Else xlWB.SaveAs FileName:=strFileName End If MsgBox "TX Shuttle用ファイルの出力が完了しました。", vbOKOnly + vbInformation End With Set myRs = Nothing: Close Set myCn = Nothing: Close 'Excelを終了します xlapp.Quit Exit Sub Exit_FileDialog_Click: Exit Sub Err_FileDialog_Click: MsgBox "予期せぬエラーが発生しました" & Chr(13) & _ "エラーナンバー:" & Err.Number & Chr(13) & _ "エラー内容:" & Err.Description, vbOKOnly End

みんなの回答

  • chayamati
  • ベストアンサー率41% (255/611)
回答No.2

他にもありますが、コメント下さい >DoCmd.SetWarnings False はじめは   DoCmd.SetWarnings Trueとして実行結果確認します   >DoCmd.RunSQL "DELETE from T_EDI_01_CVJ" DoCmd.RunSQL ("DELETE from T_EDI_01_CVJ") とSQL文を()で括ります()内は テキスト文なのでコーディング中はチェックされませんが  実行時にチェックされます

aoaoaoki
質問者

お礼

回答ありがとうございます。 色々やっていたら自己解決いたしました。 複数のテーブルをそれぞれのシートに出力したかったのですが、 レコードを開けっぱなしして、次のテーブルを出力しようとしていたため、エラーが出ていました。 1つのテーブルを出力し終わったら、myRs.Closeで閉じて、次のテーブルを出力すればうまくいきました。

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1633/2477)
回答No.1

複数のテーブルを追加クエリなどで一つのテーブルにまとめてからそれをエクセルに出力するという方法なのでしょうか。

aoaoaoki
質問者

お礼

回答ありがとうございます。 色々やっていたら自己解決いたしました。 複数のテーブルをそれぞれのシートに出力したかったのですが、 レコードを開けっぱなしして、次のテーブルを出力しようとしていたため、エラーが出ていました。 1つのテーブルを出力し終わったら、myRs.Closeで閉じて、次のテーブルを出力すればうまくいきました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CSV形式で出力後、開くときの警告メッセージについ

    いつもお世話になっております。 ACCESSからデータをCSV形式で出力後、ファイルを開くときに添付のような警告メッセージが表示されます。[はい]をクリックすればファイルは開くことができるのですが、警告メッセージが表示されないようにするにはどうしたらいいでしょうか? xlsxのテンプレートを開き、そこにデータを書き出して、csvで保存するようになっています。csv形式で出力したことがないので、csvのFormatを指定する必要があると思っていますが、どうしたらいいでしょうか? ご教授お願いいたします。 Private Sub CMD_Expo_DblClick(Cancel As Integer) On Error GoTo Err_FileDialog_Click Dim strsql As String Dim strTemplate As String Dim strFileName As String Dim ExpFileName As String Dim xlapp As Object Dim xlWB As Object Dim myCn As New ADODB.Connection Dim myRs As New ADODB.Recordset 'ファイル名作成 ExpFileName = "SNDFILE" & Format(Date, "yyyymmdd") strFileName = GetFileName(False, "", "", ExpFileName & ".csv") 'EXCELアプリケーションを起動 Set xlapp = CreateObject("Excel.Application") 'セットする過程が見えないよう一旦不可視 xlapp.Visible = False Set myCn = CurrentProject.Connection strsql = "Q_BOFAXExpo_MJ" 'レコードセットオープン myRs.Open strsql, myCn, adOpenForwardOnly, adLockReadOnly With xlapp 'テンプレートを開く strTemplate = Application.CurrentProject.Path & "\" & "SNDFILE.xlsx" Set xlWB = .Workbooks.Open(strTemplate) 'テンプレートファイルが存在しないときはエラー If Dir(strTemplate) = "" Then MsgBox "テンプレートファイルを確認してください。", vbOKOnly + vbCritical, "エラー" .Visible = True .Quit Exit Sub End If 'テンプレートファイルオープン .Workbooks.Open strTemplate '結果値出力処理(1行目にヘッダーを表示しているので、2行目1列目からセット xlWB.Worksheets("Sheet1").Cells(1, 1).CopyFromRecordset myRs '完了したら保存 If Len(strFileName) = 0 Then xlWB.Close SaveChanges:=False xlapp.Quit MsgBox "処理を中止します。", vbOKOnly + vbInformation Exit Sub Else xlWB.SaveAs FileName:=strFileName End If MsgBox "BOFAX用のファイルの出力が完了しました。", vbOKOnly + vbInformation End With Set myRs = Nothing: Close Set myCn = Nothing: Close 'Excelを終了します xlapp.Quit Exit Sub Exit_FileDialog_Click: Exit Sub Err_FileDialog_Click: MsgBox "予期せぬエラーが発生しました" & Chr(13) & _ "エラーナンバー:" & Err.Number & Chr(13) & _ "エラー内容:" & Err.Description, vbOKOnly End Resume Exit_FileDialog_Click End Sub

  • EXCEL→Access ADO接続

    お世話になります 現在ADOにてEXCEL側からAccessDBにアクセスし 値を取得しているのですが 現在下方向に貼り付けしているのですが 横方向に貼り付けさせる方法はありますか? 下記参考(現状VBAです) 現状:日付で絞込みをしています 日付け絞込みをしてヒットしたものに対して下方向に貼り付けています それを横方向に貼り付けさせたいのです Private Sub CommandButton1_Click() Dim myConn As ADODB.Connection Dim myRs As ADODB.Recordset Dim mySQL As String Dim myConstr As String Dim myDBFName As String Dim myPswd As String Dim tableName As String Dim orderDate As String Dim shipDate As String orderDate = Format(DateValue(DTPicker1.Value), "mm/dd/yyyy") shipDate = Format(DateValue(DTPicker2.Value), "mm/dd/yyyy") myDBFName = "Accessパス" myPswd = "" myConstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _ & myDBFName & ";Jet OLEDB:Database Password=" & myPswd & ";" mySQL =SQL文 Set myConn = New ADODB.Connection myConn.Open myConstr Set myRs = New ADODB.Recordset myRs.Open mySQL, myConn Worksheets("シート名").Range("開始セル名").CopyFromRecordset myRs myRs.Close Set myRs = Nothing myConn.Close Set myConn = Nothing Unload Me End Sub わかる方ご教授願います

  • Excelから一つのテーブルにインポートしたい

    こんにちは。 ExcelではVBAが使えるレベルですが、Access初心者です。 エクセルのワークブックにデータがA~N列までデータが入っています。 1行目はタイトル(フィールド名)で2行目以下がデータ(レコード)になります。 ワークブックの中のシート数はさまざまです。 1行目のタイトル(フィールド名)はあってもデータがないものもありますし、 2行目以下のデータ(レコード)数もさまざまです。 ワークブック(とその中のシート)が多いので VBAを使ってAccessに取り込みたいと思っています。 いろいろネットで検索して以下のVBAまでたどりついたのですが、 それぞれ「ワークブック名_シート名」というテーブルに取り込まれます。 これを例えば「総合」というようなテーブル一つに取り込むにはどうしたらいいでしょうか? 週末をつぶして試行錯誤しましたが、どうしても解決しないのでアドバイスいただけるとうれしいです。 Sub ImportFromExcel() Dim tgtXLname As String Dim tgtXLpath As String Dim newTBLname As String Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim sCnt As Integer Dim n As Integer Application.Echo False TargetFolder = "C:\work" tgtXLname = Dir(TargetFolder & "\*.xls") Do While tgtXLname <> ""   tgtXLpath = TargetFolder(a) & "\" & tgtXLname   Set xlApp = GetObject(, "Excel.Application")   xlApp.Application.Visible = True   xlApp.Workbooks.Open tgtXLpath   Set xlBook = xlApp.ActiveWorkbook   sCnt = xlBook.Worksheets.Count   For n = 1 To sCnt     Set xlSheet = xlBook.Worksheets(n)     newTBLname = Left(tgtXLname, Len(tgtXLname) - 4) & "_" & xlSheet.Name     DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, newTBLname, tgtXLpath, True, xlSheet.Name & "!" & "A:N"     Set xlSheet = Nothing   Next   xlBook.Close SaveChanges:=False   Set xlBook = Nothing   tgtXLname = Dir() Loop xlApp.Application.Quit Set xlApp = Nothing Application.Echo True MsgBox "インポート終了" End Sub

  • DAOでテーブルの内容を検索したいのですが…

    DAOでテーブルの内容を検索したいのですが… アクセス初心者です。 フォームで取得した値をテーブルで検索して命令するために,次のようなことをしてみましたが,FindFirstのところでエラーがでます。 どうしたらよいのかご指導ください。 コマンドボタンのイベントプロシージャで Private Sub テストテーブル作成_Click() Dim gakki As Integer Dim test As Integer Me.学期 = gakki Me.テスト = test Call testテーブル作成 End Sub として,標準モジュールに Sub testテーブル作成() Dim myDB As DAO.Database Dim myRS As DAO.Recordset Set myDB = CurrentDb Set myRS = myDB.OpenRecordset("T_生徒テスト") myRS.FindFirst "学期ID=" & "" & "gakki" & "" & "AND テストID =" & "" & "test" & "" If myRS.NoMatch = False Then DoCmd.OpenQuery "Q_TSテストA" DoCmd.OpenForm "F_テスト" DoCmd.Close Else DoCmd.OpenQuery "Q_TSテスト" DoCmd.OpenQuery "Q_テスト" DoCmd.Close DoCmd.OpenForm "F_テスト" End If myRS.Close: Set myRS = Nothing myDB.Close: Set myDB = Nothing End Sub としました。よろしくお願いします。

  • VB2008 エクセル出力

    VB2008 エクセル出力 教えていただけると助かります VB6.0使用時にエクセル出力をするために下記のようなプログラムで出力していました ※「Microsoft Excel 9.0 Object Library」を参照 Dim xlApp As EXCEL.Application Dim xlBook As EXCEL.Workbook Dim xlsheet As EXCEL.Worksheet Dim File As String File = App.Path + "\EXCEL\" + "フォーム.xls" Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(File) Set xlsheet = xlBook.Worksheets("テスト") xlsheet.Range("A1") = "テスト" 'フォルダ作成 If Dir("D:\", vbDirectory) = "" Then Call Mkdirs("D:\テスト") 'Worksheetを名前をつけて保存します。 xlApp.DisplayAlerts = False xlsheet.SaveAs "D:\テスト\テスト.xls" xlApp.Quit Set xlApp = Nothing Set xlBook = Nothing Set xlsheet = Nothing VB2008の場合だとどのように書けば同じように動きますか ※色々試してみましたがダメでした 「Microsoft Excel 12.0 Object Library」を参照しています

  • VBAでどうしてもコーディングができず、ヒントをもらえたらうれしいです

    VBAでどうしてもコーディングができず、ヒントをもらえたらうれしいです。 (VBA超初心者で、ネットのエクセルVBAなどを参考にしているのですが、なかなかわからず。。。) 【csvファイルを指定して、1行目から7行目までを削除する】というプログラムがくみたいです。 Sub TQT() Dim PathName As String Dim FileNam As String Dim xlAPP As Application Dim ABC As Workbook Application.DisplayAlerts = False Set xlAPP = Application PathName = xlAPP.GetOpenFilename("CSV形式ファイル(*.csv;),*.csv;", 1, "開きたいファイルを指定してください。") Set ABC = ThisWorkbook FileNam = Dir(PathName) Set ABC = Workbooks.Open(PathName) ABC.Activate Workbooks.Open FileNam = PathName '行を削除 activeWorkbooks(ABC).worksheets("sheet1").Row("1:7").delete ←※ MsgBox "done" End Sub ※のところでデバッグが止まってしまいます。 activeworkbookの書き方が間違っているのか、 そもそもそれ以前に間違いがあるのか、 わかる方がいたら教えてください。 ※の行を色々アレンジしてみたのですが、うまくいきません。 よろしくお願い致します。(excel2003)

  • access テーブルデータの編集、保存

    失礼します。 ACCESSのテーブルのデータをVBAで編集する仕方がわからなくて困っています。 やりたいことは、フォームを作成してそこに「検索」ボタンを作り テキストボックスに入力した条件をSQLにして検索をかける。 →HITするデータの一覧が表示される。 →修正したいデータを選択する。 →修正画面が表示される。 この時に選択したデータをあらかじめEXCELで作成したフォーマットに 反映して修正できるようにしたいんですが、(フィールドをばらばらに指定したセルに代入するような感じです。)これは可能なんでしょうか? そもそもレコードセットに格納したデータを視覚的にUSERに認識させてそこからデータを選択するという事が可能なのかもわかりません。 勉強不足で申し訳ありませんがどなたかアドバイスをいただければ幸いです。 一応自分なりに書いてみたんですがいくら調べてもここで止まってしまいます。どこが不備があれば教えてください。 お願いします。 '変数の設定 Dim myDB As DAO.Database Dim myRS As Recordset Dim strSQL As String '検索条件変数の設定 Dim Day As String Dim Sec As String Dim shaNO As String Dim User As String Dim Sis As String Day = テキスト3 Sec = テキスト7 shaNO = テキスト9 User = テキスト5 Sis = テキスト1 '検索条件をSQLに代入 strSQL = strSQL & " SELECT" strSQL = strSQL & ",SM.起票日" strSQL = strSQL & ",SM.社員番号" strSQL = strSQL & ",SM.所属部署" strSQL = strSQL & ",SM.氏名" strSQL = strSQL & ",SM.対象システム" strSQL = strSQL & ",SM.内容" strSQL = strSQL & ",SM.一日当たりの工数" strSQL = strSQL & ",SM.期待効果" strSQL = strSQL & ",SM.改修コスト" strSQL = strSQL & ",SM.改修必要時間" strSQL = strSQL & ",SM.調査開始日" strSQL = strSQL & ",SM.受付担当者" strSQL = strSQL & ",SM.受付日時" strSQL = strSQL & ",SM.調査終了日" strSQL = strSQL & ",SM.障害区分" strSQL = strSQL & ",SM.調査担当者" strSQL = strSQL & ",SM.代替案" strSQL = strSQL & ",SM.対応区分" strSQL = strSQL & ",SM.対応完了日" strSQL = strSQL & ",SM.難易度" strSQL = strSQL & " FROM" strSQL = strSQL & ",T_障害票マスタ SM" strSQL = strSQL & " WHERE" strSQL = strSQL & ",SM.起票日 = &Day& " strSQL = strSQL & ",SM.所属部署 = &Sec& " strSQL = strSQL & ",SM.社員番号 =&shaNO& " strSQL = strSQL & ",SM.氏名 = &User& " strSQL = strSQL & ",SM.対象システム = &Sis& " strSQL = strSQL & "" Set myDB = CurrentDb() Set myRS = myDB.OpenRecordset(strSQL, dbOpenTable)

  • 画像の貼り付けに関して

    環境:Visual Basic 2008 教えて下さい。 現在、あるフォルダに格納されている画像ファイルを、EXCELに貼り付けるような プログラムを作成中で、以下のようなサンプルを見つけましたが、単純に貼り付けではなく、 指定のセルに貼り付けたいと考えています。 そのような指定のセルに貼り付ける為にはどのような記述をしたら良いでしょうか? 教えて下さい。 《現在の記述》 Dim xlApp As New Excel.Application Dim xlWb As Excel.Workbook Dim xlWs As Excel.Worksheet Dim FileNameTmp As String xlWb = xlApp.Workbooks.Open("C:\abc.xls") xlApp.Visible = True xlWs = xlWb.ActiveSheet FileNameTmp = "C:\ABC.png" ' シートオブジェクトを用いない時 xlApp.ActiveSheet.Shapes.AddPicture(FileNameTmp, False, True, 10, 20, 100, 100) 'シートオブジェクトを用いた時 'xlWs.Shapes.AddPicture FileNameTmp, False, True, 10, 20, 100, 100 よろしくお願いします。

  • 複数シート、計算範囲が可変でのピボットテーブルマクロ

    初めてのマクロで困っています。 エラーメッセージは、 実行時エラー '13': 型が一致しません。 ===で囲んだ部分がデバックをクリックすると黄色で表示されます。 すみませんが、どなたかご指摘お願いします。 どうぞよろしくお願いいたします。 Sub test() Dim i As Integer Dim SET_SheetCnt As Integer Dim SET_SheetName As String Dim SET_SheetN_C As String Dim SET_startRow As Long Dim SET_endRow As Long Dim SET_startCell As String Dim SET_endCell As String Dim SET_Cell As String Dim SET_Returnsheet As String Dim DQ As String Dim SET_FileNo As Integer SET_SheetCnt = ThisWorkbook.Sheets.Count SET_Returnsheet = ActiveSheet.Name SET_FileNo = FreeFile DQ = Chr$(&H22) Sheets(SET_Returnsheet).Cells.Clear For i = 1 To SET_SheetCnt SET_SheetName = Worksheets(i).Name If SET_SheetName <> SET_Returnsheet And SET_SheetName <> "template" Then With ThisWorkbook.Worksheets(i) 'Start行 Cells(2, 2).Select SET_startRow = .Cells.Find(What:="業務名", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, MatchByte:=False).Row SET_startCell = "R" & SET_startRow & "C3" 'End行 SET_endRow = .Cells(.Rows.Count, 19).End(xlUp).Row SET_endCell = "R" & SET_endRow & "C19" SET_Cell = SET_startCell & ":" & SET_endCell '計算範囲の書き込み Worksheets(SET_Returnsheet).Cells(1, 1).Value = "計算範囲" Worksheets(SET_Returnsheet).Cells(Rows.Count, 1).End(xlUp).Offset(1).Value = "Array(" & DQ & "'" & SET_SheetName & "'!" & SET_Cell & DQ & ", " & DQ & SET_SheetName & DQ & "), " End With End If Next i '最終セルの不要な文字列を取りファイルに格納 Sheets(SET_Returnsheet).Select Dim LastRow As Integer With Worksheets(SET_Returnsheet).Cells.SpecialCells(xlCellTypeConstants).Areas With .Item(.Count) LastRow = .Item(.Count).Row End With End With Dim a As String Dim b As String Dim c As String Dim d As String a = Worksheets(SET_Returnsheet).Cells(LastRow, 1).Value b = Len(a) c = Mid(a, 1, (b - 2)) Worksheets(SET_Returnsheet).Cells(LastRow, 1).Value = c Open "c:\test.txt" For Output As #SET_FileNo For i = 2 To LastRow d = Worksheets(SET_Returnsheet).Cells(i, 1).Value Print #SET_FileNo, d; Next i Close #SET_FileNo Dim FileData As variant Open "c:\test.txt" For Input As #SET_FileNo While Not EOF(SET_FileNo) Line Input #SET_FileNo, FileData Debug.Print FileData Wend Close #SET_FileNo 'ピボット計算------- Worksheets(SET_Returnsheet).Activate Sheets(SET_Returnsheet).Cells.Clear '==ここから黄色で囲まれる分です==== ThisWorkbook.PivotCaches.Add(SourceType:=xlConsolidation, SourceData:= _ Array(FileData)).CreatePivotTable TableDestination _ :=Range("A11"), TableName:="ピボットテーブル1" '===ここまで==== ActiveSheet.PivotTables("ピボットテーブル1").SmallGrid = False ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("データ").PivotItems( _ "データの個数 : 値").Position = 1 Range("A17").Select ActiveWindow.SmallScroll Down:=-9 ActiveSheet.PivotTables("ピボットテーブル1").PivotSelect "行[すべて]", xlLabelOnly Range("A11").Select ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("データの個数 : 値").Function = _ xlSum End Sub

  • ACCESSのVBAからExcelのセルから読めたのですが、書く方法を教えてください

    下記の方法でCell(1,1)、から読むことができました そこで今度書き込みなのですが With xlBk.Worksheets("Sheet1")    'Debug.Print .Cells(1,1)    .Cell(1,2) = "data" End With としても、エクセルシートには書かれていないのですが 書く方法を教えてください ただ、下記の Open(Filename:=strFile, UpdateLinks:=0) はエクセルをOpenする時 「このブックは他のデータソースへのリンクがふくまれています」 とメッセージがでるので、UpdateLinks:=0、と入れています よろしくおねがいします '--------------------------------- Dim xlApp As Excel.Application Dim xlBk As Excel.Workbook Dim strFile As String strFile = "C:\Sample\Book1.xls" Set xlApp = CreateObject("Excel.Application") Set xlBk = xlApp.Workbooks.Open(Filename:=strFile, UpdateLinks:=0) With xlBk.Worksheets("Sheet1")   Debug.Print .Cells(1,1) End With xlBk.Close False xlApp.Quit Set xlApp = Nothing '----------------------------------

専門家に質問してみよう