今日も、アクセスを取り上げます。
任意のテーブルもしくはクエリーのデータをエクセルファイルに出力する方法をご紹介します。
その際、エクセルのファイル名だけではなく、シート名も指定してみます。
なお、シート名を指定しないと、テーブルもしくはクエリーの名前が
シート名となりますよ。
なお、Accessファイルは、デスクトップに保存してあるものとします。
エクセルファイルは、同じディレクトリ(今回は、デスクトップとなります)に
出力されるようにします。
従って、マイドキュメントにAccessファイルが保存してあれば、
エクセルファイルも自動的にマイドキュメントに出力されます。
Access2007でご説明しますが、2003やXPバージョンでも、問題なく動作します。
以下の画像は、今回エクスポートするテーブルのデータです。
T講座 という名前のテーブルです。
フォームをデザインビューで開いて、ボタンを配置します。
ボタンを選択して、プロパティをクリックします。
(F4キー、もしくは、Alt + Enter でもかまいません)
書式タブの標題に「エクスポート」と入力します。
これが、ボタンの表示される文字となります。
続いて、イベントタブのクリック時の右端の「・・・」をクリックします。
コードビルダを選択して、OKをクリックします。
Visual Basic Editorに切り替わりますので、
以下のように入力します。
画像を参考にしてください。
若干の説明をします。
FileName という変数を宣言して、そこにAccessファイルのパスとエクセルのファイル名を代入しています。
これで、Accessファイルがどこに保存してあろうと、同じフォルダにエクセルファイルが保存されるようになります。
エクセルのファイル名は、自由に変更してもかまいません。
今回は、エクスポート講座.xls としました。
次の1文がメイン処理です。
acSpreadsheetTypeExcel9 というのは、Excel2000ファイル形式を指しています。
これにしておくのが、一番安定しているようです。
保存先のファイル名は、先ほど仕込んだ FileName を使っています。
また、最後の 「講座情報 」は、シート名の指定です。
これを省略すると、テーブル名の「T講座」がシート名となります。
さて、それでは、Accessに切り替えて、フォームビューで表示してください。
「エクスポート」ボタンをクリックします。
画面に変化がありませんが、これで、エクセルファイルが出力されました。
もし、エラーが表示されたら、入力ミスの可能性がありますので、よく確認してみてください。
デスクトップ画面を見ると、エクセルファイルが作られていますね。
このファイルを開いてみましょう。
確かに、データが書き出されていますね。
シート名も確認してみましょう。
確かに、「講座情報」となっていますね。
なお、すでに同名のエクセルファイルが存在していても、エラーは出ません。
シートを上書きします。
シート名を変更してエクスポートすると、シートが増えていきますよ。
エクエルつながりで思い出しました。
エクセルって色々な機能があって、使い方によってはまるで手品(マジック)のようになるんですよね。
子どもの“プログラミング的思考"をグングン伸ばす本
この本、おすすめですよ(^^)
だい
任意のテーブルもしくはクエリーのデータをエクセルファイルに出力する方法をご紹介します。
その際、エクセルのファイル名だけではなく、シート名も指定してみます。
なお、シート名を指定しないと、テーブルもしくはクエリーの名前が
シート名となりますよ。
なお、Accessファイルは、デスクトップに保存してあるものとします。
エクセルファイルは、同じディレクトリ(今回は、デスクトップとなります)に
出力されるようにします。
従って、マイドキュメントにAccessファイルが保存してあれば、
エクセルファイルも自動的にマイドキュメントに出力されます。
Access2007でご説明しますが、2003やXPバージョンでも、問題なく動作します。
以下の画像は、今回エクスポートするテーブルのデータです。
T講座 という名前のテーブルです。
フォームをデザインビューで開いて、ボタンを配置します。
ボタンを選択して、プロパティをクリックします。
(F4キー、もしくは、Alt + Enter でもかまいません)
書式タブの標題に「エクスポート」と入力します。
これが、ボタンの表示される文字となります。
続いて、イベントタブのクリック時の右端の「・・・」をクリックします。
コードビルダを選択して、OKをクリックします。
Visual Basic Editorに切り替わりますので、
以下のように入力します。
画像を参考にしてください。
Private Sub コマンド0_Click() Dim FileName As String FileName = Left(CurrentDb.Name, InStrRev(CurrentDb.Name, "")) _ & "エクスポート講座.xls" DoCmd.TransferSpreadsheet acExport, _ acSpreadsheetTypeExcel9, "T講座", _ FileName, True, "講座情報" End Sub
若干の説明をします。
FileName という変数を宣言して、そこにAccessファイルのパスとエクセルのファイル名を代入しています。
これで、Accessファイルがどこに保存してあろうと、同じフォルダにエクセルファイルが保存されるようになります。
エクセルのファイル名は、自由に変更してもかまいません。
今回は、エクスポート講座.xls としました。
次の1文がメイン処理です。
acSpreadsheetTypeExcel9 というのは、Excel2000ファイル形式を指しています。
これにしておくのが、一番安定しているようです。
保存先のファイル名は、先ほど仕込んだ FileName を使っています。
また、最後の 「講座情報 」は、シート名の指定です。
これを省略すると、テーブル名の「T講座」がシート名となります。
さて、それでは、Accessに切り替えて、フォームビューで表示してください。
「エクスポート」ボタンをクリックします。
画面に変化がありませんが、これで、エクセルファイルが出力されました。
もし、エラーが表示されたら、入力ミスの可能性がありますので、よく確認してみてください。
デスクトップ画面を見ると、エクセルファイルが作られていますね。
このファイルを開いてみましょう。
確かに、データが書き出されていますね。
シート名も確認してみましょう。
確かに、「講座情報」となっていますね。
なお、すでに同名のエクセルファイルが存在していても、エラーは出ません。
シートを上書きします。
シート名を変更してエクスポートすると、シートが増えていきますよ。
エクエルつながりで思い出しました。
エクセルって色々な機能があって、使い方によってはまるで手品(マジック)のようになるんですよね。
子どもの“プログラミング的思考"をグングン伸ばす本
この本、おすすめですよ(^^)
だい