• ベストアンサー

Office Links/Excelに出力のVBA

access2000でフォームで抽出したリストを、Office Links/Excel に出力して活用しているのですが、 出来れば、この操作をコマンドボタンを設けて、VBAで実行したいです。 テーブルからのエクスポートだったら、excelへのエクスポートが出来そうなのですが、フォームだと出来なさそうで・・・ やり方のご教授をお願い致します。

  • puyopa
  • お礼率87% (459/525)

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

  • ベストアンサー
  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.3

VBA は苦手ということですからマクロで。 「出力」アクションで出来ます。 エラー処理などの関係で、どうしても VBA でということなら マクロを VBA に変換する機能があります。 2000 の場合、サービスパックの当て方によっては 変換機能が使用できない場合があるかもしれません。

puyopa
質問者

お礼

回答ありがとうございました。 マクロは少し分かりますが、VBAは理解不足で分かっておりませんでした。 もう少し自分で調べてから質問します。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

>フォームで抽出したリスト 条件をフォーム上で指定したのか。 その結果のクエリのじっこうけっかがあるということか。 >テーブルからのエクスポートだったら 質問があいまい。クエリの結果をテーブル化する、方法もアクセスにある。 >VBAで実行したいです といっておきながら >実はVBAの素人でして transferspreadsheetコマンドの回答が出ているのだから、アクセスの本や、Googleなどで「アクセス transferspreadsheet」で照会でもして勉強しましたか。少しは勉強しないと。 何十万の記事があるそうで、最初の http://www.accessclub.jp/samplefile/samplefile_126.htm など

puyopa
質問者

お礼

回答ありがとうございます。 おっしゃるとおりでした。自分で調べてみると多くの情報があることがわかりました。 以後気をつけます。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

フォームが呼び出すモジュールを作成して transferspreadsheetコマンドを記述すれば良いですよ。

puyopa
質問者

お礼

迅速な回答ありがとうございます。 誠に恐縮なのですが、実はVBAの素人でして、頂いたアドバイスだけでは実行出来そうにありません。 もう少し、具体的にやり方をご教授頂ければ大変ありがたいです。

