
No.5
- 回答日時:
VBAということはExcel使っているんですよね?
でしたら、そのマスを使うのが直感的にわかるかもしれません。
コンピュータで配列を扱う方法はいろいろありますが、一般的なのは「連続した領域」です。
例えば、セルA5から順番にA6,A7...と続くものを「配列A」とすると、コンピュータは「配列AはA5から始まる」と記憶します。
ではここで 配列Aの「3つ目」は?と聞かれると
1つ目: A5(5=5+1-1=5+0)
2つ目: A6(6=5+2-1=5+1)
3つ目: A7(7=5+3-1=5+2)
となります。
この数字のところの計算で「1を引く」をどこでやるか、です。
0からやると、コンピュータは楽です。
No.4
- 回答日時:
Option Baseで指定できる。
http://officetanaka.net/excel/vba/statement/Opti … など
だから選択できるのじゃない。
ーー
VB.NET系ではこの指定は出来なくなって、0から始まるようだ。
学者系の人が使う言語(Cの系統などー>Java)には0が多いのかなという個人的推測をしている。
http://tricky-code.net/nicecode/code45onebase.php
>0-baseの配列といいます、というそうです。
Javaについて
http://blog.livedoor.jp/neuehiiro/archives/50252 …
正?の数の始まりを0からするか1からするかと、関係するのかもしれない。
No.2
- 回答日時:
0から数え始めることを0オリジン、
1からなら1オリジン、などと言ったりします。
配列の先頭の要素が1から始まる言語も結構あるようです。
歴史を辿ると、最古のプログラミング言語FortranやCOBOLでは1オリジンを使っているようです。
Basicも元々は1オリジンだったようです。
比較的新しい言語では、Luaが1オリジンを採用しています。
ではなんで0オリジンが主流になったのかは、推測になりますがおそらくC言語の影響です。
C言語は、配列のアクセス=ポインタ演算なので、0オリジンの方が都合が良かったのでしょう。
もし、C言語が1オリジンだったのなら、先頭の要素へのアクセスは
ary[1];
*(ary + 0);
と、ポインタと配列で異なってしまいます。
で、そんなC言語が爆発的に普及し、スタンダードになったため、0オリジンを多くのプログラミング言語が採用するようになったのではないでしょうか。
No.1
- 回答日時:
配列の添え字(インデックス) のことですか。
別に0からでなくてもいくつでもいいのです。だだ、何も設定しなければ既定で0になっているだけです。Option Base 1で既定を1に変更できますが。
Dim、Private、Public、ReDim、Static などの宣言で、toを使って配列を設定すればいくつからにもなります。
Dim A(-5 to 100)とすれば、始まり(配列の最小添え字)は-5になります。
何もしないでただ、Dim A(100)とすれば、最小添え字は0にするということだけです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- アルバイト・パート アダストリア系列のショップの給料日 1 2023/08/19 06:03
- Excel(エクセル) excel vbaの配列なんですが・・・ 1 2022/12/26 18:50
- 会社・職場 発達障害の気がある入社10ヶ月の困った後輩がいます。 彼の特徴は ◎業務上 同じ過ちを何度も繰り返し 7 2023/03/28 10:20
- 会社・職場 スナックのママにお客様の前で叱られます 10 2023/06/26 00:37
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Excel(エクセル) 該当日が期間内に当てはまる場合、開始日と終了日をExcel関数を用いて入力させたい 4 2022/11/21 09:47
- C言語・C++・C# C#の問題です。 文字列型の配列 s[100] にキーボードから入力された100文字以内の文字列(単 2 2022/06/22 15:18
- Visual Basic(VBA) 【VBA】複数行あるカンマ区切りのデータを全て縦に一列に並べたい 5 2022/04/13 17:03
- 片思い・告白 DMの頻度 1 2022/12/03 22:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列のポインタ?
-
[EXCEL] INDEX関数の不具合?
-
乱数ってなんですか?
-
C言語 配列の長さの上限
-
Functionの戻り値を2次元配列...
-
c言語での文字列の渡し方
-
本日までの累計を表示させたい!
-
配列を返り値、でエラー
-
COBOLのINITIALIZEにあたるもの
-
構造体とポインタ配列
-
MFCで二次元配列のCEditコント...
-
ファイルの読み込みとメモリ確...
-
【エクセルVBA】Functionの引数...
-
プログラムの課題で分からない...
-
=SUNで合計した数値に10%をかけ...
-
C言語
-
Redimした動的配列はEraseする...
-
【速いブラインドタッチ】手を...
-
先頭アドレスとは何ですか?
-
プログラミングの質問です!!!
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列の長さの上限
-
配列を使わずに、変数名を動的...
-
C# Listを使わずに2次元配列の...
-
【速いブラインドタッチ】手を...
-
配列をEraseしてもメモリが開放...
-
テキストファイルから文字列を...
-
先頭アドレスとは何ですか?
-
配列で格納したものをmsgboxで...
-
複数の選択範囲の行番号を個別...
-
C# 配列の変数宣言について。
-
C++ vectorに配列をプッシュしたい
-
配列を含む構造体の初期値について
-
VBで構造体の配列を関数に渡す...
-
C言語で特定列だけを抽出して配...
-
キーボードのキー配列について
-
ExcelVBAで質問です。離れた二...
-
2次元配列を戻り値とする関数?
-
unsigned char配列への入力の仕方
-
【C言語】配列の中に配列を入れ...
-
Redimした動的配列はEraseする...
おすすめ情報