基礎講座第1章7 - ワークシート関数との挙動の違い

この講座は有料講座です。
講座の購入後ご覧になれます。

ログインアカウントの新規作成

解説

VBAとエクセルのワークシート関数とでは、挙動が違います。どこが違うか、理解できますでしょうか。
エクセルをちょっと知っている、というだけの人がハマりやすい話題です。一回見ただけでは分からなければ小人ちゃんシートを使って実際に手書きしつつ、何度も復習してください。本当のことを言うと、とても重要なので、ここで説明していることをご自身の言葉で説明できるようにならないうちは先に進んでもらいたくないくらいです。

【この動画で使用する教材ファイル】
 ・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)

【感想】
”E1”と”E2"には値が入るという繰り返しの説明になぜ??と思っていましたが、エクセル関数との挙動の違いを聞きなるほど!と思いました。


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)

中途半端にエクセルを使っているのでちょっと混乱しそうになりましたが、.valueは値を設定するものだということはしっかり理解しておこうと思います。


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)

Valueは数値を表すだけ。
参照するセルの数値が変わっても、返す値は変化しない。

ただし、セルを参照させて計算したい場合は、”=セル番号”と入力するべし!


7124 : 小川慶一の回答 (2016-09-27 13:55:06)

受講生 さん:

ここは、15%くらいの人がハマって悩むところです。
すんなりご理解いただけたようでよかったです。

>Valueについて式ではなく値が入るということで理解しました。


7123 : 小川慶一の回答 (2016-09-27 13:55:00)

受講生 さん:

ここは、15%くらいの人がハマって悩むところです。
すんなりご理解いただけたようでよかったです。

>Valueについて式ではなく値が入るということで理解しました。


7099 : 受講生さんのコメント (2016-09-26 14:06:06)

Valueについて式ではなく値が入るということで理解しました。


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)

ワークシート関数との明確な違いがわかりました!


3日がかりのその仕事、3分で終わらせる方法教えます。ガラパゴスタディーオンライン講座 ユーザー登録

本講座の動画一覧

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

塾長 小川慶一

メニュー

コメント紹介

もっと見る

ページの先頭へ