
wordで作成したファイルの最初の第1行名をファイル名として、名前を付けて保存できるマクロを作りたいのですが、うまくいきません。
Sub 保存()
Dim ファイル名 As Variant
ファイル名 = ActiveDocument.Paragraphs(1) & ".docx"
ActiveDocument.SaveAs FileName:=(ファイル名), FileFormat:= _
wdFormatXMLDocument
End Sub
ではだめなのですが、どなたか添削よろしくお願いします。困っております。なにぶん初心者ですので基本的な文法のミスかもしれないですが、うまくいきません。
No.1ベストアンサー
- 回答日時:
パラグラフですから、行末に改行コードがついているのが、原因です。
それと、コーディングはできるだけ変数の型をハッキリさせる意味で
私ならこう書きます。
Dim ファイル名 As String
ファイル名 = ActiveDocument.Paragraphs(1).Range.Text
ファイル名 = Left(ファイル名, Len(ファイル名) - 1) & ".docx"
教えていただいた内容で問題なく作動できました。本当にありがとうございます。
1行目のテキストをリターンを除いた文字数だけ抜き出すということですね?
勉強になりました。
evernoteに保存してある大量のウェブページをwordファイルで保存する際に効率よく使用することができました。ありがとうございました。
No.2
- 回答日時:
ご質問の内容と違いますが、一行目を取って、直(じか)にファイル名とするのは、少し問題が残るような気がしましたので、以下のようにしてみました。
Word 2007 と下位バージョンとは挙動が違うようなので、自信が持てませんが、基本的には、Paragraph は、段落、Sentence は、文で、動作が変わってよいはずですが、変わらないような気がします。一応、安全措置をしました。
最初の1行目というのは、いろいろありますが、ファイル名の制限として、半角253のLong Name 設定にしました。
ファイル名の不要な文字に対しては、本来、Win32APIを使うべきかもしれませんが、大げさになるので止めました。不要なコードは、加えてください。
'//
Sub UseSaveAsMethod()
Dim nm As String
Dim n as Variant
nm = ActiveDocument.Paragraphs(1).Range.Sentences(1).Text
For Each n In Array(9, 10, 11, 12, 13, 22)
nm = Replace(nm, Chr(n), "") '不要な文字の除去
Next
With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = MidB(nm, 1, 253) 'ファイル名の最大値まで
.Show
.Execute
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Wordマクロで指定したフォルダ名に保存する方法について 8 2022/12/13 11:35
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/05/23 15:54
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトでファイル...
-
コマンドプロンプトで変数が数...
-
フォルダ内の更新日時が一番新...
-
バッチファイルで、iniファイル...
-
エクセルVBAを使用してJPGファ...
-
.batでファイル名から抽出して...
-
サブフォルダからファイルをコ...
-
エクセルの文字列順に画像をリ...
-
ExcelVBAのDirでスペース含むフ...
-
バッチファイルでファイルを置換
-
ファイル名の頭5桁と同名のフォ...
-
access,vbaでフォルダ内のファ...
-
ftp処理でmove(移動)を行いたい
-
バッチコマンドでファイル名の...
-
[DOS] コピー先に同じファイル...
-
スタートアップのファイルをバ...
-
ExifToolでの文字化け対策
-
ファイル名に ” を使うと エク...
-
【バッチプログラム】フォルダ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
[DOS] コピー先に同じファイル...
-
ftp処理でmove(移動)を行いたい
-
コマンドプロンプトでファイル...
-
バッチファイルで、iniファイル...
-
コマンドプロンプトで変数が数...
-
フォルダ内の更新日時が一番新...
-
ExcelVBAのDirでスペース含むフ...
-
.batでファイル名から抽出して...
-
サブフォルダからファイルをコ...
-
バッチコマンドでファイル名の...
-
ファイル名を該当フォルダ内か...
-
ファイル名の頭5桁と同名のフォ...
-
【DOSバッチ開発】末尾のタブの...
-
ファイル名に ” を使うと エク...
-
aタグのhrefにネットワークパス...
-
word VBA ファイル名 保存
-
前日日付のファイルGETバッチ
-
DOSのバッチ作成について‐FORの...
-
コマンドでファイルコピーする...
おすすめ情報