Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


25174 / 76732 ←次へ | 前へ→

【56902】Re:別シートへ行と列を入れ替えてコピー
発言  ハチ  - 08/7/10(木) 11:10 -

引用なし
パスワード
   ▼初心者さっち さん:

>ReDim Preserve Sou_adr(i)
>理解できました!!
>
>が、Preserveを書かずにReDim Sou_adr(i)と記述すると、
>10のみが表示されます。これは、iが初期されていき、最終的に
>10がindex値になるからでしょうか。

初期化されるのは、i ではなく、Sou_adr配列のほうですね。
10は、index値の最大値です。UBound関数で取得できます。
もう1回サンプルを書いてみます。

本題の質問はkanabunさんのコードのほうが、遥かにわかり易いですので、
そちらを参考にしてください。

Sub Sample2()
  Dim i As Integer
  Dim cnt As Integer 'カウンターの意
  Dim buf() As Variant
  Dim v As Variant
   
  '初期化
  ReDim buf(0): cnt = 0
  v = Array("A", "B", "C", "D", "E")

  For i = 0 To UBound(v)
    '現在の配列を初期化せずに、要素数を変更する
    ReDim Preserve buf(cnt)
    
    buf(cnt) = v(i)
    '使ったので、カウンターを+1する
    cnt = cnt + 1
    '中身を表示
    MsgBox Join(buf, " , ") & vbCr & _
    "配列の要素 " & LBound(buf) & " 〜 " & UBound(buf)
  Next
  
  'index 1 の中身を表示
  MsgBox "buf(1)= " & buf(1)
  
  MsgBox "Preserveが無いと、配列の中身が初期化される"
  ReDim buf(UBound(buf))
  
  MsgBox Join(buf, " , ") & vbCr & _
  "配列の要素 " & LBound(buf) & " 〜 " & UBound(buf)

  'index 1 の中身を表示
  MsgBox "buf(1)= " & buf(1)

  '要らなくなったら、開放する
  Erase v
  Erase buf
 
End Sub
0 hits

【56864】別シートへ行と列を入れ替えてコピー 初心者さっち 08/7/9(水) 9:11 質問
【56866】Re:別シートへ行と列を入れ替えてコピー ハチ 08/7/9(水) 9:22 回答
【56868】Re:別シートへ行と列を入れ替えてコピー 初心者さっち 08/7/9(水) 11:27 質問
【56869】Re:別シートへ行と列を入れ替えてコピー kanabun 08/7/9(水) 12:02 発言
【56885】Re:別シートへ行と列を入れ替えてコピー 初心者さっち 08/7/9(水) 16:51 お礼
【56873】Re:別シートへ行と列を入れ替えてコピー ハチ 08/7/9(水) 13:19 発言
【56874】Re:別シートへ行と列を入れ替えてコピー ハチ 08/7/9(水) 13:33 発言
【56883】Re:別シートへ行と列を入れ替えてコピー 初心者さっち 08/7/9(水) 16:48 質問
【56886】Re:別シートへ行と列を入れ替えてコピー kanabun 08/7/9(水) 17:18 発言
【56887】Re:別シートへ行と列を入れ替えてコピー ハチ 08/7/9(水) 17:39 発言
【56888】Re:別シートへ行と列を入れ替えてコピー ハチ 08/7/9(水) 17:54 発言
【56897】Re:別シートへ行と列を入れ替えてコピー 初心者さっち 08/7/10(木) 9:07 お礼
【56899】Re:別シートへ行と列を入れ替えてコピー 初心者さっち 08/7/10(木) 10:27 お礼
【56902】Re:別シートへ行と列を入れ替えてコピー ハチ 08/7/10(木) 11:10 発言
【56900】Re:別シートへ行と列を入れ替えてコピー kanabun 08/7/10(木) 10:39 発言
【56901】Re:別シートへ行と列を入れ替えてコピー 初心者さっち 08/7/10(木) 10:56 お礼
【56904】Re:別シートへ行と列を入れ替えてコピー kanabun 08/7/10(木) 11:22 発言
【56918】Re:別シートへ行と列を入れ替えてコピー 初心者さっち 08/7/10(木) 16:10 質問
【56919】Re:別シートへ行と列を入れ替えてコピー kanabun 08/7/10(木) 17:04 発言
【56905】Re:別シートへ行と列を入れ替えてコピー 初心者さっち 08/7/10(木) 12:00 質問
【56906】Re:別シートへ行と列を入れ替えてコピー Abebobo 08/7/10(木) 12:36 発言
【56907】Re:別シートへ行と列を入れ替えてコピー 初心者さっち 08/7/10(木) 13:03 回答
【56908】Re:別シートへ行と列を入れ替えてコピー 初心者さっち 08/7/10(木) 13:15 回答
【56909】Re:別シートへ行と列を入れ替えてコピー kanabun 08/7/10(木) 13:47 発言
【56913】Re:別シートへ行と列を入れ替えてコピー 初心者さっち 08/7/10(木) 14:45 お礼

25174 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free