• 締切済み

Excelで、特定のセルに入力した文字列に、自動的に指定した文字が追加

Excelで、特定のセルに入力した文字列に、自動的に指定した文字が追加されるようにする関数はありますか? 例えばA1に、123-4567と入力してエンターを押せば、自動的に文頭にAが付与されて、A123-4567となり、 B1に、abcdefと入力してエンターを押せば、自動的に末尾に-001が付与されて、abcdef-001となるようにしたいのです。 処理上必要なので毎回手入力しているのですが、付与すべき文字列が入力欄ごとに決まっているので、自動的に処理できたら楽なのにと常々考えています。 ものぐさで申し訳ありません。知ってらっしゃる方お願いします。

みんなの回答

回答No.6

マクロではないのですが。。。 質問者さんがどの程度の文字列を追加したいのかにも寄りますが、 ご質問にあった程度の字数でしたら「セルの書式設定->表示形式->ユーザ設定」で 「"A-"@」とか「@"-001"」にしてみてはどうでしょう? もちろんあくまで書式なので、並べ替えとかそういったものには対応していませんが。 お役に立てたら嬉しいです。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.5

#1さんのおっしゃっている通り、関数ではご要求通りの内容の実現は無理で、マクロによる事になります。おまけで特定の列には同じ処理をしたいという場合についてもコメントアウトして付けておきます。 マクロをどこに記述するかは、参考URLなどをご覧ください。 Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False '特定セルで判断したい場合 Select Case Target.Address Case "$A$1" Target.Value = "A" & Target.Value Case "$B$1" Target.Value = Target.Value & "-0001" End Select '列で判断したい場合 ' Select Case Target.Column ' Case 1 ' Target.Value = "A" & Target.Value ' Case 2 ' Target.Value = Target.Value & "-0001" ' End Select Application.EnableEvents = True End Sub このままだと、A1をクリアしようと思っても、Aになってしまいますので、それが嫌な場合は、下記のように変更してください。(当然他のセルについても同様です) If Target.Value <> "" Then Target.Value = "A" & Target.Value

参考URL:
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_event.html
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

入力したセルをそのようにしたいなら関数では無理です。 でもマクロでなら楽に自動化を実現できます。 以下の手順を試してみてください。 簡単ですよ。 1. 該当するシートのタブを右クリックして、[コードの表示]。 2. 出てきた所に、下記のコードを貼付けます。 '********これより下********** Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> "A1" And Target.Address(0, 0) <> "B1" Then Exit Sub   If Target.Value = "" Then Exit Sub   Application.EnableEvents = False   Select Case Target.Address(0, 0)   Case "A1"   Target.Value = "A" & Target.Value   Case "B1"   Target.Value = Target.Value & "-001"   End Select   Application.EnableEvents = True End Sub '********これより上********** 3.Alt+F11キーでワークシートへもどります。 A1とB1にそれぞれ入力してみてください。

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

こんばんは! 一発で解決!とはいかないと思いますが、 他の方が回答するためのたたき台として! 質問に >特定のセルに入力した文字列に、自動的に指定した文字が・・・ とありますので、具体的にどのような形で入力した文字列に対して文字が指定されているのか判らないので、 勝手に↓のような感じで表を作ってみました。 F~H列の1行目に文頭につけたい文字列を入力し、その列の2行目以降に当てはまる文字列を羅列しておきます。 (表内には重複はないものとしています。) C2セルに =IF(COUNTIF($F$2:$H$100,A2),INDEX($F$1:$H$1,,SUMPRODUCT(($F$2:$H$100=A2)*COLUMN($A$1:$C$1)))&A2,"") (とりあえず、F~H列の100行目までデータがあっても対応できるようにしてみました) D2セルに =IF(B2="","",B2&TEXT(COUNTA($B$2:B2),"-000")) 文末の(000)はB列に入力された個数を表示するようにしていますので、 もし、この文字列もB列に入力した文字列に関連があるのなら別の方法を考えなければなりません。 以上、質問からこちらで勝手に判断してやってみた方法ですので 的外れならごめんなさいね。m(__)m

  • kuro96jp
  • ベストアンサー率39% (93/238)
回答No.2

私がぱっと思いついた手立てですが A1に123-4567を入力してB1にA123-4567を表示させるのであれば B1セルに=if(A1="","","A"&A1) で B1にabcdefを入力してC1にabcdef-001を表示させるのであれば C1セルに=if(B1="","",A1&"-001") でどうでしょうか?

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

無理。 そんな【関数】はありません。 そう言った機能はマクロで作成しましょう。

