[リストへもどる]
一括表示

投稿時間:2002/09/18(Wed) 11:22
投稿者名:半人前
Eメール:
URL :
タイトル:
VBでExcelの配列を制御したい。
うまく説明できませんがよろしくお願いします。
ただいま、VBでクイズの正解者数を出そうとしています。
と言ってもVBでExcelアプリケーションを起動して計算するというものですが・・・
一回目はA列、B列に正解者と取得点数をいれたのは良いのですが、
二回目から、前回の成績を加算できません。
たとえば、
A1:トラ    B1:200    
A2:タカ    B2:190    
A3:イヌ    B3:180    
A4:サル    B4:170    
A5:キジ    B5:160
これは一回目のクイズの成績です。
そこで二回目のクイズの成績を・・・
A:B一回目の成績  C:D二回目の成績
A1:トラ    B1:200    C1:イヌ    D1:200    
A2:タカ    B2:190    C2:サル D2:180 
A3:イヌ    B3:180    C3:キジ D3:160
A4:サル    B4:170    C4:タカ D4:150
A5:キジ    B5:160  C5:トラ  D5:140
と貼り付けます。
僕が困っているところは一回目と二回目の成績を加算したいんです。
完成図は・・・
A:B一回目の成績  C:D二回目の成績 E:F一回目と二回目の成績を加算後、成績の高い順に並べ替える
A1:トラ    B1:200    C1:イヌ    D1:200 E1:イヌ  F1:380    
A2:タカ    B2:190    C2:サル D2:180 E2:サル F2: 350
A3:イヌ    B3:180    C3:キジ D3:160  E3:トラ  F3: 340
A4:サル    B4:170    C4:タカ D4:150  E4:タカ  F4: 340
A5:キジ    B5:160  C5:トラ  D5:140  E5:キジ  F5: 320
という風にしたいです。
Excelでやったほうが早いと言われそうなのですが、VBでやってみたいです。
何か方法がありませんでしょうか?
よろしくおねがいします。

投稿時間:2002/09/18(Wed) 11:33
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: VBでExcelの配列を制御したい。
合計を表示したいセルには 式を 入れて下さい。

ここのサンプルの VBからエクセルを操作する(その1) は
縦計を求めています。
それと同様にすればOKかと思います。

投稿時間:2002/09/18(Wed) 12:26
投稿者名:半人前
Eメール:
URL :
タイトル:
Re^2: VBでExcelの配列を制御したい。
返事ありがとうございます。
それは合計を表示したいセルに関数をいれるということですよね?
COUNTIF関数を使うのでしょうか?
やってみましたがなにぶんExcelの知識があまりないのでうまくいきませんでした。
できればもう少し教えていただけませんでしょうか?

投稿時間:2002/09/18(Wed) 13:23
投稿者名:nobu
Eメール:
URL :
タイトル:
Re^3: VBでExcelの配列を制御したい。
> それは合計を表示したいセルに関数をいれるということですよね?

サンプルには下記の様に書かれています。
xlSheet.Cells(3, 1).Formula = "=A1+A2" ' "=SUM(A1:A2)"

1回目と2回目で同じ行では無いので要注意ですね。
A1:トラ    B1:200    C1:イヌ    D1:200
2回目はC5:トラ  D5:140 ですし。

> やってみましたがなにぶんExcelの知識があまりないのでうまくいきませんでした。

それなら、Excelも勉強する方が良いですよ。
それか、この際、VBとExcelとは切り離してVBだけでやって見るとか...。

投稿時間:2002/09/18(Wed) 13:44
投稿者名:半人前
Eメール:
URL :
タイトル:
Re^4: VBでExcelの配列を制御したい。
>1回目と2回目で同じ行では無いので要注意ですね。
A1:トラ B1:200 C1:イヌ D1:200
2回目はC5:トラ D5:140 ですし。

そうなんですよー(--;

僕の考えでは、AとCの間に同じ名前があったら同じ名前のもの同士を加算、
したいのですが、それだと名前だけで数字が加算されません(そもそも文字を加算って時点でおかしいですよね)
調べたらデータベース関数というのがありましてそれを使えばできるのかなぁと思いましたが、
やはり難しい・・・

投稿時間:2002/09/18(Wed) 14:02
投稿者名:半人前
Eメール:
URL :
タイトル:
Re^5: VBでExcelの配列を制御したい。
いま、少しひらめいたのですが、A:BにあわせてC:Dのセルが移動するという事はできるのでしょうか?
たとえば
一回目がA1:トラ B1:200で二回目がC5:トラ D5:140だとします。
C5:トラ D5:140が同じ名前のA1:トラB1:200の横に移動するということです。
つまり
A1:トラ B1:200 C1: トラ: D5:140
って事です。
そこまでできればあとは加算して降順にすればいけると思います。
これは関数であるいは命令できるのでしょうか?  
説明下手ですいません。