• ベストアンサー

AccessのモジュールからExcelファイルへの出力

タイトル通りなのですが、現在Access2003を使って入力した値をExcelに出力するプログラムを作っています。 その中で、「―」を入れたいのですが、「oApp.Range("F9").Value = "―"」と入れても空白が入るだけで―が入りません。 どうすれば―が入るのでしょうか?

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

こちらはAccess2003 SP3ですが、問題なく動作します。 Dim A, B, S Set A = CreateObject("Excel.Application") Set B = A.Workbooks.Add Set S = B.Worksheets(1) S.Range("F9").Value = "―" '★細い横罫線 B.SaveAs "C:\~.xls" B.Close A.Quit Set A = Nothing

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

oAppはワークシートオブジェクトですか?

takayamada
質問者

補足

はい、その通りです。

関連するQ&A

  • accessのデータをexcelに

    Office97使用のシステム管理初級者です。 accessのクエリーを利用して以下のようなシステムを作ろうと思っているのですが、行き詰っています。 (1) 特定のデータ(複数)を抽出 (2) 既に用意しているexcelの任意の位置にデータを移管 (3) excelのブックを別名にてフロッピーに保存 (1)は何とかできたのですが、(1)によって抽出できたデータを任意のexcelに移管する時、最初の1データしか移管できなくて困っています。(次のようなものです・・・。) Private Sub エクセル起動_Click() On Error GoTo Err_エクセル起動_Click Dim oApp As Object Set oApp = CreateObject("Excel.Application") oApp.Visible = True 'Only XL 97 supports UserControl Property On Error Resume Next oApp.UserControl = True oApp.Workbooks.Open FileName:="D:\****\123.xls" oApp.range("b4").Value = Me![1] oApp.range("c8").Value = Me![2] oApp.range("d8").Value = Me![3] oApp.range("e8").Value = Me![4] oApp.range("f8").Value = Me![5] oApp.range("g8").Value = Me![6] oApp.range("h8").Value = Me![7] oApp.range("i8").Value = Me![8] oApp.range("j8").Value = Me![9] Exit_エクセル起動_Click: Exit Sub Err_エクセル起動_Click: MsgBox Err.Description Resume Exit_エクセル起動_Click End Sub それぞれの行にズラーッとデータがきて、さらにそのexcelを別名にてフロッピーに保存したいのですが、どのようにすればいいのでしょうか? よろしくお願いします。

  • ACCESSからEXCELの PasteSpecial でエラーになる

    ACCESSからEXCELを操作しています。 範囲コピー後、書式のみペーストしたいのですが、うまくいきません。 以下の PasteSpecial の行でエラーになります。 エラーメッセージは「Range クラスの PasteSpecial メソッドが失敗しました。」です。パラメータを付けないと全てがコピーされ正常に終わります。 パラメータをダブルクォートで囲っても駄目でした。 EXCELのマクロ出力そのままなのですが、書き方が悪いのでしょうか。 Dim oApp As Object Set oApp = CreateObject("Excel.Application") oApp.UserControl = True oApp.Workbooks.Open FileName:="format.xls" oApp.Range("A1:D4").Select oApp.Selection.Copy oApp.Range("C9").Select '↓エラーになる oApp.Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

  • ACCESSとEXCELの連携について

    ACCESSとEXCELの連携について教えてください。 メインフォームA(単票)の中にサブフォームB(単票)があり、更にサブフォームB(単票)の中にサブフォーム(メインからみると孫フォーム)C(帳票)があるという構成のフォームがあります。各フォームにはそれぞれテキストボックスtext_X,text_Y,text_Zがあり、メインフォームにコマンドボタンQがあります。いま、このコマンドボタンQをクリックすることによってtext_X,text_Y,text_Zの内容をEXCELの特定ファイルの特定セル(例えばL1、M1、N1~10)に反映させたいと思っているのですが、メインフォーム(A)にあるtext_Xとサブフォーム(B)にあるtext_YはEXCELのセル(L1、M1)に取り込むことができるのですが、孫フォーム(C)にあるtext_Zをセル(N1~10)に反映させることが出来ません。text_Zはフォームが帳票フォームであることからLOOPを使っています。コマンドボタンQのクリック時のイベントでコードの書き方が違っているらしいのです。VBAは全く素人の手探り状態です。どなたか、素人でもわかるように教えていただけたら幸いです。よろしくお願い致します。 具体的には次のようなものです。(一部抜粋) Private Sub コマンド145_Click() Dim oApp As Object Dim rs As DAO.Recordset Dim i As Long Set rs = Me!営業入力SF.Form.RecordsetClone Set rs = 担当(1)F.Form.RecordsetClone Set oApp = CreateObject("Excel.Application") oApp.Visible = True 'Only XL 97 supports UserControl Property On Error Resume Next oApp.UserControl = True '指定のエクセルファイルを開く oApp.Workbooks.Open Filename:="I:\再出発!\受注票.xlt" 'エクセルファイルへデータセットする oApp.Range("名称").Value = Me![名称] oApp.Range("住所").Value = Me![住所] oApp.Range("パンフ送付").Value = Forms![営業F]![営業入力SF]![パンフ送付日] oApp.Range("DVD送付").Value = Forms![営業F]![営業入力SF]![DVD送付日] oApp.Range("正式見積書").Value = Forms![営業F]![営業入力SF]![正式見積書送付日] oApp.Range("契約書送付").Value = Forms![営業F]![営業入力SF]![契約完了日] 'サブフォームの内容をエクスポートする i = 11 Do Until rs.EOF oApp.Range("J" & Format(i)).Value = rs!テキスト1 oApp.Range("L" & Format(i)).Value = rs!テキスト4 i = i + 1 rs.MoveNext Loop Set rs = Nothing Exit_コマンド145_Click: Exit Sub Err_コマンド145_Click: MsgBox Err.Description Resume Exit_コマンド145_Click End Sub (WINDOWS XP    ACCESS 2002  EXCEL 2002 を使用)

  • ACCESSのVBAでテンプレとなるxlsファイルを開き、編集を完了し

    ACCESSのVBAでテンプレとなるxlsファイルを開き、編集を完了してSaveAsメソッドで違う名前で保存したいのですが、以下のコーディングではパス名が存在しないor別プログラムで開かれているなどとエラーメッセージが表示されます。どこがいけないのでしょうか?   Dim oApp As Object Dim xlBook As Object Dim strWORK As String Dim i As Integer Dim strMDBPATH As String Dim strXLSFILE As String Dim strSaveFile As String 'Accessの起動位置を取得 strWORK = CurrentDb.Name '後ろから1文字単位で¥を探す For i = Len(strWORK) To 1 Step -1 If Mid(strWORK, i, 1) = "\" Then Exit For '¥だったら抜ける Next i 'D:\xxxx\yyyy\zzz.mdb --> D:\xxxx\yyyy\ にする strMDBPATH = Mid(strWORK, 1, i) 'Excelの元ファイルの名前を作成 D:\xxxx\yyyy\ + テンプレート.xls strXLSFILE = strMDBPATH & "回答票テンプレ.xls" Set oApp = CreateObject("Excel.Application") Set xlBook = oApp.Workbooks.Open(strXLSFILE) oApp.Visible = True 'Only XL 97 supports UserControl Property ' On Error Resume Next ' oApp.UserControl = True '回答票テンプレを開く ' oApp.Workbooks.Open FileName:=strXLSFILE oApp.Range("C10") = Me!起票日.Value oApp.Range("H10") = Me!所属部門.Value oApp.Range("P10") = Me!起票社員番号.Value oApp.Range("T10") = Me!起票社員名.Value oApp.Range("C17") = Me!対象システム.Value oApp.Range("K17") = Me!処理区分.Value oApp.Range("P17") = Me!対象画面.Value oApp.Range("C21") = Me!改修内容.Value oApp.Range("C38") = Me!回答日.Value oApp.Range("I38") = Me!回答社員名.Value oApp.Range("C43") = Me!回答内容.Value strSaveFile = Me!所属部門 & "_" & Me!起票日 & ".xls" xlBook.SaveAs FileName:=strMDBPATH & strSaveFile

  • Access2002によるエクセルへの出力

    現在、Accessで案件整理のDBを作成しております。 job-list.xlsというエクセルファイルの所定のシートに クエリであるQ_ジョブリストの表の値を一行ずつ差し込みたいと思っています。 そこで、下記の通りVBにてプログラムを組みましたが エクセルシートのB5から始まる一行目にクエリ表の一行目が入るのみで 全データを差し込みできません。 下記のプログラムをベースにB5以降もクエリ表の1行目以降の値が差し込みされるようにしたいと思っております。 どなたかご教授いただけますでしょうか。 よろしくお願いいたします。 Private Sub コマンド103_Click() Me.Requery myXLS = CurrentProject.Path & "\job-list.xls" Set myEXE = CreateObject("Excel.Application") myEXE.Visible = True Set myBK = myEXE.Workbooks.Open(myXLS) Set myRS = Application _ .CurrentProject _ .Connection _ .Execute("SELECT * FROM Q_ジョブリスト") myCNT = 0 myBK.sheets("新規ジョブ").range("B5") = myRS("ジョブNo") myBK.sheets("新規ジョブ").range("C5") = myRS("顧客") myBK.sheets("新規ジョブ").range("D5") = myRS("案件名") myBK.sheets("新規ジョブ").range("E5") = myRS("制作カテゴリ") myBK.sheets("新規ジョブ").range("F5") = myRS("発生日") myBK.sheets("新規ジョブ").range("G5") = myRS("依頼日") myBK.sheets("新規ジョブ").range("I5") = myRS("納品日") myBK.sheets("新規ジョブ").range("J5") = myRS("価格") myBK.sheets("新規ジョブ").range("K5") = myRS("外注費_合計") myBK.sheets("新規ジョブ").range("L5") = myRS("請求日") myBK.sheets("新規ジョブ").range("M1") = myRS("入金日") myBK.sheets("新規ジョブ").range("N1") = myRS("状況") myBK.sheets("新規ジョブ").Copy myCNT = myCNT + 1 End Sub

  • アクセスからエクセルを開いてデータを取得するには?

    こんにちは。 MS AccessからExcelを開いて、Excel上のデータを取得したいのですが、下記のようにしたらエラーとなりました。CellsがNGみたいなのですが、AccessではCellsは使用出来ないのでしょうか? 宜しくお願いします。 Dim oApp As Object Set oApp = CreateObject("Excel.Application") oApp.Visible = True On Error Resume Next oApp.UserControl = True oApp.Workbooks.Open Filename:="C:\TEST\Book1.xls" GYO = 1 Do KI = Cells(GYO, 1).Value MsgBox KI GYO = GYO + 1 Loop Until Cells(GYO, 1) = ""

  • RubyによるExcelファイル出力

    お世話になります。現在、以下のプログラムにて、指定対象のセル範囲を画面出力しております。また、画面出力以外で、プログラム対象となったファイル名がExcelにて出力されるようにしておりますが、 "puts sheet.Range('C15:C50').value" にて表示している内容を出力エクセルにも記載したいと考えているのですが、うまい方法はないでしょうか。 ご教示頂ければ幸いです。 # excel_data_gets.rb t = Time.new create_inf = t.strftime("%Y%m%d%H%M") log_a = ".xls" out_log = ("#{log_a}#{log_d}") chk_value_log = File.open(out_log,"w") # require 'win32ole' def getAbsolutePath file fso = WIN32OLE.new('Scripting.FileSystemObject') fso.GetAbsolutePathName(file) end def getFuncData file file = getAbsolutePath(file) $excel.visible = FALSE book = $excel.Workbooks.Open(file) sheet = book.Worksheets(1) puts sheet.Range('C15:C50').value book.Close end $excel = WIN32OLE.new('excel.Application') ARGV.each{|file| if file.length > 0 chk_value_log.print file.sub(/\.xls/,"") + "\n" # -> ワイルドカード展開用 chk_value_log.print getFuncData(file) end } $excel.Quit chk_value_log.close

  • 入力フォームの値をEXCELに出力したい(asp)

    asp(.NETではありません)で、入力フォームを作っています。 そして送信ボタンを押したら、フォームの値をEXCELに出力したいのです。 現在、aspの中にvbsを記述し、ボタンを押したらEXCELを開く・・・ところまでは出来ているのでそこにリストで選択された値を出力したいのですが、どうしても値を渡す事ができません。 <SCRIPT LANGUAGE="VBScript"> <!-- Sub cmdMain_OnClick set objExcel= CreateObject("Excel.Application") objExcel.Visible=True objExcel.Workbooks.Open "C:\sample.xls" End Sub --> </SCRIPT> <html> <head> <title>フォームの入力値を受け取る</title> </head> <body> <form method="post" action="form.asp"> <select name="list"> <option value="test1">テスト1</option> <option value="test2">テスト2</option> <input type="button" name="cmdMain" value="作表"> </form> </body> </html> このあと、どのようにしたらリストの値をEXCELに渡す事ができるのでしょうか。 お力をお貸し下さい、宜しくお願い致します。

  • ACCESSからExcelファイルを出力するときに…。

    AccessからExcelを出力する仕組みを作っているのですが、Excelのシートの書式設定をしなければいけないので、VBAを使って吐き出しています。 フォントの大きさや背景色については問題なく設定できました。 そこで、教えていただきたいのですが、さらに、セルの入力規則について、VBAで設定できる方法を、ご存知の方はいらっしゃいませんでしょうか? 特定のセルへの入力値を選択式(コンボボックス)にしたいと思っています。 もしお分かりになる方がいらっしゃいましたら、ご教授いただければと思います。

  • エクセル マクロ 出力と移動

    Private Sub CommandButton1_Click() Range("B8").Value = 1856 Range("B9").Value = "abc" Range("B11:D13").Value = "abc" End Sub (1)シート1にボタンを作成して出力できるようにしたのですがシート2に出力したい (2)(1)の続きでボタンを押した時、文字が入力後にそのシートに飛ぶようにしたいのですが どうすればいいでしょうか?

専門家に質問してみよう