関連するQ&A

  • エクセルで入力済みの1列に同じ文字を追加したい

    エクセルですでに数字が入力された状態のセル1列に同じ文字を追加したい場合、一つひとつ入力せずに一気にできる方法があれば教えて頂けないでしょうか。 例えば、すでに150, 175, 210, 245 などと数字が入っているとして、その末尾にAを入れて、150A, 175A, 210A, 245A のようにしたいのです。それぞれのセルをクリックしてはAを入力するという方法以外に、一気にすべての(選択された)セルにAを追加・挿入する簡単な方法がないでしょうか?ご指導頂けると非常に助かります。宜しくお願い致します。

  • あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように

    お世話になります。 表題の通り、 あるセルに特定の文字列を打つと、 他のセルにあらかじめ決められた文字が自動入力するようにしたいです。 具体的に言うと、 (1)セル(A,1)に「キリン」と打ち込むと    A   B   C   D 1 キリン 2 3 4 (2)1列目の B,C,Dに予め決めておいた文字が入力されるようにしたい    A   B   C   D 1 キリン 首  長い  アフリカ 2 3 4 のです。 エクセルで可能でしょうか? 詳しい方よろしくお願いいたします!

  • Excel 隣のセルの頭文字に応じて文字を自動入力

    Excelの質問です。 隣のセルに入力された文字列の頭の文字に応じて、セルに自動的に文字を入力するにはどうすればよいのでしょうか?関数初心者です。 具体的には、 A1のセルに「T○○○○○」(○は任意の数字)が入力されていれば、頭文字がTなので、B1のセルに東京と自動的に表示する。 A2のセルに「N○○○○○」(○は任意の数字)が入力されていれば、頭文字がNなので、B2のセルに長野と自動的に表示する。 です。 よろしくお願いします。

  • Excelでの文字列の結合

    Excelで文字列を結合したいのですが、可能でしょうか? 例えば、セルA1に「abc」、セルB1に「def」と入力し、 それをセルC1に「abcdef」と表示させたいのです。 方法がわからなかったので、 一度txtファイルに変換して保存し、 表示する時にスペースで区切らないようにし表示させたのですが、 うまくいきません。 表示は「abcdef」とキレイに表示されるのですが、 検索コマンドで「abcdef」と入力しても検索されません。 ですので、VLOOKUPなどの関数が使用出来なくて困っています。 どのようにすればいいのでしょうか? よろしくお願いします。

  • エクセル2010セル入力後指定の離れた場所に移動?

    エクセルについての質問ですが、A1に文字を入力してEnterキーなどを押した後にA3などの離れた場所に自動で空白セルに移動させることはできるのでしょうか?いろいろ調べてみましたが解決できなかったのでわかる方がおりましたらお願いします。関数についてはよくわかりません。

  • エクセルで文字列の中の特定の文字の抽出

    お世話になります。 エクセルで、B列のセルの文字列の中に特定の文字 (例えば文字列abcdefの特定の文字cd)があったら A列のセルにOKという文字を出すということはできますか?

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

    エクセルでの関数、ど素人です。一応自分で調べたのですが、無理なので質問させていただきます。よろしくお願いいたします。 エクセルで、時刻ですが文字列として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を使ってみましたが撃沈です。 どなたか教えていただきたく、お願いいたします。

  • エクセルで、文字列の入ったセルを他のシートへ自動的に入るようにしたいのですが・・・

    エクセルで、文字列の入ったセルを他のシートへ自動的に入るようにしたいのですが・・・ 例 シート1のA1セルに「○○会社」と入力 自動的にシート2のA1にも同じ「○○会社」が入力される。

  • エクセルで入力した文字列を他のセルにも自動的に入力できるようにしたいです。

    エクセルで文字列を入力した場合、指定したセルにも同じ文字列が自動的に入力されるようにしたいと思っています。 調べたところ貼り付け時に形式を選択して貼り付ける「リンク貼り付け」というのがあるので試してみたんですが、 貼り付け先の空白のセルに強制的に0が入力されてしまいます。 リンク貼り付けを保持したまま空白セルを空白セルのままにすることはできないでしょうか。 よろしくお願いいたします。

  • エクセルで隣のセルへ自動的に入力

    A列のセルに「あ」を入力すると、B列(横のセル)に「亜」。「い」を力すると、B列(横のセル)に「意」。「う」を入力するとB列(横のセル)に「意」のように、A列のセルに入力する文字によってB列のセルが自動的に(決まった10パターンくらいのものを)入力するようにしたいのですが…よろしくお願いします。

専門家に質問してみよう