- ベストアンサー
Access-VBAでExcelファイルを作成する。
こんにちわお世話になります。 「Excelにエクスポート」ボタンをクリックすると、Inputboxか何かが表示されて、Pathやファイル名やシート名を入力し、「実行」ボタンを押すと、新規にExcelのBookを、そのPath、ファイル名、シート名で作成する。その後、そのシートにデータを書き込むという作業をしたいのです。 AccessのデータをExcelの任意のシートを開いて書き込むという部分のVBAコードはわかりますので、新規Book作成部分のコードがわかるかたお願いします。 Office97を使用しています。
- souta_n
- お礼率85% (391/456)
- オフィス系ソフト
- 回答数3
- ありがとう数4
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
プロジェクト→参照設定でMicrosoft Excel *.* ObjectLibraryにチェックを入 れて下さい。 オブジェクトへの参照を格納する変数を事前バインディング。 変数にオブジェクトの参照を代入します。Addメソッドを使って新規workbookと worksheet オブジェクトを作成します。 値を代入し名前を付けて保存してオブジェクトを開放する。という流れで良いと 思います。 Private Sub Command1_Click() On Error Resume Next Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1) ' Excel のセルに値を代入します。 xlSheet.Cells(1, 1).Value = " " ' Worksheet を名前をつけて保存します。ダイアグボックス等を使用して パスやBook名など入力できるようにしてもOKです。 xlSheet.SaveAs "c:\Temp.xls" xlApp.Quit Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing End Sub こんな感じでしょうか。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17068)
エクセルのツール-マクロ-マクロの記録で エクセルのファイル-新規作成の操作をすれば、 Workbooks.Add ActiveCell.FormulaR1C1 = "aaa" Range("A2").Select ActiveWorkbook.SaveAs Filename:="C:\My Documents\ccc3.xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False となります。 これをそっくりxlapp=CreateObject"Excel.Application") の後にいれれば良いです。 ActiveCell.FormulaR1C1 = "aaa"は例でいれただけで、 実質シート内容を作成は ActiveWorkbooks.Worksheets("Sheet1").Range("a1")= とかで行う。
お礼
最初これを読んだとき良くわからなかったのですが、後のO_cyanさんの回答と見比べてやっと意味がわかりました。ありがとうございます。
- a-kuma
- ベストアンサー率50% (1122/2211)
Workbooks.Add で新規に Book を作成します。 シート名については、新規に作成された Workbook は、所定の数のシートを持って作成されるので、 シート数がひとつになるまで ActiveSheet.Delete を繰り返し、ひとつになったら シート名をお好みのに変える、という感じでしょうか。 SaveAs で保存すれば、パスとファイル名は指定できますね。 Dim excel As Object excel = CreateObject("Excel.Application") Workbooks.Add Do While Sheets.Count <> 1 ActiveSheet.Delete Loop ActiveSheet.Name = "sheet name" ' ここで、シートに対して処理を ごにょごにょ excel.SaveAs "d:\test.xls" excel.Application.Quit excel = Nothing # 全然、試してません
お礼
試してみました。いっぱいコレクションが無いとか変数が定義されていません。みたいなエラーが出まして、改めてdimで宣言したりしたんですが、結局うまくいきませんでした。もう少し自分にテクニックがあれば何とかできそうなもんなんですが・・・ ありがとうございました。
関連するQ&A
- VBAでエクセルからエクセルのファイルを開くには?
D:\に db1.mdb Book1.xls があります。 db1.mdbのフォームのコマンドボタンをクリックして Book1.xlsを開きたいのですが VBAコードをご教授いただけますか? (マクロではなくVBAコードが知りたいです) エクセルからエクセルのファイルを開くなら Workbooks.Open ファイルのフルパス で出来ました。 ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAからEXCELの新規ファイルを作成する
VB6.0 Excel2000を使用しています。 VBAからEXCELファイルを参照する方法は前回教えていただきましたが 新規にEXCELファイルを作成する方法がわからないので教えてください。 【やりたいこと】 ・ファイル名は、ダイアログボックスから入力され、フルパスで変数に 格納されています。 ・シート名は固定文字で指定します。 (↑ここまではできています) (↓ここからわかりません) ・セルの内容を編集したあと、指定のファイル名・シート名で保存したい よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- EXCELで複数のファイルを同じブック内で開きたい
久しぶりにVBAを使用してやらせたいことがありますので、質問です。 複数のCSVファイルがあり、これを同じブック内のシートとして開くことは 出来ますでしょうか。 メニューから開くとして、それぞれのファイルを開くと、別々のブックにて開いてしまいます。 これを同じブックで、シート別に開かせたいのですが、出来ますでしょうか。 さらに、これをVBAでやりたいと考えております。 まず考えたのは、 ”Application.GetOpenFilename”です。 ただし、これを利用すると、別々のブックでしか開くことができませんでした。 次に考えたのが、”QueryTables.Add”を利用することです。 これだと、同一ファイル、同一シート内にデータを取り込むことができるので、 問題ないのですが、ファイル名を指定しなければなりません。 ファイルが変わるたびにVBAでパスを修正するのは大変ですので、 ”QueryTables.Add”のデータ取り込みでファイル選択ダイアログが開くような コードがあればよいと考えております。 ファイル選択のダイアログが開いて、そのファイルのパスが取得できるような コードにすれば、”QueryTables.Add”にてデータの取り込みができそうなのですが、 どうすればよいか思いつきません。 "Dialogs(wdDialogFileFind)"というものも見つけたのですが、うまくいきませんでした。 何か良い方法がありますでしょうか。 よろしくお願いします。 Dialogs(wdDialogFileFind)
- ベストアンサー
- Visual Basic
- エクセルで作成したリスト
エクセルで作成したリスト(氏名・住所など10項目程度で200件ほどです)を各取引先ごとにブックを作成して(エクセルファイルでシートは6枚ある決まった書式です)ファイル名は取引先名にしたいのですがどのような方法がありますか? やはりマクロやVBAなどで作るのが一番でしょうか? マクロやVBAは初歩的な簡単なものは作ったことがありますがあまり詳しくありませんが出来るようなら挑戦してみたいのですがもしサンプルコードなど教えていただければお願いします。
- 締切済み
- オフィス系ソフト
- Excel 他の複数ブック開くVBA
お世話になります。田中と申します。 以前も同じ質問させていただきましたが、複数のブックを自動で開いて閉じるVBAロジックをご教授いただきましたく思います。 Excel VBAを使って下記(1)、(2)の処理を実現したいと思っております。 どなたかVBAロジックをご教授いただけませんでしょうか。 (1)集計.xlsxというブックがあります。このブックに[ファイル]というシートがありまして A1のパス、B1にファイル名が記入されています。 この組み合わせのファイル数は可変ですが下記のように大体10個程度あります。 A2(パス)+B2(ファイル名) A3(パス)+B3(ファイル名) A4(パス)+B4(ファイル名) A5(パス)+B5(ファイル名) ・・・ (2)このシートに[開く]というボタンを配置して、クリックされたらA1(パス)+B1(ファイル名)でファイルを開いて何もしないですぐに閉じて、次のファイルを開いて閉じて、また次のファイルを開いて閉じて。。という動きをファイル数分繰り返したいのです。 どなたかご教授いただけますでしょうか。 よろしくお願い致します。
- ベストアンサー
- Excel(エクセル)
- Excel→Access VBAによるインポート
1つのExcelファイルの複数のデータシートをAccess2000にインポートしたい。 【説明】 data.xlsという名前のExcel2000で作成したファイルがあり、その中に同じ書式(列)を 持ったSheetが20枚ほどあります。 それらのデータをAccess2000にインポートしたいのですが、 1.作業は毎月発生する。 2.ほかのユーザも出来るようにする。 などの理由から、マクロかVBAを使って自動化できればと考えています。 ぽちっとボタンを押すと、data.xlsのすべてのシートからデータをインポートし、 それぞれのSheet名がついたテーブルに格納されるというのが理想です。 フィールド名は固定ですので、あらかじめテーブルを作っておくことは出来ます。 Excelの各シートの上部数行は見出しやら説明文が書いてありますので、 インポートの際にその部分の行(5行分)を削除することが必要です。 当方VBAの知識はほぼ皆無ですので、やんわりご教示頂ければ幸いです。 よろしくお願いいたします。 (次回ネットに入るのは15日以降です)
- ベストアンサー
- オフィス系ソフト
- Excel2000 VBAで新規シート名を他のシート名と重ならないようにつけるには?
始めまして。早速ですが、今頭を抱え込んでいる私の悩みを聞いて下さい。 シート名を追加するプログラムで、「シートを追加」というボタンを押すと、 Inputboxを表示し、そこに任意の番号("見積書1"や"請求書1"の数字部分)を入力して、その番号をシート名として取得すると同時に、シートを追加するようにしたいのです。 その過程で、新しいシートの名前をつける際に、同じブック内に既に存在する複数 のシート名と照らし合わせて、もし、既存の番号と同じ番号をInputBoxに入れたときには、「他の番号を入力してください」と再度InputBoxを表示させたいのです。 そして、シート名がブック内に同じものがない場合にのみ、シートを追加するというものです。 VBAを使うより、手動ですれば?という考えももちろん解決方法の一つかとは思いますが、何分Excelを始めて使う年老いた父のために、少しでも簡単に操作できるようにという思いから質問させて頂いております。 どうぞよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 他のExcelファイルのVBAコードを検索したい
他のExcelファイルに書かれたVBAコードに、ある特定のキーワード(パス名など)が使われているかを自動的に調べるためのVBAを書きたいと思っています。 仕事で使っているマクロが書かれたExcelファイルからある特定の処理をしているマクロを含むものを検索したいのですが、検索するExcelファイルが膨大なため、順番にExcelファイルを開いてVBAコードをチェックしていく工程をマクロ化したいのです。ファイルを順に開いていく処理はマクロ化できるのですが、書かれたVBAコードのチェックをどうしたらよいか悩んでいます。 「VBAコードに対して検索する」または「VBAコードを1行ずつ変数に代入する」、「モジュールシートをテキストファイルに出力する」などの処理が自動化できれば対応できそうなのですが、そのような処理をExcelVBAで作成できるでしょうか。 なお環境はWindowsXPのExcel2003です。 よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- 【ご質問】Excel2003のVBA作成について
Excel2003のVBA作成について、ご教授ねがいます。期限もなく本当に困っております。 ■ 実現したいこと Excelシートの1シート目にあるデータを所属コード毎に振り分け、自動で2シート目、3シート目に振り分けたい。 ※1シート目のデータ自体は、所属コード毎に既にソートされている状態 (1) Excelの1シート目に以下のような全データ1000件程度ある。 所属コード/所属名/個人番号/個人名 001/東京/111/山田華子 001/東京/112/鈴木太郎 002/大阪/331/安井徹 005/福岡/444/山下健二 (2) 所属コード毎に2シート目、3シート目に振り分けたい。 2シート目:001/東京/123/山田華子 001/東京/112/鈴木太郎 3シート目:002/大阪/331/安井徹 4シート目:005/福岡/444/山下健二 ■ 環境 WindowsXP、office2003 ■ スキル 簡単なコードを読み・修正ことができる程度です。1からコードを作成するスキルはありません。 ■ 補足 Excel・Access、どちらでも構いません。 同様のファイルが100個、所属が1200ほどあるため、マンパワーでは難しく、プログラムにてできたらと思っております。宜しくお願いいたします。
- 締切済み
- その他(プログラミング・開発)
- VBAしか使用しないExcelのファイルサイズを軽くしたい
VBAしか使用しないExcelのファイルサイズを軽量化するにはどうすればよいのでしょうか? 作成したVBAはExcelファイルを開くとInputBoxのダイアログが表示され、 そこにアドレスを入力するとブラウザが開いてそのページを表示します。 ちなみに、ブックのシートは1つだけにしてあり、セルには何も入力していません。 無駄なモジュールはなく、Excelファイルは直接ダブルクリックして開きたいので圧縮は不可です。 これ以上ファイルサイズを減らすことはできるのでしょうか? ご存知の方がおられましたらご回答をよろしくお願いします。 使用OS:Windows XP 使用ソフト:Microsoft Excel 2003
- ベストアンサー
- オフィス系ソフト
お礼
ばっちり出来ました。ありがとうございました。