【最大10000ポイント】当たる!!質問投稿キャンペーン!

Windows2000/Access2000
エクセルの売上ブックには、コピー画面と売上明細書というシートがあります。
アクセスで作った売上明細をエクセルの売上ブックのコピー画面に直接エクスポートさせたいのですが・・・
エクセルのシートを指定してエクスポートって出来るのでしょうか?
もし出来るのであればその方法を教えて頂けたらと思います。
宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

 


> アクセスで作った売上明細をエクセルの売上ブックのコピー画面に直接エクスポートさせたいのですが・・・
> エクセルのシートを指定してエクスポートって出来るのでしょうか?


(方法1)
DAO.Database.Execute "SELECT ...... INTO [Excel 8.0;Database=DriveName:\......Path......\FileName].[SheetName] FROM ......"

(方法2)
Excel.Application.Worksheets("SheetName").Range(........).CopyFromRecordset


(方法1)はExcelがインストールされていなくとも、ISAMのドライバがあれば動作可能。
ただし、セルに格納された文字列にシングルクォート「'」が付加されてしまう。

(方法2)を使用するにはExcelが必要。
 
    • good
    • 1
この回答へのお礼

お返事が遅くなって申し訳ございません。
実は、別件で忙しくまだせっかく教えて頂いたのに試せてません。
急ぎでお願いしますと言っておきながら・・・本当にすいません。
アドバイス有り難うございました。

お礼日時:2003/06/12 09:24

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qアクセスクエリ(複数)→マクロ→エクセル出力(ワークシート別)

仕事で必要になり、マクロ(アクセス)の勉強を始めました。
そこでわからないことがあります。どうか、よろしくお願いします。

マクロでエクセルに出力する方法はわかったのですが、それはばらばらのエクセルファイルで作成してしまう方法で、私の希望する一つのエクセルファイルに別々のシートで作成するのとは違うものでした。
試行錯誤してみたのですが、私の今の力ではできそうにありあません。

もしかしたらスクリプトを使ったりすればいいのかもしれませんが、私はエクセルでもマクロを使ったことがないのでとてもビビってます。

もしこの場合はスクリプトしか方法がないのであれば、これを機会に勉強をしようと思っています。
ただ、何から手をつけていいものか、さっぱりわからないのでオススメの参考書籍などあれば是非教えて下さい。

質問は2点「マクロの組み方」「スクリプトを使う場合は参考書籍等」を教えて下さい。
どうかよろしくお願いします。

Aベストアンサー

複数のクエリーの結果を、1つのエクセルファイルに別々のシートとして出力したいんですよね。
自分も試行錯誤していて、先程ちょうどできたところです。

まず、マクロの「アクション」で「ワークシート変換」を選び、引数(画面下部分の設定)を以下のように指定します。

変換の種類: 「エクスポート」
ワークシートの種類: Microsoft Excel 8-10など
テーブル名: クエリー名 <テーブルとあるがクエリーも可能>
ファイル名: (出力するエクセルのファイル名をフルパスで指定)
フィールド名の設定: フィールド名を1行目の見出しにするなら「はい」
範囲: <エクセル出力時のシート名>

最後の「範囲」がミソで、これでシート名が指定できることが、試してみて初めてわかりました。

上記の「ワークシート変換」アクションを、出力したいクエリーの数だけ順番に作成し、テーブル名と範囲だけ変えれば、同じエクセルファイルに複数のクエリーを出力できます。

ちなみに、AccessはVBAの解説書は多いようですが、マクロなどが詳しく載っている本は自分も見たことがありません。

複数のクエリーの結果を、1つのエクセルファイルに別々のシートとして出力したいんですよね。
自分も試行錯誤していて、先程ちょうどできたところです。

まず、マクロの「アクション」で「ワークシート変換」を選び、引数(画面下部分の設定)を以下のように指定します。

