検索
ホームページトピックexcelExcelでカスタム関数をデバッグする方法を学びます

UDFを作成する方法を既に知っているので(そして、Excelにそれらを適用しようとしたことを願っています)、ユーザー定義の関数が機能していない場合に何ができるかをもう少し深く掘り下げてみましょう。

カスタム関数を作成するときにいくつかの問題を解決するには、デバッグを実行する必要がある可能性が高いです。次に、関数が正しく機能していることを確認できます。

次のデバッグテクニックを探ります。

カスタム関数を作成すると、間違いを犯す可能性が常にあります。通常、カスタム関数は非常に複雑です。そして、彼らは常にすぐに正しく働き始めるとは限りません。式は、誤った結果または#valueを返す場合があります!エラー。標準のExcel関数とは異なり、他のメッセージは表示されません。

各ステートメントの仕組みを確認するために、カスタム関数を段階的に段階的に進める方法はありますか?もちろん!これにはデバッグが使用されます。

カスタム関数をデバッグする方法をいくつか提供して、自分に合った機能を選択できるようにします。

例として、指定された値の範囲の最大数を計算する以前の記事の1つから、カスタム関数使用します。

function getmaxbetween(rngcells as range、minnum、maxnum) dim numrange as range dim vmax dim arnums () dim i as integer redim arrnums(rngcells.count) rngcells vmax = numrange select case case 0.01 aurnums(i = vmax case minnum = vmax case minnum else getmaxbetween = 0 end select next numrange getmaxbetween = worksheetfunction.max(arrnums) end関数

関数引数は、数値が書かれているセルの範囲と、値の上限と下限です。

MSGBOX機能を重要な場所に配置します

計算の実行を監視するために、正しい場所の画面上の最も重要な変数の値を表示できます。これは、ポップアップダイアログボックスを使用して実行できます。

MSGBoxは、ユーザーに何らかのメッセージを表示するために使用できるダイアログボックスです。

MSGBOXの構文は、他のVBA関数に似ています。

msgbox(prompt [、buttons] [、title] [、helpfile、context]))

プロンプトは必要な引数です。ダイアログボックスに表示されるメッセージが含まれています。また、個々の変数の値を表示するためにも使用できます。

他のすべての引数はオプションです。

[ボタン] - どのボタンとアイコンがmsgboxに表示されるかを決定します。たとえば、オプションvbokonlyを使用すると、 [OK]ボタンのみが表示されます。この引数を見逃したとしても、このボタンはデフォルトで使用されます。

[タイトル] - ここで、メッセージボックスのタイトルを指定できます。

単語から切り替えて練習し、デバッグを開始しましょう。メッセージを表示するには、次の行をCase Else Operatorの前にGetMaxBetheeineユーザー定義関数のコードに追加します。

msgbox vmax ,, "count-" &私

これが結果に得られるものです:

function getmaxbetween(rngcells as range、minnum、maxnum) dim numrange as range dim vmax dim arnums () dim i as integer redim arrnums(rngcells.count) rngcells vmax = numrange select case case minnum = vmax = i = aurnum msgbox vmax ,, "count-" & iケース他のgetmaxbetween = 0 end select next numrange getmaxbetween = worksheetfunction.max(arrnums) end関数

ダイアログボックスでVMAX変数を使用して、どの数値が選択の基準を満たしているかを確認して、それらの最大を選択できるようにします。タイトルバーの「count-」&iの式を使用すると、最大値を決定するために既に選択した数字の数を示します。カウンターは、新しい値ごとに増加します。

UDFセットを設定したら、以下の式を日付範囲に適用します。

= GetMaxBetween (A1:A6,10,50)

Enterボタンを押すと、以下のスクリーンショットのようにメッセージが表示されます。

Excelでカスタム関数をデバッグする方法を学びます

これは、基準を満たしている範囲A1:A6の最初の数値です。10を超えて50未満です。

[OK]をクリックすると、数字14で2番目のメッセージが表示されます。残りの数値は選択基準と一致しません。したがって、関数は2つの値のうち最大の17を終了して返します。

