エクセルで特定文字を検索しセル移動、文字入力NO3

このQ&Aのポイント
  • エクセルで特定の文字を検索し、セルを移動して文字を入力する方法について教えてください。個々のセルには、アルファベットまたはギリシャ文字があり、入力する数字によって入力方法が異なります。同じ形式のシートが複数あり、全て同じ作業を行う必要があります。
  • 特定の文字を検索してセルを移動し、入力する方法を教えてください。例えば、アルファベットで「A」を探し、その位置から右に2つ、上に1つ移動したセルに入力する必要があります。また、異なるシートで同じ作業を行う必要があります。
  • Excelで特定の文字を検索し、セルを移動して入力する方法について教えてください。セルにはアルファベットやギリシャ文字があり、入力する数字によって位置が変わります。同じ形式の複数のシートで同じ作業を行う必要があります。
回答を見る
  • ベストアンサー

エクセルで特定文字を検索しセル移動、文字入力NO3

いつも大変お世話になっております。 昨日ご回答くださりました方々に厚くお礼申しあげます。 文字だけの情報では情報不足ですので、 画像を添付し、再度ご質問させていただきます。 アルファベット、ギリシア文字に対応した 数字を入力するという形式です。 その際、同じ組み合わせても、大きなブロック、いぬ ねこ うさぎ によって入力が異なってきます。 また、きっちり列があっていない個所があり、それは元に戻せません。 同じ形式のシートが10ほど複数あり、すべて同じ作業となります。 私の考えでは、 いぬからうさぎまでの範囲を選択 アルファベットを検索・・・Aとする 検索文字位置から 右2 上1 に移動したセルを検索・・・Bとする (AとBの組み合わせを別シートに作成し、対応する文字をCに記載しておく) アルファベット記載位置から4セル右移動した場所に対応する文字Cを記載する というフローを考えております。 上記フローは非常に煩雑で、別個所が書き換えられてしまう恐れがありますので、 最悪、ねこの範囲の数字5はすべて同じになりますので、 それだけ入力するという形式を取りたいと思っております。 本当ならば、エクセルブックをそのまま記載すればよいのですが、 業務上の関係で、できませんので、簡略化して記載いたしました。 どなたかおわかりになられる方、ご教授くださいませんでしょうか。 宜しくお願いいたします。

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

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

こんにちは! 解釈が違っていたらごめんなさい。 VBAでの一案です。 ↓の画像のようにSheet1に表を作成しておきます。 操作したいSheetはSheet2以降にあるとし、Sheet2以降の「いぬ・うさぎ・ねこ」の行範囲は すべて同じだとします。(列はずれても問題ありません) 「Sheet1」は必ずSheet見出しの一番左側に配置し、 Sheet2以降のSheet名はどんなSheet名でも構いません) Alt+F11キー → 画面左の「This Workbook」をダブルクリック → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim k As Long Dim c, 範囲 As Range Dim str As String Dim ws As Worksheet Set ws = Worksheets("Sheet1") Set 範囲 = ws.Range("A2:D4") Application.ScreenUpdating = False On Error Resume Next For k = 2 To Worksheets.Count For Each c In Worksheets(k).UsedRange str = c.Offset(-1, 2) If c.Row >= 2 And c.Row <= 4 Then If c = "A" And WorksheetFunction.CountIf(ws.Rows(1), str) Then c.Offset(, 4) = WorksheetFunction.VLookup("いぬ", 範囲, _ WorksheetFunction.Match(str, ws.Rows(1), False)) End If ElseIf c.Row >= 7 And c.Row <= 12 Then If c = "A" And WorksheetFunction.CountIf(ws.Rows(1), str) Then c.Offset(, 4) = WorksheetFunction.VLookup("うさぎ", 範囲, _ WorksheetFunction.Match(str, ws.Rows(1), False)) End If ElseIf c.Row >= 16 And c.Row <= 18 Then If c = "A" And WorksheetFunction.CountIf(ws.Rows(1), str) Then c.Offset(, 4) = WorksheetFunction.VLookup("ねこ", 範囲, _ WorksheetFunction.Match(str, ws.Rows(1), False)) End If End If Next c Next k Application.ScreenUpdating = True End Sub 'この行まで ※ 一旦マクロを実行すると元に戻せませんので、 別Sheetでマクロを試してみてください。 外していたらごめんなさいね。m(_ _)m

gitmyk
質問者

お礼

