利用規約の変更について

よろしくお願いします。

エクセル2000を利用して作成したファイル(マクロ、数式有)をエクセル2007で編集して
上書きをします。
編集したファイルを一旦閉じて、再度エクセル2007で開いて編集をして上書きをしようと
すると添付の画像のダイアログが出てきて保存できません。

エクセルの内容は「作成物に対する作業者の工数登録」です。

「A1」という品物に対して作業者の「人(1)」と「人(2)」が2時間づつ作業をしたら合計欄に集計されて
「A1」を作るのに何時間かかったかを計算するようになっています。

怪しいのは「数式」タブの「名前の管理」の中に名前が「B439300」で参照範囲が「=#REF!#REF!」の定義があり、これがどこで利用されているかわからないので怪しいのですが、消しても現象は変わらないので関係ないかもしれません。

ちなみに上書きできない状態になるとエクセル2007の形式「.xlsm」でも上書きできません。

また、最初から「.xlsm」で保存すると保存時に「名前B439300は有効な参照範囲と競合するか、EXCELでは無効です。名前は_B439300に置き換えられました。ただし、VBAコードで参照されている名前や、関数の文字列引数として使用されている名前については、手動での更新が必要な場合があります。変更を反映させるには、ブックを閉じて再度開く必要があります。」 と毎回出てきますし、上書き保存して一旦閉じるとやはり添付の画像と同じものが出てきて保存できません。

どなたかお力をお貸しいただけると幸いです。
よろしくお願い申し上げます。

「エクセル2007で互換モードで上書きでき」の質問画像

このQ&Aに関連する最新のQ&A

A 回答 (2件)

ご推察の通り、B439300の参照範囲の定義が邪魔をしています。


>消しても現象は変わらない
とのことですが、正しく消せば、正常にエクセル2007で保存できると思います。
消し方ですが、<数式>→<名前の管理>と進んで、B439300を選択し、<削除>を押します。
その後、エクセル2007形式で保存して下さい。
********
自分も同様のエラーメッセージが出て、解決策を探しているときに貴殿の質問に遭遇しました。
自分でつけた、UFO1やDEF1といった参照範囲の名前が、悪さをしていることがわかりました。
UFO1やDEF1は、エクセル2007以上では、14367列目や、2840列目の1行目に相当します。
エクセル2003以前では、256列しかなかったので、問題にならなかったわけです。
貴殿の場合、参照範囲が「=#REF!#REF!」になっているということで、ご自分で作成した
参照範囲でなく、何かの時に、偶然コピーされてきた参照範囲だと思います。
ならば、なおのこと、「削除」されても問題ないと思います。
私の場合は、UFO1やDEF1を別の名前に変えなくてはなりません。システムで勝手に直して
くれるのは、先頭にアンダーバーをつけて、_UFO1や_DEF1という名前です。
これをそのまま、使いましょうか。マクロもそれに合わせ変更する必要があります。
    • good
    • 1

2000のファイルを2007形式で保存し、編集後上書きして、ほとんどのマクロはそのまま動くようですが全部のマクロが動くとは限らないと思います。



互換機能パックのダウンロード
参考URL
Update にアクセス

Excel 2000では,OpenXML形式では直接保存できないので、一度.xls形式で保存した後ファイルを右クリック「名前を付けて保存」でOpenXML形式に変換する2段階の手順が必要
http://itpro.nikkeibp.co.jp/article/COLUMN/20061 …

参考URL:http://support.microsoft.com/kb/923505/ja
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q【Excel VBA】ネットワーク上の共有フォルダにあるExcelを開く

Windows XP
Office2003

エクセルVBAにて、ネットワーク上にある共有フォルダ内のエクセルブックを開くコーディングを教えていただけますでしょうか?

開きたいブック:\\共有サーバー\共有\TEST.xls

よろしくお願いします。

Aベストアンサー

Workbooks.Open fileName:="\\共有サーバー\共有\TEST.xls"

http://www.bokuno.biz/program/vba/reference/Workbooks.html
http://officetanaka.net/excel/vba/file/file05.htm
http://t_shun.at.infoseek.co.jp/My_Page/Excel-VBA/vba_page1.htm

