- ホーム
- 講座一覧
- 講座「エクセルマクロ・VBA基礎編」
- 教材「基礎講座第1章7 - ワークシート関数との挙動の違い」
基礎講座第1章7 - ワークシート関数との挙動の違い
解説
エクセルをちょっと知っている、というだけの人がハマりやすい話題です。一回見ただけでは分からなければ小人ちゃんシートを使って実際に手書きしつつ、何度も復習してください。本当のことを言うと、とても重要なので、ここで説明していることをご自身の言葉で説明できるようにならないうちは先に進んでもらいたくないくらいです。
【この動画で使用する教材ファイル】
・Kiso01.xls
・kiso_print.pdf(P5:こびとちゃん体験シート)
→1枚印刷してお手元にご準備ください。
・kiso_mm_movie.pdf(P10:講義概要)
※講座内で使用する資料は、この個別ページ内でダウンロードできます。
この教材についての過去の質問・感想
11027 : 小川慶一の回答 (2019-01-27 23:53:47)
jinoseさん:
ここは、ハマる方はけっこうハマります。
エクセルの数式とマクロは別物です。エクセルの数式で使えた知識をそのまま使える場合もありますが、そうでもない場合があります。この例は後者ですね。
> 【感想】
> ”E1”と”E2"には値が入るという繰り返しの説明になぜ??と思っていましたが、エクセル関数との挙動の違いを聞きなるほど!と思いました。
11022 : jinoseさんのコメント (2019-01-26 16:25:29)
9711 : 小川慶一の回答 (2018-04-11 18:48:44)
Cacaoさん:
コメントありがとうございます。
ここは、とても大切なところです。対面講座では、15%くらいの人がハマって悩むところです。なので、特に入念に解説している(つもり)です。
ひきつづきよろしくお願いいたします。
> セルに数値が入っいるのと数式が入っている場合、
> エクセル関数とマクロの違いを対象的に動作を交えた説明が大変分かりやすかったです。
9710 : Cacaoさんのコメント (2018-04-11 17:53:57)
9573 : 小川慶一の回答 (2018-03-12 15:53:22)
大ちゃんさん:
自分でマクロ書いたうえで、エクセル上のセルの値を書き換えたりしてみてください。
自分で操作するのがいちばん理解につながります。
> 中途半端にエクセルを使っているのでちょっと混乱しそうになりましたが、.valueは値を設定するものだということはしっかり理解しておこうと思います。
9572 : 大ちゃんさんのコメント (2018-03-12 14:42:51)
9490 : 小川慶一の回答 (2018-02-27 12:32:25)
morimotoさん:
お返事ありがとうございます。
原則としては、講座で提供しているとおりの順序で学んでいただければOKです。
> むちゃくちゃコードになりまして、勉強不足もうしわけないです。
いえいえ。まだ第1章なんで、仕方ないです。
ご質問にはお答えしたと思っていますので、今後ともどんどん遠慮なくご質問ください。
ただ、「今の段階でこだわるのは得策ではない」と感じられるご質問については、そのように回答さしあげることもあります。
第2章で文字列の取扱いについて学ぶと、また少し見え方が変わってくるかとも思います。
ひきつづきお楽しみください☆
> むちゃくちゃコードになりまして、勉強不足もうしわけないです。一方数値を書き込むことができるということは小生にとってはすっごい新鮮でいい知識になりました。市販本では触れて
> ないところなので大変よかったです。またどんどん視聴すすめていきます。
9489 : morimotoさんのコメント (2018-02-27 12:20:10)
むちゃくちゃコードになりまして、勉強不足もうしわけないです。一方数値を書き込むことができるということは小生にとってはすっごい新鮮でいい知識になりました。市販本では触れて
ないところなので大変よかったです。またどんどん視聴すすめていきます。
9486 : 小川慶一の回答 (2018-02-27 00:17:14)
morimotoさん:
結論から言うと、今はその件は気にせず、先に進んだほうがよいです。
それはいろいろな理由からです。例えば以下。
[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式ともにだめだったのですが。。。
9479 : morimotoさんのコメント (2018-02-26 13:22:07)
説明がうまくできなくすみません。コメントいただきました
[2]と[efgh]についてなのですが、数式を入れたい場合
range("E4").value= "=d4*5"の他にrange("e4").value="=range("e4").value*5" であったりrange("e4").value="=range("e4").*5"といった別の書き方がないのか気になったということでした。試してみると2式ともにだめだったのですが。。。
9476 : 小川慶一の回答 (2018-02-26 00:14:34)
morimotoさん:
> やはり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を使っては、結果が値となるため、記述できないものでしょうか? この数値の書き方を始めてみてすっごい新鮮だったので他に別の記述方法がないのか気になりました。
9475 : morimotoさんのコメント (2018-02-25 23:57:56)
7:30あたりでの説明で、Range("E4").Value = "=D4*5"の式で
D4の値が変わればそれに伴ってE4の値が変わるという記述(式的入力)ですが,
やはりvalueを使っては、結果が値となるため、記述できないものでしょうか? この数値の書き方を始めてみてすっごい新鮮だったので他に別の記述方法がないのか気になりました。
9206 : 小川慶一の回答 (2017-12-12 08:50:32)
受講生 さん:
先日はありがとうございました。
> 先方のお話では、「マクロも使うが、関数を使ってフォーマットを整えていく処理が多い」とのことでした。
フォーマットを整えるにも、マクロのほうが簡単なんですけどね。。
ある程度は相手にあわせて仕事をしなければならないでしょうし、そこは仕方ないですね。力業で解決してください。
関数を投入するときは、 "=Sum(A1:B5)" のような形が記入すればOKです。
.Value でも .Formula でも、 .FormulaR1C1 でも。とはいえ、基礎編では .Value しか教えていませんし、 Range("F1").Value = "=Sum(A1:B5)" とか、そんな感じになりますかね。
9202 : 受講生さんのコメント (2017-12-11 21:54:29)
1年半ぶりに再視聴しています。
ワークシート関数でできること、得意なことと、
VBAでできること。状況によりどちらの方が良いかの見極めなどを
しっかり学んでいきたいと思います。
もし決まれば、次の仕事では大変役に立つ分野です。
先方のお話では、「マクロも使うが、関数を使ってフォーマットを整えていく処理が多い」とのことでした。
valueは値だけなので、あえて数式を残したいときは関数、、
ということになるのでしょうか。
まだ全体を思い出していないので、今後の自己課題です。
gooska
8635 : 小川慶一の回答 (2017-08-09 17:02:27)
受講生 さん:
こういうところきっちりつめておくと、あとあと楽ですよ。
> Valueは数値を表すだけ。
> 参照するセルの数値が変わっても、返す値は変化しない。
>
> ただし、セルを参照させて計算したい場合は、”=セル番号”と入力するべし!
8627 : 受講生さんのコメント (2017-08-08 19:14:34)
7124 : 小川慶一の回答 (2016-09-27 13:55:06)
7123 : 小川慶一の回答 (2016-09-27 13:55:00)
7099 : 受講生さんのコメント (2016-09-26 14:06:06)
6938 : 受講生さんのコメント (2016-08-12 22:29:35)
6402 : 小川慶一の回答 (2016-04-12 10:46:38)
6373 : 受講生さんのコメント (2016-04-10 14:53:59)
6060 : 小川慶一の回答 (2016-03-24 11:58:45)
5993 : 受講生さんのコメント (2016-03-20 01:20:30)

本講座の動画一覧
-
【動画1】 基礎講座第1章1 - マクロの入ったファイルを開くときの注意点
-
【動画2】 基礎講座第1章2 - オブジェクトの指定
-
【動画3】 基礎講座第1章3 - 色の指定
-
【動画4】 基礎講座第1章4 - コメントの活用
-
【動画5】 基礎講座第1章5 - 算術演算子
-
【動画6】 基礎講座第1章6 - 手書きする演習
-
【動画7】 基礎講座第1章7 - ワークシート関数との挙動の違い
-
【動画8】 基礎講座第1章8 - 変数を使ったプログラム、変数を使う意義
-
【動画9】 基礎講座第1章9 - 変数を活用するときの注意点
-
【動画10】 基礎講座第1章10 - 自動データヒント機能
-
【動画11】 基礎講座第1章11 - テストの方法
-
【動画12】 基礎講座第1章12 - ドリル
-
【動画13】 基礎講座第2章1 - 第2章の概要
-
【動画14】 基礎講座第2章2 - 文字列とは
-
【動画15】 基礎講座第2章3 - 文字列操作の基本
-
【動画16】 基礎講座第2章4 - セルの書式と、値の投入
-
【動画17】 基礎講座第2章5 - 文字列の結合
-
【動画18】 基礎講座第2章6 - セルやシートの指定に使われる文字列
-
【動画19】 基礎講座第2章7 - 日付の扱い
-
【動画20】 基礎講座第2章8 - ドリル1
-
【動画21】 基礎講座第2章9 - ドリル2
-
【動画22】 基礎講座第2章10 - ドリル3
-
【動画23】 基礎講座第2章11 - ドリル4
-
【動画24】 基礎講座第2章12 - ドリル5
-
【動画25】 基礎講座第3章1 - マクロを書く人のためのキーボード操作
-
【動画26】 基礎講座第3章2 - マクロを書く人のためのショートカットキー操作
-
【動画27】 基礎講座第3章3 - Left関数、Mid関数、Right関数
-
【動画28】 基礎講座第3章4 - Len関数、Instr関数
-
【動画29】 基礎講座第3章5 - 手書きドリル1(関数の練習)
-
【動画30】 基礎講座第3章6 - 手書きドリル2(関数の練習)
-
【動画31】 基礎講座第3章7 - 住所情報を分割する(方針を考える)
-
【動画32】 基礎講座第3章8 - 住所情報を分割する(方針の説明)
-
【動画33】 基礎講座第3章9 - 住所情報を分割する(実習)
-
【動画34】 基礎講座第3章10 - プログラミング実習のまとめ
-
【動画35】 基礎講座第4章1 - 第4章の概要
-
【動画36】 基礎講座第4章2 - ハナコのステップ
-
【動画37】 基礎講座第4章3 - 「For Next構文」を覚える
-
【動画38】 基礎講座第4章4 - 「For Next構文」の実習
-
【動画39】 基礎講座第4章5 - 「ハナコのステップ」のふりかえり
-
【動画40】 基礎講座第4章6 - If文
-
【動画41】 基礎講座第4章7 - 「If文」の実習
-
【動画42】 基礎講座第4章8 - 比較の条件設定バリエーション
-
【動画43】 基礎講座第4章9 - If文のその他の構文その1
-
【動画44】 基礎講座第4章10 - If文のその他の構文その2
-
【動画45】 補講:複数ファイル間でのデータ転記
コメント紹介
もっと見る