
OS:windows2000pro
アクセスバージョン:アクセス2000
エクセルバージョン:エクセル2000
投稿場所はここでいいのかちょっとわからないですが、投稿します。
素人です。もうしわけないですm(_ _)m
アクセスのテーブルのデータを既存のエクセルの指定したワークシートの指定したセルに送りたいのですが、うまくいきません。
やりたいことは、あらかじめグラフ表示用のエクセルファイルを作成しておいて、アクセスから指定したセルにデータを送り、その直後そのエクセルファイルを開くようにしたいのです。開いた後も、閉じるとアクセスに戻るようにしたいと思います。
現在はマクロのワークシート変換でやろうかと四苦八苦しています。
範囲のところに、
test!A1:X1
といった感じで指定しています。一回目はうまくいきますが、二度目はデータが残っているためか、失敗してしまいます。
現在考えている対処法は、エクセルファイルの表示画面に閉じるボタンを用意し、それが押されることで、データが記載されているシートの内容を削除し、エクセルを閉じるというようにしようと思っています。
お聞きしたいのは、エクセルVBAで、このような動作が可能かどうか。
また、より簡単で効率の良い方法があれば教えていただければ幸いです。
よろしくお願いしますm(_ _)m
A 回答 (1件)
- 最新から表示
- 回答順に表示
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が見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
Excel マクロ ファイルと同じシ...
-
別ブックをダイアログボックス...
-
VBA コードを実行すると画面が...
-
[Excel]ADODBでNull変換されて...
-
エクセルVBAが途中で止まります
-
VBAで別のブックにシートをコピ...
-
【Excel VBA】書き込み先ブック...
-
VBで配列の差分を取りたいのですが
-
フォルダ内の全てのファイルに...
-
ユーザーフォームの切り替えに...
-
Excelマクロ 該当する値の行番...
-
新しく開いたブックをアクティ...
-
オブジェクトは、このプロパテ...
-
Excel2007VBAファイルの表示に...
-
【VBA】全シートの計算式を全て...
-
複数シート名とブック名が一致...
-
VBA 別ブックからコピペしたい...
-
マクロで最終行を取得したい
-
Book間の移動
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のエクセルファイルとシー...
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
【Excel VBA】書き込み先ブック...
-
2つ目のコンボボックスが動作...
-
[Excel]ADODBでNull変換されて...
-
Excelマクロ 該当する値の行番...
-
VBA 実行時エラー 2147024893
-
Excelのマクロコードについて教...
-
Excel にて、 リストボックスの...
-
【ExcelVBA】インデックスが有...
-
VBA アプリケーション定義また...
-
【Excel VBA】表の列の値毎に分...
おすすめ情報