Qエクセルのxls形式からxlsx形式の一括変換

エクセルのxls形式からxlsx形式の一括変換、その逆もできますか?

 いつもお世話になっております。

 職場でのパソコンがOffice2003、2007、2010と混在しており、保存されているファイルも拡張子が「*.xls」と「*.xlsx」が混在しています。

 ファイルを開いて、「*.xls」形式を「*.xlsx」形式に形式を選択し、保存しなおししたり、その逆もすることが多いのですが、多くの手間がかかります。(例えば、20個程度のファイルなら20回)
 複数のファイルを一括して変換することはできませんか。

Aベストアンサー

http://qanda.rakuten.ne.jp/qa8152716.html


参照されたし。


とりあえず・・
xlsx形式だと、マクロは保存されません。
xls→xlsxに拡張子変更する場合の最大のデメリットです。
(マクロを使っていないなら気にしなくて大丈夫です。)

逆にxlsx→xlsの場合のデメリットは
行数・列数が減るので、最悪の場合にファイルが壊れる可能性がある
2007以降に追加された機能がある場合、再現できない
(最悪の場合、ワークシートから消える・読み込みできない等)
が挙げられます。


リンク先に私も回答をつけていますが、その処理を急ぐ必要は全く無いです。
職場に2003が存在している以上は、「xls」のままにしておいた方が賢明だと思いますよ。
今後2003(コンバータ無し)で使用する可能性が0%なのであれば良いですけどね。


ちなみに、2007以降でマクロを作れば
ツールが無くても一括処理は可能です。

Qエクセル: セルの枠を超えて表示

エクセル初心者です。
文字列が(そのセルの右隣が空欄のときに)枠を超えて表示される場合と
枠内までしか表示されない場合とがあるのですが、
それらはどこで操作したら変更できるのでしょうか。

どなたかよろしくお願いいたします。。

Aベストアンサー

文字の入っているセルを右クリック
「セルの書式設定」→「配置」タブ→「横位置」を
「標準」か「左詰め」にすると,隣のセルまで文字がはみでると思いますが,
「繰り返し」にすると,文字がはみださなくなると思います。

また,
「横位置」の設定が「標準」のままであっても,
下の方にある「文字制御」の
「折り返して全体を表示する」か「縮小して表示する」
にチェックを入れてもはみださなくなりますが,見かけはかなり変わります。

QEXCEL あるセルに数字が入力されれば既存マクロ実行させたい

ボタン等のグラフィックオブジェクトのマクロ実行は簡単なのですが、
ある位置のセルにデーターが入力されれば、
既存のマクロを自動実行させることできますか?

Aベストアンサー

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
if Range(ある位置) <>"" then call 既存のマクロ名
End Sub

ある位置と既存のマクロ名を変更して使ってみてください。
あと このVBAは 操作するワークシートのほうに記述します。

Q【excelファイルは開くがシートが表示されない・・・】

タイトルの通りですが、excelファイルをダブルクリックすると、開くには開くのですが、シートが表示されません(灰色の画面のまま)
※ファイル→開く から追っていくと開けます

シートが最小化されているわけではありません。
また、ツール→オプションで治す方法もあるようですが、「オプション」が選択できない状態で、これも駄目なようです…。

アドバイスよろしくお願いいたしますm(_ _)m

Aベストアンサー

EXCEL単体で起動させても、「ツール」→「オプション」は使えませんか?
もし、使えるなら
「ツール」→「オプション」→「全般」タブにある「ほかのアプリケーションを無視する」にチェックが入っていたら外しましょう。

単体で起動させても「オプション」が使えないときは補足してください。

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

どうぞよろしくお願いします。

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む

Qレコードを保存するコード アクセスvba

アクセスですが
DoCmd.Save acForm, Me.Name
このコードはフォームを保存するコードですよね?
フォームではなく、レコードを保存するコードはありますか?

Aベストアンサー

フォームのカレントレコードの保存ということですよね。

Docmd.RunCommand acCmdSaveRecord

または、

Me.Refresh

でどうぞ。
Refresh は再読み込みも行われます。


人気Q&Aランキング

おすすめ情報