MSGBox関数は、個々の変数の値がどのように変化するかを制御するために、カスタム関数の最も重要な場所で使用できます。メッセージボックスは、大きな機能と多くの計算がある場合に非常に便利です。この場合、エラーが発生するコードのどの部分で発生するかを簡単に判断できます。

停止ポイントを決定し、段階的に実行します

コードの実行が停止する関数のコードにブレークポイントを追加できます。したがって、計算プロセスに段階的に従うことができます。そうすることで、変数の値がどのように変化するかを見ることができます。

ブレークポイントを追加するには、一時停止を選択したステートメントを含むラインにカーソルを配置します。次に、右クリックして[デバッグ] - > [ブレークポイントを切り替える]またはF9を押します。また、関数コードの左側にある垂直灰色の領域にある目的の場所をクリックすることもできます。

以下のスクリーンショットにあるように、赤い円が表示されます。計算が停止されるコードラインは赤で強調表示されます。

Excelでカスタム関数をデバッグする方法を学びます

これで、機能が実行されているときにVBAエディターウィンドウが開きます。カーソルは、停止した時点に配置されます。

マウスカーソルを関数コードの変数のいずれかにホバリングすると、現在の値を確認できます。

Excelでカスタム関数をデバッグする方法を学びます

F5を押して計算を続行します。

注記。ブレークポイントの後、計算の進行の追跡を段階的に追跡することができます。 F8ボタンを押すと、VBAコードの次の1行のみが実行されます。矢印のある黄色の線も、最後に実行されたコード位置に移動します。

関数の実行が再び一時停止されるため、マウスカーソルを使用して関数のすべての変数の現在の値を表示できます。

F8の次のプレスは、私たちを一歩前進させます。したがって、計算の終了までF8を押すことができます。または、 F5を押して、次のブレークポイントまで計算を続行します。

エラーが発生した場合、エラーが発生したコードのポイントでカーソルが停止します。また、ポップアップエラーメッセージも表示されます。これにより、問題の原因を簡単に判断できます。

指定したブレークポイントは、ファイルを閉じるまで適用されます。再開するときは、再度設定する必要があります。最も便利な方法ではありません、あなたは思いませんか?

ただし、この問題は解決できます。必要なポイントで停止ステートメントを関数コードに挿入すると、ブレークポイントを使用するときと同じようにプログラムの実行を停止できます。

Excelでカスタム関数をデバッグする方法を学びます

VBAがSTOPステートメントに遭遇すると、プログラムの実行を停止し、アクションを待ちます。変数の値を確認し、 F5を押して続行します。

または、 F8を押して、上記のように関数を段階的に満たします。

