Excel VBA質問箱 IV

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

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


14647 / 76734 ←次へ | 前へ→

【67576】Re:Dictionaryについて
お礼  八家九僧陀  - 10/12/15(水) 0:57 -

引用なし
パスワード
   ▼kanabun さん:
返事が送れて申し訳ありません。
試してみたのですが、
>  vout(0, 1) = "ID"
のところで「インデックスが有効範囲にありません」とのエラーが出て黄色に反転します。
ほんとに”世話のかかるやつ”ですが、どこをどう直せばいいのでしょうか?

>今回は 集計後の行数がほぼ分かっているので、
>あらかじめ十分な行数をもった配列を確保しておけば、
>ワークシート関数のTRANSPOSEも 自前Transpose 関数作る必要なく
>行けます。
>
>Sub 集計_12か月分TR()
> Dim myDic As Object, c As Range
> Dim myID, myName, v課税所得, v社保控除, v源泉徴収
> Dim i As Long, k As Long, n As Long
>
>  ' ---元データを配列に格納
>  With Sheets("支給台帳")
>    With .Range("C:C")
>     Set c = Excel.Range(.Item(2), .Item(.Count).End(xlUp))
>    End With
>    myID = c.Value
>    myName = c.Offset(, 1).Value
>    v課税所得 = Intersect(c.EntireRow, .Columns("CN")).Value
>    v社保控除 = Intersect(c.EntireRow, .Columns("BZ")).Value
>    v源泉徴収 = Intersect(c.EntireRow, .Columns("CO")).Value
>  End With
>  ' ---社員ID別金額集計
>  ReDim vout(1000, 1 To 5)
>  vout(0, 1) = "ID"
>  vout(0, 2) = "氏名"
>  vout(0, 3) = "課税所得額"
>  vout(0, 4) = "社会保険控除額"
>  vout(0, 5) = "源泉徴収税額"
>  Set myDic = CreateObject("Scripting.Dictionary")
>  For i = 1 To UBound(myID)
>    If Not myID(i, 1) = Empty Then
>      n = myDic(myID(i, 1))
>      If n = 0 Then
>        '---C列のIDがまだmyDicになければ、 _
>          出力行カウンタkを更新して IDとkをセットで登録
>        k = k + 1
>        myDic(myID(i, 1)) = k
>        n = k
>        vout(n, 1) = myID(i, 1)
>        vout(n, 2) = myName(i, 1)
>      End If
>      vout(n, 3) = vout(n, 3) + v課税所得(i, 1)
>      vout(n, 4) = vout(n, 4) + v社保控除(i, 1)
>      vout(n, 5) = vout(n, 5) + v源泉徴収(i, 1)
>    End If
>  Next
>  Set myDic = Nothing
>  
>  ' --- 集計結果配列voutのシートへの書き出し
>  With Worksheets("年調データ")
>    .UsedRange.ClearContents
>    .Range("A1").Resize(k + 1, 5).Value = vout
>  End With
>  MsgBox "集計しました"
>End Sub

1 hits

【67485】Dictionaryについて 八家九僧陀 10/12/9(木) 1:45 質問
【67487】Re:Dictionaryについて Hirofumi 10/12/9(木) 8:33 回答
【67490】Re:Dictionaryについて Hirofumi 10/12/9(木) 9:29 回答
【67505】Re:Dictionaryについて Hirofumi 10/12/9(木) 18:05 発言
【67507】Re:Dictionaryについて 八家九僧陀 10/12/9(木) 18:15 お礼
【67511】Re:Dictionaryについて Hirofumi 10/12/9(木) 19:03 回答
【67575】Re:Dictionaryについて 八家九僧陀 10/12/15(水) 0:48 お礼
【67492】Re:Dictionaryについて kanabun 10/12/9(木) 10:00 発言
【67500】Re:Dictionaryについて kanabun 10/12/9(木) 16:12 発言
【67506】Re:Dictionaryについて Hirofumi 10/12/9(木) 18:06 発言
【67508】Re:Dictionaryについて 八家九僧陀 10/12/9(木) 18:22 お礼
【67510】Re:Dictionaryについて kanabun 10/12/9(木) 18:46 発言
【67512】Re:Dictionaryについて kanabun 10/12/9(木) 19:11 発言
【67576】Re:Dictionaryについて 八家九僧陀 10/12/15(水) 0:57 お礼
【67577】Re:Dictionaryについて kanabun 10/12/15(水) 9:25 発言
【67582】Re:Dictionaryについて 八家九僧陀 10/12/15(水) 22:30 お礼
【67493】Re:Dictionaryについて UO3 10/12/9(木) 10:21 回答
【67494】Re:Dictionaryについて kanabun 10/12/9(木) 11:19 発言
【67496】Re:Dictionaryについて UO3 10/12/9(木) 14:18 発言
【67499】Re:Dictionaryについて kanabun 10/12/9(木) 16:06 発言
【67509】Re:Dictionaryについて 八家九僧陀 10/12/9(木) 18:31 お礼

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