• ベストアンサー

エクセルのマクロ 保存フォルダ選択

エクセルのマクロで以下の事を行いたいのですが、上手く行かずに悩んでおります。 どなたかご教示ください>< 前提:範囲指定した部分をcsvで出力 1.csvの保存フォルダを指定したい (\\192.168~などのネットワークドライブ) 2.形式はデフォルトでcsvを選択した状態にしたい 3.ファイル名を「年月日売上表」にしたいので、デフォルトでファイル名部分に「売上表」と入れたい 年月日は都度手動で変更して保存したいので、上記のフォルダ選択→名前を付けるところまでとマクロで行いたい。 どなたかお知恵をお貸し下さい。

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

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

以下のVBAコード内の「\\ネットワークフォルダパス\」を変更してからご利用ください。 ■VBAコード Option Explicit Sub csv保存() '変数宣言 Dim filePath As String Dim i As Long, j As Long Dim fileNo As Integer Dim dpath As String Dim gyou As String '*****初期値設定 'ネットワークパスを指定(最後は「\」) dpath = "\\ネットワークフォルダパス\" 'ダイアログ表示 filePath = Application.GetSaveAsFilename( _ InitialFileName:=dpath & "売上表" _ , FileFilter:="CSVファイル(*.csv),*.csv") If filePath = "False" Then Exit Sub '*****出力処理 fileNo = FreeFile 'ファイル開く Open filePath For Output As #fileNo '最終行までループ For i = 1 To Selection.Rows.Count gyou = "" For j = 1 To Selection.Columns.Count If j > 1 Then gyou = gyou & "," gyou = gyou & Selection.Cells(i, j).Value Next j Print #fileNo, gyou Next i 'ファイル閉じる Close #fileNo End Sub ■フォルダを毎回指定する場合 >1.csvの保存フォルダを指定したい の指定方法で定数でなくユーザーにフォルダを毎回選択させる場合は 「初期値設定」の中の「dpath = "\\ネットワークフォルダパス\"」 の箇所を以下のように変更してください。 With Application.FileDialog(msoFileDialogFolderPicker) If .Show = True Then dpath = .SelectedItems(1) & "\" End If End With

hinya555
質問者

お礼

理想通りの動きになりました! 本当にありがとうございました<_ _>

