ワードで保存先を指定する

このQ&Aのポイント
  • ワードテンプレートを作成しています。入力後の保存先をNASの特定フォルダに自動的にできるような設定にしたいと考えています。
  • 上記の質問で提案されたマクロを使用することで、「名前を付けて保存」では目的を果たしましたが、「上書き保存」では規定のフォルダに保存されます。
  • 上書き保存でもNASのフォルダに保存する方法があるかどうか教えてください。
回答を見る
  • ベストアンサー

ワードで保存先を指定する

http://okwave.jp/qa/q7366977.html http://okwave.jp/qa/q7370982.html の続きでお願いします。 ワードテンプレートを作成しています。入力後の保存先をNASの特定フォルダに自動的にできるような設定にしたいと考えています。 上記の質問で下記のようなマクロを提案されました。 Sub FileSaveAs() ' ' FileSaveAs Macro ' 作業中の文書を「顧客ID+日付」の名前で保存します。 ' Dim SaveDay As String Dim kokyaku As String Dim Fname As String SaveDay = Format(Date, "yymmdd") kokyaku = ActiveDocument.FormFields("顧客ID").Range.Text Fname = SaveDay & "_" & kokyaku ChangeFileOpenDirectory "フォルダパス名" ActiveDocument.SaveAs FileName:=Fname & ".doc" ' 名前を付けて保存ダイアログを表示する場合は以下を有効に ' Dialogs(wdDialogFileSaveAs).Show End Sub こによって、「名前を付けて保存」では目的を果たしましたが、「上書き保存では」規定のフォルダに保存されます。この際も”NASのフォルダ”に出来ますか? よろしくお願いします。

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

  • ベストアンサー
回答No.1

関連した質問の回答者です。 「上書き保存」? NAS上に保存したファイルを開いて、上書きした場合なら 保存先もファイル名も同じになるはずですけど? それとも、新規作成した名前のついていない(文書1などの) ファイルを上書き保存で名前を付けて保存と同じにしたいの でしょうか? 関連した質問ではテンプレートを用意して日付と顧客IDで 特定フォルダに名前を付けて保存するためのマクロなどを、 回答としていますが、上書き保存で同じことをしたいなら 上書きの意味がないと思うけど? 例えば、[ F12 ]キーで名前を付けて保存ができるますが、 同じことを[ Ctrl+S ]キーによる上書き保存で新規文書 から名前を付けて保存ができることをしたいのなら、常に ファイルの上書きをするときに名前を付けて保存になって しまうので、ファイルが増えるだけになるけど? これって上書きとは言わないと思うのだけど? とりあえず[ Ctrl+S ]キーで保存するときも常に新規に 名前を付けて保存するなら"Sub FileSaveAs()"部分を "Sub FileSave()"にしたものを別途用意しておけば、 それで可能にはなります。 コマンドマクロとしての上書き保存が" FileSave "に なっているので、その名前で登録すれば既定の動作から 横取りするようになりますので。

kapatool
質問者

お礼

"Sub FileSaveAs()"部分を"Sub FileSave()"にしたものを別途用意して解決しました。 ありがとうございました。

kapatool
質問者

補足

上書き保存でテンプレートと同じ保存先になると思っていましたがなりません。 新規作成した名前のついていない(文書1などの)ファイルを上書き保存で名前を付けて保存と同じにしたいと考えています。 「上書き保存」が「名前を付けて保存」と同じ動作をしてくれればいいのです。 よろしくお願いします。

