みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

excel vbaで助けてください

excel2000を利用しています。

ファイルA (sheet1-グラフデータ、sheet2-グラフ)が、あります。

Vbaで、このファイルシートをすべて選択して、コピーして、名前をつけて保存しています。

この時に、作られる ファイルB (sheet1-グラフデータ、sheet2-グラフ)ですが、グラフの元データが、ファイルAになってしまいます。

下記、記述をどのように修正すれば、ファイルBのグラフの元データを、ファイルAでなく、ファイルBにすることが出来るでしょうか。
ご教授お願いいたします。

Thisworkbook.Worksheets.Copy
SaveFilePath = Application.GetSaveAsFilename(mypath,"ExcelFile(*.xls),*.xls")
If SavefilePath <> "False" Then
ActiveWorkbook.SaveAs Filename:=SaveFilePath
Else
End if

投稿日時 - 2013-05-22 19:04:51

QNo.8100182

困ってます

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

こんにちは。
こんな感じ?

' '  ―――――――――――――――――――――――――――

  SaveFilePath = Application.GetSaveAsFilename(mypath, "ExcelFile(*.xls),*.xls")
  If SaveFilePath <> "False" Then
    ActiveWorkbook.SaveCopyAs Filename:=SaveFilePath '(1/2択)アクティブなブック
'    ThisWorkbook.SaveCopyAs Filename:=SaveFilePath '(2/2択)自ブック
    Workbooks.Open Filename:=SaveFilePath ' 開く場合
  Else
  End If

' '  ―――――――――――――――――――――――――――

或いは、
元のブックのシート数が幾つであっても
左からふたつのシートだけをコピーする場合は以下。

' '  ―――――――――――――――――――――――――――

Dim i As Long

  SaveFilePath = Application.GetSaveAsFilename(mypath, "ExcelFile(*.xls),*.xls")
  If SaveFilePath <> "False" Then
    ActiveWorkbook.SaveCopyAs Filename:=SaveFilePath '(1/2択)アクティブなブック
'    ThisWorkbook.SaveCopyAs Filename:=SaveFilePath '(2/2択)自ブック
    With Workbooks.Open(Filename:=SaveFilePath)
      Application.DisplayAlerts = False
      For i = .Sheets.Count To 3 Step -1
        .Sheets(i).Delete
      Next i
      Application.DisplayAlerts = True
      .Close True '(1/2択)閉じる
'      .Save '(2/2択)閉じずに上書きのみ
    End With
  Else
  End If

' '  ―――――――――――――――――――――――――――

投稿日時 - 2013-05-22 20:14:58

お礼

おぉー、これは助かります。大変興味深いです。
いろんなパターンをご提示いただけたので、いろんなパターンの勉強にもなりました。
とても、親切なお気遣いに感謝いたします。
ありがとうございました。

投稿日時 - 2013-05-22 20:22:20

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問