前提・実現したいこと
Excelに(マクロファイル)おいてセルに式を入れても値が反映されません。
今、セルE6:G6とJ5:AD5はそれぞれセルが結合されています。
前者のセルの書式設定:その他
後者のセルの書式設定:日付(種類は*yyyy/m/dd)
前者にはExcleの式で「=C12」
後者にはExcleの式で「=Today()」を入力しています。
ですがどちらも0と表示され、セルの書式変更を行っても0のままです。
C12セルには「'TEST」という値(シングルクオーテション+文字列)が入っています。
F2+Enterを押すと値がどちらもでてきます。
上記の話はマクロを実行する前に既にそういう状態になっています。
元のマクロを実行させて、最後の処理でセルの書式を再定義するコードを追加(以下のソース)
して結果を見ると、E6:G6セルは0000と表示され、数式バーの値は0、J5:AD5は1900/0/0と
表示され、数式バーの値も1900/0/0となっています。
E6:G6は参照しているセル(C12)の値が文字列ではない何かになっているんでしょうか?
こうなる原因を教えて頂けないでしょうか。
該当のソースコード
VBA
1 '結合セルの書式を再定義する 2 Dim r1 As Range 3 Dim r2 As Range 4 5 Set r1 = Range("E6:G6") 6 Set r2 = Range("J5:AD5") 7 8 r1.Value = r1.Value 9 r2.Value = r2.Value
補足情報(FW/ツールのバージョンなど)
Office365のExcle2016 バージョン1803です。
質問では「前者(にはExcleの式で「=C12」」と書かれていますが、コードでは”r1.Value = r1.Value”となっています。質問の内容とコードが、ずれていませんか?
ExcleでC12にデータが入っている状態で、E6:G6の数式に「=C12」と入れているのですが値が参照されないので、VBAでr1をSetして「r1.Value = r1.Value」としていますが結果は変わらなかったということです。
”値が参照されないので”というのが、どうゆう状況なのか理解できません。=C12という数式をいれても、値は0のままなのですか? 質問のコードの「r1.value =r1.value 」を「r1.value = range("C12").value」に換えると、"E6:G6"に Test と表示されますか?
回答2件
あなたの回答
tips
プレビュー