
保存されているWordのフォルダ名:”A”の階層化に、"01.出力先"というフォルダを作成しました。
フォルダ名:”A”に保存されているWordを立ち上げ、マクロ実行後、"01.出力先"フォルダにファイルを格納したいのですが、以下マクロで
”ファイル名 = myParentFolderPath & "\01.出力先\" & "ファイル名" & ".docx"”
がエラーになってしまいます。
どのようにマクロを書けば良いのか?教えてください。
--------------------------マクロ--------------------------------------------------
Sub ファイル出力()
'
' ファイル出力 Macro
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
.LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
End With
.Execute Pause:=False
End With
Dim ファイル名 As String
ファイル名 = ActiveDocument.Paragraphs(1).Range.Text
ファイル名 = Left(ファイル名, Len(ファイル名) - 1) & ".docx"
ActiveDocument.SaveAs _
ファイル名 = myParentFolderPath & "\01.出力先\" & "ファイル名" & ".docx", FileFormat:= _
wdFormatXMLDocument, Password:="ddddd1001"
End Sub
No.7ベストアンサー
- 回答日時:
Sub ファイル出力()
'
' ファイル出力 Macro
'
Dim myParentFolderPath As String
myParentFolderPath = ActiveDocument.Path
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
.LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
End With
.Execute Pause:=False
End With
Dim ファイル名 As String
ファイル名 = ActiveDocument.Paragraphs(1).Range.Text
ファイル名 = Left(ファイル名, Len(ファイル名) - 1) & ".docx"
ファイル名 = myParentFolderPath & "\01.出力先\" & ファイル名
ActiveDocument.SaveAs ファイル名
Close
End Sub
No.8
- 回答日時:
No.7の回答者です。
いきなり、修正したマクロだけを回答してしまいました。
以下は、修正部分の説明です。
ActiveDocumentの使い方が、実行ファイルと出力先の新規文書への
二つになっているために、保存するパスがおかしくなるのです。
実行ファイルのパスを事前にmyParentFolderPath として取得して、
差し込み印刷実行後に、出力先のファイルにmyParentFolderPathと
追加したフォルダ名+ファイルの先頭にある文字列のファイル名へと
なるように、変数"ファイル名"を書き換えます。
あとは、ActiveDocument.SaveAs又はActiveDocument.SaveAs2
としてファイル名の変数として取得したもので保存します。
Closeを追加していますが、不要なら削除してください。
No.6
- 回答日時:
>01.出力先とマクロ実行Documentはともに
一応、もう一度下記のコードで確認してみてください
Sub getPath()
Dim ファイル名 As String
ファイル名 = ActiveDocument.Paragraphs(1).Range.Text
ファイル名 = Left(ファイル名, Len(ファイル名) - 1)
MsgBox ActiveDocument.Path & "\01.出力先"
MsgBox ActiveDocument.Path & "\01.出力先" & "\" & ファイル名 & ".docx"
End Sub
No.5
- 回答日時:
>保存されているWordのフォルダ名:”A”の階層化に、"01.出力先"というフォルダを作成しました。
>myParentFolderPathが、Cドライブのフォルダーになっていて、意図したパスが取得できず
意図するパスとはどのようなパスですか?
親フォルダパスを取得したりしていませんか?
ThisDocument.Parent.Path
マクロ実行Documentはどこに保存していますか?
未保存でしたら 01.出力先フォルダのある同じ階層に保存してください
検証
myParentFolderPath = ThisDocument.Path を
myParentFolderPath = ActiveDocument.Path で
No.4
- 回答日時:
Dim myParentFolderPath
myParentFolderPath = ThisDocument.Path
Dim ファイル名 As String
ファイル名 = ActiveDocument.Paragraphs(1).Range.Text
ファイル名 = Left(ファイル名, Len(ファイル名) - 1) '& ".docx"
ActiveDocument.SaveAs2 FileName:=myParentFolderPath _
& "\01.出力先\" & ファイル名 & ".docx", FileFormat:= _
wdFormatXMLDocument, Password:="ddddd1001"
ActiveDocument.Close SaveChanges:= False
ActiveDocumentを閉じています 保存したばかりなので
SaveChanges:= False は不要ですが保存しないで閉じるコードです
Wordアプリケーション自体を終了する場合は
ActiveDocument.Close SaveChanges:= Falseの 上に
Application.Quit SaveChanges:=wdPromptToSaveChanges を加えます
コピペで使えると思いますよ
ActiveDocument.SaveAs2 FileName:=myParentFolderPath _
& "\01.出力先\" & ファイル名 & ".docx", FileFormat:= _
wdFormatXMLDocument, Password:="ddddd1001"
Application.Quit SaveChanges:=wdPromptToSaveChanges
ActiveDocument.Close
End Sub
諄いようですがApplication.Quit を加えるとWordアプリケーション自体が終了します
保存先はマクロ有効Documentではないので 編集済みコードが消えますので 実行前に作業しているDocumentを 必ず保存 してください
Document.countなどでDocumentの数でApplication.Quitを実行するなんて方法もありますので自身で調べてみてください
ファイル名に使えない文字については参考例 Functionを記します
使えない文字をアンダーバーに変換しています
Public Function character_change(ByVal strName As String, _
Optional ByVal repChar As String = "_") As String
Dim buf As String, ngChar
buf = strName
For Each ngChar In Array("\", "/", ":", "*", "?", """", "<", ">", "|", "[", "]")
buf = Replace(buf, ngChar, repChar)
Next
character_change = buf
End Function
使い方はファイル名の作成最後に
ファイル名 = character_change(ファイル名)
No.3
- 回答日時:
myParentFolderPath_& よく見て
myParentFolderPath _
& "\01.出力先\"・・・
あと、取敢えず テスト段階なので
, Password:="ddddd1001" は 削除しておいた方が確認が早いかな
保存した後の開かれているファイル名の確認もしてください
Close が無いですね・・以下の意味がわかると思います
No.2
- 回答日時:
よく見たら
ActiveDocument.SaveAs _
ファイル名 = myPa・・・
書き方間違ってます
myParentFolderPath = ThisDocument.Path
ファイル名 = Left(ファイル名, Len(ファイル名) - 1)
ActiveDocument.SaveAs2 FileName:=myParentFolderPath _
& "\01.出力先\" & ファイル名 & ".docx", FileFormat:= _
wdFormatXMLDocument, Password:="ddddd1001"
こんな感じだと思いますが Close が無いですね・・
1回実行すると開いているドキュメントは保存先のドキュメントとなりますので、そのままもう一度実行するとThisDocument.Pathは保存先のパスになります(\01.出力先が含まれる)よってエラーになると思います
名前を変更して何度も出力する場合は新規Documentを作りそれを保存するようにすれば繰り返しの処理が可能になると思います
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/11 11:05
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
もし10億円当たったら何に使いますか?
みなさんの10億円プランが知りたいです!
-
あなたなりのストレス発散方法を教えてください!
自分なりのストレス発散方法はありますか?
-
一番好きなみそ汁の具材は?
みんなで大好きなみそ汁の具材について語り合おうよっ!
-
word VBA ファイル名 保存
その他(Microsoft Office)
-
【VBA】エクセルの指定セルの値を、Wordの指定場所に貼る方法
Excel(エクセル)
-
ExcelVBAで既に開いてるwordを閉じる
Excel(エクセル)
-
-
4
(実行時エラー5852)ExcelデータをWordに差し込んだ後、Wordファイルを分割するマクロ
Word(ワード)
-
5
ワードからPDFに名前を付けて保存するマクロ
Word(ワード)
-
6
差し込み後、元データを変更し 差し込み先に反映させるには?
Access(アクセス)
-
7
ワードで画像を自動で挿入する方法
Word(ワード)
-
8
VBAで文字を反映させると255文字の制限になってしまいます。
Visual Basic(VBA)
-
9
Integer変数をカラにしたいのですが
Visual Basic(VBA)
-
10
Word用のマクロが急に働かなくなった
Word(ワード)
-
11
UserForm1.Showでエラーになります。
工学
-
12
WORDマクロで特定文字から別文字までを範囲選択したい
Word(ワード)
-
13
【VBA】マクロの入ったファイルと同じフォルダに,出力したファイルを保存するコードについて
Visual Basic(VBA)
-
14
実行時エラー´5854´ 文字列型パラメーターが長すぎます。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
Acccess レポートをグループ別...
-
OCRで起こしたテキスト文字をCS...
-
ファイルの文字コードをUTF-8に...
-
Accessでのレポート印刷待機方法
-
Wordマクロで指定したフォルダ...
-
CSV形式に変換
-
fwprintf()について
-
ファイルI/O完了待ち
-
(VBA)書式が変更されてしまい...
-
スレッドセーフでないAPIをマル...
-
VC++での外部ファイル(batファ...
-
CBool関数について VB6とVB.net...
-
VBAでエクセルをCSVに変換時
-
構造体のファイル出力
-
標準出力とファイルに効率的に...
-
複数のC言語プログラムが,一つ...
-
シェルコマンドの 2>&1 とはど...
-
高速置換の方法
-
【ExcelVBA】UTF-8(BOM無)でC...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
VC++でUTF-8のファイルを出力し...
-
ファイル出力の場所を指定
-
シェルコマンドの 2>&1 とはど...
-
【ExcelVBA】UTF-8(BOM無)でC...
-
ファイル形式またはファイル拡...
-
BitBltについて。
-
Wordマクロで指定したフォルダ...
-
外国語とCSVについて
-
Acccess レポートをグループ別...
-
ファイルの文字コードをUTF-8に...
-
テキストファイルに改行コード...
-
MS-Word で作成した表をLatexに...
-
サウンド出力のデバイスを選択...
-
CBool関数について VB6とVB.net...
-
拡張子.vsdをイラストレーター...
-
pLaTeX の EPSファイル読み込み...
-
CSVファイルを任意の場所に出力...
-
pcap形式データをテキストへ抽出
-
VBAでエクセルをCSVに変換時
おすすめ情報
Dim ファイル名 As String
ファイル名 = ActiveDocument.Paragraphs(1).Range.Text
myParentFolderPath = ThisDocument.Path
ファイル名 = Left(ファイル名, Len(ファイル名) - 1)
「ActiveDocument.SaveAs2 FileName:=myParentFolderPath_& \"01.出力先"\ & ファイル名 & ".docx", FileFormat:= _
wdFormatXMLDocument , Password:="dddddd1001"」
「」の部分が、コンパイルエラー:修正候補:式と出ました。どうしたら良いでしょうか。
ActiveDocument.SaveAs2 FileName:=myParentFolderPath_& \"01.出力先"\ & ファイル名 & ".docx", FileFormat:= _wdFormatXMLDocument
Close
としましたが、& ファイル名の&に赤く色がつきます。
ちなみにファイル名は、01【印刷:2】契約書(AA立川).docxです。
ご丁寧にありがとうございます。
ただ、myParentFolderPathが、Cドライブのフォルダーになっていて、意図したパスが取得できず
ActiveDocument.SaveAs2 FileName:=myParentFolderPath _
& "\01.出力先\" & ファイル名 & ".docx", FileFormat:= _
wdFormatXMLDocument, Password:="ddddd1001"、
が黄色くなってしまいします。絶対パスでやらないと無理なのでしょうか。
ご丁寧な、ご回答いつもありがとうございます。
意図するパスは、
サーバー>会社名>個人フォルダー>簡易稟議書作成ツール
>00.入力データ>解約・新規>01.出力先
01.出力先とマクロ実行Documentはともに>解約・新規>配下に保存」しています。