エクセルマクロ オンライン講座コメント紹介

コメント紹介
   └ エクセルマクロ・VBA基礎編フォローアップ ベーシック
       └ とびとびに存在するデータを拾って加工する

とびとびに存在するデータを拾って加工する

[10906] 2019-01-09 06:40:34 受講生さんからの投稿です。

お世話になります。この正月にだいぶ進捗できました。1つ確認させてください。
Range("C1").Value = Range("A1" ).Value & Range("A2" ).Value ですが、これをまとめてRange("C1").Value = Range("A1" & "A2").Value 左記のように書いたのですが、実行時エラー1004と出ました。これは何故動かないのでしょうか。宜しくお願いいたします。

 


[10910] 2019-01-10 10:56:29 小川慶一さんからの投稿です。

受講生 さん:

> これをまとめてRange("C1").Value = Range("A1" & "A2").Value 左記のように書いたのですが

"A1" & "A2" → "A1A2" ですね。

そもそも、以下の[1]でもエラーになります。ので、[2]でも当然エラーになります。
Sub Sample1()
    Range("C1").Value = Range("A1A2").Value                       '[1] ×
    Range("C2").Value = Range("A1" & "A2").Value                  '[2] ×
End Sub


書くなら、まだしも、以下の[3]です。
エクセルのSum関数等でも、隣接した複数セルを表現するときはこんな感じですね。
ただし、実行すると分かりますが、[3] では、 [4] と同じ結果は得られません。

Sub Sample2()
    Range("C3").Value = Range("A1:A2").Value                      '[3] △
    Range("C4").Value = Range("A1").Value & Range("A2").Value     '[4] ○
End Sub


> これをまとめて

ということでしたが、そもそも、"A1:A2" と範囲指定をまとめて、「これは、A1とA2にある値を結合してくれという意味だ」とこびとちゃんに解釈してもらおうというのは、ムリな話に僕には感じられます。
複数セルから値を拾ってきたなら、結合以外にも、足し算するかもしれない。かけ算するかもしれない。と、いろいろな可能性があります。その中で、こびとちゃんが「ここは、結合してほしいのだろう」と思ってもらえるとしたら、どうしてでしょうか。また、誤解が生じる可能性は?とか、いろいろ考えられます。
そこまで考えると、「前記[1]のような書き方のときには、NGとする」としたほうが、プログラミング言語の仕様としては親切かな、とも思います。

以上、どうでしょうか。


> お世話になります。この正月にだいぶ進捗できました。1つ確認させてください。
> Range("C1").Value = Range("A1" ).Value & Range("A2" ).Value ですが、これをまとめてRange("C1").Value = Range("A1" & "A2").Value 左記のように書いたのですが、実行時エラー1004と出ました。これは何故動かないのでしょうか。宜しくお願いいたします。

 


まずはここから!スマホでも学べる無料動画講座

今なら先着30名限定で無料!定価4,800円の、初心者のためのエクセルマクロ動画講座。
  1. Excel 97~Excel 2016まですべて対応。動画本数20本、総再生時間2時間44分53秒
  2. PC, Mac, iPhone, iPad, Androidのお好みの環境で、いつでも好きなときに学べます。
2004年から10年間述べ3,000名以上に実施した研修の経験と実績を集約した講座です。
いますぐ無料で試してください。

トップへ