• 締切済み

エクセルのcsv保存で。。

前と同じような質問ですみません。。。 エクセルのSheet5をcsv形式で保存する際、 名前を付けて保存のダイアログを表示させて、 ファイルの名前を常に「bonaplus.csv」と 既定値で表示させておくようなマクロは できないでしょうか? ※bonaplusの後には作成日付を入力します。 ※csvファイルを作成した後に元のエクセルファイルの  保存になります。

みんなの回答

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.6

#4のtbobiです。 うまくいって何よりです(^^) >エクセル自体も閉じるにはどのように記述したら よいでしょうか? Application.Quit と書けばエクセルを終了できます。実際確認しました。 ちなみに参考にしたのはこちらのページです。 http://www.asahi-net.or.jp/~zn3y-ngi/YNxv251.html#2

参考URL:
http://www.asahi-net.or.jp/~zn3y-ngi/YNxv251.html#2
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

#3のものです。参照設定するための MicrosoftCommonDialogControl,Version 6.0 は出てきたでしょうか。 私の場合はエクセルから入ったかVBからかアクセスからかはいったか、現在は入っていますが。 これがあってこれをクリックすると、ワークシートに貼りつけられるはずなんですが。 ツール-マクロ-VBEでVBE画面になり、ツール-参照設定-MicrosoftCommonDialogControl,Version 6.0 をクリック。 ワークシートの画面に戻りセルにマウスポインタを置くと +になるはず。 左マウスを押しつつ、少し右下へ引きずる。 コモンダイアログのアイコンがシート上に現われ出る。 もう一度だけやって見てください。 CommonDialogでWEB照会すると沢山出ますので、勉強と思っていくつかを見てみてください。

nywork
質問者

お礼

ご回答ありがとうございました。 やはり以下の >ツール-マクロ-VBEでVBE画面になり、 >ツール-参照設定- >MicrosoftCommonDialogControl,Version 6.0 >をクリック。 がありませんでした。(しつこく探したのですが。) インストールの際チェックがもれたのでしょうか? 原因はわかりませんが、もう少し調べてみて、 設定が可能な状態になりましたら、 回答を頂いたとおりに試してみるつもりです。 ありがとうございました。

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.4

nyworkさんこんばんは。 #1~#2です。動作の確認していただけたでしょうか? 少し改良してみましたのでこちらもご確認いただけたらと思います。 csv形式で保存後自動的にcsvファイルを閉じるようにしました。(WinXP,Excel2002で確認) この下から------------------------- Sub test2() Dim MyFile As String 'MyFileにbonaplusという文字列と本日の日付を入れる MyFile = "bonaplus" & Format(Date, "yymmdd") '←変更箇所 'Sheet5をコピー Sheets("Sheet5").Copy Application.DisplayAlerts = False '追加箇所*1 'MyFileに入れた名前で arg2:=6(この場合csvファイル形式)で保存する Application.Dialogs(xlDialogSaveAs).Show arg1:=MyFile, arg2:=6 ActiveWindow.Close '←追加箇所。csvファイルを閉じる Application.DisplayAlerts = True '追加箇所*2 End Sub この上まで------------------------- '*1,*2 csvファイル形式で保存する際に出るメッセージ(「このブックはカンマ区切りと互換性のないメッセージが含まれているおそれがある」云々)というのを出すのを抑制します。*1,*2セットで使ってください。メッセージを出したい場合はこの部分を省いてください。 マクロの登録の仕方はごぞんじですよね? (念のためご説明します) 1 ALT + F11でVisualBasicエディタを起動。 2 プロジェクトエクスプローラ(通常、左側にあるツリー)のVBAProject(マクロをどのファイルに対してもつかいたいのならばpersonal.xlsのところ、そうでなければ今回お使いになるファイルのところ)を右クリック。挿入 > 標準モジュール をクリックして開き、右側のコードウィンドウに上のコードをコピーして貼り付けて、visual basicエディタを閉じます。 実行したい場合は、エクセルに戻って ツール > マクロ > マクロ で場合によってはマクロの保存先を選んで目的のマクロを出して実行するか、フォーム(表示 > ツール > フォーム)のボタンをシート上に配置してそこに登録したり、新規にボタンをつくって既存のツールバーに組み込んで使います。

