• ベストアンサー

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

エクセルのマクロで以下の事を行いたいのですが、上手く行かずに悩んでおります。 どなたかご教示ください>< 前提:範囲指定した部分を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
質問者

お礼

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