お返事誠にありがとうございます。 わざわざご検証までいただき、大変うれしい限りです。 私の提示した内容でしたら、おそらく作成していただいたマクロでBINGO! だと思います。 実際は、もう少し、内容が複雑になっておりまして、簡略化にも無理が生じてきております。 エクセルのマクロでこのような複雑な処理ができることを初めて知りました。 大変勉強になりました。 作成いただいたマクロは是非とも、今後の為に活用させていただきたく存じます。 お忙しいところ本当にありがとうございました。m(_ _)m

その他の回答 (1)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

申し訳ないが、これまで3件の質問を見たが、何をしたいのか具体的なイメージをつかめない。 「難解」とか「業務上の関係で」といっているが、難解なのはあなたの頭の中だけで、ちゃんと記載すれば簡単なことのように思えるが。 使っている用語が悪い。 「エクセルで特定文字を検索しセル移動」と言っているが、中味を見れば、どこでどんな文字を検索するのかわからないし、セル移動の必要性は全くなさそうだ。 「「アルファベットを検索・・・Aとする」とは、どういう意味だ。「Aというアルファベットを検索する」ということならどこで検索するのか。 「同じ組み合わせても」と言っているが何の組み合わせのことか。アルファベットに対応した数字が違ってくるというのなら、それがどこで変わってくるのかわからなければ関数もマクロもできはしない。 「AとBの組み合わせを別シートに作成し」とあるが、「いぬ」「ねこ」・・・分だけ対応表があるということか。 「右2 上1 に移動したセルを検索・・・B」というが、何で移動しなければならないのか。移動しなくても検索はできるが、この文も意味が解らない。「右2 上1」のセルでBを検索するということなのだろうか。「検索」は「どこで」「何を」がなければ「検索」にならない。 「対応する文字をCに記載しておく」といっているが、つぎでは、「対応する文字Cを記載する」となっいる。「C」は場所なのか、文字なのか区別がない。 「上記フローは非常に煩雑で」か。そのまま読めば「煩雑」を通り越してわけがわからない。 だから、こんなのに回答しなければいいのだか、同じ質問を3回もして、それもほとんど進歩がないから、せっかく回答者がいても正解にはなりそうもないので、もう少し質問を整理して回答できるようにしたらどうかと思い、ここに書いた。 単に次のようなことではないのか。 A4でアルファペットを、C3でギリシャ文字を検索する。そのアルファベットとギリシャ文字の組み合わせに数字が対応しており、その対応表は別にある。その対応した数字をE4に記入したい。同じような枠それぞれに同様な操作をしたい。 やり方を教えてほしい。 というだけの話じゃないのか。そうだとすれば、 何が煩雑なんだろう。 補足を。

gitmyk
質問者

お礼

誠に申し訳ございませんでした。 私の整理の仕方が根本的にまずかったようで、お手数を何度もおかけいたしました。

