• 締切済み

Aのシートにデータがあり、BのシートからAのデータを読み込み、エクセル

Aのシートにデータがあり、BのシートからAのデータを読み込み、エクセル形式で表示するVBAで組まれたエクセルがあります。 Bに読み込まれたエクセルだけを、デスクトップに保存したいのです。 ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\gsoumu7.COMP\デスクトップ\最新ver\" & bkname & ".xls", _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False 以前は動いていたのですが、しばらくぶりに動かしたら動かなくなってしまいました。 以前はOFFICE2000か2003で今は2007になっています。 大変困っています。どなたかお助けください。

みんなの回答

回答No.3

ソースを拝見しましたが何処も問題ないように見えます。 このソースならば、Officeのバージョンの違いも関係ないと思います。 手元のPCで Office2003 と Office2007で検証しました。 唯一怪しいところがあるとすれば、 Officeのバージョンが変わったとの事ですが、OSのバージョンが変わったのでは 無いでしょうか。 デスクトップのアドレスは、Vistaから変わっています。 "C:\Documents and Settings\gsoumu7.COMP\デスクトップ\最新ver\" このアドレスは存在しますか。

  • myRange
  • ベストアンサー率71% (339/472)
回答No.2

回答1、myRangeです。 最初の質問では、上手く動かない、とあり、それがどういう状態を意味しているのか書いてありませんでした。 が、保存のコードが提示されてましたので、保存が上手くいかない、(エラーが出る)と判断しての回答をしました。 保存の部分は、当方の回答で上手くいきます。 それを踏まえて、、、、 今度もただ「上手くいかない」との文言と少々の追加コードだけですね。 なぜ、「上手くいかない」がどういう状態を指しているのか明確にしないのでしょうか。 追加コード部分は2007でも問題なく動作するものです。 但し、変数の値が正しければ、ですが。 しかし、2003では動作してたコードだということですからそこらはOKでしょう。 ということで、動かない原因はその他の部分にあると推測できます。 何れにしろ、問題を解決したいのであれば、 質問者のいう「上手くいかない」がどういう状態を指しているのか明確にしてください。 また、エラーが表示されるのならそのメッセージも必要です。 エラーダイアログには「デバック」というボタンがありますからそれをクリックすれば原因のコード部分に色が付きますので、それも提示してください。 そうすれば瞬く間に解決するでしょう。 ところで、なぜ、他にもあるであろうコードの中から、お礼のコード部分だで提示しのでしょうか。 そこに上手くいかない原因があると判断したからですよね。 序にそう考える理由も提示のこと。 以上です。

hseiga
質問者

お礼

あなたのおっしゃる通りです。 質問の方法もさることながら、「教えて!goo」の使い方もわからず、回答欄にコメントしたり大変失礼しました。 月曜日にもう一度色々試してみます。 このエクセルが動かないと非常に困るので頑張ります。 ありがとうございました。

  • myRange
  • ベストアンサー率71% (339/472)
回答No.1

VBAを使うなら、2007とそれより前のバージョンのファイル形式の違いを知っておかないといけません。 ま、それはこれから勉強するとして。。。   引数FileFormatの値xlNormalをxlExcel8に変更する。   ActiveWorkbook.SaveAs _ Filename:="C:\Documents and Settings\gsoumu7.COMP\デスクトップ\最新ver\" & bkname & ".xls", _ FileFormat:=xlExcel8  ←●ここを修正     以上です。  

hseiga
質問者

補足

アドバイスのように変更してみましたが、うまく行きません。他にもバグがあるのだと思います。ありがとうございました。 もし、お時間があるようでしたら、ソースをご覧ください。 Private Sub Worksheet_activate() Application.MoveAfterReturnDirection = xlDown ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True Range("A4").Select End Sub Private Sub fabao_Click() initial_sub ActiveWorkbook.Unprotect Workbooks(shb).Worksheets(shs).Unprotect Workbooks(kgb).Worksheets(kgs).Unprotect Workbooks(sgb).Worksheets(sgs).Unprotect Dim bkname As String If Not Cells(4, 1).Value <> 0 Then MsgBox ("There is no code.") Exit Sub Else End If bkname = Cells(4, 1).Value & " " & Cells(4, 2).Value Application.ScreenUpdating = False Application.Calculation = xlCalculationManual ' 保存先の選択・ C:\Documents and Settings\new\ラタ '********************************************************************************* ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\gsoumu7.COMP\デスクトップ\最新ver\" & bkname & ".xls", _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False '

