Excelのファイルを他人に渡すときに数式を見られたくないケースがあります。
まず、前に照会したPDFで保存する方法があります。
また、数式を値に置き換える方法があります。範囲を選択してコピーし「形式を選択して貼り付け」で「値」を選択すればよいです。
ここでは、数式を削除して値にする方法を自動的に行うマクロを紹介します。
アクティブシート(現在開いているシート)を新規シートまたは新規ブックにコピーし、数式を削除します。
Sub アクティブシートの数式を削除()
'現在のシートを新規シートまたはブックにコピー(数式、書式が複写)。
'シート全体をコピーし、値を貼り付け(数式が削除される)。
prompt = "アクティブシートをコピーし数式を削除します。" _
& "はい:新規シートにコピー、いいえ:新規ブックにコピー"
res = MsgBox(prompt, vbYesNoCancel, "コピー先")
If res = vbYes Then
'現在のシートの前にコピー。
ActiveSheet.Copy Before:=ActiveSheet
ElseIf res = vbNo Then
'新規ブックにコピー。
ActiveSheet.Copy
Else
Exit Sub
End If
Cells.Copy
Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
Application.CutCopyMode = False
Range("A1").Select
End Sub
'現在のシートを新規シートまたはブックにコピー(数式、書式が複写)。
'シート全体をコピーし、値を貼り付け(数式が削除される)。
prompt = "アクティブシートをコピーし数式を削除します。" _
& "はい:新規シートにコピー、いいえ:新規ブックにコピー"
res = MsgBox(prompt, vbYesNoCancel, "コピー先")
If res = vbYes Then
'現在のシートの前にコピー。
ActiveSheet.Copy Before:=ActiveSheet
ElseIf res = vbNo Then
'新規ブックにコピー。
ActiveSheet.Copy
Else
Exit Sub
End If
Cells.Copy
Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
Application.CutCopyMode = False
Range("A1").Select
End Sub
「ActiveSheet.Copy」でアクティブシートを複写しますが、パラメータ(Before、After)を指定しない場合、新規ブックに複写されます。
コメント