変換の種類: 「エクスポート」
ワークシートの種類: Microsoft Excel 8-10など
テーブル名: クエリー名 <テーブルとあるがクエリーも可能>
ファイル名: (出力するエクセルのファイル名をフルパスで指定)
フィールド...続きを読む

QAccessからExcelにエクスポートする時に常に上書きしたい

AccessのテーブルをExcelへ出力する際に、常に同じファイル名で保存する場合、
2回目以降は、上書きするかどうかを尋ねるメッセージが表示されます。
「常に上書きする」と決まっているので、メッセージを表示させたくないのですが、どうしたらいいのでしょうか。

現在、マクロで作成しており、出力の前後に「メッセージの設定」を入れてみたのですが、ダメでした。
VBAなら可能でしょうか?よろしくお願いします。

Aベストアンサー

こんにちは。maruru01です。

エクスポートする直前に、元のファイルを削除するか、移動するか、リネームするのはどうですか。(VBAですが)


削除
Kill "C:\エクスポート.xls"

移動
Name "C:\エクスポート.xls" As "C:\移動後\エクスポート.xls"

リネーム
Name "C:\エクスポート.xls" As "C:\エクスポート_1.xls"

QAccessのマクロでモジュールを実行させたい。

Access2002を勉強中の初心者です。

AccessでDB1という名前のデータベースを作成し、その中で、モジュール1というモジュールを作成しました。これを実行するマクロを作成したく、次のようにマクロを作成しました。
マクロのデザイン画面でアクションに「プロージャの実行」を選択、プロージャ名入力覧の右側の...のボタンを押して式ビルダ画面を表示、ここの「関数」フォルダを開いてDB1を選択、表示されたモジュール1を貼り付けてOK。
しかし、このマクロを実行すると、次のエラーとなります。「DB1 指定されたDB1が見つけることができない関数名が含まれています」

根本的に方法が間違っているのでしょうか?
アドバイスをよろしくお願いします。

Aベストアンサー

#1です。

ちょっと時間ができたので、Accessのヘルプで、
 "RunCode/プロシージャの実行" アクション
についてのトピックを見てみました。

結論から言うと、基本的な考え方が間違っているみたいです^^;。

「プロシージャの実行」アクションでは、「Function」プロシージャを指定するようです。
Subプロシージャではエラーになります。


つまりご質問の件では、
「Subプロシージャを呼び出すFnctionプロシージャ」をまず書かなけれえばならない。
そして、マクロのアクションでは、あらためてこのFunctionプロシージャを指定しなければいけません。

QACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。
EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。

下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。
IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

Aベストアンサー

もうひとつの書き方は
式1: IIf([試験番号] Is Not Null,[試験番号],"欠席")
第2、第3引数の、質問の順序にあわせるとこうなる。

QACCESS IIF関数 複数条件の設定について

 選択クエリにおいて、あるフィールド「 X」 のレコード数値が
 
  0<[X]<=50   であれば A 
  50<[X]<=100  であれば B 
  100<[X]<=150  であれば C

 と表記させるフィールド「Y」を追加したいと考えています。
 この場合、Yのフィールド設定で指定する数式についてご教授願います。

 一応、
  IIf(0<[X]<=50,"A","") Or IIf(50<[X]<=100,"B","") Or IIf(100<[X]<=150,"C","")

  としましたが、実行すると、Yの列がすべて「-1」と表記されてしまいます。

 何卒よろしくお願いいたします。

Aベストアンサー

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A", [X]<=100, "B", [X]<=150, "C", True, "")


なお、数学あるいは一般生活では確かに「0<[X]<=50」という表記をしますが、
Accessの関数などではこれだと正しい結果が得られません。
正しく認識させるためには、等号・不等号を挟んだ式は、「左辺」と「右辺」の
2つの要素からなる形にする必要があります。
(「0<[X]<=50」は「[X]>0 And [X]>=50」と分割してやる、と)