関連するQ&A

  • マクロが思い通りに動きません

    エクセルでマクロを使いボタンを 作りました。ボタンを押すとHDDとDVDに保存される仕組みになっています Sub DVD() ChDir "E:\" ActiveWorkbook.SaveAs Filename:=Format(Now, "yyyy-mm-dd(hh時mm分ss秒)"), FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub Sub HDD() ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\***\デスクトップ\ファイル名.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub これだとDVDへ保存が上手くいきません。DVDからエクセルを開いて使えば問題ないのですが、デスクトップから開くと日付入りのデータがデスクトップに保存されてしまいます。 どうやって書き換えたらいいでしょうか

  • VBAでのシートコピーについて

    VBAでシートを新しいブックにコピーして、名前を付けて保存したいのですが、同じファイル名が存在すると、必ず「上書きしますか?」のダイアログが表示されてしまいます。無条件で上書きする方法ってありませんか? 今は↓のようなコードを書いてます。 Application.ScreenUpdating = False Sheets("sheet1").Copy ActiveWorkbook.SaveAs Filename:= _ "C:\Book1.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False ActiveWindow.Close

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

     エクセルのマクロです。  マクロを実行した時に、保存先とファイル名は任意に入力して(その部分だけは、マクロ実行者が入力して)、その後もマクロを実行させたいのですがどうすれば良いのでしょうか? たとえば、 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  上記の場合は、保存先もファイル名もこちらが指定していますが、その部分だけは、マクロの実行者に任意指定及び入力させたいのです。  マクロ初心者なので、よろしくお願いします。

  • ファイルの保存先のパス

    マクロでデスクトップに保存させたいのですが、 ActiveWorkbook.SaveAs Filename:= _ "D:\Documents and Settings\●●●\デスクトップ\Book1.xls", FileFormat:=xlNormal _ , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False の●●●のように、私のユーザー名が入ります。 このファイルは色々な人に使ってもらいたいので、 LOCALみたいな意味合いの言葉を入れたいのですが、 なんと入れたら良いでしょうか? ご存知の方いらっしゃいましたら宜しくお願いします。

  • エクセルマクロで保存をする際の質問

    エクセル2003をXPで使っています。 あるシートに入力をしたあと、セルA1(変数を"number"としています)に入力させたデータをファイル名にして特定のフォルダに保存させています。 具体的なことは下記の通りです。 ActiveWorkbook.SaveAs Filename:="C:\入力済みデータ\" & number & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False ActiveWorkbook.Close ところが、C:\入力済みデータフォルダに同じ名前のファイルが存在していたとき、 "○○というデータがすでに存在します。置き換えますか?"と聞かれますよね。 そのときに"いいえ"を選択するとエラーになります。 "いいえ"を選択したとき、別名をつけられるようにするにはどうしたらいいでしょうか。 よろしくご教示ください。お願いいたします。

  • マクロ シート別に名前をつけて保存したい

    1つのブックにシートが複数あり、それぞれシート毎に名前をつけて保存したいです。 質問を検索しましたら似たようなマクロを見つけたのですが、例えば1.2.3・・・というシートがあった場合、エクセル1、エクセル2、というような共通の言葉をつけて保存したい場合の方法を教えて下さい。 たぶんですが・・・下記のどこかにエクセルという言葉をいれるとできますでしょうか? Workbooks(2).SaveAs Filename:= _ SvPath & Workbooks(BookName).Sheets(SheetName).Name & ".xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False よろしくお願い致します。

  • Excel/VBAのファイル保存

    いつもここでは大変お世話になっています。 以下のように名前をつけて保存をしているのですが、 同名のファイルがあった場合でも上書き確認せずに上書きをさせる方法を教えて下さい。 お願いします。 ActiveWorkbook.SaveAs Filename:= _ "\\PC名\ディレクトリ名\ファイル名.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False

  • マクロ 保存の仕方

    ' 指定の場所に保存する ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\Owner\デスクトップ\A\B\" & Replace(Range("k2").Value, "/", "") & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False ActiveWorkbook.Close 上記のようにマクロを組みましたが、同じ名前で1回保存すると2回目からエラーします。 2回目から保存名の後ろに(2)、3回目は(3)等を付けて保存したいのですが。

  • Excel VBA ファイルの置換確認メッセージ

    Excel VBAでファイルを生成するマクロを組んでいます。 同一パス・ファイル名が存在する場合、 「~は存在します。上書きしますか?」と確認メッセージが表示されますが、このメッセージを出力させなくするには、どうコーディングすればよいでしょうか? 以下はファイル生成の部分です。 ActiveWorkbook.SaveAs Filename:=strFileName, _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False Application.WindowState = xlMinimized 想像ですが、ここに何らかのコマンドを追加するのでしょうか? よろしくお願いします。

  • 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

専門家に質問してみよう