• ベストアンサー

VBAの変数値は翌日へ持ち越せない?

マクロで処理したのを変数に加算していった場合、一度マクロを終了するとまた初期値に戻ってしまいます。 例えば、マクロである伝票のプリントアウトを管理した場合、「累計枚数」の変数を用意したとしても、次の日PCを起動してマクロを実行すると変数は0に戻っています。 記憶して累計していく事は出来ないのですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

セルなどに記録しておいては? セルの記録したら上書きするか聞いてくる のでセルには記録しておきたくない、でしたら、 外部のファイル(テキストファイルなど)に記録して テキストファイルから読込み、テキストファイルへ 記録、としてもいいかもしれません。

popuran121
質問者

お礼

やっぱり外へ出さなければダメですね。

その他の回答 (3)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

1.シートの目立たないセルを変数の値保存用に使用する 2.ランダムファイルorシーケンシャルにINPUT関数で保存する 上記のいずれかですね。 2なら下記のサイトが参考になります。 http://members.at.infoseek.co.jp/kenchan_h/index24.html

popuran121
質問者

お礼

外に記録しておくしか無いみたいです。 参考サイトありがとうございます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

質問の内容が漠然としていて、回答ができないでしょう。 プログラムは、できない、おかしいと言われて、見てない人が、それは原因がこうだと答えられるのは、極く限られたケースでしょう。それほどプログラムの不都合原因の究明は簡単ではない、考えが甘い。 もう少し疑わしい点に自分で絞るべき。 まあ、質問のコードを見られない点が一番回答の障害だと思いますが。 ーー 一般論として、値をVBAで計算し、セルの値として代入すれば、保存等で消えることはない。 しかし関数式を埋め込んだり ブックのOpenイベントで何か初期化等のルーチンが走ったり もありえそう。

popuran121
質問者

お礼

漠然としていてすみません。 マクロ自身に変化を記録して残しておけないのかなぁ、と思いまして。 コードを載せれば、べつの面からのアプローチも有ったかも知れませんが、内部事情が出てしまいそうな記述がアチラコチラに散らばってるもんですから。 ブックのOpenイベントを使ってるので危ないかも・・  (^_^;

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

>一度マクロを終了するとまた初期値に戻ってしまいます マクロが終了しても値を継続する場合はStatic属性で変数を定義すればよいです。以下のマクロを何回か実行してみてください。違いがわかると思います Sub Macro1() Dim wkP As Integer Static wkS As Integer wkP = wkP + 1 wkS = wkS + 1 MsgBox ("Private:" & wkP & " Static:" & wkS) End Sub PCをシャットダウンしたらさすがに引き継げません。 適当なシートのセルに累計枚数を書き込んでおくしかないと思います

popuran121
質問者

お礼

Staticだと稼働中はOKなんですね。 ただ翌日まで持ち越したいので、セルに転記しようかと思います。 ありがとうございました。

関連するQ&A