Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9814 / 13644 ツリー ←次へ | 前へ→

【25216】理由を教えてください にしもり 05/5/24(火) 14:52 質問[未読]
【25228】Re:理由を教えてください ichinose 05/5/24(火) 19:43 発言[未読]
【25240】Re:理由を教えてください m2m10 05/5/25(水) 7:50 発言[未読]
【25244】Re:理由を教えてください にしもり 05/5/25(水) 9:37 お礼[未読]
【25247】Re:理由を教えてください こうちゃん 05/5/25(水) 9:53 発言[未読]
【25262】Re:理由を教えてください ponpon 05/5/25(水) 22:03 発言[未読]

【25216】理由を教えてください
質問  にしもり  - 05/5/24(火) 14:52 -

引用なし
パスワード
   くだらない質問かもしれませんがどなたか教えてください。
セルE3は、5列目3行目ですよね。
これをなぜCell(5,3)と書かずに、Cell(3,5)と書くのですか。
いったいどういう合理的な理由があってこういうことをするのでしょうか?
初心者はとまどうと思います。

【25228】Re:理由を教えてください
発言  ichinose  - 05/5/24(火) 19:43 -

引用なし
パスワード
   ▼    にしもり さん:
こんばんは。

>くだらない質問かもしれませんがどなたか教えてください。
>セルE3は、5列目3行目ですよね。
>これをなぜCell(5,3)と書かずに、Cell(3,5)と書くのですか。

へえ、ExcelやVBAを始めた頃に何の疑問も持ちませんでした!!

>初心者はとまどうと思います。

なるほど・・・、そう言われればねえ・・。

私は、行列で(1,2)は、1行目2列の値なんてのを高校の算数でやった記憶が
薄っすら残っているのでセルE3は、3行5列という意味に捉えることに
抵抗がありませんでした。

又、セル「E3」というセルアドレスは、A1形式の場合の呼び方で
R1C1形式と言うセルの参照方法もありますよね?

A1形式で E3 ---------  R1C1形式では、R3C5となります
(実際には$E$3)。

こう見てみると、行、列という順序で指定する方が圧倒的に多いですよね。
R1C1形式、CELLSプロパティ、Offsetプロパティ、Resizeプロパティ、
ワークシート関数Index・・・。

A1形式のE3が列、行の順序で異端とも考えられます。

じゃあ、これも「3E」にすればよかった?

でも、こうしてしまうとExcelにとっては数式やVBAでの構文解析が難しくなってしまったのではないでしょうか?

実際に

Dim 5aaaaa as long

なんて変数を宣言するとコンパイルエラーになりますよね?

では、行の方をアルファベットにして列を数字にすればよかった?

でも、そうしたら行は、60000行もあるのでAAAAC15なんて記述しなければ
なりませんよね?
どこを参照しているんだか・・・
(AAAAC15はちゃんと計算してません、単なる例として考えて下さい)。

だいたい現状の列にしたって、AAと二つアルファベットが連なるとわかりづらいのに

(E3のようにアルファベットがひとつのときは、R1C1形式より、はっきりします。
まあ、これは、慣れなんでしょうね)。

ということで(どこから来ている「ということで」だろう)、慣れてください。

【25240】Re:理由を教えてください
発言  m2m10  - 05/5/25(水) 7:50 -

引用なし
パスワード
   こんちは
 私も同じ意見です、何で??

  Range("E3").Select
  Cells(3, "E").Select か Cells(3, 5).Select

  同じ動きをしますが、 Range と Cells は
  列と行が逆さまです。

  VBAを始めたとき、頭がゴチャゴチャに成りました

  最近は Range は使わず、Cells を使っています。
 

【25244】Re:理由を教えてください
お礼  にしもり  - 05/5/25(水) 9:37 -

引用なし
パスワード
   ▼m2m10 さん、ichinoseさん:

頭がごちゃごちゃになっており、つい不満の投稿をしました。申し訳ありませんでした。
それにもかかわらずきちんと反応していただきありがとうございます。
わたしは決して若くないので情報教育を受けたことがありません。
私は情報リテラシーのない人を、デジタルデバイドで負け組になったと決め付ける世の論調に違和感を覚えます。
皆、高校の数学でやった行列を記憶しているでしょうと言われると、形無しですが・・。
いずれにしろこのような場で不満を述べてしまったことを深くお詫びします。

【25247】Re:理由を教えてください
発言  こうちゃん  - 05/5/25(水) 9:53 -

引用なし
パスワード
   みなさん、こんにちは

昔々、MS-DOSの時代、マイクロソフトはスプレッドシートソフトとして
「マルチプラン」というソフトを発売して、これが大いに普及いたしました。
そのときの行列の表示は、今のエクセルで言うR1C1形式でした。

後発でLOTUS社が「LOTUS123」(ワンツースリーとよんでましたねぇ)
というスプレッドシートを発売して大当たり、一世を風靡しました。
マルチプランがかすむほどで、事実上の標準のような存在になりました。
この「LOTUS123」の行列の表し方がA1形式でした。

後にWindowsの時代になって、マイクロソフトがスプレッドシートソフトとして
エクセルを発表したときに、行列の表し方をR1C1形式からA1形式とし、LOTUS123
からの移行がしやすいような戦略をとりました。

で、内部的にはマルチプランからの系譜としてR1C1形式がのこり、範囲をあらわす
場合、A1形式を使うようになったため、RANGEとCELLSが混在するようなことになった。

と、まあ、そんなところかなぁ、って思ってます。

#私のような古いユーザ(マルチプランや123の時代からもマクロやってたような人)
は、あんまり違和感や疑問持たないですねぇ(^^;)

【25262】Re:理由を教えてください
発言  ponpon  - 05/5/25(水) 22:03 -

引用なし
パスワード
   みなさん。こんばんは。
私は、Dos版の「ロータス123」の全盛期にパソコンを覚え始めました。
したがって、Range("A1")型式の方になじみがあります。
途中でエクセルと出会い使い始めました。
簡単な関数での表作成中心でしたが。もちろんマクロとは縁のない世界で。
その後、現場の環境が変わり、パソコンが入ってきました。
パソコン歴が長いということで、仕事の関係でVBに首をつっこみ、エクセルVBA
に手を出しました。(実は、ベーシックの頃から一応パソコンにはふれている。)

 要は慣れの問題でしょう。慣れてしまえば、気にならなくなりますよ。
 と言いながら、未だにR1C1型式の数式は、解読に苦労していて、
 マクロの記録に頼っています。あれ?

9814 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free