EXCEL置換で数式を文字列に変換し、戻す方法を教えてください

このQ&Aのポイント
  • EXCELで日報を作成する際、外部ファイルを参照した数式を使用しています。しかし、数式の外部リンクを削除するために文字列に変換し、再び数式に戻す際にエラーが発生しています。どのように置換すれば正しく変換できるでしょうか。
  • EXCELで日報作成に外部ファイルを参照した数式を使用していますが、ファイルを開くたびに「安全でない外部ソースが含まれています」というメッセージが表示されます。メッセージを非表示にする方法はありますか?
  • EXCELで作成した日報ファイルに外部リンクが含まれていますが、ファイルをセキュリティのため無害化サイトを通して入手する際に、外部リンクが削除されてしまいます。外部リンクを保持したまま、ファイルを無害化する方法はありますか?
回答を見る
  • ベストアンサー

EXCEL 置換について

教えてください。 日報を作るため、外部ファイルを参照した数式を使ったファイルを作成しました。(日報フォルダの中に個人名ファイルと月間集計ファイルがあります。月間集計ファイルから個人名ファイルを参照しています。) 1.月間集計ファイルを開くと「このブックには、安全でない可能性のある外部ソースが1つ以上含まれています。」とメッセージが表示されます。 リンクの編集から値の更新を選択し、OK表示がされても、次回は必ず不明になります。 起動時の確認で「メッセージを表示しないで、リンクの自動更新を行う」にすれば表辞されなくなりますが、気になります。 2.職場で使用したいのですが、セキュリティーのためファイルを無害化するサイトを通してからパソコンに入れるのですが、外部リンクがある数式は削除されてしまいます。 そこで数式をいったん文字列(=を’=に)置換し、それをまた数式に戻すために’=を=に置換をかけたのですが、一致するデータが見つかりませんとなり置換することができません。 文字列を数式に置換するにはどうすればできるでしょうか。 以上ご存じの方がいらっしゃいましたら、お教えください。

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.3

タブ区切りのテキストファイルに書き出し このテキストファイルを上書きする対応はいかがでしょうか。 具体的には以下です。 ・有効なセル範囲を選択し、右クリックしてコピー ・メモ帳を開き、メモ帳に貼り付け ・メモ帳に貼り付けたテキスト全体を選択し、右クリックしてコピー ・有効なセル範囲を選択し、テキストを貼り付ける

96momo
質問者

お礼

ありがとうございました。 解決いたしました。 置換にとらわれていて、簡単なことのようで奥が深いですね。 柔軟に考えないと。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

特殊な問題で、十分経験を積んでない者=小生の回答例ですが 参考にして、自己責任で、考えてください。 ーー アクチブにしている1シート分で Range("A1:G50")は適当に広げてください。 Msgboxの行は、用済み後、省いてください。 標準モジュールに Sub test01() For Each cl In Range("A1:G50") If cl.HasFormula = True Then MsgBox cl.Address cl.Value = "'" & cl.Formula End If Next End Sub これで式が文字列になります。 ーー 数式に戻すのは Sub test02() For Each cl In Range("A1:G50") If Left(cl, 1) = "=" Then MsgBox cl.Value cl.Formula = "=" & Right(cl.Value, Len(cl.Value) - 1) End If Next End Sub 先頭のアポストトフィはないものと考えてよいようです。 これは、LOTUS由来の「接頭辞」。 参考 Googleで「エクセル 先頭のアポストトフィ」で照会 ーー 小数でしかテストしてないので、 十分テストなどして、納得すれば使ってください。小生は使用実経験なし。 ーー  参考 別件で小生は、20年前に、質問の一部が似た例で、回答してました。 https://oshiete.goo.ne.jp/qa/402130.html

96momo
質問者

お礼

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

96momo
質問者

補足

お返事ありがとうございました。 残念ながらマクロも使用できないんです。 なので計算式が複雑で、入力し直し辛い状態です。

  • hiro_1116
  • ベストアンサー率30% (2364/7656)
回答No.1

