- ベストアンサー
Win2000でエクセル97でシートを外部出力するとエラー
- Win2000でエクセル97を使用してシートを外部出力するとエラーが発生しています。初心者のため、マクロのユーザー名の変更によりエラーが発生しています。シートには関数が含まれているため、デスクトップに外部出力する際に値のみをコピーする方法を使用しています。以前の回答では解決できず、名前を付けて保存する手順をお勧めされましたが、うまくいきませんでした。解決策をお教えいただけませんでしょうか。
- Win2000でエクセル97を使用してシートを外部出力する際にエラーが発生しています。マクロのユーザー名の変更によりエラーが発生しており、解決策を模索しています。シートには関数が含まれているため、デスクトップに外部出力する際には値のみをコピーする方法を使用しています。以前の回答では名前を付けて保存する手順をお勧めされましたが、うまくいきませんでした。お助けいただけないでしょうか。
- Win2000でエクセル97を使用してシートを外部出力するとエラーが発生しています。マクロのユーザー名の変更によりエラーが発生しており、解決策を模索しています。シートには関数が含まれているため、デスクトップに外部出力する際には値のみをコピーする方法を使用しています。以前の回答では名前を付けて保存する手順をお勧めされましたが、うまくいきませんでした。お知恵を拝借できないでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
何をした時にエラーになりますか? このWebブラウザからコードを丸ごとコピーすると、ここの掲示板によって自動的に改行されてしまった部分が構文エラーになり、赤く表示されます。 「 _」(スペース+アンダーバー)は長くなりすぎる1行コードを途中で区切るための文字です。 Selection.PasteSpecial Paste:=xlValues, _ Operation:=xlNone, _ SkipBlanks:= False, _ Transpose:=False この「1行」に関しましては元の質問文のままお使いください。
その他の回答 (2)
大変失礼しました。 Set wshShell As Object これを Set WshShell = CreateObject("WScript.Shell") このように変更してください(^_^;; これでイケるはずです。
補足
度々すいません もう少し、申し訳ありませんが教えてください ご指摘の変更箇所を下記に入れてみましたが、「コンバイルエラー;構文エラー」がまた出て ・この箇所が赤字 Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False
変更箇所のコードのみを書きます。 Sub Win2000でシートのコピーをデスクトップに外部出力() Dim wshShell As Object ' WSHのShellオブジェクト Dim strDesktop As String ' デスクトップのPath Set wshShell As Object strDesktop = wshShell.SpecialFolders("Desktop") Set wshShell = Nothing ・ ・ ・ ChDir strDesktop ActiveWorkbook.SaveAs FileName:= _ strDesktop & "\協力業者評価報告書1.xls" End Sub Windows Scripting Host というIEが提供する技術を使って現在のユーザーのデスクトップのパスを取得して変数 strDesktop に格納し、ChDirの行とSaveAsの行で使用します。 strDesktop = wshShell.SpecialFolders("Desktop") この行の下に「MsgBox strDesktop」を書けば実際に変数strDesktopがどんな内容を取得しているか見ることが出来ます。
補足
夜遅くまで回答大変ありがとうございました 回答が来なくて、悩んでいました ほんとにありがとうございました もう少し、申し訳ありませんが教えてください ご指摘の変更箇所を下記に入れてみましたが、「コンバイルエラー;構文エラー」が出て ・この箇所が黄色 Sub Win2000でシートのコピーをデスクトップに外部出力 ・この箇所が赤字 Set wshShell As Object Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False ---添削したもの---------------- Sub Win2000でシートのコピーをデスクトップに外部出力() Dim wshShell As Object ' WSHのShellオブジェクト Dim strDesktop As String ' デスクトップのPath Set wshShell As Object strDesktop = wshShell.SpecialFolders("Desktop") Set wshShell = Nothing Sheets("協力業者評価報告書").Select Sheets("協力業者評価報告書").Copy Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("A2").Select Application.CutCopyMode = False ChDir strDesktop ActiveWorkbook.SaveAs FileName:= _ strDesktop & "\協力業者評価報告書1.xls" End Sub
お礼
出来ました すごいですね 大変ありがとうございました 今後ともよろしくお願いします