nywork
質問者

お礼

お礼が遅くなりました。ごめんなさい。 おかげでできあがりました♪ この後にエクセルを閉じたいのですが、  Activeworkbook.close だと、ブックは閉じるてくれるのですが、 エクセルそのものが残ってしまいます。 エクセル自体も閉じるにはどのように記述したら よいでしょうか?

nywork
質問者

補足

度々のご回答ありがとうございます。 以下のように書き換えたところ、 csvファイルは指定のフォルダ(c:\test)を 表示してくれるのですが、 xlsファイルはマクロ実行したファイルが あるフォルダを指定しまい、(c:\test)を 表示してくれません。 どうも間に  ActiveWindow.Close を追加したことが原因らしいのですが。。 csvファイルとxlsファイルを同じフォルダを 指定するにはどのように記述したらよいのでしょう?? あれこれ調べてはみたもののどうも分かりません。 またお力をお貸しください。。 *********************** Sub test2() Dim MyFileA As String Dim MyFileB As String MyFileA = "c:\test\bonaplus" & Format(Date, "yymmdd") MyFileB = "c:\test\bonaplus" & Format(Date, "yymmdd") Sheets(1).Copy Application.DisplayAlerts = False Application.Dialogs(xlDialogSaveAs).Show arg1:=MyFileA, arg2:=6 ActiveWindow.Close’←原因?? Application.DisplayAlerts = True Application.DisplayAlerts = False Application.Dialogs(xlDialogSaveAs).Show arg1:=MyFileB, arg2:=1 Application.DisplayAlerts = True Application.Quit End Sub

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

ワークシート画面でメニュー部の余白で右クリックして、ツールバーでコントロールツールボックスをチェックして出す。金槌とスパナのツールバーアイコンをクリックする。 MicrosoftCommonDialogControl,Version 6.0をクリック する。 シート上にマウスポインタを持っていくと、プラスとなるからそれを左マウスを押しつつ右下へ引きずる。 コモンダイアログのアイコンが現われ出る。 ボタンをシートの上に貼りつけ、ダブルクリックする。 出てきたVBEの画面に Private Sub CommandButton1_Click() Sheet1.CommonDialog1.Filename = "bonuplus.csv" Sheet1.CommonDialog1.Filter = ".csv" Sheet1.CommonDialog1.ShowSave End Sub を貼りつける。 シートに戻り、三角定規と鉛筆のアイコンをクリックし 実行モードにして、ボタンをクリックする。 「名前をつけて保存」のダイアログ画面が出て、ファイル名はbonuplusになっています。 Sheet1.CommonDialog1.Filename = "bonuplus" & "150506" & ".csv"などとするのも、少し入力が楽になるかもしれません。

nywork
質問者

お礼

>金槌とスパナのツールバーアイコンをクリックする。 >MicrosoftCommonDialogControl,Version 6.0を >クリックする。 >シート上にマウスポインタを持っていくと、 >プラスとなるからそれを左マウスを押しつつ >右下へ引きずる。 ここまで試してみたところ、「オブジェクトを挿入できません」というエラーメッセージが表示されました。何か設定を変更しなければいけないのでしょうか??

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.2

#1です。追加です。 MyFileのところを下記のように直すと日付が入ります。 (もっとうまい書き方があると思いますが・・・) "bonaplus030506"のようになります MyFile = "bonaplus" & Application.WorksheetFunction.text(Date, "yymmdd")

nywork
質問者

お礼

ありがとうございました。試してみますね。

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.1

初心者ですが、本やWEBサイトを見ながら作ってみたのですが これはどうでしょう。 Sub test() Dim MyFile As String MyFile = "bonaplus" Sheets("Sheet5").Copy Application.Dialogs(xlDialogSaveAs).Show arg1:=MyFile, arg2:=6 End Sub

関連するQ&A