Excel-VBA プログラミング

【VBA】AutoSaveOnでエラー「メソッドをサポートしていません。」の回避処理

VBAでOffice2016から新たに追加されたAutoSaveOnメソッド。しかし、未だ2013以前のPCを利用されている方も少なくありません。

そのため、Office2016やOffice365を利用されている方は、自動保存機能がデフォルトでONの状態になっているため、イベントごとで勝手に保存がかかります。

便利で快適に感じる方が多いかもしれませんが、VBAでそのファイル自体に保存をしたくない場合には、この自動保存機能がデメリットになることがあります。

そこで、本章では、VBA処理時のAutoSaveOnイベントでエラー表示される「メソッドをサポートしていません。」の回避処理について解説していきます。

 

自動保存をかけたくない場合はどんな時?

自動保存をかけたくない場合とは、どんな時にあるのでしょうか?実は、下記のような場合に遭遇しました。

 

<自動保存をかけたくない場合とは>

  • VBAで一部データを削除し別ファイルにデータ保存するが、元ファイルを保存したくない場合

 

 

Office365などでは、自動保存がデフォルトでONの御状態です。

ファイルを閉じる前にも自動保存がかかってしまうため、「VBAでソートかけて、VBAで一部データを削除し別ファイルにデータ保存するが、元ファイルを保存したくない。」場合でも、保存されて、ファイルがクローズされてしまいます。

このように、Office365やShare Point上で、データをダウンロードをする際には、ファイルが自動保存され、一部のデータが消えてしまうということありました。

 

Office2013以前のバージョンで「AutoSaveOnメソッド」を実行した時のエラーメッセージ

Office2013以前のバージョンで「AutoSaveOnメソッド」を実行しても下記のようなエラーメッセージが表示されます。

 

その前に、自動保存を解除するための使い方の詳細は下記で確認しておきましょう。

【VBA】自動保存を解除する!AutoSaveOnとEnableAutoRecoverの使い方https://tarmiyan.net/vba-autosave-del

 

<Office2013以前のバージョンで「AutoSaveOnメソッド」を実行した時のエラーメッセージ>

  • オブジェクトは、このプロパティまたはメソッドをサポートしていません。

 

こんなメッセージが表示されます。

Office2013以前のユーザーやOffice2016以降を利用されるユーザーが存在した場合、Office2013以前のバージョンを利用しているユーザーのみ、このメッセージが表示され、VBAの実行処理は、上記メッセージが上がり、処理が中断されてしまいます。

この問題を回避するためには、制御ロジックを組み込む必要があります。

 

Officeのバージョンが異なるユーザーに「AutoSaveOn」メソッドを切り分ける考え方

AutoSaveOnメソッドは、Office2016以降のバージョンの利用者にしか適用することができません。そのため、効果的な対処法には下記の方法が有効です。

 

【Officeのバージョンが異なる利用者に「AutoSaveOn」メソッドを切り分ける考え方】

  • Officeのバージョン情報を取得する

 

AutoSaveOnメソッドを利用する際には、Office2016以降の利用者であるかどうかを判別するための「バージョン情報」を取得する処理を加えてあげれば、AutoSaveOnメソッドを通さずに、自動保存をかけることなく、処理を流すことが可能です。

 

AutoSaveOnメソッドのエラー回避処理

VBAによるAutoSaveOnメソッドのエラー回避処理は、下記のように記述するとよいでしょう。

 

【解説】

こちらの記述は、マクロが実行された各PCのOfficeのバージョン情報を取得するロジックです。このロジックで、AutoSaveOnのメソッドが利用可能なのかどうか、すみわけを行うことができます。

またOffice2013以前のバージョンでは、自動保存がデフォルトでオフになっているため、こうした問題は起こっていませんでしたが、Office365とSharePointを利用される場合に、こうした問題が発生することが確認されました。

 

まとめ

このように、自動保存は非常に便利でありがたい機能ですが、マクロの機能を利用されている方は、利用の仕方によっては、誤ってデータを消してしまうことにもつながりますので、バックアップ対応とソースの記述に一部注意が必要になることを覚えておきましょう。

 

【VBA】IE操作でボタンをクリックする2つの方法

【VBA】IE操作でボタンをクリックする2つの方法


➡【月3万稼げる!ブログの始め方】


→当ブログをフォローして頂けると励みになります。 


楽天おすすめ商品はこちら

  • この記事を書いた人
  • 最新記事

みやさん

【サイト運営者・著者】みやさん 【実績】ライター歴7年 ブログ歴3年⇒2万PV推移中 【実務】現役プログラマー|【発信内容】▶副業やブログの始め方 ▶ライターとしてのノウハウ ▶生活の有益情報を発信しています。皆様の生活改善にご利用ください。

Copyright© 副業ケアネット , 2024 All Rights Reserved Powered by AFFINGER5.