• 締切済み

アクセスからエクセルへのデータ転送、その後グラフ表示

OS:windows2000pro アクセスバージョン:アクセス2000 エクセルバージョン:エクセル2000 投稿場所はここでいいのかちょっとわからないですが、投稿します。 素人です。もうしわけないですm(_ _)m アクセスのテーブルのデータを既存のエクセルの指定したワークシートの指定したセルに送りたいのですが、うまくいきません。 やりたいことは、あらかじめグラフ表示用のエクセルファイルを作成しておいて、アクセスから指定したセルにデータを送り、その直後そのエクセルファイルを開くようにしたいのです。開いた後も、閉じるとアクセスに戻るようにしたいと思います。 現在はマクロのワークシート変換でやろうかと四苦八苦しています。 範囲のところに、 test!A1:X1 といった感じで指定しています。一回目はうまくいきますが、二度目はデータが残っているためか、失敗してしまいます。 現在考えている対処法は、エクセルファイルの表示画面に閉じるボタンを用意し、それが押されることで、データが記載されているシートの内容を削除し、エクセルを閉じるというようにしようと思っています。 お聞きしたいのは、エクセルVBAで、このような動作が可能かどうか。 また、より簡単で効率の良い方法があれば教えていただければ幸いです。 よろしくお願いしますm(_ _)m

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 ちょっと考えてみました。 >現在はマクロのワークシート変換でやろうかと四苦八苦しています。 そのワークシート変換を使ってみました。 私も、これでは、四苦八苦に入りますね。もうちょっときれいな格好に出来ないかとは思っています。不恰好ですが、Excelを呼び出して、インポートさせるよりも、ずっと、この方が簡単なんですよね。 コードの指示を読んで、実際のファイル名やシートを指定してください。 >あらかじめグラフ表示用のエクセルファイルを作成しておいて、アクセスから指定したセルにデータを送り、その直後そのエクセルファイルを開くようにしたいのです。 それは、無理なんですが、以下のコードの場合、私は、グラフ作成マクロの方がよいとは思っているのですが、今は、データだけを送って、グラフを変更させるのは試していません。もし、そうなら、UsedRange.Copyを Range("A1").CurrengRegion.Copy の方が無難かもしれません。貼り付け側は、今度は、Range("A1").SpecialPaste などとしてやります。 とりあえず、テスト用として、掲示しておきます。 Private Sub コマンド1_Click()  On Error GoTo Err_コマンド1_Click  Dim xlApp As Object  Dim Fn As String  Dim xlFn As String  Fn = "c:\$ac2xl.xls" 'テンポラリブック  xlFn = "c:\Test1.xls" '実際のブック 'テーブル名を入れてください。  DoCmd.OutputTo acOutputTable, _          "テーブル名", _          acFormatXLS, _          Fn, _          True, ""  Set xlApp = GetObject(, "Excel.Application")  'xlApp.Visible = True 'これがなくても、ブックは見える    With xlApp   .ScreenUpdating = False '画面のちらつきをなくする   .ActiveWorkbook.Worksheets(1).UsedRange.Copy   .Workbooks.Open xlFn    '実際のワークシート(以下は、インデックスを使っていますが名前でも可)   .ActiveWorkbook.Worksheets(2).Paste    .ActiveWorkbook.Worksheets(2).Activate   .ScreenUpdating = True    'Excel側のマクロを呼び出し例/グラフマクロを作ってください。         .Run .ActiveWorkbook.Name & "!testmacro"    'ブック側の標準モジュールの testmacro を呼び出す       .ActiveWorkbook.Close True   .UserControl = True Exit_コマンド2_Click:  On Error Resume Next   .DisplayAlerts = False 'クリップボードを無視させる   .Quit   .DisplayAlerts = True   Kill Fn 'テンポラリブックの削除 End With  Set xlApp = Nothing  Exit Sub Err_コマンド1_Click:  MsgBox Err.Description  Resume Exit_コマンド1_Click End Sub

