5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
morimotoさんの投稿
(投稿ID: 3681)
D4の値が変わればそれに伴ってE4の値が変わるという記述(式的入力)ですが,
やはりvalueを使っては、結果が値となるため、記述できないものでしょうか? この数値の書き方を始めてみてすっごい新鮮だったので他に別の記述方法がないのか気になりました。
小川 慶一さんのコメント
(コメントID: 5190)
> やはりvalueを使っては、結果が値となるため、記述できないものでしょうか?
聞きたいことが何なのか、よく分かりません。
以下のどちらでしょうか。あるいは、別の何かでしょうか。
[1] マクロで、セルを参照する数式を、セルに書き込む書くときの書き方を知りたい。
[2] マクロで、セルを参照する数式を、セルに書き込む書くときの書き方を知りたい。ただし、「.Value を使う」という制約下で。
[2] はまさにこの動画で示したとおりですし、[2]は[1]よりも厳しい制約なのですから、[2]ができたのならば、[1]も当然にできていますね。
なので、質問は当然上記[1], [2]のどちらでもないはずですが...。
いずれにせよ、まずは、質問は何なのか、分かるように説明願います。
そのためには、自分が何か分かっていないのか?を知ることからです。
ということで、理解の整理の助けになるかとも思いましたので、再度この動画で示したことを以下に書きますね。
シンプルに書くと、この動画で示したことは、以下の[a]-[d], [e]-[h] のとおりです。
[a] セルに書き込まれたのが値(セルを参照する数式でない)ならば、
[b] その値を計算するときに参照した別のセルの値が後から変わっても
[c] [a]のステップでセルに書き込まれた値は変わらない
[d] なぜなら、書き込んだのは値であり、セルを参照する数式でないからである。
[e] 一方、セルを参照する数式を書き込んだならば、
[f] その式が参照する別のセルの値が後から変わると、
[g] [e]のステップでセルに書き込まれた数式は変わらないが、計算結果として表示される結果は変わる
[h] なぜなら、そのセルに表示される値は、セルに書き込まれた数式の計算結果であるからである。
↑これを読んでもしっくりこなければ、失敗してもいいので、自分でいろいろ試し書きしてみてください。
そのうえで、自分の理解や結果予想と異なることがあったら、
ご自身の理解を述べたうえで、「なぜこれはうまくいかないのか」と、質問してください。
> 7:30あたりでの説明で、Range("E4").Value = "=D4*5"の式で
> D4の値が変わればそれに伴ってE4の値が変わるという記述(式的入力)ですが,
> やはりvalueを使っては、結果が値となるため、記述できないものでしょうか? この数値の書き方を始めてみてすっごい新鮮だったので他に別の記述方法がないのか気になりました。
morimotoさんのコメント
(コメントID: 5192)
[2]と[efgh]についてなのですが、数式を入れたい場合
range("E4").value= "=d4*5"の他にrange("e4").value="=range("e4").value*5" であったりrange("e4").value="=range("e4").*5"といった別の書き方がないのか気になったということでした。試してみると2式ともにだめだったのですが。。。
小川 慶一さんのコメント
(コメントID: 5195)
結論から言うと、今はその件は気にせず、先に進んだほうがよいです。
それはいろいろな理由からです。例えば以下。
[1] 今の段階で数式を書く複数の方法を知るためにここにとどまっていても実務に益さない(別のことを学ぶのにリソースを使ったほうがよい)
[2] 基本文法の理解が足りないように見受けられる(演習してないもあるかと思いますが、試されたということで示されたマクロがぐちゃぐちゃ)
[3] 数式をセルに書き込む方法についてしっかり理解するというテーマの話が発展編1で登場する(逆に言うと、それまでは気にしなくてよい)
[4] そもそも「数式を書き込みたい」というケースが実務ではレア(マクロがある程度上達すると、そうなります)
ほかにもありますが、まずはそんなところ。
基礎編フォローアップの前半くらいまではある程度地力でやれるようになったところで、またこの質問を読み返してみてください。
それでも、そのときに、また僕にこの質問をしたければしてください。
> 説明がうまくできなくすみません。コメントいただきました
> [2]と[efgh]についてなのですが、数式を入れたい場合
> range("E4").value= "=d4*5"の他にrange("e4").value="=range("e4").value*5" であったりrange("e4").value="=range("e4").*5"といった別の書き方がないのか気になったということでした。試してみると2式ともにだめだったのですが。。。
morimotoさんのコメント
(コメントID: 5198)
ないところなので大変よかったです。またどんどん視聴すすめていきます。
小川 慶一さんのコメント
(コメントID: 5199)
お返事ありがとうございます。
原則としては、講座で提供しているとおりの順序で学んでいただければOKです。
> むちゃくちゃコードになりまして、勉強不足もうしわけないです。
いえいえ。まだ第1章なんで、仕方ないです。
ご質問にはお答えしたと思っていますので、今後ともどんどん遠慮なくご質問ください。
ただ、「今の段階でこだわるのは得策ではない」と感じられるご質問については、そのように回答さしあげることもあります。
第2章で文字列の取扱いについて学ぶと、また少し見え方が変わってくるかとも思います。
ひきつづきお楽しみください☆
> むちゃくちゃコードになりまして、勉強不足もうしわけないです。一方数値を書き込むことができるということは小生にとってはすっごい新鮮でいい知識になりました。市販本では触れて
> ないところなので大変よかったです。またどんどん視聴すすめていきます。