• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelVBマクロ)

ExcelVBマクロでbook2012.xlsを操作する方法について

このQ&Aのポイント
  • ExcelVBマクロを使用して、新年度Aフォルダー内のbook2012.xlsを操作する方法を教えてください。
  • book2012.xlsには「報告」「管理」という2つのシートがあります。まず、非表示にした「報告」シートのA1セルの内容をファイル名として、同じフォルダー内に別名のファイルとして保存します。
  • 次に、「報告」シートを再表示し、A10~A20セルの内容を一時削除します。さらに、「管理」シートを非表示にして、「報告」シートのA1セルの内容をファイル名として保存します。最後に、「管理」シートを再表示し、削除したA10~A20セルの内容を復元して、book2012.xlsを上書き保存します。

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

  • ベストアンサー
  • queuerev2
  • ベストアンサー率78% (96/122)
回答No.1

このマクロはbook2012.xlsにあり、book2012.xlsを開いてこのマクロを起動するところまでは手動(または別のブックのマクロ)で行うこととします。 A1セルのファイル名はフルパスで(保存先のフォルダまで)書いてあるものとしました。 book2012.xlsはA1セルのファイル名で保存してからまたbook2012.xlsに保存するので、厳密には通常の上書き保存とは異なりますが、実用上は問題ないと思います。 Sub test() Dim WBFN, DA, RA10A20, VA10A20 ThisWorkbook.Activate Set RA10A20 = ActiveWorkbook.Sheets("報告").Range("A10:A20") WBFN = ActiveWorkbook.FullName Sheets("報告").Visible = False Sheets("管理").Select Application.DisplayAlerts = Flase ActiveWorkbook.SaveAs Filename:=Sheets("管理").Range("A1").Value Application.DisplayAlerts = True Sheets("報告").Visible = True VA10A20 = RA10A20 RA10A20.ClearContents Sheets("管理").Visible = False Sheets("報告").Select Application.DisplayAlerts = Flase ActiveWorkbook.SaveAs Filename:=Sheets("報告").Range("A1").Value Application.DisplayAlerts = True Sheets("管理").Visible = True Sheets("報告").Select RA10A20.Value = VA10A20 Application.DisplayAlerts = Flase ActiveWorkbook.SaveAs Filename:=WBFN Application.DisplayAlerts = True End Sub

sasa51244
質問者

お礼

ご回答ありがとうございます。 「報告.xls、管理.xls」のファイルが同じフォルダーでなくマイドキュメントに生成されました。 ほとんど完成して頂きましたので続きは勉強してやってみます。

sasa51244
質問者

補足

A1セルにフルパスと記載頂いてるのを見落としていました。 全てうまくいきました、ありがとうございます。

関連するQ&A

専門家に質問してみよう