VSUMのユーザー定義関数にてMAXとMINを追加するには?
http://oshiete.goo.ne.jp/qa/1578916.html
上記の質問ページに記載されているユーザー定義関数にMAXとMINの
集計を追加をしたいのですが、どのように記述すれば良いのでしょうか?
エクセルのVBAを勉強し始めたのですが、利用したいのが今月末の提出物なので、
記述が出来ずに非常に困ってます。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
VSUM の作者です。
約5年前で、少し、書き方は変わりましたが、他も直そうとしましたが、ほとんど変わっていません。使用法は、 'VSUM(集計方法,範囲,ゼロオプション)
で、集計方法は、
1 は AVERAGE
2 は COUNT
3 は COUNTa
*4 MAX
*5 MIN
9 は SUM
4,5 は、Zオプションを入れた場合(Trueまたは 1以上) で、すべて0の場合は、エラーを出します。
=VSUM(5,A1:A20,1)
変更部分だけを入れました。現在、サイトの変更で縮小し、コードが全部入りません。
注意:Function の戻り値は、Variant 型に変わりました。ただし現在の私は、Sumという変数を使いません。
'-------------------------------------------
Function VSUM(集計方法 As Integer, 範囲 As Range, Optional ゼロオプション As Boolean) As Variant
'VSUM(集計方法,範囲,ゼロオプション)
'非表示になっている行は集計しない
Dim c As Variant
Dim i As Long
Dim dV As Double
Dim Sum As Double
Dim Z As Boolean
Dim flg As Boolean 'ゼロオプションの時に、すべて0の場合にエラー
If ゼロオプション = True Then Z = True
'' Select Case 集計方法
'省略
'Next
'VSUM = i
'-------------------------------------------
Case 4 'MAX
dV = -10 ^ 15
For Each c In 範囲
If c.EntireRow.Hidden = False Then
If Z = True And VarType(c.Value) = vbDouble Then
If c.Value > dV And c.Value <> 0 Then
dV = c.Value
flg = True
End If
Else
If c.Value > dV And VarType(c.Value) = vbDouble Then
dV = c.Value
End If
End If
End If
Next
If flg Or Z = False Then
VSUM = dV
Else
VSUM = CVErr(xlErrNull)
End If
Case 5 'MIN
dV = 10 ^ 15
For Each c In 範囲
If c.EntireRow.Hidden = False Then
If Z = True And VarType(c.Value) = vbDouble Then
If dV > c.Value And c.Value <> 0 Then
dV = c.Value
flg = True
End If
Else
If dV > c.Value And VarType(c.Value) = vbDouble Then
dV = c.Value
End If
End If
End If
Next
If flg Or Z = False Then
VSUM = dV
Else
VSUM = CVErr(xlErrNull)
End If
'-------------------------------------------
''Case 9 '合計
' 省略
VSUM = dSum
End Select
End Function
ご返信ありがとうございます。早速利用させていただきました。
時間がある時にでも、自分なりに頑張って解読と理解をしてみようと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
- Excel(エクセル) エクセル2019の関数を教えてください。 8 2022/12/16 12:45
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- 数学 X_1,…X,nを独立で同じ確率分布に従う確率変数列とする。 Xmin=min{X_1,…,Xn}, 5 2023/01/13 22:00
- その他(プログラミング・Web制作) COBOL数値転記をCOPY句内での仕様 6 2022/06/15 18:48
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 1 2022/06/18 21:20
- Excel(エクセル) Excel ユーザー定義で変換したセルについて 3 2023/02/04 01:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel ピボットテーブルで日付...
-
ピボットテーブルのことです
-
エクセルのピポットテーブルで...
-
エクセルで○や×の図形の集計は...
-
ピボットテーブルへの集計フィ...
-
マクロで貼り付け位置を可変さ...
-
ピボットテーブルの項目間の計算
-
エクセルの集計を数字以外です...
-
オートシェイプを色別に個数を...
-
エクセルで行数の多いCSVデータ...
-
ピボットを使ったシートに計算...
-
ピポットテーブルの参照元を別...
-
エクセルの集計機能を横方向(...
-
価格帯別集計 EXCELで効率の良...
-
ファイルメーカーpro6 チェッ...
-
Microsoft Formsによるアンケー...
-
教えて下さい。 MicrosoftExcel...
-
[エクセル]クロス集計っていう...
-
ファイルメーカーの質問(後部...
-
ある審査の結果を迅速にエクセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ピボットテーブルのことです
-
エクセルのピポットテーブルで...
-
マクロで貼り付け位置を可変さ...
-
エクセルで○や×の図形の集計は...
-
ピボットテーブルの項目間の計算
-
エクセルの集計を数字以外です...
-
IF関数を使用した数字に、カン...
-
オートシェイプを色別に個数を...
-
パワーポイントで資料を作る時 ...
-
勤務表の中抜け集計の関数を教...
-
Microsoft Formsによるアンケー...
-
列を増やさずに、月だけの件数...
-
ピボットテーブルへの集計フィ...
-
エクセルの集計機能を横方向(...
-
Excel週ごとの集計を関数で
-
保存ブックを開かずコピーペー...
-
エクセルを使ってCSVデータを自...
-
エクセルで数値のプラス毎とマ...
-
ピボットを使ったシートに計算...
-
ピボットテーブル オリジナル...
おすすめ情報