関連するQ&A

  • [ExcelVBA]検索文字で検索し文字入力する

    いつもお世話になっております。 以前に投稿をさせていただきましたgitmykと申します。 http://okwave.jp/qa/q7563274.html 前回はご回答くださり誠にありがとうございます。 この場で感謝申し上げます。 内容を精査させていただきましたので、再度投稿させていただきます。 問題(1) Sheet2のA列に[範囲指定文字]、B列に[検索文字]、C列に[入力文字]が複数入っている。 Sheet1を[範囲指定文字]で検索しCurrentRegionで範囲指定する。 範囲指定した全てのセルに対し、[検索文字]の上から順に検索していく。 該当セルがあれば、右4セルoffsetし、対応する[入力文字]を入力する。 ([検索文字]と[入力文字]は1対1で対応している) 問題(2) Sheet2のA列に[範囲指定文字]、B列に[検索文字1]、C列に[検索文字2]、D列に[入力文字]が複数入っている。 Sheet1を[範囲指定文字]で検索しCurrentRegionで範囲指定する。 範囲指定した全てのセルに対し、[検索文字1]の上から順に検索していく。 該当セルがあれば、右2セル上1セルoffsetしたセルを対応する[検索文字2]で検索し、双方が一致した場合のみ[検索文字1]で検索した該当セルから、右に4セルoffsetしたセルに、対応する[入力文字]を入力する。 ([検索文字1]と[検索文字2]、[入力文字]は対応している) 問題(3) Sheet1を[範囲指定文字]で検索し下に1セルoffsetした位置をCurrentRegionで範囲指定した場合。 上記内容をExcelVBAでどのように記載すればよいか、ご教授くださいませんでしょうか。 VBA学習中です。 何卒宜しくお願いいたします。

  • EXCELで特定文字を検索後セル移動、文字入力

    お世話になります。 エクセルで、特定文字を検索し、その4つ右のセルに特定文字を入力する マクロを教えていただけませんでしょうか? A A B B ↓ A□□□文字A A□□□文字A A□□□文字B A□□□文字B □は空セル なお、文字は複数あり、その複数文字に対して別文字になります。 おわかりの方よろしくお願いします。

  • エクセルのセルに入力した文字を「*」でマスクしたい

    セルに入力した文字を「*」で表示したいのですが、どなたか教えていただけませんか? 数字だけのときは、セルの書式設定で表示形式のユーザ定義で「*」表示に設定するとできるのですが、英字が入ると入力どおりの表示になってしまいます。

  • EXCEL セル内の特定文字を抜き出したい

    sheet1のセル番号A1に 東京都江戸川区船堀タワー屋上 が入力されています。 次に、sheet2のA列に下記のような表があります。 A列 東京 大阪 沖縄 千葉 埼玉 青森 この場合で、 sheet2の表を検索値とし、sheet1のセル番号A1を検索して"東京"を 値として返したいです。 sheet2の表に入力されている検索値が1つなら、IF、SERCH、MID関数 を使って抜き出すことができましたが、検索値が複数、検索範囲が1 つのセル(SHEET1のA1内の文字列)の場合、検索できますでしょうか? ※IF、SERCH、MIDを使うと、すごく長い関数文になったので、できる  だけ、短い関数文だと助かります。 知恵をお貸しください。 よろしくお願いします。

  • Excelでのセル検索

    添付図のように「検索と選択」をクリックし、さらに「検索」をクリックし、文字列を入力し検索を実行し、該当があればそのセルへジャンプしますが、 これをこのシートと別のシートの任意のセルに検索文字列を入力し、該当があった場合にそのセルへシートを跨いでジャンプさせることは可能でしょうか? 表現がわかりづらいかもしれませんが、不足情報は補足しますので、宜しくお願い致します。 ちなみ添付図はExcel2010でのスクショになります。

  • エクセルで、セルに入力された文字を別なシートで数字

    エクセルで、セルに入力された文字を別なシートで数字で表すにはどうしたらいいのですか? いま、会社でエクセルVBAを使って表を作っています。 そこで、例えば、 Sheet2で、セルA1に○○会社 ~、セルA2に△△会社と入力したら、 Sheet1で、数字で、2 と表すには、どういう風に作ればいいのでしょうか?

  • エクセルで特定文字を検索しセル移動、文字入力

    お世話になります。 エクセルでエクセルで特定文字を検索しセル移動、文字入力したいのですが、 A A B B ↓ A□□□文字A A□□□文字A B□□□文字B B□□□文字B としたいのです。 その再、同じ文字でも、場所によって異なる文字を入力したいのです。 A A [特定の文字α] B B [特定の文字β] B B ↓ A□□□文字A A□□□文字A B□□□文字Bα B□□□文字Bα B□□□文字Bβ B□□□文字Bβ かなり難解ですがおわかりになるかたいらっしゃいませんでしょうか?

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

    似たような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の入力すべきセル番地を求めることまではできたのですが その求めたセルがすべて異なるので、それぞれのセルに移動させて 文字列を表示させることができずに困っています。 解決法をご存知の方、どうぞよろしくお願いいたします。

  • データを入力すると特定の文字等を返す方法について

    いつも相談に答えていただきありがとうございます。 今回は、 エクセルで、特定のセルに数字を入力をした場合、同じシートの別のセルに文字等を返す方法についてご教示ください。 例) sheet1の「A1セル」に日付を入力すると「B1セル」に文字を返しその「Bセル」に色をつける。       「2/17」     →      「○」を付けそのセルの色を「赤」にする。 エクセルのマクロ処理ではなく、簡単な計算式で対応できないでしょうか。 もし、セルに色を付けるのが困難な場合は「○」表示だけでも付けたいと考えています。宜しくご教示ほどお願いします。

  • エクセルのセルに入力中の文字

    以前、XPの時にはエクセルのセルにも入力中の文字が表示されていましたが、7にしたら入力中の文字や数字は上の数式の表示の枠にしか出なくなりました。何とかセル内に出す方法があったら教えてください。

専門家に質問してみよう