\00.入力先ディレクトリ上でWORDを開いた状態から始まり、
"txt"で、ファイル名の設定。
\01.出力先上で、名前を付けて保存をしたいのですが、
「名前付き引数が見つかりません」とコンパイルエラーになってしまいます。
\01.出力先\" & txt & ".docx" がおかしいのでしょうか?
素人ですいません、ご教授お願いします。
以下、コードになります。よろしくお願いします、
Selection.WholeStory
Selection.Copy
ChangeFileOpenDirectory _
ThisWorkbook.Path & "\01.出力先\"
Workbooks.Open FileName:= _
ThisWorkbook.Path & "\01.出力先\01【印刷:2】ああああああああああ(案).docx"
txt = Selection.Text
With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = txt 'ファイル名の設定
End With
ChangeFileOpenDirectory _
ThisWorkbook.Path & "\01.出力先\"
ActiveDocument.SaveAs FileName:= _
ThisWorkbook.Path & "\01.出力先\" & "txt" & ".docx" _
, FileFormat:=wdFormatXMLDocument, LockComments:=False, Password:= _
"docomo1001", AddToRecentFiles:=True, WritePassword:="", _
ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False, CompatibilityMode:=15
Application.Quit
End Sub
No.2ベストアンサー
- 回答日時:
他の回答が付かないようなので、未検証ですが私なりのアドバイス。
名前を付けて保存のファイル名にあたる
ThisDocument.Path & "\01.出力先\" & "txt" & ".docx"
は、変数で処理しておくほうが良いと思います。
それと省略可な引数も、引数の内容を理解するまで省略しておいた
ほうが理解しやすいと思います。
https://docs.microsoft.com/ja-jp/office/vba/api/ …
ActiveDocument.SaveAs _
FileName:= ThisDocument.Path & "\01.出力先\" & "txt" & ".docx", _
FileFormat:=wdFormatXMLDocument, _
LockComments:=False, _ ' 省略可
Password:= "docomo1001", _
AddToRecentFiles:=True, _ ' 省略可(既定値)
WritePassword:="", _ ' 省略可
ReadOnlyRecommended:=False, _ ' 省略可(既定値)
EmbedTrueTypeFonts:=False, _ ' 省略可(既定値)
SaveNativePictureFormat:=False, _ ' 省略可(既定値)
SaveFormsData:=False, _ ' 省略可(既定値)
SaveAsAOCELetter:= False, _ ' 省略可(既定値)
CompatibilityMode:=15
これを書き換えると
ActiveDocument.SaveAs2 _
FileName:= Fname ,_ ' 変数で処理
FileFormat:=wdFormatXMLDocument, _
Password:= "docomo1001", _
CompatibilityMode:=15
となり、シンプルで読みやすくなります。
変数Fnameは、
Fname = ThisDocument.Path & "\01.出力先\" & "txt" & ".docx"
にするだけです。
気になるのは、ThisDocument.Pathでフォルダパスです。
例えば、
"C:\Users\ユーザー名\Documents\Word文書\\00.入力先"
のWord文書を開いた状態で、
"C:\Users\ユーザー名\Documents\Word文書\\01.出力先"
に名前を付けて保存するとしたら、ThisDocument.Path & ファイル名
での保存は保存先が違ってきます。
ChangeFileOpenDirectory で書き換えるとしても、
https://docs.microsoft.com/ja-jp/office/vba/api/ …
開いている文書のパスを書き換えるものではありません。
まずは、現在開いている文書の親フォルダのパスを取得することが
必要です。
https://www.wordvbalab.com/code/7292/
こちら↑のマクロ2にあるマクロで、 myParentFolderPath として取得
しているのがわかると思います。
最初の myFolderPath = "ファイル名" を
myFolderPath = ThisDocument.Path
に書き換えれば、取得できているはずです。
あとは、
FileName:= myFolderPath & "\01.出力先\" & "txt" & ".docx",
のように組み込むことで対応できると思います。
No.1
- 回答日時:
ThisWorkbook.Path ???
開いているExcelブックからのマクロ作業なの?
https://kosapi.com/post-3986/
Word文書を開いていて、その文書のマクロで実行するなら、
ThisDocument.Path & "\01.出力先\" & "txt" & ".docx" _
にしないと。
https://tonari-it.com/word-vba-document-open-clo …
それと、Wordのバージョンによっては、SaveAs2メソッドで
名前を付けて保存したほうが良い場合も。
https://tonari-it.com/word-vba-saveas2-getbasena …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Wordマクロで指定したフォルダ名に保存する方法について 8 2022/12/13 11:35
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Access(アクセス) エクセルのマクロについて教えてください。 2 2023/02/04 14:20
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
プログラムについての質問です...
-
printfとputcharの違いは
-
Mac版 Excel VBA PDF出力フォル...
-
ACCESS クエリ→フォーム...
-
OBS配信すると、マイクが途切れ...
-
Windows Formアプリからコンソ...
-
CRC16計算について
-
cout と cerrの違い
-
MMDでavi出力が出来ない
-
Accessの値をExcelに縦横入替出...
-
現在プログラムを作っているの...
-
アクセスでエクセルに出力する...
-
コンセントの電力は入力と出力...
-
テキストファイルから特定の文...
-
【UNIX】echoコマンドのタブが...
-
Accessのテーブルからcsv出力す...
-
VB.NETのCreateObject()にあた...
-
HOCadの本についてなんですが・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
MMDでavi出力が出来ない
-
プログラムについての質問です...
-
コンセントの電力は入力と出力...
-
AIに回答させるって
-
OBS配信すると、マイクが途切れ...
-
VBAでテキスト出力時のスペース...
-
cout と cerrの違い
-
アクセスでエクセルに出力する...
-
printfとputcharの違いは
-
ACCESS クエリ→フォーム...
-
VBAのExecメソッドで画面を非表...
-
テキストファイルから特定の文...
-
COBOLのMOVEで桁数が異なる場合
-
VBAで有効数字の設定
-
coutで出力した文字を消去する...
-
Windows Formアプリからコンソ...
-
KEYENCEのシーケンスプログラム...
-
CRC16計算について
おすすめ情報