Excel VBA リンクを解除するマクロ→リンク解除した上でシートを切り離す 個人用マクロブックに組み込んで使おう

Excel カスタマイズ

スポンサーリンク

はじめに:シートを安全に切り離したい

今回の記事で、メインとして紹介したいのは、Excelブックの中にあるシートを安全に切り離す方法だ。
たとえばExcelブックに10個のシートが含まれてるけど、その中で特定の1個のシートだけを抜き出して使いたいという場面は多い。

そういうとき、
=シート01!A1 + シート03!B1 + シート05!D1
みたいに他のシートとの繋がりがある計算式が入っていたりすると、その計算式を外しておかないとシート中の数値とかが変わったりエラーになってしまうことがある。

それを確実に防いで安全にシートを切り離す方法は、多くの人が知らないはずだし、実際マクロをちょっと使わないと難しい。
今回の記事では、それをお手軽にやる方法を紹介するので、これを取り入れれば日常のExcelの作業効率を大幅に向上できるだろう。

リンクを解除するマクロ

Excel「リンクの編集」コマンドでリンクをチェックしておこう

2018年4月11日

まず、Excelにおけるリンク解除の話から。
上記の記事でも触れたのだが、Excelで、他のブックを参照するリンクがある計算式というものは厄介で、標準機能だけでは外しきれないことが多い。

そこで、次に示すようなマクロを個人用マクロブックに入れておき、リンク解除においては使用することが望まれると思う。

途中にある「appSet」「appReset」というやつについては、こちらを参照。

Excel 個人用マクロブック(Personal.xlsb) 最初に必ず入れておく高速化用コード

2018年4月6日

そんでメインとなるのは「Sub breakLinks()」ってやつですけど、ぶっちゃけこのマクロ自体はまんま他所からのパクリである。

そんなものを臆面もなく書いているが、それというのも私は、この「Sub breakLinks()」を単体で使うことがあまりないからだ。

リンクを解除した上で、シートを切り離すマクロ

私はこのリンク切断マクロを、次に示すbreakLinksAndSheetCopyというマクロにくっつけて頻繁に使用している。

ちょっと解説すると、
最初に「ActiveWindow」というのが出てくるが、ユーザが複数シートを同時にShiftボタンとかで選択している場合に、それらを指定するには「ActiveWindow.SelectedSheets」としなければならない。

単一のシートなら「ActiveSheet」とシートを指定するのでいいのだけれど、複数シートだと「ActiveWindow」とまずウインドウを指定しないといけないのが紛らわしいところ。

そんでそれらユーザが選択した複数シートを、新しいブックに切り離した上で、breakLinksでリンクを切断するってだけの短いマクロが、上記の「breakLinksAndSheetCopy」だ。

Excel 上書き防止のうえで編集するには

2018年3月27日

別の記事でも取り上げたけど、Excelのブックを上書き保存不可能な状態にして編集するっていうのは、多くの作業において有効な手段となる。

そしてこの「breakLinksAndSheetCopy」マクロにより、例えば集計シートとマスタシートがあったとき、マスタシートの方だけを安全に切り離して別ブックとして扱うことが出来る。

その別ブックを煮ようが焼こうが、元のブックに何の影響も心配しなくて良い。
冒頭で述べた、Excelブックの中にあるシートを安全に切り離す方法ってやつだ。

このマクロも、是非とも個人用マクロブックに追加しておくと良い。

私はこの「breakLinksAndSheetCopy」マクロを1日に10回くらいは使っている。これをすれば、Excelファイルの扱いの安全度が格段に上がるからね。

まず、リンクを解除してブックを切り離すということの有用性じたいをキッチリ理解しよう。
そして是非とも、貴方もこのマクロを1日に10回使うようにしてみよう。

個人用マクロブックとかについては、ここを展開。

オリジナルのマクロをリボンに追加する方法はこちら

個人用マクロブックについては、こちらこちらで述べています。

 

スポンサーリンク