[[20130516143210]] 『マクロのクリア対象が入力規則である場合のエラー』(練乳) ページの最後に飛ぶ

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

 

『マクロのクリア対象が入力規則である場合のエラー』(練乳)

お世話になっております。
excel2003 Windows Vistaです。

入力フォーム(シート)があり、そこに入力したテキストや値が別シートに登録・更新できるマクロがあります。(検索で入力フォームに読み込むこともできます。)

そして、入力フォームクリアというボタンもあります。
入力フォームに入力したデータをクリアするマクロですが、
入力フォームのセルに、入力規則でリストを作成した場合、
保存するときにエラーが出ます。

『保存するファイル形式で利用できない関数が含まれているため、セルの数式を変換できませんでした.........』

無理矢理続行すると保存でき、データ的に支障はないのですが、エラーが出ないようにできないでしょうか??

ちなみに、2010ではこのエラーは出ませんでした。
(必要に迫られ、2003で作成しなおしております。)

参考に、コードを部分的に抜粋しておきます。
以上、宜しくお願い申し上げます。

 Option Explicit
 Const 入力フォーム_IDセル = "B6"
 '//---------------------------------------------------------------------------
 Function セル対応()
 '//---------------------------------------------------------------------------
    セル対応 = Array( _
        Array("A", "B6"), Array("B", "B7"), Array("C", "B8"), Array("D", "B9"), Array("E", "B11"), _
        Array("G", "B12"), Array("I", "B13"), Array("J", "B14"), Array("K", "B15"), Array("L", "B16"), _
        Array("M", "B17"), Array("N", "B18"), Array("O", "B19"), Array("P", "B20"), Array("Q", "B21"), _
        Array("R", "B22"), Array("S", "B23"), Array("T", "B24"), Array("U", "B25"), Array("V", "B26"), _
        Array("W", "B27"), Array("X", "B28"), Array("Y", "B29"), Array("Z", "B30"), Array("AA", "B31"), _
        Array("AB", "B32"), Array("AC", "B33"), Array("AD", "B34"), Array("AE", "B35"), Array("AF", "B36"), _
        Array("AG", "B37"), Array("AH", "B38"), Array("AI", "B39"), Array("AJ", "B40"), Array("AK", "B41"), _
        Array("AL", "B42"), Array("AM", "B43"), Array("AN", "B44"), Array("AO", "B45"), Array("AP", "B46"), _
        Array("AQ", "B47"), Array("AR", "B48"), Array("AS", "B49"), Array("AT", "B50"), Array("AU", "B51"))
 End Function
 '//--------------------------------------------------------------------------------
 Private Sub 入力フォームクリア()
 '//--------------------------------------------------------------------------------
    Dim 前の状態
    前の状態 = Application.ScreenUpdating
    Application.ScreenUpdating = False
    Dim セル位置
    For Each セル位置 In セル対応()
        Worksheets("入力フォーム").Range(セル位置(1)).ClearContents
    Next
    Application.ScreenUpdating = 前の状態
 End Sub


(練乳)

追記ですが、マクロは正常に働いています。


 2003の環境が無いので、よくわからないのですが
 >保存するファイル形式で利用できない関数が含まれている
 って事は、2003の環境では使えない設定があるって事では?

 でしたら、それを解消するのがあるべき姿じゃないかと思いますが。。。
 2003で使うのですよね?

 それから、「マクロだからエラー」なのか「マクロでなくてもエラー」なのか
 どちらなんでしょう?
 後者の様な印象がありますが。

 (HANA)

HANAさん

コメントありがとうございます。
『マクロだからエラー』なのかと思います。

コメントを頂き、色々考えさせていただきましたところ、
エラーが出るのであれば、『入力規則以外での記入方法を考えればいい』
と思いました。

ご教授ありがとうございました。


 >『マクロだからエラー』なのかと思います。
 ちょっと不明瞭な表現に感じます。
 実際に手作業にて、そのファイル形式で保存してみれば、
 ハッキリ言えることではないですか?

 (半平太) 2013/05/17(Fri) 16:20

 >参考に、コードを部分的に抜粋しておきます。 
 で載せられているコードが、「入力フォームクリア」なので

 リストから選択出来る入力規則が設定してあるシートで
 「入力フォームクリア」を実行してセルの値を削除すると
 保存時にエラーが出る。

 のかと思ってましたが、よく見ると
 >入力フォームのセルに、入力規則でリストを作成した場合、
 ですね?

 「入力規則を設定する」マクロがあって、
  それを実行後 保存時にエラーが出る
 ですね?

 でしたら、そのコードを載せてもらわないと。。。

 リストの元の値が、別シートを参照する様な設定になってませんか?
 ↓(4) 注意 の所を見て下さい。
http://www.excel.studio-kazu.jp/lib/e2k/e2k.html

 2003以前では、直接別シートを参照させることができませんので
 色々な対策が必要になります。

 (HANA)

 ・・・って思って勢いで投稿しちゃったけど
 違ったかなぁ〜。

 タイトルが
 >マクロのクリア対象が入力規則である場合のエラー
 だしな。。。

 でも『マクロだからエラー』ってのはなぁ。

 (HANA)

 【参考】
[[20040506111414]] 『保存するファイル形式で利用できない関数』(ホクママ)
上記で紹介されているマイクロソフトのサポート情報に該当しませんか
[XL2002]古いバージョン形式でファイルを保存した場合にエラー発生
http://support.microsoft.com/default.aspx?scid=kb;ja;215281
 
また、セルのスタイル(書式設定)の数が多すぎると
条件付書式に設定した数式が原因でご提示のエラーが発生する、
という情報もネットで見受けられます。
 
(みやほりん)

HANAさん

色々ご投稿ありがとうございました!!

>リストの元の値が、別シートを参照する様な設定
ですが、この問題に直面する前に頭を悩ませた問題でしたw
これは2003で再作成した時点で同シートにリストを移しましたので大丈夫です。

みやほりんさん

ご回答ありがとうございます。
どうやらこのサポート情報の原因に該当していないようです。

>また、セルのスタイル(書式設定)の数が多すぎると
>条件付書式に設定した数式が原因でご提示のエラーが発生する、
>という情報もネットで見受けられます。

この辺を考えながらいじってみたいと思います。

※ご返答遅くなり申し訳ございませんでした。
(練乳)


コメント返信:

[ 一覧(最新更新順) ]


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