但し、今回のご質問のような『連続した範囲』であれば、前(左)で既出となる
式の要素で「[X]<=0」が「真(=-1)」とならなかった時点で、「[X]>0」が保証
されますので、上記のように、「[X]>0」を省略して「[X]<=50」だけを条件として
指定すればOk、ということになります。
(「0<[X]<=50」の次が「80<[X]<120」などのように、「50~80」が欠けた
 場合は、省略ができない、と)


【参考】
「0<[X]<=50」は、このままだと「0 < ([X]<=50)」という式と解釈されます。
この場合、「[X]<=50」は、「真(=-1)」か「偽(=0)」か「Null」のいずれかに
なります。
何にせよ、「0<[X]<=50」全体として「正(=-1)」となることがないため、
ご質問の式では、IIF関数は常に第3引数に指定された値「""」を返す
ことになります。

この結果、式全体としては「"" Or "" Or ""」という形となり、「0かNull」
以外なので、「真(=-1)」という値が返された、ということです。

なお、Nullについては、以前、他の方の質問につけた回答も、併せて参考までに:
http://oshiete.goo.ne.jp/qa/4850675.html

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A"...続きを読む

QACCESS側からEXCELの書式を設定するには?

ACCESSからEXCELにエクスポートした際、ACCESS側でEXCELの書式設定は行えますか?(例:セルAの幅がX桁等)

データ件数が多すぎて、下記VBでエクスポート処理をしています。

DoCmd.TransferSpreadsheet acExport, 8, "XXX", "\XX.xls", False, ""

お手数ですが、ご教授願います。

Aベストアンサー

例えばボタンにエクスポートの処理を書いているのでしたら
ボタンをCmd1とすると

Private Sub Cmd1_Click()
On Error GoTo Err_Cmd1_Click

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

DoCmd.TransferSpreadsheet acExport, 8, "XXX", "\XX.xls", False, ""

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("\XX.xls")
Set xlSheet = xlBook.Worksheets(1)

xlApp.Cells.Select
xlApp.Cells.EntireColumn.AutoFit
xlApp.Range("A1").Select
xlApp.Visible = False

xlApp.Quit

Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing

Exit_Cmd1_Click:
Exit Sub

Err_Cmd1_Click:
MsgBox Err.Description
Resume Exit_Cmd1_Click

End Sub

こんな感じで記述してください。

#1の中でxlApp.DisplayAlerts = False これは除いてください。保存しますかのメッセージが出ます。

例えばボタンにエクスポートの処理を書いているのでしたら
ボタンをCmd1とすると

Private Sub Cmd1_Click()
On Error GoTo Err_Cmd1_Click

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

DoCmd.TransferSpreadsheet acExport, 8, "XXX", "\XX.xls", False, ""

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("\XX.xls")
Set xlSheet = xlBook.Worksheets(1)

xlApp.Cells.Select
...続きを読む

QAccessからExcelへエクスポートするVBA

いつもお世話になっております。

AccessのクエリからデータをExcelにエクスポートします。
形式はMicrosoft Excel97-2003です。
フォーム"F_全データ"にボタンを付けて、クリックするとファイル名を自分で付けて保存する。というVBAを作成したいです。

1つ目のVBAは

DoCmd.OutputTo acForm, "F6_全データ", "MicrosoftExcelBiff8(*.xls)", "", False, "", 0

これだと、ファイルの種類が、Microsoft Excel5-7になってしまい困ります。
この形式になってしまうと、Excelデータを開くと、文字数が多いところが保存されていません。これだと困ります。

2つ目が

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "F_全データ", "○○○.xls"

こちらですと、ファイルの種類は97-2003になりまして、問題はないのですが、ファイル名は自分で指定したいのです。

ご指導よろしくお願いします。

いつもお世話になっております。

AccessのクエリからデータをExcelにエクスポートします。
形式はMicrosoft Excel97-2003です。
フォーム"F_全データ"にボタンを付けて、クリックするとファイル名を自分で付けて保存する。というVBAを作成したいです。

1つ目のVBAは

DoCmd.OutputTo acForm, "F6_全データ", "MicrosoftExcelBiff8(*.xls)", "", False, "", 0