関連するQ&A

  • エクセルで「名前を付けて保存する」マクロ

    エクセルのマクロに関して教えて下さい。 作成したエクセルの原稿を指定したフォルダに 「名前を付けて保存する」マクロを作成できればと思っています。 同じ名前で上書きなら問題ないのですが その都度違った名前で保存したい時に困っています。 名前の時だけ手動で入力するか 原稿の中に書いてある名前をコピーする方法でも良いです。 よろしくお願いします。

  • エクセルマクロでファイルを開いて保存したいです。

    エクセルマクロでファイルを開いて保存したいです。 エクセルファイルでファイル名「編集」という物を開きます。 このSheet1には中央にコマンドボタンが作成して有ります。 このボタンをクリックして以下の作業をマクロで行いたいです。 1.エクセル標準の「ファイルを開く」のメッセージボックスが開く 2.ここは使用者が作業をしてもらう   マイドキュメントだったり、マイネットワークだったり、   (ファイルの種類はCSVにする)   処理をしたいCSVファイルを探してもらい選択後、開くをクリック   例えば20100922.CSVを選択し開くをクリック 3.クリックと同時にそのファイルが展開されて、「編集」のエクセルファイルの   Sheetにシート名「集計」が作成されそのシートにCSVファイルの全内容がセルA1から貼り付く。   さらに登録してあるマクロモジュールで編集処理がされ   マクロを引き継がず、シート「集計」だけを   ファイル名は固定でそのファイル名の後ろに作成日(システム日付)を入れて   参照したCSVファイルの保管場所に保存する。   ファイル名例:売上20100923.xls(売上は固定) 4.エクセル「編集」のファイルからシート「集計」を削除する。 5.メッセージBOXで「編集終了」と表示 次回エクセルファイル「編集」を開くと、コマンドボタンだけである。 また作成された「売上20100923」はマクロがないから開くときに マクロのメッセージは出ない。というようにしたいです。 NO.2のファイルを選択する作業は作業者にしてもらいますが シート1のコマンドボタン1回を押すだけでNO.1~NO.5まで完結させたいです。  NO.3のマクロ処理はマクロの記録でモジュールができています。 このマクロの作成方法と、そのマクロが出来たら その文のどこに作成済みの処理文を入れればいいのかわかりません。 よろしくお願いします。 ここでつまづいています。この後この選択したファイルの全内容が シートの集計に展開されません。 Private Sub CommandButton1_Click() Call 集計 End Sub Sub 集計() FullPath = Application.GetOpenFilename("CSV,*.CSV") If FullPath <> "False" Then Sheets("Sheet1").Select Sheets.Add ActiveSheet.Name = "集計" With ActiveSheet.QueryTables.Add(Connection:="CSV;" & FullPath, Destination:=Range("A1"))   マクロの記録で作成したマクロ   シート"集計"をマクロを引きつかずファイル名売上&システム日付で保存   シート"集計"を削除する

  • エクセルでファイルをcsv形式で保存するマクロについて

    同様の質問が以前にあったのですが、 どうやら私のは少し違うようなので新規質問として投稿させていただきます。 エクセルファイルを保存する際、保存形式を「テキスト(タブ区切り)(*.txt)」にして、 ファイル名の拡張子の部分だけ(.csv)にして保存するマクロを作成したいです。 しかし、エクセルに付いているオートマクロ機能で記録しようとすると、 ・ファイル名がオートマクロを作成した際に付けたファイル名になってしまう。 ・保存場所がオートマクロを作成した際に保存したフォルダになってしまう。 という問題が発生します。 なので、 ・保存する際のファイル名は現在作業しているファイルの名前をそのまま使用する。 ・保存する際のファイル名の拡張子部分は(.csv)に変更する ・保存場所は現在作業しているファイルがあるフォルダにする(もしくはプログラムで予めパスを指定できる)。 ・保存形式は「テキスト(タブ区切り)(.txt)」 の4つの条件を満たすマクロの作成方法をお教えいただけますでしょうか? すみませんが、よろしくおねがいします

  • ダウンロードファイルを保存するフォルダのデフォルト指定について

    いつもお世話になっております。 Webページからファイル(exe、csv)をダウンロード時の ダイアログボックスで保存を選択した時に デフォルトで表示されるフォルダを指定したいのですが、 可能でしょうか 可能な場合にダウンロードするファイル毎にデフォルトフォルダは 指定可能かも教えてください。 環境は Windows2000 SP2 + IE6.0 になります。

  • excelのマクロでファイル一覧取得,グラフ作成

    以下のような作業をするために,EXCELのマクロを組もうと考えています. 指定したフォルダ以下のCSVファイルを取得(サブフォルダも含む)  ↓ 見つけたCSVファイルをエクセルで開き,値が含まれている範囲を選択してグラフを作成  ↓ "*.xls"として保存 エクセルのマクロは初めてなので,どうコーディングすればいいか全くわからず困っています. どなたかご教示くだされば幸いです. よろしくお願いいたします.

  • このようなエクセルマクロを組みたいのですが...

    下記のようなマクロを組みたいと思っていますが、 知見がほとんどないので教えていただきたいと思います。 "csv"というフォルダにランダムなファイル名でcsv形式のファイルが100以上保存されています。 目的は、 そのcsvファイル内の一部のデータをひとつのファイル(ファイル名を"まとめ"とします)に移して並べたいと思います。 <前提> "csv"フォルダと"まとめ"ファイルは既に開かれている状態とします。 "まとめ"ファイルを開いた状態で、マクロを走らせると、 (1)csvファイルが開く (2)セルA1とB1をコピー (3)"まとめ"ファイルのA1、A2へ貼り付け(行と列を変更) (4)csvファイルを閉じる (5)次のcsvファイルが開く (6)セルA1とB1をコピー (7)"まとめ"ファイルのB1、B2へ貼り付け(行と列を変更) (8)csvファイルを閉じる 以降、"csv"フォルダの中身をすべて処理できるまで繰り返し。 という風に考えていますが、 当方あまり知識が無くアレンジが難しいためできる限りシンプルにと考えています。 そのため、もしこうした方が...等あればアドバイスいただけるとありがたいです。 すみませんがよろしくお願いいたします。

  • デスクトップ上にあるフォルダ内のファイルを選択して開くマクロ

    マクロを始めた初心者です。 エクセル上でデスクトップの「○○」というフォルダ内にある複数のテキストファイルを表示して、その都度選択して開きたいと思います。 この作業をマクロで行いたいのですがうまくいきません。 あまりにも単純なマクロのためか同じような症状の方が見当たらないので投稿しました。よろしくおねがいします。

  • エクセル:シートを保存するマクロ

    あるエクセルファイルFile.xls内に、4つのシートSheet1,Sheet2,Sheet3,Sheet4があるとして、 4つのシートを個別にcsvファイルとして保存するようなマクロを作りたいです。 ▼ソースです  (ここまでのコードで、Pathに保存先のディレクトリ名を取得する部分があるとお考えください)  Filename = "Sheet1" '保存するシート名は、Sheet1~4 GoSub Save1 Filename = "Sheet2" GoSub Save1 Filename = "Sheet3" GoSub Save1 Filename = "Sheet4" GoSub Save1 '保存完了後は、File.xls内Sheet1のCells(4, 1)にカーソルを配置。 Sheets("Sheet1").Select Cells(4, 1).Select Exit Sub Save1: Sheets(Filename).Select fname = Path & "\" & Filename & ".csv" ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=xlCSV, CreateBackup:=False Return End Sub 以上のソースで実行すると、 指定したディレクトリにsheet1.csv、sheet2.csv、sheet3.csv、sheet4.csvの4ファイルができます。 ここまでは問題ないのですが、 マクロを実行後、Sheet4.csv(最後に保存したファイル)が開かれた状態になってしまいます。 しかも、ファイル名はSheet4.csvなのに、シートSheet1~4を持っている状態です。 普通にSheet4.csvファイルを開くと、シートはSheet4しかありません。 状態が伝わるでしょうか? File.xlsのマクロを実行しているので、実行完了後もFile.xlsを開いておきたいのですが、 どのような記述を加えればよいでしょうか? マクロ(VBA)は使い始めたばかりなので説明されても理解できないかもしれませんが、 できればよろしくお願いいたします。

  • エクセルマクロでファイルを保存するとき

    エクセル(2000)のマクロで、csvファイルを集計して、そのファイルをエクセル形式で保存しようとしています。 このとき、「カレンダー用データファイル」という名前で保存するように指定していますが、もし、同名のファイルが開いていたりすると エラーが出てしまいます。 マクロの中で、「カレンダー用データファイル」という名前のファイルが、現在開いていないか調べることが出来るのではと、いろいろ探してみたのですが、どうしても判りません。 どなたか 教えていただけませんか? また、同様のことを何度も繰り返すので上書き保存をしたいのですが、いちいち「同名のファイルがありますが上書きしますか?」というアラートを出さなくて住む方法もありましたら教えていただきたいです。

  • 下書きフォルダではなく指定したフォルダに保存したい

    アウトルック2010です。 新規メールを立ち上げ、保存する際にctrl+sをすると 下書きフォルダに保存されますが デフォルトで、とあるフォルダを指定して保存することはできないのでしょうか? 一度下書きフォルダに保存したものを 手動で該当のフォルダに移すしかないですか?

専門家に質問してみよう