アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBAにて工程表の自動作成マクロを作成したのですが、社内で他の方にお試しで利用してもらったところ、途中で処理がエラーとなってしまいました。

予想ですが、エクセルのバージョンに問題があるのではないかと思っています。

・作成時~エクセル2000
・エラーが発生したバージョン~エクセル2010

他の2000使用者にも実行してもらったところ、問題なく処理が行われました。

社内には2000と2010が混在しているので、どちらでも使用できるようにしたいのですが、解決方法はありますでしょうか?

ちなみに2010で実行したら、カレンダーを作成している最中に「応答なし」が表示され、画面上の処理がフリーズします。
その後に、テキストボックスを指定して、特定のセルに移動させる処理があるのですが、指定したテキストボックスが存在しないというエラーが返ってきて、処理が中断します。(画面のカレンダー作成は正常に終わってました)
エラーとなる前にも他のテキストボックスを移動させているのですが、そちらは正常に処理されています。
2010でマクロ実行前に問題となっているテキストボックスを選択して名前を確認しましたが、間違ってはいませんでした。

分かり難い説明で恐縮ですが、何らかの解決方法をご提示していただけると幸いです。

A 回答 (2件)

>>存在しないというエラー<<


が出ているのですから
>>テキストボックスを選択して名前を確認しましたが、間違ってはいませんでした。<<
その思い込みが失敗の原因ではないかと思います。

 半角、全角、スペース、実際の名前など
名前をコピーして貼り付けて使うとか、
セルにでも書き出して比べるとか、
メモ帳に貼り付けてみるとかして
確認しないと気づかない場合があります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
原因は思い込みでした。
数字の半角と全角に違いがありました。
2000の環境では問題なく動いていたので、信じて疑わなかったです。

問題なく使用できるようになったので、助かりました!
ありがとうございます。

お礼日時:2013/03/11 10:53

>ちなみに2010で実行したら、カレンダーを作成している最中に「応答なし」が表示され、画面上の処理がフリーズします。



時間がかかるのなら Application.ScreenUpdating や Application.StatusBar を使った方がいいかと。

Sub test()
' 画面更新を抑制
Application.ScreenUpdating = False
Application.StatusBar = "処理中です。しばらくおまちください。"
' 注 ステータスバーを変更する処理は時間が掛かるので、頻繁に変更するとマクロの処理時間が長くなります。

' 処理を記述

' ステータスバーと画面更新を元に戻す
Application.StatusBar = False
Application.ScreenUpdating = True
End Sub

>その後に、テキストボックスを指定して、特定のセルに移動させる処理があるのですが、指定したテキストボックスが存在しないというエラーが返ってきて、処理が中断します。

指定の仕方がまずいのでは?
厳密に Sheet1.TextBox1.Value のように指定してみてはどうでしょうか?

あとは、ありがた迷惑なセキュリティ関係かもしれませんね。
セキュリティ設定を変更して実行してみてはどうでしょうか?

・ActiveX のセキュリティ設定
・マクロのセキュリティ設定
・外部コンテンツのセキュリティ設定

セキュリティ センターのオプションと設定を表示する
http://office.microsoft.com/ja-jp/excel-help/HA0 …

ご参考いただければ幸いです。
(Excel 2000, 2010 とも私の手の届かない環境なので間違いがありましたらご容赦ください。)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
処理画面を抑制したらすぐに処理が終わり、「応答なし」の表示が出なくなりました。
PC関係に無知な方々が使用するので、これで安心して使用してもらえます。

テキストボックスのエラーにの原因は思い込みでした。
数字の半角と全角に違いがありました。
2000の環境では問題なく動いていたので、信じて疑わなかったです。

問題なく使用できるようになりました!

お礼日時:2013/03/11 10:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!