人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

"" 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
何か良い方法を教えてください。

●質問者: mitsueda
●カテゴリ:コンピュータ
✍キーワード:23 データ フィルタ ボタン マクロ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● SALINGER
●27ポイント

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

 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

2 ● Johnny Shaman
●27ポイント

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


3 ● maruyama2
●26ポイント

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

'マクロボタン名は、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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