Excel VBA質問箱 IV

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

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


6254 / 13646 ツリー ←次へ | 前へ→

【46378】配列のコピー okitsun 07/2/1(木) 11:56 質問[未読]
【46379】Re:配列のコピー Jaka 07/2/1(木) 12:13 発言[未読]
【46382】Re:配列のコピー okitsun 07/2/1(木) 12:55 回答[未読]
【46383】Re:配列のコピー Jaka 07/2/1(木) 13:15 発言[未読]
【46384】Re:配列のコピー okitsun 07/2/1(木) 13:15 お礼[未読]

【46378】配列のコピー
質問  okitsun E-MAIL  - 07/2/1(木) 11:56 -

引用なし
パスワード
   配列に"あ"、”い”、”う”の3つが入っていて
配列から9回順に取り出し、以下の表を作るにはどうしたらいいでしょうか。

   A   B   C   D
1  あ
2 い    
3 う
4 あ 
5 い
6 う
7 あ
8 い
9 う

  For a = 1 To 9

   For x=1 To 4
   Cells(a , 1).Value = Ary(x)
   Next

  Next

のようにしたのですが、意識したとおりにできなくて。
すいませんが分かる方お願いします。


   Next
  Next

【46379】Re:配列のコピー
発言  Jaka  - 07/2/1(木) 12:13 -

引用なし
パスワード
   Sub 一次元()
Dim tb(1 To 3)
moji = "あいう"
For i = 1 To 3
  tb(i) = Mid(moji, i, 1)
Next
For i = 1 To 3
Range("a65536").End(xlUp).Resize(3).Offset(1).Value = Application.Transpose(tb)
Next
End Sub

Sub 二次元()
Dim tb(1 To 3, 1 To 1)
moji = "あいう"
For i = 1 To 3
  tb(i, 1) = Mid(moji, i, 1)
Next
For i = 1 To 3
Range("a65536").End(xlUp).Resize(3).Offset(1).Value = tb
Next
End Sub

【46382】Re:配列のコピー
回答  okitsun E-MAIL  - 07/2/1(木) 12:55 -

引用なし
パスワード
   ▼Jaka さん:

説明足らずですいません。説明を追加させてください。
○文字列は何文字かはわかりません。
○配列の文字列をコピーする回数は3固定ではなく、変数で渡したい。


   A   B   C   D
1  あde
2 いr    
3 う
4 あde 
5 いr
6 う
7 あde
8 いr
9 う
10 あde
11 いr
12 う

こんな感じかと作ってみたのですが、
tb(i) = Ary(i)
のところで以下のように言われます。
オブジェクト変数または With ブロック変数が設定されていません。(Error 91)

Sub sample()

Dim tb As Range

For i = 1 To g0
  tb(i) = Ary(i)
Next

For i = 1 To g0 * (AcolumnC - 2)
Range("a65536").End(xlUp).Resize(g0).Offset(4).Value = Application.Transpose(tb)
Next

End Sub

【46383】Re:配列のコピー
発言  Jaka  - 07/2/1(木) 13:15 -

引用なし
パスワード
   ▼okitsun さん:
>説明足らずですいません。説明を追加させてください。
>○文字列は何文字かはわかりません。
>○配列の文字列をコピーする回数は3固定ではなく、変数で渡したい。
別に説明足らずでもないです。
例えとして、自分で配列を作って値を格納後セル範囲に書き込んだだけです。

>こんな感じかと作ってみたのですが、
>tb(i) = Ary(i)
>のところで以下のように言われます。
>オブジェクト変数または With ブロック変数が設定されていません。(Error 91)
って言うか、コンパイルエラーにありませんか?

>Sub sample()
>Dim tb As Range
>For i = 1 To g0
>  tb(i) = Ary(i)
       ↑ここで・・・。プロシジャーなどが定義されてないとか。
>Next

因みに下の書き方は1次元配列です。
ViVi = Array(1,2,3,4,5)

【46384】Re:配列のコピー
お礼  okitsun E-MAIL  - 07/2/1(木) 13:15 -

引用なし
パスワード
   For d = 0 To a
Range("a4").Resize(配列の大きさ).Offset(d * 4).Value = pplication.Transpose(Ary())
Next

でできました。

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