『マクロのクリア対象が入力規則である場合のエラー』(練乳) お世話になっております。 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で再作成した時点で同シートにリストを移しましたので大丈夫です。 みやほりんさん ご回答ありがとうございます。 どうやらこのサポート情報の原因に該当していないようです。 >また、セルのスタイル(書式設定)の数が多すぎると >条件付書式に設定した数式が原因でご提示のエラーが発生する、 >という情報もネットで見受けられます。 この辺を考えながらいじってみたいと思います。 ※ご返答遅くなり申し訳ございませんでした。 (練乳)