
エクセルをちょっと知っている、というだけの人がハマりやすい話題です。一回見ただけでは分からなければ小人ちゃんシートを使って実際に手書きしつつ、何度も復習してください。本当のことを言うと、とても重要なので、ここで説明していることをご自身の言葉で説明できるようにならないうちは先に進んでもらいたくないくらいです。
【この動画で使用する教材ファイル】
・Kiso01.xls
・kiso_print.pdf(P5:こびとちゃん体験シート)
→1枚印刷してお手元にご準備ください。
・kiso_mm_movie.pdf(P10:講義概要)
※講座内で使用する資料は、この個別ページ内でダウンロードできます。
この講座を含む定額コースに参加するか、この講座を購入することで、講座を利用できるようになります。
定額コースに参加すると、そのコースの利用期間中はいつでも講座を利用できます。
講座を購入すると、いつでも講座を利用できます。
このページへの投稿/コメント
”E1”と”E2"には値が入るという繰り返しの説明になぜ??と思っていましたが、エクセル関数との挙動の違いを聞きなるほど!と思いました。
ここは、ハマる方はけっこうハマります。
エクセルの数式とマクロは別物です。エクセルの数式で使えた知識をそのまま使える場合もありますが、そうでもない場合があります。この例は後者ですね。
> 【感想】
> ”E1”と”E2"には値が入るという繰り返しの説明になぜ??と思っていましたが、エクセル関数との挙動の違いを聞きなるほど!と思いました。
エクセル関数とマクロの違いを対象的に動作を交えた説明が大変分かりやすかったです。
コメントありがとうございます。
ここは、とても大切なところです。対面講座では、15%くらいの人がハマって悩むところです。なので、特に入念に解説している(つもり)です。
ひきつづきよろしくお願いいたします。
> セルに数値が入っいるのと数式が入っている場合、
> エクセル関数とマクロの違いを対象的に動作を交えた説明が大変分かりやすかったです。
自分でマクロ書いたうえで、エクセル上のセルの値を書き換えたりしてみてください。
自分で操作するのがいちばん理解につながります。
> 中途半端にエクセルを使っているのでちょっと混乱しそうになりましたが、.valueは値を設定するものだということはしっかり理解しておこうと思います。
D4の値が変わればそれに伴ってE4の値が変わるという記述(式的入力)ですが,
やはりvalueを使っては、結果が値となるため、記述できないものでしょうか? この数値の書き方を始めてみてすっごい新鮮だったので他に別の記述方法がないのか気になりました。
> やはり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を使っては、結果が値となるため、記述できないものでしょうか? この数値の書き方を始めてみてすっごい新鮮だったので他に別の記述方法がないのか気になりました。
[2]と[efgh]についてなのですが、数式を入れたい場合
range("E4").value= "=d4*5"の他にrange("e4").value="=range("e4").value*5" であったりrange("e4").value="=range("e4").*5"といった別の書き方がないのか気になったということでした。試してみると2式ともにだめだったのですが。。。
結論から言うと、今はその件は気にせず、先に進んだほうがよいです。
それはいろいろな理由からです。例えば以下。
[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式ともにだめだったのですが。。。
ないところなので大変よかったです。またどんどん視聴すすめていきます。
お返事ありがとうございます。
原則としては、講座で提供しているとおりの順序で学んでいただければOKです。
> むちゃくちゃコードになりまして、勉強不足もうしわけないです。
いえいえ。まだ第1章なんで、仕方ないです。
ご質問にはお答えしたと思っていますので、今後ともどんどん遠慮なくご質問ください。
ただ、「今の段階でこだわるのは得策ではない」と感じられるご質問については、そのように回答さしあげることもあります。
第2章で文字列の取扱いについて学ぶと、また少し見え方が変わってくるかとも思います。
ひきつづきお楽しみください☆
> むちゃくちゃコードになりまして、勉強不足もうしわけないです。一方数値を書き込むことができるということは小生にとってはすっごい新鮮でいい知識になりました。市販本では触れて
> ないところなので大変よかったです。またどんどん視聴すすめていきます。
ワークシート関数でできること、得意なことと、
VBAでできること。状況によりどちらの方が良いかの見極めなどを
しっかり学んでいきたいと思います。
もし決まれば、次の仕事では大変役に立つ分野です。
先方のお話では、「マクロも使うが、関数を使ってフォーマットを整えていく処理が多い」とのことでした。
valueは値だけなので、あえて数式を残したいときは関数、、
ということになるのでしょうか。
まだ全体を思い出していないので、今後の自己課題です。
gooska
先日はありがとうございました。
> 先方のお話では、「マクロも使うが、関数を使ってフォーマットを整えていく処理が多い」とのことでした。
フォーマットを整えるにも、マクロのほうが簡単なんですけどね。。
ある程度は相手にあわせて仕事をしなければならないでしょうし、そこは仕方ないですね。力業で解決してください。
関数を投入するときは、 "=Sum(A1:B5)" のような形が記入すればOKです。
.Value でも .Formula でも、 .FormulaR1C1 でも。とはいえ、基礎編では .Value しか教えていませんし、 Range("F1").Value = "=Sum(A1:B5)" とか、そんな感じになりますかね。
参照するセルの数値が変わっても、返す値は変化しない。
ただし、セルを参照させて計算したい場合は、”=セル番号”と入力するべし!
こういうところきっちりつめておくと、あとあと楽ですよ。
> Valueは数値を表すだけ。
> 参照するセルの数値が変わっても、返す値は変化しない。
>
> ただし、セルを参照させて計算したい場合は、”=セル番号”と入力するべし!
ここは、15%くらいの人がハマって悩むところです。
すんなりご理解いただけたようでよかったです。
>Valueについて式ではなく値が入るということで理解しました。
ここは、15%くらいの人がハマって悩むところです。
すんなりご理解いただけたようでよかったです。
>Valueについて式ではなく値が入るということで理解しました。
こういう地味な作業、とても大切です☆
>手書きで書くとよくわかりました。
ときどき、ハマる方がいらっしゃいます。
ということで、時間をかけて解説しています。
>ワークシート関数との明確な違いがわかりました!
小川先生は、基礎講座1-6の掲示板に手順通りに仕事を進める事を強調していました。
恥ずかしながら私の場合、ちゃんと理解をせずに仕事を進め、ミスが発覚する事が多くあります。
その事を肝に銘じ、1文ずつ読んで作業した結果、先生の説明を理解する事ができました。
有難うございました。引き続き、宜しくお願い致します。
関数とVBA。
似てはいますが、別系統でそれぞれ独自に発達してきたものなので性質が微妙に異なります。
>小川先生は、基礎講座1-6の掲示板に手順通りに仕事を進める事を強調していました。
>恥ずかしながら私の場合、ちゃんと理解をせずに仕事を進め、ミスが発覚する事が多くあります。
>その事を肝に銘じ、1文ずつ読んで作業した結果、先生の説明を理解する事ができました。
>有難うございました。引き続き、宜しくお願い致します。
ことあるごとに書いていますが、「マクロを書く」とは「手順書を書く」ということです。
手順書を書けるようになるには、手順書にしたがって仕事を進められることが第一の要件です。
ここはしっかり徹底してください。
逆に言うと、「マクロを書くこと」に習熟する過程で、手順書を書くことも上手になっていきますし、「ちゃんと理解をせずに仕事を進め、ミスが発覚する」といったことも自然になくなっていきます。
>面白すぎる内容でした。
>小川先生は、基礎講座1-6の掲示板に手順通りに仕事を進める事を強調していました。
>恥ずかしながら私の場合、ちゃんと理解をせずに仕事を進め、ミスが発覚する事が多くあります。
>その事を肝に銘じ、1文ずつ読んで作業した結果、先生の説明を理解する事ができました。
>有難うございました。引き続き、宜しくお願い致します。
学習記録としてメモを残す
※メモを残すにはこの講座の利用権限が必要です。