Excelの自動更新と再計算のトリック

ご参加いただきありがとうございます。すぐにウェルカムメッセージが表示されます。

Excelでデータ接続を自動的に更新し、ワークシートを再計算する方法はいくつかあります。これらのトリックは、Microsoft365のお客様向けのExcelのStockデータ型でより重要です。

通常、Excelは変更すると自動的に更新されます。セルの値。最近では、セルの値は変更されてもExcelがワークシートを更新しない場合があります。つまり、最新のExcelは、Microsoftがまだ完全に適応していない方法で変更されています。

理想的には、 Excelには、「n」秒または分ごとにワークシートを更新する全体的な設定があります。現状では、それを実現するための回避策が必要です。

データの更新または再計算を強制する必要がある場合、または慎重に。

ストックデータタイプ

ストックデータタイプを使用すると、自動的に更新する機能がより重要になります。ユーザーは、ワークシートで緯度を取得する必要があります。推定価格は自動的に設定されます。現在のプレビューリリースでは実行できません。素敵な自動「ティッカー」を使用する代わりに、「更新」をクリックして最新の価格を取得する必要があります。

StockとGeoのデータ型は好奇心旺盛な獣です。これらは外部ソースへのデータ接続ですが、Excelデータ接続としては表示されません。つまり、通常のデータ接続の場合のように、自動データ更新を設定することはできません。実際、StockまたはGeoデータ型の公開されたコントロールはありません。

NOW()およびその他の揮発性関数

NOW()関数は、Excelが常に最新の日時に更新されます。ワークシートを再計算します。しかし、それを実現するものが何もない場合、Now()は値を変更しません。 ExcelでNow()とワークシートの残りの部分を更新するには、いくつかの外部要因が必要です。言い換えれば、ワークシートを一瞥して、それが秒単位であることを知ることができるはずですが、Excelでは「箱から出して」それは不可能です。

VBAカスタム関数は、を使用して揮発性としてタグ付けすることもできます関数コードの次の行:

Application.Volatile

この行により、Excelがワークシートを更新/再計算するたびに関数が実行されます。

特に注意

念のため、ワークシートを自動的に更新したいですか?多くの古いExcelハンドは、Excelが適切に更新されていない状況を覚えているため、「ベルトとブレース」アプローチが好きです(少なくとも時々)。

コード

自動を強制する標準的な方法Excelの更新は、VBAコードの短いスニペットです。これが私たちが使用するものです。同じテーマには多くのバリエーションがあります。完全なコードは記事の下部にあります。

3つの関数があります。

RefreshAllDataConn

データ接続の実際の更新を行い(Workbooks(ThisWorkbook.Name).RefreshAll)、最後に更新された時間を下部のステータスバーに表示する2つのオプションの行を追加しました。

特に注意したい場合は、行を追加して明示的に再計算を強制します。 ActiveSheet.Calculateまたは極端なApplication.CalculateFullのいずれか(これにより、大きなワークシートの速度が低下するため、慎重に使用してください)。

AutoRefresh

毎分RefreshAllDataConnサブを実行するか、設定した値を指定します。行Application.OnTimeNow + TimeValue( “00:01:00″)、 “AutoRefresh”

Workbook_Open

ワークシートを開くと自動的に実行される組み込みのExcel関数。この場合、自動更新が開始されます。

データ接続の回避策

VBAアプローチの欠点は、.xlsmワークシート(マクロ対応のExcelワークシート)が必要なことです。セキュリティ上の懸念から、マクロ対応ファイルの共有で問題が発生する可能性があります。

PowerQuery / Get and Transformの登場により、ワークシートの再計算を強制する別の方法があります。これは回避策であり、完全ではありませんが、可能であり、マクロ対応のワークシートは必要ありません。

つまり、自動更新を使用してデータクエリを設定していることを確認してください。データ接続がない場合は、ワークシートに小さな接続を追加します。

自動更新クエリを実行すると、揮発性関数を含むワークシートも更新されます。

理想的には、StockおよびGeoデータ型も更新する必要があります。

Excelデータクエリには、Queryプロパティにいくつかの更新オプションがあります。それらのほとんどはデフォルトでオフになっています。

nnn分ごとに更新–デフォルトでは60分が推奨されます。

ファイルを開くときにデータを更新する

バックグラウンド更新を有効にする

すべて更新時にこの接続を更新する

自動更新の回避策は、小さくて実質的に重要でないものを作成することです。データの接続。次に、そのデータ接続を構成して、毎分または任意の時間に更新します。これにより、上記の揮発性関数を含むワークシートが強制的に更新されます。

この回避策の一部のバージョンでは、同じコンピューター上の小さなcsvファイルへのリンクが追加されています。ワークシートのテーブルからのデータ接続を使用しても同じ結果が得られます。

単一のセルを持つ小さなテーブルを作成します。セルには何でも含めることができますが、後で説明する理由から、NOW()を含むセルを作成します。

テーブルを選択し、[データ]、[データ]の順に選択します。データを取得|他のソースから|テーブル/範囲から。正確なメニュー項目は、Excelのバージョンによって異なる場合があります。

クエリエディタが開いたら、閉じてロードするだけです。 。データ接続ペインにクエリが表示されます。

クエリを右クリックし、プロパティを選択して、必要な設定。

自分に合ったリフレッシュレートを設定します。

整理するために、ロードされたクエリ(左)でソーステーブル(右)を同じシートに移動します。ソーステーブルのセルでNOW()を使用したため、ワークシートがいつ更新されたかを簡単に確認できます。

VBAコードの例

Sub RefreshAllDataConn() " Refresh all Data Connections. " This should include Stock and Geo data types, even though they aren"t listed. Workbooks(ThisWorkbook.Name).RefreshAll " Show update time on status bar to confirm. " comment these lines out if not needed. Application.DisplayStatusBar = True Application.StatusBar = "Refreshed at: " & Now()End SubSub AutoRefresh()" to run a Refresh All on the workbook every n minutes RefreshAllDataConn " Repeat every minute or change to whatever value you prefer. Application.OnTime Now + TimeValue("00:01:00"), "AutoRefresh"" this is a simple example. There"s no coded way to exit this function.End SubPrivate Sub Workbook_Open()" Starts the automatic refresh when the workbook is opened," commented out as a precaution. " AutoRefreshEnd Sub

自動Excelワークシートリストまたは目次を作成する

休日を含む完全なExcelNetworkDays()ソリューション&休暇

ご参加いただきありがとうございます。すぐにウェルカムメッセージが届きます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です