• ベストアンサー

VBAの多次元配列のコピー

お世話になります。 ArrayA(10,10)とArrayB(10,10,5)があります。 ArrayA(10,10)をArrayB(10,10,1)にコピーしたいのですが、 どのようにすればよいでしょうか? forで回すしか方法はないのでしょうか? お手数ですが宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65535
  • ベストアンサー率44% (8553/19436)
回答No.1

>forで回すしか方法はないのでしょうか? でしょうね。私も他の方法が思い浮かびません。

kgyqk433
質問者

お礼

1次元の時は、 array2 = array1.Clone でいけるみたいですが。。。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • perlでの配列について

    配列の配列について教えてください。 以下のようなテキストから値を取得し、A,B,Cの値をそれぞれ別の配列に格納し、A,B,Cの平均値を出す処理を行っているとします。 ----- A=100 B=200 C=300 A=110 B=210 : ----- 現状、以下のような状態です。 @arrayA=(); @arrayB=(); @arrayC=(); : (テキストを読み込み) : ・読み込んだ行がA=XXXならarrayAにpush push(@arrayA,"100"); ・読み込んだっ行がB=XXXならarrayBにpush push(@arrayB,"100"); : (各配列の要素の平均値を出す) このやり方だと、グループが増えるとそのまま行数が増えて冗長なので、グループごとの配列を1つの配列にまとめたいのです。 Webで初期値を入れた形で説明しているのはよくみるのですが、今回のように空の配列に値をいれていくにはどうすればよいのでしょうか?(そもそも宣言の仕方もわかりません)。 また、配列の配列?とした場合、以下のような処理はできるのでしょうか? (1)配列の1つ目の要素(の配列)にpushする(現状でのarrayAにpushに該当) push(@arrayAll[0],"test");

  • 配列の組み合わせを数える方法

    配列の組み合わせを数えるイイ方法はないでしょうか? たとえば ArrayA[]={"aaa","bbb","aaa","ccc","bbb","aaa"} ArrayB[]={"1","1","1","2","1","2"} ↑の配列があるとして、 aaa - 1 : 2個 aaa - 2 : 1個 bbb - 1 : 2個 ccc - 2 : 1個 と組み合わせの数を数えることができる方法で悩んでいます。 Strtusを用いて作成しています。 よろしくお願いします。

    • ベストアンサー
    • Java
  • x重入れ子の実装方法について

    ■やりたいこと: arrayA, arrayB, arrayCの配列から毎回それぞれ1つずつ取り出し、すべてのパタンをプリントする。 ■入れ子の階層が既知の場合: for文を入れ子にしていけばいいのですが(下記サンプルのように) ■入れ子の階層が未知な場合: どのように実装すればよいか、わかりません。 どなたかアドバイスいただけますか? ----------------------------- String[] arrayA = {"a1", "a2", "a3"}; String[] arrayB = {"b1", "b2"}; String[] arrayC = {"c1", "c2", "c3", "c4"}; int count = 1; for (int a = 0; a < arrayA.length; a++) { for (int b = 0; b < arrayB.length; b++) { for (int c = 0; c < arrayC.length; c++) { System.out.println(count + " : " + arrayA[a] + "-" + arrayB[b] + "-" + arrayC[c]); count += 1; } } } ------------------------ 上記ソースの出力: 1 : a1-b1-c1 2 : a1-b1-c2 3 : a1-b1-c3 以下省略

    • ベストアンサー
    • Java
  • 2次元配列のコピーについて

    2次元配列のコピーについて質問があります。 $Aが元の2次元配列、$Bがコピー先だとして、 ${$A}[0..N][0..N]に値が入っているとします。 ここで、$Bの代入を、$B=$Aとやってしまうと、$Aと$Bが連動してしまいます。 ($Bが書き換わったのに$Aも書き換わる) これはなぜなのでしょうか。 また、$Bの代入を、配列を走査して foreach (0.. $#{$A}) {  my ($i) = $_;  foreach (0.. $#{${$A}[$i]})  {   my ($j) = $_;   ${$B}[$i][$j] = ${$A}[$i][$j];  } } とすれば問題ないのですが、あまりスマートだと思えません。 もっとスマートにコピーする方法はありますか?

    • ベストアンサー
    • Perl
  • 【VBA】配列の部分コピー

    VBAにて、配列の範囲を指定して別の配列にコピーしたいと思っています。 現在は以下のようにFor文を使用して1つ1つ代入しているのですが、 もっと効率の良い方法はありますか? 処理速度を重視しています。 Dim srcArray As Variant: srcArray = Range("A1:A100") ' コピー元の配列 Dim dstArray As Variant ' コピー先の配列 Dim startIndex As Integer ' コピーする範囲の開始インデックス Dim endIndex As Integer ' コピーする範囲の終了インデックス startIndex = 6 endIndex = 16 ReDim dstArray(endIndex - startIndex) For si = startIndex To endIndex   dstArray(si - startIndex) = srcArray(si, 1) Next si

  • 2次元配列のコピー

    System.arraycopy(~) を使って二次元配列のコピーをしたいのですが、 出来るのでしょうか? 出来るのなら、使い方を教えてください。

    • ベストアンサー
    • Java
  • 二次元配列のVBA

    二次元配列のVBAの書き方がよくわからないのですが、 私が作ったサンプルプログラムのSub 二次元()において 二次元配列で表すにはどうすればいいのでしょうか? Sub 二次元()では 配列を格納する変数はtmpしか使っていませんが もう一つ配列を格納する用の変数を作ればいいのでしょうか? 数字とアルファベットは別々に取り出したいです。 ----------------------------------------------------- Sub 一次元() Dim myStr As String Dim tmp As Variant Dim i As Long For i = 1 To 5 myStr = myStr & "," & i Next myStr = Mid(myStr, 2) tmp = Split(myStr, ",") For i = LBound(tmp) To UBound(tmp) Debug.Print tmp(i) Next i End Sub Sub 二次元() Dim myStr As String Dim tmp As Variant Dim i As Long For i = 1 To 5 myStr = myStr & "," & i & "と" & Chr(64 + i) Next myStr = Mid(myStr, 2) tmp = Split(myStr, ",") For i = LBound(tmp) To UBound(tmp) Debug.Print tmp(i) Next i End Sub

  • VBAの配列について

    いつもお世話になります。 XPを使用しています。 配列の中にあるデータがセル値と一致しているかどうかを1発で検索してくれる方法はご存知ではないでしょうか? 今、Do LoopとFor文で回しているのですが、 データ数が3万個とかになると非常に処理が遅いです。 いい方法があればご教授下さい。 よろしくお願いします。

  • 別次元配列への文字コピー

    別次元配列への文字コピー(not文字列)をする際特別な制約ってありますか? 2次元配列から1次元配列への文字コピー 1次元配列から2次元配列への文字コピー などなど for(i=0,n=0;n<TEISU1;n++){ for(m=0;m<TEISU2;m++,i++){ strcpy(&ABC[m][n],&DEF[i]); printf(" i%d n%d m%d %c %x\n",i,n,m,ABC[m][n],DEF[m][n]); // ★★★★★↑この時点では正しく出ているが } } /**/printf("%s\n",ABC); // ★★★★★↑この時点では出力内容がおかしくなっている 原因がさっぱりわかりません。 原因はどういった事が考えられますか?

  • VBAで配列をまるごとコピー

    VBAで配列をまるごとコピーする方法を教えてください a(256,256) という配列があり、これの中身を b(256,256) にまるごとコピーしたいのですが どのようにするのが手っ取り早いでしょうか?

このQ&Aのポイント
  • ESET インターネット セキュリティを会社用PCにインストールできるのか
  • 会社用PCは特定の1ユーザーが使用するため、ESET の個人向け製品を購入しても問題ないか
  • ESET インターネット セキュリティを会社用PCに導入する方法と注意点
回答を見る