Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:word VBA ファイル名 保存)

word VBAでファイル名を保存する方法

このQ&Aのポイント
  • word VBAを使用して、作成したファイルの最初の行をファイル名として保存するマクロを作成したいが、うまくいかない。
  • word VBAを使用して、ファイル名を保存するためのマクロを作成したいが、初心者なためうまくいかない。
  • word VBAを使ってファイル名を保存する方法が分からない。初心者なので、基本的な文法のミスかもしれない。

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

  • ベストアンサー
  • mimeu
  • ベストアンサー率49% (39/79)
回答No.1

パラグラフですから、行末に改行コードがついているのが、原因です。 それと、コーディングはできるだけ変数の型をハッキリさせる意味で 私ならこう書きます。   Dim ファイル名 As String   ファイル名 = ActiveDocument.Paragraphs(1).Range.Text   ファイル名 = Left(ファイル名, Len(ファイル名) - 1) & ".docx"

izuhoo
質問者

お礼

教えていただいた内容で問題なく作動できました。本当にありがとうございます。 1行目のテキストをリターンを除いた文字数だけ抜き出すということですね? 勉強になりました。 evernoteに保存してある大量のウェブページをwordファイルで保存する際に効率よく使用することができました。ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答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