"" A B C D E

1 あ 23 "" あ 23  質問:A1:B5のデータをC1辺のマクロボタンで
2 い 45 """ い 45    D1:E3の答えを返したい。
3 う """""" え 15    同じく
4 え 15          A6:B10~A36:B40まで
5 お             全部で8組のデータを、同じように処理 
               したい、、、1組だけならフィルタでOK
               何か良い方法を教えてください。
                

回答の条件
  • 1人1回まで
  • 登録:2009/09/24 15:50:56
  • 終了:2009/10/01 15:55:02

回答(3件)

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692009/09/24 18:17:30

ポイント27pt

マクロボタンに次のようなコードをコピペすればいいです。

    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    
    For i = 1 To 36 Step 5
        k = i
        For j = 0 To 4
            If Cells(i + j, 2).Value <> "" Then
                Cells(k, 4).Value = Cells(i + j, 1).Value
                Cells(k, 5).Value = Cells(i + j, 2).Value
                k = k + 1
            End If
        Next j
    Next i
id:johnny_shaman No.2

Johnny Shaman回答回数33ベストアンサー獲得回数12009/09/24 16:53:59

ポイント27pt

Sub test()

  Dim a as Long

  Dim c as Object

  Dim dat_stack_a(0, 4)

  Dim dat_stack_b(0, 4)

  a = 0

  for each c in range("A1:A5")

    dat_stack_a(0, a) = c.value

    a = a + 1

  next c

  set c = nothing

  a = 0

  for each c in range("B1:B5")

    dat_stack_b(1, a) = c.value

    a = a + 1

  next c

  set c = nothing

  a = 0

  for each c in range("D1:D5")

    a = 0

    for each dat_stack_a

      if dat_stack_a(0, a) = c.value then

        cells(a, 5).value = dat_stack_b(0 , a)

        exit for

      end if

      a = a + 1

    next dat_stack_a

  next c

end sub

id:maruyama2 No.3

maruyama2回答回数4ベストアンサー獲得回数12009/09/30 21:50:33

ポイント26pt

'マクロボタンのある行を調べてから,データを書きます。

'マクロボタン名は、CommandButton1 にして

'データがA1から始まる場合、

'セルC1の中に、はみ出ないようにマクロボタンを作って下さい。

Private Sub CommandButton1_Click()

'初めのデータの準備

マクロボタンのある行 = CommandButton1.TopLeftCell.Row

D列に書き込む行 = マクロボタンのある行

読むデータ行 = マクロボタンのある行

'8組の繰り返しの処理

For 組番号 = 1 To 8

For 組の行数 = 1 To 5

A列の値 = Cells(読むデータ行, "A").Value

B列の値 = Cells(読むデータ行, "B").Value

'B列にデータがあれば、DEにコピーします

If B列の値 <> "" Then

Cells(D列に書き込む行, "D").Value = A列の値

Cells(D列に書き込む行, "E").Value = B列の値

'次の書き込みの準備

D列に書き込む行 = D列に書き込む行 + 1

End If

読むデータ行 = 読むデータ行 + 1

Next 組の行数

'次の書き込みの準備

D列に書き込む行 = (マクロボタンのある行 - 1) + (組番号 * 組の行数) + 1

Next 組番号

MsgBox "出来上がりました"

End Sub

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません