【エクセルVBA】見えてるものだけ、別ブックにコピーするマクロ

ExcelVBA

エクセルでシミュレーションとかをしていると、

隠したい列や、見せたくない計算式など見せたくない要素が出てきたりしませんでしょうか?

例えば、仕入先さんに発注する場合に、数量を決めるシミュレーション部分を隠したいとか。

↓こんな感じ。

この場合、

下の隠した状態(商品と、発注数の項目のみ)で、

PDFで保存したりすれば、見せたくない部分を隠したままにできます。

当然、非表示でエクセルファイルで渡すと、簡単に表示できちゃいます。

でもPDFじゃなくて、エクセルファイルでほしいというニーズもあるのです。

注釈つけたり、編集したりしたいんだと思います。

そこで、隠したい行を隠したまま、エクセルとして別ブックに保存を

ワンアクションでできるマクロを紹介したいと思います!

Sub copyNewbook()

' 変数宣言
    Dim NewBook As Workbook

' 今のブックを変数に代入
    Dim Oldbook As Workbook
    Set Oldbook = ActiveWorkbook
    
' 新しいブックの名前を入力
    Dim NewBookName As Variant
    NewBookName = InputBox("ブックの名前は")
    
'デスクトップのパスを取得  wshに使用者のデスクトップのパスが入ります。
    Dim wsh As Object
    Dim Dpath As String 'デスクトップのパスを入れる変数
    Set wsh = CreateObject("WScript.Shell")
    Dpath = wsh.SpecialFolders("Desktop") '変数に代入
    Set wsh = Nothing 'オブジェクト解放
    
' 新しいブックをデスクトップに作成
    Set NewBook = Workbooks.Add
    NewBook.SaveAs Dpath & "\" & NewBookName & ".xlsx"
    
' コピー貼付け
   Oldbook.ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Copy  '元のブックの可視セルのみコピー
   NewBook.Worksheets("sheet1").PasteSpecial xlPasteAllUsingSourceTheme ' 新しいブックにテーマを利用して貼り付け

End Sub

実行すると、新しいブックの名前の入力を求められます。

入力すると、

新しいブックがデスクトップに出来上がり、自動的にコピーされます。

 

シバマメのラインスタンプ販売中です!

↓よろしければクリックお願いします🌼
ブログランキング・にほんブログ村へにほんブログ村






コメント

タイトルとURLをコピーしました