1.について「気になります」と書かれていますが、ご質問は何でしょうか?「メッセージを表示しないで、リンクの自動更新を行うにすれば表示されなくなります」という解決策はご自身で既に見出されているようですが。 2.会社のPCにファイルを入れてから、式の部分を(そのPCでExcelを起動して)入力するのではダメでしょうか?

96momo
質問者

お礼

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

96momo
質問者

補足

早速の回答ありがとうございます。 1 に関しては見えなくするだけで良いのか?ということです。 2に関しては 非常にたくさんのファイル数式があり手入力は難しい事。 私はシステムを作るだけで、運用は別の部署という事で使用現場には行けない。 この二点のハードルがあるため置換と思ったわけです。

関連するQ&A

  • エクセル 置換中の値の更新

    01月→02月と置換をしたいのですが、ネットワーク内の他のシートやファイルを参照するため(他のPCから入力してもらう日報等)、1つ置換するたびにそのシートを参照しているようで非常に時間がかかっています。(1シート10万個ほど置換する必要があるファイルもあり・・・) 「置換だけ先に実行する方法はないでしょうか?」 シート名が同じファイルがあるため参照するシートを先に読み込んでおくことも出来ず・・・集計する項目が増えたり年度末は置換作業が多く、置換したまま帰宅→次の朝PCフリーズ・・・というトホホな状態が続いております。 皆様の知恵をお貸しください。宜しくお願いします。

  • エクセルの置換について

    セルに次のような数式が入っているときに数式の部分だけ置換する方法がありましたらご指導お願いします。 [B1] =SUM(A1+A2) →置換後 =A1+A2 [B2] =SUM(A10+A20) →置換後 =A10+A20 [B3] =SUM(A100+A200) →置換後 =A100+A200 置換する方法は「編集」-「置換」で 検索する文字列と置換後の文字列が分かりません。 SUM(で置換をかけると数式エラーで置換が出来ず SUM(*)で置換をかけると当然ですが全て消えます。 お手数ですが宜しくお願致します。

  • Excelの置換がうまく出来ません。

     Excelである文字列を検索しようとすると、ちゃんと検索できるのですが、それを別の文字列に「置換」しようとすると「一致するデータが見つかりません」のメッセージが出て置換できません。「一致するデータ」がちゃんと存在するにもかかわらずにです。  ところが「すべて置換」にするとちゃんとすべてその文字列が指定の文字列に置換出来てしまいます。  即ち、ちゃんと置換すべき文字列が存在するにもかかわらず「置換」だけが実行されないのです。  これってどうゆうわけでしょうか?  私としては、「すべて置換」ではなく、一つ一つ確認しながら文字列の置換を行いたいのですが・・・私のやり方が悪いのでしょうか?  尚、ここで言う「文字列」とは狭い意味のそれではなく、数値・記号を含む全ての文字と言う意味です。

  • 数式中の参照先のシート名の置換について

    先日、ブック間コピーによる数式の置換について質問をし、色々ご回答をいただくも結果が得られなかった者です。 ひとつの実験として、コピー前のシートで数式の参照名を置換してみてもダメだったので、数式の=の前に#を入れてやってみました。 参照先の「東京データ」を「大阪データ」と置き換えることはできたのですが、#=から=への置換ができません。この置換をしようとすると、先日ご回答をいただきながら出来なかった<リンク元の変更>の操作と同様の画面が現れ、結果ダメでした。 数式を単純に文字列として扱う方法はないのでしょうか?

  • エクセル外部リンク参照について

    エクセル外部リンク参照についての質問です。 vlookup関数で、範囲を指定するときに、シート・ファイル名をセルに入力した文字から判別させたいので、INDIRECT関数を使用したのですが、これだと参照元のファイルを閉じるとエラーになってしまい、 また、外部リンクの更新もできません。 外部リンクの更新が可能で、シート・ファイル名はセルに入力された文字を参照し、 vlookup関数のように検索値から値を返せる方法はありますでしょうか。 ※現在入力している数式を添付させて頂きます。

  • < >を含む文字列のエクセルでの置換について

    < >を含む文字列のエクセルでの置換についておしえてください。 < や >を含むhtmlの文字列のSUBSTITUTE置換で悩んでいます。 < や >は数式の大なり、小なりと認識されるので置換ができないということですよね? これを置換するいい方法はないのでしょうか? たとえばhtmlテキストに含まれる<table width="800">という文字を <table width="600"><h1>時計</h1>に置き換えたいというような感じです。 エクセルに詳しくないもので出来るのかどうかよくわかりませんが とても困っているので教えていただけましたら助かります(>_<) よろしくお願いいたします。

  • EXCELマクロを用いてグラフの系列の参照元を置換

    タイトルの通りですが、エクセルでマクロを用いて、グラフの系列の参照元であるリンク数式を置換する方法を探しています。 エクセルでグラフを作成した時に"元のデータ"を見ると、"系列"タブの中に"名前"、"Xの値"、"Yの値"を指定するテキストボックスがありますよね? あの中に書いてある文字列を置換したいんです。 以下の手法で作ってみたのですが、 『実行時エラー '13': 型が一致しません。』 というエラーが出てしまいます。 Sub Macro() Dim BeforeValue Dim AfterValue BeforeValue = "ここに置換元文字列を入れます" AfterValue = "ここに置換後文字列を入れます" For Each Value In ActiveChart.SeriesCollection With Value .XValues = Replace(.XValues, BeforeValue, AfterValue) .Values = Replace(.Values, BeforeValue, AfterValue) .Name = Replace(.Name, "BeforeValue", "AfterValue") End With Next Value End Sub 原因は.XValuesや.Nameがリンク数式を評価した後の値を配列で保持しているためだと思います。 そこで.XValuesや.Nameが保持しているデータが入っていたセルのアドレスを探すか、 あるいは.XValuesが評価している、元のリンク数式を保持しているプロパティ(か何か)を探せば文字列として置換できるのではないかと考えているのですがいかがでしょうか? "元のデータ"を開いた時にもちろんリンク数式が表示されるので、どこかにリンク数式が文字列として保持されているはずだと思うのですが…。 このプロパティについて何かご存知の方、あるいは違う方法をご存知の方いらっしゃいませんでしょうか? もしかしたら全然的外れの事をしているかもしれません。マクロを触り始めて日が浅いもので…。 その辺りの初心者的ミスも含めて間違い等、指摘して頂ける方でも結構です。 動作環境は OS:Win2000 EXCEL2003 VB6.5 です。 何かお分かりになる方、よろしくお願い致します。

  • excel 数式に含まれている名前を置換するには、

    こんにちは、 excelで、別EXCELからリンク貼り付けした数式に含まれているセルがあります。その数式内にあるファイル名を置換したいのですが、多数のセルがあるので一揆にできないかと考えています。何かいい方法がありましたら教えてください。 例) faile01.xls    file02.xls(参照元) A1:「\file02.xls\A1」 A2:「\file02.xls\A2」 A3:「\file02.xls\A3」 という数式が入っている。 上記で、使途全体より数式内にあるfile02.xlsを一気にfile03.xlsに変更する。 よろしくお願いします。 A1:

  • Excelの式の一部を一括で置換する方法について

    Excelの別のファイルにリンクしている式を一括で置換する方法を探しています。 数式の一部なので、置換やオートフィルを使ってもうまくいきませんでした。 方法がありますすでしょうか? '\\●●\集計のマスター\●●集計\●●2008年10月\[●●2008年10月上期.xls]1日'!C$3 ='\\●●\集計のマスター\●●集計\●●2008年10月\[●●2008年10月上期.xls]2日'!C$3 と連続している式の「10月」というところをすべて「11月」に入れ替えたいのですが、ひとつひとつをやっていては切りがありません。 良い方法をご存知でしたら、お教えください。

  • 「#REF!」が置換できない

    エクセル2010です。 シート内の「#REF!」を置換しようとしたら 「入力した数式は正しくありません」となり置換できません。 でも検索はヒットします。 置換後の文字列を何にしても同じです。 どうして「#REF!」は検索は出来ても置換できないのでしょうか?

専門家に質問してみよう