• ベストアンサー

エクセルで自セルの表示を変更できますか?

こんにちは、さっそく質問させていただきます。 エクセルで 「A1にhogeと入力すると、A1のhogeという文字列がfooという文字列に変わる」 というに シートもセルの位置も変えないで、入力したセル自身の表示を変えたいのです。。 しかし、セルには式を書かないといけないでしょうし 式を書いたところに入力したら上書きされて式がなくなってしまうと思います。 ちょっと特殊な使い方ですがこんなことはできるのでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! VBAなら可能です。 A列すべてを対象とします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻りA列にデータを入力してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から If Intersect(Target, Range("A:A")) Is Nothing Or Target.Count > 1 Then Exit Sub With Target If .Value = "hoge" Then Application.EnableEvents = False .Value = "foo" Application.EnableEvents = True End If End With End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m

scotch0416
質問者

お礼

ふむふむ、VBAという手がありましたか! VBAを触ったことがないので 書いていただいたソースを参考に勉強から始めたいと思います。 ありがとうございました。

その他の回答 (2)

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.3

hogeが数値だったらできますけどね・・・文字列→文字列だと一般機能ではできないです。

scotch0416
質問者

お礼

数値の場合はできるのですか! そのやり方も気になるところですが、 とりあえず回答者1、2さんのものでできそうです。 ありがとうございました。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

マクロを使う必要があります。 以下の様なコードを対象シートのモジュールに記載します。 Private Sub Worksheet_Change(ByVal Target As Range)   If (Target.Address = "$A$1") And (Target.Value = "hoge") Then     Range("A1") = "foo"   End If End Sub また、ブックもマクロ有のブックにしなくてはいけませんので、拡張子がxlsxではなく、xlsmになります(Excel2003以前なら、どちらもxls)。

scotch0416
質問者

お礼

マクロというのは回答者1さんの言っているVBAのことでしょうか。 そこらへんの用語関係がフワッとしているので その部分から確認しつつ、参考コードを勉強してこうと思います。 ありがとうございました。