これだと、ファイルの種類が、Microsoft Excel5-7になってしまい困ります。
この形式になってしまうと、Excelデータを開くと、文字数が多い...続きを読む

Aベストアンサー

単純な方法だと

mFileName = InputBox("ファイル名を入力してください")

にして

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "F_全データ",mFileName

にしておけば良いと思います。
後は「ファイルの保存ダイアログ」を開いてファイル名を取得するという方法も
取れますね。

Access VBA:
ファイルを開く、名前を付けて保存ダイアログボックスを表示するサンプル
http://billyboy.blog81.fc2.com/blog-entry-53.html

Qアクセスからエクセルのシートを追加して、名前をつける方法

アクセス2000で、ある所定の条件を満たした時に、規定の場所にあるエクセルファイルの先頭から2番目に空のワークシートを追加し、そのシート名を変数に格納されている値でリネームしようとしております。結構急務なんですが、excel.application~等使っても出来ませんでした・・・。プロフェッショナルな方、誰か方法を教えていただけないでしょうか?よろしくお願いします。

Aベストアンサー

こんにちは。

急ぎということで、取り急ぎで作ったコードです。目的の処理以外は一切おこなっていませんので、カスタマイズしてください。

また、処理速度の点で実行時バインドではなく、参照設定を予め行って下さい。


Option Compare Database

'要参照設定:Microsft Excel x.x Object Library
Sub AddXLWorksheet()

  Dim xlApp As Excel.Application
  Dim WB As Excel.Workbook
  Dim SH As Excel.Worksheet
  Dim strXLfile as stirng

  strXLfile = "C:\TEST.xls" 'Excelブックフルパス

  Set xlApp = Excel.Application
  With xlApp
    .Visible = True
    Set WB = .Workbooks.Open(strXLfile)
    'シートを3番目に追加
    Set SH = .Worksheets.Add(After:=WB.Worksheets(2))
    'シート命名
    SH.Name = "aaaaa" 'ここを変数で渡せば良い
  End With

  Set SH = Nothing
  Set WB = Nothing
  Set xlApp = Nothing

End Sub

こんにちは。

急ぎということで、取り急ぎで作ったコードです。目的の処理以外は一切おこなっていませんので、カスタマイズしてください。

また、処理速度の点で実行時バインドではなく、参照設定を予め行って下さい。


Option Compare Database

'要参照設定:Microsft Excel x.x Object Library
Sub AddXLWorksheet()

  Dim xlApp As Excel.Application
  Dim WB As Excel.Workbook
  Dim SH As Excel.Worksheet
  Dim strXLfile as stirng

  strXLfile = "C:\TEST.xls" 'Excel...続きを読む

QAccessからExcelのファイルを起動する

Accessのフォーム上にボタンを作成して
クリックすると特定のExcelのファイルが起動する
ようにしたいのですが、簡単な手はありませんか?

Aベストアンサー

こんにちは。maruru01です。

Shell関数を使って、

Shell "C:\Program Files\Microsoft Office\Office\EXCEL.EXE ファイル名"

とします。
ちなみに、Excelの実行ファイルのパスは環境によって違ってきます。

あと、Excelの実行ファイルのパスがわからなくても、ファイルに関連付けられたアプリケーションで開くには、API関数のShellExecute関数を使用します。
API関数については、WEB上で検索して下さい。
このサイトの過去の質問でもヒットするかも知れません。

Qアクセスからエクスポートするファイル名に日付を入れたい

アクセス2003を使用しています。

エクセルからデータをインポートして、データ加工後、エクセルにエクスポートさせるように作成中です。

マクロで
エクスポートするファイル名に日付を自動で設定せたいのですが、方法が判りません。
例)処理後20070824.xls 

どうか教えてください。よろしくお願いいたします。

Aベストアンサー

昔の回答で悪いけど参考にしてください。バージョン違いでうまくいかなかったらご勘弁。

参考URL:http://okwave.jp/qa1482781.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング