• ベストアンサー

Excelのシートに隠し文字列を持たせたい

Excel2007を使用しています。 マクロを使用して、特定のシートだけ、 特定の処理を行わせたいと思っています。 そのときに、隠し情報を持たせたシートだけを対象にしたいのですが、 どのようにしたら良いかが、分かりません。 ※タイトルにある「隠し文字列」を持たせる方法でなくても構いません。 どのように実現させたら良いのでしょうか? アドバイス頂けませんか? よろしくお願いいたします。

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

  • ベストアンサー
  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

シートのオブジェクト名として文字列を持たせてはどうでしょう。 シートのプロパティの(オブジェクト名)を変更します。 マクロで使用する場合の例としては以下のようになります。 例:目次シートのA1を選択 目次シート.RANGE("A1").SELECT これで見た目を変えず情報を持たせることが出来ると思います。

rock123
質問者

お礼

オブジェクト名にすることにしました。 マクロでも都合が良かったですので。 ご回答ありがとうございました。

その他の回答 (3)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.4

思いつきのレベルですがとりあえず・・・ <シートに記録する案-1>  最も簡単な方法  使用しないセルに地色と文字色を同じにしておいて記録 <シートに記録する案-2>  1だと間違ってそのセルを操作される可能性もないとは言えないので  使用しないセルに記入し、その列(または行)を非表示にしておく <シートに記録する案-3>  2でも誤って消去する可能性はあるので・・・  コントロール(ラベルでもテキストボックスでも可)をおき、そのテキストを隠し文字とし、VisibleをFalseに設定  編集モード(デザインモード)から出ると非表示になります。 <別表に記録する案>  隠し文字列用シートを用意し、シート名と隠し文字列の対照表を作成する。このシートを非表示にしておく。  ただし、シート名をそのまま記録すると、ユーザがシート名を変えたときに参照できなくなるので、シート名はそのシートのA1セルを参照する式などとして記録しておく。(これにより、シート名変更時もエクセル側で整合を保ってくれる) 他にも、コメントを利用するとか、ファイルのプロパティを利用するとか、いろいろありそうですね。 お薦めは最後の別シート案かな。

rock123
質問者

お礼

今回はオブジェクト名で設定することにしましたが、 別表を作成できるのであれば、 別表がきれいですね。 ご回答ありがとうございます。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

各シートのA1に実行のフラグ(1[隠し文字])を立てる場合は Sub MACRO() Dim ST As Object For Each ST In Worksheets  If ST.RANGE("A1") = 1 Then   特定の処理  End If Next ST End Sub 一枚のシートに実行するシート名を設定する場合は Sheet1でA列にシート名、B列に実行のフラグ(1)として Sub Macro()  Dim RG As Range  For Each RG In Worksheets("Sheet1").Range("A:A")   If RG = "" Then Exit For    If RG.Offset(0,1) = 1 Then     Worksheets(RG.Value).Active     特定の処理    End If Next RG End Sub

rock123
質問者

お礼

上の例ではA1、下の例ではB1の値を 見て判断するのですね。 これでは、ユーザーの見た目が変更となってしまいますね。 シートの見た目(値など)を変更したくなかったので、 オブジェクト名で判断することにしました。 ご回答ありがとうございました。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

質問の意図がイマイチ理解できません。 >Excelのシートに隠し文字列を持たせたい >そのときに、隠し情報を持たせたシートだけを対象にしたいのですが フォントカラーを白にする? 行、あるいは列を非表示にする? シートを非表示にする? ”隠し文字列” ”隠し情報” とはどういうものでしょうか。

rock123
質問者

お礼

ご回答ありがとうございます。 説明が悪くて申し訳ございません。 シートの名称や、色は変更したくないのです。 ユーザーからの見た目は全く変えずに シートに情報を持たせたいのです。 このシートは「目次のシート」です。 このシートは「詳細のシート」です。 などという具合に。。。 この場合の「詳細のシート」のシート名はバラバラでして、 シート名から判断することはできません。 この状態で、シートに隠し情報を持たせることで、 「詳細のシート」を判断したいのです。 説明は伝わりますでしょうか? よろしくお願いいたします。

