5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
平吹 敦史さんの投稿
(投稿ID: 2919)
Chap02-41の演習で以下がどうしても理解できません。
①
Sub sample6() '静的二次元配列
Dim vList(1, 32) As Variant
Dim cnt As Long
For cnt = 0 To 32
vList(0, cnt) = Range("G2").Offset(cnt).Value
vList(1, cnt) = Range("H2").Offset(cnt).Value
Next
For cnt = LBound(vList, 1) To UBound(vList, 1)
Range("A2").Offset(cnt).Value = vList(0, cnt)
Range("B2").Offset(cnt).Value = vList(1, cnt)
Next
End Sub
②
Sub sample6() '静的二次元配列
Dim vList(1, 32) As Variant
Dim cnt As Long
For cnt = 0 To 32
vList(0, cnt) = Range("G2").Offset(cnt).Value
vList(1, cnt) = Range("H2").Offset(cnt).Value
Next
For cnt = LBound(vList,2) To UBound(vList, 2)
Range("A2").Offset(cnt).Value = vList(0, cnt)
Range("B2").Offset(cnt).Value = vList(1, cnt)
Next
①と②の違いはLBoundとUBoundの第二引数だけです。
左から数えて二次元目だから引数に2を入れるとのことですが、なぜ実行すると、
①は2行2列だけ(0と1)の反映になるのかが理解できません。
1次元目の最小値は0で最大値も32ではないのでしょうか?
よろしくお願いします。
ゲストさんのコメント
(コメントID: 4389)
おはようございます。
>①と②の違いはLBoundとUBoundの第二引数だけです。
その差がどういう違いを生み出すのか?ということについて、For Next構文のくり返し回数を指定するためにこれらの関数が使われているサンプルコードを読むだけでは理解できなかったということですね。
そういうときには、 LBound関数 と UBound関数 だけを取り出したコードを自分で書き、その第二引数が変わることによってどういう変化が起きるのか?ということを、自分で調べると良いです。
例えば、僕なら、以下に示すようなコードを書きます。
以下を実行し、その結果をまずは精査してみてください。
それでも分からない場合があります。
そういうときに次にやることは、ヘルプを参照することです。
コードウィンドウ内で、 Ubound という文字列の上にカーソルを持っていき、 [F1] 。
excel2013以降だとあらかじめかなりの準備がされていないとそのままオンラインヘルプに飛んでしまいますが、それより前のバージョンのエクセルであれば、インストール時の設定次第では、ローカルに保存されたVBAのヘルプを参照できます。
それでも分からない場合があります。
そういうときに次にやることは、ネットで検索することです。
試しに、「UBound関数」でネット検索をかけました。すると、いちばん先頭に、MSDNの以下のページが見つかりました。
これも、読まれてみては?と。
https://msdn.microsoft.com/ja-jp/library/cc392345.aspx
よろしく、お願いいたします。
平吹 敦史さんのコメント
(コメントID: 4393)
お世話になっております。
下記、意味がわかりました。
ありがとうございました。
>平吹 敦史 さん:
>
>おはようございます。
>
>>①と②の違いはLBoundとUBoundの第二引数だけです。
>
>その差がどういう違いを生み出すのか?ということについて、For Next構文のくり返し回数を指定するためにこれらの関数が使われているサンプルコードを読むだけでは理解できなかったということですね。
>
>そういうときには、 LBound関数 と UBound関数 だけを取り出したコードを自分で書き、その第二引数が変わることによってどういう変化が起きるのか?ということを、自分で調べると良いです。
>例えば、僕なら、以下に示すようなコードを書きます。
>
>以下を実行し、その結果をまずは精査してみてください。
>
>
>
>それでも分からない場合があります。
>そういうときに次にやることは、ヘルプを参照することです。
>
>コードウィンドウ内で、 Ubound という文字列の上にカーソルを持っていき、 [F1] 。
>excel2013以降だとあらかじめかなりの準備がされていないとそのままオンラインヘルプに飛んでしまいますが、それより前のバージョンのエクセルであれば、インストール時の設定次第では、ローカルに保存されたVBAのヘルプを参照できます。
>
>それでも分からない場合があります。
>そういうときに次にやることは、ネットで検索することです。
>試しに、「UBound関数」でネット検索をかけました。すると、いちばん先頭に、MSDNの以下のページが見つかりました。
>これも、読まれてみては?と。
>https://msdn.microsoft.com/ja-jp/library/cc392345.aspx
>
>よろしく、お願いいたします。
>
ゲストさんのコメント
(コメントID: 4394)
それは、良かったです。
自力で解決できる力が高まれば、ますます僕を必要としなくなりますねw
ひきつづき、何かあればいつでもどうぞ☆
>小川慶一 さん:
>
>お世話になっております。
>
>下記、意味がわかりました。
>ありがとうございました。