• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:再質問:Win2000でエクセル97でシートを外部出力するとエラー)

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

noname#102878の回答

noname#102878
noname#102878
回答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
質問者

補足

夜遅くまで回答大変ありがとうございました 回答が来なくて、悩んでいました ほんとにありがとうございました もう少し、申し訳ありませんが教えてください ご指摘の変更箇所を下記に入れてみましたが、「コンバイルエラー;構文エラー」が出て ・この箇所が黄色  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

関連するQ&A

  • エクセル2000でシートを外部出力するとエラー

    マクロのことはまだ初心者で、下記のようなマクロの記録を作成してみたのですが、実行すると2000ではユーザーが変わるとエラー表示が出てしまって、困っています ユーザー名は私の会社のイントラネットのユーザー番号です シートは関数も入っているので、コピー+値にしデスクトップに外部出力する方法にしています このカ所が黄色になっていました ChDir "C:\Documents and Settings\USR81043\デスクトップ" Sub エクセル2000でシートのコピーをデスクトップに外部出力() ' ' エクセル2000でシートのコピーをデスクトップに外部出力 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

  • VBマクロで教えて下さい。

    下記VBマクロで上書きしない時はマクロを終了させたいのですがこ指導をお願いします。 Sub Macro2() ' Macro2 Macro ' マクロ記録日 : 2012/9/3  ユーザー名 : HA社    ChDir "C:\Documents and Settings\6464552\デスクトップ"    ActiveWorkbook.SaveAs Filename:= _        "C:\Documents and Settings\6464552\デスクトップ\直送先部品出庫伝票.xls", FileFormat:= _        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _        , CreateBackup:=False  Range("D42:E49").Select    Selection.ClearContents    Range("I32:J32").Select    Selection.Copy    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _        :=False, Transpose:=False    Application.CutCopyMode = False    ActiveWorkbook.SaveAs Filename:= _        "C:\Documents and Settings\6464552\デスクトップ\PPSC部品出庫伝票.xls", FileFormat:= _        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _        , CreateBackup:=False    Application.Quit End Sub

  • ファイルの保存先を任意にしたい(マクロ)

     エクセルのマクロです。  マクロを実行した時に、保存先とファイル名は任意に入力して(その部分だけは、マクロ実行者が入力して)、その後もマクロを実行させたいのですがどうすれば良いのでしょうか? たとえば、 ActiveCell.FormulaR1C1 = "1" Range("B1").Select ChDir "C:\Documents and Settings\a\デスクトップ" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book1.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A2").Select ActiveCell.FormulaR1C1 = "2" Range("B2").Select ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book2.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A3").Select ActiveCell.FormulaR1C1 = "3" Range("B3").Select ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book3.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A4").Select ActiveCell.FormulaR1C1 = "4" Range("B4").Select  上記の場合は、保存先もファイル名もこちらが指定していますが、その部分だけは、マクロの実行者に任意指定及び入力させたいのです。  マクロ初心者なので、よろしくお願いします。

  • excel2000マクロでのダイアログ表示での実行

    下記のマクロを実行させると、 ActiveWorkbook.SaveAs Filename:= の所で保存しますか というダイアログが表示されて、はい又はいいえを押さないと次のマクロが実行されないのですが、ダイアログを表示させないで、はいを押したと自動認識して次のマクロを走らせる方法はありますか? ChDir "C:\Documents and Settings\kenkan\デスクトップ\DB\SYSTEM\Inner_System" Workbooks.Open Filename:= _ "C:\Documents and Settings\kenkan\デスクトップ\DB\SYSTEM\Inner_System\一時出力データ.csv" ' その他の疾患を抽出 Columns("H:H").Select Selection.Copy Workbooks.Add ActiveSheet.Paste Cells.Replace What:=" ", Replacement:=" ", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False Application.CutCopyMode = False ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\kenkan\デスクトップ\DB\SYSTEM\Inner_System\一時出力_その他の疾患.txt" _ , FileFormat:=xlText, CreateBackup:=False ActiveWindow.Close

  • エクセルのマクロでテキストを生成すると日付の表示書式が変わってしまう

    エクセルのシートをマクロを実行してテキストファイルを生成します。 マクロの記述は以下の通りです。 保存 ChDir "C:\Documents and Settings\All Users\デスクトップ" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\All Users\デスクトップ\YA-SWK.txt", FileFormat:= _ xlCSV, CreateBackup:=False '終了 Application.Quit End Sub 元データのエクセルのシートに「2006/9/1」と入力されているセルがあるのですが、マクロを実行して生成されたテキストファイルでは「9/1/2006」と日付の表示順序が変わってしまいました。 この原因は何であるのかつかめません。 よろしくお願いします。

  • エクセルのマクロで、他のブックを開くときについて

    マクロの記録を利用して、他のブックを開くことをしました。 マクロのモジュールを見たら、 ChDir "C:\Documents and Settings\*****\デスクトップ" Workbooks.Open Filename:="C:\Documents and Settings\*****\デスクトップ\○○.xls" となっていました。 1行目の「Chdir」というのはなんでしょう? また、2行目では開きたいブックをパスを使ってあらわしています。 今マクロを動かしているブックと同じフォルダ内にあるブックや そのフォルダから見て上位のフォルダとか、「c:」から始まる パスを使わないような書き方はあるのでしょうか? ご助言お願いします。

  • 統合マクロでパスの取得方法

    お世話になります。 集計ファイルでエリア・商品で集計をとっています。 一つのファイルにまとめたいのでエリアをシート名による串刺し 商品を統合を使って集計していますが 毎回統合ボタンを押すのが大変で マクロを使い下記のコードを使っていますがファイルのパスで固定されているので 人に渡すとファイル名の変更、ユーザーの違いによりエラーになってしまいます。 現在開いているファイルの名前とパスをマクロに取り込み統合させる事は可能でしょうか Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2009/9/29 ユーザー名 : user ' ' Sheets("一般A").Select Range("b6").Select Selection.Consolidate Sources:=Array( _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]〇〇一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]□□一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]△△一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]××一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]●●一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]■■一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]▲▲一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]++一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]※※一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]%%一般A'!R6C2:R64C9"), _ Function:=xlSum, TopRow:=False, LeftColumn:=False, CreateLinks:=False Sheets("一般B").Select Range("b6").Select Selection.Consolidate Sources:=Array( _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]〇〇一般B'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]□□一般B'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]△△一般B'!R6C2:R64C9", _ ・ ・ ・ ・ End Sub DIMとかActiveWorkbook.Pathとか組み込みましたが うまく行かないです。 どうぞ助けてください。

  • ExcelInputBoxの文字をファイル名にする

    こんにちは。 Excel2007を使用しています。 マクロであらかじめ読み込んだファイルに、InputBoxに日付を入力して "20120723_Summary.xlsx"のように名前をつけたいのですが、 InputBoxに入力した文字をActiveWorkbookに渡す部分が書けません Dim NewName As String NewName = InputBox("名前を入力","","_Summary") 'ここで20120723_Summaryと入力する ChDir "C:\Documents and Settings\$user$\デスクトップ" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\$user$\デスクトップ\20120723_Summary.xlsx", FileFormat:= _ xlOpenXMLWorkbook, CreateBackup:=False デスクトップに20120723_Summary.xlsxが作成される この部分の書き方がおわかりの方お教えください。 よろしくお願いいたします。

  • Excel - セルの値を外部シート名として認識させる

    お世話になります。 例えばデスクトップに置いてあるブックのセルを、別のブックのセルに引っ張るとき。 ='C:\Documents and Settings\UserName\デスクトップ\[Book1.xls]Sheet1'!A1 という風になりますが。 例えばBook2のセルA1に【Book3】、A2に【Sheet5】とあってこれらが可変であるとき、セルA3に ='C:\Documents and Settings\UserName\デスクトップ\[Book3.xls]Sheet5'!A1 の値を引っ張ろうと思ったら、それは可能でしょうか。 【Book3】、【Sheet5】はそれぞれユーザが任意に入力すると、テーブルの値が変わる、という風にしたいわけですが。

  • パソコンが変わってもマクロが実行できるようにしたい

    windowsXP Excel2000でマクロ作成しました。 私は 6)の aaaa のパソコンを使っています。 これをUSBメモリで他のパソコンに複写し使おうとすると当然エラーがでます。 そのパソコンに 6)ChDir "C:\Documents and Settings\bbbb\デスクトップ\請求書フォルダ" '変更する。 とすればこのマクロが使えます。 パソコンが変わってもこのマクロが使えるようにしたいのですがどうすればよろしいでしょうか。 今はいちいち6)のaaaa、 bbbb部分を変更して使っています。 Sub ブック名に現在の日付を付加して保存() 1)Application.DisplayAlerts = False 2)Dim Filename As String 3)Application.DisplayAlerts = False 4)ChDrive ThisWorkbook.Path 'ブックのドライブに変更する。 5)ChDir ThisWorkbook.Path 'ブックのフォルダに変更する。 6)ChDir "C:\Documents and Settings\aaaa\デスクトップ\請求書フォルダ" '変更する。 7)Filename = Format(Date, "yyyymmdd") 8)On Error Resume Next 9)ActiveWorkbook.SaveAs Filename:="請求" & Filename & ".xls" 10)Err.Clear 11)Application.Quit 12)End Sub