[[20220826220522]] 『関数を消さずに手入力する方法』(研究中) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『関数を消さずに手入力する方法』(研究中)

関数を入れたセルに手入力しても関数を保存する方法を教えてください。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


手入力したものが残らなくても良いなら、
・手入力後にCtrl+z(元に戻す)
・手入力後にそのブックを保存せずに閉じる

手入力したものを残す+関数を保存する
・あらかじめ関数を他のセルやシートなどに退避させる

手入力後上書き保存してしまった。元の関数復活させて!
・バックアップなければ無理
(火災報知器) 2022/08/26(金) 22:26


 人間の動作に対するエクセルの動きとか挙動を把握して
 それに対して何をしていけば良いのかを考えていけば良いんじゃないですかね。
 多分普通は無理とか思って、そんな事を考えないとは思います。

 >関数を保存する
 この保存するの意味がほとんど分かってませんが。
 色々研究してみてください。
(色々) 2022/08/27(土) 13:58

一般機能では無理でしょう。
VBAを使って無理矢理やればできないこともないかな。

ちょっとお遊びで作成してみました。

シートのモジュールに下記のコードを記述してください。

 Option Explicit
 Dim dicFormula As Object

 Private Sub Worksheet_Activate()
    If Not dicFormula Is Nothing Then Exit Sub

    Set dicFormula = CreateObject("Scripting.Dictionary")
    Dim c As Range
    For Each c In ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas)
        dicFormula(c.Address) = c.Formula
    Next
 End Sub

 Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range
    For Each c In Target
        If c.HasFormula Then
            dicFormula(c.Address) = c.Formula
        ElseIf c.Value = "" Then
            If dicFormula.Exists(c.Address) Then
                c.Formula = dicFormula(c.Address)
            End If
        End If
    Next
 End Sub

式のあるセルに手入力すると、入力した値が表示されます。
その値を削除すると、式が復活して、式の結果が表示されます。

ただし、手入力した後、ブックを閉じると、式は消えるので、
その場合も式を保存おきたい場合は、どこかに、保存しておく方法を考える必要があります。
例えば、非表示のシートに保存しておくとか。
(hatena) 2022/08/27(土) 16:27


質問者さんがなぜそのような事にトライしようとしているのか、
じっくり説明をしていただきたいですね。
普通に考えたら値を入力すれば式が消えるのは当然で、
なぜにそれに対して正面突破を図ろうとするのか。
やむに止まれぬ理由があるならそれを書いてください。
いわばドンキホーテを志す理由ですね。
(素朴な疑問) 2022/08/27(土) 16:42

 手入力欄、数式欄、表示欄をそれぞれ別にして起き表示欄に
 =IF(手入力欄<>"",手入力欄,数式欄)
 とするのはどうだろうか?
(ねむねむ) 2022/08/29(月) 09:02

ブックを再利用するなら、このような記事が
お役に立つのでは?
(サンダーバード) 2022/08/31(水) 13:41

リンク貼り付け忘れました

https://xtech.nikkei.com/it/pc/article/knowhow/20090526/1015491/
(サンダーバード) 2022/08/31(水) 13:42


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.