- ベストアンサー
エクセルVBAからアクセスを起動させたい、他1点
いつもお世話になります。お聞きしたいことが2点あります。 1点目 「エクセルで作成したリストをCSVファイルで指定の場所に保存し、MDBファイルを起動してそのCSVファイルを取り込み、アクセス内で処理をした後、さらにCSVファイルを出力したい」と思っております。アクセスを使えない人の為に、エクセル上でマクロのボタンを起動すると、以上のことを全て行うようにしたいのですが、MDBファイルを開こうとした時に、 "EXCELから直接ACCESSのMDBファイルを開くことはできません・・・" のメッセージが出て、実行できませんでした。 何らかの解決方法はありますでしょうか? 2点目 CSVファイルを保存の際に、 D = Range("B3").CurrentRegion.Rows.Count + 2 Range("B4:I" & D).Copy Workbooks.Add ActiveSheet.Paste ActiveWorkbook.SaveAs Filename:="C:\list.csv", FileFormat _ :=xlCSV, CreateBackup:=False ActiveWindow.Close としているのですが、 "この場所にC:\list.csvという名前のファイル名が既に存在します。置換えますか?"と、閉じる際に、"list.csvへの変更を保存しますか?"のメッセージが出てきますが、これを表示しないようにするにはどうすれば良いのでしょうか?
- 7-samurai
- お礼率70% (197/278)
- オフィス系ソフト
- 回答数3
- ありがとう数3
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>CSVファイルを出力したい オオボケしていなければ、こんな所になるかな? 実際に合わせて、ファイル名、テーブル名など変更してください。なお、参照設定は必要です。CreateObjectですと、すごく重くなります。 Sub AccessCSvOut() '要参照設定:Microsoft Access xx Object Library Dim appAcc As Access.Application Dim myFname As String Set appAcc = New Access.Application myFname = "C:\db1.mdb" With appAcc .OpenCurrentDatabase myFname, False .DoCmd.TransferText acExportDelim, , "テストテーブル", "C:\db2.CSV", False .Quit End With Set appAcc = Nothing End Sub
その他の回答 (2)
- AlexSuns
- ベストアンサー率67% (78/115)
Access叩くだけでいいかなと思ったんですが、 >マクロのボタンを起動すると、以上のことを全て行うようにしたいのですが とのことですので、COMにてアクセスを操作する方法を覚えて下さい もう1つのAccessデータベースを開く方法(COM版) http://www.tsware.jp/tips/tips_179.htm
お礼
ありがとうございます。 COMなんて言葉を聞くのも初めてだったので、大変参考になりました。
- AlexSuns
- ベストアンサー率67% (78/115)
1. >MDBファイルを開こうとした時に どのように開いているのですか? 2. Applicationオブジェクトの「DisplayAlerts」プロパティにて、メッセージの抑制ができます
補足
1、Workbooks.Open Filename:="C:\db1.mdb", Notify:=False としています。 2、いただきましたお答えで問題解決しました。 ありがとうございました。
関連するQ&A
- EXCEL確認メッセージを出さずに保存したい
恐れ入りますが、ご教示お願い致します。 質問(1) EXCELファイルを (1)特定の名前で (2)CSVファイルにして 保存をしたいと考えています。次のマクロを書いたところ、”CSVへの変更を保存しますか?”確認メッセージがでます。 確認メッセージを出さずに、保存するためには、どのように記述したらよいでしょうか? With ActiveWorkbook .SaveAs Filename:=Mypath & "\" & Mybook & MYsireal, FileFormat:=xlCSV .Close End With (2)改行するためにはどうしたらよいでしょうか? .SaveAs Filename:=Mypath & "\" & Mybook & MYsireal, FileFormat:=xlCSV を、次のように改行させたいのです。 .SaveAs Filename:=Mypath & "\" & Mybook & MYsireal, FileFormat:=xlCSV _ を使うということを、なんとなく覚えておりますが、うまくいきません。注意点等をご教示頂ければと思います。 以上 よろしくお願い致します。
- ベストアンサー
- その他(Windows)
- (VBA)書式が変更されてしまいます
↓SaveAsで保存すると書式が変更されてしまいます。 ActiveWorkbook.SaveAs FileFormat:=xlCSV, _ CreateBackup:=False ActiveWorkbook.Close False ネットで↓の回避策を見つけたのですがうまくいきません。 **************************************************************** Sub CSV_Save() 'Sheet1をCSV形式で保存します。 With ActiveWorkbook.Sheets(1) 'A1:A10まで日付あるいは通貨設定のデータが入っているとします。 For Each rng In Range("A1:A10") 'テキスト文字列に変更します。 rng.Value = "'" & rng.Text Next rng End With ActiveWorkbook.SaveAs FileName:="C:\test.csv", FileFormat:=xlCSV End Sub **************************************************************** ご指導お願いします。
- 締切済み
- オフィス系ソフト
- エクセル VBA 保存したCSVファイルについて
いつもお世話になっています。 早速ですが カンマ区切りのテキストファイルをカンマ区切りで読み込んだあと変更を加え ActiveWorkbook.SaveAs Filename:="Book2.csv", FileFormat :=xlCSV, CreateBackup:=False で保存したものを メモ帳などで開いた時に 不要な箇所にカンマの不要な箇所に沢山カンマが付いてしまいます。 M列まであるのでその分の空白もカンマ区切りで保存されてのだと思うのですが これを、不要な部分の空白を除いた形で保存する方法は無いでしょうか? どうぞよろしくお願いします
- ベストアンサー
- オフィス系ソフト
- エクセルVBAでファイルをCSV保存の仕方
エクセルのシートをCSVファイルに保存するため以下のようなマクロを書きました。 Sub Macro1() Cells.Select Selection.Copy Workbooks.Add ActiveSheet.Paste Application.CutCopyMode = False ActiveWorkbook.SaveAs FileName:="C:\WINDOWS\デスクトップ\Book1.csv", FileFormat _ :=xlCSV, CreateBackup:=False ActiveWindow.Close ThisWorkbook.Activate End Sub 一応これで保存できるのですが、自動記録でやったためファイルの名前が出てしまいました。 この部分をわたし以外の誰でも任意の名前をつけ、任意のフォルダーに保存できるように書き換えたいのです。 どのように記述すれば良いかお教えください。お願いします。
- ベストアンサー
- オフィス系ソフト
- ExcelのマクロでCSVファイルを開くと遅いのですが
ExcelのマクロでCSVファイルを開くと遅いのですが速く開く方法はありますか? 普通にファイル-開くに比べてかなり遅いです。 下記のVBAで記述してあります。 Workbooks.Open Filename:=fname ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=xlCSV, _ CreateBackup:=False ActiveWorkbook.Close savechanges:=False
- ベストアンサー
- オフィス系ソフト
- EXCELのマクロで保存するときのメッセージ
CSVファイルを上書き更新後、ファイルを閉じる作業をしたいのですが、EXCEL2000のマクロでその作業を行うと、次のメッセージがでて、次の手作業の要求がきます。 (1)ファイルの上書きするとき この場所にAAAというファイルが既にあります。置き換えますか・・・はいのクリック (2)ファイルを閉じるとき AAAへのファイルの変更を保存しますか・・・いいえをクリック この(1)(2)の作業も、マクロに書きたいのですが、どうすればよいのでしょうか 現在のマクロは ActiveWorkbook.SaveAs Filename:= _ "C:\AAA.csv" _ , FileFormat:=xlCSV, CreateBackup:=False ActiveWindow.Close よろしくお願いします
- ベストアンサー
- オフィス系ソフト
- VBAでのCSV保存
VBAでExcelのデータを保存したく、 ActiveSheet.SaveAs _ Filename:=xxxxx, _ FileFormat:=xlCSV といった感じにしています。 ほぼこの方法で問題ないのですが、なぜか変形してしまう データがあります。 文字列として2004/6/18といった形で入力しているデータが 6/18/2004のように変化してしまいます。 FileFormatを指定しなければ、2004/6/18のままですが、 それではCSVファイルになりません。 どうしたらいいのでしょうか?
- ベストアンサー
- Visual Basic
- エクセル テキスト形式の名称変更保存
みなさまお世話になります 早速ですが、標記の件です csv形式になっているテキストファイル(拡張が異なりますset)をエクセルで カンマ区切りにて開いた後 保存しようとした場合 上書き保存であれば、拡張も元々の拡張子で保存されるのですが マクロを使用してファイル保存をしようとすると ActiveWorkbook.SaveAs Filename:=ActiveSheet.Name, FileFormat:=xlCSV, CreateBackup:=False 拡張子がCSVになってしまいます。 それを元々の拡張にて保存を行いたいのです。 またファイル名が長いので 変更をかけた後 シート名の一部を変更して保存したいためにActiveSheet.Nameを 使用しています どうぞよろしくお願いします。
- 締切済み
- オフィス系ソフト
- マクロで、セル内の文字をファイル名にしたい
Sub Auto_Close() ' ' CSV作成 Macro ' マクロ記録日 : 2006/7/13 ユーザー名 : 00849 ' ' Fname = Range("I15") ChDir "D:\ファイル\他仕事\リモートメンテナンス\RADIUS設定、エクセル検証" ActiveWorkbook.SaveAs Filename:= _ "D:\ファイル\他仕事\リモートメンテナンス\RADIUS設定、エクセル検証\Fname", _ FileFormat:=xlCSV, CreateBackup:=False ThisWorkbook.Close End Sub 上記のように作ると、ファイル名が「Fname.csv」となってしまいます。 これを、"I15"に打ち込んだ文字をファイル名で表示させるには、どうしたらよいでしょうか? ほぼ初心者です。 よろしくおねがいします。
- ベストアンサー
- オフィス系ソフト
- VBAでSaveAs使用し、指定していないのにデスクトップに保存される理由
VBAで構文中に ActiveWorkbook.SaveAs FileFormat:=xlCSV, _ CreateBackup:=False という記述をしました。すると、保存場所を指定していないのにデスクトップに保存されてしまいます。まず、なぜでしょうか?また、保存場所の指定はどのようにすればよいでしょうか?
- ベストアンサー
- オフィス系ソフト
お礼
モジュールにコピー&ペーストで完璧に動きました。 ありがとうございました。