プロが教えるわが家の防犯対策術!

アクセスのレポートをワードにマクロ等で変換したいのですが?
マクロの作成ではできるのですが、
ワードに変換し、ファイルを保存するフォルダーを指定し、[ファイル名]+YYMMDD.doc
としたいのですが、マクロかモジュールの書き方教えてください。
よろしく、お願いします。

A 回答 (3件)

エラー処理はほとんどしていませんが、以下の


コードではどうですか。
フォームのボタンクリックのイベントに設定
します。インプットボックスが二回表示されます。
保存するレポート名と保存先です。保存先は
たとえば、

C:\Documents and Settings\user\デスクトップ\hogehoge

あるいは、

C:\Temp

などと入力します。


Private Sub コマンド0_Click()
Dim strReportName As String
Dim strPath As String
Dim strMsg1 As String
Dim strMsg2 As String

strMsg1 = "保存するレポートの名前を入力してください"
strMsg2 = "保存先をフルパスで入力してください"

If MsgBox("Wordで保存しますか?", vbYesNo) = vbYes Then
strReportName = InputBox(strMsg1, "レポート名")
strPath = InputBox(strMsg2, "保存先")
If strPath <> "" Then
DoCmd.OutputTo acOutputReport, strReportName, acFormatRTF, strPath & "\" & Format(Date, "yyyymmdd") & ".doc", False
End If
End If
End Sub

この回答への補足

わざわざ、補足まで書いて頂き、ありがとうございます。
大変、役立ち、早速活用させて頂きました。

ついでに、厚かましいのですが、マクロの進行のなかに、メッセージBOXが出、
タイトル{ファイルへ出力} ファイル形式の選択と出て、Snapshot Format,Rich Text Format,MS-DOS Text,Micrsoft Excel,HTMLと5つの選択画面が出ます。
この選択メッセージBOXなしには成らないのですか?

サアーとワード文章にしたいのです。すみません、よろしく回答お願いいたします。

補足日時:2012/04/30 17:58
    • good
    • 0
この回答へのお礼

申し訳ありません
acFormatRTF,のスペル間違って記入してました。
できました。ありがとうございました。
今後、活用させていただきまし。

お礼日時:2012/05/03 13:27

>クロの進行のなかに、メッセージBOXが出、


>タイトル{ファイルへ出力} ファイル形式の選択と出て、
>Snapshot Format,Rich Text Format,MS-DOS Text,Micrsoft Excel,HTML
>と5つの選択画面が出ます。
>この選択メッセージBOXなしには成らないのですか?

最初は、? と思ったのですが、多分こういうことではないかと。
もし、提案したコードを実行中に補足のようなことが起きるとする
ならば、多分、

DoCmd.OutputTo acOutputReport, strReportName, acFormatRTF, strPath & "\" & Format(Date, "yyyymmdd") & ".doc", False

のところで、

acFormatRTF

が何らかの理由で省略されてしまっているのでは、と思います。
これを省略して、

DoCmd.OutputTo acOutputReport, strReportName,, strPath & "\" & Format(Date, "yyyymmdd") & ".doc", False

のようにすると補足のようなことが起きます。レポートは
直接Word形式に変換するのではなく、一旦RTF、すなわち
RichText形式に変換し、拡張子をdocにするという方法を
とります。したがって、acFormatRTFを所定の位置に入れると
補足のようなことは起きないはずです。


追加として、質問では保存するときにファイル名も指定
しておきたい、ということでしたから、

Private Sub コマンド0_Click()
Dim strReportName As String
Dim strPath As String
Dim strFileName As String
Dim strMsg1 As String
Dim strMsg2 As String
Dim strMsg3 As String

strMsg1 = "保存するレポートの名前を入力してください"
strMsg2 = "保存先をフルパスで入力してください"
strMsg3 = "保存するときのファイル名を入力してください"

If MsgBox("Wordで保存しますか?", vbYesNo) = vbYes Then
strReportName = InputBox(strMsg1, "レポート名")
strPath = InputBox(strMsg2, "保存先")
strFileName = InputBox(strMsg3, "ファイル名")
If strPath <> "" Then
DoCmd.OutputTo acOutputReport, strReportName, acFormatRTF, strPath & "\" & strFileName & Format(Date, "yymmdd") & ".doc",

False
End If
End If
End Sub


以上です。補足に関して私の解釈が間違っていなければ、
と思う次第です。何かあれば補足してください。
    • good
    • 0

No1です。



DoCmd.OutputTo acOutputReport, strReportName, acFormatRTF, strPath & "\" & Format(Date, "yyyymmdd") & ".doc", False

のところで、

yyyymmdd



yymmdd

にしてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています