戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
配列の基本を教えてください

    [194595] 配列の基本を教えてください-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ おかめ -(2022/01/11(19:18))
    □U R L/
      おせわになります。
      
      A列に以下のような文字列のデータがあります。これを配列に格納して作業をしたいのですが、何が間違っているのかわかりません。わかりやすく指導をしていただけませんでしょうか。
      
      タイトル
      A
      B
      C
      D
      
      Sub test()
      Dim 範囲 As Variant
      
      範囲 = Range(Range("A2"), Range("A5")).Value
      
      Debug.Print 範囲(2) '←ここで、インデックスが有効範囲にありませんとなります。
      
      End Sub
      
      
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [194596] Re[1]: 配列の基本を教えてください-

    記事引用/メール受信=OFF■

    □投稿者/ OK -(2022/01/11(19:31))
    □U R L/
      回答ではありません。
      
      Sub test2()
       Dim 範囲 As Range
      
        Set 範囲 = Range(Range("A2"), Range("A5"))
      
        MsgBox 範囲(2)
      
      End Sub


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [194597] Re[2]: 配列の基本を教えてください-

    記事引用/メール受信=OFF■

    □投稿者/ おかめ -(2022/01/11(19:43))
    □U R L/
      OKさん
      
      ありがとうございます。Rangeですか...Variantではないのですね。でもなぜVariantがダメなのか、もしこういうときにVariantを使うことができるのであればどう書き換えたらいいのか、ご教示くださるとうれしいです。
      
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [194598] Re[3]: 配列の基本を教えてください-

    記事引用/メール受信=OFF■

    □投稿者/ ひまじん -(2022/01/11(20:34))
    □U R L/
      Variantでも良いんですよ。
      ただ配列がどのような状態になっているのか理解できてないだけです。
      範囲 = Range(Range("A2"), Range("A5")).Value
      上記の場合、配列の状態は下記となります。
      
      範囲(1, 1)
      範囲(2, 1)
      範囲(3, 1)
      範囲(4, 1)
      
      よって範囲(2)なんて指定してもそんなものは存在しないんです。


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [194599] Re[4]: 配列の基本を教えてください-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ おかめ -(2022/01/11(21:27))
    □U R L/
      ひまじんさん
      
      ご教示いただき、ありがとうございます。動画やサイトを見てもDebug.Print(1)といった記述があったので、てっきりそれで大丈夫だと思っていました。一列まとめてオブジェクトに放り込む場合でも、範囲(2, 1)のように後者(カンマ1)が必要なんですね。
      
      Sub test()
      Dim 範囲 As Variant
      
      範囲 = Range(Range("A2"), Range("A5")).Value
      
      MsgBox 範囲(2, 1)
      
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [194600] Re[5]: 配列の基本を教えてください-

    保留中です・・・ / 記事引用/メール受信=OFF■

    □投稿者/ おかめ -(2022/01/11(22:27))
    □U R L/
      大事なことをうかがっていませんでした。申し訳ありません。ひまじんさんのコードをみますと、0という数字がありません。
      
      範囲 = Range(Range("A2"), Range("A5")).Value
      
      範囲(1, 1)
      範囲(2, 1)
      範囲(3, 1)
      範囲(4, 1)
      
      配列は0から始まると聞いたことがあるのですが、なぜこれは1から始まるのでしょうか?なにかルールみたいなものがあるのでしょうか?
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [194601] Re[6]: 配列の基本を教えてください-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2022/01/11(23:25))
    □U R L/
      始まりなんてプログラマーは何とでもできます。
      
      Dim 範囲(1, 1) と定義すれば
       範囲(0, 0)
       範囲(0, 1)
       範囲(1, 0)
       範囲(1, 1) ですけど、
      
      Dim 範囲(100 To 100, 1 To 1) と定義すれば
       範囲(100, 1)  のみです。
      
      でもこれは、RangeのValueプロパティさんが勝手に(?)お作りになった配列を格納しただけです。
          ↓
        >範囲 = Range(Range("A2"), Range("A5")).Value
      
      Valueプロパティは、そう言う始まりの配列を作る仕様だってことです。
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [194602] Re[7]: 配列の基本を教えてください-

    記事引用/メール受信=OFF■

    □投稿者/ ひまじん -(2022/01/12(06:02))
    □U R L/
      本当にそうなのかはさておき、
      セルの範囲って行と列で表現されるじゃないですか。
      よって範囲(行, 列)でアクセスするといったイメージで私は理解しています。
      例えば
      Range(Range("A2"), Range("A5")).Cells(2, 1).Value
      とやると範囲(2, 1)の値が取れるので、この「Cells」と同様の挙動なんですよね。


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [194603] Re[8]: 配列の基本を教えてください-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ おかめ -(2022/01/12(08:39))
    □U R L/

      半平太さん、ひまじんさん

      お返事が遅くなり申し訳ありません。動画などでは0が始まりなので注意しなさい、と言われるのですが、そうではないのですね。お二人の解説、とてもよくわかりました。ありがとうございました。



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G