STOPステートメントはプログラムの一部であるため、ブレークポイントの場合のように削除されません。デバッグが完了したら、自分で削除してください。または、単一の引用( ')で前にコメントに変えます。

debug.printオペレーターを使用したデバッグ

debug.printを正しい場所にfunctionコードに配置できます。これは、周期的に変化する変数の値をチェックするのに役立ちます。

以下のスクリーンショットで、debug.printのパフォーマンスの例を見ることができます。

Excelでカスタム関数をデバッグする方法を学びます

ステートメントdebug.print i、vmaxは値とその順序数を印刷します。

即時のウィンドウには、選択した範囲から2つの数値(17と14)が表示されます。これは、設定された制限に対応し、そのうち最大値が選択されます。数字1と2は、関数が数値が選択された2サイクルを完了したことを意味します。 MSGBoxで以前に行ったように、最も重要な変数の値が表示されます。しかし、これは機能を止めませんでした。

手順から関数を呼び出します

ワークシートのセルからではなく、手順からユーザー定義の関数を呼び出すことができます。この場合、すべてのエラーがVisual Basic Editorウィンドウに表示されます。

手順からユーザー定義の関数getMaxbergeenを呼び出す方法は次のとおりです。

sub test() dim x x = getmaxbetween(range( "a1:a6" )、10、50)msgbox(x) end sub

カーソルをコードのどこにでも配置し、 F5を押します。関数にエラーがない場合は、計算結果のあるポップアップウィンドウが表示されます。

エラーの場合、VBAエディターに対応するメッセージが表示されます。計算は停止され、エラーが発生したコードラインが黄色で強調表示されます。エラーが発生した場所と理由を簡単に識別できます。

それだけです。これで、独自のアドインを作成し、Excelに追加して、UDFを使用できます。より多くのUDFを使用する場合は、VBAエディターのアドインモジュールにコードを記述して保存してください。

それは今日のためです。カスタム関数をデバッグするさまざまな方法をカバーし、ワークブックで使用する方法を学びました。これらのガイドラインが役立つことを本当に願っています。ご質問がある場合は、この記事にコメントを書いてください。

以上がExcelでカスタム関数をデバッグする方法を学びますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Excelの式の中央値 - 実用的な例Excelの式の中央値 - 実用的な例Apr 11, 2025 pm 12:08 PM

このチュートリアルでは、中央値関数を使用してExcelの数値データの中央値を計算する方法について説明します。 中央傾向の重要な尺度である中央値は、データセットの中央値を識別し、中央の傾向のより堅牢な表現を提供します

式の例を備えたGoogleスプレッドシートcountif機能式の例を備えたGoogleスプレッドシートcountif機能Apr 11, 2025 pm 12:03 PM

マスターグーグルシートcountif:包括的なガイド このガイドでは、Googleシートの多用途のCountif機能を調査し、単純なセルカウントを超えてそのアプリケーションを実証しています。 正確な一致や部分的な一致から漢までのさまざまなシナリオをカバーします

Excel共有ワークブック:複数のユーザーのExcelファイルを共有する方法Excel共有ワークブック:複数のユーザーのExcelファイルを共有する方法Apr 11, 2025 am 11:58 AM

このチュートリアルは、さまざまな方法、アクセス制御、競合解決をカバーするExcelワークブックを共有するための包括的なガイドを提供します。 Modern Excelバージョン(2010、2013、2016、およびその後)共同編集を簡素化し、mの必要性を排除します

Excelをjpgに変換する方法 -  .xlsまたは.xlsxを画像ファイルとして保存しますExcelをjpgに変換する方法 - .xlsまたは.xlsxを画像ファイルとして保存しますApr 11, 2025 am 11:31 AM

このチュートリアルでは、.xlsファイルを.jpg画像に変換するためのさまざまな方法を調査し、ビルトインWindowsツールと無料のオンラインコンバーターの両方を網羅しています。 プレゼンテーションを作成したり、スプレッドシートデータを安全に共有したり、ドキュメントを設計したりする必要がありますか?ヨーヨーを変換します

名前と名前付き範囲:フォーミュラで定義および使用する方法名前と名前付き範囲:フォーミュラで定義および使用する方法Apr 11, 2025 am 11:13 AM

このチュートリアルは、Excel名の機能を明確にし、セル、範囲、定数、または式の名前を定義する方法を示します。 また、定義された名前の編集、フィルタリング、削除もカバーしています。 Excelの名前は、信じられないほど便利ですが、しばしばOverloです

標準偏差Excel:関数と式の例標準偏差Excel:関数と式の例Apr 11, 2025 am 11:01 AM

このチュートリアルは、標準偏差と平均の標準誤差の区別を明確にし、標準偏差計算のための最適なExcel関数を導きます。 記述統計では、平均および標準偏差は内在的です

Excelの平方根:SQRT関数およびその他の方法Excelの平方根:SQRT関数およびその他の方法Apr 11, 2025 am 10:34 AM

このExcelチュートリアルでは、正方形の根とNth Rootsを計算する方法を示しています。 平方根を見つけることは一般的な数学的操作であり、Excelはいくつかの方法を提供します。 Excelの正方形の根を計算する方法: SQRT関数を使用します

Googleシートの基本:Googleスプレッドシートでの作業方法を学ぶGoogleシートの基本:Googleスプレッドシートでの作業方法を学ぶApr 11, 2025 am 10:23 AM

Googleシートのパワーのロックを解除:初心者向けガイド このチュートリアルでは、MS Excelに代わる強力で多目的な代替品であるGoogleシートの基礎を紹介します。 スプレッドシートを簡単に管理し、重要な機能を活用し、コラボレーションする方法を学ぶ

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)