解決済み

再質問:Win2000でエクセル97でシートを外部出力するとエラー

  • すぐに回答を!
  • 質問No.295419
  • 閲覧数66
  • ありがとう数1
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 62% (94/150)

マクロのことはまだ初心者で、下記のようなマクロの記録を作成してみたのですが、実行すると2000ではユーザーが変わるとエラー表示が出てしまって、困っています
ユーザー名は私の会社のイントラネットのユーザー番号です
シートは関数も入っているので、コピー+値にしデスクトップに外部出力する方法にしています
昨日回答をもらったのですが今一歩のところでエラーになり解決できず、行き詰まっています、
名前を付けて保存の手順が良いと思うのですが??
下記のマクロは参考に載せましたが、あてになりません
どうにか解決したいのでよろしくお願いします

このカ所が黄色になっていました
ChDir "C:\Documents and Settings\USR81043\デスクトップ"

Sub Win2000でシートのコピーをデスクトップに外部出力()
'
' Win2000でシートのコピーをデスクトップに外部出力 Macro
' マクロ記録日 : 2002/6/17 ユーザー名 : USR81043
'

'
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 "C:\Documents and Settings\USR81043\デスクトップ"
ActiveWorkbook.SaveAs FileName:= _
"C:\Documents and Settings\USR81043\デスクトップ\協力業者評価報告書1.xls", FileFormat:=
_
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False
_
, CreateBackup:=False
End Sub
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3

何をした時にエラーになりますか?
このWebブラウザからコードを丸ごとコピーすると、ここの掲示板によって自動的に改行されてしまった部分が構文エラーになり、赤く表示されます。
「 _」(スペース+アンダーバー)は長くなりすぎる1行コードを途中で区切るための文字です。

Selection.PasteSpecial Paste:=xlValues, _
Operation:=xlNone, _
SkipBlanks:= False, _
Transpose:=False

この「1行」に関しましては元の質問文のままお使いください。
お礼コメント
71063

お礼率 62% (94/150)

出来ました
すごいですね
大変ありがとうございました

今後ともよろしくお願いします
投稿日時 - 2002-06-23 12:04:05

その他の回答 (全2件)

  • 回答No.1

変更箇所のコードのみを書きます。

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がどんな内容を取得しているか見ることが出来ます。
補足コメント
71063

お礼率 62% (94/150)

夜遅くまで回答大変ありがとうございました
回答が来なくて、悩んでいました
ほんとにありがとうございました

もう少し、申し訳ありませんが教えてください

ご指摘の変更箇所を下記に入れてみましたが、「コンバイルエラー;構文エラー」が出て
・この箇所が黄色
 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
投稿日時 - 2002-06-20 06:51:04
  • 回答No.2

大変失礼しました。

Set wshShell As Object

これを

Set WshShell = CreateObject("WScript.Shell")

このように変更してください(^_^;;
これでイケるはずです。
補足コメント
71063

お礼率 62% (94/150)

度々すいません
もう少し、申し訳ありませんが教えてください

ご指摘の変更箇所を下記に入れてみましたが、「コンバイルエラー;構文エラー」がまた出て

・この箇所が赤字

 Selection.PasteSpecial Paste:=xlValues,  Operation:=xlNone, SkipBlanks:=
 _
 False, Transpose:=False
投稿日時 - 2002-06-22 19:15:46
このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