Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


94 / 308 ツリー ←次へ | 前へ→

【604】doc.ファイルをファイル名をそのままでテキスト保存するマクロ kuroda 09/2/26(木) 12:38 質問[未読]
【605】Re:doc.ファイルをファイル名をそのままでテ... マクロマン 09/2/26(木) 13:46 発言[未読]
【606】Re:doc.ファイルをファイル名をそのままでテ... マクロマン 09/2/26(木) 13:57 発言[未読]
【607】ご返答ありがとうございます kuroda 09/2/26(木) 23:37 お礼[未読]
【608】Re:ご返答ありがとうございます マクロマン 09/2/27(金) 10:15 発言[未読]
【609】Re:ご返答ありがとうございます kuroda 09/2/27(金) 23:03 お礼[未読]
【610】Re:ご返答ありがとうございます マクロマン 09/2/28(土) 8:51 発言[未読]
【612】Re:ご返答ありがとうございます kuroda 09/2/28(土) 9:22 お礼[未読]
【611】Re:ご返答ありがとうございます マクロマン 09/2/28(土) 8:52 発言[未読]
【613】Re:ご返答ありがとうございます マクロマン 09/2/28(土) 9:32 発言[未読]
【614】Re:ご返答ありがとうございます kuroda 09/2/28(土) 10:58 お礼[未読]

【604】doc.ファイルをファイル名をそのままでテキ...
質問  kuroda  - 09/2/26(木) 12:38 -

引用なし
パスワード
   初めてお世話になります。
win vistaでword 2007を使用している者です。
仕事がら、wordのドキュメントファイル(.doc)を名前を付けて保存で書式なし(.txt)保存をする機会が非常に多いので、この作業をマクロにしたいと常々思っています。
VBAについてはほとんど知識がないので、マクロの記録コマンドでマクロを作っております。
マクロの記録を使って私が作成すると、一応できるのですが、ファイル名と保存するフォルダ名が固定されてしまいます。
希望は、「あいうえお.doc」というファイルを、そのファイルが入っているフォルダに、同じファイル名で「あいうえお.txt」と保存したいのですが。
それと文字コードはUTF-8で保存したいと思います。
ご存知の方いらっしゃいましたら、よろしくお願い致します。

【605】Re:doc.ファイルをファイル名をそのままで...
発言  マクロマン  - 09/2/26(木) 13:46 -

引用なし
パスワード
   ドキュメントが格納されているフォルダの名前とドキュメント
の名前の取得方法です。

MsgBox ThisDocument.Path 'フォルダパス
MsgBox ThisDocument.Name 'ドキュメント

FileSystemObjectを使い、GetBaseNameで拡張子を除いた
ドキュメント名を取得する方法もあります。

ただ、今回はワードドキュメント限定ですので、
ThisDocument.Name
から拡張子部分を除いた左部分を取得、でもいけると思います。

MsgBox Left(ThisDocument.Name,Len(ThisDocument.Name)-4)

これに".txt"を付加すればテキストファイル名になります。
さらに
ThisDocument.Path
を前に付ければテキストファイルのパスになります。

ThisDocument.Path & "\" & Left(ThisDocument.Name,Len(ThisDocument.Name)-4) & ".txt"

テキスト形式で保存するのは、マクロの自動記録である程度のコードが得られます。
名前をつけて保存

ファイルの種類:書式なし(*.txt)
で"書式なし〜"の警告が出るので「はい」

「ファイルの変換」ウィンドウが出て、ここで「その他」を選択すると
Shift JISなどの形式を選択できます。
でも、ここには「UTF-8」は無いようです。

ですので、一度保存した後形式を変換するか、別の方法でテキストファイルを
作成する必要があるかもしれません。

この当りのshift JISとかUTF-8とかのことについては私自身詳しくはありません。

【606】Re:doc.ファイルをファイル名をそのままで...
発言  マクロマン  - 09/2/26(木) 13:57 -

引用なし
パスワード
   >win vistaでword 2007を使用している者です。

見落としてました。
当方Win XP SP2、Word2002で試しています。
手順や表示されるメッセージが違う可能性が大いにあります。

