こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルのマクロ 並んだ数字の幾つかを抜き出してその合計を計算させたいのですが・・

エクセルのマクロ(VBA)について、教えてください。
セルのA1からA2・・・A1000までに「01,03,06,08,20,」のように5つの数字がカンマで区切られて入力されています。
1.この5つの数字をb.c.d.e.f.の1から1000のそれぞれのセルに配置するマクロ
2.この5つの数字の数字の合計をb1から1000のセルに表示させるマクロは難しいでしょうか?
MID関数をひとつづつのセルに入れていたのですが、マクロでできれば効率が良いと思い手引書等で考えたのですがよく分からないのです。

投稿日時 - 2008-07-07 22:54:24

QNo.4159193

zup

困ってます

質問者が選んだベストアンサー

その程度であれば敢えてマクロにする必要が無ければエクセルの機能でできます。
1.メニューバーの「データ」> 「区切り位置」で区切り文字を「,」にしてください。
2.1の結果がA列からE列に入るのでF列にA列からE列の合計を、関数で表示すればOK。

投稿日時 - 2008-07-08 16:10:17

ANo.3

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

Sub sample1()
Dim r As Integer
For r = 2 To 1000
Range(Cells(r, 2), Cells(r, 6)) = Split(Cells(r, 1), ",")
'Range(Cells(r, 2), Cells(r, 6)) = Split(Cells(r, 1), ",") '質問の区切りカンマが全角なのでその場合はこっち
Next
End Sub

Sub sample2()
Dim d() As String
Dim r As Integer
Dim i As Integer
For r = 2 To 1000
d = Split(Cells(r, 1), ",")
'd = Split(Cells(r, 1), ",") '質問の区切りカンマが全角なのでその場合はこっち
Cells(r, 2) = 0
For i = 0 To UBound(d) 'または For i = 0 To 4
Cells(r, 2) = Cells(r, 2) + Val(d(i))
Next
Next
End Sub

投稿日時 - 2008-07-07 23:43:22

ANo.1

>1.この5つの数字をb.c.d.e.f.の1から1000のそれぞれのセルに配置

b列=03

>2.この5つの数字の数字の合計をb1から1000のセルに表示

b列=合計

b列を書き換えるのですか?

投稿日時 - 2008-07-07 23:09:19

補足

上手く説明できず申し訳ありません。
1.と2.は、別の質問とご理解ください。
1.a1[01.03.06.08.20] b1[01]c1[03]d1[06]e1[08]
            f1[20]
 a2[04.08.15.21.36] b2[04]c2[08]d2[15]e2[21]
            f2[36] と表示したいものと、
2.a1[01.03.06.08.20] b1[38]
 a2[04.08.15.21.36] b2[84] と合計のみ表示したい場合です。

投稿日時 - 2008-07-07 23:46:19

あなたにオススメの質問