読者です 読者をやめる 読者になる 読者になる

タルヲシル

ワーキングマザーのエレナのブログです。システム開発の会社に勤めてます。春が好き。

VBAメモ:手動計算を設定するとsavedプロパティがFalseになる

マクロ VBA 仕事

こんにちは。

ワーキングマザーのエレナです。

ポンコツですが、実はシステム開発の会社で働いています。

 

今は一線を退いて裏方に徹しているため、なかなか開発業務に携わることはなくなりましたが、たまにEXCELマクロを読んだり、組んだりすることがあります。

 

マクロ初心者なので、先日解明するのに時間がかかったものを、自分のために備忘録。

 

(ブログ、他の方みたいに、プログラムの表示は綺麗にしたいのですが、勉強不足なのでおいおいやりたいなーという願望はあるんですが。。)

 

なお、マクロ実装時は実装方法の検索から始まった作業なので、オフィスタナカには大変お世話になりました(笑)

 

〈マクロの途中で手動計算を設定すると、アクティブワークブックのsavedプロパティがFalseになる〉

 

最初に結果を話してしまうと、なんだそんなんか、と思われるかもしれませんが、ほんとにしばらく答えが分からなかったんですよね。。。

 

クロ高速化でおなじみのワザ。

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

 

私も設定していたのですが、途中であることに気づきました。

『あれ、ファイルを閉じようとしたら、マクロで特に上書きしていないはずなのに、ファイルを保存しますかと尋ねられるぞ。。。?』

 

マクロを実行するとき、アクティブワークブックがThisWorkBook(マクロ本体)でなくても起動するのですが、

マクロ実行前にアクティブになっていたワークブックが、なぜか処理後保存されていない状態に。

いやいや、このファイルにはなにもセルの上書き操作してないぞ、と。

savedプロパティを試してみても、マクロ実行前はそのファイルはTrue。

上書きしないままでマクロを動かしたわけでないので、なんだ気持ち悪いなーと思っていました。

 

最初、セル操作のWithステートメントの設定もれかな?と思い、変数それぞれの設定行を見てもちがうらしく、むむむとなりましたが。。

 

結局、マクロの記載を上から順に、何処でファイルがsavedのFalseが帰ってくるのか地道に1行ずつ調べた結果。

なんてことはない、計算方法を自動から手動に変更する前後で切り替わっていたのでした。。

 

まあ、たしかによく考えたら、手動計算にしている間に再計算されていないデータがあるかもしれないもんねって思ったのですが、

なにもファイル操作してないのにファイルを保存するか聞かれるのは変じゃないですか?

…あれ、私だけかな。。

 

ThisWorkBook以外はしれっとファイルオープンとクローズをする仕様にしていたので、これで無事に上書きの謎が解決してホッとしました。

 

マクロ奥深すぎて難しいですー。