- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Document.Links.Length )
なぜ「-1」が必要なのか?Forループが0から始まる理由は?
このQ&Aのポイント
- 質問文章はVBAのコードで、Document.Links.Length - 1 という部分についての疑問です。
- 「Document.Links.Length - 1」は、実際のリンク数を表しています。
- Forループは0から始まるため、最後のリンクを含むために-1が必要です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
私も技術論はそんなに詳しくないのですが・・ ご存知とは思いますが、 コンピュータの世界は二進数で考えるのが普通のようです。 つまり、0か1の羅列なのですね。 例えば16回数えようとするとき、 十進数で1から始めて16で終わると考えると、 二進数では「00001~10000」の5桁が必要です。 対して、十進数で0から始めて15で終わろうとすると 二進数では「0000~1111」の4桁で済みます。 コンピュータ的には一桁節約できるわけです。 300のような数字だとあまり変わらないのですが、 終端が(二進数的に)キリの良い数字だと、 0で始めるほうが(桁更新が減る分)早く計算が出来るし、 計算に使う領域も少なく済む、ってことですかね。 なので > そもそもなんでFor i = 0で始まってるのでしょうか? 慣習的に0から始めるのではないかなぁ、と想像します。
その他の回答 (1)
- tsubuyuki
- ベストアンサー率45% (699/1545)
回答No.1
For~Next を外して、 Debug.Print objIE.Document.Links(0).href '(カッコ内はゼロ) と置き換えて実行してみるとハッキリしますが、 この場合、リンクの一つ目は「0個目」と認識されるようです。 なので、リンクの個数から-1した数までの繰り返し処理で指定します。 なんで?と聞かれると、回答は一つしか無いかと。 仕様です
質問者
お礼
そもそもリンクが0から始まってるのですね。 ザ!仕様! もう、そう覚えるしかないという事ですか。 でも配列のインデックスとかも0からはじまるからなんとなくつかめました。
お礼
ありがとうございます。