[[20181014121603]] 『ユーザー定義の表示形式を数式に使用』(天野) ページの最後に飛ぶ

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

 

『ユーザー定義の表示形式を数式に使用』(天野)

ユーザー定義で表示した文字を数式に使用したいため、この掲示板で見つけた

 標準モジュール

  Function そのまま表示(r As Range) As String

    そのまま表示 = r.Text
  End Function

  シート側

  =そのまま表示(A1)

このコードを使用していましたが、例えばB1に =そのまま表示(A1)と入力し、A1の文字を表示させた場合、A1を通常入力で別の文字に変えればB1もA1の文字になりますが、A1にユーザー定義の文字を表示した場合、B1とA1はリンクしません。
A1を選択して更新する必要があります。

これを、通常入力の文字と同じように、リンクした状態にする方法、または別の方法があれば知りたいです。
よろしくお願いします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


A1の書式を変更したのに、B1が更新されないということですね。
それは、A1の値は変更されていないからです。
あくまで書式の変更は計算処理には関連させない、
というのがExcelの基本的な考え方でしょう。
ですから、そう言う方法は無い、というのが端的な回答。
 
ただし、こんな関連方法があります。(完全に満足はしないだろうが)
Function そのまま表示(r As Range) As String
  Application.Volatile
  そのまま表示 = r.Text
End Function
とすれば、(A1に限らず)どこでもよいのでセルの値が変わると
「そのまま表示」が実行される、というものです。
 
注意点:(1)
関係ないセルの値変更にも反応するので、無駄と言えば無駄。
注意点:(2)
これでもA1の書式変更に反応して直ちにB1が変わるわけではない。
書式の変更というのはワークシートの計算のトリガーにはならないという原則は、
変わるわけではない。
   
普通に、B1を選択状態にして更新、というのがてっとり早いでしょう。
そういうものだという諦念!

(γ) 2018/10/14(日) 14:20


ありがとうございます。
そういうものだと諦めます(笑)!
ありがとうございました!
(天野) 2018/10/14(日) 14:39

 ええと、たとえば内容がよくわかってないけど、再計算(F9)させれば反映すると思いますよ。
 表示形式を変えたところで、データ自体に変更はないので再計算されません。
(BJ) 2018/10/14(日) 17:01

ありがとうございます。
そんな方法もあるんですね。勉強になりました。
表示形式ですが、数式に使用しない、別の方法を見つけることができたので、これで打ちきる殊にします。
皆様本当にありがとうございました。
(天野) 2018/10/14(日) 17:53

コメント返信:

[ 一覧(最新更新順) ]


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