関連するQ&A

  • アクセスのフォーム エクセルのシートをはめ込む

    アクセスのフォームに一つのコントロールとして、エクセルのワークシートの画面をはめ込むことは可能でしょうか? 追加・編集できなくてもハードコピーみたいでいいから、指定したエクセルファイルの指定したシートをアクセスのフォームに表示することはできますか?

  • WordでExcelのデータを差込印刷する

    ウインドウズを使っています。 Word2000の差込印刷ヘルパーでExcel2000のワークシート内のセル範囲のデータを差込印刷したいのですが、セルの範囲を手入力して入れると、「現在のタスクを完了するためにMicrosoft Excelに対して再度DDE接続を行うことが出来ませんでした」といわれてしまい先に進めません。 詳細は以下です。 差込印刷ヘルパーの「2.データファイルの指定」でデータファイルを開くを選び Excelのワークシートにして指定のExcelファイルを選択します その後「Microsoft Excel 範囲名またはセルの範囲(N):」と言うダイアログボックスが出てきます そこの項目には既に「ワークシート全体」と言う選択肢が選ばれていますが 差し込みたいワークシート内のセルの範囲を半角で手入力して入れると(A1:F3のように) 上に書きました「現在のタスクを~~」というメッセージが出てセルの範囲を指定できません。 ヘルプを見ても「範囲名または~」の所にはセルの範囲を入力しても大丈夫なようになっていますが出来ません。 また、差し込むタイトルを含むように範囲は入力しています。 私がやりたいのは、Excelワークシート1枚に4つのセル範囲を作り、それをそれぞれ別のWordファイルに差し込みたいのですがそのようなことは出来るのでしょうか。 また、空白のセルがあると出来ないと言うようなことをちらっと聞いたのですが 詳しく知りたいです。 説明が分かっていただけるか不安ですが、 本にも全然載っていなくて本当に困っています。 少しでも分かる方がいましたら教えてください。 よろしくお願いします。

  • Excelで違うファイルのデータを参照する

    EXCELで違うファイルにあるワークシート上のセルを参照することはできるのでしょうか。 巨大データベースから必用なデータをピックアップして表示したいのですが データベースが大きい為、全てを読み込むのに時間がかかります。 データを表示するファイル上に条件を入力すると、データベースの対応するワークシート上のデータを表示できるようにしたいのですが。。。

  • excelの関数について

    excelの関数について sheet1、sheet2の二つのシートがあり sheet1のA1セルにsheet2のA1セルのデータを呼び出すために、 次のような式をsheet1のA1セルに入力した =sheet2!A1 通常だと表示が変更されるかと思いますが、表示が変更されず・・・ dataを呼び出すことができません。 四苦八苦して「上書き保存」ボタンを押すことで表示が更新されて呼び出すことが出来ることが 確認できました。 これはexcelファイルの破損でしょうか? もしくは、excelファイルの設定の問題でしょうか? 誰か教えてください

  • いきなりPDFtoデータでエクセルにデータ変換

    ソースネクスト社『いきなりPDFtoData』をダウンロード購入しました。 早速手持ちのPDFを変換してみましたが、作成ファイルをEXCELに指定、PDF解析の使用にチェックを入れて、ファイルをドラッグ&ドロップしてみたところ、エクセルファイルにはなりましたが、図形としてワークシートに貼られた状態でした。セル単位にデータが入るものと思っておりましたが、ちがうのでしょうか? セルにデータが入るのだとすれば、どうやったらいいのでしょうか??

  • エクセルのセルが表示されない

    エクセル2002を使用していますが、エクセルファイルを開くと、ツールバーは正常ですが、セル部分は全体が灰色に表示され、ワークシートが表示されません。直接ファイルを開けないため、エクセルファイルを立ち上げ(ワークシートおよびセルは異常なし)、ツールバーの「ファイル」から「開く」で、開きたいファイルを選択すると開けます。直接ファイルを開く設定方法を教えて下さい。

  • Access2000でExcelからリンクしたテーブルのデータがうまく表示されません

    Excelで作成したあるワークシートをAccessでテーブルとしてリンクしたのですが、 インポートは成功したのですが、Excelで他のシートのフィールドを参照する 式を入力した一部のデータに#Num!エラーが表示されうまく表示されません。 値のみが入力されているNo.とかはうまく表示されるのですが、 計算式が入るとダメなのでしょうか? また、良い解決策はないでしょうか?

  • アクセスで24時間を越える表示をしたい

    エクセルではセルに「1900/1/1 1:00:00」と入力し 書式設定を『[h]:mm』にすると 「25:00」と表示されるのですが アクセスでは同じようにできません。 テーブルのデザインビューで 書式を『[h]:mm』とすると、 自動で『\[h\]:nn』へ変換されてしまい、 データシートビューで エクセルと同じく、「1900/1/1 1:00:00」と入力すると 『[1]:00』 と表示されてしまいます。 どおすれば アクセスでも「1900/1/1 1:00:00」と言うデータを 「25:00」と表示させることができるのでしょうか? ヴァージョンは2003です。 ご教授よろしくお願い致します。

  • エクセルでグラフの元データがどこかわからない

    エクセルでグラフ作成し、元のデータを変えようとしたが、元のデータのワークシートを表示できません。 どうやったらいいか教えてください。

  • Accessデータの特殊なエクスポート方法

    いつもお世話になっております。 Accessの特定のデータを、ある特定のExcelの指定したシート及びセルにエクスポートする方法が分かりません。 例として、Accessのテーブル(T_売上)のフィールド(品名)をエクセルファイル(販売.xls)のsheet1のシート名(売上明細)のセル「D6」へ、同じくAccessのテーブル(T_売上)のフィールド(金額)をエクセルファイル(販売.xls)のsheet1のシート名(売上明細)のセル「F12」へエクスポートしたいのです。 これにより、Accessデータを利用して、請求書を作成したいのです。 もちろんAccess上では、請求書発行プログラムは作っていますが、今回、Excelで利用する必要が生じたための質問です。 Access及びExcelは2010(OSはWindows7)です。Access、Excelは2003でも構いません。 また、Access、Excelは共にC:\にあります。 ネットでも色々と調べてみましたが、今一つ要領を得ません。 方法をご存知の方は是非アドバイスをお願い致します。