以下の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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
ApplicationとWorksheetFunctionの違い
Visual Basic(VBA)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
VBAのワークシート関数で配列の合計を求めたい
Visual Basic(VBA)
-
-
4
array関数で格納した配列の型を変更する
Visual Basic(VBA)
-
5
ExcelのVBAで同一フォルダ内にあるファイルに同じ処理をしたい
Excel(エクセル)
-
6
エクセル 複数条件について
Excel(エクセル)
-
7
「ChatGPT-3.5」の回答ですが
Excel(エクセル)
-
8
DBCS関数とは何ぞやッ!
Excel(エクセル)
-
9
Excelのカレンダーを作成しようと思っているのですがうまくいきません
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
HTMLソースが表示のページのも...
-
マクロで"#N/A"のエラー行を削...
-
VBA エクセル で FIND でのエラ...
-
String""から型'Double'への変...
-
実行時エラー 438 の解決策をお...
-
UWSCでエラー発生時の対処法に...
-
ExcelVBAのDoEventsによるエラー?
-
On ErrorでエラーNoが0
-
エクセルVBAで今まで使えていた...
-
VBAでfunctionを利用しようとし...
-
マクロの「SaveAs」でエラーが...
-
Perlのエラーについてご教授く...
-
Excel vbs AppActivate エラー
-
コンボボックスの特定項目だけ...
-
エラーの種類
-
実行時エラー7 メモリが不足...
-
ウェブマスターツールのエラー...
-
Python URLをfor文で回す
-
LaTeXのエラーについて(コンパ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
VBAでfunctionを利用しようとし...
-
お助けください!VBAのファイル...
-
文字列内で括弧を使うには
-
実行時エラー 438 の解決策をお...
-
マクロで"#N/A"のエラー行を削...
-
On ErrorでエラーNoが0
-
エクセルVBA 「On Error GoTo...
-
VBA データ(特定値)のある最...
-
実行時エラー'-2147467259(8000...
-
【VBA】ワークブックを開く時に...
-
VBでSQL文のUPDATE構文を使った...
-
ACCESSで値を代入できないとは?
-
マクロの「SaveAs」でエラーが...
-
Excel vbaについての質問
-
インポート時のエラー「データ...
-
Filter関数を用いた結果、何も...
-
「実行時エラー '3167' レコー...
-
バッチファイルで、あるスクリ...
おすすめ情報