
以下のVBAはどれもまったく同じ答えを返しますが、どのような違いがあるのでしょうか?
違いがないなら一番短い書き方をしようと思います。
よろしくお願いします。
MsgBox Application.WorksheetFunction.Sum(Range("C21:C23"))
MsgBox WorksheetFunction.Sum(Range("C21:C23"))
MsgBox Application.Sum(Range("C21:C23"))
No.1ベストアンサー
- 回答日時:
MsgBox Application.WorksheetFunction.Sum(Range("C21:C23"))
MsgBox WorksheetFunction.Sum(Range("C21:C23"))
MsgBox Application.Sum(Range("C21:C23"))
>ans= Application.WorksheetFunction.Sum(Range("C21:C23"))
>ans= WorksheetFunction.Sum(Range("C21:C23"))
この2つは、基本的には同じですね。これは、97以上の書法です。Application を省略しても、ワークシート関数は使えます。しかし、Sum関数の引数にエラー値があると、両方とも「実行時エラー」になるはずです。VBAで回避するためには、On Error トラップが必要になりますね。
>ans = Application.Sum(Range("C21:C23"))
こちらは、古いVersionの書き方ですが、エラー値そのものが、上記の場合は、ans に返るはずです。ただし、ansは、変数型はVariant 型です。
どちらでも良いと思います。
なお、短くするなら、
ans = Evaluate("Sum(C21:C23)")
という方法もあります。
早速ありがとうございました。
Evaluate("Sum(C21:C23)")という呪文もあるんですね。文字列で入力した式を計算させるんですね!勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応 3 2022/12/27 22:27
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Excel(エクセル) 列の最終行に新たに入力されたらその値を自動参照 1 2023/01/21 09:59
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Excel(エクセル) 条件付き書式でフォント色を赤に設定しましたが、 2 2023/07/29 14:17
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
お助けください!VBAのファイル...
-
UserForm1.Showでエラーになり...
-
【VBA】ワークブックを開く時に...
-
VBAでfunctionを利用しようとし...
-
マクロで"#N/A"のエラー行を削...
-
String""から型'Double'への変...
-
【VBAエラー】Nextに対するFor...
-
「実行時エラー '3167' レコー...
-
Excel vbaについての質問
-
インポート時のエラー「データ...
-
VB.net 重複チェックがしたいです
-
実行時エラー 438 の解決策をお...
-
ApplicationとWorksheetFunctio...
-
Nullの使い方が不正ですのエラ...
-
エクセル 足し算引き算で 空...
-
オブジェクト型の変数にフォー...
-
VBA Find でオートメーションエ...
-
マクロOn Error GoTo ErrLabel...
-
VBA データ(特定値)のある最...
-
助けてください
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
String""から型'Double'への変...
-
【VBA】ワークブックを開く時に...
-
文字列内で括弧を使うには
-
マクロで"#N/A"のエラー行を削...
-
Excel vbaについての質問
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
ApplicationとWorksheetFunctio...
-
【Access】Excelインポート時に...
-
インポート時のエラー「データ...
-
実行時エラー 438 の解決策をお...
-
オブジェクト型の変数にフォー...
-
.VBSだとADODBのプロバイダが見...
-
実行時エラー'-2147467259(8000...
-
【VB.NET】 パワポ操作を非表示で
-
フランスの生年月日(jj/mm/aaaa)
-
【VBAエラー】Nextに対するFor...
おすすめ情報