[[20120509112520]] 『印刷ごとに番号の更新をしたい』(なな) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『印刷ごとに番号の更新をしたい』(なな)

はじめまして。

宜しくお願いいたします。

もう10年位前に自分で作ったエクセルのシートを使用していたのですが、なぜだかマクロが聞かなくなりました。

該当のものは↓↓

Sub 印刷後F1の数値プラス1()

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Range("k3").Value = Range("k3").Value + 1

End Sub

印刷すると自動的にK3のセルにある数字が1増えるものです。
例えば現在1だとすると

印刷→2、印刷→3、印刷→4となっていました。
ずいぶん昔に作ったままなので、今見ても自分で治せず問題が何処にあるかも分からず・・・

どなたかお分かりになる方いらっしゃいましたら、問題の箇所の訂正か新たな方法をお教えいただけましたら幸いです。

宜しくお願いいたします。

(参考までに、もう10数年書いてませんのでまったくの初心者状態です。)


Selectedsheetsだと選択されたシート全てを印刷しますが、
値の加算がされるのはアクティブなシートだけじゃ
ないかな。
「利かなくなる」という点は印刷しても加算が
されないという点でしょうか?

(みやほりん)


こんにちは、みやほりんさん。

10数年ぶりですね、このマクロみやほりんさんに教えてもらったものです(笑)

そうです、印刷しても加算されなくなりました。
印刷はアクティブなシートだけでよいのです。(sheet1)
昨日までは普通に使えていたのですが、別の新しいブックにも使おうとコードをコピーしたら、
その後使えなくなりました。
コピーが原因のようにも思えないのですが・・・。

宜しくお願いいたします。


>このマクロみやほりんさんに教えてもらったものです(笑)
え゛っ?
申し訳ない、ぜんぜんっ記憶にないです(笑)
10年前は回答していなかったような気もするんですけど。

こちらの検証ではRange("k3").Value = Range("k3").Value + 1は
実行されるので特に問題はなさそうですが・・・
エラーが出るわけでもなく、ただ加算だけがされない、というのは
納得がいかない現象。

このプロシージャが標準モジュールに記載されているとして、
Range("k3").Value = Range("k3").Value + 1
このステートメントは
[ActiveSheet.]Range("k3").Value = [ActiveSheet.]Range("k3").Value + 1
と、ActiveSheetプロパティが省略されている形です。
SelectedSheetsは複数シートをグループ化して処理するときにも有効なコードですが、
その場合は、特定のシートがアクティブであるとは限らない、というところが注意点。
(思っていないシートでこの処理がなされている可能性はないか?)

Worksheets("Sheet1").Range("k3").Value = Worksheets("Sheet1").Range("k3").Value + 1
のように、具体的にシートオブジェクトを取得しておくことを
まず試してみてください。

(みやほりん)(-_∂)b


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.