ソーシャルメディア エクセル2016 VBAスピードのヒント - ダミー

エクセル2016 VBAスピードのヒント - ダミー

目次:

ビデオ: MOS試験対策オンライン通信講座【Excel2013スペシャリスト】エクセル兄さんの最短スピードMOS合格コース 2025

ビデオ: MOS試験対策オンライン通信講座【Excel2013スペシャリスト】エクセル兄さんの最短スピードMOS合格コース 2025
Anonim

VBA for Excel 2016は高速ですが、必ずしも十分速いとは限りません。 (コンピュータプログラムは決して高速ではありません)。マクロをスピードアップするために使用できるプログラミング例を見つけるために読んでください。

画面更新をオフにする

マクロを実行すると、マクロ内で発生するすべてのオンスクリーン操作を後で見ることができます。これを行うことは有益なことですが、マクロが正常に動作した後は、しばしば迷惑になり、マクロのパフォーマンスが大幅に低下する可能性があります。幸いにも、マクロを実行するときに通常発生する画面の更新を無効にすることができます。画面の更新を無効にするには、次の文を使用します。

<! - 1 - >
アプリケーション。 ScreenUpdating = False

マクロの途中で何が起こっているかをユーザーに見せたい場合は、次のステートメントを使用して

アプリケーションの画面更新を元に戻します。

Sub FillRange()Dim rをLongに、cをLong Dim NumberにLong Number = 0とした場合、r = 0の場合はScreenUpdating = True

スピードの違いを示すには、 1〜50の場合c = 1〜50の場合Number = Number + 1 Cells(r、c)。セル(r、c)を選択します。 Value = Number Next c Next r End Sub

選択されている各セルとセルに入力されている値が表示されます。プロシージャの先頭に次の文を挿入し、もう一度実行します。

<! - 2 - >
アプリケーション。 ScreenUpdating = False

範囲がはるかに高速に塗りつぶされ、マクロの実行が完了し、画面の更新が(自動的に)Trueに設定されるまで、結果は表示されません。

コードをデバッグしているときに、画面の更新をオンにしなくても、途中でプログラムの実行が終了することがあります。これにより、Excelのアプリケーションウィンドウが完全に応答しなくなることがあります。このフリーズ状態からの脱出方法は簡単です。VBEに戻り、イミディエイトウィンドウで次の文を実行します。

<! - 3 - >
適用。 ScreenUpdating = True

自動計算をオフにする

複雑な数式を多数含むワークシートを使用している場合、マクロの実行中に計算モードを手動に設定すると、処理速度が大幅に向上することがあります。マクロが終了したら、計算モードを自動に戻します。

次のステートメントは、Excel計算モードをマニュアル:

アプリケーションに設定します。 Calculation = xlCalculationManual

次のステートメントを実行して、計算モードをautomatic:

Applicationに設定します。 Calculation = xlCalculationAutomatic

コードで数式結果のセルが使用されている場合、計算をオフにすると、明示的にExcelに指示しない限り、セルが再計算されません。

これらの厄介な警告メッセージを消去する

ご存じのように、マクロは一連の処理を自動的に実行できます。多くの場合、マクロを開始してから、Excelがその作業をしている間に休憩室に遊びに行くことができます。ただし、一部のExcel操作では、人間の反応が必要なメッセージが表示されます。この種のメッセージは、秘密のトリックを知らない限り、マクロを実行している間はExcelを無人にすることができないことを意味します。

マクロを実行しているときに、Excelにこれらの種類のアラートが表示されないように指示できます。

これらの警告メッセージを回避する秘訣は、

アプリケーションに次のVBAステートメントをマクロに挿入することです。 DisplayAlerts = False

Excelは、これらの種類のメッセージに対してデフォルトの操作を実行します。シートを削除する場合、デフォルトの操作はDeleteです。デフォルトの操作がわからない場合は、テストを実行して何が起こるかを確認してください。

プロシージャが終了すると、Excelは自動的にDisplayAlertsプロパティをTrueにリセットします。手順が終了する前にアラートを元に戻す必要がある場合は、次のステートメントを使用します。

アプリケーション。 DisplayAlerts = True

オブジェクト参照を単純化する

おそらく既に知っているように、オブジェクトへの参照は非常に長くなることがあります。たとえば、Rangeオブジェクトへの完全修飾リファレンスは、

Workbooks( "MyBook。xlsx")のようになります。ワークシート( "Sheet1")_。 Range( "InterestRate")

マクロで頻繁にこの範囲を使用する場合は、Setコマンドを使用してオブジェクト変数を作成することができます。たとえば、次のステートメントは、このRangeオブジェクトをRateというオブジェクト変数に割り当てます。

Set Rate = Workbooks( "MyBook。xlsx")_。ワークシート( "シート1")。 Range( "InterestRate")

このオブジェクト変数を定義した後、長い参照ではなく、Rate変数を使用できます。たとえば、InterestRate:

Rateという名前のセルの値を変更できます。値= 085

これは、次の文よりもはるかに簡単です:

ワークブック( "MyBook。xlsx")。ワークシート( "シート1")。 _ Range( "InterestRate")=。 085 999あなたのコーディングを単純化することに加えて、オブジェクト変数を使用することでマクロの速度が大幅に向上します。

変数タイプの宣言

変数に割り当てるデータのタイプについては、通常心配する必要はありません。 Excelは、あなたのためのすべての詳細を舞台裏で処理します。たとえば、MyVarという名前の変数がある場合、その変数に任意の数の型を割り当てることができます。手続きの後半でテキスト文字列を割り当てることさえできます。