関連するQ&A

  • AccessのフォームをExcelに出力

    いつもお世話になっております。 現在、Access2003でDBを作成中です。 "テーブル1"をパラメータクエリで抽出します。"クエリ1"。 そのクエリを基にフォームを作成しています。"フォーム1"。これは抽出して印刷したり、Excelに出力するために作成しました。レポートではなく、フォームにした理由は、コマンドボタン等を配置できることからです。 Excelに出力する際のVBAでつまづいてしまいました。 DoCmd.OutputTo acOutputForm, "フォーム1", acSpreadsheetTypeExcel9 これで問題なく出力できています。が、、、 Access2007の一部のPCでこれを実行するとエラーが出ます。 原因は"OutputTo"が含まれているとエラーになるようです。 ちなみにエラーは「現在出力しようとしているオブジェクトの形式は無効です。」 「2007 Office スイート Service Pack 2」こちらをインストールすると良いそうなのですが、だめでした。 WindowsXP、Office2007はこのVBAだとエラーになります。 WindowsVista、Office2007は正常に使えました。 PCの何か設定?と考えたりもしたのですが、はっきりとした原因がわからないのでは、他の人にDBを使っていただけないので、エラーにならないVBAでいきたいです。 もうひとつ、 mFileName = InputBox("ファイル名を入力してください。") DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "フォーム1", mFileName こちらのVBAはクエリの出力だとうまくいくのですが、フォームだとだめでした。 クエリから抽出して保存すれば良いのですが、理想はこの形です。 1.フォーム1を開くと「担当者を入力」とパラメータクエリが働き、抽出結果をフォーム1に表示される。 2.[出力]ボタンを押すと、ダイアログボックスが開いてファイル名を指定して保存する。または、ダイアログボックスが開かなくても名前を指定できれば良いです。最悪、指定できなくても良いですが、原因となる、"OutputTo"を避けたVBAでいきたい。 3.mFileName = InputBox("ファイル名を入力してください。") DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "クエリ1", mFileName これだと、1.でパラメータクエリで抽出結果をフォームに表示させて、2.で[出力]ボタンを押すと、また、パラメータクエリで抽出しなければならなくなるのでできれば避けたいです。 こちらの条件でご教授お願い致します。 また、WindowsXP、Office2007でエラーが出ましたので、これを解決する方法でも良いです。 よろしくお願い致します。

  • ExcelのVBAでフォームのプロパティをコード化したい

    Excel2000 を使っています。VBAでフォームを作ったんですが、VBと違いエクスポートしてもフォーム内容(プロパティ)はコードに入ってきません。 今のVBAはVBと揃えているとばかり思っていたのにがっかりです。 どうにかして、VBAのフォームプロパティをコードに出力する方法はないでしょうか。

  • AccessのデータをExcelテンプレートに出力・自動印刷したい

    Access2000を使っています。 クエリで必要なデータだけをフォーム上に抽出した後、フォーム上のコマンドボタンをクリックすることで、Excel2000で作成したテンプレートに出力・自動印刷したいのですがこんなことできますか?できるのでしたら方法を教えてください。マクロでもいいのですが、できればVBAのコードで教えていただければ助かります。 よろしくお願いします。

  • Excel2010 VBA

    Excel2010でVBAのフォームを使って「コマンドボタン」をクリックしたときにフォーム入力した内容をデータ(リスト)に転記(反映)させたいのですが どのようにしたらいいでしょうか? コマンドボタンの作り方は分りましたがそのマクロを実行する内容(コード)の作り方がいまいちわかません ちなみにデータ(リスト)は上から順番に空白の列を埋められていけばいいです よろしくお願いします

  • AccessからExcelのファイルを作るVBAを書いているのですが・・・

    AccessのテーブルをExcelのファイルにして特定のフォルダに保存するVBAを作成中です。 訳あって、テーブルからそのままExcelにできず(transferのコマンドが使えないのです)、並び替えや抽出などをかけて、一旦フォームにしてから、Excelのファイルにします。その際に、Outputtoというコマンドを使用しています。 そのテーブルに日付型のデータがあり、そのコマンドで作ったExcelのファイルでは、日付が「yyyy/mm/dd」で表示できず、21-feb-01のような形になってしまいます。どうやらファイルの形式が古いせいのように思うのですが、Outputtoのコマンドではファイル形式まで指定できないみたいで・・・ いい方法があったら教えていただきたのです。 よろしくお願いします!m(__)m

  • アクセスVBAでエクセルを操作するのは不可能でしょうか?

    アクセスVBAでエクセルを操作するのは不可能でしょうか? テスト.xlsのシート1の1行目コピーして テーブルに追加するということがしたいのですがどういうコードを書けばいいのか分かりません。 テスト.xlsは開いている状態です。 アクセス側のユーザーフォーム上のコマンドボタンをクリックしたらこの動作を実行するコード。。。 というのは不可能でしょうか?よろしくお願い致します。

  • ExcelVBAでDOSコマンドの標準出力をリアルタイムでフォームへ出力するには

    いつもお世話になります。 タイトルにある通りです。 VBAより実行したDOSコマンドの実行結果を、tailコマンドのように、フォーム(テキスト部品など)に出力させたいと考えています。 一度実行結果をファイルへ保存してそれをフォームへ出力させる、というのではなく、あくまでリアルタイムで表示する、ということは可能でしょうか? よろしくお願いします。

  • office365のexcel2016でのVBA

    社内のネットワークハードディスクにexcel2007で作成した簡単なVBAを組み込んだxlsmファイルを保存し、複数の端末で使用しています。excel2007が入った端末でVBAを実行するとものの1秒で処理が終了するのですが、office365のexcel2016が入った端末で実行すると数分間かかってしまいます。ところが、同じxlsmファイルを同端末のデスクトップにコピーしてexcel2016で開き、VBAを実行すると一瞬で処理が終わります。セキュリティの問題だと思うので、2016の「設定」から「セキュリティセンターの設定」に入り、色々いじってみたのですが改善しません。ファイルをNASに置いたままexcel2016でVBAを快適に動作させるにはどうしたら良いのでしょう?

  • AccessのクエリをEXCELのVBAを使用して置き換える方法をご教

    AccessのクエリをEXCELのVBAを使用して置き換える方法をご教示願います。 AccessデータはE:¥生産管理¥生産.mdbで現状データ内 受注残とゆうクエリ (受注NO 品番 品名 納期 受注残で並んでいます)を Office Links→Excelの出力処理にてExcelデータに変換しこのデータを 元データにし品番を縦ならび、納期を横並びにしてどの日付に何個受注が残っているかが わかるようにVBAで処理するようにしております。 横並びにする理由は資材発注などで結構先の受注を確認して自動計算するためです。 上記のように自動化されていない Office Links→Excelの出力処理をVBAでやる方法が 検索方法が悪いせいかわかりません。 Office Links→Excelの出力処理もしくは クエリから直接データを引き込む方法をご教授お願いいたします。

  • EXCELのVBAでフォームに文字を出力したい

    EXCELのVBAでフォームに直接、文字や円を出力したいのですが・・・ フォーム名 print 変数 フォーム名 circle(a,b),c とプログラムしてもエラーが出てしまい実行されません。 何が原因なんでしょうか?

専門家に質問してみよう