関連するQ&A

  • Wordの名前を付けて保存のマクロを教えてください

    いつもお世話になっています。 名前を付けて、特定のフォルダに保存したいのですが、.GetSaveAsFilenameのところで 「メソッドまたはデータ メンバが見つかりません。」のエラーがでてうまく動きません。 何処が間違っているのか教えてください。よろしくお願いします。 元のデーターは、別のフォルダに入っていて、その名前を取得したいです。 しかし、その名前の修正をしたいときもあるので、確認して保存したいです。 ご教授お願いします。 SUB test() Dim fname As String Dim SF As String SF = "\\osaka\PCBackup\" fname = Application.GetSaveAsFilename(SF, _ FileFilter:="wordファイル,(*.doc),*.docx") ActiveDocument.SaveAs Filename:=fname End Sub

  • エクセルのシートのデータをVBAを使ってCVS形式で保存したいのですが、文字化けしないようにするにはどうしたらいいでしょうか?

    エクセルのシートのデータをVBAを使ってCVS形式で保存したいのですが、文字化けしてしまいます。手動で「名前を付けて保存」すると文字化けしません。文字化けしないようにするにはどうしたらいいでしょうか? どなたかお教えいただきたく、よろしくお願いします。 ---------------------------------------------------------------------- Sub test5() Dim aaa As String Dim fname As Variant aaa = Format(Now, "YYMMDD") fname = Application.GetSaveAsFilename(InitialFileName:=aaa & ".csv", fileFilter:="csvファイル(*.csv), *.csv") If fname = False Then Exit Sub '保存 Worksheets("sheet1").SaveAs fname End Sub

  • エクセルにて保存時に同名のファイル名は実行拒否する

    今エクセルで、名前を付けて保存のマクロを作っています。 同ファイル名の物が同じフォルダ内にあれば上書きできますが、強制的に上書きできない様にする方法ってありますか? マクロをかじって間もないので、考え方もイマイチな状態で、困っております。 ご教示宜しくお願い致します。 Sub AAA() Dim fname As String fname = Application.Dialogs(xlDialogSaveAs).Show If fname = "False" Then MsgBox "キャンセルが押されました。処理を中止します" Exit Sub End If End sub

  • Excelで指定したフォルダに保存するマクロ

    Excel2003で、シートをコピーし別ファイルとして保存したいのですが 保存先のフォルダがネットワーク上にあります。 ファイル名は、指定したセルの値で保存されるようにします。 以下の記述でマクロ実行すると、シートは別ファイル(BOOK1)としてコピーされ ます。 名前をつけて保存ダイアログが開きますが、そのときにマイドキュメントが開き ます。 Private Sub CommandButton1_Click() ActiveSheet.Select ActiveSheet.Copy Dim Sname As String, Fname As Variant, Folname As String Folname = "ネットワーク上フォルダのフルパス" Sname = Range("O46").Value If Sname = "" Then Sname = ThisWorkbook.Name Fname = Application.GetSaveAsFilename(InitialFileName:=Sname, fileFilter:="Excel(*.xls), *.xls") If Fname <> False Then ActiveWorkbook.SaveAs Fname End Sub そもそもネットワーク上のフォルダを指定することはできないのでしょうか? マクロに関してはずぶの素人で、上記の記述は過去の質問などを参考に作成しま したので どこかに間違いがあるのかも知れませんが、間違いを特定することができません。 お手数おかけし申し訳ありませんが、ご教示のほどよろしくお願いします。 補足として、保存する際にダイアログを開きたい理由は以下の通りです。 ・保存先誤り防止(作業者が多数いて、使用するPCも違うため) ・ファイル名誤り防止(同じファイル名が存在しないかどうか確認)

  • word VBA ファイル名 保存

    wordで作成したファイルの最初の第1行名をファイル名として、名前を付けて保存できるマクロを作りたいのですが、うまくいきません。 Sub 保存() Dim ファイル名 As Variant ファイル名 = ActiveDocument.Paragraphs(1) & ".docx" ActiveDocument.SaveAs FileName:=(ファイル名), FileFormat:= _ wdFormatXMLDocument End Sub ではだめなのですが、どなたか添削よろしくお願いします。困っております。なにぶん初心者ですので基本的な文法のミスかもしれないですが、うまくいきません。

  • Word_VBA 拡張子手前までのファイル名の取得

    こんにちは。VBA全般初心者です。Wordに対していくつかの処理後、元ファイルに日付(年月)をつけて別保存というマクロを作ろうとしています。現在下記で作成中ですが、これだと元ファイルの.docxもファイル名として認識されており、ABC.docx → ABC.docx.2023_05.docxと保存されます。 ABC2023_05.docx にしたいです。 Sub ファイル名取得して保存() Dim タイプ As Variant Dim 区切り As String Dim ドット位置 As Integer Dim 日付 As String Dim ファイル名 As String Dim タイトル As String '拡張子を定義 タイプ = ActiveDocument.name 区切り = "." ドット位置 = Len(タイプ) - (InStrRev(タイプ, 区切り)) タイプ = Right(タイプ, ドット位置 + 1) 日付 = Format(Date, "yyyy_mm") タイトル = ActiveDocument ファイル名 = Application.PathSeparator & タイトル & 日付 & タイプ With ActiveDocument .SaveAs FileName:=.Path & ファイル名 End With End Sub

  • Excel2003 VBA Shell関数について

    AフォルダにあるZipファイルを検索し、そのファイルを解凍ソフトで開きBフォルダに解凍するマクロを作成中です。解凍ソフト自体に保存先フォルダを設定していますので、Bフォルダは関係ありません。 ---------------------------- Sub AAA Dim ksDir As String Dim ktExe As String Dim fName As String Dim i As Long  Const KTS As String = ".zip"  ksDir = "\\xxx.xxx.xxx.xxx\A\"  fName = Dir (ksDir & "*" KTS , vbNormal)   Do While fName = <> ""   Shell "\\xxx.xxx.xxx.xxx\C\解凍ソフト.exe ktDir & fName"    i = i + 1    nName = Dir Loop End Sub -------------------------- 「Shell "\\xxx.xxx.xxx.xxx\C\解凍ソフト.exe ktDir & fName"」の”ktDir & fName”の部分に実在する ファイルのパスを入れるとうまくいきますが、変数を入れて処理するとうまくいきません。 どこか間違いがある、又は他によい記述のしかたがあれば教えてください。 よろしくお願いします。

  • ActiveWorkBook VBA

    Sub test() Dim myCSV As String Dim Fname As Variant Dim Aname As String Dim Fullp As String Application.ScreenUpdating = False Fullp = ActiveWorkbook.FullName Pos = InStrRev(Fullp, "\") Fname = Left(Fullp, Pos) myCSV = Dir(Fname & "*.csv") Do Until myCSV = "" Workbooks.Open Fname & myCSV Aname = Left(Fullp, InStr(1, Fullp, ".") - 1) ActiveWorkbook.SaveAs filename:=Aname & ".xls", FileFormat:=xlExcel9795 ActiveWorkbook.Close myCSV = Dir() Loop Kill Fname & "*.csv" End Sub あるフォルダにあるcsvファイルをxlsで保存したいと思いましたが、アクティブになるBOOKがバラバラ? で、うまくいきません。csvファイルを開いたときに そのファイルがアクティブになり、うまくloopできないでしょうか?

  • Excelシート1シートのみを指定フォルダへ保存

    Excelのシート1のみを、本日の日付と名前の入ったセル(I7)を保存する時の名前にして指定したフォルダへ保存したいと思っています。 1、シートは本日の日付+I7セルに入っている値を名前にする。 2、フォルダはCではなくV:\○○\○○\○○\○○\○○\○○\○○に格納 3、シート1以外のシート2、シート3は保存せず閉じる 4、格納後○○に保存しました。と表示 試行錯誤し、下記のように記述してみたのですが、 Sub Macro1() 'Option Explicit Sub Sample() Dim xSheet As Worksheet Dim myFile As String Dim myName As String Set xSheet = ActiveSheet ThisWorkbook.Worksheets("シート名").Copy 'myName = ActiveWorkbook.Worksheets(1).Name 'myFile = ThisWorkbook.Path & "\" & myName & ".xls" myFile = ThisWorkbook.Path & "\" & xSheet.Range("I7").Value & ".xls" Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=myFile Application.DisplayAlerts = True ActiveWorkbook.Close End Sub 日付を指定して保存 Sub test()  Dim Filename As String  Filename = Format(Date, "yyyy年mm月dd日") & ".xls"  ActiveWorkbook.SaveAs "C:\My Documents\" & Filename End Sub 日付とI7セルの名前を合せてブックの名前としたい場合どうVBEで記述すればいいのかわからないので詳しい方がおられましたら、 よろしくお願いいたします。 あまり詳しくないので、そのままコピーできるか、○○の部分を指定フォルダ名に変えてください。等の注釈を付けていただけると助かります。

  • 自動範囲指定のデータをCSVで保存したい。

    添付ファイルにあるようにデータ(量が変化します)があり、自動的に最後の行まで指定してその範囲をダイヤログボックスを表示させてCSVとして保存したい。 今特に問題がある点は、 ・データのやり取りが出来ない点 ・CSVとして保存できない。(上記の点においてブランクの表が作成される) 何卒宜しくお願い致します。 '現在開いているシートをCSVデータで保存する Public Sub call_RangeSaveCSV() Dim fPath As String Dim fName As String Dim rng As Range Dim folderPath As String Fldr = "ダウンロード" '現在開いているブック情報をファイル名にするため、変数に格納 fPath = ActiveWorkbook.path & "\" fName = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".")) & "csv" Application.DisplayAlerts = False '現在選択しているセル情報をrngに格納 'Set Rng = Selection Set rng = Range("L6").CurrentRegion '新規ブック作成→rngをA1にコピー→CSV保存→CSV閉じる Workbooks.Add rng.Copy ActiveSheet.Range("A1") '■ここでエラーが返ってきます。ダイヤログボックスを出して任意の場所と名前を付けたいのですが。。 ActiveWorkbook.SaveAs FileName:=fPath & fName, FileFormat:="Sample.csv", FileFilter:="CSVファイル(*.csv),*.csv") ActiveWorkbook.SaveAs ActiveWindow.Close Application.DisplayAlerts = True End Sub

専門家に質問してみよう