• ベストアンサー

EXCEL/VBAでWORDファイル名の先頭に文字を付加して保存する方法

EXCEL/VBAでWORDファイル名の先頭に文字を付加して保存する方法を教えてください。 編集してファイルを保存するときに、元のファイル名の先頭に任意の文字(変数:f_kenmei)を付加して保存したいと思います。 EXCELファイルの場合は、 ActiveWorkbook.SaveAs Filename:=f_kenmei & ActiveWorkbook.Name で良いと思いますが、WORDファイルの場合はどうしたら良いですか。 EXCEL/VBA初心者につき、宜しくお願いします。

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

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

ActiveDocument.SaveAs f_kenmei & ActiveDocument.Name でよいのではないでしょうか? Excelと同じように「ActiveDocument.Name」で現在のファイル名が取得できます。Excel/VBAでワードの文書を変数で参照している場合はActiveDocumentをその変数名に変えて下さい。

pegasusv
質問者

お礼

回答有難うございます。 「ActiveDocument.Name」でokですね。 excel側のカレントディレクトリーが、word側には反映されないのと 変数が間違っていたのでうまく動作しませんでしたが、何とか動作 するようになりました。 どうも有難うございました。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 同じ疑問が、すでに付いていますが、私にも、ご質問が良く分からないですね。 >編集してファイルを保存するときに、元のファイル名の先頭に任意の文字(変数:f_kenmei)を付加して保存したいと思います。 Wordを編集してファイルを保存するけれども、Excel VBAで処理するというわけですね。 だから、最初に、Excelを開いてファイル管理をさせて、Wordを編集するということだと思います。 VBA初心者レベルではないと思いますが、オートメーション・オブジェクトで、保存の際に、Wordの管理をExcel側でさせるとか、考えます。 しかし、オートメーション・オブジェクトを使わないとなると、Win32APIで、WordファイルがWindowにあるのかどうかを監視し、それがなくなった時点で処理します。ただし、Wordの立ち上げは、Excel側から行います。 >EXCEL/VBAでWORDファイル名の先頭に文字を付加して保存する方法 そもそも、なぜ、Excel VBAを使うのでしょうか?MS-WordのVBAで十分なような気がします。 #2のimogasiさん曰く 「ワードのVBAはまとまった解説書は、現在多分1冊も市販されてない情況」 今は、まとまった解説書は日本語にはありませんし、アマゾンであっても、古本でプレミアがついています。それと、Word 2003 からVBAの内容が多少変わったようです。思ったようにはいかないのが現状です。

pegasusv
質問者

お礼

エクセルVBAの初心者と言ったのは、今年からvbaを始めたのでそのように書きました。 excelフォーマットとwordフォーマットが有り、その両方にキーワードを記載するマクロを製作中です。 excel側のカレントディレクトリーが、word側には反映されないのと 変数が間違っていたのでうまく動作しませんでしたが、何とか動作するようになりました。 回答有難うございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

なぜエクセルVBAの初心者が、エクセルからワードの文書の保存を扱うのか。 ワードの世界に入らないといけないし、この他アプリとの連携など上級の課題です。またエクセルからなぜ扱うのか。 ワードのVBAはまとまった解説書は、現在多分1冊も市販されてない情況で、ヘルプやWEBでの断片的な記事を探す、マクロの記録を勉強する、ほか無い。非常に学習し難い分野なんです。 ただ質問程度の箇所に限れば、記事も多いが。 ーー ワードの現在開いている文書はActiveDocumentで捉えられるから、 またファイルの名前をつけて保存はSaveAsだから、 Googleででも「ActiveDocument SaveAs VBA」で照会のこと。 最初に出てきた記事に Sub SaveAsRTF() ActiveDocument.SaveAs FileName:="Text.rtf", _ FileFormat:=wdFormatRTF End Sub が有ったが FileName:="Text.rtf"の部分をf_kenmei & "固定部分文字列" で良いでしょう。(FileFormat:=wdFormatRTFは添えないように) 現在開いている文書が、既に名前が決っているなら Sub test09() MsgBox ActiveDocument.Name End Sub のような例をやってみて判るように、これで捉えられるから、私の前記の"固定部分文字列"をこれに置き換えたらよい。 また文書ファイルの保存を(ワードで)マクロの記録を取り、そのコードを見て勉強すれば良い。初心者であれば、マクロの記録を思いつかないのは、基本的に足りない。 「エクセルからワードの世界に入らないといけないし」は判ってないなら再度質問のこと。

pegasusv
質問者

お礼

エクセルVBAの初心者と言ったのは、今年からvbaを始めたのでそのように書きました。 excelフォーマットとwordフォーマットが有り、その両方にキーワードを記載するマクロを製作中です。 マクロの記録を取らなかったのは、変数を使ったファイル名の記録は取れないからです。 excel側のカレントディレクトリーが、word側には反映されないのと 変数が間違っていたのでうまく動作しませんでしたが、何とか動作するようになりました。 回答有難うございました。

関連するQ&A

専門家に質問してみよう