プロシージャをできるだけ速く実行したい場合は、各変数にどのような種類のデータを割り当てるかExcelに指示します。これは、変数の型を宣言する

として知られています。 一般に、最小バイト数を必要とするデータ型を使用する必要がありますが、割り当てられたすべてのデータは引き続き処理できます。 VBAがデータと連動する場合、実行速度はVBAが処理できるバイト数に依存します。つまり、データのバイト数が少ないほど、高速のVBAでデータにアクセスして操作することができます。これに対する例外はIntegerデータ型です。速度が重要な場合は、代わりにLongデータ型を使用します。 オブジェクト変数を使用する場合は、その変数を特定のオブジェクト型として宣言できます。例は次のとおりです。

距離の設定率=ワークブック( "MyBook。xlsx")_。ワークシート( "シート1")。範囲( "InterestRate")

With-End With構造体の使用

オブジェクトのプロパティをいくつか設定する必要がありますか? With-End With構造を使用するとコードがより速く実行されます。さらに、コードを読みやすくすることができます。

次のコードではWith With End With:

Selectionを使用しません。 Horizo​​ntalAlignment = xlCenterの選択。 VerticalAlignment = xlCenterの選択WrapText =真の選択。オリエンテーション= 0選択。 ShrinkToFit =誤選択。 MergeCells = False

With With End With:

With Selectionを使用するように書き直された同じコードです。 Horizo​​ntalAlignment = xlCenter。 VerticalAlignment = xlCenter。 WrapText = True。 Orientation = 0. ShrinkToFit = False。 MergeCells = False End with

With-End Withを使用する場合、各ステートメントがドットで始まることを確認します。

エクセル2016 VBAスピードのヒント - ダミー

エディタの選択

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

Objective-Cでは、作成していないクラスであっても、iOSアプリケーションの既存のクラスに独自のメソッドを追加できます。クラスにメソッドを追加することは、特定の状況でのみ新しい動作が使用される場合に便利です。たとえば、特定のアプリケーション...

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーションの開発では、Objective-Cを使用すると、自分が作成していないクラスであっても、既存のクラスに独自のメソッドを追加することができます。クラスにメソッドを追加することは、特定の状況でのみ新しい動作が使用される場合に便利です。たとえば、特定のアプリケーション(たとえば、...

In App Purchase機能がiPadアプリで動作する仕組み

In App Purchase機能がiPadアプリで動作する仕組み

Apple App App Purchase機能を提供します。これにより、アプリユーザーはアプリ内から仮想アイテムを直接購入することができます。複数のレベルや環境、または仮想プロパティを持つゲームアプリケーションを開発する場合は、アプリケーションにIn App Purchase機能を追加して、レベル、環境、またはプロパティをさらに販売することを検討してください。 App Purchaseで...

エディタの選択

効果的なホームビジネスWebサイトを作成する方法 - ダミー

効果的なホームビジネスWebサイトを作成する方法 - ダミー

素晴らしいかもしれませんが、製品やサービスをさらに販売するのに役立たない場合は、時間とお金の無駄です。自宅のビジネスにとって本物の資産であるWebサイトを構築するための、実証済みの方法をいくつか試してみましょう。難しいことではありません...

マスターCSSファイルを作成する方法 - ダミー

マスターCSSファイルを作成する方法 - ダミー

多くのデザイナーがマスターHTMLコードのCSSファイルを作成し、個々のサイトのニーズに合わせて、最初からウェブサイトを構築するプロセスをスピードアップします。あなたがより多くのウェブサイトを構築するにつれて、いくつかのスタイルは標準的なデザインプラクティスの標準的な部分になります。 ...

MSN adCenterのウェブマーケティングキャンペーンのアカウントを作成する方法 - ダミー

MSN adCenterのウェブマーケティングキャンペーンのアカウントを作成する方法 - ダミー

Bing検索結果と並んでクリック単価(PPC)広告はMSN adCenterを通じて提供されます。 adCenterを使用して、Webマーケティングのニーズに合わせてアカウントとキャンペーンを作成できます。 Microsoftは、Bing Travel、adCenter Desktopなどのプログラムを追加することで、PPCサービスのインターフェース、ツール、検索品質、およびボリュームを向上させるために歩み続けています。...

エディタの選択

地中海ダイエットレシピ:フルーツサラダ - ダミー

地中海ダイエットレシピ:フルーツサラダ - ダミー

果実は地中海で豊富に生育し、地中海沿岸に沿って、アメリカ人より一般的に果実を多く食べるため、地中海の高レベルの疾病予防に貢献しています。あなたの次の食事やパーティーのために健康的なサイドディッシュのフルーツサラダを作るには、いくつかの方法があります。果物は地中海で豊富に生育し、地中海沿岸に住む人々は一般にアメリカ人よりも多くの果実を食べるため、地中海の高レベルの疾病予防に寄与します。

地中海料理ダイスレシピ:クラシックジャイロとピタ - ダミー

地中海料理ダイスレシピ:クラシックジャイロとピタ - ダミー

ジャイロとピタサンドイッチは一般的なカジュアルな食品です地中海でピザや他の地中海のサンドイッチと同じように、今日はピタサンドイッチとジャイロのさまざまなバージョンが存在します。ピタスは蒸気で作られた中央のポーチ付きの丸いパンです。