
No.2ベストアンサー
- 回答日時:
こんばんは。
>別シートを参照していれば、値で貼り付けて、
>そのシートからシート参照を無くしたいです。
値を貼り付けるのは別にして、私も困っていましたので、作ってみました。
試してみてください。なお、私の方は、[個人用マクロブック]の中に入れることにします。
クイックアクセスツールバーなどに入れる便利かもしれません。
ただし、SearchRefFormula の名前は、「リンク検索」とかにしてください。探しやすいからです。
>一般的にはどのように判定するものでしょうか。
雑誌などで有名な人のマクロでは、Find メソッドを使っていましたが、ご質問者さんのHasFormula を活かすためには、以下のようなSpecialCells のほうがよいかと思いました。
*の部分は、私個人のマクロの部分です。なんとなく想像が付くと思います。
'//標準モジュールのみ
Sub SearchRefFormula()
Dim wb As Workbook
Dim sh As Worksheet
Dim Rng As Variant
Dim c As Variant, i As Long
Dim n As Long 'Static n As Long '*
n = 1
Const sFIND As String = "!"
Const sFIND2 As String = "*.xls?]*"
' If n = 1 Then
Set wb = ActiveWorkbook
' End If
For i = n To wb.Worksheets.Count
On Error Resume Next
Set Rng = Worksheets(i).Cells.SpecialCells(xlCellTypeFormulas, 23)
On Error GoTo 0
If TypeName(Rng) = "Range" Then
Application.ScreenUpdating = False
For Each c In Rng.Cells
If InStr(2, c.Formula, sFIND) > 0 Or _
c.Formula Like sFIND2 Then
c.Value = c.Value
Beep
'*
End If
Next c
End If
Application.ScreenUpdating = True
Next i
n = 0
If n = 0 Then
MsgBox "完全に終了しました。", vbInformation
End If
End Sub
'--------------
私のためのマクロは
''c.Interior.ColorIndex = 38 '色を付ける場合
''wb.Worksheets(i).Select 'シートを開く
''Beep '音が出る
''End '止める
'-----------------
No.3
- 回答日時:
ご質問の内容自体が一般的でないため、当然、一般的な判定方法も無いと思います。
よって、_shuichi_さんの判定方法が正解と考え良いのではないでしょうか。
ちなみに、=A1+Sheet2!A1のように、ひとつの数式に自シートと他シートを同時に使用していた場合は、値で張り付けですか?
そうなると、シート内での整合性が保証できなくなります。
結果的に、すべて値張り付けする必要があるような気がするのですが、いかがでしょう?
この回答へのお礼
お礼日時:2017/02/05 16:45
ご回答、ありがとうございました。
そうですね。「=A1+Sheet2!A1」のようなケースは想定していませんでした。
でも、幸いにそのようなケースは無かったので大丈夫でした。
大変参考になりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの複数シートの保護を...
-
別シート参照のセルをシート毎...
-
前の(左隣の)シートを連続参...
-
エクセル 計算式も入っていない...
-
エクセルで前シートを参照して...
-
エクセルでファイルを開いたと...
-
Excel、同じフォルダ内のExcel...
-
エクセルで複数設定したハイパーリンク先...
-
Excelで金銭出納帳。繰越残高を...
-
複数シートの特定の位置に連番...
-
VBAでシートコピー後、シート名...
-
エクセルで毎回1枚目のシートを...
-
エクセルVBAでパスの¥マークに...
-
エクセルで「ウィンドウを元の...
-
EXCELで1ヶ月分の連続した日付...
-
特定のシートの削除を禁止した...
-
EXCEL:同じセルへどんどん足し...
-
エクセルのシート名をリスト化...
-
シート番号からシート名を取得する
-
日報をエクセルで作成したいの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のセルだけ結果がおかしい...
-
エクセルの複数シートの保護を...
-
前の(左隣の)シートを連続参...
-
別シート参照のセルをシート毎...
-
エクセルで前シートを参照して...
-
エクセルでファイルを開いたと...
-
特定のシートの削除を禁止した...
-
Excelで金銭出納帳。繰越残高を...
-
エクセル 計算式も入っていない...
-
Excel、同じフォルダ内のExcel...
-
EXCEL:同じセルへどんどん足し...
-
VBAでシートコピー後、シート名...
-
複数シートの特定の位置に連番...
-
シートの保護のあとセルの列、...
-
Accessのスプレッドシートエク...
-
VBAで条件によりフォントサイズ...
-
エクセルVBAでパスの¥マークに...
-
Excelのシートを、まとめて表示...
-
エクセルで複数設定したハイパーリンク先...
-
エクセルで毎回1枚目のシートを...
おすすめ情報