【607】ご返答ありがとうございます
お礼  kuroda  - 09/2/26(木) 23:37 -

引用なし
パスワード
   ▼マクロマン さん:
お返答どうもありがとうございます。
丁寧なご指示をいただいたのですが、何せVBAの知識が乏しいため、最終的にどのような構文にしたらいいのか、判らないのです。
現在、マクロを記録したままだと、

Sub テキスト保存()
'
' テキスト保存 Macro
'
'
  ActiveDocument.SaveAs FileName:="あいうえお.txt", FileFormat:=wdFormatText, _
    LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
    :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
    SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
    False, Encoding:=65001, InsertLineBreaks:=False, AllowSubstitutions:= _
    False, LineEnding:=wdCRLF
End Sub

となっているのですが、教えていただいた構文を何処へどのように挿入するのかがよく判らないのです。とりあえずやってみましたが、うまくいきませんでした。
もしよろしければ、最終的にどのような構文になるのかも、教えていただけませんでしょうか。
誠に勝手なお願いなのですが、よろしくお願います。

【608】Re:ご返答ありがとうございます
発言  マクロマン  - 09/2/27(金) 10:15 -

引用なし
パスワード
   >FileName:="あいうえお.txt"

この部分が保存するときのパス及びドキュメント名になります。

この部分に変数で作成した名前を代入します。

FileName:= 変数

なお、コードで分からない部分があったら、VBEで選択してF1キーを押したら
関連するヘルプが表示されます。

【609】Re:ご返答ありがとうございます
お礼  kuroda  - 09/2/27(金) 23:03 -

引用なし
パスワード
   詳しく指示していただき、ありがとうございます。
以下のようにして実行しますと、

Sub テキスト保存()
'
' テキスト保存 Macro
'
'
  ActiveDocument.SaveAs FileName:=ThisDocument.Path & "\" & Left(ThisDocument.Name, Len(ThisDocument.Name) - 4) & "txt", FileFormat:=wdFormatText, _
    LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
    :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
    SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
    False, Encoding:=65001, InsertLineBreaks:=False, AllowSubstitutions:= _
    False, LineEnding:=wdCRLF
End Sub

上記でマクロを実行しますと、エラーは出ないのですが、今度はファイル名がNormal.txtに固定されてしまい、元のファイル名が生かされないのです。
構文が間違っているのでしょうか。
(txtの前の.は削除させていただきました。ついているとNormal..txtとなったので)
何回も申し訳ありませんが、教えていただけませんでしょうか?
よろしくお願いいたします。

【610】Re:ご返答ありがとうございます
発言  マクロマン  - 09/2/28(土) 8:51 -

引用なし
パスワード
   マクロを自ブックの標準モジュールではなく、Normalの方に登録していませんか?

【611】Re:ご返答ありがとうございます
発言  マクロマン  - 09/2/28(土) 8:52 -

引用なし
パスワード
   >自ブック

自ドキュメント
でした。エクセルでのクセが・・・。

失礼しました。

【612】Re:ご返答ありがとうございます
お礼  kuroda  - 09/2/28(土) 9:22 -

引用なし
パスワード
   何度も,ありがとうございます。

>マクロを自ブックの標準モジュールではなく、Normalの方に登録していませんか?

はい,Normalの方に登録しています。
どのファイルを開いているときでも,そのマクロが使えるのでNormalに登録しているのですが……。
マクロの登録場所の問題でしょうか?

【613】Re:ご返答ありがとうございます
発言  マクロマン  - 09/2/28(土) 9:32 -

引用なし
パスワード
   マクロを自ドキュメントではなくNormalの方に登録しないといけない、
ということでしたら、

ThisDocument

ActiveDocument
に書き換えてください。
これですと、アクティブになっているドキュメント
が対象になります。

ThisDocument
は、マクロが登録されているドキュメントが対象になります。

【614】Re:ご返答ありがとうございます
お礼  kuroda  - 09/2/28(土) 10:58 -

引用なし
パスワード
   ▼マクロマン さん:
成功しました! これから作業がずっと楽になります。
何回も説明していただき,誠にありがとうございました。

94 / 308 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
207162
(SS)C-BOARD v3.8 is Free