関連するQ&A

  • エクセル VBA 特定の文字列

    エクセル VBA 特定の文字列 A列に、様々な文字列があるとします。 そのうち、りんごと書かれている行のみを別シートに書き出すマクロを教えてください。 お願い致します。

  • Excelでの文字列抽出

    Excelで文字列の抽出とそれを並べる方法を教えてください。 関数だけを用いて実現できるのか、マクロを使わなければできないのかも分かりません。 この関数をこの様に使えばよいというのを教えていただけると幸いです。 やりたいことは、下記条件で、シート2のB列にシート1のG列~P列までに登録されている担当者名に該当するB列の店名を4店まで抽出したいのです。 分かりづらくて申し訳ございませんが、よろしくお願い致します。 ------------------------ シートが2枚(シート1/シート2)あります。 シート1  B列は4行毎に結合されており、店名が登録されています。  G列~P列までは1行目は担当者名、2,3,4行目は補足情報が登録されています。  シート2  A列に担当者名が入っています。(4行毎に結合しています)  B列にA列の担当者名に該当する、シート1の店名を4店まで登録したい。

  • Excel2007で、特定のセルに入っている文字列と同じ名前のシートが

    Excel2007で、特定のセルに入っている文字列と同じ名前のシートが、同じブック内にあるかどうかを調べたいのですが、方法がわかりません。ご存知の方がおられましたらご教示いただければ幸いです。どうぞよろしくお願いいたします。

  • エクセル ある文字列を入れるとある文字列を返す

    エクセルでの関数、ど素人です。一応自分で調べたのですが、無理なので質問させていただきます。よろしくお願いいたします。 エクセルで、時刻ですが文字列として1745~2345までを手入力します(1745,とか2000とか2330とか。。。。。) 入れた文字列によって、すぐ横のセルに1745、1800、1815であれば8.00、1830からは0.25刻みで8.25、1845であれば8.50、1900であれば8.75。。。。2330であれば13.25、2345であれば13.50と言ったように、入力した文字列に対しある特定の文字列を自動的に入れたいのですが、どのような関数を使えばよろしいのでしょうか。 私が行おうとしたのは、別シートに文字列一覧を作り、if(特定のセル(手入力するセル)=別シートの1745~2345まで、横のセル=別シートの8.00、8.00、8.00~13.50まで)や、sumif、lookupを使ってみましたが撃沈です。 どなたか教えていただきたく、お願いいたします。

  • Excel2007の文字列比較の方法について

    Excel2007の文字列比較の方法について とあるExcelシートがあり、A列、B列があるとします。 値は以下のとおりです。 A B ------ tom tom ema ben sin ken ここでA列を軸にB列を1行目から精査し、一致する値があれば、 A列の値はxxxxにしたいと思います。 A B ------ xxxxtom ema ben sin ken このロジックを実現するには、 マクロを使用が必要でしょうか?。 またどういった関数などを使用すれば良いでしょうか。 アドバイスをお願いします。

  • エクセルシートの文字列加工について

    エクセルのシートのA列に"全角ひらがな漢字"の文字列と"半角英数"の文字列を含むセルが縦に並んでいます。約200行。 ■この中から、"全角ひらがな漢字"の文字列を右となりのB列に、"半角英数"の文字列をさらに右となりのC列に、それぞれコピーしたいのですが、関数・マクロなどでいい方法がありましたら教えて下さい。 ■それから、半角英数文字列のC列から、""で囲まれた文字列のみをさらにD列にコピーしたいのです。 文字列の長さが統一されていれば、比較的簡単なのですが、今回は文字列の長さが不規則です。よろしくお願いします。

  • Excel2002 マクロで置換する際の分岐

    Excel2002でシート内の 特定の文字列を削除するマクロを 作成しようと考えています。 開くシートの内容は毎回決まっていません。 文字の削除は Cells.Replaceを使用して"あいうえお"→""のように行っています。 このような処理を行っている場合、開くシートによっては "あいうえお"という文字列が見つからない為エラーが出ます このエラーを回避にはどのように実装すればいいのでしょうか? ※もし特定の文字を削除する方法で別の方法があるようでしたら 教えていただけると助かります。

  • Excel95のシート名の最大文字数に関して

    はじめまして、アクアと申します。 現在、Win98 + Excel95を使って簡単なマクロを作っています。 シートをコピーして、別CSVファイル中の文字列をコピーしたシート名に置き換えるという処理をしていますが、シート名が長い場合(例えば、ああああああああああいいいいいいいい)、 システムエラーコード:1005 エラーメッセージ:シート名が正しくありません と言う、エラーがでてしまい、シートを作成することができません。 Excel95には、シート名の最大文字数等の制約があるのでしょうか? ちなみに、上記マクロをExcel2000で実行した場合は何の問題も無くできました。 以上、よろしくご教授下さい。

  • 別シートの文字列があったら現シートのセルの色変える

    こんにちは。 エクセル2010を使用しています。質問させて下さい。 BシートのA列に下記のような文字列があります。 ------以下文字列------- 秋山 清原 デストラーデ 渡辺 ------以上文字列------- この時、AシートのセルにBシートに現れる文字列があった場合に色づけがしたいです。 例えば、Aシートに”清原”というセルがあったら、Bシートを参照して色づけされる。 この様なことをどうすれば実現できますでしょうか? ご教示願います。

  • エクセルVBAで連続して文字置換をしたい

    シート2に「検索する文字」と「置換後の文字」を入力しておく マクロで自動的にシート1の文字列を文字置換していく 置換作業は、シート1の商品全部を対象として、 シート2に入力している文字列を1つずつ置換作業をして 処理した後は、処理件数を残していく。 シート2に入力している文字列の数だけ全部、処理する。 現状は、商品数が約2万個で検索する文字列は100個ほどあります。 (今後はさらに増える予定です。)

専門家に質問してみよう