Excel VBA質問箱 IV

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

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


6945 / 76732 ←次へ | 前へ→

【75383】Re:以前作って頂いた物の改変(複雑です)
発言  kanabun  - 14/3/18(火) 19:40 -

引用なし
パスワード
   なお、Dictionary は
C列の記号の後に 試作品、製品、特別品別を区別する記号を付したもので、
辞書のキーに登録していけば、dicを3つ用意しなくても済みます。

Sub test61() '1つのdicで済ます
 Dim n As Long
 Dim y As Long, x As Long '整数型は特別な場合を除いて Long がよい
 Dim i As Long, k As Long
 Dim ss As String, sk As String
 Dim c As Range
 Const Y0 = 8, YY = 84, Ystp = 16 '縦方向 最初の行番・Loop回数・Step数
 Const X0 = 3, XX = 27, Xstp = 3 '横方向 最初の列番・Loop回数・Step数
 Dim dic As Object
 Set dic = CreateObject("Scripting.Dictionary")
 
 ActiveSheet.UsedRange.Interior.ColorIndex = xlNone
 '◆まずC列のキー別に、1段目、2段目、3段目別に、最大値を求める
 For x = X0 To X0 + (XX - 1) * Xstp Step Xstp
  For y = Y0 To Y0 + (YY - 1) * Ystp Step Ystp
   For i = 2 To 8 Step 3 '[C8]セルを1行目として
    Set c = Cells(y, x).Item(i, 1) '2,5,8行目
    'ただし D列に数字が入っていたら
    If WorksheetFunction.IsNumber(c(1, 2)) Then
      '「何もしない」塗りつぶすだけ
      c.Resize(, 2).Interior.Color = vbGreen
    Else
      ss = c.Value
      If Len(ss) > 0 Then
       For k = 1 To 3  '記号のある行の-1行〜2行までの3行
        sk = ss & k 'C列記号+製品種別番号
        n = WorksheetFunction. _
          RoundUp(c.Offset(k - 2, 2).Value, -2)
        If Not dic.Exists(sk) Then 'keyが無ければ登録
          dic(sk) = n        'その行の数値を登録
        ElseIf dic(sk) < n Then 'すでにキーのあるとき
          'この行のnがこれまでの最大値より大きければ
          dic(sk) = n '最大値の更新
        End If
       Next k
      End If
    End If
   Next i
  Next y
 Next x

 '◆求まったキー別最大値で元表の数値列を更新
 For x = X0 To X0 + (XX - 1) * Xstp Step Xstp
  For y = Y0 To Y0 + (YY - 1) * Ystp Step Ystp
   For i = 2 To 8 Step 3 '[C8]セルを1行目として
    Set c = Cells(y, x).Item(i, 1) '2,5,8行目
    'ただし D列に数字が入っていたら
    If WorksheetFunction.IsNumber(c(1, 2)) Then
      '「何もしない」
    Else
      ss = c.Value
      If Len(ss) > 0 Then
       For k = 1 To 3 '記号のある行の-1行〜2行までの3行
         c.Offset(k - 2, 2).Value = dic(ss & k)
       Next k
      End If
    End If
   Next i
  Next y
 Next x
  
 MsgBox "持ち上げが完了しました。" & vbCr _
   & "掛け数の設定されている台は、手集計して下さい"

End Sub

4 hits

【75379】以前作って頂いた物の改変(複雑です) 初心者M 14/3/18(火) 11:09 質問
【75380】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/18(火) 12:49 発言
【75381】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/18(火) 13:47 質問
【75382】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/18(火) 19:24 発言
【75383】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/18(火) 19:40 発言
【75384】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/19(水) 10:03 お礼
【75385】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/19(水) 11:00 発言
【75386】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/19(水) 11:26 質問
【75387】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/19(水) 13:59 発言
【75388】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/19(水) 14:35 お礼
【75389】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/19(水) 14:37 お礼
【75390】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/19(水) 15:59 発言
【75391】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/19(水) 16:11 発言
【75392】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/19(水) 17:24 お礼
【75393】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/19(水) 20:11 発言
【75394】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/20(木) 9:13 質問
【75395】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/20(木) 9:34 発言
【75396】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/20(木) 13:21 お礼
【75397】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/20(木) 14:17 発言
【75398】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/20(木) 14:45 発言
【75399】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/20(木) 14:52 発言
【75400】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/20(木) 15:19 発言
【75402】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/20(木) 17:38 発言
【75403】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/20(木) 17:56 発言
【75404】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/20(木) 19:08 発言
【75423】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/24(月) 9:23 質問
【75424】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/24(月) 10:22 質問
【75425】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/24(月) 10:33 発言
【75426】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/24(月) 10:40 発言
【75427】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/24(月) 10:54 発言
【75428】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/24(月) 11:10 お礼
【75429】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/24(月) 11:30 発言
【75430】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/24(月) 11:40 発言
【75431】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/24(月) 11:49 発言
【75432】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/24(月) 13:48 発言
【75433】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/24(月) 14:10 お礼
【75434】Re:以前作って頂いた物の改変(複雑です) kanabun 14/3/24(月) 17:38 発言
【75435】Re:以前作って頂いた物の改変(複雑です) 初心者M 14/3/25(火) 9:46 お礼

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