関連するQ&A

  • エクセルのセルの右側の罫線が表示されない!

    スキャナーで読みとった文字列をエクセル2000のワークシートに張り付けましたが、なぜかそのセルの右側にある罫線が表示されません。 そのセルの右側のセル(A1のセルならB1)に何か入力すると、罫線は表示になりますが、右側のセルをクリアするとやはり表示されません。 文字列の後ろにエクセル上では見えない文字列があるのかと思い、文字列の後ろをデリートで消してみましたがだめでした。 罫線を表示させる方法はないでしょうか?

  • Excelで「一つのセル」をいじられたくないのですが・・・

     エクセルについての質問です。  一つ(例えばA1)のセルに入力した関数を知らない間に  (1)消してしまったり、  (2)上書きで他の数字や文字を入力してしまったり、  ということがあります。  シートを保護するように、一つのセルだけを保護する方法はないのでしょうか?  お教えください。よろしくお願いいたします。

  • Excelのセル表示形式について

    Sheet1のA1セルに「教えて!goo」と入力。 Sheet2のA1セルに「=Sheet1!A1」と入力。 本来なら、ここでSheet2のA1セルに「教えて!goo」と表示されるはずなのですが、なぜか「=Sheet1!A1」という文字列が表示されてしまいます。 どのように設定すれば、参照元のセル内容を正しく表示することができるのでしょうか?ご教示よろしくお願いいたします。

  • セルに入力したら、別の特定セルに文字表示させるには

    似たようなQ&Aはあったのですが、求めているものとは少し違うので質問させていただきます。 エクセルで、指定したセルに数値を入力したら、 別シートの特定セルに特定文字列を表示させる ということはできませんか。 例えば、sheet1のセルB3に「2」と入力したら sheet2のセルB5に「●」と表示 次に、sheet1のセルB4に「6」と入力したら sheet2のセルD11に「●」と表示 次に、sheet1のセルC3に「4」と入力したら sheet2のB9に「○」と表示           のようなかたちです。 sheet1の入力範囲は、B3:I85程度 sheet2の入力範囲は、B3:FZ170程度で、特定セルは重複しない 表示されるのは、「●」「○」などの文字列 です。 途中経過として、MATCH関数、ADDRESS関数を利用して sheet1のセルに数値入力をしたら sheet2の入力すべきセル番地を求めることまではできたのですが その求めたセルがすべて異なるので、それぞれのセルに移動させて 文字列を表示させることができずに困っています。 解決法をご存知の方、どうぞよろしくお願いいたします。

  • Excelで、「+○,○○○」という表示を、数値として表示させるには?

    Excelで、「+○,○○○」という表示を、数値として表示させるには? 私の質問の書き方が悪かったので、改めて質問をさせて頂きます。 前回、お答えくださった方々には、この場を借りてお詫び申し上げます。 さて、本題ですが、 Sheet1のA1セルに、 Sheet2のA1セルに手入力した、「数字の前に + あるいは - が付く数値」を、桁区切りのカンマ付きで表示させています。 + を表示させるために、参照元のセルの書式を「文字列」にしています。 参照先のSheet1のA1セルの隣のA2セルに入っている数値を、 Sheet1のA1セルが -○,○○○ の場合には赤字で、 Sheet1のA1セルが +○,○○○ の場合には黒字で表示させたくて、条件付き書式で [=$A$1<0]という数式を入れてみたものの、 参照元が「文字列」なので、どうやら参照先も文字列と判断されてしまうらしく、条件付き書式が機能してくれません。(参照元を「標準」等に直せば機能します) +○,○○○という表示を、数値として表示させることができれば、解決すると思うのですが、他に方法があればそれにはこだわりません。 なにか良い案はないでしょうか? お知恵を拝借させてください。

  • Excel 空白セルのコピペについて

    http://imgur.com/5e8TsP1 上記図のように、シート1のB列に各文字を入力しています。 そして、A列にはもしB列に文字が入力されていたらID代わりの数値を表示する、という式を入力してあります。 次に、シート1のA列、B列をコピーして、シート2に数値としてペーストをします。 すると、A列は空白のはずが、xldown操作をすると元のセルで式が入力されていたものまで選んでしまい、真の空白セルとして認識してくれません。 そこで、このような例の場合、どうコピーペースト、または選択をすれば偽物の空白 セルを生み出さないように出来るでしょうか? 実際に使用するデータは項目名が多く存在し、マクロですべてのセルを選択→新規ブックを作成してそこにペースト、という処理を行っています。 この時に偽物の空白セルが出ると、データベースに読みこむ際に不都合が生じますので、何とか改善を図りたいです。 VBA、関数、Excel上のテクニックのいずれでも構いませんので、どうかご教授下さい。 よろしくお願いいたします。

  • セル番号を指定しそのセル内容を表示したい

    エクセルにて、セルA1番からA10番まで入力した文字を、セルB1番に表示させたいセルNOを入力しセルC1番に表示させたいのです。 =CELL("contents",セル番号)をうまく使ってできないものでしょうか。また、入力文字シート・表示させたいセルNO入力シート・表示させるシートが別々にできるなら、よりうれしいのですが。よろしくお願いします。

  • EXCELのセルの表示を完全に同じにしたいのです

    EXCEL2000を使っています。 使い方が間違っている感じかもしれませんが例えばA1のセルに表示させている文字列「あいうえお」をフォントサイズ11、12、13・・・と一文字ずつ大きくした文字列を作って、それを他のセルに同じようにA1を入力した時に自動的に貼り付けが行われるようにしたいのですがどのようにすればいいでしょうか?

  • エクセルでセル幅で折り返して表示される

    エクセルで、セルに文字を入力して確定すると、 セルの幅よりも長い文字列を入力すると、 自動的に折り返して表示される場合があります。 セルの幅より文字列が長いとき、 必ず折り返されるというのではなく、 折り返して表示される場合があるのです。 どのようなとき折り返されるのでしょうか? また、折り返されないようにするにはどうすればよいのでしょうか? ちなみに、 そのセルの右隣のセルは空欄です。 ご存知の方、よろしくお願いいたします。

  • エクセルのセルに日付を入れるとセル幅が変更される。

    エクセル2002を使用しています。 日付をひとつのセルに入力すると、セル幅が変更されてしまいます。 セル幅を小さくすると###と表示されてしまいます。  はみ出した文字は隣のセルに上書き表示させたいのですが、うまく表示できません。    分かる方、どうか教えてください。

専門家に質問してみよう