Excel VBA質問箱 IV

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

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


238 / 13645 ツリー ←次へ | 前へ→

【81369】[無題]二次元配列の要素をセルA列に転記 T-K 20/7/3(金) 0:30 質問[未読]
【81370】Re:[無題]二次元配列の要素をセルA列に転... マナ 20/7/3(金) 21:26 発言[未読]
【81371】Re:[無題]二次元配列の要素をセルA列に転... T-k 20/7/4(土) 23:42 お礼[未読]
【81372】Re:[無題]二次元配列の要素をセルA列に転... マナ 20/7/5(日) 8:21 発言[未読]
【81373】Re:[無題]二次元配列の要素をセルA列に転... T-K 20/7/6(月) 23:43 発言[未読]
【81374】Re:[無題]二次元配列の要素をセルA列に転... マナ 20/7/7(火) 15:25 発言[未読]
【81375】Re:[無題]二次元配列の要素をセルA列に転... T−k 20/7/7(火) 22:06 お礼[未読]

【81369】[無題]二次元配列の要素をセルA列に転記
質問  T-K  - 20/7/3(金) 0:30 -

引用なし
パスワード
   Sheet1のデータを、二次元配列に取り込みそれをSheet5のシートの列
に代入したいのですが、やり方がわからずこまっています。
わかる方いらしたら教えてくださいよろしくお願いします。

Shhet1内容
B2からF22まで題目がありますG2〜2最終列まで日にち B3からF51まで製品内容
C3からFE51まで予定数のクロス集計表

Sheet5
Sheet1の内容をデータベースシートにしたいです。

途中までのプログラム

Option Base 1

Sub テーブルに変換()


Dim Myval2() '配列Myval2宣言
Dim Myval
Dim tmp


Dim i As Long 'Long型 iを宣言
Dim K As Long 'Long型 Kを宣言
Dim m As Long
Dim s As Long
Dim Sh1 As Worksheet
Dim Sh5 As Worksheet

Dim Myval3()

  Set Sh1 = Worksheets("Sheet1")
  Set Sh5 = Worksheets("Sheet5")
  
  Sh1.Activate
   Range("A1").Select
  

Myval = Sh1.Range("B2").Resize _
(Range("B65536").End(xlUp).Row, Range("xfc2").End(xlToLeft).Column)

ReDim Preserve Myval2(UBound(Myval, 1), UBound(Myval, 2))


For i = 1 To UBound(Myval, 1)

  For K = 6 To UBound(Myval, 2)


Myval2(i, K) = Myval(i, 1) & "_" & Myval(i, 2) & "_" & Myval(i, 3) _
& "_" & Myval(i, 4) & "_" & Myval(i, 5) _
& "_" & Myval(1, K) & "_" & Myval(i, K)
       

  Next
Next


Sh5.Activate
Sh5.Cells(1, 1).Select

’ここでSheet5へ転記したいのですが、やり方がわかりません


 Columns("A:A").Select
  Selection.AutoFilter
  ActiveSheet.Range("$A$1:$A$10000").AutoFilter Field:=1, Criteria1:="<>"
  Selection.Copy
  Columns("B:B").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Application.CutCopyMode = False
  Columns("A:A").Select
  Selection.Delete Shift:=xlToLeft


For m = 2 To Range("A65536").End(xlUp).Row


 tmp = Split(Cells(m, 1), "_")
 Cells(m, 2) = tmp(0)
 Cells(m, 3) = tmp(1)
  Cells(m, 4) = tmp(2)
  Cells(m, 5) = tmp(3)
   Cells(m, 6) = tmp(4)
   Cells(m, 7) = tmp(5)
    Cells(m, 8) = tmp(6)
 Next
 
 
 Range("A:A").Select
 
 Selection.Delete


End Sub

【81370】Re:[無題]二次元配列の要素をセルA列に...
発言  マナ  - 20/7/3(金) 21:26 -

引用なし
パスワード
   ▼T-K さん:

他板ですが、↓の???さんのコードが参考になりませんか。

ht tp://www.excel.studio-kazu.jp/kw/20200602141636.html

【81371】Re:[無題]二次元配列の要素をセルA列に...
お礼  T-k  - 20/7/4(土) 23:42 -

引用なし
パスワード
   参考になると思い見ました。transposeが使えそう
でしたが、できまさんでした。配列をセルに一回
で記入したかったのですが、わからないため
地道に
代入する方向にしました 
とりあえずできましたので感謝します
いろいろありがとうございます&#128522;

【81372】Re:[無題]二次元配列の要素をセルA列に...
発言  マナ  - 20/7/5(日) 8:21 -

引用なし
パスワード
   ▼T-k さん:

Sheet1(マクロ実行前)は、何となくわかるのですが
Sheet5(マクロ実行後)が、よくわからないのです。

>地道に
>代入する方向にしました 

そのコードを提示いただければ
配列を使った方法に修正できるかもしれません。

【81373】Re:[無題]二次元配列の要素をセルA列に...
発言  T-K  - 20/7/6(月) 23:43 -

引用なし
パスワード
   返信ありがとうございます
一応処理したコードのみ下記にのせました。
とりあえず時間はかかりますが、求めている結果はでました。
1次元に取り込みTranseposeで処理しましたが、ローカルで確認すると
すべて取り込めていないようでしたので諦めました。
何かを間違えているのはわかるのですが、どこを直せばいいかわかりませんでした。

Sh5.Activate
Sh5.Cells(1, 1).Select

  
i = 1
K = 1
For s = 1 To UBound(Myval2, 1) * UBound(Myval2, 2) - 1


  If K = UBound(Myval2, 2) Then
  
  
    i = i + 1
    K = 1
   
   
Else
   K = K + 1

  End If

Sh5.Cells(s, 1) = Myval2(i, K)


Next

【81374】Re:[無題]二次元配列の要素をセルA列に...
発言  マナ  - 20/7/7(火) 15:25 -

引用なし
パスワード
   ▼T-K さん:

骨格だけですが、こんな感じで


Sub test()
  Dim v
  Dim v2()
  Dim i As Long
  Dim k As Long
  Dim n As Long
  
  v = Worksheets("Sheet1").Range("B2").CurrentRegion.Value
  ReDim v2(1 To UBound(v, 1) * UBound(v, 2), 1 To 7)

  For i = 2 To UBound(v, 1)
    For k = 6 To UBound(v, 2)
      n = n + 1
      v2(n, 1) = v(i, 1)
      v2(n, 2) = v(i, 2)
      v2(n, 3) = v(i, 3)
      v2(n, 4) = v(i, 4)
      v2(n, 5) = v(i, 5)
      v2(n, 6) = v(1, k)
      v2(n, 7) = v(i, k)
    Next
  Next
  
  Worksheets("Sheet5").Range("A2").Resize(n, 7).Value = v2

End Sub

【81375】Re:[無題]二次元配列の要素をセルA列に...
お礼  T−k  - 20/7/7(火) 22:06 -

引用なし
パスワード
   [本文なし]
回答ありがとうごさいます
参考にさせていただきます。

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