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

    [195696] 配列の考え方-

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

    □投稿者/ 吉田 -(2023/04/18(17:59))
    □U R L/

      配列の次元の考え方ですが、
      格納したい要素が@何番目のデータか、Aそしてそこに何を入れるかという場合、
      1次元でデータが横に2個(何番目とその中身)というイメージですが、
      これでも2次元としないといけないのでしょうか。
      2個の内容をくっつけて仕舞えば(例えば「105東京」)間違いなく1次元なのですが、
      何番目(105)と中身(東京)はデータ形式を別に持ちたいのです。

      もう1点、
      上記で、2次元となる場合、実際の定義はどうするのでしょうか。
      dim table() as xxxx のxxxx部分です。
      longとstringが混在するので、variantとするのでしょうか。

      最後に、前段で要素の数が決まるので、
      redimを使うことになりますが、
      2次元の場合は、redim table (20,20) のようになるのでしょうか。

      以上、上手く説明できませんが宜しくお願いします。



      ++++++++++++++++++++
      OS      ⇒OTHER
      Version⇒Excel 2003
      ++++++++++++++++++++




    [195697] Re[1]: 配列の考え方-

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

    □投稿者/ 半平太 -(2023/04/18(19:15))
    □U R L/
      1次元でいいんじゃないですか?
      
      Sub test()
          Dim table() As String
          
          ReDim table(1 To 200)
          table(105) = "東京"
          
          Debug.Print table(105) '東京
      End Sub


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

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




    [195698] Re[2]: 配列の考え方-

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

    □投稿者/ 吉田 -(2023/04/18(20:06))
    □U R L/

      半平太様、早速ありがとうございました。
      なるほどですね、気が付きませんでした。
      ただ、追加で教えてください。

      教えて頂いた方法では、
      実際にデータが1件だけ(105の東京)の場合は
      200個用意したエリアが無駄になるのでしょうか。
      それとも使わなければ、(例示の場合は)1個で済むのでしょうか。

      また、質問した純粋な2次元の時のデータ形式指定はどうやるのでしょうか。
      例えば、1次は数値で2次は文字の場合です。

      しつこくてすいません、
      宜しくお願いします。




    [195699] Re[3]: 配列の考え方-

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

    □投稿者/ 半平太 -(2023/04/18(20:51))
    □U R L/
      >実際にデータが1件だけ(105の東京)の場合は
      >200個用意したエリアが無駄になるのでしょうか。
      無駄になります(まぁ、昨今誰もそんな無駄は気にしないですけど)。
      
      そもそも「格納したい要素が@何番目のデータか」ですから、
      1から105番までは用意しておかなければ理屈としておかしいです。
      
      「105」と「東京」がセットで1つだけの話なら、
      キーが105と言う話にすぎないです。順番の話じゃないです。
      ※順番は多分1番目でしょうね
      
      >また、質問した純粋な2次元の時のデータ形式指定はどうやるのでしょうか。
      >例えば、1次は数値で2次は文字の場合です。
      1次とか2次と言うのは次元の話でして、卑近な例としてエクセルのシートで言えば、
      行数x列数の配列の広がり(大きさ)を意味するのであって、
      1行目のデータ型が何、2行目のデータ型が何と定義する訳ではないです。
      
      実際に、1行目に番号を入れて、2行目に都市名を入れて使う予定であれば、
      データ型としてはVariantにするのが普通でしょうね。
      
      Sub test()
          Dim table() As Variant
          
          ReDim table(1 To 2, 1 To 1)
          table(1, 1) = 105
          table(2, 1) = "東京"
          
          Debug.Print table(1, 1), table(2, 1) '105 東京
      
          Debug.Print Application.HLookup(105, table, 2, False) '東京
      End Sub
      


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

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




    [195700] Re[4]: 配列の考え方-

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

    □投稿者/ 吉田 -(2023/04/19(03:25))
    □U R L/

      半平太様、何回もありがとうございました。
      私の大きな考え違いでした。
      全く配列を分かっていませんでした。

      何次元に成ろうとも、指す場所は1個なのですね。
      3次元であっても、縦、横、高さ、で指す箇所は1個しかない。
      だから、データ形式は1個でよい、というより1個しかない。

      お手間を掛けました。



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

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

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


- Child Forum -
Edit:ゆう-G